mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-02-07 21:01:37 +00:00
Compare commits
601 Commits
e-branch
...
a6b28f730b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a6b28f730b | ||
|
|
b3b103b93f | ||
|
|
d909d4be4e | ||
|
|
5ca71f3fbe | ||
|
|
8a157ea71d | ||
|
|
cc068a5452 | ||
|
|
f3b1a0b27e | ||
|
|
bfe2c174b4 | ||
|
|
7e48278a8e | ||
|
|
2069445a97 | ||
|
|
6db120d78f | ||
|
|
9e574c2049 | ||
|
|
68be5c4b24 | ||
|
|
0b7cd099ae | ||
|
|
e5517fb215 | ||
|
|
d7f31c2f58 | ||
|
|
01680f3bbb | ||
|
|
0bac780877 | ||
|
|
253eb1997a | ||
|
|
d5b59552e2 | ||
|
|
73f4bfd713 | ||
|
|
e062d26ff5 | ||
|
|
b2910f2b2c | ||
|
|
f0f9d056bd | ||
|
|
6b2f1ceb81 | ||
|
|
9fe94df3e6 | ||
|
|
bed9c2b532 | ||
|
|
e9233e400e | ||
|
|
0dec7c1c7c | ||
|
|
36af3bf820 | ||
|
|
9092790284 | ||
|
|
702c99b6b1 | ||
|
|
f72b42eb81 | ||
|
|
ff9638831b | ||
|
|
dd43e9078a | ||
|
|
03f5d038ac | ||
|
|
8b77562d8a | ||
|
|
0306c47380 | ||
|
|
c6720a3074 | ||
|
|
bb49c9f844 | ||
|
|
5caef28b48 | ||
|
|
77cdfef043 | ||
|
|
7332bb549f | ||
|
|
5370aaeb52 | ||
|
|
d177c900c7 | ||
|
|
182c9e4ad3 | ||
|
|
911d602a41 | ||
|
|
42f65b2046 | ||
|
|
b48d85c442 | ||
|
|
4bc5466435 | ||
|
|
2d2a5223cb | ||
|
|
756d502d8c | ||
|
|
1589861810 | ||
|
|
57bea39e0d | ||
|
|
f01ac3f88e | ||
|
|
445184db4d | ||
|
|
7cc7cbd094 | ||
|
|
e85c267c28 | ||
|
|
8f1ba2a484 | ||
|
|
d21c3ec106 | ||
|
|
d908b4c2fc | ||
|
|
a8ce95ad71 | ||
|
|
e7eb346141 | ||
|
|
218e96c59e | ||
|
|
e191efe89d | ||
|
|
bad46ba2f2 | ||
|
|
bd3fae16a6 | ||
|
|
5ed3e533f1 | ||
|
|
45c8f242c2 | ||
|
|
e1685a23f5 | ||
|
|
76dc129839 | ||
|
|
2bac143eb8 | ||
|
|
87a3be1dc2 | ||
|
|
aa3a27c430 | ||
|
|
df98dc87a3 | ||
|
|
4ef9b00b01 | ||
|
|
fded8c48af | ||
|
|
86b411ea99 | ||
|
|
67f9b7254f | ||
|
|
d1e9496fa4 | ||
|
|
15f596c9d8 | ||
|
|
4b9c6ae55f | ||
|
|
9e6493ff26 | ||
|
|
7ffef7b5fa | ||
|
|
088b86052d | ||
|
|
db2dafec95 | ||
|
|
6bdc48c7d4 | ||
|
|
b37d504c99 | ||
|
|
36560a4ff3 | ||
|
|
d81355460f | ||
|
|
0b9472b7cd | ||
|
|
1b35971f00 | ||
|
|
71cc99f1a9 | ||
|
|
838e49f007 | ||
|
|
a4c2476957 | ||
|
|
beae2ba6d6 | ||
|
|
226591a02e | ||
|
|
1f270d0fd1 | ||
|
|
e12f739dc9 | ||
|
|
01488006ff | ||
|
|
a98971a5be | ||
|
|
cb69e65716 | ||
|
|
43f496d372 | ||
|
|
b6124e2727 | ||
|
|
8785a9a726 | ||
|
|
a43dda6444 | ||
|
|
ccc17be7e1 | ||
|
|
54914d0854 | ||
|
|
dbfc8001a2 | ||
|
|
9dd35e78fe | ||
|
|
cdd6e84508 | ||
|
|
0a0ba0a53f | ||
|
|
ae2af138e2 | ||
|
|
5a1445a0dc | ||
|
|
8f55eb0ca9 | ||
|
|
eb9913b808 | ||
|
|
782bc2a74a | ||
|
|
1dadda2c04 | ||
|
|
00f4193bbf | ||
|
|
4cff291e7d | ||
|
|
382896c857 | ||
|
|
6056978687 | ||
|
|
7a1fa7b081 | ||
|
|
7aaefb76d9 | ||
|
|
896e1d3f38 | ||
|
|
a3b2c7ad0e | ||
|
|
c91ce7f7c2 | ||
|
|
befa0158e2 | ||
|
|
58e3316c45 | ||
|
|
b9345774f9 | ||
|
|
97ee5f7459 | ||
|
|
f262dc7835 | ||
|
|
fc7c7055ba | ||
|
|
3ba00be179 | ||
|
|
8f84271af8 | ||
|
|
7b41eb5c90 | ||
|
|
58c1c49610 | ||
|
|
08323af7a5 | ||
|
|
bc9ca38d78 | ||
|
|
7be3d24c1e | ||
|
|
87d3f3ba3a | ||
|
|
6b5da02e78 | ||
|
|
821f854318 | ||
|
|
7228e76355 | ||
|
|
528e590f10 | ||
|
|
eef1980923 | ||
|
|
1ed9aee631 | ||
|
|
454a4f34f0 | ||
|
|
236c842934 | ||
|
|
3732047b9e | ||
|
|
3d29de2844 | ||
|
|
a2a4a4f7cf | ||
|
|
923cccdc25 | ||
|
|
cd799aa1c6 | ||
|
|
0bb40fddc4 | ||
|
|
e68fa57fd6 | ||
|
|
838628a25d | ||
|
|
7c5b199489 | ||
|
|
b5cdb0e63e | ||
|
|
12909c1958 | ||
|
|
b7c92a52aa | ||
|
|
6bee45a1c8 | ||
|
|
8c2409ff06 | ||
|
|
52a09fbf54 | ||
|
|
c96314a9b3 | ||
|
|
1b0eef2e6c | ||
|
|
c6c90e0034 | ||
|
|
39187083b0 | ||
|
|
2607df754b | ||
|
|
880529a5b4 | ||
|
|
e846fdc8b9 | ||
|
|
6d42ab1797 | ||
|
|
fc1d8e2a64 | ||
|
|
4f9b4d5470 | ||
|
|
f96e7c577b | ||
|
|
be3d55f770 | ||
|
|
fac127718d | ||
|
|
1aac4fbef6 | ||
|
|
dae1f55536 | ||
|
|
ec7bb81473 | ||
|
|
d9c7330434 | ||
|
|
2eda59a0dc | ||
|
|
21e313a7f1 | ||
|
|
96f1fe67d9 | ||
|
|
798589fb5d | ||
|
|
6aef3aae5f | ||
|
|
945fdff66c | ||
|
|
245fe501f1 | ||
|
|
19a834fa55 | ||
|
|
152b1cc455 | ||
|
|
5fbcb45727 | ||
|
|
0145bebb10 | ||
|
|
59c1233d98 | ||
|
|
f67b86df8b | ||
|
|
1125d84fb2 | ||
|
|
1665fefb1a | ||
|
|
9d82a35671 | ||
|
|
861058f657 | ||
|
|
c092fb1581 | ||
|
|
fd567ddcfa | ||
|
|
dc6be0655f | ||
|
|
c0aec97676 | ||
|
|
ced3cf9b22 | ||
|
|
93c0ab5b6b | ||
|
|
9bc46a7b77 | ||
|
|
18a5a2be5c | ||
|
|
fdb71c521e | ||
|
|
830e1fc5c2 | ||
|
|
234268e3bf | ||
|
|
4514980791 | ||
|
|
025aaacf20 | ||
|
|
32b3e6331d | ||
|
|
8ff1d2ccc1 | ||
|
|
55bc26f505 | ||
|
|
21c2c3e0ee | ||
|
|
1620d6d64b | ||
|
|
c167fef89c | ||
|
|
475e5a42c4 | ||
|
|
24fa79040f | ||
|
|
c3fbb2da20 | ||
|
|
1e88fccd3c | ||
|
|
13edac562c | ||
|
|
4ace49c95a | ||
|
|
c6222b9aa3 | ||
|
|
58fd50651d | ||
|
|
ce9343d916 | ||
|
|
c304ccee57 | ||
|
|
97342b05e7 | ||
|
|
95fc3f0932 | ||
|
|
4deb6ec311 | ||
|
|
565019ed27 | ||
|
|
34811a047a | ||
|
|
f332b07140 | ||
|
|
bd0302605a | ||
|
|
990c85c2cd | ||
|
|
7d431dc796 | ||
|
|
d1032678ff | ||
|
|
41415bb3c3 | ||
|
|
de3c2b553e | ||
|
|
e5c67bd47d | ||
|
|
cf035b5e5e | ||
|
|
91edb92f7a | ||
|
|
36987b8a96 | ||
|
|
8e5802da4e | ||
|
|
36ac083814 | ||
|
|
5035e880f4 | ||
|
|
b603c8c1e8 | ||
|
|
2bab8ee807 | ||
|
|
4e8524bd13 | ||
|
|
c76e70a364 | ||
|
|
7347f64938 | ||
|
|
889b509313 | ||
|
|
ba56317506 | ||
|
|
e8679bc13b | ||
|
|
3d3fff1a2e | ||
|
|
9e5f551b58 | ||
|
|
1294d79764 | ||
|
|
4cd23792db | ||
|
|
4183a34608 | ||
|
|
fce06946e1 | ||
|
|
545bb18af4 | ||
|
|
abd9b4ebb8 | ||
|
|
2e37c1ff1d | ||
|
|
418afce6d7 | ||
|
|
0e1fb788c1 | ||
|
|
b4ca46c3af | ||
|
|
6eb5070cbc | ||
|
|
9ebdbd8459 | ||
|
|
66c55bc450 | ||
|
|
9780dbab7e | ||
|
|
910848c51b | ||
|
|
57b7a6a4eb | ||
|
|
ddd7c1fb6c | ||
|
|
c85e9772a8 | ||
|
|
af776520db | ||
|
|
2358b256f2 | ||
|
|
7e8c2d2887 | ||
|
|
9973151927 | ||
|
|
6f5b504e4c | ||
|
|
414805e692 | ||
|
|
f8a28b6883 | ||
|
|
fdb6fedc00 | ||
|
|
a642358a43 | ||
|
|
1bf88ad3a3 | ||
|
|
27b243e7b2 | ||
|
|
33e4bc8390 | ||
|
|
c3be0fa2a8 | ||
|
|
3e2509e20c | ||
|
|
2cde786785 | ||
|
|
0406652bae | ||
|
|
f5e44cd8a6 | ||
|
|
7227e78f54 | ||
|
|
0ba424a853 | ||
|
|
7a1986da61 | ||
|
|
f6a9b1f97d | ||
|
|
bba6c86364 | ||
|
|
84c12b0402 | ||
|
|
e6fa5732dc | ||
|
|
172f54b49a | ||
|
|
f7ad415b3f | ||
|
|
4a48e18d5b | ||
|
|
5276676a11 | ||
|
|
c72188467a | ||
|
|
22132addce | ||
|
|
05c9a96ba9 | ||
|
|
1f54cb14fa | ||
|
|
223ec63ba5 | ||
|
|
2a2e2ec445 | ||
|
|
cc5adebbe4 | ||
|
|
d7a07b2397 | ||
|
|
9a11d9dd5b | ||
|
|
fb4dbdd604 | ||
|
|
20f917c48f | ||
|
|
72725635ba | ||
|
|
7ca3db8bd0 | ||
|
|
72634b2829 | ||
|
|
971b2f8316 | ||
|
|
12ea82a57f | ||
|
|
1e22c4dc94 | ||
|
|
5079750396 | ||
|
|
9bbe90d388 | ||
|
|
0a1570ec52 | ||
|
|
99bc841ff6 | ||
|
|
c010742289 | ||
|
|
10bd872f2d | ||
|
|
ab9fe20600 | ||
|
|
65cb23b56a | ||
|
|
f0be01a5d7 | ||
|
|
d74a6dd960 | ||
|
|
6338010e09 | ||
|
|
97604fab77 | ||
|
|
91870c9ccd | ||
|
|
4387de8b82 | ||
|
|
e0ddd7f610 | ||
|
|
0024602d42 | ||
|
|
b1ee6cfe06 | ||
|
|
af717c592f | ||
|
|
ce59a892c7 | ||
|
|
68219e6f55 | ||
|
|
a42219e17d | ||
|
|
b3f96a2bc1 | ||
|
|
23cf1a3aab | ||
|
|
f0cb94cb3f | ||
|
|
6d5b402c2c | ||
|
|
60b624a3ac | ||
|
|
19cd29ff6d | ||
|
|
c36a7a25a0 | ||
|
|
187db6f688 | ||
|
|
984e03db18 | ||
|
|
01a6bd65bf | ||
|
|
5ef572eaf9 | ||
|
|
8a1635bc6e | ||
|
|
0b0eeb05c9 | ||
|
|
8e5731ff60 | ||
|
|
51219291a3 | ||
|
|
7c856eaf63 | ||
|
|
b4046d48d7 | ||
|
|
ccff9469fc | ||
|
|
cd5826f283 | ||
|
|
5699c97d8c | ||
|
|
9784f932e9 | ||
|
|
1ef5b9a6b4 | ||
|
|
b314b04001 | ||
|
|
9e172c9113 | ||
|
|
b70e64dbcf | ||
|
|
600b0873e7 | ||
|
|
cb795ae5d4 | ||
|
|
213300bf66 | ||
|
|
ccf92f481d | ||
|
|
19f7e753ba | ||
|
|
68c8fad239 | ||
|
|
f68f398e59 | ||
|
|
608ff291cb | ||
|
|
7c91ec9bf9 | ||
|
|
452584a155 | ||
|
|
80a8896dfe | ||
|
|
60cf17d70a | ||
|
|
7915f79d04 | ||
|
|
d879fc9258 | ||
|
|
57e0c7a09f | ||
|
|
a5e27362d8 | ||
|
|
2dd1490c18 | ||
|
|
e7ac00b586 | ||
|
|
28fcb40b88 | ||
|
|
cc4ac0ab57 | ||
|
|
92c6ef23ff | ||
|
|
c6bcda8b9d | ||
|
|
e2019033c1 | ||
|
|
58a7625be7 | ||
|
|
4b1f585fab | ||
|
|
33eb24f543 | ||
|
|
36e18dd5e1 | ||
|
|
6a954d7560 | ||
|
|
b8567b3f66 | ||
|
|
df11f5a0e7 | ||
|
|
db889ed3c9 | ||
|
|
a4e5ff3779 | ||
|
|
058526b612 | ||
|
|
78e21a0539 | ||
|
|
06b2f25a00 | ||
|
|
2ca14cd5eb | ||
|
|
95add2b815 | ||
|
|
2afc3a46d0 | ||
|
|
4d3abb0538 | ||
|
|
95843d5835 | ||
|
|
44046ee5df | ||
|
|
0713446e1e | ||
|
|
55821a893c | ||
|
|
433467b8c0 | ||
|
|
abaf4655e2 | ||
|
|
b417973361 | ||
|
|
e766845cb4 | ||
|
|
69740eb29b | ||
|
|
23306a3d10 | ||
|
|
f05b5e678c | ||
|
|
dc4c50923c | ||
|
|
46f277f2f6 | ||
|
|
a7519279f7 | ||
|
|
05103aeacf | ||
|
|
a1a3263727 | ||
|
|
0e7289304d | ||
|
|
9d3d2c84fe | ||
|
|
f677900061 | ||
|
|
ec45b40cb9 | ||
|
|
72660b1ed8 | ||
|
|
aa1214a6ba | ||
|
|
2e294eae2b | ||
|
|
42e8c3f172 | ||
|
|
25d2c3ebe7 | ||
|
|
d6a099e98c | ||
|
|
1773a505c0 | ||
|
|
e355e79482 | ||
|
|
bb0f212b87 | ||
|
|
780c8ede85 | ||
|
|
e622ba991f | ||
|
|
affbfa1e30 | ||
|
|
d02099db9a | ||
|
|
ae175496dd | ||
|
|
0248ed8778 | ||
|
|
43778acb9a | ||
|
|
ed4e0ffbda | ||
|
|
c9186547dd | ||
|
|
a27f752dcc | ||
|
|
00f9f8e0d0 | ||
|
|
1b3fd82f5c | ||
|
|
4004dcb23b | ||
|
|
6cb1778c6d | ||
|
|
0aca3f7b72 | ||
|
|
2bf872e446 | ||
|
|
939291c9c2 | ||
|
|
4c18f3b3e5 | ||
|
|
38268a187e | ||
|
|
317afd051b | ||
|
|
71e8baf929 | ||
|
|
e9143a2c0b | ||
|
|
0a192af532 | ||
|
|
be7c57507f | ||
|
|
e898462333 | ||
|
|
ca84c22cf2 | ||
|
|
fce7ba32a3 | ||
|
|
328d991305 | ||
|
|
826bac08ec | ||
|
|
d40a859de6 | ||
|
|
62d3317c93 | ||
|
|
6a1589c989 | ||
|
|
8ffdf088d4 | ||
|
|
d5e1ec851a | ||
|
|
4bc9901f16 | ||
|
|
ba4e49f5b2 | ||
|
|
ccee04c908 | ||
|
|
03b3f9d051 | ||
|
|
465d19b7f6 | ||
|
|
f51115a054 | ||
|
|
16eecd908e | ||
|
|
b86914fd37 | ||
|
|
2bb78d1451 | ||
|
|
cd6e0d7e0b | ||
|
|
5a8fe17184 | ||
|
|
2ec6f2d92f | ||
|
|
c1c97ad425 | ||
|
|
fad161a76b | ||
|
|
87f185bb85 | ||
|
|
ec7288bc17 | ||
|
|
cab0d6f027 | ||
|
|
8ec316da13 | ||
|
|
4d068b0e74 | ||
|
|
18ae6a473f | ||
|
|
99dbd3d4c5 | ||
|
|
780b947f51 | ||
|
|
b68c3a733a | ||
|
|
e0b905aef7 | ||
|
|
4b8fb01016 | ||
|
|
ce8592b29b | ||
|
|
46438255bf | ||
|
|
5996f1f1af | ||
|
|
906748cd16 | ||
|
|
80c608df4f | ||
|
|
a300a4be12 | ||
|
|
203f2ec7eb | ||
|
|
8c05b69e4e | ||
|
|
7b5a03ac8f | ||
|
|
4c6c80d880 | ||
|
|
8da3ae8a91 | ||
|
|
e67849a858 | ||
|
|
d38899321c | ||
|
|
6dfc04c2bf | ||
|
|
46fa7b484d | ||
|
|
76f4f741d8 | ||
|
|
8791645166 | ||
|
|
77571adf1f | ||
|
|
aa1705d6c5 | ||
|
|
c9fa699837 | ||
|
|
819532426b | ||
|
|
31f36b25f2 | ||
|
|
ac5bcfae12 | ||
|
|
399b8803b8 | ||
|
|
cd7a22a4de | ||
|
|
2759a5ee1d | ||
|
|
0752208c43 | ||
|
|
3d8f540110 | ||
|
|
774225e669 | ||
|
|
bbd283598d | ||
|
|
32c6babdb7 | ||
|
|
29e14042e7 | ||
|
|
a5f1fc38a8 | ||
|
|
6ad65508af | ||
|
|
2a45fdff1f | ||
|
|
d960ccd4e4 | ||
|
|
55510b18e6 | ||
|
|
0fd3d185b9 | ||
|
|
efd245daf5 | ||
|
|
27300e9fdf | ||
|
|
a44c241430 | ||
|
|
f1043be632 | ||
|
|
0d3a10cc26 | ||
|
|
e8781b0fc1 | ||
|
|
c687d40741 | ||
|
|
65f6fbb496 | ||
|
|
98f0f093e5 | ||
|
|
67e9f2fd35 | ||
|
|
98c22aa96d | ||
|
|
87fc81d0cc | ||
|
|
743479e817 | ||
|
|
7cc44a4ab1 | ||
|
|
3ab6d3cb37 | ||
|
|
4f8564ea5b | ||
|
|
2d7cba14db | ||
|
|
d8a2665867 | ||
|
|
46e9e82118 | ||
|
|
427f0afaaf | ||
|
|
b314b3a711 | ||
|
|
2442fc6ad7 | ||
|
|
650e71728a | ||
|
|
882359297d | ||
|
|
0d42597ba3 | ||
|
|
34b332b51b | ||
|
|
cc94955bb2 | ||
|
|
9a6c789f1a | ||
|
|
26595bd2d9 | ||
|
|
6b57ea8223 | ||
|
|
e05bc38461 | ||
|
|
0053ac67d9 | ||
|
|
c2efd301b5 | ||
|
|
44e4cd8cda | ||
|
|
0e6a5bddbb | ||
|
|
1e3d488784 | ||
|
|
c6df5eae3a | ||
|
|
0326d8576d | ||
|
|
92841a35e1 | ||
|
|
84b794ab38 | ||
|
|
8b0ef0b5a0 | ||
|
|
0efe2a01fe | ||
|
|
f5f3d78ed6 | ||
|
|
534df7c448 | ||
|
|
ec96415fda | ||
|
|
19b2c35180 | ||
|
|
a1985ddbeb | ||
|
|
2cb590a48b | ||
|
|
68d3ec7d77 | ||
|
|
a25c289a5a | ||
|
|
32dc06900c | ||
|
|
1c11bde14f | ||
|
|
f5f6478688 | ||
|
|
7d7e66cbe4 | ||
|
|
fb52816a11 | ||
|
|
246e2cad2e | ||
|
|
36ed431c7f | ||
|
|
5cec9facf8 | ||
|
|
d4062269c8 | ||
|
|
db71f4739c | ||
|
|
ff0e5d5e3b | ||
|
|
60f11b3671 | ||
|
|
e42a572c35 | ||
|
|
921bfbde86 | ||
|
|
b88c5d8b89 | ||
|
|
12d41d1314 | ||
|
|
c2a6eff91d | ||
|
|
7b3b37b1b3 | ||
|
|
d60bb4fc90 | ||
|
|
6006eeeb01 | ||
|
|
2cab3258bb |
3
.github/README.md
vendored
3
.github/README.md
vendored
@@ -82,7 +82,8 @@ You can check the [authors](https://github.com/azerothcore/azerothcore-wotlk/blo
|
||||
|
||||
## License
|
||||
|
||||
- The AzerothCore source code is released under the [GNU GPL v2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)
|
||||
- The new AzerothCore source components are released under the [GNU AGPL v3](https://www.gnu.org/licenses/agpl-3.0.en.html)
|
||||
- The old sources based on MaNGOS/TrinityCore are released under the [GNU GPL v2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)
|
||||
|
||||
It's important to note that AzerothCore is not an official Blizzard Entertainment product, and it is not affiliated with or endorsed by World of Warcraft or Blizzard Entertainment. AzerothCore does not in any case sponsor nor support illegal public servers. If you use this project to run an illegal public server and not for testing and learning it is your own personal choice.
|
||||
|
||||
|
||||
2
.github/workflows/codestyle.yml
vendored
2
.github/workflows/codestyle.yml
vendored
@@ -14,7 +14,7 @@ jobs:
|
||||
triage:
|
||||
runs-on: ubuntu-latest
|
||||
name: C++
|
||||
if: github.repository == 'azerothcore/azerothcore-wotlk' && !github.event.pull_request.draft
|
||||
if: github.repository == 'mod-playerbots/azerothcore-wotlk' && !github.event.pull_request.draft
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup python
|
||||
|
||||
2
.github/workflows/core-build-nopch.yml
vendored
2
.github/workflows/core-build-nopch.yml
vendored
@@ -44,7 +44,7 @@ jobs:
|
||||
CXX: g++-14
|
||||
runs-on: ${{ matrix.os }}
|
||||
name: ${{ matrix.os }}-${{ matrix.compiler.CC }}-nopch
|
||||
if: github.repository == 'azerothcore/azerothcore-wotlk' && !github.event.pull_request.draft
|
||||
if: github.repository == 'mod-playerbots/azerothcore-wotlk' && !github.event.pull_request.draft
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ./.github/actions/linux-build
|
||||
|
||||
6
.github/workflows/core-build-pch.yml
vendored
6
.github/workflows/core-build-pch.yml
vendored
@@ -39,8 +39,10 @@ jobs:
|
||||
CC: clang-18
|
||||
CXX: clang++-18
|
||||
runs-on: ${{ matrix.os }}
|
||||
name: ${{ matrix.os }}-${{ matrix.compiler.CC }}-pch
|
||||
if: github.repository == 'azerothcore/azerothcore-wotlk' && !github.event.pull_request.draft
|
||||
name: ${{ matrix.os }}-${{ matrix.compiler }}-pch
|
||||
env:
|
||||
COMPILER: ${{ matrix.compiler }}
|
||||
if: github.repository == 'mod-playerbots/azerothcore-wotlk' && !github.event.pull_request.draft
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ./.github/actions/linux-build
|
||||
|
||||
100
.github/workflows/core-build-playerbots.yml
vendored
Normal file
100
.github/workflows/core-build-playerbots.yml
vendored
Normal file
@@ -0,0 +1,100 @@
|
||||
# This starter workflow is for a CMake project running on multiple platforms. There is a different starter workflow if you just want a single platform.
|
||||
# See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-single-platform.yml
|
||||
name: ubuntu-build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "Playerbot" ]
|
||||
pull_request:
|
||||
branches: [ "Playerbot" ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
strategy:
|
||||
# Set fail-fast to false to ensure that feedback is delivered for all matrix combinations. Consider changing this to true when your workflow is stable.
|
||||
fail-fast: false
|
||||
matrix:
|
||||
# the result of the matrix will be the combination of all attributes, so we get os*compiler builds
|
||||
include:
|
||||
- os: ubuntu-22.04
|
||||
c_compiler: clang
|
||||
cpp_compiler: clang++
|
||||
build_type: Release
|
||||
- os: ubuntu-22.04
|
||||
c_compiler: gcc
|
||||
cpp_compiler: g++
|
||||
build_type: Release
|
||||
- os: ubuntu-24.04
|
||||
c_compiler: gcc
|
||||
cpp_compiler: g++
|
||||
build_type: Release
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
name: ${{ matrix.os }}-${{ matrix.cpp_compiler }}
|
||||
|
||||
steps:
|
||||
- name: Checkout AzerothCore
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Set reusable strings
|
||||
# Turn repeated input strings (such as the build output directory) into step outputs. These step outputs can be used throughout the workflow file.
|
||||
id: strings
|
||||
shell: bash
|
||||
run: |
|
||||
echo "build-output-dir=${{ github.workspace }}/build" >> "$GITHUB_OUTPUT"
|
||||
|
||||
# - name: Clone Playerbot Module
|
||||
# run: git clone --depth=1 --branch=master https://github.com/mod-playerbots/mod-playerbots.git modules/mod-playerbots
|
||||
|
||||
- name: Checkout Playerbot Module
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: 'mod-playerbots/mod-playerbots'
|
||||
#ref: 'feature/core_update_10_2025' #used on core merge conflicts builds
|
||||
path: 'modules/mod-playerbots'
|
||||
|
||||
- name: Install Requirements
|
||||
run: 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
|
||||
|
||||
# - name: Cache
|
||||
# uses: actions/cache@v3
|
||||
# with:
|
||||
# path: var/ccache
|
||||
# key: ccache:${{ matrix.os }}:${{ matrix.compiler }}:${{ matrix.modules }}-modules:${{ github.ref }}:${{ github.sha }}
|
||||
# restore-keys: |
|
||||
# ccache:${{ matrix.os }}:${{ matrix.compiler }}:${{ matrix.modules }}-modules:${{ github.ref }}
|
||||
# ccache:${{ matrix.os }}:${{ matrix.compiler }}:${{ matrix.modules }}-modules
|
||||
|
||||
# - name: Configure OS
|
||||
# run: source ./acore.sh install-deps
|
||||
# env:
|
||||
# CONTINUOUS_INTEGRATION: true
|
||||
|
||||
# - name: Create conf/config.sh
|
||||
# run: source ./apps/ci/ci-conf-core.sh
|
||||
|
||||
# - name: Process pending sql
|
||||
# run: bash bin/acore-db-pendings
|
||||
|
||||
# - name: Build
|
||||
# run: source ./apps/ci/ci-compile.sh
|
||||
|
||||
- name: Configure CMake
|
||||
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
|
||||
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
|
||||
run: >
|
||||
cmake -B ${{ steps.strings.outputs.build-output-dir }}
|
||||
-DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }}
|
||||
-DCMAKE_C_COMPILER=${{ matrix.c_compiler }}
|
||||
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
|
||||
-S ${{ github.workspace }}
|
||||
|
||||
- name: Build
|
||||
# Build your program with the given configuration. Note that --config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).
|
||||
run: cmake --build ${{ steps.strings.outputs.build-output-dir }} --config ${{ matrix.build_type }}
|
||||
|
||||
# - name: Test
|
||||
# working-directory: ${{ steps.strings.outputs.build-output-dir }}
|
||||
# # Execute tests defined by the CMake configuration. Note that --build-config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).
|
||||
# # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
|
||||
# run: ctest --build-config ${{ matrix.build_type }}
|
||||
99
.github/workflows/core-build.yml
vendored
Normal file
99
.github/workflows/core-build.yml
vendored
Normal file
@@ -0,0 +1,99 @@
|
||||
# This starter workflow is for a CMake project running on multiple platforms. There is a different starter workflow if you just want a single platform.
|
||||
# See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-single-platform.yml
|
||||
name: ubuntu-build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "Playerbot" ]
|
||||
pull_request:
|
||||
branches: [ "Playerbot" ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
strategy:
|
||||
# Set fail-fast to false to ensure that feedback is delivered for all matrix combinations. Consider changing this to true when your workflow is stable.
|
||||
fail-fast: false
|
||||
matrix:
|
||||
# the result of the matrix will be the combination of all attributes, so we get os*compiler builds
|
||||
include:
|
||||
- os: ubuntu-22.04
|
||||
c_compiler: clang
|
||||
cpp_compiler: clang++
|
||||
build_type: Release
|
||||
- os: ubuntu-22.04
|
||||
c_compiler: gcc
|
||||
cpp_compiler: g++
|
||||
build_type: Release
|
||||
- os: ubuntu-24.04
|
||||
c_compiler: gcc
|
||||
cpp_compiler: g++
|
||||
build_type: Release
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
name: ${{ matrix.os }}-${{ matrix.cpp_compiler }}
|
||||
|
||||
steps:
|
||||
- name: Checkout AzerothCore
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Set reusable strings
|
||||
# Turn repeated input strings (such as the build output directory) into step outputs. These step outputs can be used throughout the workflow file.
|
||||
id: strings
|
||||
shell: bash
|
||||
run: |
|
||||
echo "build-output-dir=${{ github.workspace }}/build" >> "$GITHUB_OUTPUT"
|
||||
|
||||
# - name: Clone Playerbot Module
|
||||
# run: git clone --depth=1 --branch=master https://github.com/mod-playerbots/mod-playerbots.git modules/mod-playerbots
|
||||
|
||||
# - name: Checkout Playerbot Module
|
||||
# uses: actions/checkout@v3
|
||||
# with:
|
||||
# repository: 'mod-playerbots/mod-playerbots'
|
||||
# path: 'modules/mod-playerbots'
|
||||
|
||||
- name: Install Requirements
|
||||
run: 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
|
||||
|
||||
# - name: Cache
|
||||
# uses: actions/cache@v3
|
||||
# with:
|
||||
# path: var/ccache
|
||||
# key: ccache:${{ matrix.os }}:${{ matrix.compiler }}:${{ matrix.modules }}-modules:${{ github.ref }}:${{ github.sha }}
|
||||
# restore-keys: |
|
||||
# ccache:${{ matrix.os }}:${{ matrix.compiler }}:${{ matrix.modules }}-modules:${{ github.ref }}
|
||||
# ccache:${{ matrix.os }}:${{ matrix.compiler }}:${{ matrix.modules }}-modules
|
||||
|
||||
# - name: Configure OS
|
||||
# run: source ./acore.sh install-deps
|
||||
# env:
|
||||
# CONTINUOUS_INTEGRATION: true
|
||||
|
||||
# - name: Create conf/config.sh
|
||||
# run: source ./apps/ci/ci-conf-core.sh
|
||||
|
||||
# - name: Process pending sql
|
||||
# run: bash bin/acore-db-pendings
|
||||
|
||||
# - name: Build
|
||||
# run: source ./apps/ci/ci-compile.sh
|
||||
|
||||
- name: Configure CMake
|
||||
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
|
||||
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
|
||||
run: >
|
||||
cmake -B ${{ steps.strings.outputs.build-output-dir }}
|
||||
-DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }}
|
||||
-DCMAKE_C_COMPILER=${{ matrix.c_compiler }}
|
||||
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
|
||||
-S ${{ github.workspace }}
|
||||
|
||||
- name: Build
|
||||
# Build your program with the given configuration. Note that --config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).
|
||||
run: cmake --build ${{ steps.strings.outputs.build-output-dir }} --config ${{ matrix.build_type }}
|
||||
|
||||
# - name: Test
|
||||
# working-directory: ${{ steps.strings.outputs.build-output-dir }}
|
||||
# # Execute tests defined by the CMake configuration. Note that --build-config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).
|
||||
# # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
|
||||
# run: ctest --build-config ${{ matrix.build_type }}
|
||||
2
.github/workflows/core_modules_build.yml
vendored
2
.github/workflows/core_modules_build.yml
vendored
@@ -46,7 +46,7 @@ jobs:
|
||||
CXX: clang++-18
|
||||
runs-on: ${{ matrix.os }}
|
||||
name: ${{ matrix.os }}-${{ matrix.compiler.CC }}-nopch-modules
|
||||
if: github.repository == 'azerothcore/azerothcore-wotlk' && !github.event.pull_request.draft
|
||||
if: github.repository == 'mod-playerbots/azerothcore-wotlk' && !github.event.pull_request.draft
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
# This script installs a general list of modules to compile with
|
||||
|
||||
4
.github/workflows/docker_build.yml
vendored
4
.github/workflows/docker_build.yml
vendored
@@ -23,13 +23,13 @@ env:
|
||||
COMPOSE_DOCKER_CLI_BUILD: 1
|
||||
DOCKER_BUILDKIT: 1
|
||||
RUNNING_ON_PRIMARY_BRANCH: |
|
||||
${{ (github.repository == 'azerothcore/azerothcore-wotlk' && github.ref_name == 'master') && 'true' || 'false' }}
|
||||
${{ (github.repository == 'mod-playerbots/azerothcore-wotlk' && github.ref_name == 'master') && 'true' || 'false' }}
|
||||
|
||||
jobs:
|
||||
build-containers:
|
||||
runs-on: "ubuntu-latest"
|
||||
if: |
|
||||
github.repository == 'azerothcore/azerothcore-wotlk'
|
||||
github.repository == 'mod-playerbots/azerothcore-wotlk'
|
||||
&& !github.event.pull_request.draft
|
||||
&& (github.ref_name == 'master' || contains(github.event.pull_request.labels.*.name, 'run-build') || github.event.label.name == 'run-build')
|
||||
steps:
|
||||
|
||||
11
.github/workflows/macos_build.yml
vendored
11
.github/workflows/macos_build.yml
vendored
@@ -1,12 +1,9 @@
|
||||
name: macos-build
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
branches: [ "Playerbot" ]
|
||||
pull_request:
|
||||
types:
|
||||
- labeled
|
||||
- synchronize
|
||||
branches: [ "Playerbot" ]
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.head_ref }} || concat(${{ github.ref_name }}, ${{ github.workflow }})
|
||||
@@ -25,10 +22,6 @@ jobs:
|
||||
- macos-14
|
||||
runs-on: ${{ matrix.os }}
|
||||
name: ${{ matrix.os }}
|
||||
if: |
|
||||
github.repository == 'azerothcore/azerothcore-wotlk'
|
||||
&& !github.event.pull_request.draft
|
||||
&& (github.ref == 'refs/heads/master' || contains(github.event.pull_request.labels.*.name, 'run-build') || github.event.label.name == 'run-build')
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Cache
|
||||
|
||||
8
.github/workflows/tools_build.yml
vendored
8
.github/workflows/tools_build.yml
vendored
@@ -32,9 +32,11 @@ jobs:
|
||||
runs-on: ${{ matrix.os }}
|
||||
name: ${{ matrix.os }}-${{ matrix.compiler.CC }}
|
||||
if: |
|
||||
github.repository == 'azerothcore/azerothcore-wotlk'
|
||||
&& !github.event.pull_request.draft
|
||||
&& (github.ref == 'refs/heads/master' || contains(github.event.pull_request.labels.*.name, 'run-build') || github.event.label.name == 'run-build')
|
||||
github.repository == 'mod-playerbots/azerothcore-wotlk' && !github.event.pull_request.draft
|
||||
&& (
|
||||
contains(github.event.pull_request.labels.*.name, 'run-build')
|
||||
|| github.event.label.name == 'run-build'
|
||||
)
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ./.github/actions/linux-build
|
||||
|
||||
11
.github/workflows/windows_build.yml
vendored
11
.github/workflows/windows_build.yml
vendored
@@ -1,12 +1,9 @@
|
||||
name: windows-build
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
branches: [ "Playerbot" ]
|
||||
pull_request:
|
||||
types:
|
||||
- labeled
|
||||
- synchronize
|
||||
branches: [ "Playerbot" ]
|
||||
|
||||
concurrency:
|
||||
# One concurrency group per workflow + ref.
|
||||
@@ -29,10 +26,6 @@ jobs:
|
||||
name: ${{ matrix.os }}
|
||||
env:
|
||||
BOOST_ROOT: C:\local\boost_1_82_0
|
||||
if: |
|
||||
github.repository == 'azerothcore/azerothcore-wotlk'
|
||||
&& !github.event.pull_request.draft
|
||||
&& (github.ref == 'refs/heads/master' || contains(github.event.pull_request.labels.*.name, 'run-build') || github.event.label.name == 'run-build')
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: ccache
|
||||
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -58,6 +58,8 @@ CMakeLists.txt.user
|
||||
#
|
||||
/.settings/
|
||||
/.externalToolBuilders/*
|
||||
/.vs
|
||||
/out
|
||||
# exclude in all levels
|
||||
nbproject/
|
||||
.sync.ffs_db
|
||||
@@ -102,3 +104,5 @@ local.properties
|
||||
# !modules/yourmodule
|
||||
#
|
||||
# ==================
|
||||
.cache
|
||||
compile_commands.json
|
||||
@@ -22,8 +22,7 @@ if [ ! -d "$mysql_include_path" ]; then
|
||||
fi
|
||||
|
||||
time cmake ../../../ \
|
||||
-DTOOLS=1 \
|
||||
-DBUILD_TESTING=1 \
|
||||
-DTOOLS_BUILD=all \
|
||||
-DSCRIPTS=static \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DMYSQL_ADD_INCLUDE_PATH=$mysql_include_path \
|
||||
@@ -33,9 +32,6 @@ time cmake ../../../ \
|
||||
-DOPENSSL_INCLUDE_DIR="$OPENSSL_ROOT_DIR/include" \
|
||||
-DOPENSSL_SSL_LIBRARIES="$OPENSSL_ROOT_DIR/lib/libssl.dylib" \
|
||||
-DOPENSSL_CRYPTO_LIBRARIES="$OPENSSL_ROOT_DIR/lib/libcrypto.dylib" \
|
||||
-DWITH_WARNINGS=1 \
|
||||
-DCMAKE_C_FLAGS="-Werror" \
|
||||
-DCMAKE_CXX_FLAGS="-Werror" \
|
||||
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
|
||||
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
|
||||
-DUSE_SCRIPTPCH=0 \
|
||||
|
||||
@@ -20,6 +20,8 @@ This tool compares your existing configuration files (`.conf`) with the latest d
|
||||
|
||||
## How to Use
|
||||
|
||||
There are two ways to use this. You can either copy this file directly to your `/configs` folder, or enable `TOOL_CONFIG_MERGER` in CMake. Upon compiling your core, the file will be generated in the same location as your `/configs` folder.
|
||||
|
||||
### Interactive Mode (Default)
|
||||
|
||||
1. **Run the script** in your configs directory:
|
||||
|
||||
@@ -31,8 +31,16 @@ $SUDO apt-get install -y gdbserver gdb unzip curl \
|
||||
|
||||
VAR_PATH="$CURRENT_PATH/../../../../var"
|
||||
|
||||
# run noninteractive install for MYSQL 8.4 LTS
|
||||
wget https://dev.mysql.com/get/mysql-apt-config_0.8.35-1_all.deb -P "$VAR_PATH"
|
||||
DEBIAN_FRONTEND="noninteractive" $SUDO dpkg -i "$VAR_PATH/mysql-apt-config_0.8.35-1_all.deb"
|
||||
$SUDO apt-get update
|
||||
DEBIAN_FRONTEND="noninteractive" $SUDO apt-get install -y mysql-server libmysqlclient-dev
|
||||
# run noninteractive install for MYSQL
|
||||
# Version
|
||||
MYSQL_APT_CONFIG_VERSION=0.8.36-1
|
||||
# # # # #
|
||||
mkdir -p "$VAR_PATH/mysqlpackages" && cd "$VAR_PATH/mysqlpackages"
|
||||
# Download
|
||||
wget "https://dev.mysql.com/get/mysql-apt-config_${MYSQL_APT_CONFIG_VERSION}_all.deb"
|
||||
# Install
|
||||
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i ./mysql-apt-config_${MYSQL_APT_CONFIG_VERSION}_all.deb
|
||||
sudo apt update
|
||||
sudo DEBIAN_FRONTEND="noninteractive" apt install -y mysql-server libmysqlclient-dev
|
||||
# Cleanup
|
||||
rm -v mysql-apt-config_${MYSQL_APT_CONFIG_VERSION}_all* && unset MYSQL_APT_CONFIG_VERSION
|
||||
|
||||
17
data/sql/updates/db_world/2026_01_09_00.sql
Normal file
17
data/sql/updates/db_world/2026_01_09_00.sql
Normal file
@@ -0,0 +1,17 @@
|
||||
-- DB update 2026_01_08_00 -> 2026_01_09_00
|
||||
--
|
||||
DELETE FROM `creature` WHERE `guid` IN (106509, 106879, 106611, 106612, 106613) AND `id1` IN (23666, 23667, 23670);
|
||||
INSERT INTO `creature` (`guid`, `id1`, `id2`, `id3`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `unit_flags`, `CreateObject`, `VerifiedBuild`) VALUES
|
||||
(106509, 23666, 23667, 23670, 571, 495, 3980, 1, 1, 1, 1212.23486328125, -5282.193359375, 178.7692413330078125, 6.091198921203613281, 120, 33554432, 1, 53788),
|
||||
(106879, 23666, 23667, 23670, 571, 495, 3980, 1, 1, 1, 1226.8583984375, -5312.6591796875, 179.46478271484375, 3.96189737319946289, 120, 33554432, 1, 53788),
|
||||
(106611, 23666, 23667, 23670, 571, 495, 3980, 1, 1, 1, 1247.4696044921875, -5301.1455078125, 178.558868408203125, 2.897246599197387695, 120, 33554432, 1, 53788),
|
||||
(106612, 23666, 23667, 23670, 571, 495, 3980, 1, 1, 1, 1241.3194580078125, -5319.017578125, 177.4776763916015625, 0.890117883682250976, 120, 33554432, 1, 53788),
|
||||
(106613, 23666, 23667, 23670, 571, 495, 3980, 1, 1, 1, 1252.26025390625, -5307.59375, 177.487030029296875, 0.837758064270019531, 120, 33554432, 1, 53788);
|
||||
|
||||
DELETE FROM `creature_addon` WHERE (`guid` IN (106509, 106879, 106611, 106612, 106613));
|
||||
INSERT INTO `creature_addon` (`guid`, `bytes2`, `auras`) VALUES
|
||||
(106509, 1, '29266'),
|
||||
(106879, 1, '29266'),
|
||||
(106611, 1, '29266'),
|
||||
(106612, 1, '29266'),
|
||||
(106613, 1, '29266');
|
||||
67
data/sql/updates/db_world/2026_01_09_01.sql
Normal file
67
data/sql/updates/db_world/2026_01_09_01.sql
Normal file
@@ -0,0 +1,67 @@
|
||||
-- DB update 2026_01_09_00 -> 2026_01_09_01
|
||||
--
|
||||
DELETE FROM `spell_area` WHERE `spell` = 58139 AND `area` = 4588 AND `quest_start` = 13144;
|
||||
INSERT INTO `spell_area` (`spell`, `area`, `quest_start`, `quest_end`, `aura_spell`, `racemask`, `gender`, `autocast`, `quest_start_status`, `quest_end_status`) VALUES
|
||||
(58139, 4588, 13144, 13220, 0, 0, 2, 1, 64, 9);
|
||||
|
||||
UPDATE `creature` SET `phaseMask` = `phaseMask`|64 WHERE `id1` = 30631 AND `guid` = 123657;
|
||||
|
||||
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 30631;
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 30631);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(30631, 0, 0, 0, 20, 0, 100, 0, 13144, 30000, 30000, 0, 0, 0, 80, 3063100, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Darkrider Arly - On Quest \'Killing Two Scourge With One Skeleton\' Finished - Run Script');
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 3063100);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(3063100, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 12, 31428, 8, 0, 0, 0, 0, 8, 0, 0, 0, 0, 6648.76, 3217.7263, 810.50073, 1.6057028770446777, 'Darkrider Arly - Actionlist - Summon Creature \'Crusader Olakin Sainrith\''),
|
||||
(3063100, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 12, 31432, 8, 0, 0, 0, 0, 8, 0, 0, 0, 0, 6588.4272, 3278.2026, 818.2033, 5.044001579284668, 'Darkrider Arly - Actionlist - Summon Creature \'Ghostwing\'');
|
||||
|
||||
DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 22) AND (`SourceGroup` = 1) AND (`SourceEntry` = 31428) AND (`SourceId` = 0) AND (`ElseGroup` = 0) AND (`ConditionTypeOrReference` = 23) AND (`ConditionTarget` = 1) AND (`ConditionValue1` = 4530) AND (`ConditionValue2` = 0) AND (`ConditionValue3` = 0);
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(22, 1, 31428, 0, 0, 23, 1, 4530, 0, 0, 0, 0, 0, '', 'Only run script if summon occurs in Sanctum of Reanimation (4530)');
|
||||
DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 22) AND (`SourceGroup` = 6) AND (`SourceEntry` = 31428) AND (`SourceId` = 0) AND (`ElseGroup` = 0) AND (`ConditionTypeOrReference` = 23) AND (`ConditionTarget` = 1) AND (`ConditionValue1` = 4588) AND (`ConditionValue2` = 0) AND (`ConditionValue3` = 0);
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(22, 6, 31428, 0, 0, 23, 1, 4588, 0, 0, 0, 0, 0, '', 'Only run script if summon occurs in Blackwatch (4588)');
|
||||
DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 13) AND (`SourceGroup` = 1) AND (`SourceEntry` = 59091) AND (`SourceId` = 0) AND (`ElseGroup` = 0) AND (`ConditionTypeOrReference` = 31) AND (`ConditionTarget` = 0) AND (`ConditionValue1` = 3) AND (`ConditionValue2` = 31432) AND (`ConditionValue3` = 0);
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(13, 1, 59091, 0, 0, 31, 0, 3, 31432, 0, 0, 0, 0, '', 'Ride Ghostwing (59091) Only Targets Ghostwing (31432)');
|
||||
|
||||
UPDATE `creature_template_addon` SET `mount` = 0 WHERE (`entry` = 31428);
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 31428);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(31428, 0, 0, 1, 54, 0, 100, 0, 0, 0, 0, 0, 0, 0, 2, 1770, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Crusader Olakin Sainrith - On Just Summoned, Condition: Only in Sanctum of Reanimation - Set Faction 1770'),
|
||||
(31428, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 80, 3142800, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Crusader Olakin Sainrith - On Just Summoned - Run Script'),
|
||||
(31428, 0, 2, 3, 38, 0, 100, 0, 1, 1, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Crusader Olakin Sainrith - On Data Set 1 1 - Set Event Phase 1'),
|
||||
(31428, 0, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 10, 74956, 30698, 0, 0, 0, 0, 0, 0, 'Crusader Olakin Sainrith - On Data Set 1 1 - Start Attacking'),
|
||||
(31428, 0, 4, 0, 7, 1, 100, 0, 0, 0, 0, 0, 0, 0, 41, 8000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Crusader Olakin Sainrith - On Evade - Despawn In 8000 ms (Phase 1)'),
|
||||
(31428, 0, 5, 0, 54, 0, 100, 0, 0, 0, 0, 0, 0, 0, 80, 3142801, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Crusader Olakin Sainrith - On Just Summoned, Condition: Only in Blackwatch - Run Script');
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 3142801);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(3142801, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 44, 64, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Crusader Olakin Sainrith - Actionlist - Set PhaseMask 64'),
|
||||
(3142801, 9, 1, 0, 0, 0, 100, 0, 1300, 1300, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Crusader Olakin Sainrith - Actionlist - Say Line 1');
|
||||
|
||||
UPDATE `creature_template` SET `AIName` = 'SmartAI', `unit_flags` = 768 WHERE `entry` = 31432;
|
||||
UPDATE `creature_template_movement` SET `Flight` = 2 WHERE (`CreatureId` = 31432);
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 31432);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(31432, 0, 0, 0, 54, 0, 100, 0, 0, 0, 0, 0, 0, 0, 80, 3143200, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ghostwing - On Just Summoned - Run Script'),
|
||||
(31432, 0, 1, 0, 34, 0, 100, 0, 8, 1, 0, 0, 0, 0, 80, 3143201, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ghostwing - On Reached Point Blackwatch - Run Script'),
|
||||
(31432, 0, 2, 3, 34, 0, 100, 0, 8, 2, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 19, 31428, 40, 0, 0, 0, 0, 0, 0, 'Ghostwing - On Reached Despawn Point - Despawn Olakin'),
|
||||
(31432, 0, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ghostwing - On Reached Despawn Point - Despawn Self');
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 3143200);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(3143200, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 44, 64, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ghostwing - Actionlist - Set PhaseMask 64'),
|
||||
(3143200, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 239, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ghostwing - Actionlist - Set AnimTier Flying'),
|
||||
(3143200, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 6644.4297, 3222.9124, 823.0705, 0, 'Ghostwing - Actionlist - Move To Position');
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 3143201);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(3143201, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 5, 460, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ghostwing - Actionlist - Play Emote 460 (OneShotFlyDragonSpit)'),
|
||||
(3143201, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ghostwing - Actionlist - Say Line 0'),
|
||||
(3143201, 9, 2, 0, 0, 0, 100, 0, 6470, 6470, 0, 0, 0, 0, 5, 452, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ghostwing - Actionlist - Play Emote 452 (OneShotFlyGrab)'),
|
||||
(3143201, 9, 3, 0, 0, 0, 100, 0, 400, 400, 0, 0, 0, 0, 86, 59091, 2, 19, 31428, 40, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ghostwing - Actionlist - Cross Cast \'Ride Ghostwing\''),
|
||||
(3143201, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 19, 30631, 40, 0, 0, 0, 0, 0, 0, 'Ghostwing - Actionlist - Store Arly as Target'),
|
||||
(3143201, 9, 5, 0, 0, 0, 100, 0, 2840, 2840, 0, 0, 0, 0, 69, 2, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 6690.6504, 3177.2793, 860.5705, 0, 'Ghostwing - Actionlist - Move To Position'),
|
||||
(3143201, 9, 6, 0, 0, 0, 100, 0, 1200, 1200, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 0, 'Ghostwing - Actionlist - Arly Say Line 0');
|
||||
5
data/sql/updates/db_world/2026_01_10_00.sql
Normal file
5
data/sql/updates/db_world/2026_01_10_00.sql
Normal file
@@ -0,0 +1,5 @@
|
||||
-- DB update 2026_01_09_01 -> 2026_01_10_00
|
||||
--
|
||||
DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 17) AND (`SourceGroup` = 0) AND (`SourceEntry` = 49266) AND (`SourceId` = 0) AND (`ElseGroup` = 0) AND (`ConditionTypeOrReference` = 1) AND (`ConditionTarget` = 1) AND (`ConditionValue1` = 49282) AND (`ConditionValue2` = 0) AND (`ConditionValue3` = 0);
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(17, 0, 49266, 0, 0, 1, 1, 49282, 0, 0, 1, 0, 0, '', 'Mounting Up (12414): Dangle Wild Carrot (49266) cannot be cast on a horse that is already mounted with Ride Highland Mustang (49282)');
|
||||
5
data/sql/updates/db_world/2026_01_12_00.sql
Normal file
5
data/sql/updates/db_world/2026_01_12_00.sql
Normal file
@@ -0,0 +1,5 @@
|
||||
-- DB update 2026_01_10_00 -> 2026_01_12_00
|
||||
-- bb
|
||||
DELETE FROM `spell_script_names` WHERE `spell_id` = -49182;
|
||||
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
|
||||
(-49182, 'spell_dk_blade_barrier');
|
||||
9
data/sql/updates/db_world/2026_01_12_01.sql
Normal file
9
data/sql/updates/db_world/2026_01_12_01.sql
Normal file
@@ -0,0 +1,9 @@
|
||||
-- DB update 2026_01_12_00 -> 2026_01_12_01
|
||||
--
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 314 AND `id` = 1);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(314, 0, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 20819, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Eliza - In Combat - Cast Frostbolt');
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 5354 AND `id` = 0);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(5354, 0, 0, 0, 4, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 11922, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Gnarl Leafbrother - On Aggro - Cast Entangling Roots');
|
||||
14
data/sql/updates/db_world/2026_01_13_00.sql
Normal file
14
data/sql/updates/db_world/2026_01_13_00.sql
Normal file
@@ -0,0 +1,14 @@
|
||||
-- DB update 2026_01_12_01 -> 2026_01_13_00
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 1 AND `SourceEntry` = 20400 AND `ConditionTypeOrReference` = 12;
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(1, 27830, 20400, 0, 0, 12, 0, 12, 0, 0, 0, 0, 0, '', 'Pumpkin Bag - Venture Co. Evacuee - Requires Hallow''s End'),
|
||||
(1, 29330, 20400, 0, 0, 12, 0, 12, 0, 0, 0, 0, 0, '', 'Pumpkin Bag - Onslaught Harbor Guard - Requires Hallow''s End'),
|
||||
(1, 29722, 20400, 0, 0, 12, 0, 12, 0, 0, 0, 0, 0, '', 'Pumpkin Bag - Rabid Cannibal - Requires Hallow''s End'),
|
||||
(1, 30243, 20400, 0, 0, 12, 0, 12, 0, 0, 0, 0, 0, '', 'Pumpkin Bag - Njorndar Spear-Sister - Requires Hallow''s End'),
|
||||
(1, 30687, 20400, 0, 0, 12, 0, 12, 0, 0, 0, 0, 0, '', 'Pumpkin Bag - Skeletal Constructor - Requires Hallow''s End'),
|
||||
(1, 31738, 20400, 0, 0, 12, 0, 12, 0, 0, 0, 0, 0, '', 'Pumpkin Bag - Cultist Corrupter - Requires Hallow''s End'),
|
||||
(1, 32259, 20400, 0, 0, 12, 0, 12, 0, 0, 0, 0, 0, '', 'Pumpkin Bag - Void Summoner - Requires Hallow''s End');
|
||||
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 1 AND `SourceEntry` = 21235 AND `ConditionTypeOrReference` = 12;
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(1, 11459, 21235, 0, 0, 12, 0, 2, 0, 0, 0, 0, 0, '', 'Winter Veil Roast - Ironbark Protector - Requires Winter Veil');
|
||||
28
data/sql/updates/db_world/2026_01_13_01.sql
Normal file
28
data/sql/updates/db_world/2026_01_13_01.sql
Normal file
@@ -0,0 +1,28 @@
|
||||
-- DB update 2026_01_13_00 -> 2026_01_13_01
|
||||
--
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 2936800);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(2936800, 9, 0 , 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 0, 0, 12, 29801, 4, 40000, 0, 0, 0, 8, 0, 0, 0, 0, 7725, 105, 1010.64, 1.6, 'Valduran the Stormborn - Actionlist - Summon Creature \'Bouldercrag the Rockshaper\''),
|
||||
(2936800, 9, 1 , 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - Actionlist - Set Fly Off'),
|
||||
(2936800, 9, 2 , 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 12, 30152, 4, 40000, 0, 0, 0, 8, 0, 0, 0, 0, 7734, 113, 1010.64, 3, 'Valduran the Stormborn - Actionlist - Summon Creature \'Bruor Ironbane\''),
|
||||
(2936800, 9, 3 , 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 11, 0, 30, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - Actionlist - Set Npc Flag '),
|
||||
(2936800, 9, 4 , 0, 0, 0, 100, 0, 2000, 2000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 19, 29801, 30, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - Actionlist - Say Line 0'),
|
||||
(2936800, 9, 5 , 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 19, 30152, 30, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - Actionlist - Say Line 0'),
|
||||
(2936800, 9, 6 , 0, 0, 0, 100, 0, 6000, 6000, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 19, 30152, 30, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - Actionlist - Say Line 1'),
|
||||
(2936800, 9, 7 , 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - Actionlist - Say Line 0'),
|
||||
(2936800, 9, 8 , 0, 0, 0, 100, 0, 8000, 8000, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - Actionlist - Say Line 1'),
|
||||
(2936800, 9, 9, 0, 0, 0, 100, 0, 3000, 3000, 0, 0, 0, 0, 19, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - Actionlist - Remove Flags Immune To Players & Immune To NPC\'s'),
|
||||
(2936800, 9, 10, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 21, 30, 0, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - Actionlist - Start Attacking');
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 29368);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(29368, 0, 1, 0, 25, 0, 100, 512, 0, 0, 0, 0, 0, 0, 11, 56220, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - On Reset - Cast \'Valduran`s Channel\''),
|
||||
(29368, 0, 2, 3, 8, 0, 100, 513, 56189, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - On Spellhit \'Sound War Horn\' - Remove Auras (No Repeat)'),
|
||||
(29368, 0, 3, 0, 61, 0, 100, 513, 0, 0, 0, 0, 0, 0, 80, 2936800, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - On Spellhit \'Sound War Horn\' - Run Script (No Repeat)'),
|
||||
(29368, 0, 5, 0, 0, 0, 100, 0, 2000, 4000, 15000, 17000, 0, 0, 11, 56319, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - In Combat - Cast \'Ball Lightning\''),
|
||||
(29368, 0, 6, 0, 0, 0, 100, 0, 5000, 7000, 8000, 10000, 0, 0, 11, 56326, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - In Combat - Cast \'Lightning Bolt\''),
|
||||
(29368, 0, 7, 0, 0, 0, 100, 0, 11000, 13000, 25000, 30000, 0, 0, 11, 56322, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - In Combat - Cast \'Spark Frenzy\''),
|
||||
(29368, 0, 8, 9, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 19, 29801, 30, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - On Just Died - Say Line 1'),
|
||||
(29368, 0, 9, 10, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 19, 30152, 30, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - On Just Died - Say Line 2'),
|
||||
(29368, 0, 10, 0, 61, 0, 100, 512, 0, 0, 0, 0, 0, 0, 33, 29368, 0, 0, 0, 0, 0, 18, 30, 0, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - On Just Died - Quest Credit'),
|
||||
(29368, 0, 11, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 18, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Valduran the Stormborn - On Reset - Set Flags Immune To Players & Immune To NPC\'s');
|
||||
40
data/sql/updates/db_world/2026_01_13_02.sql
Normal file
40
data/sql/updates/db_world/2026_01_13_02.sql
Normal file
@@ -0,0 +1,40 @@
|
||||
-- DB update 2026_01_13_01 -> 2026_01_13_02
|
||||
--
|
||||
DELETE FROM `creature` WHERE `guid` IN (202969, 202970) AND `id1` IN (28667, 28668);
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 28659);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(28659, 0, 0, 1, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 12, 28667, 8, 0, 0, 0, 0, 8, 0, 0, 0, 0, 5616.92, 3772.68, -94.258, 1.78024, 'Artruis the Heartless - On Respawn - Summon Creature \'Jaloot\''),
|
||||
(28659, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 12, 28668, 8, 0, 0, 0, 0, 8, 0, 0, 0, 0, 5631.63, 3794.36, -92.236, 3.45575, 'Artruis the Heartless - On Respawn - Summon Creature \'Zepik the Gorloc Hunter\''),
|
||||
(28659, 0, 2, 0, 0, 0, 100, 0, 7000, 11000, 11000, 15000, 0, 0, 11, 54261, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - In Combat - Cast \'Ice Lance\''),
|
||||
(28659, 0, 3, 0, 0, 0, 100, 0, 3000, 5000, 3000, 5000, 0, 0, 11, 15530, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - In Combat - Cast \'Frostbolt\''),
|
||||
(28659, 0, 4, 0, 0, 0, 100, 0, 9000, 13000, 25000, 35000, 0, 0, 11, 54792, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - In Combat - Cast \'Icy Veins\''),
|
||||
(28659, 0, 5, 0, 9, 0, 100, 0, 7000, 9000, 14000, 18000, 0, 10, 11, 11831, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - Within 0-10 Range - Cast \'Frost Nova\''),
|
||||
(28659, 0, 6, 7, 2, 0, 100, 0, 0, 30, 0, 0, 0, 0, 11, 52185, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - Between 0-30% Health - Cast \'Bindings of Submission\''),
|
||||
(28659, 0, 7, 8, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - Between 0-30% Health - Set Data 1 1 for Jaloot'),
|
||||
(28659, 0, 8, 9, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 12, 2, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - Between 0-30% Health - Set Data 1 1 for Zepik the Gorloc Hunter'),
|
||||
(28659, 0, 9, 10, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 3, 10000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - Between 0-30% Health - Say Line 3'),
|
||||
(28659, 0, 10, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 4, 10000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - Between 0-30% Health - Say Line 4'),
|
||||
(28659, 0, 11, 12, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 1, 2, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Reset - Set Data 1 2 for Jaloot'),
|
||||
(28659, 0, 12, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 1, 2, 0, 0, 0, 0, 12, 2, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Reset - Set Data 1 2 for Zepik the Gorloc Hunter'),
|
||||
(28659, 0, 13, 0, 2, 0, 100, 0, 0, 75, 0, 0, 0, 0, 1, 1, 10000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - Between 0-75% Health - Say Line 1'),
|
||||
(28659, 0, 14, 0, 2, 0, 100, 0, 0, 50, 0, 0, 0, 0, 1, 2, 10000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - Between 0-50% Health - Say Line 2'),
|
||||
(28659, 0, 17, 0, 4, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Aggro - Say Line 0'),
|
||||
(28659, 0, 18, 19, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52518, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Just Died - Cast \'Summon Artruis Quest Complete\''),
|
||||
(28659, 0, 19, 20, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 1, 3, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Just Died - Set Data 1 3 for Jaloot'),
|
||||
(28659, 0, 20, 21, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 1, 3, 0, 0, 0, 0, 12, 2, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Just Died - Set Data 1 3 for Zepik the Gorloc Hunter'),
|
||||
(28659, 0, 21, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 5, 10000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Just Died - Say Line 5'),
|
||||
(28659, 0, 22, 23, 38, 0, 100, 0, 1, 1, 0, 0, 0, 0, 45, 1, 4, 0, 0, 0, 0, 12, 2, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Data Set 1 1 - Set Data 1 4 for Zepik the Gorloc Hunter'),
|
||||
(28659, 0, 23, 24, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 28, 52185, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Data Set 1 1 - Remove Aura \'Bindings of Submission\''),
|
||||
(28659, 0, 24, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Data Set 1 1 - Set Data 1 0 for self'),
|
||||
(28659, 0, 25, 26, 38, 0, 100, 0, 1, 2, 0, 0, 0, 0, 45, 1, 4, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Data Set 1 2 - Set Data 1 4 for Jaloot'),
|
||||
(28659, 0, 26, 27, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 28, 52185, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Data Set 1 2 - Remove Aura \'Bindings of Submission\''),
|
||||
(28659, 0, 27, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Data Set 1 2 - Set Data 1 0'),
|
||||
(28659, 0, 28, 0, 0, 0, 100, 0, 1000, 1000, 1000, 1000, 0, 0, 11, 53163, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - In Combat - Cast \'Dessawn Retainer\''),
|
||||
(28659, 0, 29, 0, 17, 0, 100, 0, 28667, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Summoned Unit - Store Targetlist 1 (Jaloot)'),
|
||||
(28659, 0, 30, 0, 17, 0, 100, 0, 28668, 0, 0, 0, 0, 0, 64, 2, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Summoned Unit - Store Targetlist 2 (Zepik)'),
|
||||
(28659, 0, 31, 32, 7, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 0, 30, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Evade - Despawn Instant'),
|
||||
(28659, 0, 32, 33, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Evade - Despawn Summons'),
|
||||
(28659, 0, 33, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 12, 2, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Evade - Despawn Summons'),
|
||||
(28659, 0, 34, 0, 107, 0, 100, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Summoned Unit Evade - Evade'),
|
||||
(28659, 0, 35, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 30000, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Just Died - Despawn Summons In 30s'),
|
||||
(28659, 0, 36, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 30000, 0, 0, 0, 0, 0, 12, 2, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Just Died - Despawn Summons In 30s');
|
||||
124
data/sql/updates/db_world/2026_01_13_03.sql
Normal file
124
data/sql/updates/db_world/2026_01_13_03.sql
Normal file
@@ -0,0 +1,124 @@
|
||||
-- DB update 2026_01_13_02 -> 2026_01_13_03
|
||||
-- Implicit Targets
|
||||
DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 13) AND (`SourceGroup` = 1) AND (`SourceEntry` IN (52833, 52834, 52837, 52838)) AND (`SourceId` = 0) AND (`ElseGroup` = 0) AND (`ConditionTypeOrReference` = 31) AND (`ConditionValue1` = 3) AND (`ConditionValue2` = 26298);
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(13, 1, 52834, 0, 0, 31, 0, 3, 26298, 113551, 0, 0, 0, '', 'Rampage: Akali\'s Chains can only target specific paws'),
|
||||
(13, 1, 52833, 0, 0, 31, 0, 3, 26298, 113550, 0, 0, 0, '', 'Rampage: Akali\'s Chains can only target specific paws'),
|
||||
(13, 1, 52837, 0, 0, 31, 0, 3, 26298, 113478, 0, 0, 0, '', 'Rampage: Akali\'s Chains can only target specific paws'),
|
||||
(13, 1, 52838, 0, 0, 31, 0, 3, 26298, 113479, 0, 0, 0, '', 'Rampage: Akali\'s Chains can only target specific paws');
|
||||
|
||||
-- Right Front Paw
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -113549);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(-113549, 0, 0, 1, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 52834, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Action 10 Received: Reset \'Rampage\' Status - Cast \'Rampage: Akali`s Chains - Right Front Paw\''),
|
||||
(-113549, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Action 10 Received: Reset \'Rampage\' Status - Set Event Phase 1'),
|
||||
(-113549, 0, 2, 3, 8, 1, 100, 0, 52816, 0, 0, 0, 0, 0, 28, 52834, 0, 0, 0, 0, 0, 10, 113551, 26298, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Remove Aura \'Rampage: Akali`s Chains - Right Front Paw\' (Phase 1)'),
|
||||
(-113549, 0, 3, 4, 61, 1, 100, 0, 0, 0, 0, 0, 0, 0, 223, 11, 0, 0, 0, 0, 0, 10, 98159, 28952, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Do Action ID 11 On Akali: Right Front Paw Freed (Phase 1)'),
|
||||
(-113549, 0, 4, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Set Event Phase 0 (Phase 1)');
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -100336);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(-100336, 0, 0, 0, 8, 0, 100, 512, 52816, 0, 0, 0, 0, 0, 28, 52855, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Remove Aura \'Cosmetic - Low Poly Fire (with Sound)\' on Self'),
|
||||
(-100336, 0, 1, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 52855, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny Large - On Action 10 Received: Reset \'Rampage\' Status - Cast \'Cosmetic - Low Poly Fire (with Sound)\' on Self');
|
||||
|
||||
-- Left Front Paw
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -113548);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(-113548, 0, 0, 1, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 52833, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Action 10 Received: Reset \'Rampage\' Status - Cast \'Rampage: Akali`s Chains - Left Front Paw\''),
|
||||
(-113548, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Action 10 Received: Reset \'Rampage\' Status - Set Event Phase 1'),
|
||||
(-113548, 0, 2, 3, 8, 1, 100, 0, 52816, 0, 0, 0, 0, 0, 28, 52833, 0, 0, 0, 0, 0, 10, 113550, 26298, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Remove Aura \'Rampage: Akali`s Chains - Left Front Paw\' (Phase 1)'),
|
||||
(-113548, 0, 3, 4, 61, 1, 100, 0, 0, 0, 0, 0, 0, 0, 223, 11, 0, 0, 0, 0, 0, 10, 98159, 28952, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Do Action ID 11 On Akali: Left Front Paw Freed (Phase 1)'),
|
||||
(-113548, 0, 4, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Set Event Phase 0 (Phase 1)');
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -100333);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(-100333, 0, 0, 0, 8, 0, 100, 512, 52816, 0, 0, 0, 0, 0, 28, 52855, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Remove Aura \'Cosmetic - Low Poly Fire (with Sound)\' on Self'),
|
||||
(-100333, 0, 1, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 52855, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny Large - On Action 10 Received: Reset \'Rampage\' Status - Cast \'Cosmetic - Low Poly Fire (with Sound)\' on Self');
|
||||
|
||||
-- Right Rear Paw
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -61994);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(-61994, 0, 0, 1, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 52837, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Action 10 Received: Reset \'Rampage\' Status - Cast \'Rampage: Akali`s Chains - Right Rear Paw\''),
|
||||
(-61994, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Action 10 Received: Reset \'Rampage\' Status - Set Event Phase 1'),
|
||||
(-61994, 0, 2, 3, 8, 1, 100, 0, 52816, 0, 0, 0, 0, 0, 28, 52837, 0, 0, 0, 0, 0, 10, 113478, 26298, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Remove Aura \'Rampage: Akali`s Chains - Right Rear Paw\' (Phase 1)'),
|
||||
(-61994, 0, 3, 4, 61, 1, 100, 0, 0, 0, 0, 0, 0, 0, 223, 11, 0, 0, 0, 0, 0, 10, 98159, 28952, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Do Action ID 11 On Akali: Right Rear Paw Freed (Phase 1)'),
|
||||
(-61994, 0, 4, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Set Event Phase 0 (Phase 1)');
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -100335);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(-100335, 0, 0, 0, 8, 0, 100, 512, 52816, 0, 0, 0, 0, 0, 28, 52855, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Remove Aura \'Cosmetic - Low Poly Fire (with Sound)\' on Self'),
|
||||
(-100335, 0, 1, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 52855, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny Large - On Action 10 Received: Reset \'Rampage\' Status - Cast \'Cosmetic - Low Poly Fire (with Sound)\' on Self');
|
||||
|
||||
-- Left Rear Paw
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -61995);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(-61995, 0, 0, 1, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 52838, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Action 10 Received: Reset \'Rampage\' Status - Cast \'Rampage: Akali`s Chains - Left Rear Paw\''),
|
||||
(-61995, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Action 10 Received: Reset \'Rampage\' Status - Set Event Phase 1'),
|
||||
(-61995, 0, 2, 3, 8, 1, 100, 0, 52816, 0, 0, 0, 0, 0, 28, 52838, 0, 0, 0, 0, 0, 10, 113479, 26298, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Remove Aura \'Rampage: Akali`s Chains - Left Rear Paw\' (Phase 1)'),
|
||||
(-61995, 0, 3, 4, 61, 1, 100, 0, 0, 0, 0, 0, 0, 0, 223, 11, 0, 0, 0, 0, 0, 10, 98159, 28952, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Do Action ID 11 On Akali: Left Rear Paw Freed (Phase 1)'),
|
||||
(-61995, 0, 4, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny (scale x0.01) Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Set Event Phase 0 (Phase 1)');
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -100334);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(-100334, 0, 0, 0, 8, 0, 100, 512, 52816, 0, 0, 0, 0, 0, 28, 52855, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny Large - On Spellhit \'Rampage: Akali Chain Anchor On Disturb\' - Remove Aura \'Cosmetic - Low Poly Fire (with Sound)\' on Self'),
|
||||
(-100334, 0, 1, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 52855, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'ELM General Purpose Bunny Large - On Action 10 Received: Reset \'Rampage\' Status - Cast \'Cosmetic - Low Poly Fire (with Sound)\' on Self');
|
||||
|
||||
-- Center
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -61996);
|
||||
|
||||
-- Akali
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 28952);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(28952, 0, 0, 0, 77, 0, 100, 512, 1, 4, 0, 0, 0, 0, 80, 2895200, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - On 4 Chains Broken - Run Quest Success Script'),
|
||||
(28952, 0, 1, 2, 8, 0, 100, 512, 52859, 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - On Spellhit \'Submission\' - Set Health Regeneration Off'),
|
||||
(28952, 0, 2, 3, 61, 0, 100, 512, 0, 0, 0, 0, 0, 0, 18, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - On Spellhit \'Submission\' - Set Flags Immune To Players & Immune To NPC\'s'),
|
||||
(28952, 0, 3, 0, 61, 0, 100, 512, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 6829.59, -4525.52, 442.068, 0, 'Akali - On Spellhit \'Submission\' - Move To Position'),
|
||||
(28952, 0, 4, 0, 34, 0, 100, 512, 0, 1, 0, 0, 0, 0, 80, 2895201, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - On Reached Point 1 - Run Quest End Script'),
|
||||
(28952, 0, 5, 0, 9, 0, 100, 0, 0, 0, 10000, 10000, 0, 80, 11, 52856, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - Within 0-80 Range - Cast \'Charge\''),
|
||||
(28952, 0, 6, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 80, 2895202, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - On Respawn - Run Quest Reset Script'),
|
||||
(28952, 0, 7, 0, 72, 0, 100, 0, 11, 0, 0, 0, 0, 0, 63, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - On Action 11 Done: Paw Freed - Add 1 to Broken Chains Counter');
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 2895200);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(2895200, 9, 0, 0, 0, 0, 100, 0, 2000, 2000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - Quest Success Script - Say Line 0'),
|
||||
(2895200, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 15, 12721, 0, 0, 0, 0, 0, 18, 60, 0, 0, 0, 0, 0, 0, 0, 'Akali - Quest Success Script - Quest Credit \'Rampage\''),
|
||||
(2895200, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 107, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - Quest Success Script - Summon Creature Group 1'),
|
||||
(2895200, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 92, 0, 45579, 0, 0, 0, 0, 9, 28988, 0, 100, 0, 0, 0, 0, 0, 'Akali - Actionlist - Interrupt Spell \'Fire Channeling\''),
|
||||
(2895200, 9, 4, 0, 0, 0, 100, 0, 4600, 4600, 0, 0, 0, 0, 19, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - Quest Success Script - Remove Flag Immune To NPC\'s'),
|
||||
(2895200, 9, 5, 0, 0, 0, 100, 0, 55000, 55000, 0, 0, 0, 0, 12, 28996, 8, 0, 0, 0, 0, 8, 0, 0, 0, 0, 6882.03, -4571, 442.312, 2.37365, 'Akali - Quest Success Script - Summon Creature \'Prophet of Akali\'');
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 2895201);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(2895201, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 2, 35, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - Quest End Script - Set Faction 35'),
|
||||
(2895201, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - Quest End Script - Evade'),
|
||||
(2895201, 9, 2, 0, 0, 0, 100, 0, 200, 200, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 19, 28996, 100, 0, 0, 0, 0, 0, 0, 'Akali - Quest End Script - Set Orientation Closest Creature \'Prophet of Akali\''),
|
||||
(2895201, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 0, 1, 0, 0, 0, 0, 19, 28996, 100, 0, 0, 0, 0, 0, 0, 'Akali - Quest End Script - Set Data 0 1');
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 2895202);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(2895202, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 18, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - Reset Script - Set Flags Immune To Players & Immune To NPC\'s'),
|
||||
(2895202, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 2, 1770, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - Reset Script - Set Faction 1770'),
|
||||
(2895202, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 223, 10, 0, 0, 0, 0, 0, 9, 0, 0, 100, 0, 0, 0, 0, 0, 'Akali - Reset Script - Do Action ID 28952: Relay Reset \'Rampage\' to All Creatures'),
|
||||
(2895202, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - Actionlist - Set Health Regeneration Off'),
|
||||
(2895202, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 63, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali - Actionlist - Reset Counter');
|
||||
|
||||
DELETE FROM `creature_addon` WHERE (`guid` IN (100333, 100334, 100335, 100336));
|
||||
|
||||
UPDATE `creature_template` SET `flags_extra` = `flags_extra`|134217728 WHERE (`entry` = 28988);
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` IN (-101661,-101662,-101663,-101665,-101666,-101667,-101668,-101669,-203572,-203573,-203574,-203575,-203576,-203577));
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(-101661, 0, 1000, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 45579, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali Subduer - On Action 10 Done - Cast \'Fire Channeling\''),
|
||||
(-101662, 0, 1000, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 45579, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali Subduer - On Action 10 Done - Cast \'Fire Channeling\''),
|
||||
(-101663, 0, 1000, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 45579, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali Subduer - On Action 10 Done - Cast \'Fire Channeling\''),
|
||||
(-101665, 0, 1000, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 45579, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali Subduer - On Action 10 Done - Cast \'Fire Channeling\''),
|
||||
(-101666, 0, 1000, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 45579, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali Subduer - On Action 10 Done - Cast \'Fire Channeling\''),
|
||||
(-101667, 0, 1000, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 45579, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali Subduer - On Action 10 Done - Cast \'Fire Channeling\''),
|
||||
(-101668, 0, 1000, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 45579, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali Subduer - On Action 10 Done - Cast \'Fire Channeling\''),
|
||||
(-101669, 0, 1000, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 45579, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali Subduer - On Action 10 Done - Cast \'Fire Channeling\''),
|
||||
(-203572, 0, 1000, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 45579, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali Subduer - On Action 10 Done - Cast \'Fire Channeling\''),
|
||||
(-203573, 0, 1000, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 45579, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali Subduer - On Action 10 Done - Cast \'Fire Channeling\''),
|
||||
(-203574, 0, 1000, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 45579, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali Subduer - On Action 10 Done - Cast \'Fire Channeling\''),
|
||||
(-203575, 0, 1000, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 45579, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali Subduer - On Action 10 Done - Cast \'Fire Channeling\''),
|
||||
(-203576, 0, 1000, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 45579, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali Subduer - On Action 10 Done - Cast \'Fire Channeling\''),
|
||||
(-203577, 0, 1000, 0, 72, 0, 100, 0, 10, 0, 0, 0, 0, 0, 11, 45579, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Akali Subduer - On Action 10 Done - Cast \'Fire Channeling\'');
|
||||
61
data/sql/updates/db_world/2026_01_14_00.sql
Normal file
61
data/sql/updates/db_world/2026_01_14_00.sql
Normal file
@@ -0,0 +1,61 @@
|
||||
-- DB update 2026_01_13_03 -> 2026_01_14_00
|
||||
-- Gryphon
|
||||
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 27886;
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 27886);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(27886, 0, 0, 0, 27, 0, 100, 0, 0, 0, 0, 0, 0, 0, 80, 2788600, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Valgarde Gryphon - On Passenger Boarded - Run Script'),
|
||||
(27886, 0, 1, 0, 108, 0, 100, 0, 15, 278861, 0, 0, 0, 0, 80, 2788601, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Valgarde Gryphon - On Point 15 of Path 278861 Reached - Run Script');
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 2788600);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(2788600, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 'Valgarde Gryphon - Actionlist - Say Line 0'),
|
||||
(2788600, 9, 1, 0, 0, 0, 100, 0, 1200, 1200, 0, 0, 0, 0, 11, 49303, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Valgarde Gryphon - Actionlist - Cast \'Flight + Speed\''),
|
||||
(2788600, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 278861, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Valgarde Gryphon - Actionlist - Start Path 278861');
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 2788601);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(2788601, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 45472, 2, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 0, 0, 0, 'Valgarde Gryphon - Actionlist - Cast \'Parachute\''),
|
||||
(2788601, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 62539, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Valgarde Gryphon - Actionlist - Cast \'Eject Passenger 2\''),
|
||||
(2788601, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 'Valgarde Gryphon - Actionlist - Say Line 1'),
|
||||
(2788601, 9, 3, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Valgarde Gryphon - Actionlist - Despawn Instant');
|
||||
|
||||
DELETE FROM `vehicle_template_accessory` WHERE `entry`=27886 AND `seat_id`=0;
|
||||
INSERT INTO `vehicle_template_accessory` (`entry`, `accessory_entry`, `seat_id`, `minion`, `description`, `summontype`, `summontimer`) VALUES (27886, 27887, 0, 1, 'Valgarde Gryphon', 5, 0);
|
||||
|
||||
DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=27886 AND `spell_id`=48365;
|
||||
INSERT INTO `npc_spellclick_spells` (`npc_entry`, `spell_id`, `cast_flags`, `user_type`) VALUES (27886, 48365, 1, 1);
|
||||
|
||||
DELETE FROM `waypoint_data` WHERE `id` = 278861;
|
||||
INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`) VALUES
|
||||
(278861, 1, 611.694, -5049.68, 24.2361, NULL, 0, 2),
|
||||
(278861, 2, 645.473, -5088.02, 30.9664, NULL, 0, 2),
|
||||
(278861, 3, 712.811, -5091.94, 35.1508, NULL, 0, 2),
|
||||
(278861, 4, 943.165, -5001.23, 51.6465, NULL, 0, 2),
|
||||
(278861, 5, 1043.21, -4975.55, 42.5367, NULL, 0, 2),
|
||||
(278861, 6, 1105.99, -4981.37, 44.6164, NULL, 0, 2),
|
||||
(278861, 7, 1168.69, -4956.15, 43.58, NULL, 0, 2),
|
||||
(278861, 8, 1188.28, -4949.07, 43.8891, NULL, 0, 2),
|
||||
(278861, 9, 1224.69, -5034.33, 45.4934, NULL, 0, 2),
|
||||
(278861, 10, 1284.04, -5064.89, 70.9363, NULL, 0, 2),
|
||||
(278861, 11, 1299.86, -5123.96, 92.313, NULL, 0, 2),
|
||||
(278861, 12, 1268.89, -5172.31, 125.225, NULL, 0, 2),
|
||||
(278861, 13, 1204.63, -5202.03, 162.438, NULL, 0, 2),
|
||||
(278861, 14, 1264.15, -5293.07, 194.687, NULL, 0, 2),
|
||||
(278861, 15, 1250.92, -5318.65, 202.334, NULL, 0, 2),
|
||||
(278861, 16, 1100.08, -5329.92, 227.263, NULL, 0, 2);
|
||||
|
||||
-- Zorek
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 23728);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(23728, 0, 0, 0, 10, 0, 100, 512, 1, 50, 120000, 300000, 0, 0, 80, 2372800, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Guard Captain Zorek - Within 1-50 Range Out of Combat LoS - Run Script'),
|
||||
(23728, 0, 1, 0, 19, 0, 100, 0, 11427, 0, 0, 0, 0, 0, 134, 49845, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Guard Captain Zorek - On Quest \'Meet Lieutenant Icehammer...\' Taken - Invoker Cast \'Call Valgarde Gryphon\'');
|
||||
|
||||
DELETE FROM `spell_target_position` WHERE `ID` = 49845;
|
||||
INSERT INTO `spell_target_position` (`ID`, `EffectIndex`, `MapID`, `PositionX`, `PositionY`, `PositionZ`, `Orientation`, `VerifiedBuild`) VALUES
|
||||
(49845, 0, 571, 603.603, -5034.4, 1.1338, 0.694764, 0);
|
||||
|
||||
-- Rider
|
||||
DELETE FROM `creature_text` WHERE `CreatureID` = 27887;
|
||||
INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
|
||||
(27887, 0, 0, 'Off we go!', 12, 7, 100, 0, 0, 0, 27225, 0, 'Valgarde Gryphon Rider'),
|
||||
(27887, 1, 0, 'Here ya go, friend! Icehammer is right inside that vrykul building! Give \'em hell!', 12, 7, 100, 0, 0, 0, 27228, 0, 'Valgarde Gryphon Rider');
|
||||
66
data/sql/updates/db_world/2026_01_14_01.sql
Normal file
66
data/sql/updates/db_world/2026_01_14_01.sql
Normal file
@@ -0,0 +1,66 @@
|
||||
-- DB update 2026_01_14_00 -> 2026_01_14_01
|
||||
--
|
||||
DELETE FROM `gossip_menu_option` WHERE (`MenuID` IN (1041, 1042, 1465, 1467, 1468, 1469, 2741, 2743, 2749, 2784, 3202, 3203, 4110, 4111, 4117, 4128, 4129, 4134, 4135, 4136, 4138, 4151, 4156, 4160, 4164, 4165, 4169, 4170, 4171, 4184, 4186, 4208, 4211, 4241, 4242, 4244, 4263, 4351, 4356, 4748, 4842, 4843, 7455, 7459, 7512, 7809, 7815, 7820, 7833, 8308, 8460, 8522, 8760, 8863, 9084, 9131, 9132, 10363, 10437, 10568, 21222, 61025));
|
||||
INSERT INTO `gossip_menu_option` (`MenuID`, `OptionID`, `OptionIcon`, `OptionText`, `OptionBroadcastTextID`, `OptionType`, `OptionNpcFlag`, `ActionMenuID`, `ActionPoiID`, `BoxCoded`, `BoxMoney`, `BoxText`, `BoxBroadcastTextID`, `VerifiedBuild`) VALUES
|
||||
(1041, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(1042, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(1465, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(1467, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(1468, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(1469, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(2741, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(2743, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(2749, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(2784, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(3202, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(3203, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(4110, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(4111, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(4117, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(4128, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(4129, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(4134, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(4135, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(4136, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(4138, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(4151, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(4156, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(4160, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(4164, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(4165, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(4169, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(4170, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(4171, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(4184, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(4186, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(4208, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(4211, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(4241, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(4242, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(4244, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(4263, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(4351, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(4356, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(4748, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(4842, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(4843, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(7455, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(7459, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(7512, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(7809, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(7815, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(7820, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(7833, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(8308, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(8460, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(8522, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(8760, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(8863, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(9084, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(9131, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(9132, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(10363, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(10437, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(10568, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(21222, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0),
|
||||
(61025, 0, 3, 'Train me.', 3266, 5, 16, 0, 0, 0, 0, '', 0, 0);
|
||||
18
data/sql/updates/db_world/2026_01_15_00.sql
Normal file
18
data/sql/updates/db_world/2026_01_15_00.sql
Normal file
@@ -0,0 +1,18 @@
|
||||
-- DB update 2026_01_14_01 -> 2026_01_15_00
|
||||
|
||||
-- Edit Spell Timers (Watcher Narjil, Gashra, Silthik)
|
||||
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE (`entry` IN (28729, 28730, 28731));
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE (`entryorguid` = 28729) AND (`source_type` = 0) AND (`id` IN (0, 2, 3));
|
||||
DELETE FROM `smart_scripts` WHERE (`entryorguid` = 28730) AND (`source_type` = 0) AND (`id` IN (0, 1, 2));
|
||||
DELETE FROM `smart_scripts` WHERE (`entryorguid` = 28731) AND (`source_type` = 0) AND (`id` IN (0, 2, 3));
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(28729, 0, 0, 0, 0, 0, 100, 0, 18000, 20000, 30000, 40000, 0, 0, 11, 52524, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Watcher Narjil - In Combat - Cast \'Blinding Webs\''),
|
||||
(28729, 0, 2, 0, 0, 0, 100, 0, 20000, 25000, 20000, 25000, 0, 0, 11, 52086, 0, 0, 0, 0, 0, 5, 30, 0, 0, 0, 0, 0, 0, 0, 'Watcher Narjil - In Combat - Cast \'Web Wrap\''),
|
||||
(28729, 0, 3, 0, 0, 0, 100, 0, 24000, 28000, 24000, 28000, 0, 0, 11, 52469, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Watcher Narjil - In Combat - Cast \'Infected Bite\''),
|
||||
(28730, 0, 0, 0, 0, 0, 100, 0, 8000, 10000, 12000, 20000, 0, 0, 11, 52470, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Watcher Gashra - In Combat - Cast \'Enrage\''),
|
||||
(28730, 0, 1, 0, 0, 0, 100, 0, 15000, 18000, 16000, 18000, 0, 0, 11, 52086, 0, 0, 0, 0, 0, 5, 30, 0, 0, 0, 0, 0, 0, 0, 'Watcher Gashra - In Combat - Cast \'Web Wrap\''),
|
||||
(28730, 0, 2, 0, 0, 0, 100, 0, 24000, 28000, 24000, 28000, 0, 0, 11, 52469, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Watcher Gashra - In Combat - Cast \'Infected Bite\''),
|
||||
(28731, 0, 0, 0, 0, 0, 100, 0, 8000, 10000, 18000, 20000, 0, 0, 11, 52493, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Watcher Silthik - In Combat - Cast \'Poison Spray\''),
|
||||
(28731, 0, 2, 0, 0, 0, 100, 0, 15000, 18000, 16000, 18000, 0, 0, 11, 52086, 0, 0, 0, 0, 0, 5, 30, 0, 0, 0, 0, 0, 0, 0, 'Watcher Silthik - In Combat - Cast \'Web Wrap\''),
|
||||
(28731, 0, 3, 0, 0, 0, 100, 0, 24000, 28000, 24000, 28000, 0, 0, 11, 52469, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Watcher Silthik - In Combat - Cast \'Infected Bite\'');
|
||||
243
data/sql/updates/db_world/2026_01_16_00.sql
Normal file
243
data/sql/updates/db_world/2026_01_16_00.sql
Normal file
@@ -0,0 +1,243 @@
|
||||
-- DB update 2026_01_15_00 -> 2026_01_16_00
|
||||
-- Delete quest credit hack
|
||||
DELETE FROM `smart_scripts` WHERE (`entryorguid` = 30954) AND (`source_type` = 0) AND (`id` IN (3));
|
||||
DELETE FROM `smart_scripts` WHERE (`entryorguid` = 30956) AND (`source_type` = 0) AND (`id` IN (6));
|
||||
DELETE FROM `smart_scripts` WHERE (`entryorguid` = 30953) AND (`source_type` = 0) AND (`id` IN (3));
|
||||
|
||||
DELETE FROM `creature_template_addon` WHERE (`entry` = 31159);
|
||||
INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES
|
||||
(31159, 0, 0, 0, 1, 0, 0, '');
|
||||
|
||||
DELETE FROM `creature_template_addon` WHERE (`entry` = 31324);
|
||||
INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES
|
||||
(31324, 0, 0, 50331657, 0, 0, 0, '58269');
|
||||
|
||||
-- Phase if Stunning View (13160) has been completed
|
||||
DELETE FROM `spell_area` WHERE `spell`=58863 AND `area`=4520 AND `quest_start`=13160;
|
||||
INSERT INTO `spell_area` (`spell`, `area`, `quest_start`, `quest_end`, `aura_spell`, `racemask`, `gender`, `autocast`, `quest_start_status`, `quest_end_status`) VALUES
|
||||
(58863, 4520, 13160, 0, 0, 0, 2, 1, 64, 0);
|
||||
|
||||
SET @GUID := 140200;
|
||||
DELETE FROM `creature` WHERE `guid` BETWEEN @GUID AND @GUID+108 AND `phaseMask` IN (4) AND `areaId` IN (4520);
|
||||
INSERT INTO `creature` (`guid`, `id1`, `map`, `zoneId`, `areaId`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `MovementType`, `VerifiedBuild`, `CreateObject`, `Comment`) VALUES
|
||||
-- possibly incomplete waypoints
|
||||
(@GUID+0 , 31159, 571, 210, 4520, 4, 1, 6408.76, 1725.81, 508.601, 6.02139, 300, 0, 2, 52237, 1, 'Phase Shift 2: Malykriss'),
|
||||
-- definitely has waypoints, but not enough data
|
||||
(@GUID+1 , 31160, 571, 210, 4520, 4, 1, 6069.33, 1921.17, 632.578, 5.48977, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Movement'),
|
||||
-- static afaik
|
||||
(@GUID+2 , 31161, 571, 210, 4520, 4, 1, 6559.47, 1563.07, 633.629, 5.00909, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss'),
|
||||
(@GUID+3 , 31223, 571, 210, 4520, 4, 0, 6470.11, 1724.35, 508.684, 2.37365, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss'),
|
||||
(@GUID+4 , 31224, 571, 210, 4520, 4, 0, 6564.62, 1612.34, 633.629, 1.85005, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss'),
|
||||
(@GUID+5 , 31225, 571, 210, 4520, 4, 0, 6055.63, 1954.17, 632.578, 3.42797, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss'),
|
||||
-- Lumbering Atrocity. Those in Phase 4 have different IDs from those in Phase 1
|
||||
(@GUID+6 , 31226, 571, 210, 4520, 4, 0, 6444.69, 1972.97, 631.82, 3.38594, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss'),
|
||||
(@GUID+7 , 31226, 571, 210, 4520, 4, 0, 6447.33, 1952.95, 631.848, 3.19395, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss'),
|
||||
(@GUID+8 , 31226, 571, 210, 4520, 4, 0, 6366.38, 1970.99, 508.128, 3.33358, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss'),
|
||||
(@GUID+9 , 31226, 571, 210, 4520, 4, 0, 6371.61, 1933.05, 508.684, 3.22886, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss'),
|
||||
(@GUID+10 , 31226, 571, 210, 4520, 4, 0, 6523.95, 1943.55, 640.72, 4.08407, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss'),
|
||||
(@GUID+11 , 31226, 571, 210, 4520, 4, 0, 6433.1, 1895.42, 508.678, 4.11898, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss'),
|
||||
(@GUID+12 , 31226, 571, 210, 4520, 4, 0, 6456.81, 1881.75, 508.682, 3.9968, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss'),
|
||||
(@GUID+13 , 31226, 571, 210, 4520, 4, 0, 6531.53, 1874.53, 629.634, 4.64258, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss'),
|
||||
(@GUID+14 , 31226, 571, 210, 4520, 4, 0, 6431.99, 1812.84, 508.684, 3.4383, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss'),
|
||||
(@GUID+15 , 31226, 571, 210, 4520, 4, 0, 6555.41, 1876.79, 629.634, 4.62512, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss'),
|
||||
(@GUID+16 , 31226, 571, 210, 4520, 4, 0, 6432.28, 1788.37, 508.685, 3.14159, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss'),
|
||||
(@GUID+17 , 31226, 571, 210, 4520, 4, 0, 6382.83, 1777.58, 508.78, 0.767945, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss'),
|
||||
(@GUID+18 , 31226, 571, 210, 4520, 4, 0, 6389.62, 1751.7, 508.707, 0.15708, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss'),
|
||||
(@GUID+19 , 31226, 571, 210, 4520, 4, 0, 6326, 1926.51, 508.681, 0.20944, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss'),
|
||||
(@GUID+20 , 31226, 571, 210, 4520, 4, 0, 6319.5, 1964.06, 508.453, 0.349066, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss'),
|
||||
(@GUID+21 , 31226, 571, 210, 4520, 4, 0, 6243.68, 1944.27, 631.86, 0.226893, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss'),
|
||||
(@GUID+22 , 31226, 571, 210, 4520, 4, 0, 6246.83, 1923.25, 631.843, 0.296706, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss'),
|
||||
(@GUID+23 , 31226, 571, 210, 4520, 4, 0, 6282.74, 1768.32, 525.276, 0.418879, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss'),
|
||||
(@GUID+24 , 31226, 571, 210, 4520, 4, 0, 6285.05, 1739.98, 525.469, 6.26573, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss'),
|
||||
(@GUID+25 , 31325, 571, 210, 4520, 4, 1, 6407.34, 1958.04, 631.298, 0.140488, 300, 10, 1, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Movement'),
|
||||
(@GUID+26 , 31325, 571, 210, 4520, 4, 1, 6361.6, 1932.71, 508.595, 1.69059, 300, 10, 1, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Movement'),
|
||||
(@GUID+27 , 31325, 571, 210, 4520, 4, 1, 6337.11, 1948.66, 507.983, 4.91094, 300, 10, 1, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Movement'),
|
||||
(@GUID+28 , 31325, 571, 210, 4520, 4, 1, 6434.97, 1839.88, 508.601, 0.92626, 300, 10, 1, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Movement'),
|
||||
(@GUID+29 , 31325, 571, 210, 4520, 4, 1, 6553.39, 1861.26, 629.716, 1.60466, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Movement'),
|
||||
(@GUID+30 , 31325, 571, 210, 4520, 4, 1, 6370.85, 1811.2, 508.601, 5.52566, 300, 10, 1, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Movement'),
|
||||
(@GUID+31 , 31325, 571, 210, 4520, 4, 1, 6417.08, 1881.77, 508.601, 3.21955, 300, 10, 1, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Movement'),
|
||||
(@GUID+32 , 31325, 571, 210, 4520, 4, 1, 6348.4, 1857.11, 508.601, 0.0470463, 300, 10, 1, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Movement'),
|
||||
(@GUID+33 , 31325, 571, 210, 4520, 4, 1, 6278.17, 1938.88, 631.367, 3.29251, 300, 10, 1, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Movement'),
|
||||
(@GUID+34 , 31325, 571, 210, 4520, 4, 1, 6116.33, 1923.28, 632.661, 6.10865, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Movement'),
|
||||
(@GUID+35 , 31325, 571, 210, 4520, 4, 1, 6112.24, 1906.16, 632.673, 6.26573, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Movement'),
|
||||
(@GUID+36 , 31325, 571, 210, 4520, 4, 1, 6259.45, 1808.62, 525.193, 4.829, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Movement'),
|
||||
(@GUID+37 , 31325, 571, 210, 4520, 4, 1, 6297.2, 1744.42, 525.193, 1.59532, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Movement'),
|
||||
(@GUID+38 , 31325, 571, 210, 4520, 4, 1, 6545.26, 1632.77, 632.545, 1.55334, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Movement'),
|
||||
(@GUID+39 , 31325, 571, 210, 4520, 4, 1, 6564.46, 1633.7, 632.528, 1.62316, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Movement'),
|
||||
(@GUID+40 , 31325, 571, 210, 4520, 4, 1, 6543.76, 1676.96, 629.716, 4.7391, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Movement'),
|
||||
-- 31326 and 31327 Spar, not necessarily against the other entry, using factions 1847 and 1848
|
||||
-- Reset behaviours have not been observed, so this will be skipped
|
||||
(@GUID+41 , 31326, 571, 210, 4520, 4, 1, 6421, 1972.77, 631.884, 5.64803, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+42 , 31326, 571, 210, 4520, 4, 1, 6409.48, 1971.11, 631.886, 5.89921, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+43 , 31326, 571, 210, 4520, 4, 1, 6410.79, 1970.23, 631.859, 2.55091, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+44 , 31326, 571, 210, 4520, 4, 1, 6388.46, 1966.7, 631.854, 2.54847, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+45 , 31326, 571, 210, 4520, 4, 1, 6413.71, 1945.59, 631.885, 1.03795, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+46 , 31326, 571, 210, 4520, 4, 1, 6402.12, 1944.07, 631.88, 0.899389, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+47 , 31326, 571, 210, 4520, 4, 1, 6375.5, 1965.78, 631.88, 5.69264, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+48 , 31326, 571, 210, 4520, 4, 1, 6414.83, 1947.49, 631.842, 4.17954, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+49 , 31326, 571, 210, 4520, 4, 1, 6390.57, 1942.33, 631.88, 0.930497, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+50 , 31326, 571, 210, 4520, 4, 1, 6380.64, 1942.28, 631.845, 4.06142, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+51 , 31326, 571, 210, 4520, 4, 1, 6350.3, 1964.71, 631.734, 5.95226, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+52 , 31326, 571, 210, 4520, 4, 1, 6379.43, 1940.68, 631.88, 0.91983, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+53 , 31326, 571, 210, 4520, 4, 1, 6355.59, 1934.22, 631.734, 0.489751, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+54 , 31326, 571, 210, 4520, 4, 1, 6341.18, 1931.79, 631.734, 2.77019, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+55 , 31326, 571, 210, 4520, 4, 1, 6514.8, 1855.03, 632.15, 3.24635, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+56 , 31326, 571, 210, 4520, 4, 1, 6512.74, 1837.83, 632.15, 5.97852, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+57 , 31326, 571, 210, 4520, 4, 1, 6335.24, 1961.79, 631.734, 0.504561, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+58 , 31326, 571, 210, 4520, 4, 1, 6517.62, 1769.83, 632.15, 3.42335, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+59 , 31326, 571, 210, 4520, 4, 1, 6515.39, 1769.18, 632.15, 0.281759, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+60 , 31326, 571, 210, 4520, 4, 1, 6316.04, 1931.22, 631.879, 2.49931, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+61 , 31326, 571, 210, 4520, 4, 1, 6293.26, 1927.77, 631.881, 2.54989, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+62 , 31326, 571, 210, 4520, 4, 1, 6314.37, 1932.47, 631.842, 5.6409, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+63 , 31326, 571, 210, 4520, 4, 1, 6303.14, 1930.49, 631.849, 5.67288, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+64 , 31326, 571, 210, 4520, 4, 1, 6288.14, 1951.45, 631.849, 0.969426, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+65 , 31326, 571, 210, 4520, 4, 1, 6259.95, 1923.17, 631.88, 2.52023, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+66 , 31326, 571, 210, 4520, 4, 1, 6289.28, 1953.11, 631.886, 4.11102, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+67 , 31326, 571, 210, 4520, 4, 1, 6254.01, 1946.15, 631.857, 0.823756, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+68 , 31326, 571, 210, 4520, 4, 1, 6299.69, 1953.39, 631.853, 0.815526, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+69 , 31326, 571, 210, 4520, 4, 1, 6276.51, 1949.8, 631.85, 0.849777, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+70 , 31326, 571, 210, 4520, 4, 1, 6255.31, 1947.56, 631.884, 3.87463, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+71 , 31326, 571, 210, 4520, 4, 1, 6268.72, 1925.74, 631.84, 5.70028, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+72 , 31326, 571, 210, 4520, 4, 1, 6300.99, 1954.76, 631.882, 3.95712, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+73 , 31326, 571, 210, 4520, 4, 1, 6521.29, 1666.02, 632.15, 2.81779, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+74 , 31326, 571, 210, 4520, 4, 1, 6566, 1681.54, 629.634, 1.60577, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+75 , 31326, 571, 210, 4520, 4, 1, 6519.12, 1683.8, 632.15, 3.58536, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+76 , 31326, 571, 210, 4520, 4, 1, 6565.26, 1706.1, 629.634, 4.71059, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+77 , 31326, 571, 210, 4520, 4, 1, 6565.25, 1704.2, 629.634, 1.569, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+78 , 31327, 571, 210, 4520, 4, 1, 6422.62, 1971.57, 631.849, 2.50643, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+79 , 31327, 571, 210, 4520, 4, 1, 6398.41, 1969.36, 631.884, 5.76359, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+80 , 31327, 571, 210, 4520, 4, 1, 6399.89, 1968.52, 631.858, 2.62199, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+81 , 31327, 571, 210, 4520, 4, 1, 6387.05, 1967.65, 631.883, 5.8294, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+82 , 31327, 571, 210, 4520, 4, 1, 6426.32, 1949.09, 631.845, 4.12847, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+83 , 31327, 571, 210, 4520, 4, 1, 6403.49, 1945.79, 631.843, 4.04098, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+84 , 31327, 571, 210, 4520, 4, 1, 6391.79, 1943.95, 631.844, 4.07209, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+85 , 31327, 571, 210, 4520, 4, 1, 6376.98, 1964.78, 631.85, 2.42601, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+86 , 31327, 571, 210, 4520, 4, 1, 6425, 1947.09, 631.889, 0.986876, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+87 , 31327, 571, 210, 4520, 4, 1, 6352.29, 1964.02, 631.734, 2.81067, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+88 , 31327, 571, 210, 4520, 4, 1, 6357, 1934.97, 631.734, 3.63134, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+89 , 31327, 571, 210, 4520, 4, 1, 6336.87, 1962.69, 631.734, 3.64615, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+90 , 31327, 571, 210, 4520, 4, 1, 6339.55, 1932.42, 631.734, 5.91178, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+91 , 31327, 571, 210, 4520, 4, 1, 6512.19, 1854.76, 632.15, 0.104753, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+92 , 31327, 571, 210, 4520, 4, 1, 6514.94, 1837.14, 632.15, 2.83693, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+93 , 31327, 571, 210, 4520, 4, 1, 6514.89, 1751.23, 632.15, 5.98097, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+94 , 31327, 571, 210, 4520, 4, 1, 6517.42, 1750.44, 632.15, 2.83938, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+95 , 31327, 571, 210, 4520, 4, 1, 6291.56, 1928.92, 631.846, 5.69148, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+96 , 31327, 571, 210, 4520, 4, 1, 6312.67, 1956.56, 631.884, 3.9432, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+97 , 31327, 571, 210, 4520, 4, 1, 6311.42, 1955.28, 631.857, 0.80161, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+98 , 31327, 571, 210, 4520, 4, 1, 6282.06, 1925.98, 631.883, 2.56944, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+99 , 31327, 571, 210, 4520, 4, 1, 6304.76, 1929.36, 631.883, 2.42601, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+100, 31327, 571, 210, 4520, 4, 1, 6280.15, 1927.21, 631.845, 5.71103, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+101, 31327, 571, 210, 4520, 4, 1, 6277.85, 1951.31, 631.883, 3.99137, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+102, 31327, 571, 210, 4520, 4, 1, 6265, 1947.88, 631.846, 0.792263, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+103, 31327, 571, 210, 4520, 4, 1, 6270.51, 1924.56, 631.875, 2.55869, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+104, 31327, 571, 210, 4520, 4, 1, 6266.5, 1949.4, 631.877, 3.93386, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+105, 31327, 571, 210, 4520, 4, 1, 6258.28, 1924.36, 631.848, 5.66182, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+106, 31327, 571, 210, 4520, 4, 1, 6517.89, 1667.16, 632.15, 5.95938, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+107, 31327, 571, 210, 4520, 4, 1, 6565.9, 1684.19, 629.634, 4.74737, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring'),
|
||||
(@GUID+108, 31327, 571, 210, 4520, 4, 1, 6516.86, 1682.72, 632.15, 0.443765, 300, 0, 0, 52237, 1, 'Phase Shift 2: Malykriss, WIP: Sparring');
|
||||
|
||||
-- Baelok
|
||||
DELETE FROM `waypoint_data` WHERE `id` = @GUID*10;
|
||||
INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`) VALUES
|
||||
(@GUID*10, 1, 6408.756, 1725.8109, 508.60083, 6.021385669708251953, 5000, 0), -- Guessed delay, incomplete path
|
||||
(@GUID*10, 2, 6417.155, 1737.2736, 508.6008, NULL, 0, 0),
|
||||
(@GUID*10, 3, 6430.235, 1737.4037, 508.60077, NULL, 0, 0);
|
||||
|
||||
DELETE FROM `creature_addon` WHERE `guid` = @GUID;
|
||||
INSERT INTO `creature_addon` (`guid`, `path_id`, `bytes2`, `auras`) VALUES
|
||||
(@GUID, @GUID*10, 1, NULL);
|
||||
|
||||
-- Worst part: Creatures from this phase are different id than those from phase 1, these are duplicated from what we already have because what I have on hand is basically the same thing
|
||||
-- We can't really just upgrade their phases since then invisible players would be killing visible enemies
|
||||
DELETE FROM `creature` WHERE `guid` BETWEEN @GUID+109 AND @GUID+172 AND `phaseMask` IN (4) AND `areaId` IN (4520);
|
||||
INSERT INTO `creature` (`guid`, `id1`, `map`, `zoneId`, `areaId`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `MovementType`, `Comment`) VALUES
|
||||
(@GUID+109, 31321, 571, 210, 4520, 4, 1, 6467.82, 1811.16, 527.525, 5.67232, 300, 0, 0, 'WIP'),
|
||||
(@GUID+110, 31321, 571, 210, 4520, 4, 1, 6369.65, 1665.45, 555.737, 5.51524, 300, 0, 0, 'WIP'),
|
||||
(@GUID+111, 31321, 571, 210, 4520, 4, 1, 6311.05, 1824.67, 510.092, 5.42797, 300, 0, 0, 'WIP'),
|
||||
(@GUID+112, 31321, 571, 210, 4520, 4, 1, 6328.69, 1820.64, 509.913, 3.47321, 300, 0, 0, 'WIP'),
|
||||
(@GUID+113, 31321, 571, 210, 4520, 4, 1, 6371.53, 1748.72, 525.308, 5.28835, 300, 0, 0, 'WIP'),
|
||||
(@GUID+114, 31321, 571, 210, 4520, 4, 1, 6344.04, 1769.24, 525.375, 3.64774, 300, 0, 0, 'WIP'),
|
||||
(@GUID+115, 31321, 571, 210, 4520, 4, 1, 6355.53, 1764.52, 525.276, 4.76475, 300, 0, 0, 'WIP'),
|
||||
(@GUID+116, 31321, 571, 210, 4520, 4, 1, 6323.64, 1716.53, 525.551, 5.72468, 300, 0, 0, 'WIP'),
|
||||
(@GUID+117, 31321, 571, 210, 4520, 4, 1, 6323.45, 1731.48, 525.515, 6.23082, 300, 0, 0, 'WIP'),
|
||||
(@GUID+118, 31321, 571, 210, 4520, 4, 1, 6329.26, 1748.75, 525.276, 1.11701, 300, 0, 0, 'WIP'),
|
||||
(@GUID+119, 31321, 571, 210, 4520, 4, 1, 6360.59, 1736.24, 525.276, 4.13643, 300, 0, 0, 'WIP'),
|
||||
(@GUID+120, 31321, 571, 210, 4520, 4, 1, 6343.99, 1750.79, 525.739, 2.80998, 300, 0, 0, 'WIP'),
|
||||
(@GUID+121, 31321, 571, 210, 4520, 4, 1, 6333.84, 1766.47, 525.276, 5.02655, 300, 0, 0, 'WIP'),
|
||||
(@GUID+122, 31321, 571, 210, 4520, 4, 1, 6350.36, 1731.27, 525.276, 4.7822, 300, 0, 0, 'WIP'),
|
||||
(@GUID+123, 31321, 571, 210, 4520, 4, 1, 6322.36, 1765.4, 525.276, 0.523599, 300, 0, 0, 'WIP'),
|
||||
(@GUID+124, 31321, 571, 210, 4520, 4, 1, 6339.15, 1732.77, 525.276, 4.45059, 300, 0, 0, 'WIP'),
|
||||
(@GUID+125, 31321, 571, 210, 4520, 4, 1, 6334.4, 1717.4, 525.276, 1.79769, 300, 0, 0, 'WIP'),
|
||||
(@GUID+126, 31321, 571, 210, 4520, 4, 1, 6357.46, 1718.11, 525.276, 1.13446, 300, 0, 0, 'WIP'),
|
||||
(@GUID+127, 31321, 571, 210, 4520, 4, 1, 6361.38, 1751.44, 525.581, 2.77507, 300, 0, 0, 'WIP'),
|
||||
(@GUID+128, 31321, 571, 210, 4520, 4, 1, 6346.33, 1715.18, 525.276, 2.84489, 300, 0, 0, 'WIP'),
|
||||
(@GUID+129, 31320, 571, 210, 4520, 4, 0, 6461.65, 1811.79, 526.024, 1.28865, 300, 0, 2, 'WIP'),
|
||||
(@GUID+130, 31320, 571, 210, 4520, 4, 0, 6353.97, 1712.15, 525.317, 2.58031, 300, 0, 2, 'WIP'),
|
||||
(@GUID+131, 31322, 571, 210, 4520, 4, 0, 6504.06, 1844.93, 508.697, 0.10472, 300, 5, 1, 'WIP'),
|
||||
(@GUID+132, 31323, 571, 210, 4520, 4, 0, 6550.48, 1680.94, 629.651, 4.31997, 300, 5, 1, 'WIP'),
|
||||
(@GUID+133, 31323, 571, 210, 4520, 4, 0, 6595.72, 1843.64, 672.109, 3.07178, 300, 5, 1, 'WIP'),
|
||||
(@GUID+134, 31323, 571, 210, 4520, 4, 0, 6507.37, 1668.65, 632.067, 3.78131, 300, 5, 1, 'WIP'),
|
||||
(@GUID+135, 31323, 571, 210, 4520, 4, 0, 6546.2, 1834.68, 629.651, 1.10748, 300, 5, 1, 'WIP'),
|
||||
(@GUID+136, 31323, 571, 210, 4520, 4, 0, 6554.25, 1799.26, 629.651, 5.65689, 300, 5, 1, 'WIP'),
|
||||
(@GUID+137, 31323, 571, 210, 4520, 4, 0, 6509.91, 1839.99, 632.067, 5.25873, 300, 5, 1, 'WIP'),
|
||||
(@GUID+138, 31323, 571, 210, 4520, 4, 0, 6551.18, 1707.41, 629.651, 2.46494, 300, 5, 1, 'WIP'),
|
||||
(@GUID+139, 31323, 571, 210, 4520, 4, 0, 6546.51, 1767.71, 629.651, 4.41886, 300, 5, 1, 'WIP'),
|
||||
(@GUID+140, 31323, 571, 210, 4520, 4, 0, 6550.06, 1740.42, 629.651, 5.29382, 300, 0, 0, 'WIP'),
|
||||
(@GUID+141, 31323, 571, 210, 4520, 4, 0, 6227.2, 1877.56, 631.58, 5.79449, 300, 0, 0, 'WIP'),
|
||||
(@GUID+142, 31323, 571, 210, 4520, 4, 0, 6362.5, 1872.02, 508.726, 2.54692, 300, 5, 1, 'WIP'),
|
||||
(@GUID+143, 31323, 571, 210, 4520, 4, 0, 6420.17, 1862.48, 508.726, 3.89239, 300, 5, 1, 'WIP'),
|
||||
(@GUID+144, 31323, 571, 210, 4520, 4, 0, 6394.7, 1951.5, 631.629, 3.48342, 300, 5, 1, 'WIP'),
|
||||
(@GUID+145, 31323, 571, 210, 4520, 4, 0, 6271.5, 1935.59, 631.49, 3.18501, 300, 5, 1, 'WIP'),
|
||||
(@GUID+146, 31323, 571, 210, 4520, 4, 0, 6349.53, 1953.5, 631.751, 4.07865, 300, 5, 1, 'WIP'),
|
||||
(@GUID+147, 31323, 571, 210, 4520, 4, 0, 6305.2, 1934.09, 631.785, 5.88206, 300, 5, 1, 'WIP'),
|
||||
(@GUID+148, 31323, 571, 210, 4520, 4, 0, 6430.93, 1962.52, 631.463, 4.50238, 300, 0, 0, 'WIP'),
|
||||
(@GUID+149, 31323, 571, 210, 4520, 4, 0, 6402.65, 1952.95, 631.615, 3.48321, 300, 5, 1, 'WIP'),
|
||||
(@GUID+150, 31320, 571, 210, 4520, 4, 0, 6315.75, 1749.75, 525.318, 6.10961, 300, 5, 1, 'WIP'),
|
||||
(@GUID+151, 31320, 571, 210, 4520, 4, 0, 6347.47, 1653.42, 555.433, 0.048457, 300, 5, 1, 'WIP'),
|
||||
(@GUID+152, 31320, 571, 210, 4520, 4, 0, 6275.29, 1841.61, 523.07, 3.07487, 300, 5, 1, 'WIP'),
|
||||
(@GUID+153, 31320, 571, 210, 4520, 4, 0, 6319.39, 1767.24, 525.262, 5.62052, 300, 5, 1, 'WIP'),
|
||||
(@GUID+154, 31321, 571, 210, 4520, 4, 1, 6352.03, 1742.87, 525.318, 3.21439, 300, 0, 0, 'WIP'),
|
||||
(@GUID+155, 31320, 571, 210, 4520, 4, 0, 6319.64, 1728.98, 525.212, 1.56194, 300, 5, 1, 'WIP'),
|
||||
(@GUID+156, 31320, 571, 210, 4520, 4, 0, 6355.55, 1746.02, 525.318, 3.19243, 300, 5, 1, 'WIP'),
|
||||
(@GUID+157, 31320, 571, 210, 4520, 4, 0, 6291.59, 1703.77, 527.392, 0.936473, 300, 5, 1, 'WIP'),
|
||||
(@GUID+158, 31324, 571, 210, 4520, 4, 0, 6420.04, 1687.55, 569.111, 1.48353, 300, 0, 0, 'WIP'),
|
||||
(@GUID+159, 31324, 571, 210, 4520, 4, 0, 6405.54, 1653.2, 579.39, 2.30383, 300, 0, 0, 'WIP'),
|
||||
(@GUID+160, 31324, 571, 210, 4520, 4, 0, 6400.35, 1643.93, 600.349, 2.33874, 300, 0, 0, 'WIP'),
|
||||
(@GUID+161, 31324, 571, 210, 4520, 4, 0, 6381.31, 1715.12, 546.677, 1.62316, 300, 0, 0, 'WIP'),
|
||||
(@GUID+162, 31324, 571, 210, 4520, 4, 0, 6208.67, 1793.61, 617.382, 0.593412, 300, 0, 0, 'WIP'),
|
||||
(@GUID+163, 31324, 571, 210, 4520, 4, 0, 6205.06, 1767.97, 619.533, 0.750492, 300, 0, 0, 'WIP'),
|
||||
(@GUID+164, 31324, 571, 210, 4520, 4, 0, 6241.39, 1706.26, 599.038, 0, 300, 0, 0, 'WIP'),
|
||||
(@GUID+165, 31324, 571, 210, 4520, 4, 0, 6472.36, 1677.34, 576.605, 2.35619, 300, 0, 0, 'WIP'),
|
||||
(@GUID+166, 31324, 571, 210, 4520, 4, 0, 6429.15, 1660.39, 595.302, 2.42601, 300, 0, 0, 'WIP'),
|
||||
(@GUID+167, 31324, 571, 210, 4520, 4, 0, 6216.64, 1785.2, 592.153, 0.750492, 300, 0, 0, 'WIP'),
|
||||
(@GUID+168, 31324, 571, 210, 4520, 4, 0, 6257.61, 1739.57, 581.576, 6.16101, 300, 0, 0, 'WIP'),
|
||||
(@GUID+169, 31324, 571, 210, 4520, 4, 0, 6238.85, 1729.19, 598.615, 0.017453, 300, 0, 0, 'WIP'),
|
||||
(@GUID+170, 31324, 571, 210, 4520, 4, 0, 6220.54, 1703.19, 627.699, 5.48033, 300, 0, 0, 'WIP'),
|
||||
(@GUID+171, 31324, 571, 210, 4520, 4, 0, 6385.01, 1703.41, 563.539, 1.50098, 300, 0, 0, 'WIP'),
|
||||
(@GUID+172, 31324, 571, 210, 4520, 4, 0, 6235.08, 1762.35, 594.648, 0.628319, 300, 0, 0, 'WIP');
|
||||
|
||||
DELETE FROM `creature_addon` WHERE `guid` BETWEEN @GUID+109 AND @GUID+131;
|
||||
INSERT INTO `creature_addon` (`guid`, `path_id`, `bytes2`, `emote`, `auras`) VALUES
|
||||
(@GUID+109, 0, 1, 133, NULL),
|
||||
(@GUID+110, 0, 1, 133, NULL),
|
||||
(@GUID+111, 0, 1, 133, NULL),
|
||||
(@GUID+112, 0, 1, 133, NULL),
|
||||
(@GUID+113, 0, 1, 133, NULL),
|
||||
(@GUID+114, 0, 1, 233, NULL),
|
||||
(@GUID+115, 0, 1, 133, NULL),
|
||||
(@GUID+116, 0, 1, 233, NULL),
|
||||
(@GUID+117, 0, 1, 233, NULL),
|
||||
(@GUID+118, 0, 1, 133, NULL),
|
||||
(@GUID+119, 0, 1, 233, NULL),
|
||||
(@GUID+120, 0, 1, 233, NULL),
|
||||
(@GUID+121, 0, 1, 133, NULL),
|
||||
(@GUID+122, 0, 1, 133, NULL),
|
||||
(@GUID+123, 0, 1, 233, NULL),
|
||||
(@GUID+124, 0, 1, 233, NULL),
|
||||
(@GUID+125, 0, 1, 133, NULL),
|
||||
(@GUID+126, 0, 1, 133, NULL),
|
||||
(@GUID+127, 0, 1, 233, NULL),
|
||||
(@GUID+128, 0, 1, 233, NULL),
|
||||
(@GUID+129, 1242670, 1, 0, NULL),
|
||||
(@GUID+130, 1242710, 1, 0, NULL),
|
||||
(@GUID+131, 0, 1, 173, NULL);
|
||||
18
data/sql/updates/db_world/2026_01_17_00.sql
Normal file
18
data/sql/updates/db_world/2026_01_17_00.sql
Normal file
@@ -0,0 +1,18 @@
|
||||
-- DB update 2026_01_16_00 -> 2026_01_17_00
|
||||
--
|
||||
DELETE FROM `prospecting_loot_template` WHERE (`Entry` = 23424);
|
||||
INSERT INTO `prospecting_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES
|
||||
(23424, 21929, 0, 0, 0, 1, 1, 1, 2, 'Flame Spessarite'),
|
||||
(23424, 23077, 0, 0, 0, 1, 1, 1, 2, 'Blood Garnet'),
|
||||
(23424, 23079, 0, 0, 0, 1, 1, 1, 2, 'Deep Peridot'),
|
||||
(23424, 23107, 0, 0, 0, 1, 1, 1, 2, 'Shadow Draenite'),
|
||||
(23424, 23112, 0, 0, 0, 1, 1, 1, 2, 'Golden Draenite'),
|
||||
(23424, 23117, 0, 0, 0, 1, 1, 1, 2, 'Azure Moonstone'),
|
||||
(23424, 23436, 0, 4, 0, 1, 2, 1, 1, 'Living Ruby'),
|
||||
(23424, 23437, 0, 4, 0, 1, 2, 1, 1, 'Talasite'),
|
||||
(23424, 23438, 0, 4, 0, 1, 2, 1, 1, 'Star of Elune'),
|
||||
(23424, 23439, 0, 4, 0, 1, 2, 1, 1, 'Noble Topaz'),
|
||||
(23424, 23440, 0, 4, 0, 1, 2, 1, 1, 'Dawnstone'),
|
||||
(23424, 23441, 0, 4, 0, 1, 2, 1, 1, 'Nightseye');
|
||||
|
||||
DELETE FROM `reference_loot_template` WHERE `Entry` = 1000;
|
||||
11
data/sql/updates/db_world/2026_01_17_01.sql
Normal file
11
data/sql/updates/db_world/2026_01_17_01.sql
Normal file
@@ -0,0 +1,11 @@
|
||||
-- DB update 2026_01_17_00 -> 2026_01_17_01
|
||||
--
|
||||
DELETE FROM `smart_scripts` WHERE (`entryorguid` = 26261) AND (`source_type` = 0) AND (`id` IN (0));
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(26261, 0, 0, 0, 8, 0, 100, 512, 47394, 0, 0, 0, 0, 0, 80, 2626100, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Grizzly Hills Giant - On Spellhit \'Kurun\'s Blessing\' - Run Script');
|
||||
|
||||
DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 17) AND (`SourceGroup` = 0) AND (`SourceEntry` = 47394) AND (`SourceId` = 0) AND (`ElseGroup` = 0) AND (`ConditionTypeOrReference` = 29) AND (`ConditionTarget` = 1) AND (`ConditionValue1` = 26417) AND (`ConditionValue2` = 15) AND (`ConditionValue3` = 0);
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(17, 0, 47394, 0, 0, 29, 1, 26417, 15, 0, 0, 0, 0, '', 'For Kurun\'s Blessing (47394) to have an effect the target Grizzly Hills Giant (26261) must be engaged with a Runed Giant (26417)');
|
||||
|
||||
UPDATE `creature` SET `spawntimesecs` = 120 WHERE `id1` = 26261;
|
||||
3
data/sql/updates/db_world/2026_01_18_00.sql
Normal file
3
data/sql/updates/db_world/2026_01_18_00.sql
Normal file
@@ -0,0 +1,3 @@
|
||||
-- DB update 2026_01_17_01 -> 2026_01_18_00
|
||||
-- Sets "Spiritsbreath" to be 100 from 58 % drop rate for "Grumbald One-Eye"
|
||||
UPDATE `creature_loot_template` SET `Chance` = 100 WHERE `Entry` = 26681 AND `Item` = 36740;
|
||||
9
data/sql/updates/db_world/2026_01_18_01.sql
Normal file
9
data/sql/updates/db_world/2026_01_18_01.sql
Normal file
@@ -0,0 +1,9 @@
|
||||
-- DB update 2026_01_18_00 -> 2026_01_18_01
|
||||
-- Add skinning loot table for creature 1933 (Sheep) to enable Ruined Leather Scraps, Wool Cloth, and Light Leather drops.
|
||||
UPDATE `creature_template` SET `skinloot` = 1933 WHERE (`entry` = 1933);
|
||||
|
||||
DELETE FROM `skinning_loot_template` WHERE (`Entry` = 1933);
|
||||
INSERT INTO `skinning_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES
|
||||
(1933, 2934, 0, 55, 0, 1, 1, 1, 1, 'Ruined Leather Scraps'),
|
||||
(1933, 2592, 0, 35, 0, 1, 1, 1, 1, 'Wool Cloth'),
|
||||
(1933, 2318, 0, 10, 0, 1, 1, 1, 1, 'Light Leather');
|
||||
5
data/sql/updates/db_world/2026_01_18_02.sql
Normal file
5
data/sql/updates/db_world/2026_01_18_02.sql
Normal file
@@ -0,0 +1,5 @@
|
||||
-- DB update 2026_01_18_01 -> 2026_01_18_02
|
||||
--
|
||||
UPDATE `trainer_spell` SET `ReqSkillRank`=275 WHERE `SpellId`=29356;
|
||||
UPDATE `trainer_spell` SET `ReqSkillRank`=230 WHERE `SpellId`=16153;
|
||||
UPDATE `trainer_spell` SET `ReqSkillRank`=375 WHERE `SpellId`=29361;
|
||||
40
data/sql/updates/db_world/2026_01_19_00.sql
Normal file
40
data/sql/updates/db_world/2026_01_19_00.sql
Normal file
@@ -0,0 +1,40 @@
|
||||
-- DB update 2026_01_18_02 -> 2026_01_19_00
|
||||
--
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 24539);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(24539, 0, 0, 0, 0, 0, 100, 0, 3000, 6000, 15000, 22000, 0, 0, 11, 15091, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, '\'Silvermoon\' Harry - In Combat - Cast \'Blast Wave\''),
|
||||
(24539, 0, 1, 0, 0, 0, 100, 0, 2500, 4000, 4000, 5000, 0, 0, 11, 50183, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, '\'Silvermoon\' Harry - In Combat - Cast \'Scorch\''),
|
||||
(24539, 0, 2, 0, 62, 0, 100, 0, 9010, 0, 0, 0, 0, 0, 80, 2453900, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, '"Silvermoon" Harry - On Gossip Option "Taruk sent me to collect" Selected - Run Script: Attack'),
|
||||
(24539, 0, 3, 4, 62, 0, 100, 0, 9011, 0, 0, 0, 0, 0, 56, 34115, 1, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, '"Silvermoon" Harry - On Gossip Option "Pay up, Harry!" Selected - Add Item \'"Silvermoon" Harry\'s Debt\' 1 Time'),
|
||||
(24539, 0, 4, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, '"Silvermoon" Harry - On Gossip Option 0 Selected - Close Gossip'),
|
||||
(24539, 0, 5, 0, 2, 0, 100, 0, 0, 50, 30000, 30000, 0, 0, 80, 2453901, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, '"Silvermoon" Harry - Between 0-50% Health - Run Script: Give Up Fight'),
|
||||
(24539, 0, 7, 0, 32, 0, 100, 0, 0, 1000000, 15000, 15000, 0, 0, 42, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, '"Silvermoon" Harry - On Damaged by Condition: Player in Quest - Set Invincibility'),
|
||||
(24539, 0, 8, 0, 32, 0, 100, 0, 0, 1000000, 15000, 15000, 0, 0, 42, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, '"Silvermoon" Harry - On Damaged by Condition: Player NOT in Quest - Remove Invincibility'),
|
||||
(24539, 0, 9, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 240, 9010, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, '"Silvermoon" Harry - Actionlist - Reset GossipMenuID to 9010'),
|
||||
(24539, 0, 10, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 2, 1888, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, '"Silvermoon" Harry - Actionlist - Reset Faction');
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 2453900);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(2453900, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, '\'Silvermoon\' Harry - On Script - Say Line 0'),
|
||||
(2453900, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 83, 131, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, '"Silvermoon" Harry - Actionlist - Remove Npc Flags Gossip & Questgiver & Vendor'),
|
||||
(2453900, 9, 2, 0, 0, 0, 100, 0, 1200, 1200, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 21, 10, 0, 0, 0, 0, 0, 0, 0, '"Silvermoon" Harry - Actionlist - Start Attacking');
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 2453901);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(2453901, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, '"Silvermoon" Harry - Actionlist - Say Line 1'),
|
||||
(2453901, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 2, 1080, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, '"Silvermoon" Harry - Actionlist - Set Faction Friendly'),
|
||||
(2453901, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, '"Silvermoon" Harry - Actionlist - Evade'),
|
||||
(2453901, 9, 3, 0, 0, 0, 100, 0, 2400, 2400, 0, 0, 0, 0, 82, 131, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, '"Silvermoon" Harry - Actionlist - Add Npc Flags Gossip & Questgiver & Vendor'),
|
||||
(2453901, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 240, 9011, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, '"Silvermoon" Harry - Actionlist - Change GossipMenuID to 9011'),
|
||||
(2453901, 9, 5, 0, 0, 0, 100, 0, 60000, 60000, 0, 0, 0, 0, 240, 9010, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, '"Silvermoon" Harry - Actionlist - Reset GossipMenuID to 9010'),
|
||||
(2453901, 9, 6, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 2, 1888, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, '"Silvermoon" Harry - Actionlist - Reset Faction');
|
||||
|
||||
DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 22) AND (`SourceEntry` = 24539) AND (`SourceId` = 0) AND (`ElseGroup` = 0) AND (`ConditionTypeOrReference` = 47);
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(22, 8, 24539, 0, 0, 47, 0, 11464, 8, 0, 0, 0, 0, '', 'Only Play Script if Quest \'Gambling Debt\' (11464) is in progress'),
|
||||
(22, 9, 24539, 0, 0, 47, 0, 11464, 8, 0, 1, 0, 0, '', 'Only Play Script if Quest \'Gambling Debt\' (11464) is in progress');
|
||||
|
||||
DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 15) AND (`SourceGroup` IN (9010,9011)) AND (`ConditionTypeOrReference` = 2) AND (`ConditionValue1` = 34115);
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(15, 9010, 0, 0, 0, 2, 0, 34115, 1, 0, 1, 0, 0, '', 'Only Show Gossip Option for quest Gambling Debt (11464) if player does not have Quest Item "Silvermoon" Harry\'s Debt (34115)'),
|
||||
(15, 9011, 0, 0, 0, 2, 0, 34115, 1, 0, 1, 0, 0, '', 'Only Show Gossip Option for quest Gambling Debt (11464) if player does not have Quest Item "Silvermoon" Harry\'s Debt (34115)');
|
||||
31
data/sql/updates/db_world/2026_01_19_01.sql
Normal file
31
data/sql/updates/db_world/2026_01_19_01.sql
Normal file
@@ -0,0 +1,31 @@
|
||||
-- DB update 2026_01_19_00 -> 2026_01_19_01
|
||||
|
||||
-- Edit Spawn Time (Captured Rageclaw & Drakuru Shackles)
|
||||
UPDATE `creature` SET `spawntimesecs` = 30 WHERE (`id1` IN (29700, 29686));
|
||||
|
||||
-- Remove C++ script and set SAI for Drakuru Shackles & Captured Rageclaw
|
||||
UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName` = '' WHERE (`entry` IN (29700, 29686));
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 0) AND (`entryorguid` IN (29700, 29686));
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(29700, 0, 0, 0, 8, 0, 100, 0, 54990, 0, 0, 0, 0, 0, 11, 55009, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Drakuru Shackles - On Spellhit \'Chains of the Scourge\' - Cast \'Chains of the Scourge\''),
|
||||
(29700, 0, 1, 2, 8, 0, 100, 0, 55083, 0, 0, 0, 0, 0, 33, 29686, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Drakuru Shackles - On Spellhit \'Unlock Shackle\' - Quest Credit \'Captured Rageclaw\''),
|
||||
(29700, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 223, 27, 0, 0, 0, 0, 0, 9, 29686, 0, 5, 1, 0, 0, 0, 0, 'Drakuru Shackles - On Spellhit \'Unlock Shackle\' - Do Action ID 27'),
|
||||
(29686, 0, 0, 1, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 90, 8, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Captured Rageclaw - On Respawn - Set Flag Standstate Kneel'),
|
||||
(29686, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 54990, 0, 0, 0, 0, 0, 9, 29700, 0, 5, 1, 0, 0, 0, 0, 'Captured Rageclaw - On Respawn - Cast \'Chains of the Scourge\''),
|
||||
(29686, 0, 2, 3, 72, 0, 100, 0, 27, 0, 0, 0, 0, 0, 91, 8, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Captured Rageclaw - On Action 27 Done - Remove FlagStandstate Kneel'),
|
||||
(29686, 0, 3, 4, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Captured Rageclaw - On Action 27 Done - Remove Aura \'all\''),
|
||||
(29686, 0, 4, 5, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 55085, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Captured Rageclaw - On Action 27 Done - Cast \'Unshackled!\''),
|
||||
(29686, 0, 5, 6, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Captured Rageclaw - On Action 27 Done - Say Line 0'),
|
||||
(29686, 0, 6, 7, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 89, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Captured Rageclaw - On Action 27 Done - Start Random Movement'),
|
||||
(29686, 0, 7, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 12000, 30000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Captured Rageclaw - On Action 27 Done - Despawn In 12000 ms');
|
||||
|
||||
-- Set condition for Chains of the Scourge
|
||||
DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 13) AND (`SourceGroup` = 1) AND (`SourceEntry` = 54990) AND (`SourceId` = 0) AND (`ElseGroup` = 0) AND (`ConditionTypeOrReference` = 31) AND (`ConditionTarget` = 0) AND (`ConditionValue1` = 3) AND (`ConditionValue2` = 29700) AND (`ConditionValue3` = 0);
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(13, 1, 54990, 0, 0, 31, 0, 3, 29700, 0, 0, 0, 0, '', 'Chains of the Scourge has Drakuru Shackles as implicit target');
|
||||
|
||||
-- Set condition for Unlock Shackle (prevent item spamming if Rageclaw is not chained/present)
|
||||
DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 13) AND (`SourceGroup` = 3) AND (`SourceEntry` = 55083) AND (`SourceId` = 0) AND (`ElseGroup` = 0) AND (`ConditionTypeOrReference` = 1) AND (`ConditionTarget` = 0) AND (`ConditionValue1` = 54990) AND (`ConditionValue2` = 0) AND (`ConditionValue3` = 0);
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(13, 3, 55083, 0, 0, 1, 0, 54990, 0, 0, 0, 0, 0, '', 'Unlock Shackle target must have Chains of the Scourge aura.');
|
||||
388
data/sql/updates/db_world/2026_01_20_00.sql
Normal file
388
data/sql/updates/db_world/2026_01_20_00.sql
Normal file
@@ -0,0 +1,388 @@
|
||||
-- DB update 2026_01_19_01 -> 2026_01_20_00
|
||||
-- Updates 3 vendors that spawn with arena season 5 to include missing items and correct costs.
|
||||
DELETE FROM `npc_vendor` WHERE (`entry` IN (31863, 32407, 32405));
|
||||
INSERT INTO `npc_vendor` (`entry`, `slot`, `item`, `maxcount`, `incrtime`, `ExtendedCost`, `VerifiedBuild`) VALUES
|
||||
(31863, 0, 40784, 0, 0, 2462, 0),
|
||||
(31863, 0, 40785, 0, 0, 2462, 0),
|
||||
(31863, 0, 40786, 0, 0, 2462, 0),
|
||||
(31863, 0, 40804, 0, 0, 2463, 0),
|
||||
(31863, 0, 40805, 0, 0, 2463, 0),
|
||||
(31863, 0, 40806, 0, 0, 2463, 0),
|
||||
(31863, 0, 40823, 0, 0, 2464, 0),
|
||||
(31863, 0, 40824, 0, 0, 2464, 0),
|
||||
(31863, 0, 40825, 0, 0, 2464, 0),
|
||||
(31863, 0, 40844, 0, 0, 2465, 0),
|
||||
(31863, 0, 40845, 0, 0, 2465, 0),
|
||||
(31863, 0, 40846, 0, 0, 2465, 0),
|
||||
(31863, 0, 40862, 0, 0, 2470, 0),
|
||||
(31863, 0, 40863, 0, 0, 2470, 0),
|
||||
(31863, 0, 40864, 0, 0, 2470, 0),
|
||||
(31863, 0, 40905, 0, 0, 2462, 0),
|
||||
(31863, 0, 40926, 0, 0, 2463, 0),
|
||||
(31863, 0, 40932, 0, 0, 2464, 0),
|
||||
(31863, 0, 40938, 0, 0, 2465, 0),
|
||||
(31863, 0, 40962, 0, 0, 2470, 0),
|
||||
(31863, 0, 40990, 0, 0, 2462, 0),
|
||||
(31863, 0, 40991, 0, 0, 2462, 0),
|
||||
(31863, 0, 41000, 0, 0, 2463, 0),
|
||||
(31863, 0, 41006, 0, 0, 2463, 0),
|
||||
(31863, 0, 41012, 0, 0, 2464, 0),
|
||||
(31863, 0, 41018, 0, 0, 2464, 0),
|
||||
(31863, 0, 41026, 0, 0, 2465, 0),
|
||||
(31863, 0, 41032, 0, 0, 2465, 0),
|
||||
(31863, 0, 41037, 0, 0, 2470, 0),
|
||||
(31863, 0, 41043, 0, 0, 2470, 0),
|
||||
(31863, 0, 41080, 0, 0, 2462, 0),
|
||||
(31863, 0, 41086, 0, 0, 2462, 0),
|
||||
(31863, 0, 41136, 0, 0, 2463, 0),
|
||||
(31863, 0, 41142, 0, 0, 2463, 0),
|
||||
(31863, 0, 41150, 0, 0, 2464, 0),
|
||||
(31863, 0, 41156, 0, 0, 2464, 0),
|
||||
(31863, 0, 41198, 0, 0, 2465, 0),
|
||||
(31863, 0, 41204, 0, 0, 2465, 0),
|
||||
(31863, 0, 41210, 0, 0, 2470, 0),
|
||||
(31863, 0, 41216, 0, 0, 2470, 0),
|
||||
(31863, 0, 41274, 0, 0, 2470, 0),
|
||||
(31863, 0, 41280, 0, 0, 2470, 0),
|
||||
(31863, 0, 41286, 0, 0, 2463, 0),
|
||||
(31863, 0, 41292, 0, 0, 2463, 0),
|
||||
(31863, 0, 41297, 0, 0, 2465, 0),
|
||||
(31863, 0, 41303, 0, 0, 2465, 0),
|
||||
(31863, 0, 41309, 0, 0, 2462, 0),
|
||||
(31863, 0, 41315, 0, 0, 2462, 0),
|
||||
(31863, 0, 41320, 0, 0, 2464, 0),
|
||||
(31863, 0, 41326, 0, 0, 2464, 0),
|
||||
(31863, 0, 41649, 0, 0, 2462, 0),
|
||||
(31863, 0, 41654, 0, 0, 2465, 0),
|
||||
(31863, 0, 41660, 0, 0, 2462, 0),
|
||||
(31863, 0, 41666, 0, 0, 2465, 0),
|
||||
(31863, 0, 41671, 0, 0, 2464, 0),
|
||||
(31863, 0, 41677, 0, 0, 2464, 0),
|
||||
(31863, 0, 41682, 0, 0, 2470, 0),
|
||||
(31863, 0, 41714, 0, 0, 2470, 0),
|
||||
(31863, 0, 41766, 0, 0, 2463, 0),
|
||||
(31863, 0, 41772, 0, 0, 2463, 0),
|
||||
(31863, 0, 41853, 0, 0, 2464, 0),
|
||||
(31863, 0, 41858, 0, 0, 2462, 0),
|
||||
(31863, 0, 41863, 0, 0, 2465, 0),
|
||||
(31863, 0, 41868, 0, 0, 2470, 0),
|
||||
(31863, 0, 41873, 0, 0, 2463, 0),
|
||||
(31863, 0, 41914, 0, 0, 2464, 0),
|
||||
(31863, 0, 41920, 0, 0, 2462, 0),
|
||||
(31863, 0, 41926, 0, 0, 2465, 0),
|
||||
(31863, 0, 41933, 0, 0, 2470, 0),
|
||||
(31863, 0, 41939, 0, 0, 2463, 0),
|
||||
(31863, 0, 41945, 0, 0, 2464, 0),
|
||||
(31863, 0, 41951, 0, 0, 2462, 0),
|
||||
(31863, 0, 41958, 0, 0, 2465, 0),
|
||||
(31863, 0, 41964, 0, 0, 2470, 0),
|
||||
(31863, 0, 41970, 0, 0, 2463, 0),
|
||||
(31863, 0, 41992, 0, 0, 2464, 0),
|
||||
(31863, 0, 41997, 0, 0, 2462, 0),
|
||||
(31863, 0, 42004, 0, 0, 2465, 0),
|
||||
(31863, 0, 42010, 0, 0, 2470, 0),
|
||||
(31863, 0, 42016, 0, 0, 2463, 0),
|
||||
(31863, 0, 42208, 0, 0, 2466, 0),
|
||||
(31863, 0, 42227, 0, 0, 2467, 0),
|
||||
(31863, 0, 42232, 0, 0, 2467, 0),
|
||||
(31863, 0, 42237, 0, 0, 2468, 0),
|
||||
(31863, 0, 42242, 0, 0, 2466, 0),
|
||||
(31863, 0, 42248, 0, 0, 2467, 0),
|
||||
(31863, 0, 42255, 0, 0, 2467, 0),
|
||||
(31863, 0, 42260, 0, 0, 2466, 0),
|
||||
(31863, 0, 42265, 0, 0, 2467, 0),
|
||||
(31863, 0, 42270, 0, 0, 2467, 0),
|
||||
(31863, 0, 42275, 0, 0, 2466, 0),
|
||||
(31863, 0, 42280, 0, 0, 2467, 0),
|
||||
(31863, 0, 42285, 0, 0, 2466, 0),
|
||||
(31863, 0, 42290, 0, 0, 2467, 0),
|
||||
(31863, 0, 42317, 0, 0, 2460, 0),
|
||||
(31863, 0, 42322, 0, 0, 2460, 0),
|
||||
(31863, 0, 42327, 0, 0, 2460, 0),
|
||||
(31863, 0, 42332, 0, 0, 2460, 0),
|
||||
(31863, 0, 42346, 0, 0, 2466, 0),
|
||||
(31863, 0, 42352, 0, 0, 2466, 0),
|
||||
(31863, 0, 42362, 0, 0, 2460, 0),
|
||||
(31863, 0, 42384, 0, 0, 2460, 0),
|
||||
(31863, 0, 42390, 0, 0, 2460, 0),
|
||||
(31863, 0, 42525, 0, 0, 2467, 0),
|
||||
(31863, 0, 42531, 0, 0, 2467, 0),
|
||||
(31863, 0, 42537, 0, 0, 2467, 0),
|
||||
(31863, 0, 42450, 0, 0, 2468, 0),
|
||||
(31863, 0, 42485, 0, 0, 2460, 0),
|
||||
(31863, 0, 42490, 0, 0, 2460, 0),
|
||||
(31863, 0, 42495, 0, 0, 2460, 0),
|
||||
(31863, 0, 42502, 0, 0, 2468, 0),
|
||||
(31863, 0, 42513, 0, 0, 2468, 0),
|
||||
(31863, 0, 42519, 0, 0, 2468, 0),
|
||||
(31863, 0, 42559, 0, 0, 2469, 0),
|
||||
(31863, 0, 42564, 0, 0, 2469, 0),
|
||||
(31863, 0, 42570, 0, 0, 2469, 0),
|
||||
(31863, 0, 42578, 0, 0, 2468, 0),
|
||||
(31863, 0, 42583, 0, 0, 2468, 0),
|
||||
(31863, 0, 42588, 0, 0, 2468, 0),
|
||||
(31863, 0, 42597, 0, 0, 2468, 0),
|
||||
(31863, 0, 42602, 0, 0, 2468, 0),
|
||||
(31863, 0, 42607, 0, 0, 2468, 0),
|
||||
(31863, 0, 42614, 0, 0, 2468, 0),
|
||||
(31863, 0, 42620, 0, 0, 2468, 0),
|
||||
(31863, 0, 42852, 0, 0, 2468, 0),
|
||||
(31863, 0, 44419, 0, 0, 2460, 0),
|
||||
(31863, 0, 44420, 0, 0, 2460, 0),
|
||||
(31863, 0, 45706, 0, 0, 2596, 0),
|
||||
(32407, 0, 40784, 0, 0, 2462, 0),
|
||||
(32407, 0, 40785, 0, 0, 2462, 0),
|
||||
(32407, 0, 40786, 0, 0, 2462, 0),
|
||||
(32407, 0, 40804, 0, 0, 2463, 0),
|
||||
(32407, 0, 40805, 0, 0, 2463, 0),
|
||||
(32407, 0, 40806, 0, 0, 2463, 0),
|
||||
(32407, 0, 40823, 0, 0, 2464, 0),
|
||||
(32407, 0, 40824, 0, 0, 2464, 0),
|
||||
(32407, 0, 40825, 0, 0, 2464, 0),
|
||||
(32407, 0, 40844, 0, 0, 2465, 0),
|
||||
(32407, 0, 40845, 0, 0, 2465, 0),
|
||||
(32407, 0, 40846, 0, 0, 2465, 0),
|
||||
(32407, 0, 40862, 0, 0, 2470, 0),
|
||||
(32407, 0, 40863, 0, 0, 2470, 0),
|
||||
(32407, 0, 40864, 0, 0, 2470, 0),
|
||||
(32407, 0, 40905, 0, 0, 2462, 0),
|
||||
(32407, 0, 40926, 0, 0, 2463, 0),
|
||||
(32407, 0, 40932, 0, 0, 2464, 0),
|
||||
(32407, 0, 40938, 0, 0, 2465, 0),
|
||||
(32407, 0, 40962, 0, 0, 2470, 0),
|
||||
(32407, 0, 40990, 0, 0, 2462, 0),
|
||||
(32407, 0, 40991, 0, 0, 2462, 0),
|
||||
(32407, 0, 41000, 0, 0, 2463, 0),
|
||||
(32407, 0, 41006, 0, 0, 2463, 0),
|
||||
(32407, 0, 41012, 0, 0, 2464, 0),
|
||||
(32407, 0, 41018, 0, 0, 2464, 0),
|
||||
(32407, 0, 41026, 0, 0, 2465, 0),
|
||||
(32407, 0, 41032, 0, 0, 2465, 0),
|
||||
(32407, 0, 41037, 0, 0, 2470, 0),
|
||||
(32407, 0, 41043, 0, 0, 2470, 0),
|
||||
(32407, 0, 41080, 0, 0, 2462, 0),
|
||||
(32407, 0, 41086, 0, 0, 2462, 0),
|
||||
(32407, 0, 41136, 0, 0, 2463, 0),
|
||||
(32407, 0, 41142, 0, 0, 2463, 0),
|
||||
(32407, 0, 41150, 0, 0, 2464, 0),
|
||||
(32407, 0, 41156, 0, 0, 2464, 0),
|
||||
(32407, 0, 41198, 0, 0, 2465, 0),
|
||||
(32407, 0, 41204, 0, 0, 2465, 0),
|
||||
(32407, 0, 41210, 0, 0, 2470, 0),
|
||||
(32407, 0, 41216, 0, 0, 2470, 0),
|
||||
(32407, 0, 41274, 0, 0, 2470, 0),
|
||||
(32407, 0, 41280, 0, 0, 2470, 0),
|
||||
(32407, 0, 41286, 0, 0, 2463, 0),
|
||||
(32407, 0, 41292, 0, 0, 2463, 0),
|
||||
(32407, 0, 41297, 0, 0, 2465, 0),
|
||||
(32407, 0, 41303, 0, 0, 2465, 0),
|
||||
(32407, 0, 41309, 0, 0, 2462, 0),
|
||||
(32407, 0, 41315, 0, 0, 2462, 0),
|
||||
(32407, 0, 41320, 0, 0, 2464, 0),
|
||||
(32407, 0, 41326, 0, 0, 2464, 0),
|
||||
(32407, 0, 41649, 0, 0, 2462, 0),
|
||||
(32407, 0, 41654, 0, 0, 2465, 0),
|
||||
(32407, 0, 41660, 0, 0, 2462, 0),
|
||||
(32407, 0, 41666, 0, 0, 2465, 0),
|
||||
(32407, 0, 41671, 0, 0, 2464, 0),
|
||||
(32407, 0, 41677, 0, 0, 2464, 0),
|
||||
(32407, 0, 41682, 0, 0, 2470, 0),
|
||||
(32407, 0, 41714, 0, 0, 2470, 0),
|
||||
(32407, 0, 41766, 0, 0, 2463, 0),
|
||||
(32407, 0, 41772, 0, 0, 2463, 0),
|
||||
(32407, 0, 41853, 0, 0, 2464, 0),
|
||||
(32407, 0, 41858, 0, 0, 2462, 0),
|
||||
(32407, 0, 41863, 0, 0, 2465, 0),
|
||||
(32407, 0, 41868, 0, 0, 2470, 0),
|
||||
(32407, 0, 41873, 0, 0, 2463, 0),
|
||||
(32407, 0, 41914, 0, 0, 2464, 0),
|
||||
(32407, 0, 41920, 0, 0, 2462, 0),
|
||||
(32407, 0, 41926, 0, 0, 2465, 0),
|
||||
(32407, 0, 41933, 0, 0, 2470, 0),
|
||||
(32407, 0, 41939, 0, 0, 2463, 0),
|
||||
(32407, 0, 41945, 0, 0, 2464, 0),
|
||||
(32407, 0, 41951, 0, 0, 2462, 0),
|
||||
(32407, 0, 41958, 0, 0, 2465, 0),
|
||||
(32407, 0, 41964, 0, 0, 2470, 0),
|
||||
(32407, 0, 41970, 0, 0, 2463, 0),
|
||||
(32407, 0, 41992, 0, 0, 2464, 0),
|
||||
(32407, 0, 41997, 0, 0, 2462, 0),
|
||||
(32407, 0, 42004, 0, 0, 2465, 0),
|
||||
(32407, 0, 42010, 0, 0, 2470, 0),
|
||||
(32407, 0, 42016, 0, 0, 2463, 0),
|
||||
(32407, 0, 42208, 0, 0, 2466, 0),
|
||||
(32407, 0, 42227, 0, 0, 2467, 0),
|
||||
(32407, 0, 42232, 0, 0, 2467, 0),
|
||||
(32407, 0, 42237, 0, 0, 2468, 0),
|
||||
(32407, 0, 42242, 0, 0, 2466, 0),
|
||||
(32407, 0, 42248, 0, 0, 2467, 0),
|
||||
(32407, 0, 42255, 0, 0, 2467, 0),
|
||||
(32407, 0, 42260, 0, 0, 2466, 0),
|
||||
(32407, 0, 42265, 0, 0, 2467, 0),
|
||||
(32407, 0, 42270, 0, 0, 2467, 0),
|
||||
(32407, 0, 42275, 0, 0, 2466, 0),
|
||||
(32407, 0, 42280, 0, 0, 2467, 0),
|
||||
(32407, 0, 42285, 0, 0, 2466, 0),
|
||||
(32407, 0, 42290, 0, 0, 2467, 0),
|
||||
(32407, 0, 42317, 0, 0, 2460, 0),
|
||||
(32407, 0, 42322, 0, 0, 2460, 0),
|
||||
(32407, 0, 42327, 0, 0, 2460, 0),
|
||||
(32407, 0, 42332, 0, 0, 2460, 0),
|
||||
(32407, 0, 42346, 0, 0, 2466, 0),
|
||||
(32407, 0, 42352, 0, 0, 2466, 0),
|
||||
(32407, 0, 42362, 0, 0, 2460, 0),
|
||||
(32407, 0, 42384, 0, 0, 2460, 0),
|
||||
(32407, 0, 42390, 0, 0, 2460, 0),
|
||||
(32407, 0, 42525, 0, 0, 2467, 0),
|
||||
(32407, 0, 42531, 0, 0, 2467, 0),
|
||||
(32407, 0, 42537, 0, 0, 2467, 0),
|
||||
(32407, 0, 42450, 0, 0, 2468, 0),
|
||||
(32407, 0, 42485, 0, 0, 2460, 0),
|
||||
(32407, 0, 42490, 0, 0, 2460, 0),
|
||||
(32407, 0, 42495, 0, 0, 2460, 0),
|
||||
(32407, 0, 42502, 0, 0, 2468, 0),
|
||||
(32407, 0, 42513, 0, 0, 2468, 0),
|
||||
(32407, 0, 42519, 0, 0, 2468, 0),
|
||||
(32407, 0, 42559, 0, 0, 2469, 0),
|
||||
(32407, 0, 42564, 0, 0, 2469, 0),
|
||||
(32407, 0, 42570, 0, 0, 2469, 0),
|
||||
(32407, 0, 42578, 0, 0, 2468, 0),
|
||||
(32407, 0, 42583, 0, 0, 2468, 0),
|
||||
(32407, 0, 42588, 0, 0, 2468, 0),
|
||||
(32407, 0, 42597, 0, 0, 2468, 0),
|
||||
(32407, 0, 42602, 0, 0, 2468, 0),
|
||||
(32407, 0, 42607, 0, 0, 2468, 0),
|
||||
(32407, 0, 42614, 0, 0, 2468, 0),
|
||||
(32407, 0, 42620, 0, 0, 2468, 0),
|
||||
(32407, 0, 42852, 0, 0, 2468, 0),
|
||||
(32407, 0, 44419, 0, 0, 2460, 0),
|
||||
(32407, 0, 44420, 0, 0, 2460, 0),
|
||||
(32407, 0, 45706, 0, 0, 2596, 0),
|
||||
(32405, 0, 40784, 0, 0, 2462, 0),
|
||||
(32405, 0, 40785, 0, 0, 2462, 0),
|
||||
(32405, 0, 40786, 0, 0, 2462, 0),
|
||||
(32405, 0, 40804, 0, 0, 2463, 0),
|
||||
(32405, 0, 40805, 0, 0, 2463, 0),
|
||||
(32405, 0, 40806, 0, 0, 2463, 0),
|
||||
(32405, 0, 40823, 0, 0, 2464, 0),
|
||||
(32405, 0, 40824, 0, 0, 2464, 0),
|
||||
(32405, 0, 40825, 0, 0, 2464, 0),
|
||||
(32405, 0, 40844, 0, 0, 2465, 0),
|
||||
(32405, 0, 40845, 0, 0, 2465, 0),
|
||||
(32405, 0, 40846, 0, 0, 2465, 0),
|
||||
(32405, 0, 40862, 0, 0, 2470, 0),
|
||||
(32405, 0, 40863, 0, 0, 2470, 0),
|
||||
(32405, 0, 40864, 0, 0, 2470, 0),
|
||||
(32405, 0, 40905, 0, 0, 2462, 0),
|
||||
(32405, 0, 40926, 0, 0, 2463, 0),
|
||||
(32405, 0, 40932, 0, 0, 2464, 0),
|
||||
(32405, 0, 40938, 0, 0, 2465, 0),
|
||||
(32405, 0, 40962, 0, 0, 2470, 0),
|
||||
(32405, 0, 40990, 0, 0, 2462, 0),
|
||||
(32405, 0, 40991, 0, 0, 2462, 0),
|
||||
(32405, 0, 41000, 0, 0, 2463, 0),
|
||||
(32405, 0, 41006, 0, 0, 2463, 0),
|
||||
(32405, 0, 41012, 0, 0, 2464, 0),
|
||||
(32405, 0, 41018, 0, 0, 2464, 0),
|
||||
(32405, 0, 41026, 0, 0, 2465, 0),
|
||||
(32405, 0, 41032, 0, 0, 2465, 0),
|
||||
(32405, 0, 41037, 0, 0, 2470, 0),
|
||||
(32405, 0, 41043, 0, 0, 2470, 0),
|
||||
(32405, 0, 41080, 0, 0, 2462, 0),
|
||||
(32405, 0, 41086, 0, 0, 2462, 0),
|
||||
(32405, 0, 41136, 0, 0, 2463, 0),
|
||||
(32405, 0, 41142, 0, 0, 2463, 0),
|
||||
(32405, 0, 41150, 0, 0, 2464, 0),
|
||||
(32405, 0, 41156, 0, 0, 2464, 0),
|
||||
(32405, 0, 41198, 0, 0, 2465, 0),
|
||||
(32405, 0, 41204, 0, 0, 2465, 0),
|
||||
(32405, 0, 41210, 0, 0, 2470, 0),
|
||||
(32405, 0, 41216, 0, 0, 2470, 0),
|
||||
(32405, 0, 41274, 0, 0, 2470, 0),
|
||||
(32405, 0, 41280, 0, 0, 2470, 0),
|
||||
(32405, 0, 41286, 0, 0, 2463, 0),
|
||||
(32405, 0, 41292, 0, 0, 2463, 0),
|
||||
(32405, 0, 41297, 0, 0, 2465, 0),
|
||||
(32405, 0, 41303, 0, 0, 2465, 0),
|
||||
(32405, 0, 41309, 0, 0, 2462, 0),
|
||||
(32405, 0, 41315, 0, 0, 2462, 0),
|
||||
(32405, 0, 41320, 0, 0, 2464, 0),
|
||||
(32405, 0, 41326, 0, 0, 2464, 0),
|
||||
(32405, 0, 41649, 0, 0, 2462, 0),
|
||||
(32405, 0, 41654, 0, 0, 2465, 0),
|
||||
(32405, 0, 41660, 0, 0, 2462, 0),
|
||||
(32405, 0, 41666, 0, 0, 2465, 0),
|
||||
(32405, 0, 41671, 0, 0, 2464, 0),
|
||||
(32405, 0, 41677, 0, 0, 2464, 0),
|
||||
(32405, 0, 41682, 0, 0, 2470, 0),
|
||||
(32405, 0, 41714, 0, 0, 2470, 0),
|
||||
(32405, 0, 41766, 0, 0, 2463, 0),
|
||||
(32405, 0, 41772, 0, 0, 2463, 0),
|
||||
(32405, 0, 41853, 0, 0, 2464, 0),
|
||||
(32405, 0, 41858, 0, 0, 2462, 0),
|
||||
(32405, 0, 41863, 0, 0, 2465, 0),
|
||||
(32405, 0, 41868, 0, 0, 2470, 0),
|
||||
(32405, 0, 41873, 0, 0, 2463, 0),
|
||||
(32405, 0, 41914, 0, 0, 2464, 0),
|
||||
(32405, 0, 41920, 0, 0, 2462, 0),
|
||||
(32405, 0, 41926, 0, 0, 2465, 0),
|
||||
(32405, 0, 41933, 0, 0, 2470, 0),
|
||||
(32405, 0, 41939, 0, 0, 2463, 0),
|
||||
(32405, 0, 41945, 0, 0, 2464, 0),
|
||||
(32405, 0, 41951, 0, 0, 2462, 0),
|
||||
(32405, 0, 41958, 0, 0, 2465, 0),
|
||||
(32405, 0, 41964, 0, 0, 2470, 0),
|
||||
(32405, 0, 41970, 0, 0, 2463, 0),
|
||||
(32405, 0, 41992, 0, 0, 2464, 0),
|
||||
(32405, 0, 41997, 0, 0, 2462, 0),
|
||||
(32405, 0, 42004, 0, 0, 2465, 0),
|
||||
(32405, 0, 42010, 0, 0, 2470, 0),
|
||||
(32405, 0, 42016, 0, 0, 2463, 0),
|
||||
(32405, 0, 42208, 0, 0, 2466, 0),
|
||||
(32405, 0, 42227, 0, 0, 2467, 0),
|
||||
(32405, 0, 42232, 0, 0, 2467, 0),
|
||||
(32405, 0, 42237, 0, 0, 2468, 0),
|
||||
(32405, 0, 42242, 0, 0, 2466, 0),
|
||||
(32405, 0, 42248, 0, 0, 2467, 0),
|
||||
(32405, 0, 42255, 0, 0, 2467, 0),
|
||||
(32405, 0, 42260, 0, 0, 2466, 0),
|
||||
(32405, 0, 42265, 0, 0, 2467, 0),
|
||||
(32405, 0, 42270, 0, 0, 2467, 0),
|
||||
(32405, 0, 42275, 0, 0, 2466, 0),
|
||||
(32405, 0, 42280, 0, 0, 2467, 0),
|
||||
(32405, 0, 42285, 0, 0, 2466, 0),
|
||||
(32405, 0, 42290, 0, 0, 2467, 0),
|
||||
(32405, 0, 42317, 0, 0, 2460, 0),
|
||||
(32405, 0, 42322, 0, 0, 2460, 0),
|
||||
(32405, 0, 42327, 0, 0, 2460, 0),
|
||||
(32405, 0, 42332, 0, 0, 2460, 0),
|
||||
(32405, 0, 42346, 0, 0, 2466, 0),
|
||||
(32405, 0, 42352, 0, 0, 2466, 0),
|
||||
(32405, 0, 42362, 0, 0, 2460, 0),
|
||||
(32405, 0, 42384, 0, 0, 2460, 0),
|
||||
(32405, 0, 42390, 0, 0, 2460, 0),
|
||||
(32405, 0, 42525, 0, 0, 2467, 0),
|
||||
(32405, 0, 42531, 0, 0, 2467, 0),
|
||||
(32405, 0, 42537, 0, 0, 2467, 0),
|
||||
(32405, 0, 42450, 0, 0, 2468, 0),
|
||||
(32405, 0, 42485, 0, 0, 2460, 0),
|
||||
(32405, 0, 42490, 0, 0, 2460, 0),
|
||||
(32405, 0, 42495, 0, 0, 2460, 0),
|
||||
(32405, 0, 42502, 0, 0, 2468, 0),
|
||||
(32405, 0, 42513, 0, 0, 2468, 0),
|
||||
(32405, 0, 42519, 0, 0, 2468, 0),
|
||||
(32405, 0, 42559, 0, 0, 2469, 0),
|
||||
(32405, 0, 42564, 0, 0, 2469, 0),
|
||||
(32405, 0, 42570, 0, 0, 2469, 0),
|
||||
(32405, 0, 42578, 0, 0, 2468, 0),
|
||||
(32405, 0, 42583, 0, 0, 2468, 0),
|
||||
(32405, 0, 42588, 0, 0, 2468, 0),
|
||||
(32405, 0, 42597, 0, 0, 2468, 0),
|
||||
(32405, 0, 42602, 0, 0, 2468, 0),
|
||||
(32405, 0, 42607, 0, 0, 2468, 0),
|
||||
(32405, 0, 42614, 0, 0, 2468, 0),
|
||||
(32405, 0, 42620, 0, 0, 2468, 0),
|
||||
(32405, 0, 42852, 0, 0, 2468, 0),
|
||||
(32405, 0, 44419, 0, 0, 2460, 0),
|
||||
(32405, 0, 44420, 0, 0, 2460, 0),
|
||||
(32405, 0, 45706, 0, 0, 2596, 0);
|
||||
11
data/sql/updates/db_world/2026_01_20_01.sql
Normal file
11
data/sql/updates/db_world/2026_01_20_01.sql
Normal file
@@ -0,0 +1,11 @@
|
||||
-- DB update 2026_01_20_00 -> 2026_01_20_01
|
||||
--
|
||||
UPDATE `smart_scripts` SET `target_param2`=40 WHERE `entryorguid`=7669 AND `source_type`=0 AND `id`=3 AND `link`=0;
|
||||
UPDATE `smart_scripts` SET `target_param2`=40 WHERE `entryorguid`=7670 AND `source_type`=0 AND `id`=3 AND `link`=0;
|
||||
UPDATE `smart_scripts` SET `target_param2`=40 WHERE `entryorguid`=7668 AND `source_type`=0 AND `id`=3 AND `link`=0;
|
||||
UPDATE `smart_scripts` SET `target_param2`=40 WHERE `entryorguid`=7671 AND `source_type`=0 AND `id`=3 AND `link`=0;
|
||||
|
||||
UPDATE `smart_scripts` SET `target_param2`=40 WHERE `entryorguid`=141812 AND `source_type`=1 AND `id`=0 AND `link`=0;
|
||||
UPDATE `smart_scripts` SET `target_param2`=40 WHERE `entryorguid`=141857 AND `source_type`=1 AND `id`=0 AND `link`=0;
|
||||
UPDATE `smart_scripts` SET `target_param2`=40 WHERE `entryorguid`=141858 AND `source_type`=1 AND `id`=0 AND `link`=0;
|
||||
UPDATE `smart_scripts` SET `target_param2`=40 WHERE `entryorguid`=141859 AND `source_type`=1 AND `id`=0 AND `link`=0;
|
||||
6
data/sql/updates/db_world/2026_01_20_02.sql
Normal file
6
data/sql/updates/db_world/2026_01_20_02.sql
Normal file
@@ -0,0 +1,6 @@
|
||||
-- DB update 2026_01_20_01 -> 2026_01_20_02
|
||||
--
|
||||
DELETE FROM `smart_scripts` WHERE (`entryorguid` = 6492) AND (`source_type` = 0) AND (`id` IN (17, 18));
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(6492, 0, 17, 18, 7, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Rift Spawn - On Evade - Say Line 1'),
|
||||
(6492, 0, 18, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 1200, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Rift Spawn - On Evade - Despawn In 1200 ms');
|
||||
48
data/sql/updates/db_world/2026_01_20_03.sql
Normal file
48
data/sql/updates/db_world/2026_01_20_03.sql
Normal file
@@ -0,0 +1,48 @@
|
||||
-- DB update 2026_01_20_02 -> 2026_01_20_03
|
||||
--
|
||||
DELETE FROM `linked_respawn` WHERE `linkedGuid` = 126663 AND `linkType` = 0;
|
||||
INSERT INTO `linked_respawn` (`guid`, `linkedGuid`, `linkType`) VALUES
|
||||
(126619, 126663, 0),
|
||||
(126620, 126663, 0),
|
||||
(126621, 126663, 0),
|
||||
(126622, 126663, 0),
|
||||
(126623, 126663, 0),
|
||||
(126624, 126663, 0),
|
||||
(126625, 126663, 0),
|
||||
(126626, 126663, 0),
|
||||
(126627, 126663, 0),
|
||||
(126628, 126663, 0),
|
||||
(126629, 126663, 0),
|
||||
(126630, 126663, 0),
|
||||
(126631, 126663, 0),
|
||||
(126632, 126663, 0),
|
||||
(126633, 126663, 0),
|
||||
(126634, 126663, 0),
|
||||
(126635, 126663, 0),
|
||||
(126636, 126663, 0),
|
||||
(126637, 126663, 0),
|
||||
(126638, 126663, 0),
|
||||
(126639, 126663, 0),
|
||||
(126640, 126663, 0),
|
||||
(126641, 126663, 0),
|
||||
(126642, 126663, 0),
|
||||
(126643, 126663, 0),
|
||||
(126644, 126663, 0),
|
||||
(126645, 126663, 0),
|
||||
(126646, 126663, 0),
|
||||
(126647, 126663, 0),
|
||||
(126648, 126663, 0),
|
||||
(126649, 126663, 0),
|
||||
(126650, 126663, 0),
|
||||
(126651, 126663, 0),
|
||||
(126652, 126663, 0),
|
||||
(126653, 126663, 0),
|
||||
(126654, 126663, 0),
|
||||
(126655, 126663, 0),
|
||||
(126656, 126663, 0),
|
||||
(126657, 126663, 0),
|
||||
(126658, 126663, 0),
|
||||
(126659, 126663, 0),
|
||||
(126660, 126663, 0),
|
||||
(126661, 126663, 0),
|
||||
(126662, 126663, 0);
|
||||
24
data/sql/updates/db_world/2026_01_21_00.sql
Normal file
24
data/sql/updates/db_world/2026_01_21_00.sql
Normal file
@@ -0,0 +1,24 @@
|
||||
-- DB update 2026_01_20_03 -> 2026_01_21_00
|
||||
--
|
||||
UPDATE `creature_loot_template` SET `Chance` = 100 WHERE `Entry` IN (24664, 24857) AND `Item` = 35008 AND `Reference` = 35008;
|
||||
|
||||
DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 10) AND (`SourceGroup` = 35008) AND (`ConditionTypeOrReference` = 7) AND (`ConditionValue2` = 1);
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(10, 35008, 35304, 0, 0, 7, 0, 755, 1, 0, 0, 0, 0, '', 'Player must have Jewelcrafting to loot BoP version of this Design'),
|
||||
(10, 35008, 35305, 0, 0, 7, 0, 755, 1, 0, 0, 0, 0, '', 'Player must have Jewelcrafting to loot BoP version of this Design'),
|
||||
(10, 35008, 35306, 0, 0, 7, 0, 755, 1, 0, 0, 0, 0, '', 'Player must have Jewelcrafting to loot BoP version of this Design'),
|
||||
(10, 35008, 35307, 0, 0, 7, 0, 755, 1, 0, 0, 0, 0, '', 'Player must have Jewelcrafting to loot BoP version of this Design'),
|
||||
(10, 35008, 35297, 0, 0, 7, 0, 333, 1, 0, 0, 0, 0, '', 'Player must have Enchanting to loot BoP version of this Formula'),
|
||||
(10, 35008, 35298, 0, 0, 7, 0, 333, 1, 0, 0, 0, 0, '', 'Player must have Enchanting to loot BoP version of this Formula'),
|
||||
(10, 35008, 35299, 0, 0, 7, 0, 333, 1, 0, 0, 0, 0, '', 'Player must have Enchanting to loot BoP version of this Formula'),
|
||||
(10, 35008, 35300, 0, 0, 7, 0, 165, 1, 0, 0, 0, 0, '', 'Player must have Leatherworking to loot BoP version of this Pattern'),
|
||||
(10, 35008, 35301, 0, 0, 7, 0, 165, 1, 0, 0, 0, 0, '', 'Player must have Leatherworking to loot BoP version of this Pattern'),
|
||||
(10, 35008, 35302, 0, 0, 7, 0, 165, 1, 0, 0, 0, 0, '', 'Player must have Leatherworking to loot BoP version of this Pattern'),
|
||||
(10, 35008, 35303, 0, 0, 7, 0, 165, 1, 0, 0, 0, 0, '', 'Player must have Leatherworking to loot BoP version of this Pattern'),
|
||||
(10, 35008, 35308, 0, 0, 7, 0, 197, 1, 0, 0, 0, 0, '', 'Player must have Tailoring to loot BoP version of this Pattern'),
|
||||
(10, 35008, 35309, 0, 0, 7, 0, 197, 1, 0, 0, 0, 0, '', 'Player must have Tailoring to loot BoP version of this Pattern'),
|
||||
(10, 35008, 35296, 0, 0, 7, 0, 164, 1, 0, 0, 0, 0, '', 'Player must have Blacksmithing to loot BoP version of these Plans'),
|
||||
(10, 35008, 35294, 0, 0, 7, 0, 171, 1, 0, 0, 0, 0, '', 'Player must have Alchemy to loot BoP version of this Recipe'),
|
||||
(10, 35008, 35295, 0, 0, 7, 0, 171, 1, 0, 0, 0, 0, '', 'Player must have Alchemy to loot BoP version of this Recipe'),
|
||||
(10, 35008, 35310, 0, 0, 7, 0, 202, 1, 0, 0, 0, 0, '', 'Player must have Engineering to loot BoP version of this Schematic'),
|
||||
(10, 35008, 35311, 0, 0, 7, 0, 202, 1, 0, 0, 0, 0, '', 'Player must have Engineering to loot BoP version of this Schematic');
|
||||
99
data/sql/updates/db_world/2026_01_21_01.sql
Normal file
99
data/sql/updates/db_world/2026_01_21_01.sql
Normal file
@@ -0,0 +1,99 @@
|
||||
-- DB update 2026_01_21_00 -> 2026_01_21_01
|
||||
-- Just missing from the mob, as it should have one pair of pants for each type (cloth, leather, etc)
|
||||
DELETE FROM `creature_loot_template` WHERE (`Entry` = 18681) AND (`Item` IN (31246));
|
||||
INSERT INTO `creature_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES
|
||||
(18681, 31246, 0, 0, 0, 1, 1, 1, 1, 'Coilfang Emissary - Nagahide Leggings');
|
||||
|
||||
-- Gruffscale Leggings: Appears to have been added in WotLK at some point, replacing an older "Boarhide Leggings" lvl 8 green. Due to that drop rates in Wowhead may be skewed towards lower than intended
|
||||
DELETE FROM `creature_loot_template` WHERE (`Entry` = 6583) AND (`Item` IN (45052));
|
||||
INSERT INTO `creature_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES
|
||||
(6583, 45052, 0, 100, 0, 1, 0, 1, 1, 'Gruff - Gruffscale Leggings');
|
||||
|
||||
-- Dustbringer: Super rare fishing loot item (novelty blue-quality drop)
|
||||
DELETE FROM `gameobject_loot_template` WHERE `Entry` IN (25662,25663,25664,25665,25668,25669,25670,25671,25673,25674) AND `Item` = 44505;
|
||||
INSERT INTO `gameobject_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES
|
||||
(25662, 44505, 0, 0.01, 0, 1, 0, 1, 1, 'Glacial Salmon School - Dustbringer'),
|
||||
(25663, 44505, 0, 0.01, 0, 1, 0, 1, 1, 'Fangtooth Herring School - Dustbringer'),
|
||||
(25664, 44505, 0, 0.01, 0, 1, 0, 1, 1, 'Dragonfin Angelfish School - Dustbringer'),
|
||||
(25665, 44505, 0, 0.01, 0, 1, 0, 1, 1, 'Musselback Sculpin School - Dustbringer'),
|
||||
(25668, 44505, 0, 0.01, 0, 1, 0, 1, 1, 'Imperial Manta Ray School - Dustbringer'),
|
||||
(25669, 44505, 0, 0.01, 0, 1, 0, 1, 1, 'Borean Man O\' War School - Dustbringer'),
|
||||
(25670, 44505, 0, 0.01, 0, 1, 0, 1, 1, 'Moonglow Cuttlefish School - Dustbringer'),
|
||||
(25671, 44505, 0, 0.01, 0, 1, 0, 1, 1, 'Deep Sea Monsterbelly School - Dustbringer'),
|
||||
(25673, 44505, 0, 0.01, 0, 1, 0, 1, 1, 'Nettlefish School - Dustbringer'),
|
||||
(25674, 44505, 0, 0.01, 0, 1, 0, 1, 1, 'Glassfin Minnow School - Dustbringer');
|
||||
|
||||
-- Runed Ring: Apparently these two items are rare Zul'Farrak zone BoEs, but their item level is higher than others of its type, so the only creatures that can drop them are actually the final bosses of the dungeon
|
||||
-- Ensure Spellshock Leggings and Runed Ring drop from the final Zul'Farrak bosses in a separate shared loot group
|
||||
DELETE FROM `creature_loot_template` WHERE (`Entry` IN (8127, 7267)) AND (`Item` IN (9484, 862));
|
||||
INSERT INTO `creature_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES
|
||||
(8127, 9484, 0, 0.25, 0, 1, 2, 1, 1, 'Antu\'Sul - Spellshock Leggings'),
|
||||
(8127, 862, 0, 0.25, 0, 1, 2, 1, 1, 'Antu\'sul - Runed Ring'),
|
||||
(7267, 9484, 0, 0.25, 0, 1, 2, 1, 1, 'Chief Ukorz Sandscalp - Spellshock Leggings'),
|
||||
(7267, 862, 0, 0.25, 0, 1, 2, 1, 1, 'Chief Ukorz Sandscalp - Runed Ring');
|
||||
|
||||
-- These seem to be rare drops from Vanilla endgame dungeons. It's inconclusive if they were removed from the game at some point, and if so, why
|
||||
DELETE FROM `creature_loot_template` WHERE (`Entry` = 9237) AND (`Item` IN (13175));
|
||||
INSERT INTO `creature_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES
|
||||
(9237, 13175, 0, 1, 0, 1, 0, 1, 1, 'War Master Voone - Voone\'s Twitchbow');
|
||||
DELETE FROM `creature_loot_template` WHERE (`Entry` = 9568) AND (`Item` IN (13148));
|
||||
INSERT INTO `creature_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES
|
||||
(9568, 13148, 0, 1, 0, 1, 0, 1, 1, 'Overlord Wyrmthalak - Chillpike');
|
||||
DELETE FROM `creature_loot_template` WHERE (`Entry` = 10429) AND (`Item` IN (12588));
|
||||
INSERT INTO `creature_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES
|
||||
(10429, 12588, 0, 1, 0, 1, 0, 1, 1, 'Warchief Rend Blackhand - Bonespike Shoulder');
|
||||
DELETE FROM `creature_loot_template` WHERE (`Entry` = 1853) AND (`Item` IN (13950));
|
||||
INSERT INTO `creature_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES
|
||||
(1853, 13950, 0, 1, 0, 1, 0, 1, 1, 'Darkmaster Gandling - Detention Strap');
|
||||
DELETE FROM `creature_loot_template` WHERE (`Entry` = 10503) AND (`Item` IN (14543));
|
||||
INSERT INTO `creature_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES
|
||||
(10503, 14543, 0, 1, 0, 1, 0, 1, 1, 'Jandice Barov - Darkshade Gloves');
|
||||
DELETE FROM `creature_loot_template` WHERE (`Entry` = 9568) AND (`Item` IN (13164));
|
||||
INSERT INTO `creature_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES
|
||||
(9568, 13164, 0, 1, 0, 1, 0, 1, 1, 'Overlord Wyrmthalak - Heart of the Scale');
|
||||
|
||||
-- Sack of Spoils and Chest of Spoils (AQ event reward containers)
|
||||
DELETE FROM `item_loot_template` WHERE (`Entry` = 20601) AND (`Item` IN (20696, 20698));
|
||||
INSERT INTO `item_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES
|
||||
(20601, 20696, 0, 5, 0, 1, 1, 1, 1, 'Sack of Spoils - Crystal Spiked Maul'),
|
||||
(20601, 20698, 0, 1, 0, 1, 1, 1, 1, 'Sack of Spoils - Elemental Attuned Blade');
|
||||
DELETE FROM `item_loot_template` WHERE (`Entry` = 20602) AND (`Item` IN (20722, 20721, 20720));
|
||||
INSERT INTO `item_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES
|
||||
(20602, 20722, 0, 5, 0, 1, 1, 1, 1, 'Chest of Spoils - Crystal Slugthrower'),
|
||||
(20602, 20721, 0, 5, 0, 1, 1, 1, 1, 'Chest of Spoils - Band of the Cultist'),
|
||||
(20602, 20720, 0, 5, 0, 1, 1, 1, 1, 'Chest of Spoils - Dark Whisper Blade');
|
||||
|
||||
-- Missing from Jin'do Loot Table (same ilvl as the rest)
|
||||
DELETE FROM `reference_loot_template` WHERE (`Entry` = 34089) AND (`Item` IN (19875));
|
||||
INSERT INTO `reference_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES
|
||||
(34089, 19875, 0, 0, 0, 1, 1, 1, 1, 'Bloodstained Coif');
|
||||
|
||||
-- Rare drop from Phalanx
|
||||
DELETE FROM `creature_loot_template` WHERE (`Entry` = 9502) AND (`Item` IN (11743));
|
||||
INSERT INTO `creature_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES
|
||||
(9502, 11743, 0, 2, 0, 1, 1, 1, 1, 'Phalanx - Rockfist');
|
||||
|
||||
-- Claimed to still drop during 3.3.3
|
||||
DELETE FROM `creature_loot_template` WHERE (`Entry` = 9257) AND (`Item` IN (9214));
|
||||
INSERT INTO `creature_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES
|
||||
(9257, 9214, 0, 7, 0, 1, 0, 1, 1, 'Scarshield Warlock - Grimoire of Inferno');
|
||||
|
||||
-- Alterac Valley Bosses
|
||||
DELETE FROM `creature_loot_template` WHERE (`Entry` IN (13256, 13419)) AND (`Item` IN (19105, 19109, 19110, 19111, 19112, 19113));
|
||||
DELETE FROM `reference_loot_template` WHERE (`Entry` = 13256);
|
||||
INSERT INTO `reference_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES
|
||||
(13256, 19105, 0, 0, 0, 1, 1, 1, 1, 'Alterac Valley Summon Boss - Frost Runed Headdress'),
|
||||
(13256, 19109, 0, 0, 0, 1, 1, 1, 1, 'Alterac Valley Summon Boss - Deep Rooted Ring'),
|
||||
(13256, 19110, 0, 0, 0, 1, 1, 1, 1, 'Alterac Valley Summon Boss - Cold Forged Blade'),
|
||||
(13256, 19111, 0, 0, 0, 1, 1, 1, 1, 'Alterac Valley Summon Boss - Winteraxe Epaulets'),
|
||||
(13256, 19112, 0, 0, 0, 1, 1, 1, 1, 'Alterac Valley Summon Boss - Frozen Steel Vambraces'),
|
||||
(13256, 19113, 0, 0, 0, 1, 1, 1, 1, 'Alterac Valley Summon Boss - Yeti Hide Bracers');
|
||||
DELETE FROM `creature_loot_template` WHERE (`Entry` IN (13256, 13419)) AND (`Item` IN (13256));
|
||||
INSERT INTO `creature_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES
|
||||
(13256, 13256, 13256, 100, 0, 1, 0, 4, 4, 'Alterac Summon Boss Loot Table'),
|
||||
(13419, 13256, 13256, 100, 0, 1, 0, 4, 4, 'Alterac Summon Boss Loot Table');
|
||||
|
||||
-- AQ40 Trash Epic
|
||||
DELETE FROM `creature_loot_template` WHERE (`Entry` = 15312) AND (`Item` IN (21890));
|
||||
INSERT INTO `creature_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES
|
||||
(15312, 21890, 0, 0.2, 0, 1, 0, 1, 1, 'Obsidian Nullifier - Gloves of the Fallen Prophet');
|
||||
22
data/sql/updates/db_world/2026_01_21_02.sql
Normal file
22
data/sql/updates/db_world/2026_01_21_02.sql
Normal file
@@ -0,0 +1,22 @@
|
||||
-- DB update 2026_01_21_01 -> 2026_01_21_02
|
||||
--
|
||||
SET @REPPORTALKEEPER := 30;
|
||||
SET @REPREGULAR := 18;
|
||||
SET @REPBOSS := 275;
|
||||
|
||||
DELETE FROM `creature_onkill_reputation` WHERE `creature_id` IN (31503, 31501, 31493, 31490, 31513, 32191, 31486, 31507, 31509, 31510, 31511, 31512, 31508, 31506);
|
||||
INSERT INTO `creature_onkill_reputation` (`creature_id`,`RewOnKillRepFaction1`,`RewOnKillRepFaction2`,`MaxStanding1`,`IsTeamAward1`,`RewOnKillRepValue1`,`MaxStanding2`,`IsTeamAward2`,`RewOnKillRepValue2`,`TeamDependent`) VALUES
|
||||
(31503,1037,1052,7,0,@REPPORTALKEEPER,7,0,@REPPORTALKEEPER,1), -- Portal Keeper
|
||||
(31501,1037,1052,7,0,@REPPORTALKEEPER,7,0,@REPPORTALKEEPER,1), -- Portal Guardian
|
||||
(31493,1037,1052,7,0,@REPREGULAR,7,0,@REPREGULAR,1), -- Azure Sorceror
|
||||
(31490,1037,1052,7,0,@REPREGULAR,7,0,@REPREGULAR,1), -- Azure Raider
|
||||
(31513,1037,1052,7,0,@REPREGULAR,7,0,@REPREGULAR,1), -- Erekem Guard
|
||||
(32191,1037,1052,7,0,@REPREGULAR,7,0,@REPREGULAR,1), -- Azure Stalker
|
||||
(31486,1037,1052,7,0,@REPREGULAR,7,0,@REPREGULAR,1), -- Azure Captain
|
||||
(31507,1037,1052,7,0,@REPBOSS,7,0,@REPBOSS,1), -- Erekem
|
||||
(31509,1037,1052,7,0,@REPBOSS,7,0,@REPBOSS,1), -- Lavanthor
|
||||
(31510,1037,1052,7,0,@REPBOSS,7,0,@REPBOSS,1), -- Moragg
|
||||
(31511,1037,1052,7,0,@REPBOSS,7,0,@REPBOSS,1), -- Zevoxx
|
||||
(31512,1037,1052,7,0,@REPBOSS,7,0,@REPBOSS,1), -- Zuramat
|
||||
(31508,1037,1052,7,0,@REPBOSS,7,0,@REPBOSS,1), -- Ichoron
|
||||
(31506,1037,1052,7,0,@REPBOSS,7,0,@REPBOSS,1); -- Cyanigosa
|
||||
5
data/sql/updates/db_world/2026_01_22_00.sql
Normal file
5
data/sql/updates/db_world/2026_01_22_00.sql
Normal file
@@ -0,0 +1,5 @@
|
||||
-- DB update 2026_01_21_02 -> 2026_01_22_00
|
||||
--
|
||||
DELETE FROM `spell_script_names` WHERE `spell_id` = 28375;
|
||||
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
|
||||
(28375, 'spell_gluth_decimate_damage');
|
||||
27
data/sql/updates/db_world/2026_01_22_01.sql
Normal file
27
data/sql/updates/db_world/2026_01_22_01.sql
Normal file
@@ -0,0 +1,27 @@
|
||||
-- DB update 2026_01_22_00 -> 2026_01_22_01
|
||||
-- PrevQuestID from 12822 to 18221, A Flawless Plan requires Opening the Backdoor, not Know No Fear
|
||||
UPDATE `quest_template_addon` SET `PrevQuestID` = 12821 WHERE `ID` = 12823;
|
||||
|
||||
-- Remove phase shifts in Garm and Garm's Rise for Know No Fear
|
||||
DELETE FROM `spell_area`
|
||||
WHERE `Quest_start` = 12822
|
||||
AND `quest_start_status` = 74;
|
||||
|
||||
-- Add phase shift in Garm and Garm's Rise after turning in Opening the Backdoor
|
||||
DELETE FROM `spell_area` WHERE `Quest_start` = 12821 AND `Spell` = 54635;
|
||||
INSERT INTO `spell_area`
|
||||
(
|
||||
`Spell`,
|
||||
`Area`,
|
||||
`Quest_start`,
|
||||
`Quest_end`,
|
||||
`Aura_spell`,
|
||||
`Racemask`,
|
||||
`Gender`,
|
||||
`Autocast`,
|
||||
`Quest_start_status`,
|
||||
`Quest_end_status`
|
||||
)
|
||||
VALUES
|
||||
(54635, 4421, 12821, 0, 0, 0, 2, 1, 64, 0),
|
||||
(54635, 4461, 12821, 0, 0, 0, 2, 1, 64, 0);
|
||||
7
data/sql/updates/db_world/2026_01_22_02.sql
Normal file
7
data/sql/updates/db_world/2026_01_22_02.sql
Normal file
@@ -0,0 +1,7 @@
|
||||
-- DB update 2026_01_22_01 -> 2026_01_22_02
|
||||
--
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` = 28581 AND `source_type` = 0 AND `id` IN (0, 1, 2);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(28581, 0, 0, 0, 0, 0, 100, 2, 0, 9000, 11000, 14000, 0, 0, 11, 52778, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Stormforged Tactician - In Combat - Cast \'Welding Beam\' (Normal Dungeon)'),
|
||||
(28581, 0, 1, 0, 0, 0, 100, 4, 0, 9000, 11000, 14000, 0, 0, 11, 59166, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Stormforged Tactician - In Combat - Cast \'Welding Beam\' (Heroic Dungeon)'),
|
||||
(28581, 0, 2, 0, 2, 0, 100, 6, 0, 70, 15000, 27000, 0, 0, 11, 59085, 32, 0, 0, 0, 0, 5, 40, 0, 0, 0, 0, 0, 0, 0, 'Stormforged Tactician - Between 0-70% Health - Cast \'Arc Weld\' (Dungeon)');
|
||||
8
data/sql/updates/db_world/2026_01_22_03.sql
Normal file
8
data/sql/updates/db_world/2026_01_22_03.sql
Normal file
@@ -0,0 +1,8 @@
|
||||
-- DB update 2026_01_22_02 -> 2026_01_22_03
|
||||
--
|
||||
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 29134;
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE (`entryorguid` = 29134) AND (`source_type` = 0) AND (`id` IN (0, 1));
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(29134, 0, 0, 0, 54, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 180000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Brown Rabbit - On Just Summoned - Despawn In 180000 ms'),
|
||||
(29134, 0, 1, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 53273, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Brown Rabbit - On Death - Cast \'Decoy Explosive\'');
|
||||
60
deps/SFMT/CMakeLists.txt
vendored
60
deps/SFMT/CMakeLists.txt
vendored
@@ -40,39 +40,39 @@ target_include_directories(sfmt
|
||||
target_compile_definitions(sfmt PUBLIC -DSFMT_MEXP=19937)
|
||||
|
||||
# enable SIMD instructions if available
|
||||
include(CheckCCompilerFlag)
|
||||
if (CMAKE_SYSTEM_PROCESSOR MATCHES "(powerpc|ppc)64|(powerpc|ppc)64le")
|
||||
check_c_compiler_flag("-maltivec" HAVE_ALTIVEC)
|
||||
if (HAVE_ALTIVEC)
|
||||
target_compile_options(sfmt PRIVATE -mabi=altivec -maltivec)
|
||||
target_compile_definitions(sfmt PUBLIC -DHAVE_ALTIVEC)
|
||||
else ()
|
||||
message(WARNING "Altivec not available - performance will be poor!")
|
||||
endif ()
|
||||
elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "arm|ARM")
|
||||
check_c_compiler_flag(-mfpu=neon HAVE_NEON)
|
||||
if (HAVE_NEON)
|
||||
target_compile_options(sfmt PRIVATE -mfpu=neon -ftree-vectorize)
|
||||
target_compile_definitions(sfmt PUBLIC -DHAVE_NEON)
|
||||
else ()
|
||||
message(WARNING "Neon not available - performance will be poor!")
|
||||
endif ()
|
||||
elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|AARCH64")
|
||||
check_c_compiler_flag(-march=armv8-a+simd HAVE_NEON)
|
||||
if (HAVE_NEON)
|
||||
target_compile_options(sfmt PRIVATE -ftree-vectorize)
|
||||
target_compile_definitions(sfmt PUBLIC -DHAVE_NEON)
|
||||
else ()
|
||||
message(WARNING "Neon not available - performance will be poor!")
|
||||
endif ()
|
||||
elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "i686|amd64|x86_64|AMD64")
|
||||
#SSE2 is always available
|
||||
set(HAVE_SSE2 1)
|
||||
include(CheckCXXCompilerFlag)
|
||||
|
||||
if (NOT CMAKE_C_COMPILER_ID MATCHES "MSVC")
|
||||
# MSVC does not have any flags to check
|
||||
if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
|
||||
if (ACORE_SYSTEM_PROCESSOR MATCHES "^arm")
|
||||
set(HAVE_NEON 1)
|
||||
else ()
|
||||
set(HAVE_SSE2 1)
|
||||
endif ()
|
||||
else ()
|
||||
if (ACORE_SYSTEM_PROCESSOR STREQUAL "arm")
|
||||
check_cxx_compiler_flag(-mfpu=neon HAVE_NEON)
|
||||
if (HAVE_NEON)
|
||||
target_compile_options(sfmt PRIVATE -mfpu=neon -ftree-vectorize)
|
||||
endif()
|
||||
elseif (ACORE_SYSTEM_PROCESSOR STREQUAL "arm64")
|
||||
check_cxx_compiler_flag(-march=armv8-a+simd HAVE_NEON)
|
||||
if (HAVE_NEON)
|
||||
target_compile_options(sfmt PRIVATE -ftree-vectorize)
|
||||
endif ()
|
||||
elseif (ACORE_SYSTEM_PROCESSOR MATCHES "x86|amd64")
|
||||
#SSE2 is always available
|
||||
set(HAVE_SSE2 1)
|
||||
target_compile_options(sfmt PRIVATE -msse2)
|
||||
endif ()
|
||||
target_compile_definitions(sfmt PUBLIC -DHAVE_SSE2)
|
||||
endif ()
|
||||
|
||||
if (HAVE_NEON)
|
||||
target_compile_definitions(sfmt PUBLIC HAVE_NEON)
|
||||
endif ()
|
||||
|
||||
if (HAVE_SSE2)
|
||||
target_compile_definitions(sfmt PUBLIC HAVE_SSE2)
|
||||
endif ()
|
||||
|
||||
set_target_properties(sfmt PROPERTIES LINKER_LANGUAGE CXX)
|
||||
|
||||
8
deps/argon2/CMakeLists.txt
vendored
8
deps/argon2/CMakeLists.txt
vendored
@@ -12,12 +12,12 @@
|
||||
|
||||
file(GLOB_RECURSE sources *.c)
|
||||
|
||||
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
|
||||
list(REMOVE_ITEM sources
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/argon2/opt.c)
|
||||
else()
|
||||
if(ACORE_SYSTEM_PROCESSOR MATCHES "x86|amd64")
|
||||
list(REMOVE_ITEM sources
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/argon2/ref.c)
|
||||
else()
|
||||
list(REMOVE_ITEM sources
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/argon2/opt.c)
|
||||
endif()
|
||||
|
||||
add_library(argon2 STATIC
|
||||
|
||||
2
deps/boost/CMakeLists.txt
vendored
2
deps/boost/CMakeLists.txt
vendored
@@ -32,7 +32,7 @@ else()
|
||||
endif()
|
||||
|
||||
# Boost.System is header-only since 1.69; do not require it explicitly.
|
||||
find_package(Boost ${BOOST_REQUIRED_VERSION} REQUIRED COMPONENTS filesystem program_options iostreams regex)
|
||||
find_package(Boost ${BOOST_REQUIRED_VERSION} REQUIRED COMPONENTS filesystem program_options iostreams regex thread)
|
||||
|
||||
if(NOT Boost_FOUND)
|
||||
if(NOT DEFINED ENV{Boost_ROOT} AND NOT DEFINED Boost_DIR AND NOT DEFINED BOOST_ROOT AND NOT DEFINED BOOSTROOT)
|
||||
|
||||
2
deps/jemalloc/CMakeLists.txt
vendored
2
deps/jemalloc/CMakeLists.txt
vendored
@@ -30,7 +30,7 @@ if(CMAKE_SYSTEM_NAME MATCHES "Linux" AND NOT NOJEM)
|
||||
set(JEM_MADFREE_DEF "#undef")
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
|
||||
if(ACORE_SYSTEM_PROCESSOR MATCHES "arm")
|
||||
set(JEM_CPU_SPINWAIT "")
|
||||
set(JEM_HAVE_CPU_SPINWAIT 0)
|
||||
else()
|
||||
|
||||
@@ -414,7 +414,7 @@ minimal-dynamic - builds commands and spells dynamically. Now don't support
|
||||
- Example loader script for modules:
|
||||
```cpp
|
||||
/*
|
||||
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>
|
||||
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE
|
||||
*/
|
||||
|
||||
// From SC
|
||||
|
||||
@@ -75,6 +75,7 @@ services:
|
||||
AC_LOGIN_DATABASE_INFO: "ac-database;3306;root;${DOCKER_DB_ROOT_PASSWORD:-password};acore_auth"
|
||||
AC_WORLD_DATABASE_INFO: "ac-database;3306;root;${DOCKER_DB_ROOT_PASSWORD:-password};acore_world"
|
||||
AC_CHARACTER_DATABASE_INFO: "ac-database;3306;root;${DOCKER_DB_ROOT_PASSWORD:-password};acore_characters"
|
||||
AC_PLAYERBOTS_DATABASE_INFO: "ac-database;3306;root;${DOCKER_DB_ROOT_PASSWORD:-password};acore_playerbots"
|
||||
ports:
|
||||
- ${DOCKER_WORLD_EXTERNAL_PORT:-8085}:8085
|
||||
- ${DOCKER_SOAP_EXTERNAL_PORT:-7878}:7878
|
||||
|
||||
@@ -37,6 +37,7 @@ set("AC_MODULE_LIST" "")
|
||||
set("AC_SCRIPTS_LIST" "")
|
||||
set(MOD_ALE_FOUND 0)
|
||||
set(MOD_ALE_PATH "")
|
||||
set(MOD_PLAYERBOTS_FOUND 0)
|
||||
|
||||
foreach(include ${AC_ADD_SCRIPTS_INCLUDE})
|
||||
set("AC_SCRIPTS_INCLUDES" "#include \"${include}\"\n${AC_SCRIPTS_INCLUDES}")
|
||||
@@ -81,6 +82,16 @@ foreach(SOURCE_MODULE ${MODULES_MODULE_LIST})
|
||||
ConfigureALEModule(${SOURCE_MODULE})
|
||||
endif()
|
||||
|
||||
if (SOURCE_MODULE MATCHES "mod-playerbots")
|
||||
set(MOD_PLAYERBOTS_FOUND 1)
|
||||
target_compile_options(database
|
||||
PRIVATE
|
||||
-DMOD_PLAYERBOTS)
|
||||
target_compile_options(game-interface
|
||||
INTERFACE
|
||||
-DMOD_PLAYERBOTS)
|
||||
endif()
|
||||
|
||||
# Build the Graph values
|
||||
if(${MODULE_MODULE_VARIABLE} MATCHES "dynamic")
|
||||
GetProjectNameOfModuleName(${SOURCE_MODULE} MODULE_SOURCE_PROJECT_NAME)
|
||||
@@ -289,6 +300,7 @@ endif()
|
||||
target_link_libraries(modules
|
||||
PRIVATE
|
||||
acore-core-interface
|
||||
mysql
|
||||
PUBLIC
|
||||
game-interface)
|
||||
|
||||
@@ -363,6 +375,12 @@ target_compile_options(modules
|
||||
INTERFACE
|
||||
-DCONFIG_FILE_LIST=$<1:"${CONFIG_LIST}">)
|
||||
|
||||
if (MOD_PLAYERBOTS_FOUND)
|
||||
target_compile_options(modules
|
||||
PRIVATE
|
||||
-DMOD_PLAYERBOTS)
|
||||
endif()
|
||||
|
||||
if (MOD_ALE_FOUND)
|
||||
if (APPLE)
|
||||
target_compile_definitions(modules
|
||||
|
||||
@@ -31,11 +31,14 @@ if(PLATFORM EQUAL 32)
|
||||
-mfpmath=sse)
|
||||
endif()
|
||||
|
||||
target_compile_definitions(acore-compile-option-interface
|
||||
INTERFACE
|
||||
-DHAVE_SSE2
|
||||
-D__SSE2__)
|
||||
message(STATUS "GCC: SFMT enabled, SSE2 flags forced")
|
||||
if(ACORE_SYSTEM_PROCESSOR MATCHES "x86|amd64")
|
||||
target_compile_definitions(acore-compile-option-interface
|
||||
INTERFACE
|
||||
-DHAVE_SSE2
|
||||
-D__SSE2__)
|
||||
|
||||
message(STATUS "GCC: SFMT enabled, SSE2 flags forced")
|
||||
endif()
|
||||
|
||||
if( WITH_WARNINGS )
|
||||
target_compile_options(acore-warning-interface
|
||||
|
||||
@@ -21,6 +21,30 @@ endif()
|
||||
|
||||
include("${CMAKE_SOURCE_DIR}/src/cmake/platform/settings.cmake")
|
||||
|
||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64|x86_64|AMD64")
|
||||
set(ACORE_SYSTEM_PROCESSOR "amd64")
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm|ARM|aarch|AARCH)64$")
|
||||
set(ACORE_SYSTEM_PROCESSOR "arm64")
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm|ARM|aarch|AARCH)$")
|
||||
set(ACORE_SYSTEM_PROCESSOR "arm")
|
||||
else()
|
||||
set(ACORE_SYSTEM_PROCESSOR "x86")
|
||||
endif()
|
||||
|
||||
# detect MSVC special case of using cmake -A switch (which doesn't set any cross compiling variables)
|
||||
|
||||
if(CMAKE_GENERATOR_PLATFORM STREQUAL "Win32")
|
||||
set(ACORE_SYSTEM_PROCESSOR "x86")
|
||||
elseif(CMAKE_GENERATOR_PLATFORM STREQUAL "x64")
|
||||
set(ACORE_SYSTEM_PROCESSOR "amd64")
|
||||
elseif(CMAKE_GENERATOR_PLATFORM STREQUAL "ARM")
|
||||
set(ACORE_SYSTEM_PROCESSOR "arm")
|
||||
elseif(CMAKE_GENERATOR_PLATFORM STREQUAL "ARM64")
|
||||
set(ACORE_SYSTEM_PROCESSOR "arm64")
|
||||
endif()
|
||||
|
||||
message(STATUS "Detected ${ACORE_SYSTEM_PROCESSOR} processor architecture")
|
||||
|
||||
if(WIN32)
|
||||
include("${CMAKE_SOURCE_DIR}/src/cmake/platform/win/settings.cmake")
|
||||
elseif(UNIX)
|
||||
|
||||
@@ -227,7 +227,7 @@ elseif (MSVC)
|
||||
set(_OPENSSL_MSI_INSTALL_GUIDS "")
|
||||
|
||||
if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "8")
|
||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "ARM64")
|
||||
if(ACORE_SYSTEM_PROCESSOR STREQUAL "arm64")
|
||||
set(_arch "Win64-ARM")
|
||||
set(_OPENSSL_MSI_INSTALL_GUIDS "99C28AFA-6419-40B1-B88D-32B810BB4234")
|
||||
else()
|
||||
@@ -319,7 +319,7 @@ if(WIN32 AND NOT CYGWIN)
|
||||
# Since OpenSSL 1.1, lib names are like libcrypto32MTd.lib and libssl32MTd.lib
|
||||
if( "${CMAKE_SIZEOF_VOID_P}" STREQUAL "8" )
|
||||
set(_OPENSSL_MSVC_ARCH_SUFFIX "64")
|
||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "ARM64")
|
||||
if(ACORE_SYSTEM_PROCESSOR STREQUAL "arm64")
|
||||
set(_OPENSSL_MSVC_ARCH_DIRECTORY "arm64")
|
||||
else()
|
||||
set(_OPENSSL_MSVC_ARCH_DIRECTORY "x64")
|
||||
|
||||
@@ -162,7 +162,7 @@ void AccountInfo::LoadResult(Field* fields)
|
||||
Utf8ToUpperOnlyLatin(Login);
|
||||
}
|
||||
|
||||
AuthSession::AuthSession(tcp::socket&& socket) :
|
||||
AuthSession::AuthSession(IoContextTcpSocket&& socket) :
|
||||
Socket(std::move(socket)), _status(STATUS_CHALLENGE), _build(0), _expversion(0) { }
|
||||
|
||||
void AuthSession::Start()
|
||||
@@ -216,7 +216,7 @@ void AuthSession::CheckIpCallback(PreparedQueryResult result)
|
||||
AsyncRead();
|
||||
}
|
||||
|
||||
void AuthSession::ReadHandler()
|
||||
SocketReadCallbackResult AuthSession::ReadHandler()
|
||||
{
|
||||
MessageBuffer& packet = GetReadBuffer();
|
||||
|
||||
@@ -234,7 +234,7 @@ void AuthSession::ReadHandler()
|
||||
if (_status != itr->second.status)
|
||||
{
|
||||
CloseSocket();
|
||||
return;
|
||||
return SocketReadCallbackResult::Stop;
|
||||
}
|
||||
|
||||
uint16 size = uint16(itr->second.packetSize);
|
||||
@@ -248,7 +248,7 @@ void AuthSession::ReadHandler()
|
||||
if (size > MAX_ACCEPTED_CHALLENGE_SIZE)
|
||||
{
|
||||
CloseSocket();
|
||||
return;
|
||||
return SocketReadCallbackResult::Stop;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -258,13 +258,13 @@ void AuthSession::ReadHandler()
|
||||
if (!(*this.*itr->second.handler)())
|
||||
{
|
||||
CloseSocket();
|
||||
return;
|
||||
return SocketReadCallbackResult::Stop;
|
||||
}
|
||||
|
||||
packet.ReadCompleted(size);
|
||||
}
|
||||
|
||||
AsyncRead();
|
||||
return SocketReadCallbackResult::KeepReading;
|
||||
}
|
||||
|
||||
void AuthSession::SendPacket(ByteBuffer& packet)
|
||||
|
||||
@@ -60,22 +60,22 @@ struct AccountInfo
|
||||
AccountTypes SecurityLevel = SEC_PLAYER;
|
||||
};
|
||||
|
||||
class AuthSession : public Socket<AuthSession>
|
||||
class AuthSession final : public Socket<AuthSession>
|
||||
{
|
||||
typedef Socket<AuthSession> AuthSocket;
|
||||
|
||||
public:
|
||||
static std::unordered_map<uint8, AuthHandler> InitHandlers();
|
||||
|
||||
AuthSession(tcp::socket&& socket);
|
||||
AuthSession(IoContextTcpSocket&& socket);
|
||||
|
||||
void Start() override;
|
||||
bool Update() override;
|
||||
bool Update() final;
|
||||
|
||||
void SendPacket(ByteBuffer& packet);
|
||||
|
||||
protected:
|
||||
void ReadHandler() override;
|
||||
SocketReadCallbackResult ReadHandler() final;
|
||||
|
||||
private:
|
||||
bool HandleLogonChallenge();
|
||||
|
||||
@@ -54,9 +54,9 @@ protected:
|
||||
return threads;
|
||||
}
|
||||
|
||||
static void OnSocketAccept(tcp::socket&& sock, uint32 threadIndex)
|
||||
static void OnSocketAccept(IoContextTcpSocket&& sock, uint32 threadIndex)
|
||||
{
|
||||
Instance().OnSocketOpen(std::forward<tcp::socket>(sock), threadIndex);
|
||||
Instance().OnSocketOpen(std::move(sock), threadIndex);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -434,6 +434,11 @@ bool StartDB()
|
||||
if (!loader.Load())
|
||||
return false;
|
||||
|
||||
if (!sScriptMgr->OnDatabasesLoading())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
///- Get the realm Id from the configuration file
|
||||
realm.Id.Realm = sConfigMgr->GetOption<uint32>("RealmID", 1);
|
||||
if (!realm.Id.Realm)
|
||||
@@ -479,6 +484,8 @@ void StopDB()
|
||||
WorldDatabase.Close();
|
||||
LoginDatabase.Close();
|
||||
|
||||
sScriptMgr->OnDatabasesClosing();
|
||||
|
||||
MySQL::Library_End();
|
||||
}
|
||||
|
||||
@@ -569,6 +576,8 @@ void WorldUpdateLoop()
|
||||
CharacterDatabase.WarnAboutSyncQueries(true);
|
||||
WorldDatabase.WarnAboutSyncQueries(true);
|
||||
|
||||
sScriptMgr->OnDatabaseWarnAboutSyncQueries(true);
|
||||
|
||||
///- While we have not World::m_stopEvent, update the world
|
||||
while (!World::IsStopped())
|
||||
{
|
||||
@@ -598,6 +607,8 @@ void WorldUpdateLoop()
|
||||
#endif
|
||||
}
|
||||
|
||||
sScriptMgr->OnDatabaseWarnAboutSyncQueries(false);
|
||||
|
||||
LoginDatabase.WarnAboutSyncQueries(false);
|
||||
CharacterDatabase.WarnAboutSyncQueries(false);
|
||||
WorldDatabase.WarnAboutSyncQueries(false);
|
||||
|
||||
@@ -18,18 +18,16 @@
|
||||
#ifndef __RASESSION_H__
|
||||
#define __RASESSION_H__
|
||||
|
||||
#include <boost/asio/ip/tcp.hpp>
|
||||
#include "Socket.h"
|
||||
#include <boost/asio/streambuf.hpp>
|
||||
#include <future>
|
||||
|
||||
using boost::asio::ip::tcp;
|
||||
|
||||
const std::size_t bufferSize = 4096;
|
||||
|
||||
class RASession : public std::enable_shared_from_this<RASession>
|
||||
{
|
||||
public:
|
||||
RASession(tcp::socket&& socket) :
|
||||
RASession(IoContextTcpSocket&& socket) :
|
||||
_socket(std::move(socket)), _commandExecuting(nullptr) { }
|
||||
|
||||
void Start();
|
||||
@@ -47,7 +45,7 @@ private:
|
||||
static void CommandPrint(void* callbackArg, std::string_view text);
|
||||
static void CommandFinished(void* callbackArg, bool);
|
||||
|
||||
tcp::socket _socket;
|
||||
IoContextTcpSocket _socket;
|
||||
boost::asio::streambuf _readBuffer;
|
||||
boost::asio::streambuf _writeBuffer;
|
||||
std::promise<void>* _commandExecuting;
|
||||
|
||||
@@ -678,6 +678,7 @@ Allow.IP.Based.Action.Logging = 0
|
||||
|
||||
Appender.Console=1,4,0,"1 9 3 6 5 8"
|
||||
Appender.Server=2,5,0,Server.log,w
|
||||
Appender.Playerbots=2,5,0,Playerbots.log,w
|
||||
# Appender.GM=2,5,15,gm_%s.log
|
||||
Appender.Errors=2,2,0,Errors.log,w
|
||||
# Appender.DB=3,5,0
|
||||
@@ -714,9 +715,9 @@ Logger.sql=4,Console Server
|
||||
Logger.time.update=4,Console Server
|
||||
Logger.module=4,Console Server
|
||||
Logger.spells.scripts=2,Console Errors
|
||||
Logger.playerbots=5,Console Playerbots
|
||||
#Logger.achievement=4,Console Server
|
||||
#Logger.addon=4,Console Server
|
||||
#Logger.ahbot=4,Console Server
|
||||
#Logger.auctionHouse=4,Console Server
|
||||
#Logger.autobroadcast=4, Console Server
|
||||
#Logger.bg.arena=4,Console Server
|
||||
|
||||
@@ -20,3 +20,7 @@
|
||||
DatabaseWorkerPool<WorldDatabaseConnection> WorldDatabase;
|
||||
DatabaseWorkerPool<CharacterDatabaseConnection> CharacterDatabase;
|
||||
DatabaseWorkerPool<LoginDatabaseConnection> LoginDatabase;
|
||||
|
||||
#ifdef MOD_PLAYERBOTS
|
||||
DatabaseWorkerPool<PlayerbotsDatabaseConnection> PlayerbotsDatabase;
|
||||
#endif
|
||||
|
||||
@@ -25,6 +25,10 @@
|
||||
#include "Implementation/LoginDatabase.h"
|
||||
#include "Implementation/WorldDatabase.h"
|
||||
|
||||
#ifdef MOD_PLAYERBOTS
|
||||
#include "Implementation/PlayerbotsDatabase.h"
|
||||
#endif
|
||||
|
||||
#include "PreparedStatement.h"
|
||||
#include "QueryCallback.h"
|
||||
#include "Transaction.h"
|
||||
@@ -36,4 +40,9 @@ AC_DATABASE_API extern DatabaseWorkerPool<CharacterDatabaseConnection> Character
|
||||
/// Accessor to the realm/login database
|
||||
AC_DATABASE_API extern DatabaseWorkerPool<LoginDatabaseConnection> LoginDatabase;
|
||||
|
||||
#ifdef MOD_PLAYERBOTS
|
||||
/// Accessor to the playerbots database
|
||||
AC_DATABASE_API extern DatabaseWorkerPool<PlayerbotsDatabaseConnection> PlayerbotsDatabase;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -32,6 +32,10 @@ class CharacterDatabaseConnection;
|
||||
class LoginDatabaseConnection;
|
||||
class WorldDatabaseConnection;
|
||||
|
||||
#ifdef MOD_PLAYERBOTS
|
||||
class PlayerbotsDatabaseConnection;
|
||||
#endif
|
||||
|
||||
class PreparedStatementBase;
|
||||
|
||||
template<typename T>
|
||||
@@ -41,6 +45,10 @@ using CharacterDatabasePreparedStatement = PreparedStatement<CharacterDatabaseCo
|
||||
using LoginDatabasePreparedStatement = PreparedStatement<LoginDatabaseConnection>;
|
||||
using WorldDatabasePreparedStatement = PreparedStatement<WorldDatabaseConnection>;
|
||||
|
||||
#ifdef MOD_PLAYERBOTS
|
||||
using PlayerbotsDatabasePreparedStatement = PreparedStatement<PlayerbotsDatabaseConnection>;
|
||||
#endif
|
||||
|
||||
class PreparedResultSet;
|
||||
using PreparedQueryResult = std::shared_ptr<PreparedResultSet>;
|
||||
using PreparedQueryResultFuture = std::future<PreparedQueryResult>;
|
||||
@@ -70,6 +78,10 @@ using CharacterDatabaseTransaction = SQLTransaction<CharacterDatabaseConnection>
|
||||
using LoginDatabaseTransaction = SQLTransaction<LoginDatabaseConnection>;
|
||||
using WorldDatabaseTransaction = SQLTransaction<WorldDatabaseConnection>;
|
||||
|
||||
#ifdef MOD_PLAYERBOTS
|
||||
using PlayerbotsDatabaseTransaction = SQLTransaction<PlayerbotsDatabaseConnection>;
|
||||
#endif
|
||||
|
||||
class SQLQueryHolderBase;
|
||||
using QueryResultHolderFuture = std::future<void>;
|
||||
using QueryResultHolderPromise = std::promise<void>;
|
||||
@@ -81,6 +93,10 @@ using CharacterDatabaseQueryHolder = SQLQueryHolder<CharacterDatabaseConnection>
|
||||
using LoginDatabaseQueryHolder = SQLQueryHolder<LoginDatabaseConnection>;
|
||||
using WorldDatabaseQueryHolder = SQLQueryHolder<WorldDatabaseConnection>;
|
||||
|
||||
#ifdef MOD_PLAYERBOTS
|
||||
using PlayerbotsDatabaseQueryHolder = SQLQueryHolder<PlayerbotsDatabaseConnection>;
|
||||
#endif
|
||||
|
||||
class SQLQueryHolderCallback;
|
||||
|
||||
// mysql
|
||||
|
||||
@@ -238,3 +238,8 @@ template AC_DATABASE_API
|
||||
DatabaseLoader& DatabaseLoader::AddDatabase<CharacterDatabaseConnection>(DatabaseWorkerPool<CharacterDatabaseConnection>&, std::string const&);
|
||||
template AC_DATABASE_API
|
||||
DatabaseLoader& DatabaseLoader::AddDatabase<WorldDatabaseConnection>(DatabaseWorkerPool<WorldDatabaseConnection>&, std::string const&);
|
||||
|
||||
#ifdef MOD_PLAYERBOTS
|
||||
template AC_DATABASE_API
|
||||
DatabaseLoader& DatabaseLoader::AddDatabase<PlayerbotsDatabaseConnection>(DatabaseWorkerPool<PlayerbotsDatabaseConnection>&, std::string const&);
|
||||
#endif
|
||||
|
||||
@@ -48,8 +48,12 @@ public:
|
||||
DATABASE_LOGIN = 1,
|
||||
DATABASE_CHARACTER = 2,
|
||||
DATABASE_WORLD = 4,
|
||||
|
||||
#ifdef MOD_PLAYERBOTS
|
||||
DATABASE_PLAYERBOTS = 8,
|
||||
DATABASE_MASK_ALL = DATABASE_LOGIN | DATABASE_CHARACTER | DATABASE_WORLD | DATABASE_PLAYERBOTS
|
||||
#else
|
||||
DATABASE_MASK_ALL = DATABASE_LOGIN | DATABASE_CHARACTER | DATABASE_WORLD
|
||||
#endif
|
||||
};
|
||||
|
||||
[[nodiscard]] uint32 GetUpdateFlags() const
|
||||
@@ -57,6 +61,11 @@ public:
|
||||
return _updateFlags;
|
||||
}
|
||||
|
||||
void SetUpdateFlags(uint32 newUpdateFlags)
|
||||
{
|
||||
_updateFlags |= newUpdateFlags;
|
||||
}
|
||||
|
||||
private:
|
||||
bool OpenDatabases();
|
||||
bool PopulateDatabases();
|
||||
@@ -73,7 +82,7 @@ private:
|
||||
std::string const _logger;
|
||||
std::string_view _modulesList;
|
||||
bool const _autoSetup;
|
||||
uint32 const _updateFlags;
|
||||
uint32 _updateFlags;
|
||||
|
||||
std::queue<Predicate> _open, _populate, _update, _prepare;
|
||||
std::stack<Closer> _close;
|
||||
|
||||
@@ -41,6 +41,10 @@
|
||||
#include <sstream>
|
||||
#endif
|
||||
|
||||
#ifdef MOD_PLAYERBOTS
|
||||
#include "Implementation/PlayerbotsDatabase.h"
|
||||
#endif
|
||||
|
||||
class PingOperation : public SQLOperation
|
||||
{
|
||||
//! Operation for idle delaythreads
|
||||
@@ -571,3 +575,7 @@ void DatabaseWorkerPool<T>::ExecuteOrAppend(SQLTransaction<T>& trans, PreparedSt
|
||||
template class AC_DATABASE_API DatabaseWorkerPool<LoginDatabaseConnection>;
|
||||
template class AC_DATABASE_API DatabaseWorkerPool<WorldDatabaseConnection>;
|
||||
template class AC_DATABASE_API DatabaseWorkerPool<CharacterDatabaseConnection>;
|
||||
|
||||
#ifdef MOD_PLAYERBOTS
|
||||
template class AC_DATABASE_API DatabaseWorkerPool<PlayerbotsDatabaseConnection>;
|
||||
#endif
|
||||
|
||||
@@ -356,6 +356,7 @@ void CharacterDatabaseConnection::DoPrepareStatements()
|
||||
PrepareStatement(CHAR_UPD_PETITION_NAME, "UPDATE petition SET name = ? WHERE petition_id = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_INS_PETITION_SIGNATURE, "INSERT INTO petition_sign (ownerguid, petition_id, playerguid, player_account) VALUES (?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_UPD_ACCOUNT_ONLINE, "UPDATE characters SET online = 0 WHERE account = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_UPD_CHAR_OFFLINE, "UPDATE characters SET online = 0 WHERE guid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_INS_GROUP, "INSERT INTO `groups` (guid, leaderGuid, lootMethod, looterGuid, lootThreshold, icon1, icon2, icon3, icon4, icon5, icon6, icon7, icon8, groupType, difficulty, raidDifficulty, masterLooterGuid) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_REP_GROUP_MEMBER, "REPLACE INTO group_member (guid, memberGuid, memberFlags, subgroup, roles) VALUES(?, ?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_DEL_GROUP_MEMBER, "DELETE FROM group_member WHERE memberGuid = ? AND guid = ?", CONNECTION_ASYNC);
|
||||
@@ -404,7 +405,7 @@ void CharacterDatabaseConnection::DoPrepareStatements()
|
||||
PrepareStatement(CHAR_SEL_CHAR_DEL_INFO_BY_GUID, "SELECT guid, deleteInfos_Name, deleteInfos_Account, deleteDate FROM characters WHERE deleteDate IS NOT NULL AND guid = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_SEL_CHAR_DEL_INFO_BY_NAME, "SELECT guid, deleteInfos_Name, deleteInfos_Account, deleteDate FROM characters WHERE deleteDate IS NOT NULL AND deleteInfos_Name LIKE CONCAT('%%', ?, '%%')", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_SEL_CHAR_DEL_INFO, "SELECT guid, deleteInfos_Name, deleteInfos_Account, deleteDate FROM characters WHERE deleteDate IS NOT NULL", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_SEL_CHARS_BY_ACCOUNT_ID, "SELECT guid FROM characters WHERE account = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_SEL_CHARS_BY_ACCOUNT_ID, "SELECT guid, class, race FROM characters WHERE account = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_SEL_CHAR_PINFO, "SELECT totaltime, level, money, account, race, class, map, zone, gender, health, playerFlags FROM characters WHERE guid = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_SEL_PINFO_BANS, "SELECT unbandate, bandate = unbandate, bannedby, banreason FROM character_banned WHERE guid = ? AND active ORDER BY bandate ASC LIMIT 1", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_SEL_PINFO_MAILS, "SELECT SUM(CASE WHEN (checked & 1) THEN 1 ELSE 0 END) AS 'readmail', COUNT(*) AS 'totalmail' FROM mail WHERE `receiver` = ?", CONNECTION_SYNCH);
|
||||
|
||||
@@ -280,6 +280,7 @@ enum CharacterDatabaseStatements : uint32
|
||||
CHAR_UPD_PETITION_NAME,
|
||||
CHAR_INS_PETITION_SIGNATURE,
|
||||
CHAR_UPD_ACCOUNT_ONLINE,
|
||||
CHAR_UPD_CHAR_OFFLINE,
|
||||
CHAR_INS_GROUP,
|
||||
CHAR_REP_GROUP_MEMBER,
|
||||
CHAR_DEL_GROUP_MEMBER,
|
||||
|
||||
@@ -75,6 +75,7 @@ void LoginDatabaseConnection::DoPrepareStatements()
|
||||
PrepareStatement(LOGIN_DEL_IP_NOT_BANNED, "DELETE FROM ip_banned WHERE ip = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(LOGIN_INS_ACCOUNT_BANNED, "INSERT INTO account_banned VALUES (?, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()+?, ?, ?, 1)", CONNECTION_ASYNC);
|
||||
PrepareStatement(LOGIN_UPD_ACCOUNT_NOT_BANNED, "UPDATE account_banned SET active = 0 WHERE id = ? AND active != 0", CONNECTION_ASYNC);
|
||||
PrepareStatement(LOGIN_DEL_REALM_CHARACTERS_BY_REALM, "DELETE FROM realmcharacters WHERE acctid = ? AND realmid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(LOGIN_DEL_REALM_CHARACTERS, "DELETE FROM realmcharacters WHERE acctid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(LOGIN_REP_REALM_CHARACTERS, "REPLACE INTO realmcharacters (numchars, acctid, realmid) VALUES (?, ?, ?)", CONNECTION_ASYNC);
|
||||
PrepareStatement(LOGIN_SEL_SUM_REALM_CHARACTERS, "SELECT SUM(numchars) FROM realmcharacters WHERE acctid = ?", CONNECTION_ASYNC);
|
||||
@@ -89,7 +90,7 @@ void LoginDatabaseConnection::DoPrepareStatements()
|
||||
PrepareStatement(LOGIN_UPD_MUTE_TIME_LOGIN, "UPDATE account SET mutetime = ? WHERE id = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(LOGIN_UPD_LAST_IP, "UPDATE account SET last_ip = ? WHERE username = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(LOGIN_UPD_LAST_ATTEMPT_IP, "UPDATE account SET last_attempt_ip = ? WHERE username = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(LOGIN_UPD_ACCOUNT_ONLINE, "UPDATE account SET online = ? WHERE id = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(LOGIN_UPD_ACCOUNT_ONLINE, "UPDATE account SET online = 1 WHERE id = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(LOGIN_UPD_UPTIME_PLAYERS, "UPDATE uptime SET uptime = ?, maxplayers = ? WHERE realmid = ? AND starttime = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(LOGIN_DEL_OLD_LOGS, "DELETE FROM logs WHERE (time + ?) < ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(LOGIN_DEL_ACCOUNT_ACCESS, "DELETE FROM account_access WHERE id = ?", CONNECTION_ASYNC);
|
||||
|
||||
@@ -59,6 +59,7 @@ enum LoginDatabaseStatements : uint32
|
||||
LOGIN_SEL_ACCOUNT_BY_ID,
|
||||
LOGIN_INS_ACCOUNT_BANNED,
|
||||
LOGIN_UPD_ACCOUNT_NOT_BANNED,
|
||||
LOGIN_DEL_REALM_CHARACTERS_BY_REALM,
|
||||
LOGIN_DEL_REALM_CHARACTERS,
|
||||
LOGIN_REP_REALM_CHARACTERS,
|
||||
LOGIN_SEL_SUM_REALM_CHARACTERS,
|
||||
|
||||
@@ -0,0 +1,129 @@
|
||||
/*
|
||||
* This file is part of the AzerothCore Project. See AUTHORS file for Copyright information
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifdef MOD_PLAYERBOTS
|
||||
|
||||
#include "PlayerbotsDatabase.h"
|
||||
#include "MySQLPreparedStatement.h"
|
||||
|
||||
void PlayerbotsDatabaseConnection::DoPrepareStatements()
|
||||
{
|
||||
if (!m_reconnecting)
|
||||
m_stmts.resize(MAX_PLAYERBOTS_STATEMENTS);
|
||||
|
||||
PrepareStatement(PLAYERBOTS_SEL_CUSTOM_STRATEGY_BY_OWNER, "SELECT DISTINCT name FROM playerbots_custom_strategy WHERE owner = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(PLAYERBOTS_SEL_CUSTOM_STRATEGY_BY_OWNER_AND_NAME, "SELECT idx, action_line FROM playerbots_custom_strategy WHERE owner = ? AND name = ? ORDER BY idx", CONNECTION_SYNCH);
|
||||
PrepareStatement(PLAYERBOTS_SEL_CUSTOM_STRATEGY_BY_OWNER_AND_NAME_AND_IDX, "SELECT action_line FROM playerbots_custom_strategy WHERE owner = ? AND name = ? AND idx = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(PLAYERBOTS_DEL_CUSTOM_STRATEGY, "DELETE FROM playerbots_custom_strategy WHERE name = ? AND owner = ? AND idx = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(PLAYERBOTS_UPD_CUSTOM_STRATEGY, "UPDATE playerbots_custom_strategy SET action_line = ? WHERE name = ? AND owner = ? AND idx = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(PLAYERBOTS_INS_CUSTOM_STRATEGY, "INSERT INTO playerbots_custom_strategy (name, owner, idx, action_line) VALUES (?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||
|
||||
PrepareStatement(PLAYERBOTS_SEL_DB_STORE, "SELECT `key`,`value` FROM `playerbots_db_store` WHERE `guid` = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(PLAYERBOTS_DEL_DB_STORE, "DELETE FROM `playerbots_db_store` WHERE `guid` = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(PLAYERBOTS_INS_DB_STORE, "INSERT INTO `playerbots_db_store` (`guid`, `key`, `value`) VALUES (?, ?, ?)", CONNECTION_ASYNC);
|
||||
|
||||
PrepareStatement(PLAYERBOTS_SEL_ENCHANTS, "SELECT class, spec, spellid, slotid FROM playerbots_enchants", CONNECTION_SYNCH);
|
||||
|
||||
PrepareStatement(PLAYERBOTS_SEL_EQUIP_CACHE, "SELECT clazz, lvl, slot, quality, item FROM playerbots_equip_cache", CONNECTION_SYNCH);
|
||||
PrepareStatement(PLAYERBOTS_INS_EQUIP_CACHE, "INSERT INTO playerbots_equip_cache (clazz, lvl, slot, quality, item) VALUES (?, ?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||
|
||||
PrepareStatement(PLAYERBOTS_SEL_GUILD_TASKS_BY_VALUE, "SELECT `value`, `time`, validIn FROM playerbots_guild_tasks WHERE `value` = ? AND guildid = ? AND `type` = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(PLAYERBOTS_SEL_GUILD_TASKS_BY_OWNER, "SELECT `value`, `time`, validIn, guildid FROM playerbots_guild_tasks WHERE owner = ? AND `type` = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(PLAYERBOTS_SEL_GUILD_TASKS_BY_OWNER_AND_TYPE, "SELECT `value`, `time`, validIn FROM playerbots_guild_tasks WHERE owner = ? AND guildid = ? AND `type` = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(PLAYERBOTS_SEL_GUILD_TASKS_BY_OWNER_DISTINCT, "SELECT DISTINCT guildid FROM playerbots_guild_tasks WHERE owner = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(PLAYERBOTS_SEL_GUILD_TASKS_BY_OWNER_ORDERED, "SELECT `value`, `time`, validIn, guildid FROM playerbots_guild_tasks WHERE owner = ? AND type = ? ORDER BY guildid", CONNECTION_SYNCH);
|
||||
PrepareStatement(PLAYERBOTS_DEL_GUILD_TASKS, "DELETE FROM playerbots_guild_tasks WHERE owner = ? AND guildid = ? AND `type` = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(PLAYERBOTS_INS_GUILD_TASKS, "INSERT INTO playerbots_guild_tasks (owner, guildid, `time`, validIn, `type`, `value`) VALUES (?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||
|
||||
PrepareStatement(PLAYERBOTS_SEL_RANDOM_BOTS_VALUE, "SELECT value FROM playerbots_random_bots WHERE event = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(PLAYERBOTS_SEL_RANDOM_BOTS_BOT, "SELECT `bot` FROM playerbots_random_bots WHERE event = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(PLAYERBOTS_SEL_RANDOM_BOTS_BY_OWNER_AND_EVENT, "SELECT bot FROM playerbots_random_bots WHERE owner = ? AND event = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(PLAYERBOTS_SEL_RANDOM_BOTS_BY_OWNER_AND_BOT, "SELECT `event`, `value`, `time`, validIn, `data` FROM playerbots_random_bots WHERE owner = ? AND bot = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(PLAYERBOTS_SEL_RANDOM_BOTS_BY_EVENT_AND_VALUE, "SELECT bot FROM playerbots_random_bots WHERE event = ? AND value = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(PLAYERBOTS_INS_RANDOM_BOTS, "INSERT INTO playerbots_random_bots (owner, bot, `time`, validIn, event, `value`, `data`) VALUES (?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||
PrepareStatement(PLAYERBOTS_DEL_RANDOM_BOTS, "DELETE FROM playerbots_random_bots", CONNECTION_ASYNC);
|
||||
PrepareStatement(PLAYERBOTS_DEL_RANDOM_BOTS_BY_OWNER, "DELETE FROM playerbots_random_bots WHERE owner = ? AND bot = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(PLAYERBOTS_DEL_RANDOM_BOTS_BY_OWNER_AND_EVENT, "DELETE FROM playerbots_random_bots WHERE owner = ? AND bot = ? AND event = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(PLAYERBOTS_UPD_RANDOM_BOTS, "UPDATE playerbots_random_bots SET validIn = ? WHERE event = ? AND bot = ?", CONNECTION_ASYNC);
|
||||
|
||||
PrepareStatement(PLAYERBOTS_SEL_RARITY_CACHE, "SELECT item, rarity FROM playerbots_rarity_cache", CONNECTION_SYNCH);
|
||||
PrepareStatement(PLAYERBOTS_INS_RARITY_CACHE, "INSERT INTO playerbots_rarity_cache (item, rarity) VALUES (?, ?)", CONNECTION_ASYNC);
|
||||
|
||||
PrepareStatement(PLAYERBOTS_SEL_RNDITEM_CACHE, "SELECT lvl, type, item FROM playerbots_rnditem_cache", CONNECTION_SYNCH);
|
||||
PrepareStatement(PLAYERBOTS_INS_RNDITEM_CACHE, "INSERT INTO playerbots_rnditem_cache (lvl, type, item) VALUES (?, ?, ?)", CONNECTION_ASYNC);
|
||||
|
||||
PrepareStatement(PLAYERBOTS_SEL_SPEECH, "SELECT name, text, type FROM playerbots_speech", CONNECTION_SYNCH);
|
||||
PrepareStatement(PLAYERBOTS_SEL_SPEECH_PROBABILITY, "SELECT name, probability FROM playerbots_speech_probability", CONNECTION_SYNCH);
|
||||
|
||||
PrepareStatement(PLAYERBOTS_SEL_TELE_CACHE, "SELECT map_id, x, y, z, level FROM playerbots_tele_cache", CONNECTION_SYNCH);
|
||||
PrepareStatement(PLAYERBOTS_INS_TELE_CACHE, "INSERT INTO playerbots_tele_cache (level, map_id, x, y, z) VALUES (?, ?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||
|
||||
PrepareStatement(PLAYERBOTS_SEL_TRAVELNODE, "SELECT id, name, map_id, x, y, z, linked FROM playerbots_travelnode", CONNECTION_SYNCH);
|
||||
PrepareStatement(PLAYERBOTS_INS_TRAVELNODE, "INSERT INTO `playerbots_travelnode` (`id`, `name`, `map_id`, `x`, `y`, `z`, `linked`) VALUES (?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||
PrepareStatement(PLAYERBOTS_DEL_TRAVELNODE, "DELETE FROM playerbots_travelnode", CONNECTION_ASYNC);
|
||||
|
||||
PrepareStatement(PLAYERBOTS_SEL_TRAVELNODE_LINK, "SELECT node_id, to_node_id,type,object,distance,swim_distance, extra_cost,calculated, max_creature_0,max_creature_1,max_creature_2 FROM playerbots_travelnode_link", CONNECTION_SYNCH);
|
||||
PrepareStatement(PLAYERBOTS_INS_TRAVELNODE_LINK, "INSERT INTO `playerbots_travelnode_link` (`node_id`, `to_node_id`,`type`,`object`,`distance`,`swim_distance`, `extra_cost`,`calculated`, `max_creature_0`,`max_creature_1`,`max_creature_2`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||
PrepareStatement(PLAYERBOTS_DEL_TRAVELNODE_LINK, "DELETE FROM playerbots_travelnode_link", CONNECTION_ASYNC);
|
||||
|
||||
PrepareStatement(PLAYERBOTS_SEL_TRAVELNODE_PATH, "SELECT node_id, to_node_id, nr, map_id, x, y, z FROM playerbots_travelnode_path order by node_id, to_node_id, nr", CONNECTION_SYNCH);
|
||||
PrepareStatement(PLAYERBOTS_INS_TRAVELNODE_PATH, "INSERT INTO `playerbots_travelnode_path` (`node_id`, `to_node_id`, `nr`, `map_id`, `x`, `y`, `z`) VALUES (?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||
PrepareStatement(PLAYERBOTS_DEL_TRAVELNODE_PATH, "DELETE FROM playerbots_travelnode_path", CONNECTION_ASYNC);
|
||||
|
||||
PrepareStatement(PLAYERBOTS_SEL_TEXT, "SELECT `name`, `text`, `say_type`, `reply_type`, `text_loc1`, `text_loc2`, `text_loc3`, `text_loc4`, `text_loc5`, `text_loc6`, `text_loc7`, `text_loc8` FROM `ai_playerbot_texts`", CONNECTION_SYNCH);
|
||||
PrepareStatement(
|
||||
PLAYERBOTS_SEL_DUNGEON_SUGGESTION,
|
||||
"SELECT"
|
||||
" d.`name`, "
|
||||
" d.`difficulty`, "
|
||||
" d.`min_level`, "
|
||||
" d.`max_level`, "
|
||||
" a.`abbrevation`, "
|
||||
" s.`strategy` "
|
||||
"FROM playerbots_dungeon_suggestion_definition d "
|
||||
"LEFT OUTER JOIN playerbots_dungeon_suggestion_abbrevation a "
|
||||
" ON d.slug = a.definition_slug "
|
||||
"LEFT OUTER JOIN playerbots_dungeon_suggestion_strategy s "
|
||||
" ON d.slug = s.definition_slug "
|
||||
" AND d.difficulty = s.difficulty "
|
||||
"WHERE d.expansion <= ?;",
|
||||
CONNECTION_SYNCH
|
||||
);
|
||||
|
||||
PrepareStatement(PLAYERBOTS_SEL_WEIGHTSCALES, "SELECT id, name, class FROM playerbots_weightscales", CONNECTION_SYNCH);
|
||||
PrepareStatement(PLAYERBOTS_SEL_WEIGHTSCALE_DATA, "SELECT id, field, val FROM playerbots_weightscale_data", CONNECTION_SYNCH);
|
||||
|
||||
PrepareStatement(PLAYERBOTS_INS_EQUIP_CACHE_NEW, "INSERT INTO playerbots_item_info_cache (id, quality, slot, source, sourceId, team, faction, factionRepRank, minLevel, "
|
||||
"scale_1, scale_2, scale_3, scale_4, scale_5, scale_6, scale_7, scale_8, scale_9, scale_10, scale_11, scale_12, scale_13, scale_14, scale_15, "
|
||||
"scale_16, scale_17, scale_18, scale_19, scale_20, scale_21, scale_22, scale_23, scale_24, scale_25, scale_26, scale_27, scale_28, scale_29, scale_30, scale_31, scale_32) "
|
||||
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||
PrepareStatement(PLAYERBOTS_DEL_EQUIP_CACHE_NEW, "DELETE FROM playerbots_item_info_cache WHERE id = ?", CONNECTION_ASYNC);
|
||||
}
|
||||
|
||||
PlayerbotsDatabaseConnection::PlayerbotsDatabaseConnection(MySQLConnectionInfo& connInfo) : MySQLConnection(connInfo)
|
||||
{
|
||||
}
|
||||
|
||||
PlayerbotsDatabaseConnection::PlayerbotsDatabaseConnection(ProducerConsumerQueue<SQLOperation*>* q, MySQLConnectionInfo& connInfo) : MySQLConnection(q, connInfo)
|
||||
{
|
||||
}
|
||||
|
||||
PlayerbotsDatabaseConnection::~PlayerbotsDatabaseConnection()
|
||||
{
|
||||
}
|
||||
|
||||
#endif
|
||||
120
src/server/database/Database/Implementation/PlayerbotsDatabase.h
Normal file
120
src/server/database/Database/Implementation/PlayerbotsDatabase.h
Normal file
@@ -0,0 +1,120 @@
|
||||
/*
|
||||
* This file is part of the AzerothCore Project. See AUTHORS file for Copyright information
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifdef MOD_PLAYERBOTS
|
||||
|
||||
#ifndef _PlayerbotsDatabase_H
|
||||
#define _PlayerbotsDatabase_H
|
||||
|
||||
#include "MySQLConnection.h"
|
||||
|
||||
enum PlayerbotsDatabaseStatements : uint32
|
||||
{
|
||||
/* Naming standard for defines:
|
||||
{DB}_{SEL/INS/UPD/DEL/REP}_{Summary of data changed}
|
||||
When updating more than one field, consider looking at the calling function
|
||||
name for a suiting suffix.
|
||||
*/
|
||||
|
||||
PLAYERBOTS_SEL_CUSTOM_STRATEGY_BY_OWNER,
|
||||
PLAYERBOTS_SEL_CUSTOM_STRATEGY_BY_OWNER_AND_NAME,
|
||||
PLAYERBOTS_SEL_CUSTOM_STRATEGY_BY_OWNER_AND_NAME_AND_IDX,
|
||||
PLAYERBOTS_DEL_CUSTOM_STRATEGY,
|
||||
PLAYERBOTS_UPD_CUSTOM_STRATEGY,
|
||||
PLAYERBOTS_INS_CUSTOM_STRATEGY,
|
||||
|
||||
PLAYERBOTS_SEL_DB_STORE,
|
||||
PLAYERBOTS_DEL_DB_STORE,
|
||||
PLAYERBOTS_INS_DB_STORE,
|
||||
|
||||
PLAYERBOTS_SEL_ENCHANTS,
|
||||
|
||||
PLAYERBOTS_SEL_EQUIP_CACHE,
|
||||
PLAYERBOTS_INS_EQUIP_CACHE,
|
||||
|
||||
PLAYERBOTS_SEL_GUILD_TASKS_BY_VALUE,
|
||||
PLAYERBOTS_SEL_GUILD_TASKS_BY_OWNER,
|
||||
PLAYERBOTS_SEL_GUILD_TASKS_BY_OWNER_AND_TYPE,
|
||||
PLAYERBOTS_SEL_GUILD_TASKS_BY_OWNER_DISTINCT,
|
||||
PLAYERBOTS_SEL_GUILD_TASKS_BY_OWNER_ORDERED,
|
||||
PLAYERBOTS_DEL_GUILD_TASKS,
|
||||
PLAYERBOTS_INS_GUILD_TASKS,
|
||||
|
||||
PLAYERBOTS_SEL_RANDOM_BOTS_VALUE,
|
||||
PLAYERBOTS_SEL_RANDOM_BOTS_BOT,
|
||||
PLAYERBOTS_SEL_RANDOM_BOTS_BY_OWNER_AND_EVENT,
|
||||
PLAYERBOTS_SEL_RANDOM_BOTS_BY_OWNER_AND_BOT,
|
||||
PLAYERBOTS_SEL_RANDOM_BOTS_BY_EVENT_AND_VALUE,
|
||||
PLAYERBOTS_INS_RANDOM_BOTS,
|
||||
PLAYERBOTS_DEL_RANDOM_BOTS,
|
||||
PLAYERBOTS_DEL_RANDOM_BOTS_BY_OWNER,
|
||||
PLAYERBOTS_DEL_RANDOM_BOTS_BY_OWNER_AND_EVENT,
|
||||
PLAYERBOTS_UPD_RANDOM_BOTS,
|
||||
|
||||
PLAYERBOTS_SEL_RARITY_CACHE,
|
||||
PLAYERBOTS_INS_RARITY_CACHE,
|
||||
|
||||
PLAYERBOTS_SEL_RNDITEM_CACHE,
|
||||
PLAYERBOTS_INS_RNDITEM_CACHE,
|
||||
|
||||
PLAYERBOTS_SEL_SPEECH,
|
||||
PLAYERBOTS_SEL_SPEECH_PROBABILITY,
|
||||
|
||||
PLAYERBOTS_SEL_TELE_CACHE,
|
||||
PLAYERBOTS_INS_TELE_CACHE,
|
||||
|
||||
PLAYERBOTS_SEL_TEXT,
|
||||
PLAYERBOTS_SEL_DUNGEON_SUGGESTION,
|
||||
|
||||
PLAYERBOTS_SEL_TRAVELNODE,
|
||||
PLAYERBOTS_INS_TRAVELNODE,
|
||||
PLAYERBOTS_DEL_TRAVELNODE,
|
||||
|
||||
PLAYERBOTS_SEL_TRAVELNODE_LINK,
|
||||
PLAYERBOTS_INS_TRAVELNODE_LINK,
|
||||
PLAYERBOTS_DEL_TRAVELNODE_LINK,
|
||||
|
||||
PLAYERBOTS_SEL_TRAVELNODE_PATH,
|
||||
PLAYERBOTS_INS_TRAVELNODE_PATH,
|
||||
PLAYERBOTS_DEL_TRAVELNODE_PATH,
|
||||
|
||||
PLAYERBOTS_SEL_WEIGHTSCALES,
|
||||
PLAYERBOTS_SEL_WEIGHTSCALE_DATA,
|
||||
|
||||
PLAYERBOTS_INS_EQUIP_CACHE_NEW,
|
||||
PLAYERBOTS_DEL_EQUIP_CACHE_NEW,
|
||||
|
||||
MAX_PLAYERBOTS_STATEMENTS
|
||||
};
|
||||
|
||||
class AC_DATABASE_API PlayerbotsDatabaseConnection : public MySQLConnection
|
||||
{
|
||||
public:
|
||||
typedef PlayerbotsDatabaseStatements Statements;
|
||||
|
||||
//- Constructors for sync and async connections
|
||||
PlayerbotsDatabaseConnection(MySQLConnectionInfo& connInfo);
|
||||
PlayerbotsDatabaseConnection(ProducerConsumerQueue<SQLOperation*>* q, MySQLConnectionInfo& connInfo);
|
||||
~PlayerbotsDatabaseConnection();
|
||||
|
||||
//- Loads database type specific prepared statements
|
||||
void DoPrepareStatements() override;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -77,10 +77,16 @@ std::string DBUpdater<LoginDatabaseConnection>::GetTableName()
|
||||
return "Auth";
|
||||
}
|
||||
|
||||
template<>
|
||||
std::string DBUpdater<LoginDatabaseConnection>::GetSourceDirectory()
|
||||
{
|
||||
return BuiltInConfig::GetSourceDirectory();
|
||||
}
|
||||
|
||||
template<>
|
||||
std::string DBUpdater<LoginDatabaseConnection>::GetBaseFilesDirectory()
|
||||
{
|
||||
return BuiltInConfig::GetSourceDirectory() + "/data/sql/base/db_auth/";
|
||||
return DBUpdater<LoginDatabaseConnection>::GetSourceDirectory() + "/data/sql/base/db_auth/";
|
||||
}
|
||||
|
||||
template<>
|
||||
@@ -93,7 +99,7 @@ bool DBUpdater<LoginDatabaseConnection>::IsEnabled(uint32 const updateMask)
|
||||
template<>
|
||||
std::string DBUpdater<LoginDatabaseConnection>::GetDBModuleName()
|
||||
{
|
||||
return "db-auth";
|
||||
return "auth";
|
||||
}
|
||||
|
||||
// World Database
|
||||
@@ -109,10 +115,16 @@ std::string DBUpdater<WorldDatabaseConnection>::GetTableName()
|
||||
return "World";
|
||||
}
|
||||
|
||||
template<>
|
||||
std::string DBUpdater<WorldDatabaseConnection>::GetSourceDirectory()
|
||||
{
|
||||
return BuiltInConfig::GetSourceDirectory();
|
||||
}
|
||||
|
||||
template<>
|
||||
std::string DBUpdater<WorldDatabaseConnection>::GetBaseFilesDirectory()
|
||||
{
|
||||
return BuiltInConfig::GetSourceDirectory() + "/data/sql/base/db_world/";
|
||||
return DBUpdater<WorldDatabaseConnection>::GetSourceDirectory() + "/data/sql/base/db_world/";
|
||||
}
|
||||
|
||||
template<>
|
||||
@@ -125,7 +137,7 @@ bool DBUpdater<WorldDatabaseConnection>::IsEnabled(uint32 const updateMask)
|
||||
template<>
|
||||
std::string DBUpdater<WorldDatabaseConnection>::GetDBModuleName()
|
||||
{
|
||||
return "db-world";
|
||||
return "world";
|
||||
}
|
||||
|
||||
// Character Database
|
||||
@@ -141,10 +153,16 @@ std::string DBUpdater<CharacterDatabaseConnection>::GetTableName()
|
||||
return "Character";
|
||||
}
|
||||
|
||||
template<>
|
||||
std::string DBUpdater<CharacterDatabaseConnection>::GetSourceDirectory()
|
||||
{
|
||||
return BuiltInConfig::GetSourceDirectory();
|
||||
}
|
||||
|
||||
template<>
|
||||
std::string DBUpdater<CharacterDatabaseConnection>::GetBaseFilesDirectory()
|
||||
{
|
||||
return BuiltInConfig::GetSourceDirectory() + "/data/sql/base/db_characters/";
|
||||
return DBUpdater<CharacterDatabaseConnection>::GetSourceDirectory() + "/data/sql/base/db_characters/";
|
||||
}
|
||||
|
||||
template<>
|
||||
@@ -157,9 +175,49 @@ bool DBUpdater<CharacterDatabaseConnection>::IsEnabled(uint32 const updateMask)
|
||||
template<>
|
||||
std::string DBUpdater<CharacterDatabaseConnection>::GetDBModuleName()
|
||||
{
|
||||
return "db-characters";
|
||||
return "characters";
|
||||
}
|
||||
|
||||
#ifdef MOD_PLAYERBOTS
|
||||
// Playerbots Database
|
||||
template<>
|
||||
std::string DBUpdater<PlayerbotsDatabaseConnection>::GetConfigEntry()
|
||||
{
|
||||
return "Updates.Playerbots";
|
||||
}
|
||||
|
||||
template<>
|
||||
std::string DBUpdater<PlayerbotsDatabaseConnection>::GetTableName()
|
||||
{
|
||||
return "Playerbots";
|
||||
}
|
||||
|
||||
template<>
|
||||
std::string DBUpdater<PlayerbotsDatabaseConnection>::GetSourceDirectory()
|
||||
{
|
||||
return BuiltInConfig::GetSourceDirectory() + "/modules/mod-playerbots";
|
||||
}
|
||||
|
||||
template<>
|
||||
std::string DBUpdater<PlayerbotsDatabaseConnection>::GetBaseFilesDirectory()
|
||||
{
|
||||
return DBUpdater<PlayerbotsDatabaseConnection>::GetSourceDirectory() + "/data/sql/playerbots/base/";
|
||||
}
|
||||
|
||||
template<>
|
||||
bool DBUpdater<PlayerbotsDatabaseConnection>::IsEnabled(uint32 const updateMask)
|
||||
{
|
||||
// This way silences warnings under msvc
|
||||
return (updateMask & DatabaseLoader::DATABASE_PLAYERBOTS) ? true : false;
|
||||
}
|
||||
|
||||
template<>
|
||||
std::string DBUpdater<PlayerbotsDatabaseConnection>::GetDBModuleName()
|
||||
{
|
||||
return "db_playerbot";
|
||||
}
|
||||
#endif
|
||||
|
||||
// All
|
||||
template<class T>
|
||||
BaseLocation DBUpdater<T>::GetBaseLocationType()
|
||||
@@ -225,7 +283,7 @@ bool DBUpdater<T>::Update(DatabaseWorkerPool<T>& pool, std::string_view modulesL
|
||||
|
||||
LOG_INFO("sql.updates", "Updating {} database...", DBUpdater<T>::GetTableName());
|
||||
|
||||
Path const sourceDirectory(BuiltInConfig::GetSourceDirectory());
|
||||
Path const sourceDirectory(DBUpdater<T>::GetSourceDirectory());
|
||||
|
||||
if (!is_directory(sourceDirectory))
|
||||
{
|
||||
@@ -300,7 +358,7 @@ bool DBUpdater<T>::Update(DatabaseWorkerPool<T>& pool, std::vector<std::string>
|
||||
return false;
|
||||
}
|
||||
|
||||
Path const sourceDirectory(BuiltInConfig::GetSourceDirectory());
|
||||
Path const sourceDirectory(DBUpdater<T>::GetSourceDirectory());
|
||||
if (!is_directory(sourceDirectory))
|
||||
{
|
||||
return false;
|
||||
@@ -534,3 +592,7 @@ void DBUpdater<T>::ApplyFile(DatabaseWorkerPool<T>& pool, std::string const& hos
|
||||
template class AC_DATABASE_API DBUpdater<LoginDatabaseConnection>;
|
||||
template class AC_DATABASE_API DBUpdater<WorldDatabaseConnection>;
|
||||
template class AC_DATABASE_API DBUpdater<CharacterDatabaseConnection>;
|
||||
|
||||
#ifdef MOD_PLAYERBOTS
|
||||
template class AC_DATABASE_API DBUpdater<PlayerbotsDatabaseConnection>;
|
||||
#endif
|
||||
|
||||
@@ -72,6 +72,7 @@ public:
|
||||
|
||||
static inline std::string GetConfigEntry();
|
||||
static inline std::string GetTableName();
|
||||
static std::string GetSourceDirectory();
|
||||
static std::string GetBaseFilesDirectory();
|
||||
static bool IsEnabled(uint32 const updateMask);
|
||||
static BaseLocation GetBaseLocationType();
|
||||
|
||||
@@ -951,6 +951,14 @@ void SmartAI::InitializeAI()
|
||||
if (!(event.action.cast.castFlags & SMARTCAST_MAIN_SPELL))
|
||||
continue;
|
||||
|
||||
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(event.action.cast.spell);
|
||||
if (spellInfo && spellInfo->IsPositive())
|
||||
{
|
||||
LOG_WARN("scripts.ai", "SmartAI: Creature {} has SMARTCAST_MAIN_SPELL on positive spell {} - positive spells should not be used as main spell",
|
||||
me->GetEntry(), event.action.cast.spell);
|
||||
continue;
|
||||
}
|
||||
|
||||
SetMainSpell(event.action.cast.spell);
|
||||
break;
|
||||
}
|
||||
@@ -966,6 +974,11 @@ void SmartAI::InitializeAI()
|
||||
if (!(event.action.cast.castFlags & SMARTCAST_COMBAT_MOVE))
|
||||
continue;
|
||||
|
||||
// Don't use positive (healing/buff) spells to determine attack distance
|
||||
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(event.action.cast.spell);
|
||||
if (spellInfo && spellInfo->IsPositive())
|
||||
continue;
|
||||
|
||||
SetMainSpell(event.action.cast.spell);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -3296,6 +3296,19 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
|
||||
target->ToUnit()->SetAnimTier(AnimTier(e.action.animTier.animTier));
|
||||
break;
|
||||
}
|
||||
case SMART_ACTION_SET_GOSSIP_MENU:
|
||||
{
|
||||
for (WorldObject* target : targets)
|
||||
{
|
||||
if (Creature* creature = target->ToCreature())
|
||||
{
|
||||
creature->SetGossipMenuId(e.action.setGossipMenu.gossipMenuId);
|
||||
LOG_DEBUG("sql.sql", "SmartScript::ProcessAction: SMART_ACTION_SET_GOSSIP_MENU: Creature {} set gossip menu to {}",
|
||||
creature->GetGUID().ToString(), e.action.setGossipMenu.gossipMenuId);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
LOG_ERROR("sql.sql", "SmartScript::ProcessAction: Entry {} SourceType {}, Event {}, Unhandled Action type {}", e.entryOrGuid, e.GetScriptType(), e.event_id, e.GetActionType());
|
||||
break;
|
||||
|
||||
@@ -885,6 +885,7 @@ bool SmartAIMgr::CheckUnusedActionParams(SmartScriptHolder const& e)
|
||||
case SMART_ACTION_WORLD_SCRIPT: return sizeof(SmartAction::worldStateScript);
|
||||
case SMART_ACTION_DISABLE_REWARD: return sizeof(SmartAction::reward);
|
||||
case SMART_ACTION_SET_ANIM_TIER: return sizeof(SmartAction::animTier);
|
||||
case SMART_ACTION_SET_GOSSIP_MENU: return sizeof(SmartAction::setGossipMenu);
|
||||
case SMART_ACTION_DISMOUNT: return NO_PARAMS;
|
||||
default:
|
||||
LOG_WARN("sql.sql", "SmartAIMgr: entryorguid {} source_type {} id {} action_type {} is using an action with no unused params specified in SmartAIMgr::CheckUnusedActionParams(), please report this.",
|
||||
@@ -2040,6 +2041,7 @@ bool SmartAIMgr::IsEventValid(SmartScriptHolder& e)
|
||||
case SMART_ACTION_MOVEMENT_PAUSE:
|
||||
case SMART_ACTION_MOVEMENT_RESUME:
|
||||
case SMART_ACTION_WORLD_SCRIPT:
|
||||
case SMART_ACTION_SET_GOSSIP_MENU:
|
||||
break;
|
||||
default:
|
||||
LOG_ERROR("sql.sql", "SmartAIMgr: Not handled action_type({}), event_type({}), Entry {} SourceType {} Event {}, skipped.", e.GetActionType(), e.GetEventType(), e.entryOrGuid, e.GetScriptType(), e.event_id);
|
||||
|
||||
@@ -724,8 +724,9 @@ enum SMART_ACTION
|
||||
SMART_ACTION_WORLD_SCRIPT = 237, // eventId, param
|
||||
SMART_ACTION_DISABLE_REWARD = 238, // reputation 0/1, loot 0/1
|
||||
SMART_ACTION_SET_ANIM_TIER = 239, // animtier
|
||||
SMART_ACTION_SET_GOSSIP_MENU = 240, // gossipMenuId
|
||||
|
||||
SMART_ACTION_AC_END = 240, // placeholder
|
||||
SMART_ACTION_AC_END = 241, // placeholder
|
||||
};
|
||||
|
||||
enum class SmartActionSummonCreatureFlags
|
||||
@@ -1510,6 +1511,11 @@ struct SmartAction
|
||||
{
|
||||
uint32 animTier;
|
||||
} animTier;
|
||||
|
||||
struct
|
||||
{
|
||||
uint32 gossipMenuId;
|
||||
} setGossipMenu;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -1103,3 +1103,22 @@ std::unordered_map<uint8, uint8> ArenaTeam::ArenaReqPlayersForType =
|
||||
{ ARENA_TYPE_3v3, 6},
|
||||
{ ARENA_TYPE_5v5, 10}
|
||||
};
|
||||
|
||||
void ArenaTeam::SetEmblem(uint32 backgroundColor, uint8 emblemStyle, uint32 emblemColor, uint8 borderStyle, uint32 borderColor)
|
||||
{
|
||||
BackgroundColor = backgroundColor;
|
||||
EmblemStyle = emblemStyle;
|
||||
EmblemColor = emblemColor;
|
||||
BorderStyle = borderStyle;
|
||||
BorderColor = borderColor;
|
||||
}
|
||||
|
||||
void ArenaTeam::SetRatingForAll(uint32 rating)
|
||||
{
|
||||
Stats.Rating = rating;
|
||||
|
||||
for (MemberList::iterator itr = Members.begin(); itr != Members.end(); ++itr)
|
||||
{
|
||||
itr->PersonalRating = rating;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -217,6 +217,10 @@ public:
|
||||
static std::unordered_map<uint32, uint8> ArenaSlotByType; // Slot -> Type
|
||||
static std::unordered_map<uint8, uint8> ArenaReqPlayersForType; // Type -> Players count
|
||||
|
||||
void SetEmblem(uint32 backgroundColor, uint8 emblemStyle, uint32 emblemColor, uint8 borderStyle, uint32 borderColor);
|
||||
void SetRatingForAll(uint32 rating);
|
||||
|
||||
|
||||
protected:
|
||||
uint32 TeamId;
|
||||
uint8 Type;
|
||||
|
||||
@@ -205,6 +205,7 @@ struct BattlegroundObjectInfo
|
||||
|
||||
enum ArenaType : uint8
|
||||
{
|
||||
ARENA_TYPE_NONE = 0,
|
||||
ARENA_TYPE_2v2 = 2,
|
||||
ARENA_TYPE_3v3 = 3,
|
||||
ARENA_TYPE_5v5 = 5
|
||||
|
||||
@@ -246,6 +246,18 @@ protected:
|
||||
uint32 BasesDefended = 0;
|
||||
};
|
||||
|
||||
struct CaptureABPointInfo
|
||||
{
|
||||
CaptureABPointInfo() : _ownerTeamId(TEAM_NEUTRAL), _iconNone(0), _iconCapture(0), _state(BG_AB_NODE_STATE_NEUTRAL), _captured(false) {}
|
||||
|
||||
TeamId _ownerTeamId;
|
||||
uint32 _iconNone;
|
||||
uint32 _iconCapture;
|
||||
uint8 _state;
|
||||
|
||||
bool _captured;
|
||||
};
|
||||
|
||||
class AC_GAME_API BattlegroundAB : public Battleground
|
||||
{
|
||||
public:
|
||||
@@ -270,6 +282,9 @@ public:
|
||||
bool IsTeamScores500Disadvantage(TeamId teamId) const { return _teamScores500Disadvantage[teamId]; }
|
||||
|
||||
TeamId GetPrematureWinner() override;
|
||||
|
||||
[[nodiscard]] CaptureABPointInfo const& GetCapturePointInfo(uint32 node) const { return _capturePointInfo[node]; }
|
||||
|
||||
private:
|
||||
void PostUpdateImpl(uint32 diff) override;
|
||||
|
||||
@@ -280,21 +295,7 @@ private:
|
||||
void NodeDeoccupied(uint8 node);
|
||||
void ApplyPhaseMask();
|
||||
|
||||
struct CapturePointInfo
|
||||
{
|
||||
CapturePointInfo() : _ownerTeamId(TEAM_NEUTRAL), _iconNone(0), _iconCapture(0), _state(BG_AB_NODE_STATE_NEUTRAL), _captured(false)
|
||||
{
|
||||
}
|
||||
|
||||
TeamId _ownerTeamId;
|
||||
uint32 _iconNone;
|
||||
uint32 _iconCapture;
|
||||
uint8 _state;
|
||||
|
||||
bool _captured;
|
||||
};
|
||||
|
||||
CapturePointInfo _capturePointInfo[BG_AB_DYNAMIC_NODES_COUNT];
|
||||
CaptureABPointInfo _capturePointInfo[BG_AB_DYNAMIC_NODES_COUNT];
|
||||
EventMap _bgEvents;
|
||||
uint32 _honorTics;
|
||||
uint32 _reputationTics;
|
||||
|
||||
@@ -1791,6 +1791,10 @@ public:
|
||||
|
||||
TeamId GetPrematureWinner() override;
|
||||
|
||||
[[nodiscard]] BG_AV_NodeInfo const& GetAVNodeInfo(uint32 node) const { return m_Nodes[node]; }
|
||||
[[nodiscard]] bool IsCaptainAlive(uint8 index) const { return m_CaptainAlive[index]; }
|
||||
[[nodiscard]] TeamId GetMineOwner(uint8 index) const { return m_Mine_Owner[index]; }
|
||||
|
||||
private:
|
||||
void PostUpdateImpl(uint32 diff) override;
|
||||
|
||||
|
||||
@@ -346,6 +346,25 @@ protected:
|
||||
uint32 FlagCaptures = 0;
|
||||
};
|
||||
|
||||
struct CaptureEYPointInfo
|
||||
{
|
||||
CaptureEYPointInfo() : _ownerTeamId(TEAM_NEUTRAL), _barStatus(BG_EY_PROGRESS_BAR_STATE_MIDDLE), _areaTrigger(0)
|
||||
{
|
||||
_playersCount[TEAM_ALLIANCE] = 0;
|
||||
_playersCount[TEAM_HORDE] = 0;
|
||||
}
|
||||
|
||||
Player* player = nullptr;
|
||||
TeamId _ownerTeamId;
|
||||
int8 _barStatus;
|
||||
uint32 _areaTrigger;
|
||||
int8 _playersCount[PVP_TEAMS_COUNT];
|
||||
|
||||
bool IsUnderControl(TeamId teamId) const { return _ownerTeamId == teamId; }
|
||||
bool IsUnderControl() const { return _ownerTeamId != TEAM_NEUTRAL; }
|
||||
bool IsUncontrolled() const { return _ownerTeamId == TEAM_NEUTRAL; }
|
||||
};
|
||||
|
||||
class AC_GAME_API BattlegroundEY : public Battleground
|
||||
{
|
||||
public:
|
||||
@@ -385,6 +404,8 @@ public:
|
||||
bool AllNodesConrolledByTeam(TeamId teamId) const override;
|
||||
TeamId GetPrematureWinner() override;
|
||||
|
||||
[[nodiscard]] CaptureEYPointInfo const& GetCapturePointInfo(uint32 node) const { return _capturePointInfo[node]; }
|
||||
|
||||
private:
|
||||
void PostUpdateImpl(uint32 diff) override;
|
||||
|
||||
@@ -400,26 +421,7 @@ private:
|
||||
/* Scorekeeping */
|
||||
void AddPoints(TeamId teamId, uint32 points);
|
||||
|
||||
struct CapturePointInfo
|
||||
{
|
||||
CapturePointInfo() : _ownerTeamId(TEAM_NEUTRAL), _barStatus(BG_EY_PROGRESS_BAR_STATE_MIDDLE), _areaTrigger(0)
|
||||
{
|
||||
_playersCount[TEAM_ALLIANCE] = 0;
|
||||
_playersCount[TEAM_HORDE] = 0;
|
||||
}
|
||||
|
||||
TeamId _ownerTeamId;
|
||||
int8 _barStatus;
|
||||
uint32 _areaTrigger;
|
||||
int8 _playersCount[PVP_TEAMS_COUNT];
|
||||
Player* player = nullptr;
|
||||
|
||||
bool IsUnderControl(TeamId teamId) const { return _ownerTeamId == teamId; }
|
||||
bool IsUnderControl() const { return _ownerTeamId != TEAM_NEUTRAL; }
|
||||
bool IsUncontrolled() const { return _ownerTeamId == TEAM_NEUTRAL; }
|
||||
};
|
||||
|
||||
CapturePointInfo _capturePointInfo[EY_POINTS_MAX];
|
||||
CaptureEYPointInfo _capturePointInfo[EY_POINTS_MAX];
|
||||
EventMap _bgEvents;
|
||||
uint32 _honorTics;
|
||||
uint8 _ownedPointsCount[PVP_TEAMS_COUNT];
|
||||
|
||||
@@ -922,6 +922,9 @@ public:
|
||||
bool AllNodesConrolledByTeam(TeamId teamId) const override; // overwrited
|
||||
bool IsResourceGlutAllowed(TeamId teamId) const;
|
||||
void DoAction(uint32 action, ObjectGuid guid) override;
|
||||
|
||||
[[nodiscard]] ICNodePoint const& GetICNodePoint(uint8 index) { return nodePoint[index]; }
|
||||
|
||||
private:
|
||||
uint32 closeFortressDoorsTimer;
|
||||
bool doorsClosed;
|
||||
|
||||
@@ -52,6 +52,7 @@ BattlegroundSA::BattlegroundSA()
|
||||
EndRoundTimer = 0s;
|
||||
ShipsStarted = false;
|
||||
Status = BG_SA_NOTSTARTED;
|
||||
_nextShipIsEast = true;
|
||||
|
||||
for (uint8 i = 0; i < 6; i++)
|
||||
GateStatus[i] = BG_SA_GATE_OK;
|
||||
@@ -85,6 +86,7 @@ void BattlegroundSA::Init()
|
||||
_notEvenAScratch[TEAM_HORDE] = true;
|
||||
Status = BG_SA_WARMUP;
|
||||
_relicClicked = false;
|
||||
_nextShipIsEast = true;
|
||||
}
|
||||
|
||||
bool BattlegroundSA::SetupBattleground()
|
||||
@@ -181,6 +183,7 @@ bool BattlegroundSA::ResetObjs()
|
||||
|
||||
TotalTime = 0s;
|
||||
ShipsStarted = false;
|
||||
_nextShipIsEast = true;
|
||||
|
||||
//Graveyards!
|
||||
for (uint8 i = 0; i < BG_SA_MAX_GY; i++)
|
||||
@@ -574,10 +577,12 @@ void BattlegroundSA::TeleportToEntrancePosition(Player* player)
|
||||
if (!ShipsStarted)
|
||||
{
|
||||
player->CastSpell(player, 12438, true);//Without this player falls before boat loads...
|
||||
if (urand(0, 1))
|
||||
if (_nextShipIsEast)
|
||||
player->TeleportTo(MAP_STRAND_OF_THE_ANCIENTS, 2682.936f, -830.368f, 15.0f, 2.895f, 0);
|
||||
else
|
||||
player->TeleportTo(MAP_STRAND_OF_THE_ANCIENTS, 2577.003f, 980.261f, 15.0f, 0.807f, 0);
|
||||
|
||||
_nextShipIsEast = !_nextShipIsEast;
|
||||
}
|
||||
else
|
||||
player->TeleportTo(MAP_STRAND_OF_THE_ANCIENTS, 1600.381f, -106.263f, 8.8745f, 3.78f, 0);
|
||||
|
||||
@@ -620,5 +620,7 @@ private:
|
||||
|
||||
// Achievement: Not Even a Scratch
|
||||
bool _notEvenAScratch[PVP_TEAMS_COUNT];
|
||||
/// Toggle for alternating player spawns between East and West ships (true = first/East ship, false = second/West ship)
|
||||
bool _nextShipIsEast;
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -40,6 +40,7 @@ public:
|
||||
|
||||
Channel* GetJoinChannel(std::string const& name, uint32 channel_id);
|
||||
Channel* GetChannel(std::string const& name, Player* p, bool pkt = true);
|
||||
const ChannelMap& GetChannels() const { return channels; }
|
||||
static void LoadChannels();
|
||||
|
||||
static void LoadChannelRights();
|
||||
|
||||
@@ -371,6 +371,78 @@ std::size_t ChatHandler::BuildChatPacket(WorldPacket& data, ChatMsg chatType, La
|
||||
return BuildChatPacket(data, chatType, language, senderGUID, receiverGUID, message, chatTag, senderName, receiverName, achievementId, gmMessage, channelName);
|
||||
}
|
||||
|
||||
void ChatHandler::BuildChatPacket(WorldPacket& data, ChatMsg msgtype, std::string_view message, Language language /*= LANG_UNIVERSAL*/, PlayerChatTag chatTag /*= CHAT_TAG_NONE*/,
|
||||
ObjectGuid const& senderGuid /*= ObjectGuid()*/, std::string_view senderName /*= nullptr*/,
|
||||
ObjectGuid const& targetGuid /*= ObjectGuid()*/, std::string_view targetName /*= nullptr*/,
|
||||
std::string_view channelName /*= nullptr*/, uint32 achievementId /*= 0*/)
|
||||
{
|
||||
const bool isGM = (chatTag & CHAT_TAG_GM) != 0;
|
||||
bool isAchievement = false;
|
||||
|
||||
data.Initialize((isGM && language != LANG_ADDON) ? SMSG_GM_MESSAGECHAT : SMSG_MESSAGECHAT);
|
||||
data << uint8(msgtype);
|
||||
data << uint32(language);
|
||||
data << ObjectGuid(senderGuid);
|
||||
data << uint32(0); // 2.1.0
|
||||
|
||||
switch (msgtype)
|
||||
{
|
||||
case CHAT_MSG_MONSTER_SAY:
|
||||
case CHAT_MSG_MONSTER_PARTY:
|
||||
case CHAT_MSG_MONSTER_YELL:
|
||||
case CHAT_MSG_MONSTER_WHISPER:
|
||||
case CHAT_MSG_MONSTER_EMOTE:
|
||||
case CHAT_MSG_RAID_BOSS_WHISPER:
|
||||
case CHAT_MSG_RAID_BOSS_EMOTE:
|
||||
case CHAT_MSG_BATTLENET:
|
||||
case CHAT_MSG_WHISPER_FOREIGN:
|
||||
data << uint32(senderName.size() + 1);
|
||||
data << senderName;
|
||||
data << ObjectGuid(targetGuid); // Unit Target
|
||||
if (targetGuid && !targetGuid.IsPlayer() && !targetGuid.IsPet() && (msgtype != CHAT_MSG_WHISPER_FOREIGN))
|
||||
{
|
||||
data << uint32(targetName.size() + 1); // target name length
|
||||
data << targetName; // target name
|
||||
}
|
||||
break;
|
||||
case CHAT_MSG_BG_SYSTEM_NEUTRAL:
|
||||
case CHAT_MSG_BG_SYSTEM_ALLIANCE:
|
||||
case CHAT_MSG_BG_SYSTEM_HORDE:
|
||||
data << ObjectGuid(targetGuid); // Unit Target
|
||||
if (targetGuid && !targetGuid.IsPlayer())
|
||||
{
|
||||
data << uint32(targetName.size() + 1); // target name length
|
||||
data << targetName; // target name
|
||||
}
|
||||
break;
|
||||
case CHAT_MSG_ACHIEVEMENT:
|
||||
case CHAT_MSG_GUILD_ACHIEVEMENT:
|
||||
data << ObjectGuid(targetGuid); // Unit Target
|
||||
isAchievement = true;
|
||||
break;
|
||||
default:
|
||||
if (isGM)
|
||||
{
|
||||
data << uint32(senderName.size() + 1);
|
||||
data << senderName;
|
||||
}
|
||||
|
||||
if (msgtype == CHAT_MSG_CHANNEL)
|
||||
{
|
||||
data << channelName;
|
||||
}
|
||||
data << ObjectGuid(targetGuid);
|
||||
break;
|
||||
}
|
||||
data << uint32(message.size() + 1);
|
||||
data << message;
|
||||
data << uint8(chatTag);
|
||||
|
||||
if (isAchievement)
|
||||
data << uint32(achievementId);
|
||||
}
|
||||
|
||||
|
||||
Player* ChatHandler::getSelectedPlayer() const
|
||||
{
|
||||
if (!m_session)
|
||||
|
||||
@@ -47,6 +47,13 @@ public:
|
||||
// Builds chat packet and returns receiver guid position in the packet to substitute in whisper builders
|
||||
static std::size_t BuildChatPacket(WorldPacket& data, ChatMsg chatType, Language language, WorldObject const* sender, WorldObject const* receiver, std::string_view message, uint32 achievementId = 0, std::string const& channelName = "", LocaleConstant locale = DEFAULT_LOCALE);
|
||||
|
||||
// All in one chat message builder
|
||||
static void BuildChatPacket(
|
||||
WorldPacket& data, ChatMsg msgtype, std::string_view message, Language language = LANG_UNIVERSAL, PlayerChatTag chatTag = CHAT_TAG_NONE,
|
||||
ObjectGuid const& senderGuid = ObjectGuid(), std::string_view senderName = {},
|
||||
ObjectGuid const& targetGuid = ObjectGuid(), std::string_view targetName = {},
|
||||
std::string_view channelName = {}, uint32 achievementId = 0);
|
||||
|
||||
static char* LineFromMessage(char*& pos) { char* start = strtok(pos, "\n"); pos = nullptr; return start; }
|
||||
|
||||
void SendNotification(std::string_view str);
|
||||
|
||||
@@ -328,7 +328,7 @@ HostileReference* ThreatContainer::SelectNextVictim(Creature* attacker, HostileR
|
||||
Unit* cvUnit = currentVictim->getTarget();
|
||||
if (!attacker->CanCreatureAttack(cvUnit)) // pussywizard: if currentVictim is not valid => don't compare the threat with it, just take the highest threat valid target
|
||||
currentVictim = nullptr;
|
||||
else if (cvUnit->IsImmunedToDamageOrSchool(attacker->GetMeleeDamageSchoolMask()) || cvUnit->HasNegativeAuraWithInterruptFlag(AURA_INTERRUPT_FLAG_TAKE_DAMAGE) || cvUnit->HasUnitState(UNIT_STATE_CONFUSED)) // pussywizard: no 10%/30% if currentVictim is immune to damage or has auras breakable by damage
|
||||
else if (!IsPreferredTarget(attacker, cvUnit)) // pussywizard: no 10%/30% if currentVictim is immune to damage or has auras breakable by damage
|
||||
currentVictim = nullptr;
|
||||
}
|
||||
|
||||
@@ -345,7 +345,7 @@ HostileReference* ThreatContainer::SelectNextVictim(Creature* attacker, HostileR
|
||||
|
||||
// pussywizard: don't go to threat comparison if this ref is immune to damage or has aura breakable on damage (second choice target)
|
||||
// pussywizard: if this is the last entry on the threat list, then all targets are second choice, set bool to true and loop threat list again, ignoring this section
|
||||
if (!noPriorityTargetFound && (target->IsImmunedToDamageOrSchool(attacker->GetMeleeDamageSchoolMask()) || target->HasNegativeAuraWithInterruptFlag(AURA_INTERRUPT_FLAG_TAKE_DAMAGE) || target->HasUnitState(UNIT_STATE_CONFUSED) || target->HasAuraTypeWithCaster(SPELL_AURA_IGNORED, attacker->GetGUID())))
|
||||
if (!noPriorityTargetFound && !IsPreferredTarget(attacker, target))
|
||||
{
|
||||
if (iter != lastRef)
|
||||
{
|
||||
@@ -394,6 +394,8 @@ HostileReference* ThreatContainer::SelectNextVictim(Creature* attacker, HostileR
|
||||
}
|
||||
else // pussywizard: no currentVictim, first passing all checks is chosen (highest threat, list is sorted)
|
||||
{
|
||||
// tie-breaker if multiple targets have the same threat: select closest target
|
||||
currentRef = SelectNextVictimTieBreaker(attacker, iter, noPriorityTargetFound);
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
@@ -406,6 +408,69 @@ HostileReference* ThreatContainer::SelectNextVictim(Creature* attacker, HostileR
|
||||
return currentRef;
|
||||
}
|
||||
|
||||
// Helper for Tie-breakers
|
||||
HostileReference* ThreatContainer::SelectNextVictimTieBreaker(Creature* attacker, ThreatContainer::StorageType::const_iterator currentIter, bool noPriorityTargetFound) const
|
||||
{
|
||||
HostileReference* bestRef = *currentIter;
|
||||
float bestThreat = bestRef->GetThreat();
|
||||
float shortestDistSq = attacker->GetExactDistSq(bestRef->getTarget());
|
||||
|
||||
auto tieIter = std::next(currentIter);
|
||||
|
||||
while (tieIter != iThreatList.end())
|
||||
{
|
||||
HostileReference* nextRef = *tieIter;
|
||||
|
||||
if (!nextRef)
|
||||
{
|
||||
++tieIter;
|
||||
continue;
|
||||
}
|
||||
|
||||
// Threatlist is sorted, so we can stop as soon as we find a lower threat
|
||||
if (bestThreat - nextRef->GetThreat() > 0.01f)
|
||||
break;
|
||||
|
||||
Unit* target = nextRef->getTarget();
|
||||
|
||||
if (!target)
|
||||
{
|
||||
++tieIter;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (attacker->CanCreatureAttack(target) && (noPriorityTargetFound || IsPreferredTarget(attacker, target)))
|
||||
{
|
||||
float distSq = attacker->GetExactDistSq(target);
|
||||
if (distSq < shortestDistSq)
|
||||
{
|
||||
bestRef = nextRef;
|
||||
shortestDistSq = distSq;
|
||||
}
|
||||
}
|
||||
++tieIter;
|
||||
}
|
||||
return bestRef;
|
||||
}
|
||||
|
||||
// Helper for checking if a target is preferred (not immune, not confused, etc)
|
||||
bool ThreatContainer::IsPreferredTarget(Creature* attacker, Unit* target) const
|
||||
{
|
||||
if (target->IsImmunedToDamageOrSchool(attacker->GetMeleeDamageSchoolMask()))
|
||||
return false;
|
||||
|
||||
if (target->HasNegativeAuraWithInterruptFlag(AURA_INTERRUPT_FLAG_TAKE_DAMAGE))
|
||||
return false;
|
||||
|
||||
if (target->HasUnitState(UNIT_STATE_CONFUSED))
|
||||
return false;
|
||||
|
||||
if (target->HasAuraTypeWithCaster(SPELL_AURA_IGNORED, attacker->GetGUID()))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//============================================================
|
||||
//=================== ThreatMgr ==========================
|
||||
//============================================================
|
||||
|
||||
@@ -156,6 +156,10 @@ public:
|
||||
|
||||
HostileReference* SelectNextVictim(Creature* attacker, HostileReference* currentVictim) const;
|
||||
|
||||
HostileReference* SelectNextVictimTieBreaker(Creature* attacker, ThreatContainer::StorageType::const_iterator currentIter, bool noPriorityTargetFound) const;
|
||||
|
||||
bool IsPreferredTarget(Creature* attacker, Unit* target) const;
|
||||
|
||||
void setDirty(bool isDirty) { iDirty = isDirty; }
|
||||
|
||||
[[nodiscard]] bool isDirty() const { return iDirty; }
|
||||
|
||||
@@ -542,13 +542,13 @@ bool Condition::Meets(ConditionSourceInfo& sourceInfo)
|
||||
condMeets = object->GetMap()->GetDifficulty() == ConditionValue1;
|
||||
break;
|
||||
}
|
||||
case CONDITION_RANDOM_DUNGEON:
|
||||
case CONDITION_PLAYER_QUEUED_RANDOM_DUNGEON:
|
||||
{
|
||||
if (Unit* unit = object->ToUnit())
|
||||
{
|
||||
if (Player* player = unit->GetCharmerOrOwnerPlayerOrPlayerItself())
|
||||
if (Player* player = unit->ToPlayer())
|
||||
{
|
||||
if (sLFGMgr->selectedRandomLfgDungeon(player->GetGUID()))
|
||||
if (sLFGMgr->IsPlayerQueuedForRandomDungeon(player->GetGUID()))
|
||||
{
|
||||
if (!ConditionValue1)
|
||||
condMeets = true;
|
||||
@@ -803,7 +803,7 @@ uint32 Condition::GetSearcherTypeMaskForCondition()
|
||||
case CONDITION_CHARMED:
|
||||
mask |= GRID_MAP_TYPE_MASK_CREATURE | GRID_MAP_TYPE_MASK_PLAYER;
|
||||
break;
|
||||
case CONDITION_RANDOM_DUNGEON:
|
||||
case CONDITION_PLAYER_QUEUED_RANDOM_DUNGEON:
|
||||
mask |= GRID_MAP_TYPE_MASK_PLAYER;
|
||||
break;
|
||||
case CONDITION_WORLD_SCRIPT:
|
||||
@@ -2486,7 +2486,7 @@ bool ConditionMgr::isConditionTypeValid(Condition* cond)
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case CONDITION_RANDOM_DUNGEON:
|
||||
case CONDITION_PLAYER_QUEUED_RANDOM_DUNGEON:
|
||||
if (cond->ConditionValue1 > 1)
|
||||
{
|
||||
LOG_ERROR("sql.sql", "RandomDungeon condition has useless data in value1 ({}).", cond->ConditionValue1);
|
||||
|
||||
@@ -88,7 +88,7 @@ enum ConditionTypes
|
||||
CONDITION_HAS_AURA_TYPE = 102, // aura_type 0 0 true if has aura type
|
||||
CONDITION_WORLD_SCRIPT = 103, // conditionId state 0 true if WorldState::IsConditionFulfilled returns true
|
||||
CONDITION_AI_DATA = 104, // dataId value 0 true if AI::GetData returns value
|
||||
CONDITION_RANDOM_DUNGEON = 105, // difficulty (0 = any) 0 0 true if player is queued for a random dungeon via RDF (param1 = Difficulty)
|
||||
CONDITION_PLAYER_QUEUED_RANDOM_DUNGEON = 105, // checkDifficulty difficulty 0 true if player is queued for a random dungeon via RDF
|
||||
|
||||
CONDITION_AC_END = 106 // placeholder
|
||||
};
|
||||
|
||||
@@ -34,11 +34,16 @@ typedef std::map<uint32, uint32> AreaFlagByMapID;
|
||||
typedef std::tuple<int16, int8, int32> WMOAreaTableKey;
|
||||
typedef std::map<WMOAreaTableKey, WMOAreaTableEntry const*> WMOAreaInfoByTripple;
|
||||
|
||||
typedef std::multimap<uint32, CharSectionsEntry const*> CharSectionsMap;
|
||||
|
||||
DBCStorage <AreaTableEntry> sAreaTableStore(AreaTableEntryfmt);
|
||||
DBCStorage <AreaGroupEntry> sAreaGroupStore(AreaGroupEntryfmt);
|
||||
DBCStorage <AreaPOIEntry> sAreaPOIStore(AreaPOIEntryfmt);
|
||||
|
||||
static WMOAreaInfoByTripple sWMOAreaInfoByTripple;
|
||||
static AreaFlagByAreaID sAreaFlagByAreaID;
|
||||
// for instances without generated *.map files
|
||||
static AreaFlagByMapID sAreaFlagByMapID;
|
||||
|
||||
DBCStorage <AchievementEntry> sAchievementStore(Achievementfmt);
|
||||
DBCStorage <AchievementCategoryEntry> sAchievementCategoryStore(AchievementCategoryfmt);
|
||||
@@ -49,6 +54,10 @@ DBCStorage <BattlemasterListEntry> sBattlemasterListStore(BattlemasterListEntryf
|
||||
DBCStorage <BarberShopStyleEntry> sBarberShopStyleStore(BarberShopStyleEntryfmt);
|
||||
DBCStorage <CharStartOutfitEntry> sCharStartOutfitStore(CharStartOutfitEntryfmt);
|
||||
std::map<uint32, CharStartOutfitEntry const*> sCharStartOutfitMap;
|
||||
|
||||
DBCStorage <CharSectionsEntry> sCharSectionsStore(CharSectionsEntryfmt);
|
||||
CharSectionsMap sCharSectionMap;
|
||||
|
||||
DBCStorage <CharTitlesEntry> sCharTitlesStore(CharTitlesEntryfmt);
|
||||
DBCStorage <ChatChannelsEntry> sChatChannelsStore(ChatChannelsEntryfmt);
|
||||
DBCStorage <ChrClassesEntry> sChrClassesStore(ChrClassesEntryfmt);
|
||||
@@ -71,6 +80,10 @@ DBCStorage <DurabilityCostsEntry> sDurabilityCostsStore(DurabilityCostsfmt);
|
||||
DBCStorage <EmotesEntry> sEmotesStore(EmotesEntryfmt);
|
||||
DBCStorage <EmotesTextEntry> sEmotesTextStore(EmotesTextEntryfmt);
|
||||
|
||||
typedef std::tuple<uint32, uint32, uint32> EmotesTextSoundKey;
|
||||
static std::map<EmotesTextSoundKey, EmotesTextSoundEntry const*> sEmotesTextSoundMap;
|
||||
DBCStorage <EmotesTextSoundEntry> sEmotesTextSoundStore(EmotesTextSoundEntryfmt);
|
||||
|
||||
typedef std::map<uint32, SimpleFactionsList> FactionTeamMap;
|
||||
static FactionTeamMap sFactionTeamMap;
|
||||
DBCStorage <FactionEntry> sFactionStore(FactionEntryfmt);
|
||||
@@ -280,6 +293,7 @@ void LoadDBCStores(const std::string& dataPath)
|
||||
LOAD_DBC(sBattlemasterListStore, "BattlemasterList.dbc", "battlemasterlist_dbc");
|
||||
LOAD_DBC(sBarberShopStyleStore, "BarberShopStyle.dbc", "barbershopstyle_dbc");
|
||||
LOAD_DBC(sCharStartOutfitStore, "CharStartOutfit.dbc", "charstartoutfit_dbc");
|
||||
LOAD_DBC(sCharSectionsStore, "CharSections.dbc", "charsections_dbc");
|
||||
LOAD_DBC(sCharTitlesStore, "CharTitles.dbc", "chartitles_dbc");
|
||||
LOAD_DBC(sChatChannelsStore, "ChatChannels.dbc", "chatchannels_dbc");
|
||||
LOAD_DBC(sChrClassesStore, "ChrClasses.dbc", "chrclasses_dbc");
|
||||
@@ -299,6 +313,7 @@ void LoadDBCStores(const std::string& dataPath)
|
||||
LOAD_DBC(sDurabilityQualityStore, "DurabilityQuality.dbc", "durabilityquality_dbc");
|
||||
LOAD_DBC(sEmotesStore, "Emotes.dbc", "emotes_dbc");
|
||||
LOAD_DBC(sEmotesTextStore, "EmotesText.dbc", "emotestext_dbc");
|
||||
LOAD_DBC(sEmotesTextSoundStore, "EmotesTextSound.dbc", "emotetextsound_dbc");
|
||||
LOAD_DBC(sFactionStore, "Faction.dbc", "faction_dbc");
|
||||
LOAD_DBC(sFactionTemplateStore, "FactionTemplate.dbc", "factiontemplate_dbc");
|
||||
LOAD_DBC(sGameObjectArtKitStore, "GameObjectArtKit.dbc", "gameobjectartkit_dbc");
|
||||
@@ -384,9 +399,26 @@ void LoadDBCStores(const std::string& dataPath)
|
||||
|
||||
#undef LOAD_DBC
|
||||
|
||||
for (uint32 i = 0; i < sAreaTableStore.GetNumRows(); ++i) // areaflag numbered from 0
|
||||
{
|
||||
if (AreaTableEntry const* area = sAreaTableStore.LookupEntry(i))
|
||||
{
|
||||
// fill AreaId->DBC records
|
||||
sAreaFlagByAreaID.insert(AreaFlagByAreaID::value_type(uint16(area->ID), area->exploreFlag));
|
||||
|
||||
// fill MapId->DBC records ( skip sub zones and continents )
|
||||
if (area->zone == 0 && area->mapid != 0 && area->mapid != 1 && area->mapid != 530)
|
||||
sAreaFlagByMapID.insert(AreaFlagByMapID::value_type(area->mapid, area->exploreFlag));
|
||||
}
|
||||
}
|
||||
|
||||
for (CharStartOutfitEntry const* outfit : sCharStartOutfitStore)
|
||||
sCharStartOutfitMap[outfit->Race | (outfit->Class << 8) | (outfit->Gender << 16)] = outfit;
|
||||
|
||||
for (CharSectionsEntry const* charSection : sCharSectionsStore)
|
||||
if (charSection->Race && ((1 << (charSection->Race - 1)) & RACEMASK_ALL_PLAYABLE) != 0) //ignore Nonplayable races
|
||||
sCharSectionMap.insert({ charSection->GenType | (charSection->Gender << 8) | (charSection->Race << 16), charSection });
|
||||
|
||||
for (FactionEntry const* faction : sFactionStore)
|
||||
{
|
||||
if (faction->team)
|
||||
@@ -408,6 +440,9 @@ void LoadDBCStores(const std::string& dataPath)
|
||||
std::swap(*(float*)(&info->maxZ), *(float*)(&info->minZ));
|
||||
}
|
||||
|
||||
for (EmotesTextSoundEntry const* emoteTextSound : sEmotesTextSoundStore)
|
||||
sEmotesTextSoundMap[EmotesTextSoundKey(emoteTextSound->EmotesTextId, emoteTextSound->RaceId, emoteTextSound->SexId)] = emoteTextSound;
|
||||
|
||||
// fill data
|
||||
for (MapDifficultyEntry const* entry : sMapDifficultyStore)
|
||||
sMapDifficultyMap[MAKE_PAIR32(entry->MapId, entry->Difficulty)] = MapDifficulty(entry->resetTime, entry->maxPlayers, entry->areaTriggerText[0] != '\0');
|
||||
@@ -848,6 +883,18 @@ CharStartOutfitEntry const* GetCharStartOutfitEntry(uint8 race, uint8 class_, ui
|
||||
return itr->second;
|
||||
}
|
||||
|
||||
CharSectionsEntry const* GetCharSectionEntry(uint8 race, CharSectionType genType, uint8 gender, uint8 type, uint8 color)
|
||||
{
|
||||
std::pair<CharSectionsMap::const_iterator, CharSectionsMap::const_iterator> eqr = sCharSectionMap.equal_range(uint32(genType) | uint32(gender << 8) | uint32(race << 16));
|
||||
for (CharSectionsMap::const_iterator itr = eqr.first; itr != eqr.second; ++itr)
|
||||
{
|
||||
if (itr->second->Type == type && itr->second->Color == color)
|
||||
return itr->second;
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
/// Returns LFGDungeonEntry for a specific map and difficulty. Will return first found entry if multiple dungeons use the same map (such as Scarlet Monastery)
|
||||
LFGDungeonEntry const* GetLFGDungeon(uint32 mapId, Difficulty difficulty)
|
||||
{
|
||||
@@ -913,6 +960,12 @@ SkillRaceClassInfoEntry const* GetSkillRaceClassInfo(uint32 skill, uint8 race, u
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
EmotesTextSoundEntry const* FindTextSoundEmoteFor(uint32 emote, uint32 race, uint32 gender)
|
||||
{
|
||||
auto itr = sEmotesTextSoundMap.find(EmotesTextSoundKey(emote, race, gender));
|
||||
return itr != sEmotesTextSoundMap.end() ? itr->second : nullptr;
|
||||
}
|
||||
|
||||
const std::vector<SkillLineAbilityEntry const*>& GetSkillLineAbilitiesBySkillLine(uint32 skillLine)
|
||||
{
|
||||
auto it = sSkillLineAbilityIndexBySkillLine.find(skillLine);
|
||||
@@ -923,3 +976,40 @@ const std::vector<SkillLineAbilityEntry const*>& GetSkillLineAbilitiesBySkillLin
|
||||
}
|
||||
return it->second;
|
||||
}
|
||||
|
||||
uint32 GetAreaFlagByMapId(uint32 mapid)
|
||||
{
|
||||
AreaFlagByMapID::iterator i = sAreaFlagByMapID.find(mapid);
|
||||
if (i == sAreaFlagByMapID.end())
|
||||
return 0;
|
||||
return i->second;
|
||||
}
|
||||
|
||||
int32 GetAreaFlagByAreaID(uint32 area_id)
|
||||
{
|
||||
AreaFlagByAreaID::iterator i = sAreaFlagByAreaID.find(area_id);
|
||||
if (i == sAreaFlagByAreaID.end())
|
||||
return -1;
|
||||
|
||||
return i->second;
|
||||
}
|
||||
|
||||
AreaTableEntry const* GetAreaEntryByAreaID(uint32 area_id)
|
||||
{
|
||||
int32 areaflag = GetAreaFlagByAreaID(area_id);
|
||||
if (areaflag < 0)
|
||||
return nullptr;
|
||||
|
||||
return sAreaTableStore.LookupEntry(areaflag);
|
||||
}
|
||||
|
||||
AreaTableEntry const* GetAreaEntryByAreaFlagAndMap(uint32 area_flag, uint32 map_id)
|
||||
{
|
||||
if (area_flag)
|
||||
return sAreaTableStore.LookupEntry(area_flag);
|
||||
|
||||
if (MapEntry const* mapEntry = sMapStore.LookupEntry(map_id))
|
||||
return GetAreaEntryByAreaID(mapEntry->linked_zone);
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
@@ -35,6 +35,13 @@ TalentSpellPos const* GetTalentSpellPos(uint32 spellId);
|
||||
|
||||
WMOAreaTableEntry const* GetWMOAreaTableEntryByTripple(int32 rootid, int32 adtid, int32 groupid);
|
||||
|
||||
|
||||
// -1 if not found
|
||||
int32 GetAreaFlagByAreaID(uint32 area_id);
|
||||
uint32 GetAreaFlagByMapId(uint32 mapid);
|
||||
AreaTableEntry const* GetAreaEntryByAreaID(uint32 area_id);
|
||||
AreaTableEntry const* GetAreaEntryByAreaFlagAndMap(uint32 area_flag, uint32 map_id);
|
||||
|
||||
uint32 GetVirtualMapForMapAndZone(uint32 mapid, uint32 zoneId);
|
||||
|
||||
enum ContentLevels : uint8
|
||||
@@ -63,6 +70,8 @@ PvPDifficultyEntry const* GetBattlegroundBracketById(uint32 mapid, BattlegroundB
|
||||
|
||||
CharStartOutfitEntry const* GetCharStartOutfitEntry(uint8 race, uint8 class_, uint8 gender);
|
||||
|
||||
CharSectionsEntry const* GetCharSectionEntry(uint8 race, CharSectionType genType, uint8 gender, uint8 type, uint8 color);
|
||||
|
||||
LFGDungeonEntry const* GetLFGDungeon(uint32 mapId, Difficulty difficulty);
|
||||
LFGDungeonEntry const* GetZoneLFGDungeonEntry(std::string const& zoneName, LocaleConstant locale);
|
||||
|
||||
@@ -72,6 +81,7 @@ typedef std::unordered_multimap<uint32, SkillRaceClassInfoEntry const*> SkillRac
|
||||
typedef std::pair<SkillRaceClassInfoMap::iterator, SkillRaceClassInfoMap::iterator> SkillRaceClassInfoBounds;
|
||||
SkillRaceClassInfoEntry const* GetSkillRaceClassInfo(uint32 skill, uint8 race, uint8 class_);
|
||||
|
||||
EmotesTextSoundEntry const* FindTextSoundEmoteFor(uint32 emote, uint32 race, uint32 gender);
|
||||
typedef std::unordered_map<uint32 /* SkillLine */, std::vector<SkillLineAbilityEntry const*> > SkillLineAbilityIndexBySkillLine;
|
||||
const std::vector<SkillLineAbilityEntry const*>& GetSkillLineAbilitiesBySkillLine(uint32 skillLine);
|
||||
|
||||
@@ -87,6 +97,7 @@ extern DBCStorage <BarberShopStyleEntry> sBarberShopStyleStore;
|
||||
extern DBCStorage <BattlemasterListEntry> sBattlemasterListStore;
|
||||
extern DBCStorage <ChatChannelsEntry> sChatChannelsStore;
|
||||
extern DBCStorage <CharStartOutfitEntry> sCharStartOutfitStore;
|
||||
extern DBCStorage <CharSectionsEntry> sCharSectionsStore;
|
||||
extern DBCStorage <CharTitlesEntry> sCharTitlesStore;
|
||||
extern DBCStorage <ChrClassesEntry> sChrClassesStore;
|
||||
extern DBCStorage <ChrRacesEntry> sChrRacesStore;
|
||||
@@ -105,6 +116,7 @@ extern DBCStorage <DurabilityCostsEntry> sDurabilityCostsStore;
|
||||
extern DBCStorage <DurabilityQualityEntry> sDurabilityQualityStore;
|
||||
extern DBCStorage <EmotesEntry> sEmotesStore;
|
||||
extern DBCStorage <EmotesTextEntry> sEmotesTextStore;
|
||||
extern DBCStorage <EmotesTextSoundEntry> sEmotesTextSoundStore;
|
||||
extern DBCStorage <FactionEntry> sFactionStore;
|
||||
extern DBCStorage <FactionTemplateEntry> sFactionTemplateStore;
|
||||
extern DBCStorage <GameObjectArtKitEntry> sGameObjectArtKitStore;
|
||||
|
||||
@@ -139,4 +139,13 @@ namespace lfg
|
||||
return m_KicksLeft;
|
||||
}
|
||||
|
||||
void LfgGroupData::AddRandomQueuedPlayer(ObjectGuid guid)
|
||||
{
|
||||
m_RandomQueuedPlayers.insert(guid);
|
||||
}
|
||||
|
||||
[[nodiscard]] bool LfgGroupData::IsRandomQueuedPlayer(ObjectGuid guid) const
|
||||
{
|
||||
return m_RandomQueuedPlayers.contains(guid);
|
||||
}
|
||||
} // namespace lfg
|
||||
|
||||
@@ -37,6 +37,8 @@ namespace lfg
|
||||
void SetState(LfgState state);
|
||||
void RestoreState();
|
||||
void AddPlayer(ObjectGuid guid);
|
||||
void AddRandomQueuedPlayer(ObjectGuid guid);
|
||||
[[nodiscard]] bool IsRandomQueuedPlayer(ObjectGuid guid) const;
|
||||
uint8 RemovePlayer(ObjectGuid guid);
|
||||
void RemoveAllPlayers();
|
||||
void SetLeader(ObjectGuid guid);
|
||||
@@ -66,6 +68,7 @@ namespace lfg
|
||||
LfgState m_OldState; ///< Old State
|
||||
ObjectGuid m_Leader; ///< Leader GUID
|
||||
LfgGuidSet m_Players; ///< Players in group
|
||||
LfgGuidSet m_RandomQueuedPlayers; ///< Players that queued for random dungeon
|
||||
// Dungeon
|
||||
uint32 m_Dungeon; ///< Dungeon entry
|
||||
bool _isLFGGroup;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user