mirror of
https://github.com/hermensbas/azerothcore_installer.git
synced 2026-01-13 08:37:17 +00:00
Compare commits
836 Commits
classic
...
AC_Data_v1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8a663ffdfa | ||
|
|
9e98edb331 | ||
|
|
67118ee327 | ||
|
|
e165cb7c3e | ||
|
|
6632e96fcb | ||
|
|
f0d6731a07 | ||
|
|
33602f855f | ||
|
|
be83e60e47 | ||
|
|
03aad7598d | ||
|
|
2fb3a079ca | ||
|
|
7629576255 | ||
|
|
56f962eaf4 | ||
|
|
7b3a2d4485 | ||
|
|
0eaea31569 | ||
|
|
de35d605bd | ||
|
|
0d13d4e7d4 | ||
|
|
31147aa3f6 | ||
|
|
ed7d516f4f | ||
|
|
be8eb9b6e9 | ||
|
|
7277cd459f | ||
|
|
c067c01b48 | ||
|
|
3e2d21a596 | ||
|
|
11a46b87e5 | ||
|
|
530a8eb94f | ||
|
|
65107d791b | ||
|
|
6aa9aacfde | ||
|
|
e65a927cb7 | ||
|
|
49211fcd52 | ||
|
|
1ce662ad32 | ||
|
|
83f049931e | ||
|
|
579fde7894 | ||
|
|
78010528d8 | ||
|
|
55c96d6dc9 | ||
|
|
9383439304 | ||
|
|
c0a059dbef | ||
|
|
71beadcfa1 | ||
|
|
5077944d85 | ||
|
|
4286115f24 | ||
|
|
1c8889e85e | ||
|
|
23c56fa272 | ||
|
|
0cf9faccfa | ||
|
|
5a41c0356a | ||
|
|
2da8c66652 | ||
|
|
f7a2bd464e | ||
|
|
e092bf5617 | ||
|
|
a378a8dc72 | ||
|
|
13286a9d55 | ||
|
|
1509ae2816 | ||
|
|
fed5437d91 | ||
|
|
d35b7090dc | ||
|
|
3667f14c14 | ||
|
|
be5ec27ebc | ||
|
|
be53bf2cc6 | ||
|
|
36c5507414 | ||
|
|
147e07d6a6 | ||
|
|
a57fc6ad88 | ||
|
|
ac526afd71 | ||
|
|
ebc6ed1efa | ||
|
|
b0e452ab07 | ||
|
|
1d74645e12 | ||
|
|
19c6e7babf | ||
|
|
8e57ad7f08 | ||
|
|
a287247b98 | ||
|
|
0b8720af27 | ||
|
|
0ccab4ebe8 | ||
|
|
6b36d1636e | ||
|
|
777c26ae82 | ||
|
|
1d4c08372e | ||
|
|
591026b611 | ||
|
|
1028816465 | ||
|
|
6a8e6139c8 | ||
|
|
e7f2a2c046 | ||
|
|
c69ca7242a | ||
|
|
93ab056253 | ||
|
|
3181ac0906 | ||
|
|
92f3410b6a | ||
|
|
78226c5cbf | ||
|
|
acf7637a4f | ||
|
|
1000fbf6e7 | ||
|
|
3fd18d75ec | ||
|
|
ef5d6a29e8 | ||
|
|
6852ae4503 | ||
|
|
feb2a9c9db | ||
|
|
bb4da9f717 | ||
|
|
2ae44eecfe | ||
|
|
aa77d076ee | ||
|
|
922783a5b1 | ||
|
|
a8ddb2cb52 | ||
|
|
019d5f6796 | ||
|
|
b287476ec7 | ||
|
|
b4e37413c1 | ||
|
|
3d3c1d9d7d | ||
|
|
e634f8a716 | ||
|
|
b9a02b51aa | ||
|
|
b63f336d29 | ||
|
|
758a83fd6b | ||
|
|
9fd325c125 | ||
|
|
1c607007e3 | ||
|
|
2f270032cd | ||
|
|
4b90a35028 | ||
|
|
1d7463f058 | ||
|
|
9a5c6c2685 | ||
|
|
1a1cdb8cff | ||
|
|
3eb73ac5bf | ||
|
|
0166eca1fd | ||
|
|
9dff4870aa | ||
|
|
2781cb95d4 | ||
|
|
870553a227 | ||
|
|
104fd0d347 | ||
|
|
397892271c | ||
|
|
d2a18010c8 | ||
|
|
cd1073313d | ||
|
|
8c2973a780 | ||
|
|
901d967c39 | ||
|
|
d8d7e05c5c | ||
|
|
199856bb71 | ||
|
|
986b754522 | ||
|
|
8aaca8410c | ||
|
|
0111d4c442 | ||
|
|
94bf8c51d1 | ||
|
|
a4cd39f03f | ||
|
|
9ed9f73da9 | ||
|
|
47d8d0498c | ||
|
|
f60ed28f88 | ||
|
|
7caf3082ee | ||
|
|
644d6aa986 | ||
|
|
424f6fb08f | ||
|
|
f0fe29db67 | ||
|
|
b0166efc63 | ||
|
|
2050588297 | ||
|
|
c649fe10af | ||
|
|
fa224723f3 | ||
|
|
f919747432 | ||
|
|
8807074b1d | ||
|
|
f0f14f404f | ||
|
|
c9e65420d7 | ||
|
|
14250efcdb | ||
|
|
471a697350 | ||
|
|
bde2c871e5 | ||
|
|
c3592e387b | ||
|
|
96f41b2e4d | ||
|
|
6a71064ba4 | ||
|
|
59fb370d3f | ||
|
|
84134ca6b9 | ||
|
|
245a3bdb32 | ||
|
|
f78b860759 | ||
|
|
9c935affea | ||
|
|
1d31b0f6e8 | ||
|
|
ad40302026 | ||
|
|
c32f300348 | ||
|
|
6173d7202e | ||
|
|
020f1ac52f | ||
|
|
2f04f71d5f | ||
|
|
5012895ca8 | ||
|
|
271f333b43 | ||
|
|
6ec1431db4 | ||
|
|
ccac79f908 | ||
|
|
e2db3d9f7b | ||
|
|
98d272aeb1 | ||
|
|
7143c3a773 | ||
|
|
38cb9fc19b | ||
|
|
011c7562f5 | ||
|
|
cf8cb63d61 | ||
|
|
fd5a1ed6f2 | ||
|
|
a3b7b774cf | ||
|
|
aee3522907 | ||
|
|
1ba2922125 | ||
|
|
2bf6887e16 | ||
|
|
09a184ab60 | ||
|
|
99e7e30786 | ||
|
|
ddf210018f | ||
|
|
bc92100803 | ||
|
|
2210a54b15 | ||
|
|
f2a5ef6aea | ||
|
|
8b49c5e8e6 | ||
|
|
95b777933c | ||
|
|
fa22e6abd8 | ||
|
|
b03db561fd | ||
|
|
063e7ef28c | ||
|
|
d4c19e884e | ||
|
|
0a0cbe479e | ||
|
|
6f4da4ec2e | ||
|
|
c1ab381864 | ||
|
|
848f13da6b | ||
|
|
d75f5001df | ||
|
|
dd73c6ed20 | ||
|
|
54b39bde7e | ||
|
|
d126adcdc6 | ||
|
|
2556006549 | ||
|
|
6818aaed53 | ||
|
|
116d8a4784 | ||
|
|
eea8aba2c2 | ||
|
|
5d0ef8db71 | ||
|
|
137dd25db2 | ||
|
|
2ca22b05fc | ||
|
|
6a354b0d8a | ||
|
|
3d1256d130 | ||
|
|
1978f8c46b | ||
|
|
0614057c51 | ||
|
|
a85909915b | ||
|
|
ed08a667b0 | ||
|
|
584cb48901 | ||
|
|
406f419074 | ||
|
|
e016652449 | ||
|
|
65d27046cd | ||
|
|
69f459d320 | ||
|
|
0e9f880c34 | ||
|
|
d5ded18ff5 | ||
|
|
15bdfb5164 | ||
|
|
69ba9d116a | ||
|
|
001445e6f9 | ||
|
|
4678047b67 | ||
|
|
3609bc1785 | ||
|
|
32db8160fa | ||
|
|
39d64b5330 | ||
|
|
116d2ea80a | ||
|
|
5b6c891fdb | ||
|
|
e611c5b47b | ||
|
|
323d6ce5a8 | ||
|
|
c211cb063a | ||
|
|
08ba5155e8 | ||
|
|
403c5bc43e | ||
|
|
2839ae9689 | ||
|
|
35aee50898 | ||
|
|
e9acd3b875 | ||
|
|
01a3d40c99 | ||
|
|
b28d425235 | ||
|
|
3e1218fa8f | ||
|
|
7f1df86046 | ||
|
|
53289a1aa0 | ||
|
|
676ea6aeb9 | ||
|
|
31140a7dbd | ||
|
|
5fce522129 | ||
|
|
29075854ee | ||
|
|
73c4f9b643 | ||
|
|
96cfa2b056 | ||
|
|
e532915dde | ||
|
|
98f95eb352 | ||
|
|
13fe29c582 | ||
|
|
a006ad5c4b | ||
|
|
bbb13416df | ||
|
|
082aea383f | ||
|
|
15151cc784 | ||
|
|
358bc3e15d | ||
|
|
e5dc33eca6 | ||
|
|
7719659dd3 | ||
|
|
d991d2ba72 | ||
|
|
67fdbdc366 | ||
|
|
5da5e636e7 | ||
|
|
e91dcd8d37 | ||
|
|
2c9b6e4fbb | ||
|
|
4b909cec54 | ||
|
|
1a773dbeb5 | ||
|
|
d2d5b9a077 | ||
|
|
e37e0c8a8c | ||
|
|
36aa1d7b21 | ||
|
|
f8c0ac50d5 | ||
|
|
96da231d89 | ||
|
|
9f1548f383 | ||
|
|
71fd14d65b | ||
|
|
53e14f27e4 | ||
|
|
baf0384834 | ||
|
|
20a3739d3b | ||
|
|
1f8aa5b1f0 | ||
|
|
1869efc194 | ||
|
|
62f994e1e3 | ||
|
|
7edb2fce81 | ||
|
|
90eae2be97 | ||
|
|
922e4b2f98 | ||
|
|
517ff02ad1 | ||
|
|
7b77091a86 | ||
|
|
36d86c1b7b | ||
|
|
86a3ba9147 | ||
|
|
bfc13a3302 | ||
|
|
249ef08409 | ||
|
|
94f90f8131 | ||
|
|
f5990dcf67 | ||
|
|
fef82a2777 | ||
|
|
383787848b | ||
|
|
8aae196f8c | ||
|
|
8c809d7539 | ||
|
|
efcaea9e35 | ||
|
|
5d324420f3 | ||
|
|
e0e9f0b6a8 | ||
|
|
54d602bcc0 | ||
|
|
9fd51e7cac | ||
|
|
c0f05387ca | ||
|
|
100928de9e | ||
|
|
e82e57dd4d | ||
|
|
a3821c9a3f | ||
|
|
24e2528869 | ||
|
|
7c09041135 | ||
|
|
7d0a47c55b | ||
|
|
9b606c5154 | ||
|
|
73938249c1 | ||
|
|
41f12a5685 | ||
|
|
844ab01e53 | ||
|
|
f17ed791c3 | ||
|
|
d2ef69376e | ||
|
|
c35cf77e6b | ||
|
|
b7c1a4df3e | ||
|
|
02b656415f | ||
|
|
cdd2923b73 | ||
|
|
cf7347ecdb | ||
|
|
67990c9d85 | ||
|
|
69d0e09907 | ||
|
|
9727b86a41 | ||
|
|
61e381edde | ||
|
|
fef6ca2e6a | ||
|
|
88d3728db8 | ||
|
|
3a30b010ba | ||
|
|
b7743dab41 | ||
|
|
c74d2616c0 | ||
|
|
59a2f25118 | ||
|
|
02b3841d2d | ||
|
|
c2c0198a08 | ||
|
|
5bc9835ea4 | ||
|
|
07e8946337 | ||
|
|
c9432a77fe | ||
|
|
011ed89432 | ||
|
|
10fa599b98 | ||
|
|
097d8b2aa3 | ||
|
|
ea5ccb18d6 | ||
|
|
6f4f0dedc5 | ||
|
|
8f877371d1 | ||
|
|
db14f9130e | ||
|
|
1f07688680 | ||
|
|
f101507056 | ||
|
|
7a75ec198c | ||
|
|
fbaaff1f9c | ||
|
|
cbe8fe945e | ||
|
|
ce42c5b386 | ||
|
|
55c3f6d3cc | ||
|
|
7b8cd3f402 | ||
|
|
22a531b7e6 | ||
|
|
46b8c9b458 | ||
|
|
f644830723 | ||
|
|
017b19b6df | ||
|
|
2311c4e02a | ||
|
|
70db1a38ca | ||
|
|
591fc36abc | ||
|
|
1c2d86ea43 | ||
|
|
2650508839 | ||
|
|
7430597438 | ||
|
|
4ada5e406a | ||
|
|
b75badad37 | ||
|
|
09a89109f3 | ||
|
|
c2259a0c99 | ||
|
|
7ba2045055 | ||
|
|
05366ad3b6 | ||
|
|
b6c9688766 | ||
|
|
19047cf385 | ||
|
|
6b8ca96134 | ||
|
|
bd45a848d4 | ||
|
|
1ee032c3c7 | ||
|
|
ff517bcd56 | ||
|
|
837bdfb704 | ||
|
|
25b39a4e4d | ||
|
|
d220a2554b | ||
|
|
a6d486e8f8 | ||
|
|
6666585404 | ||
|
|
be0cd93426 | ||
|
|
a24b9dcf57 | ||
|
|
fcfb79dda9 | ||
|
|
ec961feb96 | ||
|
|
74200b2b1e | ||
|
|
6910cd5fca | ||
|
|
6b53958545 | ||
|
|
f48d4bb08e | ||
|
|
f4bb3ac529 | ||
|
|
665f47a1f5 | ||
|
|
6d6d2eb75e | ||
|
|
35e571d0ab | ||
|
|
b830c1efe4 | ||
|
|
a8ac4f2e0f | ||
|
|
873d76795b | ||
|
|
2f528833de | ||
|
|
c76338f7a1 | ||
|
|
9936858953 | ||
|
|
aeeb372ebd | ||
|
|
dd0df08493 | ||
|
|
e0b5ab0121 | ||
|
|
5cb4865ae1 | ||
|
|
03046fb514 | ||
|
|
96cf98d1e0 | ||
|
|
a5943b7061 | ||
|
|
8c24b7d71c | ||
|
|
2b9780d437 | ||
|
|
29231ee17d | ||
|
|
15f802aa68 | ||
|
|
1a1c60ccd7 | ||
|
|
dc6ab7871e | ||
|
|
cf847dfc07 | ||
|
|
579a11d3e2 | ||
|
|
f7c510975e | ||
|
|
b57b9666da | ||
|
|
ab91c7e6b7 | ||
|
|
7d379e7cf4 | ||
|
|
999b9216c1 | ||
|
|
19aa27443f | ||
|
|
841fc52985 | ||
|
|
f8f9708887 | ||
|
|
4f999b99ac | ||
|
|
20b3e5809e | ||
|
|
0aeec801d1 | ||
|
|
5ac7243e1f | ||
|
|
8fc7b7c3cd | ||
|
|
dd2acdc0ec | ||
|
|
2e7c5c99f2 | ||
|
|
4d799074a9 | ||
|
|
736beda21d | ||
|
|
426dc4bf3c | ||
|
|
ae4ceccfd9 | ||
|
|
3913a6d026 | ||
|
|
66731f5a7d | ||
|
|
8bd12dc589 | ||
|
|
376f5a1cac | ||
|
|
08f0c16cd1 | ||
|
|
ada0756d08 | ||
|
|
cbda0e7503 | ||
|
|
98171fa722 | ||
|
|
c4df7a1b55 | ||
|
|
67a9bff042 | ||
|
|
cd06585eab | ||
|
|
e774f40515 | ||
|
|
5fb1456027 | ||
|
|
ed9b10a7ef | ||
|
|
7818f580dc | ||
|
|
850727bf86 | ||
|
|
c3e2e9a9aa | ||
|
|
d1604339eb | ||
|
|
a16dcf320b | ||
|
|
4f29142efc | ||
|
|
2f239606ae | ||
|
|
e425c5e421 | ||
|
|
d39cae210c | ||
|
|
758661698f | ||
|
|
8ead7d4aa7 | ||
|
|
e5ee1e2ea6 | ||
|
|
b05e6707b3 | ||
|
|
497c47b1ff | ||
|
|
b688838f1e | ||
|
|
3683551971 | ||
|
|
97b2b58424 | ||
|
|
7f9648a7a8 | ||
|
|
d8baeca5ed | ||
|
|
e6a05fc490 | ||
|
|
23d38407ea | ||
|
|
d7d801025b | ||
|
|
66f3efd655 | ||
|
|
422f4a566e | ||
|
|
96cce8313c | ||
|
|
a455d85cfe | ||
|
|
9fe202ea35 | ||
|
|
e5ab7424cc | ||
|
|
f1419ef175 | ||
|
|
838d3add6a | ||
|
|
c973704b20 | ||
|
|
aecbd87f3c | ||
|
|
cf6510501a | ||
|
|
ec40701ae3 | ||
|
|
3dd5313c95 | ||
|
|
0283dc3125 | ||
|
|
169a01309c | ||
|
|
f48a1d9591 | ||
|
|
06d6208910 | ||
|
|
935b89ca02 | ||
|
|
3b29eeeb06 | ||
|
|
3cfc373a41 | ||
|
|
6151f6f814 | ||
|
|
cf5adb8f9d | ||
|
|
baafd600e2 | ||
|
|
e6920ab3b1 | ||
|
|
a945d67c58 | ||
|
|
9c154c37cd | ||
|
|
8184441d91 | ||
|
|
a2a7bdefaf | ||
|
|
a8eddc9714 | ||
|
|
2d1dddd997 | ||
|
|
ebb88dfc5e | ||
|
|
1ca26e056a | ||
|
|
89e96080f6 | ||
|
|
457429cf9d | ||
|
|
3cf3cbd977 | ||
|
|
2434d52e37 | ||
|
|
32d088708b | ||
|
|
597d367564 | ||
|
|
378ea8f715 | ||
|
|
34c1c35b24 | ||
|
|
e243491299 | ||
|
|
95fd0babc6 | ||
|
|
ba205fd360 | ||
|
|
7b13890562 | ||
|
|
5095eb1c6f | ||
|
|
45d32ccefc | ||
|
|
361610fbf5 | ||
|
|
fce50a36ee | ||
|
|
741033694f | ||
|
|
ef5a97361d | ||
|
|
7ce79cadac | ||
|
|
5b7dd2fe14 | ||
|
|
b3cf3bd3b6 | ||
|
|
15f5c19691 | ||
|
|
612a36579f | ||
|
|
9674b05dec | ||
|
|
6cea13eacc | ||
|
|
558b135a6e | ||
|
|
6c506ed6bd | ||
|
|
8182073679 | ||
|
|
269da041e2 | ||
|
|
f5608efdd0 | ||
|
|
4ceedc4b97 | ||
|
|
cba1950259 | ||
|
|
4756e6a631 | ||
|
|
5e09d2e297 | ||
|
|
1a00015997 | ||
|
|
4269a97afe | ||
|
|
8b265de463 | ||
|
|
5b32d4c303 | ||
|
|
25540eb2e9 | ||
|
|
5b6b8ea4bc | ||
|
|
3424eec5e2 | ||
|
|
4a2713e073 | ||
|
|
cb6d4421f2 | ||
|
|
44f40470cf | ||
|
|
a65d3abbb7 | ||
|
|
9202c0ee12 | ||
|
|
84e04db4c0 | ||
|
|
2ac3085cfc | ||
|
|
1072b481d7 | ||
|
|
8b5c915320 | ||
|
|
a5cd8e8ae2 | ||
|
|
21fd8bf9ae | ||
|
|
2a50c07fe1 | ||
|
|
94b4689434 | ||
|
|
15cd5f2573 | ||
|
|
aea70d102d | ||
|
|
5654333cd8 | ||
|
|
2b2d08c823 | ||
|
|
38bcc76d9d | ||
|
|
c06f72234e | ||
|
|
813fbf60f1 | ||
|
|
b8a476a499 | ||
|
|
c80e1b18bd | ||
|
|
e4c73252c5 | ||
|
|
a2eb54ed43 | ||
|
|
5cd3e4b29c | ||
|
|
9345e18638 | ||
|
|
7f0d6ed55f | ||
|
|
3f73064be8 | ||
|
|
55eba74036 | ||
|
|
4124cee31d | ||
|
|
426114583b | ||
|
|
276c238a22 | ||
|
|
aa9bc8336b | ||
|
|
376bc5b4c9 | ||
|
|
0e31b49208 | ||
|
|
95a0c49462 | ||
|
|
05254dab3c | ||
|
|
3099f42960 | ||
|
|
abf68c1bfa | ||
|
|
b728b7c6cb | ||
|
|
fca3a3b1b6 | ||
|
|
c899a20340 | ||
|
|
c8cbca2e9f | ||
|
|
51e285c354 | ||
|
|
1d4ed6c156 | ||
|
|
2bdb4ca311 | ||
|
|
793d1d6e56 | ||
|
|
7107697b1e | ||
|
|
09e69d834b | ||
|
|
aa7f70ec64 | ||
|
|
1298c46dee | ||
|
|
ca6ed0fa54 | ||
|
|
1f6c234330 | ||
|
|
89bb20047a | ||
|
|
abf12bd4bf | ||
|
|
06604e980b | ||
|
|
0f75f040aa | ||
|
|
cf3f1b8876 | ||
|
|
0cb11e3aee | ||
|
|
1a47e14621 | ||
|
|
332ffb544f | ||
|
|
b5e09ace61 | ||
|
|
d912065753 | ||
|
|
5878839988 | ||
|
|
f1f01644e2 | ||
|
|
b60e5c350c | ||
|
|
5fb1c901be | ||
|
|
46709d3f0c | ||
|
|
ab6a681223 | ||
|
|
5ddf512605 | ||
|
|
5882b15886 | ||
|
|
731a8ea737 | ||
|
|
6b5c8297f6 | ||
|
|
f3313daff3 | ||
|
|
48c181eff0 | ||
|
|
e429bb6bdb | ||
|
|
11b96e0f57 | ||
|
|
fbd487c573 | ||
|
|
ba791c34c4 | ||
|
|
32af2cb84f | ||
|
|
93d002779e | ||
|
|
439e42a4c2 | ||
|
|
acdba2956a | ||
|
|
5e9fb2ded6 | ||
|
|
b8e63b42e9 | ||
|
|
4d070a01fc | ||
|
|
794d29f65a | ||
|
|
1a2772a2ac | ||
|
|
f2e820e705 | ||
|
|
0c6d178270 | ||
|
|
5da10b7b50 | ||
|
|
7b1789c686 | ||
|
|
9b2bc6c977 | ||
|
|
22865cc4ae | ||
|
|
993f1eb6c5 | ||
|
|
43bf7cc14b | ||
|
|
98b7e68a94 | ||
|
|
7fb52178d5 | ||
|
|
614a2946b5 | ||
|
|
7d74b9eaa4 | ||
|
|
659ea5135f | ||
|
|
df6656004a | ||
|
|
9d8ccc0ecf | ||
|
|
d4378010e2 | ||
|
|
79f02ced71 | ||
|
|
3f3e66c8af | ||
|
|
7d4487fe07 | ||
|
|
cb778b4425 | ||
|
|
fae3341e55 | ||
|
|
ee05de6a16 | ||
|
|
68fa30efd2 | ||
|
|
19472cd159 | ||
|
|
3a07f9e756 | ||
|
|
0d3fa0c782 | ||
|
|
b5a07d9629 | ||
|
|
ddc0a1dbd4 | ||
|
|
56232e7f73 | ||
|
|
9ec4aeafc6 | ||
|
|
52dc78cbf4 | ||
|
|
b94352dc72 | ||
|
|
fd07219a9b | ||
|
|
3c76bcaecf | ||
|
|
71eec109d6 | ||
|
|
4dd3d0066a | ||
|
|
3e650ccbee | ||
|
|
d2c195cb33 | ||
|
|
f4951e93cd | ||
|
|
ec7696c391 | ||
|
|
10b70c5a2d | ||
|
|
edc638c571 | ||
|
|
9200daab21 | ||
|
|
97bc024fb1 | ||
|
|
f7d66e688e | ||
|
|
1659542648 | ||
|
|
cddbff7229 | ||
|
|
bd476da3c8 | ||
|
|
fcc3b3d21c | ||
|
|
276d105b67 | ||
|
|
0f69d065a3 | ||
|
|
8c40fcc2ff | ||
|
|
cbb72b5e50 | ||
|
|
fbf59641b2 | ||
|
|
32d8599428 | ||
|
|
1e69a2142b | ||
|
|
a0ded2a658 | ||
|
|
d87851ff65 | ||
|
|
50c7cf86f9 | ||
|
|
9f42eb1c47 | ||
|
|
67600b8871 | ||
|
|
0f1510ec87 | ||
|
|
38502268be | ||
|
|
1584d75e5f | ||
|
|
36bba69693 | ||
|
|
f3512c31f5 | ||
|
|
2aa0d4ee24 | ||
|
|
4ac0fa6384 | ||
|
|
ccbeb61e90 | ||
|
|
1744058a35 | ||
|
|
948b2a634a | ||
|
|
9a0de291f3 | ||
|
|
23d88a04b3 | ||
|
|
4f00e8f112 | ||
|
|
f879549a79 | ||
|
|
daa42db403 | ||
|
|
55408b006f | ||
|
|
5173ce840a | ||
|
|
9ef49570fc | ||
|
|
e81b9f0026 | ||
|
|
73534ac5b7 | ||
|
|
5da33328c5 | ||
|
|
459ad7ef0d | ||
|
|
ab0e23f9bf | ||
|
|
590da5c21e | ||
|
|
40eff193b3 | ||
|
|
b8f48b7607 | ||
|
|
bc7ad5b48c | ||
|
|
efcee0fb92 | ||
|
|
1040d8a851 | ||
|
|
4605445c61 | ||
|
|
0f98862909 | ||
|
|
85012b39d2 | ||
|
|
286d424ab4 | ||
|
|
63f12ffbfa | ||
|
|
caa6d2276d | ||
|
|
14d6c02770 | ||
|
|
ad769e2a2a | ||
|
|
375de04635 | ||
|
|
2da67bd115 | ||
|
|
51dc9a7958 | ||
|
|
4a0af6dca8 | ||
|
|
28a058756b | ||
|
|
5a0c056539 | ||
|
|
d85a315004 | ||
|
|
84ece9c3bf | ||
|
|
14a0d13024 | ||
|
|
3e2e51f66e | ||
|
|
d6e4526fa4 | ||
|
|
0af7bdddd1 | ||
|
|
febc0da933 | ||
|
|
a9a5d6618d | ||
|
|
4f45d751d1 | ||
|
|
cd3d5524ae | ||
|
|
6e40d93d64 | ||
|
|
f61683403a | ||
|
|
49d5c4fd80 | ||
|
|
8d3a6b15f0 | ||
|
|
a5aa6504a2 | ||
|
|
3515740375 | ||
|
|
9e8de466fe | ||
|
|
a211973449 | ||
|
|
aaee49675e | ||
|
|
fa811ae5d6 | ||
|
|
461d7fdc38 | ||
|
|
64363341b5 | ||
|
|
a7f6a0fac0 | ||
|
|
4d20b3a85b | ||
|
|
26da0bef9b | ||
|
|
cf82e5df90 | ||
|
|
a7becc8904 | ||
|
|
a842218321 | ||
|
|
1ffd141c29 | ||
|
|
1e313183ff | ||
|
|
16291b1410 | ||
|
|
679a1eff8d | ||
|
|
e669f6b278 | ||
|
|
86c8ddfde5 | ||
|
|
3ef5eefad4 | ||
|
|
d3f7a386d6 | ||
|
|
b209cd5cbd | ||
|
|
25129f6685 | ||
|
|
0f910bc421 | ||
|
|
61fae97f7b | ||
|
|
34bae5ebe1 | ||
|
|
ded30edff1 | ||
|
|
7c5ad7b887 | ||
|
|
e677c95d36 | ||
|
|
d6bd536d0f | ||
|
|
f57fcfe3ce | ||
|
|
59a3ce05bb | ||
|
|
e95333da25 | ||
|
|
831779a93a | ||
|
|
3de95586d4 | ||
|
|
fe0da4ec17 | ||
|
|
fbf49e7cef | ||
|
|
cf24780070 | ||
|
|
db5363bea1 | ||
|
|
32d61be767 | ||
|
|
c35e6ca525 | ||
|
|
615d8ee76a | ||
|
|
98afea9fff | ||
|
|
06305c9885 | ||
|
|
f4b15e45ce | ||
|
|
0bd2257502 | ||
|
|
29562a0ac2 | ||
|
|
688c9ed540 | ||
|
|
734addb1d0 | ||
|
|
ff67cbed92 | ||
|
|
be5e6165b8 | ||
|
|
afc8c65c11 | ||
|
|
1949c20aaf | ||
|
|
4d31eb47a8 | ||
|
|
bc91082535 | ||
|
|
4052dbefc7 | ||
|
|
bd6c26463c | ||
|
|
f6395c4261 | ||
|
|
dbbe2230e0 | ||
|
|
04726e07f4 | ||
|
|
42e1effdb7 | ||
|
|
dfff2e17c0 | ||
|
|
a8192ce61c | ||
|
|
c4fb68edd7 | ||
|
|
403902dc27 | ||
|
|
ebc64f029b | ||
|
|
a9f980db83 | ||
|
|
af53bbcfbc | ||
|
|
98ad59907f | ||
|
|
bf398b2dbe | ||
|
|
335181aa7f | ||
|
|
4b28839954 | ||
|
|
04bf56ef1b | ||
|
|
9e97f5966a | ||
|
|
da5de089cb | ||
|
|
95e3d5aae0 | ||
|
|
7edb495cf0 | ||
|
|
2446dd2f71 | ||
|
|
ccce6e44b4 | ||
|
|
225c4e56f5 | ||
|
|
47019a73e8 | ||
|
|
89a60b61e3 | ||
|
|
62a94b30cc | ||
|
|
298228e200 | ||
|
|
3a2941597b | ||
|
|
44d5e03dca | ||
|
|
91f9a09841 | ||
|
|
1cf338d2fa | ||
|
|
a25d01c600 | ||
|
|
48f12fa6db | ||
|
|
e6f991161c | ||
|
|
c46979ba85 | ||
|
|
3e0da19d26 | ||
|
|
c18873318f | ||
|
|
a6b631468e | ||
|
|
a8542aa664 | ||
|
|
9627f61eb4 | ||
|
|
69eb70f0c2 | ||
|
|
e47d802623 | ||
|
|
333682e437 | ||
|
|
1c7a1b8ea9 | ||
|
|
8932e486d3 | ||
|
|
c8acf8cb22 | ||
|
|
2587272ab9 | ||
|
|
b66f9186f6 | ||
|
|
48701d2d37 | ||
|
|
bb40d2ee6a |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,2 +1,3 @@
|
||||
_server/
|
||||
_data/
|
||||
_download/
|
||||
|
||||
73
6_start.sh
73
6_start.sh
@@ -1,73 +0,0 @@
|
||||
#!/bin/bash
|
||||
ROOT_DIR="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
||||
source ${ROOT_DIR}/variables.sh
|
||||
|
||||
|
||||
##########################################################################################
|
||||
# Apply realm settings
|
||||
##########################################################################################
|
||||
sudo mysql -u root --database="acore_auth" -e "UPDATE realmlist SET address = '${REALM_IP}' WHERE id = 1;"
|
||||
sudo mysql -u root --database="acore_auth" -e "UPDATE realmlist SET name = '${REALM_NAME}' WHERE id = 1;"
|
||||
echo "Realm settings updated..."
|
||||
echo " "
|
||||
|
||||
|
||||
##########################################################################################
|
||||
# Apply ah-modbot settings
|
||||
##########################################################################################
|
||||
sudo mysql -u root --database="acore_world" -e "UPDATE mod_auctionhousebot SET minitems = ${AH_BOT_MIN_ITEMS}, maxitems = ${AH_BOT_MAX_ITEMS};"
|
||||
echo "Module ah-modbot updated..."
|
||||
echo " "
|
||||
|
||||
|
||||
##########################################################################################
|
||||
# reset playerbots data (enforces performance and bot levels balance)
|
||||
##########################################################################################
|
||||
sudo mysql -u root --database="acore_characters" < ${ROOT_DIR}/lib/clear-bots.sql
|
||||
echo "Module playerbots updated..."
|
||||
echo " "
|
||||
|
||||
|
||||
##########################################################################################
|
||||
# handle the tmux sessions
|
||||
##########################################################################################
|
||||
if tmux new-session -d -s $AUTHSERVER_SESSION; then
|
||||
echo "Created authserver session: $AUTHSERVER_SESSION"
|
||||
else
|
||||
echo "Error when trying to create authserver session: $AUTHSERVER_SESSION"
|
||||
fi
|
||||
echo " "
|
||||
|
||||
if tmux new-session -d -s $WORLDSERVER_SESSION; then
|
||||
echo "Created worldserver session: $WORLDSERVER_SESSION"
|
||||
else
|
||||
echo "Error when trying to create worldserver session: $WORLDSERVER_SESSION"
|
||||
fi
|
||||
echo " "
|
||||
|
||||
if tmux send-keys -t $AUTHSERVER_SESSION "$AUTHSERVER" C-m; then
|
||||
echo "Executed \"$AUTHSERVER\" inside $AUTHSERVER_SESSION"
|
||||
#echo "You can attach to $AUTHSERVER_SESSION and check the result using \"tmux attach -t $AUTHSERVER_SESSION\""
|
||||
else
|
||||
echo "Error when executing \"$AUTHSERVER\" inside $AUTHSERVER_SESSION"
|
||||
fi
|
||||
echo " "
|
||||
|
||||
if tmux send-keys -t $WORLDSERVER_SESSION "$WORLDSERVER" C-m; then
|
||||
echo "Executed \"$WORLDSERVER\" inside $WORLDSERVER_SESSION"
|
||||
#echo "You can attach to $WORLDSERVER_SESSION and check the result using \"tmux attach -t $WORLDSERVER_SESSION\""
|
||||
else
|
||||
echo "Error when executing \"$WORLDSERVER\" inside $WORLDSERVER_SESSION"
|
||||
fi
|
||||
echo " "
|
||||
|
||||
echo "###########################################################################################"
|
||||
echo "Word of advice:"
|
||||
echo "## 1. -------------------------------------------------------------------------------------"
|
||||
echo "After (re)starting the server and logging in with the client wait 5-10m so the bots can"
|
||||
echo "settle abit; getting an assigned level and teleport to an area for that level"
|
||||
echo "## 2. -------------------------------------------------------------------------------------"
|
||||
echo "If you wanna type alot of commands in the world-server session you might want to disable"
|
||||
echo "## the playerbots mod through the playerbot config, since the playerbots generates alot of"
|
||||
echo "## output which disrupts the command line typing :) When done enable again ./config/module"
|
||||
echo "###########################################################################################"
|
||||
124
README.md
124
README.md
@@ -1,124 +0,0 @@
|
||||
# azerothcore_installer [WIP]
|
||||
A simple classic Azerothcore installer with playerbots and ahbot for solo / friends play.
|
||||
For now a quick guide with a abit of common sense and experience i guess, this is just quick setup since i kinda made it for personal use. I prolly will test abit more and add some additional 'features' such as
|
||||
auto character import/export.
|
||||
|
||||
Why classic and not docker? Even though i love docker it does add some additional layer of complexity especially when playing around with modules and settings. Hence making this tiny wrapper instead of a
|
||||
docker image. Obviously this can be translated into a container, but if you able to run a container you should be able to run the default wiki installation embedded in the azerothcore instead.
|
||||
|
||||
It might contain some errors and whatnot, hopefully it will give you some guidance when you have trouble with the classic installation with playerbots and ah-bot. I havent covered every step with great detail
|
||||
i might add a 'real' guide when i have the time.
|
||||
|
||||
## Todo
|
||||
- min/max bot amount, threads performance
|
||||
- test MariaDB vs mySQL, mariaDB feels faster maybe i am seeing ghost though. (done and seeems equal)
|
||||
- Integrate the player export/import
|
||||
- Integrate database full backup
|
||||
- Consider setting vmplayer on priority from 'normal' to 'high'
|
||||
|
||||
|
||||
# Server setup
|
||||
- vmware player
|
||||
- ubuntu-24.04-live-server-amd64.iso
|
||||
- minimal setup
|
||||
- 70GB disksize (minimal 50GB)
|
||||
- 16 GB memorysize
|
||||
- 4 cores (amd 5700x)
|
||||
- network (bridged mode)
|
||||
|
||||
## Ubuntu server settings
|
||||
|
||||
Update and install tooling
|
||||
```bash
|
||||
sudo apt update -y && sudo apt upgrade -y
|
||||
sudo git net-tools
|
||||
```
|
||||
|
||||
Find network IP, should be something like 192.168.x.x
|
||||
```bash
|
||||
ifconfig
|
||||
```
|
||||
|
||||
###### Internet server
|
||||
Use the above (ifconfig) IP for the following router poort-forwarding and/or firewall rules settings.
|
||||
````
|
||||
# 3724 TCP AUTH-SERVER
|
||||
# 8085 TCP WORLD-SERVER
|
||||
````
|
||||
Go to e.g. [whatsmyip](https://whatismyip.com/) and use that IP as realm IP in the variables.sh
|
||||
and the client 3.3.5a 'data/enUS/realmlist.wtf' files
|
||||
|
||||
###### Local server
|
||||
Use the above IP (ifconfig) as realm IP in the variables.sh and the client 3.3.5a
|
||||
'data/enUS/realmlist.wtf' files.
|
||||
|
||||
|
||||
# Installer
|
||||
```bash
|
||||
git clone https://github.com/hermensbas/azerothcore_installer.git
|
||||
cd azerothcore_installer.git
|
||||
chmod +x *.sh
|
||||
```
|
||||
And simply follow the steps of the scripts.
|
||||
|
||||
For the first install, make sure after 'start.sh' you logon on the tmux session of the world-server by typing 'wow'
|
||||
and hit next, next, next when prompting for creating databases.
|
||||
|
||||
###### ah-bot
|
||||
Create normal account and use helper/find-character.sh 'charname' to find the accountId and characterId (GUID)
|
||||
and update your ah-mod config in the ./config folder and reapply the config and start the server again.
|
||||
|
||||
```tree
|
||||
├── 1_download.sh (downloads the sources and client-data)
|
||||
├── 2_update.sh (updates and resets the downloaded sources to latest)
|
||||
├── 3_build.sh (builds the server structure and such)
|
||||
├── 4_compile.sh (compiles the server code)
|
||||
├── 5_config.sh (applies general configuration and that defined in ./config, restart required)
|
||||
├── 6_start.sh (starts the client but can be done through alias created by config.sh)
|
||||
├── _data (client-data v16)
|
||||
│ └── data.zip
|
||||
├── _download (downloaded core and modules)
|
||||
│ ├── azerothcore
|
||||
│ └── modules
|
||||
├── _server (the build and compiled server code based on the downloaded code)
|
||||
│ └── azerothcore
|
||||
├── config (custom config which be merged on top of the generated .dist configs)
|
||||
│ ├── authserver.conf
|
||||
│ ├── modules
|
||||
│ └── worldserver.conf
|
||||
├── helper (simple helper scripts for ah-bot and clearing ah-bot)
|
||||
│ ├── clear-ah.sh
|
||||
│ └── find-character.sh
|
||||
├── lib
|
||||
│ ├── clear-bots.sql
|
||||
│ ├── general-settings.sh
|
||||
│ └── merge_core.sh (maybe when your abit more advanced with git and concepts like rebase and merge, but this merges the original azerothcore into the playerbot fork, if e.g. the u need a fix asap)
|
||||
└── variables.sh (contains project variables such as realm IP and name, min-max items for ah-bot etc.
|
||||
````
|
||||
|
||||
General info
|
||||
The ah-bot and playerbots modules are integrated sort off, you will need to create an account for th ah-bot and complete the
|
||||
ah-bot config by using the find-character.sh script.
|
||||
|
||||
And every start all bots data will be deleted to maintai a clean database and remain the balance between the
|
||||
levels of among the bots as they grow over time.
|
||||
|
||||
# Client
|
||||
3.3.5a (Can be found through chromiecraft or simply join that server hosted and developed y azerothcore
|
||||
|
||||
Addons:
|
||||
- Allstats
|
||||
- QuestHelper
|
||||
- UnBot (english version), used to control the playerbots
|
||||
- AI_VoiceOver
|
||||
- AI_VoiceOverData_Vanilla
|
||||
|
||||
# Server stability
|
||||
Obviously the more custom modules are installed the more risk of encountering problems, playerbot is still being developed.
|
||||
If you experience random disconnects without 'any' reason playerbot might be the cause, you might wanna try to rebuild/recompile the code and/or lower the bot amount)
|
||||
|
||||
# Changing config
|
||||
After changing the config files in the /config folder, run the following commands:
|
||||
- 1. config - by alias 'config' or running the 5_config.sh)
|
||||
- 2. Server restart - by stop/start or simply a 'AC> server restart 1' command in the world-server session
|
||||
|
||||
Submodule _download/azerothcore deleted from 5276676a11
Submodule _download/modules/mod-ah-bot deleted from 8b06eb4906
Submodule _download/modules/mod-playerbots deleted from 8816758490
Submodule _download/modules/mod-progression-system deleted from a174835688
@@ -2,8 +2,12 @@
|
||||
# START: custom authserver.conf settings
|
||||
#################################################################################################
|
||||
|
||||
LoginDatabase.WorkerThreads = 4
|
||||
LoginDatabase.SynchThreads = 4
|
||||
#-------------------------------------------------------------------
|
||||
# performance
|
||||
#-------------------------------------------------------------------
|
||||
LoginDatabase.WorkerThreads = 1
|
||||
LoginDatabase.SynchThreads = 1
|
||||
|
||||
|
||||
#################################################################################################
|
||||
# END: custom authserver.conf settings
|
||||
|
||||
@@ -2,57 +2,12 @@
|
||||
# START: custom mod_ahbot.conf settings
|
||||
#################################################################################################
|
||||
|
||||
|
||||
#-----------------------------------------------------------------------------------------------
|
||||
# Use helper/find-character.sh to locate your newly created ah account and character GUID
|
||||
#-----------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
# ah-bot account and character
|
||||
AuctionHouseBot.Account = 2
|
||||
AuctionHouseBot.GUID = 1
|
||||
|
||||
|
||||
# enable
|
||||
AuctionHouseBot.EnableSeller = 1
|
||||
AuctionHouseBot.EnableBuyer = 1
|
||||
AuctionHouseBot.ItemsPerCycle = 800
|
||||
|
||||
|
||||
# type of items being offered
|
||||
AuctionHouseBot.VendorItems = 1
|
||||
AuctionHouseBot.VendorTradeGoods = 1
|
||||
AuctionHouseBot.LootItems = 1
|
||||
AuctionHouseBot.LootTradeGoods = 1
|
||||
AuctionHouseBot.OtherItems = 0
|
||||
AuctionHouseBot.OtherTradeGoods = 0
|
||||
AuctionHouseBot.No_Bind = 1
|
||||
AuctionHouseBot.Bind_When_Picked_Up = 0
|
||||
AuctionHouseBot.Bind_When_Equipped = 1
|
||||
AuctionHouseBot.Bind_When_Use = 1
|
||||
AuctionHouseBot.Bind_Quest_Item = 0
|
||||
AuctionHouseBot.DisablePermEnchant = 0
|
||||
AuctionHouseBot.DisableConjured = 0
|
||||
AuctionHouseBot.DisableGems = 0
|
||||
AuctionHouseBot.DisableMoney = 0
|
||||
AuctionHouseBot.DisableMoneyLoot = 0
|
||||
AuctionHouseBot.DisableLootable = 0
|
||||
AuctionHouseBot.DisableKeys = 0
|
||||
AuctionHouseBot.DisableDuration = 0
|
||||
AuctionHouseBot.DisableBOP_Or_Quest_NoReqLevel = 0
|
||||
|
||||
# items for vanilla races only
|
||||
AuctionHouseBot.DisableDKItems = 1
|
||||
|
||||
# vanilla items only
|
||||
AuctionHouseBot.DisableItemsAboveLevel = 60
|
||||
AuctionHouseBot.DisableTGsAboveLevel = 60
|
||||
AuctionHouseBot.DisableItemsAboveReqLevel = 60
|
||||
AuctionHouseBot.DisableTGsAboveReqLevel = 60
|
||||
AuctionHouseBot.DisableItemsAboveReqSkillRank = 300
|
||||
AuctionHouseBot.DisableTGsAboveReqSkillRank = 300
|
||||
#-------------------------------------------------------------------
|
||||
#---- general
|
||||
#-------------------------------------------------------------------
|
||||
AuctionHouseBot.EnableSeller = false
|
||||
AuctionHouseBot.GUID = 0
|
||||
|
||||
#################################################################################################
|
||||
# END: custom mod_ahbot.conf settings
|
||||
#################################################################################################
|
||||
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
#################################################################################################
|
||||
# START: custom progression_system.conf settings
|
||||
# START: custom mod_player_bot_level_brackets.conf settings
|
||||
#################################################################################################
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
#---- general
|
||||
#-------------------------------------------------------------------
|
||||
BotLevelBrackets.Enabled = 1
|
||||
|
||||
#################################################################################################
|
||||
# END: custom progression_system.conf settings
|
||||
# END: custom mod_player_bot_level_brackets.conf settings
|
||||
#################################################################################################
|
||||
@@ -1,49 +1,266 @@
|
||||
#################################################################################################
|
||||
#####################################################################################################################
|
||||
# START: custom playerbots.conf settings
|
||||
#################################################################################################
|
||||
#####################################################################################################################
|
||||
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
# general
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
AiPlayerbot.Enabled = 1
|
||||
AiPlayerbot.DeleteRandomBotAccounts = 0
|
||||
AiPlayerbot.RandomBotAccountPrefix = "rndbot"
|
||||
AiPlayerbot.LimitTalentsExpansion = 0
|
||||
|
||||
# Bot group invitation permission level (0 = GM only, 1 = accept based on level, 2 = always accept)
|
||||
# Default: 1 (accept based on level)
|
||||
AiPlayerbot.GroupInvitationPermission = 1
|
||||
|
||||
# Disable randombots when no real players are logged in
|
||||
# Default: 0 (randombots will login when server starts)
|
||||
# If enabled, randombots will only log in 30 seconds (default) after a real player logs in, and will log out 300 seconds (default) after all real players log out
|
||||
AiPlayerbot.DisabledWithoutRealPlayer = 0
|
||||
AiPlayerbot.DisabledWithoutRealPlayerLoginDelay = 30
|
||||
AiPlayerbot.DisabledWithoutRealPlayerLogoutDelay = 300
|
||||
|
||||
|
||||
# randombots (maps: 0=Eastern 1=Kingdoms, Kalimdor, 530=Outland, 571=Northrend)
|
||||
AiPlayerbot.MinRandomBots = 2250
|
||||
AiPlayerbot.MaxRandomBots = 2300
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
# randombots
|
||||
# - RandomBotMaps: 0=Eastern Kingdoms, 1=Kalimdor, 530=Outland, 571=Northrend
|
||||
# - RandombotStartingLevel (if 'DisableRandomLevels' disabled): below 5 will
|
||||
# cause lag if not worse, due the design of level 1 areas they will cluster
|
||||
# which is hard for the server to deal with.
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
AiPlayerbot.MinRandomBots = 500
|
||||
AiPlayerbot.MaxRandomBots = 500
|
||||
#AiPlayerbot.MinRandomBots = 3000
|
||||
#AiPlayerbot.MaxRandomBots = 3000
|
||||
AiPlayerbot.RandomBotMinLevel = 1
|
||||
AiPlayerbot.RandomBotMaxLevel = 30
|
||||
AiPlayerbot.RandomBotMaxLevelChance = 0.1
|
||||
AiPlayerbot.RandomBotMaxLevel = 80
|
||||
AiPlayerbot.DisableDeathKnightLogin = 0
|
||||
AiPlayerbot.RandomBotAllianceRatio = 50
|
||||
AiPlayerbot.RandomBotHordeRatio = 50
|
||||
|
||||
AiPlayerbot.RandomBotAccountCount = 0
|
||||
#AiPlayerbot.RandomBotAccountCount = 500
|
||||
|
||||
AiPlayerbot.RandomBotMaps = 0,1,530,571
|
||||
AiPlayerbot.AutoTeleportForLevel = 1
|
||||
AiPlayerbot.ProbTeleToBankers = 0.20
|
||||
AiPlayerbot.RandomBotTeleportDistance = 100
|
||||
AiPlayerbot.RandomBotTeleLowerLevel = 1
|
||||
AiPlayerbot.RandomBotTeleHigherLevel = 3
|
||||
AiPlayerbot.ProbTeleToBankers = 0.25
|
||||
|
||||
AiPlayerbot.RandomBotFixedLevel = 0
|
||||
AiPlayerbot.DisableRandomLevels = 0
|
||||
AiPlayerbot.SyncLevelWithPlayers = 0
|
||||
|
||||
AiPlayerbot.RandomBotMaps = 0,1
|
||||
AiPlayerbot.RandomBotTeleLowerLevel = 3
|
||||
AiPlayerbot.RandomBotTeleHigherLevel = 1
|
||||
AiPlayerbot.AutoTeleportForLevel = 1
|
||||
AiPlayerbot.SyncQuestWithPlayer = 1
|
||||
AiPlayerbot.PreQuests = 0
|
||||
AiPlayerbot.AutoDoQuests = 1
|
||||
AiPlayerbot.RandomBotGroupNearby = 0
|
||||
AiPlayerbot.AutoLearnQuestSpells = 1
|
||||
AiPlayerbot.EquipmentPersistence = 1
|
||||
AiPlayerbot.SummonWhenGroup = 0
|
||||
|
||||
AiPlayerbot.AggroDistance = 40
|
||||
AiPlayerbot.RandombotStartingLevel = 1
|
||||
AiPlayerbot.RandomBotMinLevelChance = 0.1
|
||||
AiPlayerbot.RandomBotMaxLevelChance = 0.1
|
||||
|
||||
# Randombots will behave more like real players (experimental)
|
||||
# This option will override AiPlayerbot.AutoDoQuests, RandomBotTeleLowerLevel, and RandomBotTeleHigherLevel
|
||||
# Default: 1 (enabled)
|
||||
AiPlayerbot.EnableNewRpgStrategy = 1
|
||||
|
||||
# Control probability weights for RPG status of bots. Takes effect only when the status meets its premise.
|
||||
# Sum of weights need not be 100. Set to 0 to disable the status.
|
||||
#
|
||||
# WanderRandom (Default: 15 Move randomly nearby to find and kill mobs)
|
||||
# WanderNpc (Default: 20 Randomly interact with nearby NPCs)
|
||||
# GoGrind (Default: 15 Go to nearby level-appropriate locations to grind for killing mobs)
|
||||
# GoCamp (Default: 10 Return to a nearby camp depending on innkeeper/flightmaster)
|
||||
# DoQuest (Default: 60 Select quest from the quest log and head to the location to attempt completion)
|
||||
# TravelFlight (Default: 15 Go to the nearest flightmaster and fly to a level-appropriate area)
|
||||
# Rest (Default: 5 Take a break for a while and do nothing)
|
||||
AiPlayerbot.RpgStatusProbWeight.WanderRandom = 15
|
||||
AiPlayerbot.RpgStatusProbWeight.WanderNpc = 20
|
||||
AiPlayerbot.RpgStatusProbWeight.GoGrind = 15
|
||||
AiPlayerbot.RpgStatusProbWeight.GoCamp = 10
|
||||
AiPlayerbot.RpgStatusProbWeight.DoQuest = 60
|
||||
AiPlayerbot.RpgStatusProbWeight.TravelFlight = 15
|
||||
AiPlayerbot.RpgStatusProbWeight.Rest = 5
|
||||
|
||||
# Enable/Disable cheats for bots
|
||||
# "gold" (bots have infinite gold)
|
||||
# "health" (bots have infinite health)
|
||||
# "mana" (bots have infinite mana)
|
||||
# "power" (bots have infinite energy, rage, and runic power)
|
||||
# "taxi" (bots may use all flight paths, though they will not actually learn them)
|
||||
# "raid" (bots use cheats implemented into raid strategies)
|
||||
AiPlayerbot.BotCheats = "taxi,raid"
|
||||
|
||||
|
||||
# world account bots and rotation
|
||||
AiPlayerbot.EnableRotation = 1
|
||||
AiPlayerbot.RotationPoolSize = 2400
|
||||
AiPlayerbot.RandomBotAccountCount = 300
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
# command
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
AiPlayerbot.AutoGearCommand = 1
|
||||
AiPlayerbot.AutoGearCommandAltBots = 1
|
||||
AiPlayerbot.MaintenanceCommand = 1
|
||||
|
||||
# bots gear level limits
|
||||
# Equipment quality limitation for autogear command (1 = normal, 2 = uncommon, 3 = rare, 4 = epic, 5 = legendary)
|
||||
# Default: 3 (rare)
|
||||
AiPlayerbot.AutoGearQualityLimit = 3
|
||||
AiPlayerbot.LimitEnchantExpansion = 60
|
||||
AiPlayerbot.LimitGearExpansion = 60
|
||||
|
||||
# Equipment item level (not gearscore) limitation for autogear command (0 = no limit)
|
||||
# Classic
|
||||
# Max iLVL Tier 1 = 66 | Tier 2 = 76 | Tier 2.5 = 88 | Tier 3 = 92
|
||||
# Max iLVL Phase 1(MC, Ony, ZG) = 78 | Phase 2(BWL) = 83 | Phase 2.5(AQ40) = 88 | Phase 3(Naxx40) = 92
|
||||
# TBC
|
||||
# Max iLVL Tier 4 = 120 | Tier 5 = 133 | Tier 6 = 164
|
||||
# Max iLVL Phase 1(Kara, Gruul, Mag) = 125 | Phase 1.5(ZA) = 138 | Phase 2(SC, TK) = 141 | Phase 3(Hyjal, BT) = 156 | Phase 4(Sunwell) = 164
|
||||
# Wotlk
|
||||
# Max iLVL Tier 7(10/25) = 200/213 | Tier 8(10/25) = 225/232 | Tier 9(10/25) = 232/245 | Tier 10(10/25/HC) = 251/264/290
|
||||
# Max iLVL Phase 1(Naxx) = 224 | Phase 2(Ulduar) = 245 | Phase 3(ToC) = 258 | Phase 4(ICC) = 290
|
||||
# Default: 0 (no limit)
|
||||
AiPlayerbot.AutoGearScoreLimit = 0
|
||||
|
||||
# player summoned group/raid bots limits
|
||||
AiPlayerbot.AllowPlayerBots = 1
|
||||
AiPlayerbot.AllowGuildBots = 1
|
||||
|
||||
AiPlayerbot.AddClassCommand = 1
|
||||
AiPlayerbot.MaxAddedBots = 40
|
||||
AiPlayerbot.MaxAddedBotsPerClass = 10
|
||||
AiPlayerbot.AddClassAccountPoolSize = 50
|
||||
|
||||
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
# chat and broadcast (default; RepeatDelay = 2000)
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
AiPlayerbot.EnableBroadcasts = 0
|
||||
AiPlayerbot.RandomBotTalk = 0
|
||||
AiPlayerbot.RandomBotEmote = 0
|
||||
AiPlayerbot.RandomBotSuggestDungeons = 0
|
||||
AiPlayerbot.EnableGreet = 0
|
||||
AiPlayerbot.ToxicLinksRepliesChance = 0
|
||||
AiPlayerbot.ThunderfuryRepliesChance = 0
|
||||
AiPlayerbot.GuildRepliesRate = 0
|
||||
AIPlayerbot.GuildFeedback = 0
|
||||
AiPlayerbot.RandomBotSayWithoutMaster = 0
|
||||
AiPlayerbot.SayWhenCollectingItems = 0
|
||||
|
||||
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
# intervals
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
#AiPlayerbot.RandomBotUpdateInterval = 20
|
||||
AiPlayerbot.RandomBotUpdateInterval = 1
|
||||
AiPlayerbot.RandomBotCountChangeMinInterval = 1800
|
||||
AiPlayerbot.RandomBotCountChangeMaxInterval = 7200
|
||||
AiPlayerbot.MinRandomBotInWorldTime = 3600
|
||||
AiPlayerbot.MaxRandomBotInWorldTime = 1209600
|
||||
AiPlayerbot.MinRandomBotRandomizeTime = 7200
|
||||
AiPlayerbot.MaxRandomBotRandomizeTime = 1209600
|
||||
AiPlayerbot.RandomBotsPerInterval = 60
|
||||
AiPlayerbot.MinRandomBotReviveTime = 60
|
||||
AiPlayerbot.MaxRandomBotReviveTime = 300
|
||||
AiPlayerbot.MinRandomBotTeleportInterval = 3600
|
||||
AiPlayerbot.MaxRandomBotTeleportInterval = 18000
|
||||
AiPlayerbot.RandomBotInWorldWithRotationDisabled = 31104000
|
||||
|
||||
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
# timers
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
#AiPlayerbot.IterationsPerTick = 200
|
||||
AiPlayerbot.IterationsPerTick = 10
|
||||
AiPlayerbot.GlobalCooldown = 500
|
||||
AiPlayerbot.MaxWaitForMove = 5000
|
||||
AiPlayerbot.DisableMoveSplinePath = 1
|
||||
AiPlayerbot.MaxMovementSearchTime = 3
|
||||
AiPlayerbot.ExpireActionTime = 5000
|
||||
AiPlayerbot.DispelAuraDuration = 700
|
||||
AiPlayerbot.ReactDelay = 100
|
||||
AiPlayerbot.DynamicReactDelay = 0
|
||||
AiPlayerbot.PassiveDelay = 5000
|
||||
AiPlayerbot.RepeatDelay = 3000
|
||||
AiPlayerbot.ErrorDelay = 100
|
||||
AiPlayerbot.RpgDelay = 8000
|
||||
AiPlayerbot.SitDelay = 10000
|
||||
AiPlayerbot.ReturnDelay = 2000
|
||||
AiPlayerbot.LootDelay = 1000
|
||||
|
||||
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
# distance
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
AiPlayerbot.FarDistance = 20.0
|
||||
AiPlayerbot.SightDistance = 75.0
|
||||
AiPlayerbot.SpellDistance = 28.5
|
||||
AiPlayerbot.ShootDistance = 26.0
|
||||
AiPlayerbot.ReactDistance = 150.0
|
||||
AiPlayerbot.GrindDistance = 75.0
|
||||
AiPlayerbot.HealDistance = 38.5
|
||||
AiPlayerbot.LootDistance = 25.0
|
||||
AiPlayerbot.FleeDistance = 8.0
|
||||
AiPlayerbot.TooCloseDistance = 5.0
|
||||
AiPlayerbot.MeleeDistance = 1.5
|
||||
AiPlayerbot.FollowDistance = 1.5
|
||||
AiPlayerbot.WhisperDistance = 6000.0
|
||||
AiPlayerbot.ContactDistance = 0.5
|
||||
AiPlayerbot.AoeRadius = 10
|
||||
AiPlayerbot.RpgDistance = 200
|
||||
AiPlayerbot.AggroDistance = 22
|
||||
|
||||
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
# performance related
|
||||
PlayerbotsDatabase.WorkerThreads = 1
|
||||
PlayerbotsDatabase.SynchThreads = 100
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
AiPlayerbot.BotActiveAlone = 10
|
||||
AiPlayerbot.BotActiveFreezeDuringServerInit = 1
|
||||
AiPlayerbot.BotActiveAloneForceWhenInRadius = 150
|
||||
AiPlayerbot.BotActiveAloneForceWhenInZone = 1
|
||||
AiPlayerbot.BotActiveAloneForceWhenInMap = 0
|
||||
# BotActiveAloneForceWhenIsFriend = 1 # hasFriend logic might cause a crash
|
||||
AiPlayerbot.BotActiveAloneForceWhenIsFriend = 0
|
||||
AiPlayerbot.BotActiveAloneForceWhenInGuild = 1
|
||||
AiPlayerbot.botActiveAloneSmartScale = 1
|
||||
AiPlayerbot.botActiveAloneSmartScaleDiffLimitfloor = 50
|
||||
AiPlayerbot.botActiveAloneSmartScaleDiffLimitCeiling = 200
|
||||
AiPlayerbot.botActiveAloneSmartScaleWhenMinLevel = 1
|
||||
AiPlayerbot.botActiveAloneSmartScaleWhenMaxLevel = 80
|
||||
|
||||
PlayerbotsDatabase.WorkerThreads = 1
|
||||
PlayerbotsDatabase.SynchThreads = 1
|
||||
|
||||
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
# custom strategies
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
#--------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
#################################################################################################
|
||||
# END: custom playerbots.conf settings
|
||||
|
||||
@@ -2,40 +2,93 @@
|
||||
# START: custom worldserver.conf settings
|
||||
#################################################################################################
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# world server config (Expansion 0 = classic, 1 = bc, 2 = wotlk)
|
||||
Expansion = 0
|
||||
MaxPlayerLevel = 60
|
||||
#-------------------------------------------------------------------
|
||||
Expansion = 2
|
||||
MaxPlayerLevel = 80
|
||||
GameType = 1
|
||||
PlayerLimit = 0
|
||||
logsDir = "/tmp/ac/logs"
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# new player config
|
||||
#-------------------------------------------------------------------
|
||||
StartPlayerMoney = 50000
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# server config
|
||||
#-------------------------------------------------------------------
|
||||
Instance.GMSummonPlayer = 1
|
||||
MailDeliveryDelay = 10
|
||||
MailDeliveryDelay = 30
|
||||
LeaveGroupOnLogout.Enabled = 0
|
||||
InstantLogout = 0
|
||||
DungeonFinder.CastDeserter = 0
|
||||
Battleground.CastDeserter = 0
|
||||
Battleground.TrackDeserters.Enable = 0
|
||||
GM.Chat = 0
|
||||
GM.LoginState = 0
|
||||
GM.WhisperingTo = 1
|
||||
GM.AllowInvite = 1
|
||||
GM.AllowFriend = 1
|
||||
GM.TicketSystem.ChanceOfGMSurvey = 0
|
||||
AllowTickets = 0
|
||||
#CloseIdleConnections = 1
|
||||
PreventAFKLogout = 2
|
||||
SocketTimeOutTimeActive = 300000
|
||||
AllFlightPaths = 1
|
||||
PlayerStart.AllReputation = 1
|
||||
InstantLogout = 0
|
||||
|
||||
# save (5m, default 10m)
|
||||
PlayerSaveInterval = 300000
|
||||
PlayerSave.Stats.SaveOnlyOnLogout = 0
|
||||
|
||||
# weather (5m, default 10m)
|
||||
ActivateWeather = 1
|
||||
ChangeWeatherInterval = 300000
|
||||
|
||||
# Otherwise playerbots wont accept quests
|
||||
Quests.IgnoreAutoAccept = 1
|
||||
|
||||
# 1 is default
|
||||
Respawn.DynamicRateCreature = 2
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# factions (Auction required for mod-ahbot)
|
||||
#-------------------------------------------------------------------
|
||||
AllowTwoSide.Interaction.Auction = 1
|
||||
AllowTwoSide.WhoList = 1
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# performance
|
||||
PreloadAllNonInstancedMapGrids = 0
|
||||
LoginDatabase.WorkerThreads = 1
|
||||
WorldDatabase.WorkerThreads = 1
|
||||
CharacterDatabase.WorkerThreads = 1
|
||||
#-------------------------------------------------------------------
|
||||
PreloadAllNonInstancedMapGrids = 1
|
||||
#SetAllCreaturesWithWaypointMovementActive = 0
|
||||
#DontCacheRandomMovementPaths = 1
|
||||
MoveMaps.Enable = 1
|
||||
|
||||
Compression = 1
|
||||
ProcessPriority = 1
|
||||
UseProcessors = 0
|
||||
Network.OutUBuff = 16384
|
||||
|
||||
ThreadPool = 2
|
||||
MapUpdate.Threads = 8
|
||||
Network.Threads = 1
|
||||
|
||||
MapUpdateInterval = 15
|
||||
MinWorldUpdateTime = 5
|
||||
|
||||
LoginDatabase.WorkerThreads = 2
|
||||
WorldDatabase.WorkerThreads = 2
|
||||
CharacterDatabase.WorkerThreads = 2
|
||||
|
||||
LoginDatabase.SynchThreads = 1
|
||||
WorldDatabase.SynchThreads = 1
|
||||
CharacterDatabase.SynchThreads = 2
|
||||
|
||||
Network.Threads = 1
|
||||
ThreadPool = 2
|
||||
|
||||
MapUpdate.Threads = 6
|
||||
MapUpdateInterval = 100
|
||||
MinWorldUpdateTime = 10
|
||||
|
||||
CharacterDatabase.SynchThreads = 1
|
||||
|
||||
#################################################################################################
|
||||
# END: custom worldserver.conf settings
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
read -p "This will delete all items of the auction house, are you sure? (Y)es/(N)o: " -n 1 -r
|
||||
echo " ";
|
||||
if [[ $REPLY =~ ^[Yy]$ ]];
|
||||
then
|
||||
|
||||
sudo mysql -u root --database="acore_characters" -e "DELETE FROM auctionhouse;"
|
||||
|
||||
fi
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -z "$1" ]
|
||||
then
|
||||
echo "Parameter is null, first paramter 'character name' should not be empty";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
# find character and account id by name, mainly used for configuring the ah-bot mod.
|
||||
sudo mysql -u root --database="acore_auth" -e "select acc.id as accountId, ch.guid as characterId from acore_auth.account as acc inner join acore_characters.characters as ch where acc.id = ch.account and acc.username = '${1}';"
|
||||
18
install_mysql_8.4.2_lts.md
Normal file
18
install_mysql_8.4.2_lts.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# Install or Update
|
||||
|
||||
Haven't tested the update, personally i did a new install. So test when in doubt.
|
||||
|
||||
1. Backup DB or use export characters through the AC (dump) command options.
|
||||
|
||||
2. Go to https://dev.mysql.com/downloads/repo/apt/ for the latest apt package
|
||||
|
||||
3.
|
||||
```bash
|
||||
wget https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
|
||||
sudo dpkg -i mysql-apt-config_0.8.32-1_all.deb
|
||||
|
||||
sudo apt update
|
||||
sudo apt install mysql-server
|
||||
````
|
||||
|
||||
Make sure your select 8.4.2 in the configuration screen ;)
|
||||
@@ -1,30 +0,0 @@
|
||||
DELETE FROM `acore_playerbots`.`playerbots_random_bots`;
|
||||
UPDATE `acore_characters`.`playerbots_names` SET `in_use`=0;
|
||||
DELETE FROM `acore_characters`.`characters` WHERE `account` IN (SELECT `id` FROM `acore_auth`.`account` WHERE `username` LIKE 'RNDBOT%') OR `account` NOT IN (SELECT `id` FROM `acore_auth`.`account`);
|
||||
DELETE FROM `acore_characters`.`character_account_data` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
|
||||
DELETE FROM `acore_characters`.`character_achievement` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
|
||||
DELETE FROM `acore_characters`.`character_achievement_progress` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
|
||||
DELETE FROM `acore_characters`.`character_action` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
|
||||
DELETE FROM `acore_characters`.`character_aura` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
|
||||
DELETE FROM `acore_characters`.`character_glyphs` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
|
||||
DELETE FROM `acore_characters`.`character_homebind` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
|
||||
DELETE FROM `acore_characters`.`item_instance` WHERE `owner_guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
|
||||
DELETE FROM `acore_characters`.`character_inventory` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
|
||||
DELETE FROM `acore_characters`.`pet_aura` WHERE `guid` IN (SELECT `id` FROM `acore_characters`.`character_pet` WHERE `owner` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`));
|
||||
DELETE FROM `acore_characters`.`pet_spell` WHERE `guid` IN (SELECT `id` FROM `acore_characters`.`character_pet` WHERE `owner` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`));
|
||||
DELETE FROM `acore_characters`.`pet_spell_cooldown` WHERE `guid` IN (SELECT `id` FROM `acore_characters`.`character_pet` WHERE `owner` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`));
|
||||
DELETE FROM `acore_characters`.`character_pet` WHERE `owner` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
|
||||
DELETE FROM `acore_characters`.`character_queststatus` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
|
||||
DELETE FROM `acore_characters`.`character_queststatus_rewarded` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
|
||||
DELETE FROM `acore_characters`.`character_reputation` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
|
||||
DELETE FROM `acore_characters`.`character_skills` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
|
||||
DELETE FROM `acore_characters`.`character_social` WHERE `friend` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
|
||||
DELETE FROM `acore_characters`.`character_spell` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
|
||||
DELETE FROM `acore_characters`.`character_spell_cooldown` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
|
||||
DELETE FROM `acore_characters`.`character_talent` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
|
||||
DELETE FROM `acore_characters`.`corpse` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
|
||||
DELETE FROM `acore_characters`.`groups` WHERE `leaderGuid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
|
||||
DELETE FROM `acore_characters`.`group_member` WHERE `memberGuid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
|
||||
DELETE FROM `acore_characters`.`mail` WHERE `receiver` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
|
||||
DELETE FROM `acore_characters`.`mail_items` WHERE `receiver` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
|
||||
DELETE FROM `acore_auth`.`account` WHERE `username` LIKE 'RNDBOT%';
|
||||
@@ -1,13 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
##########################################################################################
|
||||
# General settings
|
||||
##########################################################################################
|
||||
# Setting execute rights for the scripts
|
||||
sudo chmod +x ${ROOT_DIR}/*.sh
|
||||
sudo chmod +x ${ROOT_DIR}/lib/*.sh
|
||||
sudo chmod +x ${ROOT_DIR}/helper/*.sh
|
||||
|
||||
# Alias GIT (git lg for git commits, git ls for commits with changed files)
|
||||
git config --global alias.lg 'log --graph --abbrev-commit --decorate --date=relative --all'
|
||||
git config --global alias.ls 'log --stat --pretty=short --graph'
|
||||
249
readme.md
Normal file
249
readme.md
Normal file
@@ -0,0 +1,249 @@
|
||||
# azerothcore_installer
|
||||
For development and play
|
||||
|
||||
|
||||
[](https://www.youtube.com/watch?v=iCn14KLCerY)
|
||||
|
||||
## Server setup
|
||||
- VMWARE player
|
||||
- ubuntu-24.04-live-server-amd64.iso (minimal setup)
|
||||
- 100GB disk
|
||||
- 64 GB memory
|
||||
- assigned 16 threads (8 cores, 2 cores per thread) running on AMD 7945HX
|
||||
- network (bridged mode)
|
||||
|
||||
#### mysql 8.4.x (LTS)
|
||||
```
|
||||
mysql --help | grep my.cnf
|
||||
sudo nano /etc/mysql/my.cnf
|
||||
sudo systemctl restart mysql
|
||||
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
|
||||
# error while restart?
|
||||
sudo journalctl -xeu mysql.service --no-pager | tail -n 30
|
||||
```
|
||||
|
||||
/etc/mysql/mysql.conf.d/mysqld.cnf
|
||||
```
|
||||
[mysqld]
|
||||
# ------------------ Memory Usage ------------------
|
||||
innodb_buffer_pool_size = 24G
|
||||
innodb_buffer_pool_instances = 8
|
||||
innodb_log_buffer_size = 512M
|
||||
innodb_redo_log_capacity = 2G
|
||||
|
||||
# ------------------ I/O & NVMe Tuning ------------------
|
||||
innodb_flush_method = O_DIRECT # Avoid OS cache — best for NVMe
|
||||
innodb_use_fdatasync = ON
|
||||
innodb_io_capacity = 8000 # Pushes high IOPS for writes
|
||||
innodb_io_capacity_max = 16000 # Maximize during bursts
|
||||
|
||||
# ------------------ Temp Tables & Buffers ------------------
|
||||
tmp_table_size = 256M
|
||||
max_heap_table_size = 256M
|
||||
table_open_cache = 4096
|
||||
open_files_limit = 65535
|
||||
thread_cache_size = 200
|
||||
join_buffer_size = 2M
|
||||
sort_buffer_size = 4M
|
||||
read_buffer_size = 2M
|
||||
read_rnd_buffer_size = 1M
|
||||
|
||||
# ------------------ Concurrency / Threads ------------------
|
||||
thread_handling = one-thread-per-connection
|
||||
thread_cache_size = 64
|
||||
max_connections = 300
|
||||
table_open_cache = 4000
|
||||
open_files_limit = 65535
|
||||
|
||||
# ------------------ Locking/Deadlocks ------------------
|
||||
innodb_lock_wait_timeout = 10
|
||||
innodb_deadlock_detect = ON
|
||||
|
||||
# ------------------ File & Table Management ------------------
|
||||
innodb_file_per_table = 1
|
||||
|
||||
# ------------------ Logging / Debug ------------------
|
||||
slow_query_log = 1
|
||||
slow_query_log_file = /var/log/mysql/mysql-slow.log
|
||||
long_query_time = 1
|
||||
log_queries_not_using_indexes = 1
|
||||
binlog_expire_logs_seconds = 604800 # 7 days
|
||||
```
|
||||
|
||||
## How to start
|
||||
### Step 1
|
||||
```bash
|
||||
sudo apt update -y && sudo apt upgrade -y && sudo apt install -y git net-tools nano
|
||||
|
||||
git clone https://github.com/hermensbas/azerothcore_installer.git
|
||||
cd azerothcore_installer.git
|
||||
chmod +x *.sh
|
||||
|
||||
ifconfig (in order to find your ip)
|
||||
nano settings.env (update ur settings)
|
||||
|
||||
./setup.sh
|
||||
source ~/.bashrc
|
||||
|
||||
update
|
||||
build
|
||||
compile
|
||||
```
|
||||
|
||||
### Step 2
|
||||
disable playerbots
|
||||
```bash
|
||||
nano config/modules/playerbots.config
|
||||
AiPlayerbot.Enabled = 0
|
||||
```
|
||||
|
||||
disable ahbot
|
||||
```bash
|
||||
nano config/modules/mod_ahbot.config
|
||||
#AuctionHouseBot.Account = 0
|
||||
AuctionHouseBot.GUID = 0
|
||||
AuctionHouseBot.EnableSeller = 0
|
||||
#AuctionHouseBot.EnableBuyer = 0
|
||||
```
|
||||
|
||||
### Step 3
|
||||
Start the server
|
||||
```bash
|
||||
config
|
||||
start
|
||||
```
|
||||
|
||||
Create accounts
|
||||
```bash
|
||||
> account create ahbot mypass
|
||||
> account create admin mypass
|
||||
> account set gmlevel admin 3 -1
|
||||
```
|
||||
|
||||
### Step 4
|
||||
Logon the server with 'ahbot' and create lvl 1 char and logoff again.
|
||||
|
||||
Find ah-bot character settings
|
||||
```bash
|
||||
./script/find-character.sh ahbot
|
||||
accountId characterName characterId
|
||||
1 Yappe 1
|
||||
Find character executed...
|
||||
```
|
||||
|
||||
Configure and enable ahbot
|
||||
```bash
|
||||
nano config/modules/mod_ahbot.config
|
||||
#AuctionHouseBot.Account = 1
|
||||
AuctionHouseBot.GUID = 1
|
||||
AuctionHouseBot.EnableSeller = 1
|
||||
#AuctionHouseBot.EnableBuyer = 1
|
||||
```
|
||||
|
||||
Enable playerbots
|
||||
```bash
|
||||
nano config/modules/playerbots.config
|
||||
AiPlayerbot.Enabled = 1
|
||||
```
|
||||
|
||||
### Step 5
|
||||
|
||||
Stop server, re-apply configuration, and start server
|
||||
```bash
|
||||
ctrl + z
|
||||
stop
|
||||
config
|
||||
start
|
||||
```
|
||||
|
||||
## Client
|
||||
- 3.3.5a (Chromiecraft.com)
|
||||
- Chromiecraft HD patch optional or huge patch 2024 [23GB graphic patch](https://github.com/Marotheit/A-Guide-to-Modernizing-the-WotLK-Client/)
|
||||
|
||||
Personally i prefere the chromiecraft HD patch without the T-patch, blizzlike :)
|
||||
|
||||
##### ip server config
|
||||
Configure your server IP in 'data/enUS/realmlist.wtf' files
|
||||
|
||||
##### Addons ([download](https://felbite.com/chromiecraft-addons)):
|
||||
- Allstats
|
||||
- Mapster (map fog disabled, we wanna explore instead seeing the whole map out of the box)
|
||||
- Grid
|
||||
- UnBot ([english version](https://github.com/noisiver/unbot-addon/tree/english))
|
||||
- [AI_VoiceOver](https://github.com/mrthinger/wow-voiceover/releases/download/v1.4.3/AI_VoiceOver-WoW_3.3.5-v1.4.3.zip)
|
||||
- [AI_VoiceOverData_Vanilla](https://github.com/mrthinger/wow-voiceover/releases/download/v1.3.1/AI_VoiceOverData_Vanilla-v1.0.0.zip)
|
||||
- https://gitlab.com/Tsoukie/compactraidframe-3.3.5
|
||||
- https://github.com/Macx-Lio/MultiBot (still under development)
|
||||
|
||||
## Router port-forward if public
|
||||
Use the above (ifconfig) IP for the following router poort-forwarding and/or firewall rules settings.
|
||||
````
|
||||
# 3724 TCP AUTH-SERVER
|
||||
# 8085 TCP WORLD-SERVER
|
||||
````
|
||||
|
||||
## useful AC GM commands
|
||||
[Wiki reference](https://www.azerothcore.org/wiki/gm-commands)
|
||||
```bash
|
||||
.server info (shows latency and amount of bots)
|
||||
.modify speed <default 1>
|
||||
.gm fly on | off
|
||||
.modify money
|
||||
.appear
|
||||
.server shutdown 5
|
||||
.maxskill
|
||||
.learn all my class
|
||||
.level <amount of levels to add>
|
||||
.character level <name> <level>
|
||||
.teleport orgrimmar or .tel orgrimmar)
|
||||
.leave (when you want the group to leave you alone!)
|
||||
.addItem itemName (or ctrl+click the item)
|
||||
.lookup item ThunderFury
|
||||
.lookup event moonfair
|
||||
.event start|stop id
|
||||
.distance (amount of yards between you and selected target)
|
||||
.gps
|
||||
```
|
||||
|
||||
## useful bot commands
|
||||
Code references
|
||||
- See [mod-playerbot/src/strategy/actions/ChatActionContext.h](https://github.com/hermensbas/mod-playerbots/blob/master/src/strategy/actions/ChatActionContext.h) | cpp
|
||||
- See [mod-playerbot/src/strategy/action/ActionContext.h](https://github.com/hermensbas/mod-playerbots/blob/master/src/strategy/actions/ActionContext.h) | cpp
|
||||
- See [mod-playerbot/src/ChatFilter.cp](https://github.com/hermensbas/mod-playerbots/blob/master/src/ChatFilter.cpp)
|
||||
- See [mod-playerbot/src/PlayerbotMgr.cpp](https://github.com/hermensbas/mod-playerbots/blob/master/src/PlayerbotMgr.cpp#L692)
|
||||
- See unbot add-on tooltips
|
||||
|
||||
```bash
|
||||
# Unbot has init=auto but that doesnt always work, esp when ur level 1 (for now) alternativy use
|
||||
# the following or when the bots are to strong you can lower the equipment.
|
||||
|
||||
.playerbot bot init=white | common | uncommon | rare | epic | legendary
|
||||
.playerbot bot init=MaxItemLevel
|
||||
.playerbot rndbot init (re-randomize all bots again)
|
||||
(rndbot stats/update/reset/init/refresh/add/remove)
|
||||
|
||||
autogear (whenever init is broken, max equipment levelItem configured in playerbot.conf)
|
||||
maintenance ( e.g. clears quest log, smart destroy items in inventory etc)
|
||||
|
||||
# let alt bots attack other bot on sight in pvp zone
|
||||
nc +pvp
|
||||
nc -pvp
|
||||
|
||||
# equip urself
|
||||
.playerbot bot self, whisper yourself autogear and then use .playerbot bot self
|
||||
|
||||
# After init or talents respec make sure you reset bot AI (see unbot).
|
||||
.playerbot bot add <name-of-character-on-account> (or account name instead of character name to add all characters on an account
|
||||
|
||||
# while in BG
|
||||
.playerbots debug bg showpath=all
|
||||
```
|
||||
|
||||
Tank attack @dps attack in 10 seconds
|
||||
```
|
||||
@tank attack
|
||||
/in 10 @dps attack
|
||||
|
||||
or use
|
||||
you could also use co +passive to get the dps to not attack until you use co -passive
|
||||
```
|
||||
@@ -1,9 +1,6 @@
|
||||
#!/bin/bash
|
||||
ROOT_DIR="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
||||
source ${ROOT_DIR}/variables.sh
|
||||
|
||||
|
||||
read -p "This will DOWNLOAD and overwrite the current downloaded source code, are you sure? (Y)es/(N)o: " -n 1 -r
|
||||
read -p "This will install the source code. Are you sure? (Y)es/(N)o: " -n 1 -r
|
||||
echo " ";
|
||||
if [[ $REPLY =~ ^[Yy]$ ]];
|
||||
then
|
||||
@@ -11,7 +8,45 @@ then
|
||||
##########################################################################################
|
||||
# General dependencies
|
||||
##########################################################################################
|
||||
sudo apt update && sudo apt install -y unzip git sudo git
|
||||
sudo apt update && \
|
||||
sudo apt full-upgrade -y && \
|
||||
sudo apt-get install -y \
|
||||
unzip \
|
||||
git \
|
||||
sudo \
|
||||
git \
|
||||
btop \
|
||||
ncdu \
|
||||
unzip \
|
||||
git \
|
||||
sudo \
|
||||
git \
|
||||
tmux \
|
||||
sudo \
|
||||
curl \
|
||||
net-tools \
|
||||
locate \
|
||||
nano \
|
||||
software-properties-common
|
||||
|
||||
##########################################################################################
|
||||
# Install core dependencies (https://www.azerothcore.org/wiki/linux-requirements)
|
||||
##########################################################################################
|
||||
sudo apt-get update -y && \
|
||||
sudo apt-get install -y \
|
||||
git \
|
||||
cmake \
|
||||
make \
|
||||
gcc \
|
||||
g++ \
|
||||
clang \
|
||||
libmysqlclient-dev \
|
||||
libssl-dev \
|
||||
libbz2-dev \
|
||||
libreadline-dev \
|
||||
libncurses-dev \
|
||||
mysql-server \
|
||||
libboost-all-dev
|
||||
|
||||
|
||||
##########################################################################################
|
||||
@@ -19,7 +54,9 @@ then
|
||||
##########################################################################################
|
||||
if [ ! -d "${ROOT_DIR}/_download" ];
|
||||
then
|
||||
mkdir ${ROOT_DIR}/_download
|
||||
mkdir ${ROOT_DIR}/_download
|
||||
else
|
||||
rm -rf ${ROOT_DIR}/_download
|
||||
fi
|
||||
|
||||
|
||||
@@ -28,7 +65,7 @@ then
|
||||
##########################################################################################
|
||||
sudo rm -rf ${ROOT_DIR}/_download/azerothcore > /dev/null 2>&1
|
||||
git config --global --add safe.directory "${ROOT_DIR}/_download/azerothcore"
|
||||
git clone https://github.com/liyunfan1223/azerothcore-wotlk.git --branch=Playerbot ${ROOT_DIR}/_download/azerothcore
|
||||
git clone ${AC_WOTLK_REPO} --branch=${AC_WOTLK_REPO_BRANCH} ${ROOT_DIR}/_download/azerothcore
|
||||
|
||||
|
||||
##########################################################################################
|
||||
@@ -36,7 +73,7 @@ then
|
||||
##########################################################################################
|
||||
sudo rm -rf ${ROOT_DIR}/_download/modules/mod-playerbots > /dev/null 2>&1
|
||||
git config --global --add safe.directory "${ROOT_DIR}/_download/modules/mod-playerbots"
|
||||
git clone https://github.com/liyunfan1223/mod-playerbots.git ${ROOT_DIR}/_download/modules/mod-playerbots
|
||||
git clone ${AC_MODE_PLAYER_BOTS_REPO} --branch=${AC_MODE_PLAYER_BOTS_REPO_BRANCH} ${ROOT_DIR}/_download/modules/mod-playerbots
|
||||
|
||||
|
||||
##########################################################################################
|
||||
@@ -44,15 +81,15 @@ then
|
||||
##########################################################################################
|
||||
sudo rm -rf ${ROOT_DIR}/_download/modules/mod-ah-bot > /dev/null 2>&1
|
||||
git config --global --add safe.directory "${ROOT_DIR}/_download/modules/mod-ah-bot"
|
||||
git clone https://github.com/azerothcore/mod-ah-bot.git ${ROOT_DIR}/_download/modules/mod-ah-bot
|
||||
|
||||
git clone ${AC_MODE_AHBOT_REPO} --branch=${AC_MODE_AHBOT_REPO_BRANCH} ${ROOT_DIR}/_download/modules/mod-ah-bot
|
||||
|
||||
|
||||
##########################################################################################
|
||||
# Clone module mod-progression-system
|
||||
# Clone module /mod-player-bot-level-brackets
|
||||
##########################################################################################
|
||||
sudo rm -rf ${ROOT_DIR}/_download/modules/mod-progression-system > /dev/null 2>&1
|
||||
git config --global --add safe.directory "${ROOT_DIR}/_download/modules/mod-progression-system"
|
||||
git clone https://github.com/azerothcore/mod-progression-system.git ${ROOT_DIR}/_download/modules/mod-progression-system
|
||||
sudo rm -rf ${ROOT_DIR}/_download/modules/mod-player-bot-level-brackets > /dev/null 2>&1
|
||||
git config --global --add safe.directory "${ROOT_DIR}/_download/modules/mod-player-bot-level-brackets"
|
||||
git clone ${AC_MODE_BRACKETS_REPO} --branch=${AC_MODE_BRACKETS_REPO_BRANCH} ${ROOT_DIR}/_download/modules/mod-player-bot-level-brackets
|
||||
|
||||
|
||||
##########################################################################################
|
||||
@@ -61,7 +98,7 @@ then
|
||||
if ! [ -f ${ROOT_DIR}/_data/data.zip ];
|
||||
then
|
||||
mkdir -p ${ROOT_DIR}/_data > /dev/null 2>&1
|
||||
sudo curl -L https://github.com/wowgaming/client-data/releases/download/v16/data.zip --output ${ROOT_DIR}/_data/data.zip
|
||||
sudo curl -L https://github.com/wowgaming/client-data/releases/download/v17/data.zip --output ${ROOT_DIR}/_data/data.zip
|
||||
fi
|
||||
|
||||
|
||||
@@ -1,25 +1,16 @@
|
||||
#!/bin/bash
|
||||
ROOT_DIR="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
||||
source ${ROOT_DIR}/variables.sh
|
||||
|
||||
|
||||
read -p "This will UPDATE the current downloaded source code, are you sure? (Y)es/(N)o: " -n 1 -r
|
||||
read -p "This will update the source code. Are you sure? (Y)es/(N)o: " -n 1 -r
|
||||
echo " ";
|
||||
if [[ $REPLY =~ ^[Yy]$ ]];
|
||||
then
|
||||
|
||||
##########################################################################################
|
||||
# General dependencies
|
||||
##########################################################################################
|
||||
sudo apt update && sudo apt install -y git
|
||||
|
||||
|
||||
##########################################################################################
|
||||
# reset azerothcore to latest branch
|
||||
##########################################################################################
|
||||
git -C ${ROOT_DIR}/_download/azerothcore fetch origin
|
||||
git -C ${ROOT_DIR}/_download/azerothcore clean -fd
|
||||
git -C ${ROOT_DIR}/_download/azerothcore reset --hard origin/Playerbot
|
||||
git -C ${ROOT_DIR}/_download/azerothcore reset --hard origin/${AC_WOTLK_REPO_BRANCH}
|
||||
|
||||
|
||||
##########################################################################################
|
||||
@@ -27,7 +18,7 @@ then
|
||||
##########################################################################################
|
||||
git -C ${ROOT_DIR}/_download/modules/mod-playerbots fetch origin
|
||||
git -C ${ROOT_DIR}/_download/modules/mod-playerbots clean -fd
|
||||
git -C ${ROOT_DIR}/_download/modules/mod-playerbots reset --hard origin/master
|
||||
git -C ${ROOT_DIR}/_download/modules/mod-playerbots reset --hard origin/${AC_MODE_PLAYER_BOTS_REPO_BRANCH}
|
||||
|
||||
|
||||
##########################################################################################
|
||||
@@ -35,16 +26,14 @@ then
|
||||
##########################################################################################
|
||||
git -C ${ROOT_DIR}/_download/modules/mod-ah-bot fetch origin
|
||||
git -C ${ROOT_DIR}/_download/modules/mod-ah-bot clean -fd
|
||||
git -C ${ROOT_DIR}/_download/modules/mod-ah-bot reset --hard origin/master
|
||||
|
||||
git -C ${ROOT_DIR}/_download/modules/mod-ah-bot reset --hard origin/${AC_MODE_AHBOT_REPO_BRANCH}
|
||||
|
||||
##########################################################################################
|
||||
# reset mod-progression-system to latest branch
|
||||
# resetmod-player-bot-level-brackets to latest branch
|
||||
##########################################################################################
|
||||
git -C ${ROOT_DIR}/_download/modules/mod-progression-system fetch origin
|
||||
git -C ${ROOT_DIR}/_download/modules/mod-progression-system clean -fd
|
||||
git -C ${ROOT_DIR}/_download/modules/mod-progression-system reset --hard origin/main
|
||||
|
||||
git -C ${ROOT_DIR}/_download/modules/mod-player-bot-level-brackets fetch origin
|
||||
git -C ${ROOT_DIR}/_download/modules/mod-player-bot-level-brackets clean -fd
|
||||
git -C ${ROOT_DIR}/_download/modules/mod-player-bot-level-brackets reset --hard origin/${AC_MODE_BRACKETS_REPO_BRANCH}
|
||||
|
||||
echo "Executed..."
|
||||
|
||||
@@ -1,19 +1,10 @@
|
||||
#!/bin/bash
|
||||
ROOT_DIR="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
||||
source ${ROOT_DIR}/variables.sh
|
||||
|
||||
|
||||
read -p "This will (re)build the server with the downloaded resources, are you sure? (Y)es/(N)o: " -n 1 -r
|
||||
read -p "This will build server. Are you sure? (Y)es/(N)o: " -n 1 -r
|
||||
echo " ";
|
||||
if [[ $REPLY =~ ^[Yy]$ ]];
|
||||
then
|
||||
|
||||
##########################################################################################
|
||||
# General dependencies
|
||||
##########################################################################################
|
||||
sudo apt update && sudo apt install -y unzip
|
||||
|
||||
|
||||
##########################################################################################
|
||||
# Rebuild server folder based on downloaded source codes
|
||||
##########################################################################################
|
||||
@@ -29,6 +20,19 @@ then
|
||||
unzip ${ROOT_DIR}/_data/data.zip -d ${DATAPATH} || exit 1
|
||||
|
||||
|
||||
##########################################################################################
|
||||
# Copy certain mod sql scripts into server custom folders (only if required)
|
||||
##########################################################################################
|
||||
#mkdir -p ${ROOT_DIR}/_server/azerothcore/data/sql/custom/db_world && \
|
||||
# cp -r ${ROOT_DIR}/_download/modules/mod-ah-bot/data/sql/db-world/mod_auctionhousebot.sql \
|
||||
# ${ROOT_DIR}/_server/azerothcore/data/sql/custom/db_world/
|
||||
|
||||
|
||||
##########################################################################################
|
||||
# set folder rights to current user
|
||||
##########################################################################################
|
||||
sudo chown -R $USER ${ROOT_DIR}
|
||||
|
||||
|
||||
echo "Executed..."
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
#!/bin/bash
|
||||
ROOT_DIR="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
||||
source ${ROOT_DIR}/variables.sh
|
||||
|
||||
|
||||
read -p "This will (re)compile server, are you sure? (Y)es/(N)o: " -n 1 -r
|
||||
read -p "This will compile server. Are you sure? (Y)es/(N)o: " -n 1 -r
|
||||
echo " ";
|
||||
if [[ $REPLY =~ ^[Yy]$ ]];
|
||||
then
|
||||
@@ -11,41 +8,25 @@ then
|
||||
##########################################################################################
|
||||
# General dependencies
|
||||
##########################################################################################
|
||||
sudo apt update && \
|
||||
sudo apt full-upgrade -y && \
|
||||
sudo apt-get install -y \
|
||||
btop \
|
||||
tmux \
|
||||
sudo \
|
||||
curl \
|
||||
net-tools \
|
||||
locate \
|
||||
nano \
|
||||
software-properties-common
|
||||
#sudo apt update && \
|
||||
# sudo apt full-upgrade -y && \
|
||||
# sudo apt-get install -y btop ncdu tmux sudo curl net-tools locate nano software-properties-common
|
||||
|
||||
|
||||
##########################################################################################
|
||||
# Install core dependencies (https://www.azerothcore.org/wiki/linux-requirements)
|
||||
##########################################################################################
|
||||
sudo ${ROOT_DIR}/_server/azerothcore/acore.sh install-deps && \
|
||||
sudo apt-get update && \
|
||||
sudo apt-get install \
|
||||
git \
|
||||
cmake \
|
||||
make \
|
||||
gcc \
|
||||
g++ \
|
||||
clang \
|
||||
libmysqlclient-dev \
|
||||
libssl-dev \
|
||||
libbz2-dev libreadline-dev \
|
||||
libncurses-dev mysql-server \
|
||||
libboost-all-dev
|
||||
#sudo ${ROOT_DIR}/_server/azerothcore/acore.sh install-deps && \
|
||||
# sudo apt-get update -y && \
|
||||
# sudo apt-get install -y git cmake make gcc g++ clang libmysqlclient-dev libssl-dev libbz2-dev libreadline-dev libncurses-dev mysql-server libboost-all-dev
|
||||
|
||||
|
||||
##########################################################################################
|
||||
# Compile the code
|
||||
# https://github.com/azerothcore/azerothcore-wotlk/blob/master/apps/compiler/compiler.sh
|
||||
# when module code changed there is no need for a full compile like below 'compile all'
|
||||
# in that case 'compile build' is enough and much much faster
|
||||
# https://www.azerothcore.org/wiki/linux-core-installation
|
||||
##########################################################################################
|
||||
sudo ${ROOT_DIR}/_server/azerothcore/acore.sh compiler clean
|
||||
sudo ${ROOT_DIR}/_server/azerothcore/acore.sh compiler configure
|
||||
@@ -53,9 +34,10 @@ then
|
||||
|
||||
|
||||
##########################################################################################
|
||||
# Ensure all folder and files are accesible for the current user
|
||||
# set folder rights to current user
|
||||
##########################################################################################
|
||||
sudo find ${ROOT_DIR}/_server/ -user root -exec sudo chown $USER: {} +
|
||||
sudo chown -R $USER ${ROOT_DIR}
|
||||
|
||||
|
||||
echo "Executed..."
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
#!/bin/bash
|
||||
ROOT_DIR="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
||||
source ${ROOT_DIR}/variables.sh
|
||||
|
||||
|
||||
read -p "This will initialize and apply the config, are you sure? (Y)es/(N)o: " -n 1 -r
|
||||
read -p "This will configur the server, are you sure? (Y)es/(N)o: " -n 1 -r
|
||||
echo " ";
|
||||
if [[ $REPLY =~ ^[Yy]$ ]];
|
||||
then
|
||||
@@ -14,6 +11,12 @@ then
|
||||
sudo service mysql start
|
||||
|
||||
|
||||
##########################################################################################
|
||||
# USER CONFIG
|
||||
##########################################################################################
|
||||
set -a; source ${ROOT_DIR}/settings.env; set +a
|
||||
|
||||
|
||||
##########################################################################################
|
||||
# Create acore account
|
||||
##########################################################################################
|
||||
@@ -27,6 +30,7 @@ then
|
||||
# Recompile default conf files
|
||||
##########################################################################################
|
||||
sudo ${ROOT_DIR}/_server/azerothcore/acore.sh compiler configure
|
||||
mkdir -p /tmp/ac/logs
|
||||
|
||||
|
||||
##########################################################################################
|
||||
@@ -58,36 +62,29 @@ then
|
||||
${ROOT_DIR}/_server/azerothcore/env/dist/etc/modules/mod_ahbot.conf.dist > \
|
||||
${ROOT_DIR}/_server/azerothcore/env/dist/etc/modules/mod_ahbot.conf | exit 1
|
||||
|
||||
sudo cat ${ROOT_DIR}/config/modules/progression_system.conf \
|
||||
${ROOT_DIR}/_server/azerothcore/env/dist/etc/modules/progression_system.conf.dist > \
|
||||
${ROOT_DIR}/_server/azerothcore/env/dist/etc/modules/progression_system.conf | exit 1
|
||||
|
||||
sudo cat ${ROOT_DIR}/config/modules/mod_player_bot_level_brackets.conf \
|
||||
${ROOT_DIR}/_server/azerothcore/env/dist/etc/modules/mod_player_bot_level_brackets.conf.dist > \
|
||||
${ROOT_DIR}/_server/azerothcore/env/dist/etc/modules/mod_player_bot_level_brackets.conf | exit 1
|
||||
|
||||
##########################################################################################
|
||||
# Set alias to start, stop and open wow or auth tmux sessions
|
||||
# Apply server realm configuration
|
||||
##########################################################################################
|
||||
echo "ROOT_DIR=${ROOT_DIR}" > ~/.bash_aliases
|
||||
echo "DATAPATH=${DATAPATH}" >> ~/.bash_aliases
|
||||
echo "alias update='${ROOT_DIR}/2_update.sh'" >> ~/.bash_aliases
|
||||
echo "alias build='${ROOT_DIR}/3_build.sh'" >> ~/.bash_aliases
|
||||
echo "alias compile='${ROOT_DIR}/4_compile.sh'" >> ~/.bash_aliases
|
||||
echo "alias config='${ROOT_DIR}/5_config.sh'" >> ~/.bash_aliases
|
||||
echo "alias start='${ROOT_DIR}/6_start.sh'" >> ~/.bash_aliases
|
||||
echo "alias stop='tmux kill-server'" >> ~/.bash_aliases
|
||||
echo "alias wow='cd ${ROOT_DIR}/_server/azerothcore;tmux attach -t ${WORLDSERVER_SESSION}'" >> ~/.bash_aliases
|
||||
echo "alias auth='cd ${ROOT_DIR}/_server/azerothcore;tmux attach -t ${AUTHSERVER_SESSION}'" >> ~/.bash_aliases
|
||||
source ${ROOT_DIR}/script/update_realm_ip.sh ${REALM_IP}
|
||||
source ${ROOT_DIR}/script/update_realm_name.sh ${REALM_NAME}
|
||||
echo " "
|
||||
echo "###########################################################################################"
|
||||
echo "## After the first install or changes either reboot or TYPE! 'source ~/.bashrc'"
|
||||
echo "###########################################################################################"
|
||||
echo "## After the above you can use the following commands:"
|
||||
echo "### start - starts auth and world in tmux sessions server"
|
||||
echo "### stop - starts all servers"
|
||||
echo "### wow - logon world-server tmux session"
|
||||
echo "### auth - logon auth-server tmux session"
|
||||
echo "### update - updates the current downloaded source-code, after rerun: build, compile and config."
|
||||
echo "### build - (re)builds the server based on the downloaded/updated source-codes"
|
||||
echo "### compile - (re)compiles the server based on the build server"
|
||||
echo "### config - applies configuration settings defined in the 'config' folder"
|
||||
echo "###########################################################################################"
|
||||
|
||||
|
||||
##########################################################################################
|
||||
# Apply ah-bot custom configuration
|
||||
##########################################################################################
|
||||
#source ${ROOT_DIR}/script/update_ahbot_config.sh ${AH_BOT_MIN_ITEMS} ${AH_BOT_MAX_ITEMS}
|
||||
#echo " "
|
||||
|
||||
|
||||
##########################################################################################
|
||||
# Clear playerbots account and characters (enforces performance and bot levels balance)
|
||||
##########################################################################################
|
||||
source ${ROOT_DIR}/script/clear_playerbots.sh
|
||||
echo " "
|
||||
|
||||
fi
|
||||
34
script/6_server-start.sh
Executable file
34
script/6_server-start.sh
Executable file
@@ -0,0 +1,34 @@
|
||||
#!/bin/bash
|
||||
|
||||
##########################################################################################
|
||||
# handle the tmux sessions
|
||||
##########################################################################################
|
||||
if tmux new-session -d -s $AUTHSERVER_SESSION; then
|
||||
echo "Created authserver session: $AUTHSERVER_SESSION"
|
||||
else
|
||||
echo "Error when trying to create authserver session: $AUTHSERVER_SESSION"
|
||||
fi
|
||||
echo " "
|
||||
|
||||
if tmux new-session -d -s $WORLDSERVER_SESSION; then
|
||||
echo "Created worldserver session: $WORLDSERVER_SESSION"
|
||||
else
|
||||
echo "Error when trying to create worldserver session: $WORLDSERVER_SESSION"
|
||||
fi
|
||||
echo " "
|
||||
|
||||
if tmux send-keys -t $AUTHSERVER_SESSION "${SERVER_ROOT}/acore.sh run-authserver" C-m; then
|
||||
echo "Executed \"${SERVER_ROOT}/acore.sh run-authserver \" inside $AUTHSERVER_SESSION"
|
||||
else
|
||||
echo "Error when executing \"${SERVER_ROOT}/acore.sh run-authserver\" inside $AUTHSERVER_SESSION"
|
||||
fi
|
||||
echo " "
|
||||
|
||||
if tmux send-keys -t $WORLDSERVER_SESSION "${SERVER_ROOT}/acore.sh run-worldserver" C-m; then
|
||||
echo "Executed \"${SERVER_ROOT}/acore.sh run-worldserver\" inside $WORLDSERVER_SESSION"
|
||||
else
|
||||
echo "Error when executing \"${SERVER_ROOT}/acore.sh run-worldserver\" inside $WORLDSERVER_SESSION"
|
||||
fi
|
||||
|
||||
echo " "
|
||||
source ${ROOT_DIR}/script/menu.sh
|
||||
5
script/clear_auctionhouse.sh
Executable file
5
script/clear_auctionhouse.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
sudo mysql -u root --database="acore_characters" < ${ROOT_DIR}/sql/clear_auctionhouse.sql
|
||||
|
||||
echo "Auction house items deleted..."
|
||||
5
script/clear_playerbots.sh
Executable file
5
script/clear_playerbots.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
sudo mysql -u root --database="acore_characters" < ${ROOT_DIR}/sql/clear_playerbots.sql
|
||||
|
||||
echo "Playerbots accounts and characters deleted..."
|
||||
15
script/find_characters.sh
Executable file
15
script/find_characters.sh
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
# param 1
|
||||
ACCOUNT_NAME=$1;
|
||||
if [ -z "$ACCOUNT_NAME" ]
|
||||
then
|
||||
echo "First parameter 'ACCOUNT_NAME' is required";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
sed -e "s/{{ACCOUNT_NAME}}/$ACCOUNT_NAME/g" \
|
||||
"${ROOT_DIR}/sql/find_character.sql" > "/tmp/find_character.sql"
|
||||
sudo mysql -u root --database="acore_characters" < /tmp/find_character.sql
|
||||
|
||||
echo "Find character executed..."
|
||||
5
script/git-alias.sh
Executable file
5
script/git-alias.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Alias GIT (git lg for git commits, git ls for commits with changed files)
|
||||
git config --global alias.lg 'log --graph --abbrev-commit --decorate --date=relative --all'
|
||||
git config --global alias.ls 'log --stat --pretty=short --graph'
|
||||
14
script/menu.sh
Executable file
14
script/menu.sh
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "###########################################################################################"
|
||||
echo "### menu - Shows menu"
|
||||
echo "### install - Download the source source-code"
|
||||
echo "### update - Updates source-code to latest version"
|
||||
echo "### build - Builds the server based on source-code"
|
||||
echo "### compile - Compiles the code based on the build server"
|
||||
echo "### config - Applies the server configration"
|
||||
echo "### start - starts auth and world in tmux sessions server"
|
||||
echo "### stop - stops all sessions"
|
||||
echo "### wow - logon world-server (tmux) session"
|
||||
echo "### auth - logon auth-server (tmux) session"
|
||||
echo "###########################################################################################"
|
||||
@@ -1,6 +1,4 @@
|
||||
#!/bin/bash
|
||||
ROOT_DIR="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
||||
|
||||
|
||||
##########################################################################################
|
||||
# General dependencies
|
||||
@@ -14,7 +12,7 @@ then
|
||||
##########################################################################################
|
||||
# Try to merge from the orginal azerothcore into the playerbot azerothcore fork branch
|
||||
##########################################################################################
|
||||
cd ${ROOT_DIR}/../_download/azerothcore
|
||||
cd ${ROOT_DIR}/_download/azerothcore
|
||||
git reset --hard origin/Playerbot
|
||||
git fetch upstream
|
||||
git merge upstream/master
|
||||
28
script/update_ahbot_config.sh
Executable file
28
script/update_ahbot_config.sh
Executable file
@@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
|
||||
# param 1
|
||||
AH_BOT_MIN_ITEMS=$1;
|
||||
if [ -z "$AH_BOT_MIN_ITEMS" ]
|
||||
then
|
||||
echo "First parameter 'AH_BOT_MIN_ITEMS' is required";
|
||||
echo "Second parameter 'AH_BOT_MAX_ITEMS' is required";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
# param 2
|
||||
AH_BOT_MAX_ITEMS=$2;
|
||||
if [ -z "$AH_BOT_MAX_ITEMS" ]
|
||||
then
|
||||
echo "Second parameter 'AH_BOT_MAX_ITEMS' is required";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
sed -e "s/{{AH_BOT_MIN_ITEMS}}/$AH_BOT_MIN_ITEMS/g" \
|
||||
-e "s/{{AH_BOT_MAX_ITEMS}}/$AH_BOT_MAX_ITEMS/g" \
|
||||
"${ROOT_DIR}/sql/update_ahbot_config.sql" > "/tmp/update_ahbot_config.sql"
|
||||
sudo mysql -u root --database="acore_characters" < /tmp/update_ahbot_config.sql
|
||||
|
||||
echo " "
|
||||
echo "###########################################################################################"
|
||||
echo "Mod-ahbot config updated with AH_MIN_ITEMS: ${AH_BOT_MIN_ITEMS}, AH_MAX_ITEMS: ${AH_BOT_MAX_ITEMS}"
|
||||
echo "###########################################################################################"
|
||||
18
script/update_realm_ip.sh
Executable file
18
script/update_realm_ip.sh
Executable file
@@ -0,0 +1,18 @@
|
||||
#!/bin/bash
|
||||
|
||||
# param 1
|
||||
REALM_IP=$1;
|
||||
if [ -z "$REALM_IP" ]
|
||||
then
|
||||
echo "First parameter 'REALM_IP' is required";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
sed -e "s/{{REALM_IP}}/$REALM_IP/g" \
|
||||
"${ROOT_DIR}/sql/update_realm_ip.sql" > "/tmp/update_realm_ip.sql"
|
||||
sudo mysql -u root --database="acore_characters" < /tmp/update_realm_ip.sql
|
||||
|
||||
echo " "
|
||||
echo "###########################################################################################"
|
||||
echo "Server realm IP updated: ${REALM_IP}"
|
||||
echo "###########################################################################################"
|
||||
18
script/update_realm_name.sh
Executable file
18
script/update_realm_name.sh
Executable file
@@ -0,0 +1,18 @@
|
||||
#!/bin/bash
|
||||
|
||||
#param 1
|
||||
REALM_NAME=$1;
|
||||
if [ -z "$REALM_NAME" ]
|
||||
then
|
||||
echo "First parameter 'REALM_NAME' is required";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
sed -e "s/{{REALM_NAME}}/$REALM_NAME/g" \
|
||||
"${ROOT_DIR}/sql/update_realm_name.sql" > "/tmp/update_realm_name.sql"
|
||||
sudo mysql -u root --database="acore_characters" < /tmp/update_realm_name.sql
|
||||
|
||||
echo " "
|
||||
echo "###########################################################################################"
|
||||
echo "Server realm NAME updated: ${REALM_NAME}"
|
||||
echo "###########################################################################################"
|
||||
28
settings.env
Normal file
28
settings.env
Normal file
@@ -0,0 +1,28 @@
|
||||
REALM_IP="192.168.197.128"
|
||||
REALM_NAME="azerothcore.org"
|
||||
|
||||
AC_WOTLK_REPO="https://github.com/hermensbas/azerothcore-wotlk.git"
|
||||
AC_WOTLK_REPO_BRANCH="Playerbot"
|
||||
|
||||
AC_MODE_PLAYER_BOTS_REPO="https://github.com/hermensbas/mod-playerbots.git"
|
||||
AC_MODE_PLAYER_BOTS_REPO_BRANCH="master"
|
||||
|
||||
AC_MODE_BRACKETS_REPO="https://github.com/hermensbas/mod-player-bot-level-brackets.git"
|
||||
AC_MODE_BRACKETS_REPO_BRANCH="main"
|
||||
|
||||
# new version of ah-bot
|
||||
AC_MODE_AHBOT_REPO="https://github.com/hermensbas/mod-ah-bot.git"
|
||||
AC_MODE_AHBOT_REPO_BRANCH="master"
|
||||
|
||||
##### OG
|
||||
#AC_WOTLK_REPO="https://github.com/liyunfan1223/azerothcore-wotlk.git"
|
||||
#AC_WOTLK_REPO_BRANCH="Playerbot"
|
||||
|
||||
#AC_MODE_PLAYER_BOTS_REPO="https://github.com/liyunfan1223/mod-playerbots.git"
|
||||
#AC_MODE_PLAYER_BOTS_REPO_BRANCH="master"
|
||||
|
||||
# old version
|
||||
#AH_BOT_MIN_ITEMS="25000"
|
||||
#AH_BOT_MAX_ITEMS="30000"
|
||||
#AC_MODE_AHBOT_REPO="https://github.com/azerothcore/mod-ah-bot.git"
|
||||
#AC_MODE_AHBOT_REPO_BRANCH="master"
|
||||
104
setup.sh
Executable file
104
setup.sh
Executable file
@@ -0,0 +1,104 @@
|
||||
#!/bin/bash
|
||||
|
||||
export ROOT_DIR="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
||||
|
||||
##########################################################################################
|
||||
# USER CONFIG
|
||||
##########################################################################################
|
||||
set -a; source settings.env; set +a
|
||||
|
||||
|
||||
##########################################################################################
|
||||
# INTERNAL CONFIG
|
||||
##########################################################################################
|
||||
SERVER_ROOT="${ROOT_DIR}/_server/azerothcore"
|
||||
DATAPATH="${SERVER_ROOT}/env/dist/bin"
|
||||
|
||||
AUTHSERVER_SESSION="auth-session"
|
||||
WORLDSERVER_SESSION="world-session"
|
||||
|
||||
MYSQL_ROOT_PASSWORD="rootpassword"
|
||||
MYSQL_USER="acore"
|
||||
MYSQL_PASSWORD="acore"
|
||||
MYSQL_DATABASE="acore_auth"
|
||||
|
||||
|
||||
##########################################################################################
|
||||
# add chmod rights
|
||||
##########################################################################################
|
||||
sudo chmod +x ${ROOT_DIR}/script/*.sh
|
||||
|
||||
|
||||
##########################################################################################
|
||||
# add ~/.bash_wow to ~/.bashrc if not exist
|
||||
##########################################################################################
|
||||
if grep -R "bash_wow" ~/.bashrc
|
||||
then
|
||||
echo "bash_wow exists";
|
||||
else
|
||||
echo " " >> ~/.bashrc
|
||||
echo "if [ -f ~/.bash_wow ]; then" >> ~/.bashrc
|
||||
echo " . ~/.bash_wow" >> ~/.bashrc
|
||||
echo "fi" >> ~/.bashrc
|
||||
fi
|
||||
|
||||
|
||||
##########################################################################################
|
||||
# add variables to ~/.bash_wow
|
||||
##########################################################################################
|
||||
echo "export ROOT_DIR=${ROOT_DIR}" > ~/.bash_wow
|
||||
echo "export SERVER_ROOT=${SERVER_ROOT}" >> ~/.bash_wow
|
||||
|
||||
echo "export AC_WOTLK_REPO=${AC_WOTLK_REPO}" >> ~/.bash_wow
|
||||
echo "export AC_WOTLK_REPO_BRANCH=${AC_WOTLK_REPO_BRANCH}" >> ~/.bash_wow
|
||||
|
||||
echo "export AC_MODE_PLAYER_BOTS_REPO=${AC_MODE_PLAYER_BOTS_REPO}" >> ~/.bash_wow
|
||||
echo "export AC_MODE_PLAYER_BOTS_REPO_BRANCH=${AC_MODE_PLAYER_BOTS_REPO_BRANCH}" >> ~/.bash_wow
|
||||
|
||||
echo "export AC_MODE_AHBOT_REPO=${AC_MODE_AHBOT_REPO}" >> ~/.bash_wow
|
||||
echo "export AC_MODE_AHBOT_REPO_BRANCH=${AC_MODE_AHBOT_REPO_BRANCH}" >> ~/.bash_wow
|
||||
|
||||
echo "export AC_MODE_BRACKETS_REPO=${AC_MODE_BRACKETS_REPO}" >> ~/.bash_wow
|
||||
echo "export AC_MODE_BRACKETS_REPO_BRANCH=${AC_MODE_BRACKETS_REPO_BRANCH}" >> ~/.bash_wow
|
||||
|
||||
echo "export DATAPATH=${DATAPATH}" >> ~/.bash_wow
|
||||
|
||||
echo "export AUTHSERVER_SESSION=${AUTHSERVER_SESSION}" >> ~/.bash_wow
|
||||
echo "export WORLDSERVER_SESSION=${WORLDSERVER_SESSION}" >> ~/.bash_wow
|
||||
|
||||
echo "export MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" >> ~/.bash_wow
|
||||
echo "export MYSQL_USER=${MYSQL_USER}" >> ~/.bash_wow
|
||||
echo "export MYSQL_PASSWORD=${MYSQL_PASSWORD}" >> ~/.bash_wow
|
||||
echo "export MYSQL_DATABASE=${MYSQL_DATABASE}" >> ~/.bash_wow
|
||||
|
||||
echo "export REALM_IP=${REALM_IP}" >> ~/.bash_wow
|
||||
echo "export REALM_NAME=${REALM_NAME}" >> ~/.bash_wow
|
||||
|
||||
echo "export AH_BOT_MIN_ITEMS=${AH_BOT_MIN_ITEMS}" >> ~/.bash_wow
|
||||
echo "export AH_BOT_MAX_ITEMS=${AH_BOT_MAX_ITEMS}" >> ~/.bash_wow
|
||||
|
||||
|
||||
##########################################################################################
|
||||
# add alias to ~/.bash_wow
|
||||
##########################################################################################
|
||||
echo "alias menu='${ROOT_DIR}/script/menu.sh'" >> ~/.bash_wow
|
||||
echo "alias install='${ROOT_DIR}/script/1_source-install.sh'" >> ~/.bash_wow
|
||||
echo "alias update='${ROOT_DIR}/script/2_source-update.sh'" >> ~/.bash_wow
|
||||
echo "alias build='${ROOT_DIR}/script/3_server-build.sh'" >> ~/.bash_wow
|
||||
echo "alias compile='${ROOT_DIR}/script/4_server-compile.sh'" >> ~/.bash_wow
|
||||
echo "alias config='${ROOT_DIR}/script/5_server-configure.sh'" >> ~/.bash_wow
|
||||
echo "alias start='${ROOT_DIR}/script/6_server-start.sh'" >> ~/.bash_wow
|
||||
echo "alias stop='tmux kill-server'" >> ~/.bash_wow
|
||||
echo "alias wow='cd ${SERVER_ROOT};tmux attach -t ${WORLDSERVER_SESSION}'" >> ~/.bash_wow
|
||||
echo "alias auth='cd ${SERVER_ROOT};tmux attach -t ${AUTHSERVER_SESSION}'" >> ~/.bash_wow
|
||||
|
||||
|
||||
##########################################################################################
|
||||
# Print menu
|
||||
##########################################################################################
|
||||
echo " "
|
||||
echo "###########################################################################################"
|
||||
echo "## After first run TYPE 'source ~/.bashrc' !!!!!!!!"
|
||||
source ${ROOT_DIR}/script/menu.sh
|
||||
echo "## After first run TYPE 'source ~/.bashrc' !!!!!!!!"
|
||||
echo "###########################################################################################"
|
||||
2
sql/clear_auctionhouse.sql
Executable file
2
sql/clear_auctionhouse.sql
Executable file
@@ -0,0 +1,2 @@
|
||||
USE acore_characters;
|
||||
DELETE FROM auctionhouse;
|
||||
2
sql/clear_mysql_binlogs.sql
Normal file
2
sql/clear_mysql_binlogs.sql
Normal file
@@ -0,0 +1,2 @@
|
||||
use mysql
|
||||
PURGE BINARY LOGS BEFORE now();
|
||||
46
sql/clear_playerbots.sql
Executable file
46
sql/clear_playerbots.sql
Executable file
@@ -0,0 +1,46 @@
|
||||
USE `acore_playerbots`;
|
||||
DELETE FROM `playerbots_random_bots`;
|
||||
DELETE FROM `playerbots_account_type`;
|
||||
|
||||
USE `acore_characters`;
|
||||
DELETE FROM `characters` WHERE `account` IN (SELECT `id` FROM `acore_auth`.`account` WHERE `username` LIKE 'RNDBOT%') OR `account` NOT IN (SELECT `id` FROM `acore_auth`.`account`);
|
||||
DELETE FROM `arena_team_member` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `arena_team` WHERE `arenaTeamId` NOT IN (SELECT `arenaTeamId` FROM `arena_team_member`);
|
||||
DELETE FROM `character_account_data` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_achievement` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_achievement_progress` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_action` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_aura` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_glyphs` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_homebind` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `item_instance` WHERE `owner_guid` NOT IN (SELECT `guid` FROM `characters`) AND `owner_guid` > 0;
|
||||
DELETE FROM `character_inventory` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_pet` WHERE `owner` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `pet_aura` WHERE `guid` NOT IN (SELECT `id` FROM `character_pet`);
|
||||
DELETE FROM `pet_spell` WHERE `guid` NOT IN (SELECT `id` FROM `character_pet`);
|
||||
DELETE FROM `pet_spell_cooldown` WHERE `guid` NOT IN (SELECT `id` FROM `character_pet`);
|
||||
DELETE FROM `character_queststatus` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_queststatus_rewarded` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_reputation` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_skills` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_social` WHERE `friend` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_spell` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_spell_cooldown` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_talent` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `corpse` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `groups` WHERE `leaderGuid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `group_member` WHERE `memberGuid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `mail` WHERE `receiver` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `mail_items` WHERE `receiver` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `guild` WHERE `leaderguid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `guild_bank_eventlog` WHERE `guildid` NOT IN (SELECT `guildid` FROM `guild`);
|
||||
DELETE FROM `guild_member` WHERE `guildid` NOT IN (SELECT `guildid` FROM `guild`) OR `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `guild_rank` WHERE `guildid` NOT IN (SELECT `guildid` FROM `guild`);
|
||||
DELETE FROM `petition` WHERE `ownerguid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `petition_sign` WHERE `ownerguid` NOT IN (SELECT `guid` FROM `characters`) OR `playerguid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_arena_stats` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_entry_point` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
|
||||
USE `acore_auth`;
|
||||
DELETE FROM `account` WHERE `username` LIKE 'RNDBOT%';
|
||||
DELETE FROM `realmcharacters` WHERE `acctid` NOT IN (SELECT `id` FROM `account`);
|
||||
5
sql/find_character.sql
Executable file
5
sql/find_character.sql
Executable file
@@ -0,0 +1,5 @@
|
||||
USE acore_auth;
|
||||
SELECT acc.id AS accountId, ch.name as characterName, ch.guid AS characterId
|
||||
FROM acore_auth.account AS acc
|
||||
INNER JOIN acore_characters.characters AS ch
|
||||
WHERE acc.id = ch.account and acc.username = '{{ACCOUNT_NAME}}';
|
||||
3
sql/update_ahbot_config.sql
Executable file
3
sql/update_ahbot_config.sql
Executable file
@@ -0,0 +1,3 @@
|
||||
USE acore_world;
|
||||
UPDATE mod_auctionhousebot
|
||||
SET minitems = '{{AH_BOT_MIN_ITEMS}}', maxitems = '{{AH_BOT_MAX_ITEMS}}';
|
||||
3
sql/update_realm_ip.sql
Executable file
3
sql/update_realm_ip.sql
Executable file
@@ -0,0 +1,3 @@
|
||||
USE acore_auth;
|
||||
UPDATE realmlist
|
||||
SET address='{{REALM_IP}}';
|
||||
3
sql/update_realm_name.sql
Executable file
3
sql/update_realm_name.sql
Executable file
@@ -0,0 +1,3 @@
|
||||
USE acore_auth;
|
||||
UPDATE realmlist
|
||||
SET name='{{REALM_NAME}}';
|
||||
42
variables.sh
42
variables.sh
@@ -1,42 +0,0 @@
|
||||
#!/bin/bash
|
||||
ROOT_DIR="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
||||
|
||||
|
||||
##########################################################################################
|
||||
# If you want remote players to connect use the following info e.g.
|
||||
# router DMZ or poort-forwarding and possibly firewall settings.
|
||||
##########################################################################################
|
||||
# 3724 TCP AUTH-SERVER
|
||||
# 8085 TCP WORLD-SERVER
|
||||
|
||||
|
||||
##########################################################################################
|
||||
# Variables # https://github.com/azerothcore/azerothcore-wotlk/blob/master/conf/dist/env.ac
|
||||
##########################################################################################
|
||||
AUTHSERVER="${ROOT_DIR}/_server/azerothcore/acore.sh run-authserver"
|
||||
WORLDSERVER="${ROOT_DIR}/_server/azerothcore/acore.sh run-worldserver"
|
||||
AUTHSERVER_SESSION="auth-session"
|
||||
WORLDSERVER_SESSION="world-session"
|
||||
|
||||
MYSQL_ROOT_PASSWORD=rootpassword
|
||||
MYSQL_USER=acore
|
||||
MYSQL_PASSWORD=acore
|
||||
MYSQL_DATABASE=acore_auth
|
||||
|
||||
DATAPATH=${ROOT_DIR}/_server/azerothcore/env/dist/bin
|
||||
|
||||
# ----------------------------------------------------------------------------------------
|
||||
# if you want remore players to connects then this should the external IP/DNS
|
||||
# which also should be placed in the 3.35a client Realm.wtf
|
||||
# ----------------------------------------------------------------------------------------
|
||||
REALM_IP=192.168.178.185
|
||||
REALM_NAME="azerothcore.org"
|
||||
|
||||
AH_BOT_MIN_ITEMS=25000
|
||||
AH_BOT_MAX_ITEMS=30000
|
||||
|
||||
|
||||
##########################################################################################
|
||||
# General settings
|
||||
##########################################################################################
|
||||
source ${ROOT_DIR}/lib/general-settings.sh
|
||||
12
wiki/Home.md
Normal file
12
wiki/Home.md
Normal file
@@ -0,0 +1,12 @@
|
||||
Welcome to the mod-playerbots wiki! If you are new to this project, it is strongly recommended to take the time to read through each section to get a better understanding of what you can or can't do with Playerbots as well as how best to configure your setup for success.
|
||||
|
||||
## [Playerbot Addons](https://github.com/liyunfan1223/mod-playerbots/wiki/Playerbot-Add%E2%80%90ons)
|
||||
Recommended addons which allow for a smoother experience in controlling your Playerbots.
|
||||
|
||||
## [Playerbot Commands](https://github.com/liyunfan1223/mod-playerbots/wiki/Playerbot-Commands)
|
||||
Available commands and strategies to best manage your Playerbots.
|
||||
|
||||
## [Playerbot Configuration](https://github.com/liyunfan1223/mod-playerbots/wiki/Playerbot-Configuration)
|
||||
Recommended configuration and hardware for high server performance with Playerbots.
|
||||
|
||||
|
||||
24
wiki/Playerbot-Addons-and-Sub‐Modules.md
Normal file
24
wiki/Playerbot-Addons-and-Sub‐Modules.md
Normal file
@@ -0,0 +1,24 @@
|
||||
## Multibot (by Macx-Lio)
|
||||
Multifunctional tool designed to help control your playerbots. Actively maintained.
|
||||
* [MultiBot](https://github.com/Macx-Lio/MultiBot)
|
||||
|
||||
## Unbot (by Liyunfan)
|
||||
Original Playerbot addon used to control your playerbots, not actively maintained.
|
||||
* Chinese version: [Unbot Addon (zh)](https://github.com/liyunfan1223/unbot-addon).
|
||||
* English version (translated by @Revision): [Unbot Addon (en)](https://github.com/noisiver/unbot-addon/tree/english).
|
||||
|
||||
## Other Recommended Addons
|
||||
* https://gitlab.com/Tsoukie/compactraidframe-3.3.5
|
||||
* https://github.com/Zidras/DBM-Warmane
|
||||
|
||||
## Recommended Modules
|
||||
Mod Playerbot Level Brackets: Allows you to set the distribution of rndbots by level bracket.
|
||||
* https://github.com/DustinHendrickson/mod-player-bot-level-brackets (by DustinHendrickson)
|
||||
|
||||
Mod Junk To Gold: Enables autosell of gray items providing QOL for players and reducing inventory buildup for bots.
|
||||
* https://github.com/noisiver/mod-junk-to-gold (by Revision)
|
||||
|
||||
Mod Ollama Chat: Ollama LLM - Playerbot integration (warning - in early stages of development and very cpu/gpu intensive)
|
||||
* https://github.com/DustinHendrickson/mod-ollama-chat (by DustinHendrickson)
|
||||
|
||||
|
||||
358
wiki/Playerbot-Commands.md
Normal file
358
wiki/Playerbot-Commands.md
Normal file
@@ -0,0 +1,358 @@
|
||||
Playerbots are programmed to respond to chat commands. The Multibot and Unbot addons are designed to handle most of the common chat commands for the player, but you may still have need for manual chat commands as you play. It is important to distinguish between "Altbots" and "Rndbots": Altbots are manually player-created bots on a normal account, whereas "Rndbots" and their accounts are automatically generated based on .conf settings. Rndbots will automatically gear themselves, apply talents, and roam the world whereas Altbots will not.
|
||||
|
||||
## Altbot Setup Commands
|
||||
Altbots are characters that you create on your account (or others) first, and then get assigned bot control via the commands below.
|
||||
|
||||
command | action
|
||||
:---|:---
|
||||
``.playerbots bot add [name1,name2,name3]`` | login altbots. Note that you are also able to login altbots from other accounts depending on your configurations.
|
||||
``.playerbots bot addaccount [accountname]`` | login an entire account of altbots. Depending on your configurations you can login other accounts.
|
||||
``.playerbots bot remove name1,name2,name3`` | logout altbots
|
||||
``.playerbots bot add *`` | login all altbots
|
||||
``.playerbots bot remove *`` | logout all altbots
|
||||
``maintenance`` | enable altbot to learn all available spells and skills, supplement consumables, enchant gear, and repair. Can also be used on rndbots, but they automatically do this. Whisper for an individual bot or use /p or /r to simultaneously target multiple bots.
|
||||
``autogear`` | automatically gear your altbot, with quality based on your .conf settings AutoGearQualityLimit and AutoGearScoreLimit. Can also be used on rndbots, but they automatically do their own gear initilization upon level up.
|
||||
``talents`` | check current spec of bot
|
||||
``talents spec list`` | check specs available for the class
|
||||
``talents spec [spec name]`` | force bot to change their talents to the chosen spec, see the .conf for list of spec names or whisper your bot "talents spec list"
|
||||
``talents apply <link>`` | apply talents link to bot
|
||||
``glyphs`` | lists the bot’s currently equipped glyphs in the client locale, using item links for proper translations
|
||||
``glyph equip [GlyphID1 GlyphID2 GlyphID3 GlyphID4 GlyphID5 GlyphID6]`` | bot applies given glyphs
|
||||
``reset botAI`` | reset bot settings
|
||||
``reset`` | reset current bot actions like casting spell, moving etc.
|
||||
|
||||
## AddClass Setup Command
|
||||
AddClass bots utilize unused Rndbots in your system. They are currently recommended only to be used for testing purposes i.e. quickly forming a raid group to test certain bots in a given raid, whereas Altbots are strongly recommended for long-term progression playthroughs.
|
||||
|
||||
command | action
|
||||
:---|:---
|
||||
``.playerbots bot addclass [className]`` | summon a new Rndbot of the desired class (note: death knight syntax is dk, otherwise the rest are standard)
|
||||
|
||||
## Party/Raid General Commands
|
||||
|
||||
command | action
|
||||
:---|:---
|
||||
``summon`` | summon bot to you (see .conf for different options to configure this command)
|
||||
``release`` | release spirit when dead
|
||||
``revive`` | revive when near a spirit healer
|
||||
``leave`` | leave party
|
||||
``attack`` | attack selected target
|
||||
``follow`` | run toward player (/w for individual or /p or /r for party/raid)
|
||||
``flee`` | run toward player ignoring everything else (/w for individual or /p or /r for party/raid)
|
||||
``stay`` | stay in place
|
||||
``runaway`` | kite mob
|
||||
``grind`` | attack anything
|
||||
``disperse set x`` | force bots to maintain a distance of x yards from each other
|
||||
``disperse disable`` | resets disperse distance to default value
|
||||
``give leader`` | if bot is party/raid leader it will pass it to their master
|
||||
|
||||
Furthermore, you can specify by group or type for some commands like "attack" and "follow", such as:
|
||||
- "@group1 follow"
|
||||
- "@group2 attack"
|
||||
- "@tank follow"
|
||||
- "@ranged attack"
|
||||
- "@rangeddps attack"
|
||||
- "@meleedps attack"
|
||||
|
||||
You can also command multiple groups at a time like below:
|
||||
- "@Group1,4"
|
||||
- "@group2-5,8"
|
||||
|
||||
## Playerbot Spell Commands
|
||||
|
||||
command | action
|
||||
:---|:---
|
||||
``spells`` | show bot's spells
|
||||
``cast [spell_name]`` | /w a bot to cast a spell
|
||||
``cast [spell_name] on [PlayerName]`` | /w a bot to cast a spell on a specified Player
|
||||
``ss +[spell id]`` | add spell to ignored spells list
|
||||
``ss -[spell id]`` | remove spell from ignored spells list
|
||||
``trainer`` | show what bot can learn from the selected trainer
|
||||
``trainer learn`` | learn from the selected trainer
|
||||
|
||||
## Party/Raid Target Selection
|
||||
|
||||
command | action
|
||||
:---|:---
|
||||
``rti <icon>`` | sets the target icon for the bot to prioritize (icons: skull, cross, circle, star, square, triangle, diamond, and moon)
|
||||
``attack rti target`` | commands bots to attack their rti target
|
||||
``<name/group> rtsc toggle`` | toggles the ability to point and click with mouse button to save a location for specified bots to move to, can specify by group or class (ie "@druid rtsc toggle" or "@group1 rtsc toggle")
|
||||
``rtsc go save`` | command bots to move back into saved rtsc position
|
||||
``rtsc cancel`` | cancel rtsc toggle
|
||||
``rti cc <icon>`` | sets a specific icon as the cc target (the default is moon)
|
||||
|
||||
Video demonstration:
|
||||
https://www.youtube.com/watch?v=Pwt7schIC08
|
||||
|
||||
## Strategies
|
||||
|
||||
The bots are programmed to respond to triggers by listing possible actions and choosing one based on a strategy. Bots use two categories of strategies: combat and non-combat. You can add, subtract, or toggle strategies using the combat (co) and non-combat (nc) prefixes in your commands:
|
||||
|
||||
```
|
||||
co +strategy1,-strategy2,~strategy3
|
||||
nc +strategy1,-strategy2,~strategy3
|
||||
```
|
||||
|
||||
You can query the bot to report what strategies are currently being used:
|
||||
|
||||
```
|
||||
co ?
|
||||
nc ?
|
||||
```
|
||||
|
||||
### Combat Strategies
|
||||
|
||||
strategy | description
|
||||
:---|:---|
|
||||
``tank`` | use threat-generating abilities (warrior, paladin, druid will use ``bear``)
|
||||
``tank assist`` | make tank pull mobs off of others
|
||||
``dps`` | use dps abilities (rogue, hunter, shaman, priest, druid will use ``cat``)
|
||||
``cc`` | use cc abilities (requires cc rti target, default is moon icon; it is useful to know that bots will not attack rti target and will not try to use cc if target is not stunnable)
|
||||
``caster`` | wasn't in docs but is in game
|
||||
``assist`` | target one mob at a time
|
||||
``aoe`` | target many mobs at a time
|
||||
``boost`` | bots will use big cds (useful to use -boost and +boost on macros to control when to burst on bosses)
|
||||
``threat`` | dps will actively avoid grabbing threat (useful for bosses that wipe aggro or if tanks are struggling to hold aggro)
|
||||
``grind`` | attack any visible target, then switch to another one and so on.
|
||||
``heal`` | focus on party healing (shaman, priest, druid, paladin)
|
||||
``focus`` | stop casting aoe spell or debuff spells on multiple attackers (focus on the single target)
|
||||
``avoid aoe`` | automatically avoid the majority of harmful aoe spells
|
||||
``save mana`` | healers save mana by prioritizing high-efficiency spells when mana falls below a threshold
|
||||
``healer dps`` | healers cast damage spells if they have enough mana
|
||||
``tank face`` | ensure the current target does not face ranged players in the group (to counter breath and cleave-like spells)
|
||||
``behind`` | move to the target's back (rear flank) when they are not positioned behind the target
|
||||
``frost``, ``fire`` | mage only
|
||||
``bear``, ``cat``, ``caster`` | druid only
|
||||
``bdps`` | buff dps (paladin will use seal of might)
|
||||
``bspeed`` | buff movement speed (hunter only)
|
||||
``bhealth``, ``bmana`` | buff health or mana (paladin will use seal of light vs seal of wisdom)
|
||||
``rfire``, ``rfrost``, ``rshadow``, ``rnature`` | resistance strategies (paladin auras and hunter aspects)
|
||||
``meta melee`` | default strategy for demonology warlocks, makes warlock go melee while using metamorphosis and immolation aura (demonology warlock only)
|
||||
``trap weave`` | enables the trap weave strat for hunters, dropping an explosive trap as part of their rotation (hunter only)
|
||||
``firestarter`` | enables the firestarter strat for fire mages, resulting in the mage going into melee to utilize the instant cast flamestrike from the firestarter talent (fire mage only)
|
||||
|
||||
|
||||
### Non-Combat Strategies
|
||||
|
||||
General (WIP)
|
||||
strategy | description
|
||||
:---|:---
|
||||
``food`` | initiate or stop eating/drinking
|
||||
``pvp`` | turn on or off pvp mode
|
||||
``loot`` | enable looting everything by bots. For add or remove that strategy for randombots is required GM level > 1
|
||||
|
||||
Warlock Pet Strategies (Note that defaults are as follows: Affliction uses felhunter, Demonology uses felguard, and Destruction uses imp)
|
||||
strategy | description
|
||||
:---|:---
|
||||
``imp`` | force warlock to use imp
|
||||
``voidwalker`` | force warlock to use voidwalker
|
||||
``succubus`` | force warlock to use succubus
|
||||
``felhunter`` | force warlock to use felhunter
|
||||
``felguard`` | force warlock to use felguard
|
||||
|
||||
Warlock Soulstone Strategies
|
||||
strategy | description
|
||||
:---|:---
|
||||
``ss master`` | force warlock to use soulstone on master
|
||||
``ss self`` | force warlock to use soulstone on self
|
||||
``ss tank`` | force warlock to use soulstone on tank
|
||||
``ss healer`` | force warlock to use soulstone on healer
|
||||
|
||||
### Raid-Specific Strategies
|
||||
|
||||
Note: These raid strategies are now automatically applied upon entering the instance. You should receive a whisper from your bots confirming activation.
|
||||
|
||||
strategy | description
|
||||
:---|:---
|
||||
mc | enable Molten Core strats (Note: Baron Geddon only, rest are beatable without strats)
|
||||
bwl | enable Blackwing Lair strats (Note: grants Onyxia Scale Cloak buff to all bots, bots automatic disabling of suppression devices, and bots automatically clear Brood Affliction: Bronze on Chromaggus)
|
||||
aq20 | enable Ruins of Ahn'Qiraj strats (Note: Ossirian only, rest are beatable without strats)
|
||||
voa | enable Vault of Archavon strats (Note: up to Emalon)
|
||||
naxx | enable Naxxramas strats (Note: only certain bosses, rest are beatable without strats)
|
||||
wotlk-os | enable Obsidian Sanctum strats (Note: strat is only functional up to OS+2, need to kill Vesperon first)
|
||||
wotlk-eoe | enable Eye of Eternity strats
|
||||
uld | enable Ulduar strats (Note: Strats implemented up to Hodir and Freya, WIP on future bosses)
|
||||
onyxia | enable Onyxia's Lair strats
|
||||
icc | enable Icecrown Citadel strats (Note: all normal mode currently doable, HC is WIP)
|
||||
|
||||
|
||||
### Defaults
|
||||
|
||||
- Tank classes default w/ ``tank aoe``
|
||||
- Non-tank classes default w/ ``attack weak``
|
||||
- Strategies that are incompatible, such as ``stay`` and ``follow``, are ignored
|
||||
|
||||
|
||||
## Loot
|
||||
|
||||
You can control which items to loot (``ll`` stands for loot list):
|
||||
|
||||
command | action
|
||||
:---|:---
|
||||
``nc +loot`` | activate looting (note ``grind`` strategy activates looting as well)
|
||||
``ll all`` | loot everything
|
||||
``ll normal`` | loot anything except BOP (bind-on-pickup) items
|
||||
``ll gray`` | loot only gray items
|
||||
``ll quest`` | loot only quest items
|
||||
``ll skill`` | loot only items based on their skills (herbalism, mining, or skinning)
|
||||
``ll [item]`` | add specific item to loot list
|
||||
``ll -[item]`` | remove specific item from loot list
|
||||
|
||||
## Items
|
||||
|
||||
command | action
|
||||
:---|:---
|
||||
``[item]`` | bot will tell you how many it has, and quest status
|
||||
``e [item]`` | equip item
|
||||
``ue [item]`` | unequip item
|
||||
``u [item]`` | use item
|
||||
``u [item] [target]`` | use item on target (use gem on item)
|
||||
``open items`` | open items in inventory that have loot, ie Satchel of Spoils
|
||||
``destroy [item]`` | destroy item roll [item]
|
||||
``roll [item]`` | bots in party/raid will roll for the linked item if it is an upgrade for them
|
||||
``roll`` | bots in party/raid will all roll
|
||||
``s [item]`` | sell item
|
||||
``s *`` | sell all grey items
|
||||
``s vendor`` | sell all items that can be sold
|
||||
``b [item]`` | buy item
|
||||
``2g 3s 5c`` | give you gold
|
||||
``bank [item]`` | deposit item in bank
|
||||
``bank -[item]`` | withdraw item from back
|
||||
``gb [item]`` | deposit item in guild bank
|
||||
``gb -[item]`` | withdraw item from guild bank
|
||||
|
||||
## Quests
|
||||
|
||||
command | action
|
||||
:---|:---
|
||||
``quests`` | show quest summary
|
||||
``quests all`` | shows a list with links of all quests in quest log
|
||||
``accept [quest]`` | accept quest at the selected quest giver
|
||||
``accept *`` | accept all quests at the selected quest giver
|
||||
``drop [quest]`` | abandon quest
|
||||
``r [item]`` | choose quest reward
|
||||
``[quest]`` | show quest and objectives status
|
||||
``talk`` | talk to the selected npc (to complete a quest)
|
||||
``u [game object]`` | use game object (use "los" command to obtain the game object link)
|
||||
|
||||
## Hunter Pet Commands
|
||||
|
||||
command | action
|
||||
:---|:---
|
||||
``pet name "name"`` | summon a tameable pet by name
|
||||
``pet id "id"`` | summon a tameable pet by database creature ID
|
||||
``pet family "family"`` | randomly summon a tameable pet of the given family
|
||||
``pet rename "new name"`` | rename the current pet and refresh its name in the client UI
|
||||
|
||||
## Account linking for Altbot control
|
||||
|
||||
As an alternative to controlling the characters from your own account or guild member accounts, this allows to link up different accounts together to allow control of the characters as Altbots. This is based on the ``AiPlayerbot.AllowTrustedAccountBots = 1`` option in the playerbots config file.
|
||||
|
||||
command | action
|
||||
:---|:---
|
||||
``.playerbots account setKey somePlayerDefinedSecurityKeyValue`` | Define a securityKey for the current account (the key will be overridden when defined multiple times)
|
||||
``.playerbots account link ACCOUNTNAME somePlayerDefinedSecurityKeyValue`` | Link an account by using its securityKey
|
||||
``.playerbots account linkedAccounts`` | Shows a list of accounts, which are currently linked with this account
|
||||
``.playerbots account unlink ACCOUNTNAME`` | Remove a linked account (this will remove the link for both sides, ensuring that access to the characters can be canceled from both sides anytime)
|
||||
|
||||
## Miscellaneous Commands
|
||||
|
||||
command | action
|
||||
:---|:---
|
||||
``los`` | list game objects, items, creatures and npcs the bot can see
|
||||
``stats`` | show stat summary (inventory, gold, xp, etc.)
|
||||
``home`` | set home at the selected innkeeper
|
||||
``playerbot bot initself`` | CAREFUL WITH THIS - re-rolls YOUR character
|
||||
``playerbot bot list`` | lists your altbots (and your other characters you can add as bots if you have that enabled, but I'd be very careful if you do that as you can then re-roll your other characters using the init command)
|
||||
``playerbot bot tweak`` | sets the tweakvalue (seems to be related to a config value that's no longer present and the variable it changes doesn't seem to actually do anything anymore)
|
||||
``playerbot bot self`` | make yourself into a bot, you have to logout to turn this off, dont run it twice without doing so (it wont toggle it back off like its supposed to, it actually seems to apply multiple AI's onto yourself all fighting to do different things, sounds fun until it crashes the server)
|
||||
``playerbot bot lookup`` | doesn't do anything but print out a useless usage message (which says you're supposed to give it a class parameter but doing so doesn't change anything because the function called is literally *just* the usage message there's no functionality there)
|
||||
``.playerbots bot init=rare name1,name2,name3`` | respawn bot at your level with talents & rare gear (gearing currently bugged, recommend autogear instead)
|
||||
``who`` | show bot race, spec, talents, class, level, average item level, current zone
|
||||
``who [profession name]`` | show bot profession skill level
|
||||
|
||||
## Overrides
|
||||
|
||||
You can override everything and instruct the bot to do something specific:
|
||||
|
||||
command | description
|
||||
:---|:---|
|
||||
``do attack`` | attack target
|
||||
``do loot`` | loot target
|
||||
``do attack my target`` | attack my target
|
||||
``do add all loot`` | check every corpse and game object for loot
|
||||
|
||||
## Example Macros
|
||||
|
||||
To make bots flee with you from the danger:
|
||||
|
||||
```
|
||||
/p reset
|
||||
/p nc -stay,+follow,+passive
|
||||
/p co +passive
|
||||
/p do follow
|
||||
```
|
||||
|
||||
To make bots follow you and assist you in attack:
|
||||
|
||||
```
|
||||
/p nc -stay,+follow,-passive
|
||||
/p co -passive
|
||||
/p do follow
|
||||
```
|
||||
|
||||
To make bots stay in place and assist you in attack:
|
||||
|
||||
```
|
||||
/p nc -follow,+stay,+passive
|
||||
/p co +passive
|
||||
/p do stay
|
||||
```
|
||||
|
||||
## Help
|
||||
|
||||
The bot can tell you all available commands it will accept:
|
||||
|
||||
```
|
||||
/w help
|
||||
```
|
||||
|
||||
## Reactions
|
||||
|
||||
The bots will automatically do certain things based on what the party leader is doing.
|
||||
|
||||
your action | bot reaction
|
||||
:---|:---
|
||||
accept a quest | bot will accept it as well
|
||||
talk to a quest giver | bot will turn in his completed quests
|
||||
use meeting stone | teleport using the stone
|
||||
start using game object and interrupt | use the game object
|
||||
open trade window | show inventory and start trading
|
||||
invite to a party/raid | accept the invitation
|
||||
start raid ready check | tell his ready status
|
||||
mount/unmount | mount/unmount as well
|
||||
go through a dungeon portal | follow into the dungeon
|
||||
|
||||
|
||||
## Rndbot Console Only Commands
|
||||
|
||||
command | action
|
||||
:---|:---
|
||||
``playerbot pmon toggle`` | enables/disables the performance monitor
|
||||
``playerbot pmon stack`` | displays the performance monitor, useful to show which actions/triggers cost the most performance
|
||||
``playerbot rndbot reset`` | clears acore_playerbots.playerbots_random_bots table (seems to contain events) and requires server restart after
|
||||
``playerbot rndbot stats`` | prints rndbot stats (numbers of rndbots per level, per class, etc)
|
||||
``playerbot rndbot reload`` | reloads playerbots.conf
|
||||
``playerbot rndbot update`` | triggers a "full tick" (call to RandomPlayerbotMgr::UpdateAIInternal())
|
||||
``playerbot rndbot init`` | re-rolls the rndbots (useful when you've modified settings like min/max level, the spec probabilities, etc)
|
||||
``playerbot rndbot clear`` | reset bots back to starting level (55 for Deathknight)
|
||||
``playerbot rndbot level`` | level up all rndbots by 1
|
||||
``playerbot rndbot refresh`` | revives rndbots if dead, uses botAI->Reset(), rerolls gear, while keeping the same level
|
||||
``playerbot rndbot teleport`` | teleports all bots to appropriate area for level
|
||||
``playerbot rndbot revive`` | (BUGGED: will double number of rndbots) revive rndbot, refresh, and teleport (combo of "refresh" and "teleport")
|
||||
``playerbot rndbot grind`` | (BUGGED: crashes server) teleport rndbot only if needed (needs more testing)
|
||||
``playerbot rndbot change_strategy`` | re-roll whether bots are grinding or RPG'ing (based on AiPlayerbot.RandomBotRpgChance setting)
|
||||
|
||||
|
||||
|
||||
Special thanks to Whipowill for creating the original Playerbots Operators Manual https://github.com/whipowill/wow-addon-playerbots/blob/master/MANUAL.md, fuzz1111 for contributing many confirmed active commands, and Ky for testing many old and new commands.
|
||||
237
wiki/Playerbot-Configuration.md
Normal file
237
wiki/Playerbot-Configuration.md
Normal file
@@ -0,0 +1,237 @@
|
||||
## Bot activity profiles and performance
|
||||
Before going into the configuration options we need explain the logic abit. Every update tick of the server its calculated whether a bot can
|
||||
or can't be active. An active bots takes and eats alot more resources then an idle bot.
|
||||
|
||||
The following logic is applied to determine whether a bot is active or not, applied in the explained order.
|
||||
|
||||
```
|
||||
1. NOT ACTIVE: When server uptime smaller then (max amount of bots * 0.12 seconds)
|
||||
2. ALWAYS ACTIVE: When bot is in battleground, instance or raid.
|
||||
3. ALWAYS ACTIVE: When in combat and not in party (defend urself)
|
||||
4. ALWAYS ACTIVE: If the zone where the bot is located has real players
|
||||
5. ALWAYS ACTIVE: When the bots is a member of a guild with real players
|
||||
6. ALWAYS ACTIVE: Has real player as master
|
||||
7. ALWAYS ACTIVE: if grouped and the leader is a real player
|
||||
8. ALWAYS ACTIVE: if in battleground queue
|
||||
9. ALWAYS ACTIVE: if looking for group
|
||||
10. ALWAYS ACTIVE: If bot has a real player within the radius 300 yards
|
||||
11. ALWAYS ACTIVE: When bot is on a friendlist of a online real player
|
||||
12. ALWAYS ACTIVE: When bot has more then 10 other bots within the sightDistance, force to spread out
|
||||
```
|
||||
These rules will always be applied regardless what value you have configured **'AiPlayerbot.BotActiveAlone'**.
|
||||
|
||||
***
|
||||
|
||||
All remaining situations e.g. bots in zones or maps without real players, empty server etc will be configured
|
||||
based on the **'AiPlayerbot.BotActiveAlone'** value. That value basically means that the bot has about
|
||||
% chance to get active for only a few seconds. Unless in those few seconds one of the above rules
|
||||
is triggered then it might result staying active longer.
|
||||
|
||||
Then **'AiPlayerbot.botActiveAloneSmartScale'** basically auto scale the activity percentages
|
||||
based on the latency, relative to the configured value of **'AiPlayerbot.BotActiveAlone'**. And only when the bots are in level scope of the configured values of:
|
||||
* **'AiPlayerbot.botActiveAloneSmartScaleWhenMinLevel'**
|
||||
* **'AiPlayerbot.botActiveAloneSmartScaleWhenMinLevel'**
|
||||
|
||||
***
|
||||
|
||||
#### 1. best performance with high bot count.
|
||||
My personal preference is that i keep my bots idle when i am not in the zone or map, which is applied with the following config
|
||||
and in this specific requirement it doesnt rlly matter autoscale is on or off but i leave it on.
|
||||
|
||||
```
|
||||
AiPlayerbot.BotActiveAlone = 10
|
||||
AiPlayerbot.botActiveAloneSmartScale = 1
|
||||
AiPlayerbot.botActiveAloneSmartScaleWhenMinLevel = 1
|
||||
AiPlayerbot.botActiveAloneSmartScaleWhenMaxLevel = 80
|
||||
```
|
||||
|
||||
#### 2. Default; best effort to enforce 100% acitivity but auto adjust when needed
|
||||
(prolly best profile with a server with more real players spread over different zones and maps).
|
||||
When you want all bots active in all situations but you want to server to compensate the bot
|
||||
acitivity based on your latency then use (basically best effort for 100%) :
|
||||
```
|
||||
AiPlayerbot.BotActiveAlone = 100
|
||||
AiPlayerbot.botActiveAloneSmartScale = 1
|
||||
AiPlayerbot.botActiveAloneSmartScaleWhenMinLevel = 1
|
||||
AiPlayerbot.botActiveAloneSmartScaleWhenMaxLevel = 80
|
||||
```
|
||||
|
||||
#### 3. All bots active regardless your latency and performance impact.
|
||||
```
|
||||
AiPlayerbot.BotActiveAlone = 100
|
||||
AiPlayerbot.botActiveAloneSmartScale = 0
|
||||
AiPlayerbot.botActiveAloneSmartScaleWhenMinLevel = 1
|
||||
AiPlayerbot.botActiveAloneSmartScaleWhenMaxLevel = 80
|
||||
```
|
||||
|
||||
#### 4. All bots active and only apply autoscale on a level range (e.g. high levels)
|
||||
```
|
||||
AiPlayerbot.BotActiveAlone = 100
|
||||
AiPlayerbot.botActiveAloneSmartScale = 1
|
||||
AiPlayerbot.botActiveAloneSmartScaleWhenMinLevel = 75
|
||||
AiPlayerbot.botActiveAloneSmartScaleWhenMaxLevel = 80
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
#### Verify bot performance
|
||||
Use the command '.server info' to see your server latency. The general latency should be under 70-80 and the percentiles maxed out around
|
||||
100, 120, 150. Next to that verify how quick a bot executes your command. It should be pretty much instant. If not to should choose a different profile
|
||||
and/or lower your bot amount.
|
||||
|
||||
If you dont use these performance checks it might result into strange and incorrect bot behaviours and/or huge amount of memory footprint growth in a relative short time (OOM)
|
||||
|
||||
##### Reference
|
||||
I use 'profile 1' with 5000 bots with an AMD 5700x (4.6ghz, 6 cores), linux, 20GB mem with the following result:
|
||||
|
||||

|
||||
|
||||
|
||||
## Recommended hardware
|
||||
```
|
||||
Memory
|
||||
minimal: 16GB (when all map grids are loaded 11-12GB)
|
||||
preferable: 32GB or more
|
||||
CPU cores:
|
||||
minimal: 4 cores
|
||||
preferable: 6 or more cores
|
||||
CPU speed:
|
||||
minimal: 3000mhz
|
||||
preferable: 4400mhz or more
|
||||
```
|
||||
|
||||
## Recommended config
|
||||
worldserver.conf
|
||||
```bash
|
||||
# bots might not pickup quests in certain condidations
|
||||
Quests.IgnoreAutoAccept = 1
|
||||
|
||||
# performance
|
||||
PreloadAllNonInstancedMapGrids = 0
|
||||
SetAllCreaturesWithWaypointMovementActive = 0
|
||||
DontCacheRandomMovementPaths = 0
|
||||
MapUpdate.Threads = 4 or 6
|
||||
MapUpdateInterval = 10
|
||||
MinWorldUpdateTime = 1
|
||||
|
||||
# no player limit for the bots
|
||||
PlayerLimit = 0
|
||||
|
||||
# prevent buggy situations
|
||||
LeaveGroupOnLogout.Enabled = 1
|
||||
```
|
||||
|
||||
playerbots.conf
|
||||
```bash
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# general
|
||||
#-------------------------------------------------------------------
|
||||
AiPlayerbot.Enabled = 1
|
||||
AiPlayerbot.DeleteRandomBotAccounts = 0
|
||||
AiPlayerbot.RandomBotAccountPrefix = "rndbot"
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# randombots
|
||||
# - RandomBotMaps: 0=Eastern Kingdoms, 1=Kalimdor, 530=Outland, 571=Northrend
|
||||
#-------------------------------------------------------------------
|
||||
AiPlayerbot.RandomBotMinLevel = 1
|
||||
AiPlayerbot.RandomBotMaxLevel = 80
|
||||
AiPlayerbot.AutoTeleportForLevel = 1
|
||||
AiPlayerbot.RandomBotMaps = 0,1,530,571
|
||||
AiPlayerbot.ProbTeleToBankers = 0.25
|
||||
AiPlayerbot.RandomBotMaxLevelChance = 0.01
|
||||
AiPlayerbot.RandomBotFixedLevel = 0
|
||||
AiPlayerbot.DisableRandomLevels = 0
|
||||
AiPlayerbot.RandombotStartingLevel = 5
|
||||
AiPlayerbot.SyncLevelWithPlayers = 0
|
||||
AiPlayerbot.DisableDeathKnightLogin = 1
|
||||
AiPlayerbot.SyncQuestWithPlayer = 1
|
||||
AiPlayerbot.AutoDoQuests = 1
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# command (gear: 1 = normal, 2 = uncommon, 3 = rare, 4 = epic, 5 = legendary)
|
||||
#-------------------------------------------------------------------
|
||||
AiPlayerbot.AutoGearQualityLimit = 4
|
||||
AiPlayerbot.AutoGearScoreLimit = 0
|
||||
AiPlayerbot.AutoGearCommand = 1
|
||||
AiPlayerbot.MaintenanceCommand = 1
|
||||
AiPlayerbot.AllowPlayerBots = 1
|
||||
AiPlayerbot.AllowGuildBots = 1
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# chat and broadcast (default; RepeatDelay = 2000)
|
||||
#-------------------------------------------------------------------
|
||||
#AiPlayerbot.RepeatDelay = 2000
|
||||
AiPlayerbot.EnableBroadcasts = 0
|
||||
AiPlayerbot.RandomBotTalk = 0
|
||||
AiPlayerbot.RandomBotEmote = 0
|
||||
AiPlayerbot.RandomBotSuggestDungeons = 0
|
||||
AiPlayerbot.EnableGreet = 0
|
||||
AiPlayerbot.ToxicLinksRepliesChance = 0
|
||||
AiPlayerbot.ThunderfuryRepliesChance = 0
|
||||
AiPlayerbot.GuildRepliesRate = 0
|
||||
AIPlayerbot.GuildFeedback = 0
|
||||
AiPlayerbot.RandomBotSayWithoutMaster = 0
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# intervals
|
||||
#-------------------------------------------------------------------
|
||||
AiPlayerbot.RandomBotUpdateInterval = 20
|
||||
AiPlayerbot.RandomBotCountChangeMinInterval = 1800
|
||||
AiPlayerbot.RandomBotCountChangeMaxInterval = 7200
|
||||
AiPlayerbot.MinRandomBotInWorldTime = 3600
|
||||
AiPlayerbot.MaxRandomBotInWorldTime = 1209600
|
||||
AiPlayerbot.MinRandomBotRandomizeTime = 7200
|
||||
AiPlayerbot.MaxRandomBotRandomizeTime = 1209600
|
||||
AiPlayerbot.RandomBotsPerInterval = 60
|
||||
AiPlayerbot.MinRandomBotReviveTime = 60
|
||||
AiPlayerbot.MaxRandomBotReviveTime = 300
|
||||
AiPlayerbot.MinRandomBotTeleportInterval = 3600
|
||||
AiPlayerbot.MaxRandomBotTeleportInterval = 18000
|
||||
AiPlayerbot.RandomBotInWorldWithRotationDisabled = 31104000
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# distance
|
||||
#-------------------------------------------------------------------
|
||||
AiPlayerbot.FarDistance = 20.0
|
||||
AiPlayerbot.SightDistance = 75.0
|
||||
AiPlayerbot.SpellDistance = 28.5
|
||||
AiPlayerbot.ShootDistance = 26.0
|
||||
AiPlayerbot.ReactDistance = 150.0
|
||||
AiPlayerbot.GrindDistance = 75.0
|
||||
AiPlayerbot.HealDistance = 38.5
|
||||
AiPlayerbot.LootDistance = 25.0
|
||||
AiPlayerbot.FleeDistance = 8.0
|
||||
AiPlayerbot.TooCloseDistance = 5.0
|
||||
AiPlayerbot.MeleeDistance = 1.5
|
||||
AiPlayerbot.FollowDistance = 1.5
|
||||
AiPlayerbot.WhisperDistance = 6000.0
|
||||
AiPlayerbot.ContactDistance = 0.5
|
||||
AiPlayerbot.AoeRadius = 10
|
||||
AiPlayerbot.RpgDistance = 200
|
||||
AiPlayerbot.AggroDistance = 22
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# performance related
|
||||
#-------------------------------------------------------------------
|
||||
AiPlayerbot.BotActiveAlone = 10 (either use 10% or 100% anything is between is kinda useless)
|
||||
AiPlayerbot.botActiveAloneSmartScale = 1
|
||||
AiPlayerbot.botActiveAloneSmartScaleWhenMinLevel = 1
|
||||
AiPlayerbot.botActiveAloneSmartScaleWhenMaxLevel = 80
|
||||
|
||||
PlayerbotsDatabase.WorkerThreads = 1
|
||||
PlayerbotsDatabase.SynchThreads = 2
|
||||
```
|
||||
|
||||
## Memory footprint
|
||||
The memory footprint does grow in most cases. Consider restarting your server every x hours depending on your
|
||||
configuration, hardware, player base/usage.
|
||||
|
||||
e.g. with a cronjob
|
||||
..
|
||||
1
wiki/Playerbot-Macro-Collection.md
Normal file
1
wiki/Playerbot-Macro-Collection.md
Normal file
@@ -0,0 +1 @@
|
||||
### todo
|
||||
50
wiki/Playerbot-Queries.md
Normal file
50
wiki/Playerbot-Queries.md
Normal file
@@ -0,0 +1,50 @@
|
||||
### clear bots
|
||||
```bash
|
||||
USE `acore_playerbots`;
|
||||
DELETE FROM `playerbots_random_bots`;
|
||||
DELETE FROM `playerbots_account_type`;
|
||||
|
||||
USE `acore_characters`;
|
||||
DELETE FROM `characters` WHERE `account` IN (SELECT `id` FROM `acore_auth`.`account` WHERE `username` LIKE 'RNDBOT%') OR `account` NOT IN (SELECT `id` FROM `acore_auth`.`account`);
|
||||
DELETE FROM `arena_team_member` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `arena_team` WHERE `arenaTeamId` NOT IN (SELECT `arenaTeamId` FROM `arena_team_member`);
|
||||
DELETE FROM `character_account_data` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_achievement` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_achievement_progress` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_action` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_aura` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_glyphs` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_homebind` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `item_instance` WHERE `owner_guid` NOT IN (SELECT `guid` FROM `characters`) AND `owner_guid` > 0;
|
||||
DELETE FROM `character_inventory` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_pet` WHERE `owner` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `pet_aura` WHERE `guid` NOT IN (SELECT `id` FROM `character_pet`);
|
||||
DELETE FROM `pet_spell` WHERE `guid` NOT IN (SELECT `id` FROM `character_pet`);
|
||||
DELETE FROM `pet_spell_cooldown` WHERE `guid` NOT IN (SELECT `id` FROM `character_pet`);
|
||||
DELETE FROM `character_queststatus` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_queststatus_rewarded` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_reputation` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_skills` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_social` WHERE `friend` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_spell` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_spell_cooldown` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_talent` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `corpse` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `groups` WHERE `leaderGuid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `group_member` WHERE `memberGuid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `mail` WHERE `receiver` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `mail_items` WHERE `receiver` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `guild` WHERE `leaderguid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `guild_bank_eventlog` WHERE `guildid` NOT IN (SELECT `guildid` FROM `guild`);
|
||||
DELETE FROM `guild_member` WHERE `guildid` NOT IN (SELECT `guildid` FROM `guild`) OR `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `guild_rank` WHERE `guildid` NOT IN (SELECT `guildid` FROM `guild`);
|
||||
DELETE FROM `petition` WHERE `ownerguid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `petition_sign` WHERE `ownerguid` NOT IN (SELECT `guid` FROM `characters`) OR `playerguid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_arena_stats` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
DELETE FROM `character_entry_point` WHERE `guid` NOT IN (SELECT `guid` FROM `characters`);
|
||||
|
||||
USE `acore_auth`;
|
||||
DELETE FROM `account` WHERE `username` LIKE 'RNDBOT%';
|
||||
DELETE FROM `realmcharacters` WHERE `acctid` NOT IN (SELECT `id` FROM `account`);
|
||||
```
|
||||
[Thanks to noisiver@Revision](https://github.com/noisiver/codebase/blob/master/SQL%2FAzerothCore%2Fdelete_playerbots.sql)
|
||||
43
wiki/Playerbot-Raid-Completion-Status.md
Normal file
43
wiki/Playerbot-Raid-Completion-Status.md
Normal file
@@ -0,0 +1,43 @@
|
||||
## Raid Completion Status
|
||||
This page is intended to keep track of raids that are currently possible to complete with playerbots and note which raids have active strategies implemented. A pure list of implemented raid strategies can be found here: https://github.com/liyunfan1223/mod-playerbots/wiki/Playerbot-Commands#raid-specific-strategies
|
||||
|
||||
"Unknown" denotes raids that have not been thoroughly tested and verified.
|
||||
|
||||
## Vanilla
|
||||
|
||||
Raid | Completion Status | Notes
|
||||
:---|:---|:---
|
||||
``Molten Core`` | Completable | Raid strategy implemented for: Baron Geddon. Otherwise every boss is defeatable with minimal knowledge and planning.
|
||||
``Blackwing Lair`` | Completable | Raid strategy implemented for: added automatic Onyxia Scale Cloak buff to playerbots, bots automatically disable suppression devices, and bots automatically clear Brood Affliction: Bronze on Chromaggus. Otherwise every boss is defeatable with minimal to moderate knowledge and planning.
|
||||
``Zul'Gurub`` | Completable | No raid strategies implemented. Every boss is defeatable with minimal to moderate knowledge and planning.
|
||||
``Ruins of Ahn'Qiraj`` | Completable | Raid strategy implemented for: Ossirian. Otherwise every boss is defeatable with basic knowledge and planning.
|
||||
``Ahn'Qiraj`` | WIP | Needs strategies. No strategies implemented at this time. Every boss up to Twin Emperors and C’thun is completable
|
||||
``Naxxramas`` | Not supported |
|
||||
|
||||
## Burning Crusade
|
||||
|
||||
Raid | Completion Status | Notes
|
||||
:---|:---|:---
|
||||
``Karazhan`` | Completable | No strategies implemented, but bosses are doable with little to significant planning depending on the boss. Chess event not coded but is possible to solo.
|
||||
``Magtheridon`` | Completable | No strategies implemented, but they are not needed. Boss is defeatable with moderate knowledge and planning.
|
||||
``Gruul’s Lair`` | Completable | No strategies implemented, but they are not needed. Every boss is defeatable with moderate knowledge and planning.
|
||||
``Serpentshrine Cavern`` | Unknown | Unknown
|
||||
``Hyjal Summit`` | Unknown | Unknown
|
||||
``Tempest Keep`` | Unknown | Unknown
|
||||
``Black Temple`` | Unknown | Unknown
|
||||
``Zul’Aman`` | Unknown | Unknown
|
||||
``Sunwell Plateau`` | Unknown | Unknown
|
||||
|
||||
## Wrath of the Lich King
|
||||
|
||||
Raid | Completion Status | Notes
|
||||
:---|:---|:---
|
||||
``Naxxramas`` | Completable | Raid strategy implemented for: most bosses. Otherwise every boss is defeatable with moderate knowledge and planning. Not applicable for 40 man
|
||||
``Vault of Archavon`` | WIP | Raid strategy implemented for: Emalon. Needs more strategies. Archavon is defeatable with minimal knowledge and planning.
|
||||
``Obsidian Sanctum`` | Completable | Raid strategy implemented for: Sartharion up to two drakes. Must kill Vesperon first.
|
||||
``Eye of Eternity`` | Completable | Raid strategy implemented for: Malygos.
|
||||
``Ulduar`` | WIP | Raid strategy implemented for: Up to General Vezax.
|
||||
``Trial of the Crusader`` | WIP | Needs strategies.
|
||||
``Onyxia’s Lair`` | Completable | Raid strategy implemented for: Onyxia.
|
||||
``Icecrown Citadel`` | Completable | All necessary raid bosses have implemented raid strategies. Heroic mode is still WIP.
|
||||
``Ruby Sanctum`` | Unknown | Unknown
|
||||
Reference in New Issue
Block a user