601 Commits

Author SHA1 Message Date
bashermens
a6b28f730b Merge pull request #158 from hermensbas/fix/minor_crash_fixes
Workaround and minor core safety check
2026-01-23 12:21:21 +01:00
bash
b3b103b93f minor workaround due dirty/incorrect group handling playerbots 2026-01-23 11:37:20 +01:00
bashermens
d909d4be4e Merge pull request #157 from azerothcore/master
Update
2026-01-22 17:27:50 +01:00
github-actions[bot]
5ca71f3fbe chore(DB): import pending files
Referenced commit(s): f3b1a0b27e
2026-01-22 04:32:21 +00:00
Kitzunu
8a157ea71d fix(DB/Item): Explosive Decoy (#24221)
Co-authored-by: Gultask <100873791+Gultask@users.noreply.github.com>
2026-01-22 01:32:03 -03:00
github-actions[bot]
cc068a5452 chore(DB): import pending files
Referenced commit(s): bfe2c174b4
2026-01-22 04:31:53 +00:00
Ryan Turner
f3b1a0b27e fix(DB/SAI) - Stormforged Tacticians will now target a random target with Arc Weld (#24362)
Co-authored-by: FlyingArowana <TheSCREWEDSoftware@users.noreply.github.com>
2026-01-22 01:31:11 -03:00
rorshan
bfe2c174b4 fix(DB/Quest): A Flawless Plan now has correct requirement and phasing (#24091) 2026-01-22 01:30:47 -03:00
Tereneckla
7e48278a8e fix(Core/Unit): improve resistance calculation (#24377)
Co-authored-by: sudlud <sudlud@users.noreply.github.com>
2026-01-22 01:28:38 -03:00
Gultask
2069445a97 fix(Core/Threat): Creatures should target the closest unit when threat is tied between players (#24227) 2026-01-22 00:52:18 -03:00
github-actions[bot]
6db120d78f chore(DB): import pending files
Referenced commit(s): 9e574c2049
2026-01-22 03:09:36 +00:00
Andrew
9e574c2049 fix(Scripts/Naxxramas): Fix Gluth Decimate to leave targets at 5% health (#24489)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-22 00:08:29 -03:00
github-actions[bot]
68be5c4b24 chore(DB): import pending files
Referenced commit(s): 0b7cd099ae
2026-01-21 11:47:39 +00:00
Andrew
0b7cd099ae fix(DB/Reputation): Implement Violet Hold heroic reputation (#24481) 2026-01-21 08:46:36 -03:00
github-actions[bot]
e5517fb215 chore(DB): import pending files
Referenced commit(s): d7f31c2f58
2026-01-21 01:20:55 +00:00
Gultask
d7f31c2f58 fix(DB/Loot): Add several unobtainable items that should be obtainable (#24454) 2026-01-20 22:16:17 -03:00
github-actions[bot]
01680f3bbb chore(DB): import pending files
Referenced commit(s): 0bac780877
2026-01-21 01:15:11 +00:00
Gultask
0bac780877 fix(DB/Loot): Set Chance and Conditions to BoP recipe drops in Magister's Terrace (#24473) 2026-01-20 22:14:03 -03:00
sogladev
253eb1997a feat(Scripts/Commands): deserter add now also kicks from bg or group (#24451) 2026-01-20 19:49:09 -03:00
github-actions[bot]
d5b59552e2 chore(DB): import pending files
Referenced commit(s): 73f4bfd713
2026-01-20 22:48:57 +00:00
Gultask
73f4bfd713 fix(Scripts/Nexus): Improve Crystalline Frayer (#24480) 2026-01-20 19:47:49 -03:00
github-actions[bot]
e062d26ff5 chore(DB): import pending files
Referenced commit(s): b2910f2b2c
2026-01-20 13:16:03 +00:00
Gultask
b2910f2b2c fix(DB/SAI): Reset Rift Spawn on Evade (#24476) 2026-01-20 10:14:53 -03:00
github-actions[bot]
f0f9d056bd chore(DB): import pending files
Referenced commit(s): 6b2f1ceb81
2026-01-20 11:56:15 +00:00
Gultask
6b2f1ceb81 fix(DB/SAI): Set the range of the scripts in The Stones That Bind Us to be equal to the related spell (#24474) 2026-01-20 12:54:36 +01:00
Gultask
9fe94df3e6 fix(Scripts/SethekkHalls): Prevent Ikiss from moving during the Arcane Explosion combo (#24471) 2026-01-20 12:51:47 +01:00
github-actions[bot]
bed9c2b532 chore(DB): import pending files
Referenced commit(s): e9233e400e
2026-01-20 08:52:09 +00:00
Apatia
e9233e400e fix(DB/npc_vendor): Update correct S5 vendor prices and include missi… (#24469) 2026-01-20 09:49:58 +01:00
Gultask
0dec7c1c7c fix(Scripts/HyjalSummit): Set correct On Death Talk for Archimonde (#24475) 2026-01-19 20:35:46 +01:00
Rocco Silipo
36af3bf820 fix(DB): Remove creature template movement from Drakuru Shackles. (#24470) 2026-01-19 12:19:08 -03:00
github-actions[bot]
9092790284 chore(DB): import pending files
Referenced commit(s): 702c99b6b1
2026-01-19 14:14:35 +00:00
Rocco Silipo
702c99b6b1 fix(DB/SAI): Move Drakuru Shackles & Captured Rageclaw behaviour on SAI. (#24467) 2026-01-19 15:13:30 +01:00
sogladev
f72b42eb81 fix(Scripts/Northrend): Reset palehoof threat before engage (#24426) 2026-01-19 08:56:28 +01:00
github-actions[bot]
ff9638831b chore(DB): import pending files
Referenced commit(s): dd43e9078a
2026-01-19 06:14:00 +00:00
Gultask
dd43e9078a fix(DB/SAI): Rewrite Gambling Debt (11464) quest handling (#24444) 2026-01-19 07:12:57 +01:00
Gultask
03f5d038ac fix(Core/Creature): Allow scripts to modify a creature's Gossip Menu ID (#24442) 2026-01-19 06:15:14 +01:00
sogladev
8b77562d8a fix(Core/Player): trainer filter invalid class and race combination (#24333) 2026-01-19 06:12:11 +01:00
github-actions[bot]
0306c47380 chore(DB): import pending files
Referenced commit(s): c6720a3074
2026-01-18 20:21:44 +00:00
sogladev
c6720a3074 fix(DB/TrainerSpell): update requirements for Fel Iron/Thorium/Kohrium smelting (#24437) 2026-01-18 21:20:42 +01:00
github-actions[bot]
bb49c9f844 chore(DB): import pending files
Referenced commit(s): 5caef28b48
2026-01-18 20:16:32 +00:00
Gultask
5caef28b48 fix(DB/Loot): Sheep (1933) should be able to drop Wool Cloth if skinned (#24436)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-18 21:15:27 +01:00
github-actions[bot]
77cdfef043 chore(DB): import pending files
Referenced commit(s): 7332bb549f
2026-01-18 19:49:00 +00:00
Ryan Turner
7332bb549f fix(DB/Loot) - Make "Spiritsbreath" 100% drop (#24462)
Co-authored-by: FlyingArowana <TheSCREWEDSoftware@users.noreply.github.com>
2026-01-18 20:47:55 +01:00
sogladev
5370aaeb52 fix(Scripts/Northrend): speed up Hadronox move event (#24358) 2026-01-18 19:52:38 +01:00
sogladev
d177c900c7 fix(Core/Battlegrounds): Strand of the Ancients even ship spawns (#24427)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: sudlud <sudlud@users.noreply.github.com>
2026-01-18 19:50:24 +01:00
sogladev
182c9e4ad3 fix(Scripts/ICC): correct Lich King Val'Kyr summon count (#24447) 2026-01-17 17:30:18 -03:00
github-actions[bot]
911d602a41 chore(DB): import pending files
Referenced commit(s): b48d85c442
2026-01-17 01:18:06 +00:00
Gultask
42f65b2046 fix(DB/SAI): Remove No Repeat flag from Quest Credit in Rallying the Troops (#24435)
Co-authored-by: sogladev <sogladev@gmail.com>
2026-01-16 22:17:52 -03:00
Gultask
b48d85c442 fix(DB/Loot): Adjust Prospecting rates for Fel Iron Ore (#24432) 2026-01-16 22:16:58 -03:00
killerwife
4bc5466435 fix(Core/Movement): Rename walkmode flag to proper name canswim and resolve issues (#24410) 2026-01-16 22:02:07 +01:00
bashermens
2d2a5223cb Merge pull request #155 from hermensbas/fix/fix_bots_cant_use_game_objects
[BUG FIX] Bots can't use game objects
2026-01-16 21:38:41 +01:00
bashermens
756d502d8c Update ChatHandler.cpp 2026-01-16 21:37:25 +01:00
bash
1589861810 fix 2026-01-16 21:35:16 +01:00
Gultask
57bea39e0d fix(Scripts/Mechanar): Adjust Pathaleon the Calculator Spell Timers (#24431) 2026-01-16 14:28:37 -03:00
github-actions[bot]
f01ac3f88e chore(DB): import pending files
Referenced commit(s): 7cc7cbd094
2026-01-16 02:35:01 +00:00
Gultask
445184db4d fix(DB/Icecrown): Set up phasing for Malykriss in Knights of the Ebon Blade Questline (#24376) 2026-01-15 23:34:34 -03:00
blinkysc
7cc7cbd094 fix(Core/Network): Rename AuthSession struct (#24428)
Co-authored-by: blinkysc <blinkysc@users.noreply.github.com>
2026-01-15 23:31:34 -03:00
sogladev
e85c267c28 fix(Core/Conditions): correctly check if player queued random dungeon (#24424) 2026-01-15 23:22:58 -03:00
bashermens
8f1ba2a484 Merge pull request #153 from hermensbas/fix/reverse_movement_point_movement
[BUG FIX] Reverse walking
2026-01-16 02:26:37 +01:00
bash
d21c3ec106 fix 2026-01-15 19:36:28 +01:00
blinkysc
d908b4c2fc refactor(Core/Network): Port TrinityCore socket optimizations (#24384)
Co-authored-by: blinkysc <blinkysc@users.noreply.github.com>
Co-authored-by: Shauren <shauren@users.noreply.github.com>
2026-01-15 10:47:58 -03:00
Andrew
a8ce95ad71 fix(Scripts/Naxxramas): Fix Anub minion spawn crash (#24419) 2026-01-15 09:29:38 -03:00
github-actions[bot]
e7eb346141 chore(DB): import pending files
Referenced commit(s): 218e96c59e
2026-01-15 11:54:54 +00:00
Rocco Silipo
218e96c59e fix(DB/SAI): Edit spell timers for Watchers in Azjol-Nerub. (#24418) 2026-01-15 08:53:46 -03:00
Ryan Turner
e191efe89d fix(apps/config-merger): Update readme to tell the user how to get the actual file (#24413) 2026-01-15 09:10:05 +01:00
UndeadRogue
bad46ba2f2 fix(Core/ItemHandler): Prevent client bug from OnPlayerCanSellItem (#24400) 2026-01-15 07:01:36 +01:00
bashermens
bd3fae16a6 Merge pull request #152 from azerothcore/master
Update
2026-01-15 00:22:28 +01:00
github-actions[bot]
5ed3e533f1 chore(DB): import pending files
Referenced commit(s): 45c8f242c2
2026-01-14 12:53:06 +00:00
sogladev
45c8f242c2 fix(Core/ObjectMgr): warn trainer creature with no gossip_menu_option (#24336) 2026-01-14 09:52:01 -03:00
github-actions[bot]
e1685a23f5 chore(DB): import pending files
Referenced commit(s): 76dc129839
2026-01-14 06:09:50 +00:00
Gultask
76dc129839 fix(DB/Quest): Add missing Meet Lieutenant Icehammer... flight scene (#24409)
Co-authored-by: Eridium <6587064+Killyana@users.noreply.github.com>
2026-01-14 07:08:45 +01:00
Andrew
2bac143eb8 feat(Scripts/Commands): Allow using packetlog command from console (#24406) 2026-01-12 23:16:52 -03:00
github-actions[bot]
87a3be1dc2 chore(DB): import pending files
Referenced commit(s): df98dc87a3
2026-01-13 02:05:04 +00:00
Gultask
aa3a27c430 fix(DB/Quest): Improve Artruis the Heartless event reset (#24353) 2026-01-12 23:04:34 -03:00
Gultask
df98dc87a3 fix(DB/SAI): Improve 'Rampage' reset and quest progression Scripts (#24379) 2026-01-12 23:03:59 -03:00
github-actions[bot]
4ef9b00b01 chore(DB): import pending files
Referenced commit(s): fded8c48af
2026-01-13 01:40:02 +00:00
Gultask
fded8c48af fix(DB/SAI): Set flags to Valduran to stop quest event script being broken (#24348) 2026-01-12 22:38:53 -03:00
github-actions[bot]
86b411ea99 chore(DB): import pending files
Referenced commit(s): 67f9b7254f
2026-01-13 01:36:46 +00:00
blinkysc
67f9b7254f fix(DB/Conditions): Restrict holiday items to their events (#24405)
Co-authored-by: blinkysc <blinkysc@users.noreply.github.com>
2026-01-12 22:35:41 -03:00
bashermens
d1e9496fa4 Merge pull request #148 from azerothcore/master
update
2026-01-13 00:50:29 +01:00
Gultask
15f596c9d8 fix(Scripts/HoS): Set Boss Boundaries for Sjonnir (#24370) 2026-01-12 13:09:14 -03:00
github-actions[bot]
4b9c6ae55f chore(DB): import pending files
Referenced commit(s): 9e6493ff26
2026-01-12 13:32:16 +00:00
blinkysc
9e6493ff26 fix(Core/SmartAI): Skip positive spells when determining attack distance (#24381)
Co-authored-by: blinkysc <blinkysc@users.noreply.github.com>
2026-01-12 10:31:13 -03:00
Andrew
7ffef7b5fa fix(Scripts/CoS): Move chest spawn handling to Mal'Ganis script (#24382) 2026-01-12 08:30:33 -03:00
github-actions[bot]
088b86052d chore(DB): import pending files
Referenced commit(s): db2dafec95
2026-01-12 02:27:48 +00:00
Gultask
db2dafec95 fix(Scripts/Spells): Implement Blade Barrier Script (#24154)
Co-authored-by: Ariel Silva <ariel-@users.noreply.github.com>
2026-01-11 23:26:41 -03:00
Victor Godoy
6bdc48c7d4 fix(Scripts/RubySanctum): Halion Corporeality not updating (#24383)
Co-authored-by: victor <vngodoyr@unap.cl>
2026-01-11 18:26:35 -03:00
bashermens
b37d504c99 Merge pull request #145 from hermensbas/fixes/delta_cleanup_correction
[HOT FIX] Cleanup corrections (mistakes make during cleanup)
2026-01-11 21:23:51 +01:00
Benjamin Jackson
36560a4ff3 fix(Core/Entities): Don't reward quest reputation for factions that are hostile to your player's team. (#24100)
Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>
2026-01-11 20:57:04 +01:00
bash
d81355460f corrections 2026-01-11 20:49:54 +01:00
sudlud
0b9472b7cd fix(apps/installer): update mysql installation for Debain 13 (#24368)
Co-authored-by: Degen <61268368+aradep@users.noreply.github.com>
2026-01-11 20:45:34 +01:00
Thelsen
1b35971f00 refactor(CMake): Improve ARM target detection, deprecate powerpc (#24329)
Co-authored-by: Shauren <shauren.trinity@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-11 20:43:41 +01:00
Gultask
71cc99f1a9 fix(Scripts/Nexus): Don't update Telestra's event timers while she's affected by Ice Nova (#24354) 2026-01-11 12:31:48 -03:00
github-actions[bot]
838e49f007 chore(DB): import pending files
Referenced commit(s): a4c2476957
2026-01-10 21:14:47 +00:00
Gultask
a4c2476957 fix(DB/Conditions): Don't allow players to steal other players' horses during Mounting Up (#24374) 2026-01-10 18:13:43 -03:00
Dan
beae2ba6d6 fix(Scripts/Naxxramas): further modernise Anub'Rekhan (#24225)
Co-authored-by: sogladev <sogladev@gmail.com>
2026-01-10 11:45:57 -03:00
Andrew
226591a02e fix(Scripts/AN): Ensure only the watchers minions start the event (#24371) 2026-01-10 10:36:35 -03:00
Dan
1f270d0fd1 fix(Scripts/Naxxramas): make sure mobs attack live side EVEN if nobody was on dead side for the whole fight (#24344) 2026-01-10 11:39:22 +01:00
Benjamin Jackson
e12f739dc9 chore(Core/Entities): Define deprecated resting states for players. (#24367) 2026-01-09 22:51:46 -03:00
github-actions[bot]
01488006ff chore(DB): import pending files
Referenced commit(s): cb69e65716
2026-01-09 13:10:29 +00:00
Gultask
a98971a5be fix(DB/Quest): Implement Event for Killing Two Scourge With One Skeleton and phasing for following quests (#24357)
Co-authored-by: sudlud <sudlud@users.noreply.github.com>
2026-01-09 10:09:36 -03:00
Gultask
cb69e65716 fix(DB/Creature): Vrykul near Lieutenant Icehammer should appear dead (#24356)
Co-authored-by: sudlud <sudlud@users.noreply.github.com>
Co-authored-by: Benjamin Jackson <38561765+heyitsbench@users.noreply.github.com>
2026-01-09 10:09:22 -03:00
bashermens
43f496d372 Merge pull request #143 from azerothcore/master
Update (crashfix movement generator)
2026-01-09 07:43:25 +01:00
bashermens
b6124e2727 Merge pull request #142 from mod-playerbots/hermensbas-removed-dead-code
Legacy/dead code
2026-01-09 07:42:16 +01:00
sudlud
8785a9a726 fix(Conf): remove unused config option Logger.ahbot (#24355) 2026-01-09 07:37:44 +01:00
Localhost
a43dda6444 fix(Core/Movement): Crash FlightPathMovementGenerator (#24347) 2026-01-09 07:37:29 +01:00
bashermens
ccc17be7e1 Legacy/dead code 2026-01-09 01:13:14 +01:00
bashermens
54914d0854 Merge pull request #141 from hermensbas/fix/hotfix_till_core_merge
[HOTFIX] Wrong class/race learning throw skill
2026-01-09 00:51:39 +01:00
bash
dbfc8001a2 wrong class/race learning throw skill 2026-01-09 00:19:31 +01:00
bashermens
9dd35e78fe Merge pull request #140 from azerothcore/master
Small core update which includes some reverts from the core guys
2026-01-08 21:32:38 +01:00
bashermens
cdd6e84508 Merge pull request #138 from hermensbas/fix/core_delta_corrections
[FIX] Removed legacy implementation, merge mistakes keeping the delta lower with us and stock
2026-01-08 18:54:41 +01:00
bash
0a0ba0a53f minimize delta, legacy and merge mistakes over the years 2026-01-08 00:50:49 +01:00
bash
ae2af138e2 script zones 2026-01-07 13:53:49 +01:00
bash
5a1445a0dc added missing db-scripts 2026-01-06 19:41:55 +01:00
bashermens
8f55eb0ca9 Merge pull request #136 from azerothcore/master
Minor/update
2026-01-06 16:25:13 +01:00
bashermens
eb9913b808 Merge pull request #134 from azerothcore/master
Minor update
2026-01-05 16:43:20 +01:00
bashermens
782bc2a74a Merge pull request #132 from noisiver/merge-master
Merge master and remove Naxxramas headers
2026-01-05 15:05:12 +01:00
bashermens
1dadda2c04 Update MotionMaster.cpp
Set the correct _reverseOrientation
2026-01-05 14:13:09 +01:00
Revision
00f4193bbf Updated PointMovementGenerator for MovePointBackwards 2026-01-03 17:38:54 +01:00
Revision
4cff291e7d Reverted Naxxramas to stock 2026-01-03 17:38:28 +01:00
Revision
382896c857 Merge branch 'master' into merge-master 2026-01-03 17:37:33 +01:00
bashermens
6056978687 quickfix: crashlog - item::CheckSoulboundTradeExpired
quickfix: crashlog - item::CheckSoulboundTradeExpired
2025-12-24 23:48:23 +01:00
bashermens
7a1fa7b081 quickfix: crashlog player::RestoreSpellMods
quickfix: crashlog player::RestoreSpellMods
2025-12-24 23:48:06 +01:00
bashermens
7aaefb76d9 Update Item.cpp 2025-12-24 22:36:45 +01:00
bashermens
896e1d3f38 Update Unit.cpp 2025-12-24 22:02:38 +01:00
bashermens
a3b2c7ad0e Update Unit.cpp 2025-12-24 22:01:20 +01:00
bashermens
c91ce7f7c2 fix: crashlog player::RestoreSpellMods 2025-12-24 21:44:21 +01:00
bashermens
befa0158e2 Update Item.cpp 2025-12-24 21:24:17 +01:00
bashermens
58e3316c45 fix crashlog 2025-12-24 21:22:31 +01:00
bashermens
b9345774f9 Merge pull request #126 from mod-playerbots/hermensbas-patch-1
Oopsie hotfix
2025-12-18 23:55:51 +01:00
bashermens
97ee5f7459 Oopsie 2025-12-18 23:45:50 +01:00
bashermens
f262dc7835 Merge pull request #125 from mod-playerbots/core-update-correction
Core-update-correction-fix
2025-12-18 11:33:39 +01:00
bashermens
fc7c7055ba fix 2025-12-16 23:04:46 +01:00
bashermens
3ba00be179 Fix MotionMaster.cpp
https://github.com/mod-playerbots/azerothcore-wotlk/issues/122
2025-12-16 19:08:47 +01:00
bashermens
8f84271af8 Merge pull request #119 from mod-playerbots/core_update_2025_12_7
Core update: 2025-12-7
2025-12-07 15:22:03 +01:00
bash
7b41eb5c90 core_merge_fix_due_header_split 2025-12-07 12:09:42 +01:00
bash
58c1c49610 Merge remote-tracking branch 'upstream/master' into Playerbot
# Conflicts:
#	src/server/game/Spells/SpellInfoCorrections.cpp
#	src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp
2025-12-07 12:04:32 +01:00
kadeshar
08323af7a5 Merge pull request #115 from mod-playerbots/license_syncing
License update
2025-12-04 19:14:11 +01:00
bash
bc9ca38d78 changed into the current license model 2025-11-24 15:42:51 +01:00
bashermens
7be3d24c1e merge_conflict_fix 2025-11-24 14:51:47 +01:00
bash
87d3f3ba3a fix 2025-11-24 14:03:13 +01:00
bashermens
6b5da02e78 Merge pull request #110 from hermensbas/core_update_no_squash
2. Core update at 2025_11_23 (without squash)
2025-11-24 12:20:58 +01:00
bashermens
821f854318 Merge branch 'Playerbot' into core_update_no_squash 2025-11-24 12:18:01 +01:00
SaW
7228e76355 Merge pull request #109 from mod-playerbots/revert-104-core-merge-17112025
1. Revert "Core merge 17112025"
2025-11-24 12:15:10 +01:00
bashermens
528e590f10 Merge branch 'Playerbot' into core_update_no_squash 2025-11-23 23:11:12 +01:00
bash
eef1980923 fix 2025-11-23 23:09:26 +01:00
bash
1ed9aee631 Merge remote-tracking branch 'upstream/master' into core_update_no_squash 2025-11-23 23:08:23 +01:00
bashermens
454a4f34f0 Revert "Core merge 17112025 (#104)"
This reverts commit 236c842934.
2025-11-23 23:02:15 +01:00
kadeshar
236c842934 Core merge 17112025 (#104)
* fix(DB/SmartAI): improve Harry surrendering during quest 'Gambling Debt' (#23598)

* fix(DB/Quest): The Kalu'ak dailies reward 500 rep (#23600)

* chore(DB): import pending files

Referenced commit(s): fb03f41b2a

* fix(DB/GameEvent): Remove midsummer pole in K3 (#23614)

* chore(DB): import pending files

Referenced commit(s): 7b0000d6ee

* fix(DB/SmartAI): increase reliability of quest event Foolish Endeavors (#23612)

* chore(DB): import pending files

Referenced commit(s): 86f219abbc

* fix(Scripts/AreaTrigger): players become stuck after Last Rites (#23613)

* chore(DB): import pending files

Referenced commit(s): c1a8047cf1

* fix(Core/Vmaps): Fix inconsistency of hitInstance and hitModel to cause wrong area ids (#23233)

Co-authored-by: ModoX <moardox@gmail.com>
Co-authored-by: Shauren <shauren.trinity@gmail.com>
Co-authored-by: Grimdhex <237474256+Grimdhex@users.noreply.github.com>
Co-authored-by: sudlud <sudlud@users.noreply.github.com>

* fix(DB/Gameobject): Sniffed Values for 'Wild Mustard' spawns (#23608)

* fix(DB/SmartAI): remove large combat distance of Frostbrood Sentry (#23607)

* chore(DB): import pending files

Referenced commit(s): 41d40b236f

* fix(DB/ReputationRewardRate): Patch 3.0.0 gain for Northrend factions (#23597)

* chore(DB): import pending files

Referenced commit(s): 067a898caa

* fix(Core/Map): It should be ensured that the instance is unloaded only after the Creature Respawn. (#23103)

* fix(Scripts/Northrend): Sniffing Out The Perpetrator horde (#23620)

* fix(Scripts/Northrend): ensure Drakuru stays in place during Betrayal (#23619)

* chore(DB): import pending files

Referenced commit(s): 928e145694

* fix(DB/SmartAI): quest 'Reconnaissance Flight' (#23628)

Co-authored-by: dr-j <dr-j@users.noreply.github.com>
Co-authored-by: Killyana <morphone1@gmail.com>

* fix(DB/QuestOfferReward): remove mention of a beta recipe in text (#23629)

* fix(DB/Conditions): update quest conditions to drop chokers (#23610)

* chore(DB): import pending files

Referenced commit(s): bca8f7ce07

* refactor(Core/PlayerScript): Delete OnPlayerChat, use OnPlayerCanUseChat (#23617)

* fix(Core/SmartAI): startup warnings unused params (#23551)

* fix(Core/Unit): Druid Talent Survival of the Fittest lacking immunity to creature daze (#23471)

* fix(DB/SAI): Fix Fizzcrank Paradrop teleporters (#23633)

* chore(DB): import pending files

Referenced commit(s): 94ba1c210d

* fix(Core): Fix waterwalking after dying in instance (#23593)

* fix(DB/SAI): don't remove all auras when mounting flamebringer (#23640)

* chore(DB): import pending files

Referenced commit(s): 22f91f3802

* fix(DB/SAI): Emerald Lasher goes out of the terrain when aggroed. (#23642)

* chore(DB): import pending files

Referenced commit(s): f9d6fe41de

* fix(DB/SAI): Burning Depths Necromancer no longer stays in place. (#23641)

* chore(DB): import pending files

Referenced commit(s): 1037471c8d

* fix(DB/SAI): Remove SmartAI from Valkyrion Harpoon Gun. (#23646)

* chore(DB): import pending files

Referenced commit(s): 8e3a7e6dcf

* fix(DB/Creature): Fix Weakened Reanimated Frost Wyrm inhabit type (#23645)

* chore(DB): import pending files

Referenced commit(s): 3baa18ef5b

* fix(DB/Spell): Infectious Bites should stack from different casters (#23647)

* chore(DB): import pending files

Referenced commit(s): 5aede412ab

* fix(DB/SAI): Solve various issues with It Goes to 11... quest. (#23651)

* fix(DB/Loot): Fireproof Satchel will now always drop the Ritual of Torch  (#23585)

* chore(DB): import pending files

Referenced commit(s): 1090c209b3

* fix(Scripts/Northrend): Betrayal quest (#23650)

* fix(Script/BlackTemple): Reliquary of Souls will use 45 degree in front to set incombat (#22938)

* fix(Scripts/Spell): Fix Animal Blood spawning when it shouldn't (#23656)

* fix(Scripts/BoreanTundra): Script Bloodspore Haze/Psychosis (#23657)

* chore(DB): import pending files

Referenced commit(s): baf7957e36

* fix(DB/SAI): Sibling Rivalry quest credit if mounted (#23659)

* chore(DB): import pending files

Referenced commit(s): 6919cc679d

* fix(docs/license): use GPLv2 as MaNGOS-based project (#23655)

* fix(Core/Achievements): a character can only have 1 race realm first (#23626)

* chore: fix leftover license header (#23678)

* fix(Scripts/HoL): Update Loken script (#23587)

* fix(Scripts/DTK): Update King Dred script (#23572)

* fix(DB/SAI): Bitter Departure quest credit (#23658)

* chore(DB): import pending files

Referenced commit(s): e595425578

* fix(DB/Conditions): Ice Shard require Icy Imprisonment (#23661)

* chore(DB): import pending files

Referenced commit(s): 8294652e77

* fix(DB/Loot): add Scourge Curio drop to Lost Shandaral Spirit (#23686)

* chore(DB): import pending files

Referenced commit(s): b6ed4347fe

* fix(DB/Gameobject): fix spell focus location for 'Will of the Titans' (#23683)

* chore(DB): import pending files

Referenced commit(s): 388f18895d

* fix(DB/Creature): update IOC Demolisher spells (#23685)

* chore(DB): import pending files

Referenced commit(s): cdfa50c990

* fix(Scripts/Northrend): IOC boss cast ability Mortal Strike (#23684)

* fix(Scripts/BoreanTundra): Fix Beryl Sorcerer engaging mobs (#23690)

* fix(Core/Entities): Improve interactions between taxis and players regarding PvP flag. (#23681)

* fix(DB/Creature): Peon Gakra should be an innkeeper (#23699)

* chore(DB): import pending files

Referenced commit(s): 6abff4ac2b

* fix(Scripts/SholazarBasin): Fix Song of Wind and Water double credit (#23707)

* fix(DB/SAI): Reanimated Frost Wyrm engage after being hit by quest spell (#23697)

* fix(DB/SAI): Timely respawn Nesingwary Trappers (#23703)

* fix(DB/Creature): Fix Fjord Hawk Matriarch unit flags (#23696)

* fix(DB/Conditions): Fix Fordragon Resolve target conditions (#23701)

* chore(DB): import pending files

Referenced commit(s): 2942d63125

* fix(DB/Script): Move Tailhorn Stag and Amberpine Woodsman behavior into SmartAI. (#23708)

* fix(DB/Creature): Set Trigger flag on Steam Vent. (#23710)

* chore(DB): import pending files

Referenced commit(s): 435ca302ef

* fix(DB/SAI): To Stars' Rest! taxi flight (#23712)

* chore(DB): import pending files

Referenced commit(s): ab4d59ac9d

* fix (DB/Creature): Set Surveyor Orlond flags. (#23714)

* chore(DB): import pending files

Referenced commit(s): e8ec77dca7

* fix(DB/Loot): Fix Master Summoner Staff drop chance (#23717)

* chore(DB): import pending files

Referenced commit(s): 182c055e6e

* fix(Scripts/DTK): Fix Oh Novos! achievement (#23539) (#23718)

* fix(Core/Spells): Remove King Mrgl-Mrgl costume on spell casting (#23713)

* chore(DB): import pending files

Referenced commit(s): 8c963a11ce

* fix(DB/Reputation): Utigarde Pinnacle normal reputation (#23719)

* chore(DB): import pending files

Referenced commit(s): 88ed7d66d5

* fix(Scripts/HoS): Clean up faction update hacks (#23720)

* fix(DB/Reputation): Lower reputation according to rates handling (#23722)

* fix(DB/Reputation): Oculus normal & UP correction (#23723)

* chore(DB): import pending files

Referenced commit(s): abc2cf3028

* fix(Scripts/Oculus): Implement crossfaction support for drakes (#23704)

* fix(DB/Quest): Correct prerequisite for Reclaimed Ration (#23736)

Co-authored-by: blinkysc <blinkysc@users.noreply.github.com>

* fix(DB/Quest): Correct prerequisite for Salvaging Life's Strength (#23734)

Co-authored-by: blinkysc <blinkysc@users.noreply.github.com>

* chore(DB): import pending files

Referenced commit(s): afd8197588

* fix(Core/Movement): Fix SummonMovementInform for summons (#23725)

* refactor(Core/Movement): Fix Build (#23739)

* fix(DB/SAI): Update Iron Rune Construct SAI to use DO_ACTION instead … (#23716)

* chore(DB): import pending files

Referenced commit(s): 7cc39f78e2

* fix(DB/SAI): Fix Flamebringer gossip interaction (#23740)

* chore(DB): import pending files

Referenced commit(s): 9cb683cfcd

* fix(DB/SAI): Nerub'ar member packs now attack together. (#23727)

* chore(DB): import pending files

Referenced commit(s): 6f5a1b7ccc

* fix(DB/SAI): Remove Harrison Johnes quest flag on escort accept (#23700)

* chore(DB): import pending files

Referenced commit(s): bacf15d356

* Update crash issue template with log submission guidelines (#23754)

* Merge

* Updated OnPlayerChat method name to OnPlayerCanUseChat

---------

Co-authored-by: sogladev <sogladev@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: 天鹭 <18535853+PkllonG@users.noreply.github.com>
Co-authored-by: ModoX <moardox@gmail.com>
Co-authored-by: Shauren <shauren.trinity@gmail.com>
Co-authored-by: Grimdhex <237474256+Grimdhex@users.noreply.github.com>
Co-authored-by: sudlud <sudlud@users.noreply.github.com>
Co-authored-by: dr-j <dr-j@users.noreply.github.com>
Co-authored-by: Killyana <morphone1@gmail.com>
Co-authored-by: Undo <50205200+UndoUreche@users.noreply.github.com>
Co-authored-by: Andrew <47818697+Nyeriah@users.noreply.github.com>
Co-authored-by: killerwife <killerwife@gmail.com>
Co-authored-by: Tereneckla <Tereneckla@pm.me>
Co-authored-by: Rocco Silipo <108557877+Rorschach91@users.noreply.github.com>
Co-authored-by: Ryan Turner <16946913+TheSCREWEDSoftware@users.noreply.github.com>
Co-authored-by: blinkysc <37940565+blinkysc@users.noreply.github.com>
Co-authored-by: Francesco Borzì <borzifrancesco@gmail.com>
Co-authored-by: Benjamin Jackson <38561765+heyitsbench@users.noreply.github.com>
Co-authored-by: Traesh <Traesh@users.noreply.github.com>
Co-authored-by: blinkysc <blinkysc@users.noreply.github.com>
2025-11-23 20:45:22 +01:00
SaW
3732047b9e Fix https://github.com/mod-playerbots/azerothcore-wotlk/issues/96
Fix https://github.com/mod-playerbots/azerothcore-wotlk/issues/96
2025-11-17 21:02:36 +01:00
SaW
3d29de2844 Fix codestyle nag 2025-11-17 20:54:25 +01:00
bashermens
a2a4a4f7cf Fix
https://github.com/mod-playerbots/azerothcore-wotlk/issues/96
2025-11-17 12:17:39 +01:00
bashermens
923cccdc25 Merge branch 'azerothcore:master' into Playerbot 2025-11-10 13:52:10 +01:00
bashermens
cd799aa1c6 Merge branch 'azerothcore:master' into Playerbot 2025-11-09 21:14:51 +01:00
bashermens
0bb40fddc4 Merge branch 'azerothcore:master' into Playerbot 2025-11-08 23:31:01 +01:00
bashermens
e68fa57fd6 Merge branch 'azerothcore:master' into Playerbot 2025-11-08 10:01:09 +01:00
bashermens
838628a25d Merge branch 'azerothcore:master' into Playerbot 2025-11-07 13:00:19 +01:00
bashermens
7c5b199489 Merge branch 'azerothcore:master' into Playerbot 2025-11-07 06:44:08 +01:00
bash
b5cdb0e63e Merge branch 'azerothcore:master' into Playerbot 2025-11-05 23:18:17 +01:00
bash
12909c1958 Merge branch 'azerothcore:master' into Playerbot 2025-11-05 15:00:25 +01:00
bash
b7c92a52aa Merge branch 'azerothcore:master' into Playerbot 2025-11-05 10:53:28 +01:00
bash
6bee45a1c8 Merge pull request #92 from mod-playerbots/update/core_4_11_2025
update/core 4 11 2025
2025-11-05 10:53:09 +01:00
bash
8c2409ff06 naxx merge fixes 2025-11-04 21:21:59 +01:00
bash
52a09fbf54 Merge remote-tracking branch 'upstream/master' into update/core_4_11_2025
# Conflicts:
#	src/server/game/Guilds/Guild.cpp
#	src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp
#	src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp
#	src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp
#	src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp
#	src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp
#	src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp
#	src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp
#	src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp
#	src/server/scripts/Northrend/Naxxramas/boss_loatheb.cpp
#	src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp
#	src/server/scripts/Northrend/Naxxramas/boss_noth.cpp
#	src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp
#	src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp
#	src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp
#	src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp
2025-11-04 20:07:10 +01:00
kadeshar
c96314a9b3 Merge pull request #91 from mod-playerbots/Playerbot_merge29102025
Playerbot merge
2025-10-31 06:45:52 +01:00
kadeshar
1b0eef2e6c Merge branch 'azerothcore:master' into Playerbot_merge29102025 2025-10-29 06:37:33 +01:00
bash
c6c90e0034 Merge branch 'azerothcore:master' into Playerbot 2025-10-25 20:37:41 +02:00
bash
39187083b0 Merge remote-tracking branch 'upstream/master' into Playerbot
# Conflicts:
#	modules/CMakeLists.txt
2025-10-25 00:48:25 +02:00
bash
2607df754b Merge branch 'azerothcore:master' into Playerbot 2025-10-23 01:57:59 +02:00
bash
880529a5b4 Merge pull request #87 from hermensbas/hermensbas-patch-1
fix: MotionMaster.cpp
2025-10-21 19:36:44 +02:00
bash
e846fdc8b9 Update MotionMaster.cpp 2025-10-21 18:42:31 +02:00
bash
6d42ab1797 fix: MotionMaster.cpp
knockback movement fix
2025-10-21 18:06:39 +02:00
bash
fc1d8e2a64 Merge branch 'azerothcore:master' into Playerbot 2025-10-21 10:38:27 +02:00
bash
4f9b4d5470 Merge branch 'azerothcore:master' into Playerbot 2025-10-20 14:13:31 +02:00
bash
f96e7c577b Merge pull request #85 from hermensbas/feature/core_merge_10_2025
CORE_UPDATE_10_2025
2025-10-20 14:12:45 +02:00
bash
be3d55f770 added comments for future merge conflicts 2025-10-20 00:53:13 +02:00
bash
fac127718d core merge fixes for playerbots 2025-10-19 23:55:38 +02:00
bash
1aac4fbef6 Merge remote-tracking branch 'upstream/master' into feature/core_merge_10_2025
# Conflicts:
#	src/server/game/Entities/Unit/Unit.cpp
#	src/server/game/Movement/MovementGenerators/PointMovementGenerator.h
#	src/server/game/Server/WorldSession.cpp
#	src/server/game/Server/WorldSession.h
#	src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp
#	src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp
#	src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp
#	src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp
#	src/server/scripts/Northrend/Naxxramas/boss_sapphiron.cpp
2025-10-19 22:34:18 +02:00
bash
dae1f55536 Update core-build-playerbots.yml 2025-10-19 17:12:13 +02:00
bash
ec7bb81473 Update core-build-playerbots.yml 2025-10-19 03:24:29 +02:00
bash
d9c7330434 Update core-build-playerbots.yml 2025-10-18 15:45:13 +02:00
bash
2eda59a0dc Update core-build-playerbots.yml 2025-10-18 12:34:54 +02:00
bash
21e313a7f1 Update core-build-playerbots.yml 2025-10-18 09:09:01 +02:00
bash
96f1fe67d9 Update core-build-playerbots.yml 2025-10-17 20:22:20 +02:00
Yunfan Li
798589fb5d Merge pull request #75 from mod-playerbots/project_transfer
Preparation for project transfer
2025-10-14 00:08:36 +08:00
bash
6aef3aae5f Merge branch 'azerothcore:master' into Playerbot 2025-10-03 19:43:33 +02:00
bash
945fdff66c Merge branch 'azerothcore:master' into Playerbot 2025-10-03 02:36:11 +02:00
bash
245fe501f1 Merge pull request #72 from kadeshar/relic-usage-fix
Fix to make bots roll and equip for correct relic
2025-10-01 21:07:58 +02:00
kadeshar
19a834fa55 - Added method BotCanUseItem 2025-10-01 20:39:57 +02:00
bash
152b1cc455 Merge branch 'azerothcore:master' into Playerbot 2025-10-01 12:16:44 +02:00
bash
5fbcb45727 Merge branch 'azerothcore:master' into Playerbot 2025-09-30 15:27:48 +02:00
kadeshar
0145bebb10 - Fix to make bots roll and equip for correct relic 2025-09-29 20:41:21 +02:00
bash
59c1233d98 Merge branch 'azerothcore:master' into Playerbot 2025-09-29 20:09:38 +02:00
bash
f67b86df8b Merge branch 'azerothcore:master' into Playerbot 2025-09-28 00:12:50 +02:00
bash
1125d84fb2 Merge branch 'azerothcore:master' into Playerbot 2025-09-25 16:35:37 +02:00
bash
1665fefb1a Merge branch 'azerothcore:master' into Playerbot 2025-09-24 01:59:18 +02:00
bash
9d82a35671 Merge branch 'azerothcore:master' into Playerbot 2025-09-23 14:43:56 +02:00
bash
861058f657 Merge branch 'azerothcore:master' into Playerbot 2025-09-22 21:59:40 +02:00
bash
c092fb1581 Merge branch 'azerothcore:master' into Playerbot 2025-09-20 22:17:46 +02:00
bash
fd567ddcfa Merge pull request #70 from kadeshar/guild-crash-fix
Possible crash fix while adding member to guild
2025-09-19 20:01:08 +02:00
kadeshar
dc6be0655f Merge pull request #69 from hermensbas/core/update_2025_09_18
update 2025 09 18
2025-09-19 10:59:42 +02:00
kadeshar
c0aec97676 - Possible crash fix while adding member to guild 2025-09-18 20:39:39 +02:00
bash
ced3cf9b22 Merge remote-tracking branch 'upstream/master' into core/update_2025_09_18 2025-09-18 20:09:00 +02:00
bash
93c0ab5b6b Merge pull request #67 from kadeshar/guild-cross-faction-fix
Fixed cross faction guilds not allowed by config
2025-09-14 10:51:02 +02:00
kadeshar
9bc46a7b77 - Fixed cross faction guilds not allowed by config 2025-09-13 16:33:09 +02:00
Yunfan Li
18a5a2be5c Merge pull request #65 from liyunfan1223/Playerbot-250911
Playerbot 250911
2025-09-11 13:42:52 +08:00
Yunfan Li
fdb71c521e Merge branch 'master' into Playerbot-updated 2025-09-11 12:20:54 +08:00
kadeshar
830e1fc5c2 Merge pull request #8 from azerothcore/master
Merge
2025-08-30 21:23:42 +02:00
kadeshar
234268e3bf Merge pull request #7 from azerothcore/master
Merge
2025-08-27 21:04:10 +02:00
Yunfan Li
4514980791 Merge pull request #56 from liyunfan1223/Playerbot_sync_0809
Playerbot sync 0809
2025-08-09 19:17:18 +08:00
Yunfan Li
025aaacf20 Merge branch 'master' into Playerbot 2025-08-09 15:02:41 +08:00
Yunfan Li
32b3e6331d Merge pull request #54 from liyunfan1223/Playerbot_sync
Playerbot sync
2025-08-02 16:10:42 +08:00
Yunfan Li
8ff1d2ccc1 Merge pull request #52 from Rochet2/patch-1
Fix scriptmgr hook double call on whisper
2025-08-02 15:32:26 +08:00
Yunfan Li
55bc26f505 Merge branch 'master' into Playerbot 2025-08-02 11:35:47 +08:00
Yunfan Li
21c2c3e0ee Merge branch 'master' into Playerbot 2025-07-25 21:18:51 +08:00
Rochet2
1620d6d64b Fix scriptmgr hook double call on whisper 2025-07-22 18:34:00 +03:00
Yunfan Li
c167fef89c Merge branch 'master' into Playerbot 2025-07-15 20:34:44 +08:00
Yunfan Li
475e5a42c4 Merge branch 'master' into Playerbot 2025-07-04 22:41:14 +08:00
Yunfan Li
24fa79040f Merge branch 'master' into Playerbot 2025-06-29 10:55:43 +08:00
Yunfan Li
c3fbb2da20 Merge branch 'master' into Playerbot 2025-06-28 10:46:23 +08:00
Yunfan Li
1e88fccd3c Merge branch 'master' into Playerbot 2025-06-14 21:33:35 +08:00
Yunfan Li
13edac562c Merge branch 'master' into Playerbot 2025-06-01 14:55:09 +08:00
Yunfan Li
4ace49c95a Merge branch 'master' into Playerbot 2025-05-23 19:55:02 +08:00
Yunfan Li
c6222b9aa3 Merge branch 'master' into Playerbot 2025-05-16 19:42:56 +08:00
Yunfan Li
58fd50651d Merge branch 'master' into Playerbot 2025-05-09 22:07:43 +08:00
Yunfan Li
ce9343d916 Merge branch 'master' into Playerbot 2025-05-02 16:50:45 +08:00
Yunfan Li
c304ccee57 Merge branch 'master' into Playerbot 2025-04-18 22:57:30 +08:00
Yunfan Li
97342b05e7 Merge branch 'master' into Playerbot 2025-04-09 23:35:21 +08:00
Yunfan Li
95fc3f0932 Merge branch 'master' into Playerbot 2025-03-29 17:25:52 +08:00
Yunfan Li
4deb6ec311 Merge branch 'master' into Playerbot 2025-03-22 11:15:08 +08:00
Yunfan Li
565019ed27 Merge branch 'master' into Playerbot 2025-03-14 21:37:02 +08:00
Yunfan Li
34811a047a Merge branch 'master' into Playerbot 2025-03-04 21:57:19 +08:00
Yunfan Li
f332b07140 Merge pull request #40 from liyunfan1223/Playerbot_20250219
Merge branch 'master' into Playerbot
2025-02-22 12:08:24 +08:00
Yunfan Li
bd0302605a Merge branch 'master' into Playerbot_20250219 2025-02-22 10:36:10 +08:00
Yunfan Li
990c85c2cd Remove MOD_PLAYERBOTS macro to compile without mod-playerbots 2025-02-19 23:01:53 +08:00
Yunfan Li
7d431dc796 Merge branch 'master' into Playerbot 2025-02-19 22:29:36 +08:00
kadeshar
d1032678ff - Added support for playerbots message hyperlink (#37) 2025-02-16 22:27:55 +08:00
Yunfan Li
41415bb3c3 Merge branch 'master' into Playerbot 2025-02-11 22:35:57 +08:00
Yunfan Li
de3c2b553e Merge branch 'master' into Playerbot 2025-02-04 23:40:06 +08:00
Yunfan Li
e5c67bd47d Merge branch 'master' into Playerbot 2025-01-31 18:29:34 +08:00
Yunfan Li
cf035b5e5e Merge branch 'master' into Playerbot 2025-01-23 23:23:53 +08:00
Yunfan Li
91edb92f7a Merge branch 'master' into Playerbot 2025-01-15 20:49:11 +08:00
Yunfan Li
36987b8a96 Merge branch 'master' into Playerbot 2025-01-09 19:56:11 +08:00
Yunfan Li
8e5802da4e Merge branch 'master' into Playerbot 2025-01-06 23:04:02 +08:00
Yunfan Li
36ac083814 Merge branch 'master' into Playerbot 2024-12-31 17:18:40 +08:00
Yunfan Li
5035e880f4 Merge pull request #33 from liyunfan1223/move_backwards
Add MovePointBackwards in MotionMaster.h
2024-12-29 21:24:02 +08:00
Yunfan Li
b603c8c1e8 Add MovePointBackwards in MotionMaster.h 2024-12-29 21:16:33 +08:00
Yunfan Li
2bab8ee807 Merge pull request #32 from liyunfan1223/modify_char_sel
Add class and race to CHAR_SEL_CHARS_BY_ACCOUNT_ID
2024-12-25 22:41:10 +08:00
Yunfan Li
4e8524bd13 Add class and race to CHAR_SEL_CHARS_BY_ACCOUNT_ID 2024-12-25 21:39:39 +08:00
Yunfan Li
c76e70a364 Merge branch 'master' into Playerbot 2024-12-22 13:24:03 +08:00
Yunfan Li
7347f64938 Merge branch 'master' into Playerbot 2024-12-13 18:51:37 +08:00
Yunfan Li
889b509313 Merge branch 'master' into Playerbot 2024-12-05 00:08:25 +08:00
Yunfan Li
ba56317506 Merge pull request #30 from noisiver/update-character-online
Add a new statement to update character online by guid
2024-12-01 11:46:32 +08:00
Yunfan Li
e8679bc13b Merge pull request #29 from Raz0r1337/Playerbot
Update worldserver.conf.dist
2024-12-01 11:45:38 +08:00
Revision
3d3fff1a2e Add a new statement to update character online by guid 2024-11-30 17:18:01 +01:00
Sascha
9e5f551b58 Update worldserver.conf.dist
logging stuff inserted into the correct area of ​​the config file
2024-11-29 13:13:01 +01:00
Yunfan Li
1294d79764 Merge branch 'master' into Playerbot 2024-11-25 23:22:31 +08:00
Yunfan Li
4cd23792db Merge pull request #27 from hermensbas/feature/alignment_core_data_folder
placed playerbot sql folder into data folder as core/module describes
2024-11-18 15:36:20 +08:00
bash
4183a34608 placed sql into the data folder as core/module describes 2024-11-16 21:37:24 +00:00
Yunfan Li
fce06946e1 Merge branch 'master' into Playerbot 2024-11-16 13:15:00 +08:00
Yunfan Li
545bb18af4 Merge branch 'master' into Playerbot 2024-11-08 20:58:52 +08:00
Yunfan Li
abd9b4ebb8 Merge branch 'master' into Playerbot 2024-10-30 21:43:42 +08:00
Yunfan Li
2e37c1ff1d Merge branch 'master' into Playerbot 2024-10-21 11:43:19 +08:00
Yunfan Li
418afce6d7 Merge branch 'master' into Playerbot 2024-10-10 23:13:20 +08:00
Yunfan Li
0e1fb788c1 Merge pull request #24 from liyunfan1223/fix_header_include
Fix header include for playerbots
2024-10-05 00:12:41 +08:00
Yunfan Li
b4ca46c3af Fix header include for playerbots 2024-10-04 23:07:08 +08:00
Yunfan Li
6eb5070cbc Merge branch 'master' into Playerbot 2024-10-04 21:57:35 +08:00
Yunfan Li
9ebdbd8459 Merge branch 'master' into Playerbot 2024-09-29 23:22:47 +08:00
Yunfan Li
66c55bc450 Merge branch 'master' into Playerbot 2024-09-22 21:56:15 +08:00
Yunfan Li
9780dbab7e Merge branch 'master' into Playerbot 2024-09-17 23:15:28 +08:00
Yunfan Li
910848c51b Revert "Revert "Merge branch 'master' into Playerbot""
This reverts commit 2358b256f2.
2024-09-17 23:14:42 +08:00
Yunfan Li
57b7a6a4eb Merge pull request #22 from manstfu/Playerbot
Fixed spells not granted by quest
2024-09-15 10:57:28 +08:00
manstfu
ddd7c1fb6c Updated with master branch 2024-09-14 18:25:46 +02:00
manstfu
c85e9772a8 Update PlayerQuest.cpp
Fixed spells not granted by quests
2024-09-14 09:12:52 +02:00
Yunfan Li
af776520db Merge pull request #21 from liyunfan1223/revert_spell_crash
Revert "Merge branch 'master' into Playerbot"
2024-09-13 17:45:21 +08:00
Yunfan Li
2358b256f2 Revert "Merge branch 'master' into Playerbot"
This reverts commit 9973151927, reversing
changes made to 6f5b504e4c.
2024-09-13 17:13:32 +08:00
Yunfan Li
7e8c2d2887 Fix continuous integration workflow 2024-09-12 22:52:49 +08:00
Yunfan Li
9973151927 Merge branch 'master' into Playerbot 2024-09-12 22:49:08 +08:00
Yunfan Li
6f5b504e4c Merge branch 'master' into Playerbot 2024-09-07 14:27:11 +08:00
Yunfan Li
414805e692 Merge branch 'master' into Playerbot 2024-09-04 23:46:34 +08:00
Yunfan Li
f8a28b6883 Merge branch 'master' into Playerbot 2024-08-30 22:38:08 +08:00
Yunfan Li
fdb6fedc00 Naxx scripts header 2024-08-26 23:05:53 +08:00
Yunfan Li
a642358a43 Merge branch 'master' into Playerbot 2024-08-26 22:29:54 +08:00
Yunfan Li
1bf88ad3a3 Merge branch 'master' into Playerbot 2024-08-19 18:59:50 +08:00
Yunfan Li
27b243e7b2 Merge branch 'master' into Playerbot 2024-08-18 23:02:22 +08:00
Yunfan Li
33e4bc8390 Merge branch 'master' into Playerbot 2024-08-12 01:07:20 +08:00
Yunfan Li
c3be0fa2a8 Merge branch 'master' into Playerbot 2024-08-05 01:22:16 +08:00
Yunfan Li
3e2509e20c Merge pull request #20 from atidot3/Playerbot
Fix last modification warning chat.h
2024-08-03 21:44:04 +08:00
Atidote
2cde786785 Merge branch 'liyunfan1223:Playerbot' into Playerbot 2024-08-03 15:13:32 +02:00
Atidot3
0406652bae fix chat warning 2024-08-03 15:11:13 +02:00
Yunfan Li
f5e44cd8a6 Merge branch 'master' into Playerbot 2024-08-01 15:41:23 +08:00
Yunfan Li
7227e78f54 Merge pull request #19 from liyunfan1223/movement-rewrite
Add MoveKnockbackFromForPlayer
2024-08-01 11:40:40 +08:00
Yunfan Li
0ba424a853 Merge pull request #18 from atidot3/Playerbot
Playerbot helper
2024-08-01 11:40:24 +08:00
Yunfan Li
7a1986da61 Merge pull request #17 from noisiver/playerbots
Fix compiler warnings
2024-08-01 11:39:42 +08:00
Yunfan Li
f6a9b1f97d Add MoveKnockbackFromForPlayer 2024-07-31 23:47:24 +08:00
antony
bba6c86364 Playerbot helper 2024-07-31 17:24:20 +02:00
Revision
84c12b0402 Fix warnings 2024-07-30 15:42:07 +02:00
Yunfan Li
e6fa5732dc Fix macos build 2024-07-29 23:08:30 +08:00
Yunfan Li
172f54b49a Merge branch 'master' into Playerbot 2024-07-29 15:40:17 +08:00
Yunfan Li
f7ad415b3f Merge pull request #15 from atidot3/Playerbot
Playerbot fixes and functionnality to talk in channels
2024-07-27 23:56:51 +08:00
antony
4a48e18d5b Playerbot fixes and functionnality to talk in channels 2024-07-26 11:34:32 +02:00
Yunfan Li
5276676a11 Merge branch 'master' into Playerbot 2024-07-24 20:57:52 +08:00
Yunfan Li
c72188467a Merge branch 'master' into Playerbot 2024-07-23 18:23:10 +08:00
Yunfan Li
22132addce Merge branch 'master' into Playerbot 2024-07-19 17:25:43 +08:00
Yunfan Li
05c9a96ba9 Merge branch 'master' into Playerbot 2024-07-11 12:32:13 +08:00
Yunfan Li
1f54cb14fa Merge branch 'master' into Playerbot 2024-07-07 13:33:14 +08:00
Yunfan Li
223ec63ba5 Merge branch 'master' into Playerbot 2024-07-03 22:54:06 +08:00
Yunfan Li
2a2e2ec445 Rollback name check 2024-07-03 20:01:14 +08:00
Yunfan Li
cc5adebbe4 Merge branch 'master' into Playerbot 2024-07-03 16:04:51 +08:00
Yunfan Li
d7a07b2397 Merge branch 'master' into Playerbot 2024-06-29 21:57:41 +08:00
Yunfan Li
9a11d9dd5b Merge branch 'master' into Playerbot 2024-06-28 18:36:45 +08:00
Yunfan Li
fb4dbdd604 Merge branch 'master' into Playerbot 2024-06-24 18:51:01 +08:00
Yunfan Li
20f917c48f Merge branch 'master' into Playerbot 2024-06-22 16:09:16 +08:00
Yunfan Li
72725635ba Merge branch 'master' into Playerbot 2024-06-19 14:32:16 +08:00
Yunfan Li
7ca3db8bd0 Merge branch 'master' into Playerbot 2024-06-10 00:03:20 +08:00
Yunfan Li
72634b2829 Merge branch 'master' into Playerbot 2024-06-07 22:28:03 +08:00
Yunfan Li
971b2f8316 Merge branch 'master' into Playerbot 2024-06-03 23:16:28 +08:00
Yunfan Li
12ea82a57f [Scripts] Naxxramas scripts refactor with namespace 2024-05-26 23:41:04 +08:00
Yunfan Li
1e22c4dc94 Merge branch 'master' into Playerbot 2024-05-26 23:00:39 +08:00
Yunfan Li
5079750396 Merge branch 'master' into Playerbot 2024-05-07 22:22:40 +08:00
Yunfan Li
9bbe90d388 Merge branch 'master' into Playerbot 2024-05-04 23:35:53 +08:00
Yunfan Li
0a1570ec52 Merge branch 'master' into Playerbot 2024-04-29 20:00:32 +08:00
Yunfan Li
99bc841ff6 Merge branch 'master' into Playerbot 2024-04-26 18:56:32 +08:00
Yunfan Li
c010742289 Merge branch 'master' into Playerbot 2024-04-22 21:50:43 +08:00
Yunfan Li
10bd872f2d Merge branch 'master' into Playerbot 2024-04-15 21:02:03 +08:00
Yunfan Li
ab9fe20600 Merge branch 'master' into Playerbot 2024-04-14 21:08:07 +08:00
Yunfan Li
65cb23b56a Merge branch 'master' into Playerbot 2024-04-10 23:50:39 +08:00
Yunfan Li
f0be01a5d7 Merge branch 'master' into Playerbot 2024-04-07 21:49:34 +08:00
Yunfan Li
d74a6dd960 Merge branch 'master' into Playerbot 2024-03-31 12:44:21 +08:00
Yunfan Li
6338010e09 Merge branch 'master' into Playerbot 2024-03-28 19:15:09 +08:00
Yunfan Li
97604fab77 Merge branch 'master' into Playerbot 2024-03-22 20:41:43 +08:00
Yunfan Li
91870c9ccd Merge branch 'azerothcore:master' into Playerbot 2024-03-19 20:12:59 +08:00
Yunfan Li
4387de8b82 Fix macos CI 2024-03-18 22:17:56 +08:00
Yunfan Li
e0ddd7f610 Disable test build for macos CI 2024-03-18 19:55:39 +08:00
Yunfan Li
0024602d42 CI ignore warnings 2024-03-18 17:35:29 +08:00
Yunfan Li
b1ee6cfe06 Fix macos compilation 2024-03-18 14:25:49 +08:00
Yunfan Li
af717c592f Fix macos CI 2024-03-18 09:07:56 +08:00
Yunfan Li
ce59a892c7 Fix macos CI 2024-03-17 19:48:03 +08:00
Yunfan Li
68219e6f55 Merge branch 'azerothcore:master' into Playerbot 2024-03-17 12:05:57 +08:00
Yunfan Li
a42219e17d Merge branch 'azerothcore:master' into Playerbot 2024-03-12 16:54:14 +08:00
Yunfan Li
b3f96a2bc1 Update core-build.yml 2024-03-12 14:52:37 +08:00
Yunfan Li
23cf1a3aab Update workflows 2024-03-12 14:50:04 +08:00
Yunfan Li
f0cb94cb3f Fix variable unused warning 2024-03-12 13:56:48 +08:00
Yunfan Li
6d5b402c2c Fix workflows 2024-03-12 13:15:19 +08:00
Yunfan Li
60b624a3ac Fix workflows 2024-03-12 13:10:51 +08:00
Yunfan Li
19cd29ff6d Merge pull request #6 from liyunfan1223/revert-5-Playerbot
Revert "Split Ulduar's script files"
2024-03-12 12:46:05 +08:00
Yunfan Li
c36a7a25a0 Revert "Split Ulduar's script files" 2024-03-12 12:41:20 +08:00
Yunfan Li
187db6f688 Merge pull request #5 from Garashan/Playerbot
Split Ulduar's script files
2024-03-12 11:38:04 +08:00
Garashan
984e03db18 Split Ulduar's script files
Split Ulduar script .cpp files into .h and .cpp files.
2024-03-11 19:25:24 +01:00
Yunfan Li
01a6bd65bf Merge branch 'master' into Playerbot 2024-03-09 10:30:25 +08:00
Yunfan Li
5ef572eaf9 Merge pull request #4 from MrSlntGhost/Playerbot
Fix docker load metadata error
2024-03-06 19:02:55 +08:00
MrSlntGhost
8a1635bc6e Fix docker load metadata error 2024-03-05 21:46:31 +01:00
Yunfan Li
0b0eeb05c9 Merge branch 'master' into Playerbot 2024-03-04 17:13:57 +08:00
Yunfan Li
8e5731ff60 Fix ServerScript.h 2024-03-03 12:37:43 +08:00
Yunfan Li
51219291a3 Merge branch 'master' into Playerbot 2024-03-03 11:58:01 +08:00
Yunfan Li
7c856eaf63 Merge branch 'master' of github.com:azerothcore/azerothcore-wotlk into Playerbot 2024-02-24 22:48:16 +08:00
Yunfan Li
b4046d48d7 Merge branch 'master' into Playerbot 2024-02-22 23:34:59 +08:00
Yunfan Li
ccff9469fc Merge branch 'master' into Playerbot 2024-02-19 23:10:00 +08:00
Yunfan Li
cd5826f283 Merge branch 'master' into Playerbot 2024-02-14 01:02:12 +08:00
Yunfan Li
5699c97d8c Merge branch 'master' into Playerbot 2024-02-11 23:45:22 +08:00
Yunfan Li
9784f932e9 Merge branch 'master' into Playerbot 2024-02-06 17:51:47 +08:00
Yunfan Li
1ef5b9a6b4 Merge branch 'master' into Playerbot 2024-01-29 11:46:32 +08:00
Yunfan Li
b314b04001 Merge branch 'master' into Playerbot 2024-01-23 12:31:39 +08:00
Yunfan Li
9e172c9113 Merge branch 'master' into Playerbot 2024-01-15 21:00:38 +08:00
Yunfan Li
b70e64dbcf Merge branch 'master' into Playerbot 2024-01-14 15:23:52 +08:00
Yunfan Li
600b0873e7 Merge branch 'master' into Playerbot 2024-01-08 23:30:50 +08:00
Yunfan Li
cb795ae5d4 Merge branch 'master' into Playerbot 2024-01-07 22:41:44 +08:00
Yunfan Li
213300bf66 Merge branch 'master' into Playerbot 2024-01-06 17:54:45 +08:00
Yunfan Li
ccf92f481d Merge branch 'master' into Playerbot 2024-01-04 19:22:20 +08:00
Yunfan Li
19f7e753ba Merge pull request #2 from oiuv/Playerbot
Playerbot
2023-12-28 22:08:00 +08:00
Yunfan Li
68c8fad239 Merge pull request #1 from AlvinZhu/Playerbot
Force playerbots locale enUS and Fix multi-language DBC loading
2023-12-28 22:07:05 +08:00
Oiuv
f68f398e59 Merge branch 'master' into Playerbot 2023-12-28 17:33:26 +08:00
Alvin Zhu
608ff291cb Force playerbots locale enUS 2023-12-27 17:00:20 +08:00
Alvin Zhu
7c91ec9bf9 Fix multi-language DBC loading 2023-12-27 16:59:26 +08:00
Yunfan Li
452584a155 Merge branch 'master' into Playerbot 2023-12-17 22:42:51 +08:00
Yunfan Li
80a8896dfe playerbot logout 2023-12-17 22:41:43 +08:00
Yunfan Li
60cf17d70a fix scripts issue 2023-12-12 20:52:59 +08:00
Yunfan Li
7915f79d04 Merge branch 'master' into Playerbot 2023-12-12 20:52:42 +08:00
Yunfan Li
d879fc9258 Merge branch 'master' into Playerbot 2023-10-27 20:12:09 +08:00
Yunfan Li
57e0c7a09f Merge branch 'master' of github.com:azerothcore/azerothcore-wotlk into Playerbot 2023-10-22 19:52:23 +08:00
Yunfan Li
a5e27362d8 Merge commit '26c583c24ab7dbbf1fecf3dcd737c1ad543c8b33' into Playerbot_1017 2023-10-17 22:18:39 +08:00
Yunfan Li
2dd1490c18 Merge branch 'master' of github.com:azerothcore/azerothcore-wotlk into Playerbot 2023-09-23 22:44:15 +08:00
Yunfan Li
e7ac00b586 Merge branch 'master' into Playerbot 2023-09-05 19:24:48 +08:00
Yunfan Li
28fcb40b88 Merge branch 'master' into Playerbot 2023-09-05 00:13:44 +08:00
Yunfan Li
cc4ac0ab57 Merge branch 'master' into Playerbot 2023-09-03 14:38:52 +08:00
Yunfan Li
92c6ef23ff Merge branch 'master' into Playerbot 2023-09-01 21:17:04 +08:00
Yunfan Li
c6bcda8b9d Merge branch 'master' into Playerbot 2023-08-29 20:50:49 +08:00
Yunfan Li
e2019033c1 Merge branch 'master' into Playerbot 2023-08-27 00:42:24 +08:00
Yunfan Li
58a7625be7 Merge branch 'master' into Playerbot 2023-08-25 02:29:53 +08:00
Yunfan Li
4b1f585fab Merge branch 'master' into Playerbot 2023-08-24 22:07:53 +08:00
Yunfan Li
33eb24f543 MOD_PLAYERBOTS macro 2023-08-24 21:08:59 +08:00
Yunfan Li
36e18dd5e1 change gitmodules 2023-08-10 15:22:06 +08:00
Yunfan Li
6a954d7560 Merge branch 'master' into Playerbot 2023-08-10 13:45:03 +08:00
Yunfan Li
b8567b3f66 conf for playerbots log 2023-08-10 10:30:12 +08:00
Yunfan Li
df11f5a0e7 Merge branch 'master' into Playerbot 2023-08-07 23:58:57 +08:00
Yunfan Li
db889ed3c9 Merge branch 'master' into Playerbot 2023-08-05 19:11:41 +08:00
Yunfan Li
a4e5ff3779 Merge branch 'master' into Playerbot 2023-08-01 23:21:36 +08:00
Yunfan Li
058526b612 Merge branch 'master' into Playerbot 2023-07-30 14:37:00 +08:00
Yunfan Li
78e21a0539 Merge branch 'master' into Playerbot 2023-07-26 13:25:50 +08:00
Yunfan Li
06b2f25a00 Fix(scripts): bot receive CMSG packet 2023-07-26 13:10:55 +08:00
Yunfan Li
2ca14cd5eb Merge branch 'master' into Playerbot 2023-07-24 14:43:27 +08:00
Yunfan Li
95add2b815 Merge branch 'master' into Playerbot 2023-07-18 17:59:18 +08:00
Yunfan Li
2afc3a46d0 refactor naxxramas 2023-07-18 17:58:03 +08:00
Yunfan Li
4d3abb0538 logout bots in kickall 2023-07-15 16:42:10 +08:00
Yunfan Li
95843d5835 Merge branch 'master' into Playerbot 2023-07-14 13:16:02 +08:00
Yunfan Li
44046ee5df Merge branch 'master' into Playerbot 2023-07-08 00:47:19 +08:00
Yunfan Li
0713446e1e Merge branch 'master' into Playerbot 2023-07-04 10:05:31 +08:00
Yunfan Li
55821a893c Merge branch 'master' into Playerbot 2023-06-22 09:53:06 +08:00
Yunfan Li
433467b8c0 split anubrekhan, grobbulus scripts 2023-06-18 21:52:39 +08:00
Yunfan Li
abaf4655e2 Merge branch 'master' into Playerbot 2023-06-18 20:48:30 +08:00
Yunfan Li
b417973361 Merge branch 'master' into Playerbot 2023-06-13 01:04:01 +08:00
Yunfan Li
e766845cb4 Spell(item check): turn ItemLevel to RequiredLevel 2023-06-11 18:19:28 +08:00
Yunfan Li
69740eb29b Merge branch 'master' into Playerbot 2023-06-09 23:40:54 +08:00
Yunfan Li
23306a3d10 split heigan 2023-06-09 23:16:44 +08:00
Yunfan Li
f05b5e678c split grobbulus 2023-06-08 10:58:37 +08:00
Yunfan Li
dc4c50923c Merge branch 'master' into Playerbot 2023-06-07 23:39:37 +08:00
Yunfan Li
46f277f2f6 spilit boss_heigan to .cpp and .h 2023-06-06 00:10:41 +08:00
Yunfan Li
a7519279f7 Merge branch 'master' into Playerbot 2023-06-06 00:07:04 +08:00
Yunfan Li
05103aeacf Merge branch 'master' into Playerbot 2023-06-02 15:38:15 +08:00
Yunfan Li
a1a3263727 Merge branch 'master' into Playerbot 2023-05-29 19:05:17 +08:00
Yunfan Li
0e7289304d command setskill range allow 0 2023-05-29 19:00:11 +08:00
Yunfan Li
9d3d2c84fe HandlePlayerLoginFromDB 2023-05-26 20:52:01 +08:00
Yunfan Li
f677900061 Prevent GUID from exhausting 2023-05-26 01:02:22 +08:00
Yunfan Li
ec45b40cb9 feat: fix warning and configuration 2023-05-24 19:43:56 +08:00
Yunfan Li
72660b1ed8 Merge branch 'master' into Playerbot 2023-05-24 17:57:30 +08:00
ZhengPeiRu21
aa1214a6ba Merge branch 'azerothcore:master' into Playerbot 2023-05-01 10:31:02 -06:00
ZhengPeiRu21
2e294eae2b Merge pull request #6 from kjack9/Playerbot
fix(Docker): add libboost-thread-dev dependency to Dockerfile
2023-05-01 10:30:47 -06:00
KJack
42e8c3f172 fix(Docker): add libboost-thread-dev dependency to Dockerfile 2023-05-01 11:51:21 -04:00
ZhengPeiRu21
25d2c3ebe7 Merge branch 'azerothcore:master' into Playerbot 2023-04-26 13:57:57 -06:00
ZhengPeiRu21
d6a099e98c Merge branch 'azerothcore:master' into Playerbot 2023-04-24 09:38:43 -06:00
ZhengPeiRu21
1773a505c0 Merge branch 'azerothcore:master' into Playerbot 2023-04-23 13:53:58 -06:00
ZhengPeiRu21
e355e79482 Merge branch 'azerothcore:master' into Playerbot 2023-04-21 22:17:38 -06:00
ZhengPeiRu21
bb0f212b87 Merge branch 'azerothcore:master' into Playerbot 2023-04-20 16:01:49 -06:00
ZhengPeiRu21
780c8ede85 Merge branch 'azerothcore:master' into Playerbot 2023-04-19 09:48:45 -06:00
ZhengPeiRu21
e622ba991f Merge branch 'azerothcore:master' into Playerbot 2023-04-18 09:28:55 -06:00
ZhengPeiRu21
affbfa1e30 Merge branch 'azerothcore:master' into Playerbot 2023-04-16 20:27:56 -06:00
ZhengPeiRu21
d02099db9a Merge branch 'azerothcore:master' into Playerbot 2023-04-13 10:42:03 -06:00
ZhengPeiRu21
ae175496dd Merge branch 'azerothcore:master' into Playerbot 2023-04-10 08:27:49 -06:00
ZhengPeiRu21
0248ed8778 Merge branch 'azerothcore:master' into Playerbot 2023-04-06 10:12:34 -06:00
ZhengPeiRu21
43778acb9a Merge branch 'azerothcore:master' into Playerbot 2023-04-05 11:49:27 -06:00
ZhengPeiRu21
ed4e0ffbda Merge branch 'azerothcore:master' into Playerbot 2023-04-04 13:23:00 -06:00
ZhengPeiRu21
c9186547dd Merge branch 'azerothcore:master' into Playerbot 2023-04-04 08:16:34 -06:00
ZhengPeiRu21
a27f752dcc Merge branch 'azerothcore:master' into Playerbot 2023-04-03 22:10:19 -06:00
郑佩茹
00f9f8e0d0 Merge branch 'Playerbot' of https://github.com/ZhengPeiRu21/azerothcore-wotlk into Playerbot 2023-04-03 07:53:39 -06:00
郑佩茹
1b3fd82f5c Merge branch 'master' into Playerbot
# Conflicts:
#	src/server/game/Guilds/Guild.cpp
2023-04-03 07:52:56 -06:00
ZhengPeiRu21
4004dcb23b Merge branch 'azerothcore:master' into Playerbot 2023-04-02 09:42:34 -06:00
ZhengPeiRu21
6cb1778c6d Merge branch 'azerothcore:master' into Playerbot 2023-04-01 08:07:59 -06:00
ZhengPeiRu21
0aca3f7b72 Merge branch 'azerothcore:master' into Playerbot 2023-03-30 07:34:21 -06:00
ZhengPeiRu21
2bf872e446 Merge branch 'azerothcore:master' into Playerbot 2023-03-29 06:29:03 -06:00
ZhengPeiRu21
939291c9c2 Merge branch 'azerothcore:master' into Playerbot 2023-03-28 09:26:50 -06:00
ZhengPeiRu21
4c18f3b3e5 Merge branch 'azerothcore:master' into Playerbot 2023-03-25 13:06:10 -06:00
ZhengPeiRu21
38268a187e Merge branch 'azerothcore:master' into Playerbot 2023-03-23 09:07:11 -06:00
ZhengPeiRu21
317afd051b Merge branch 'azerothcore:master' into Playerbot 2023-03-22 10:16:52 -06:00
ZhengPeiRu21
71e8baf929 Merge branch 'azerothcore:master' into Playerbot 2023-03-22 09:35:01 -06:00
ZhengPeiRu21
e9143a2c0b Merge branch 'azerothcore:master' into Playerbot 2023-03-21 08:46:26 -06:00
郑佩茹
0a192af532 Merge branch 'Playerbot' of https://github.com/ZhengPeiRu21/azerothcore-wotlk into Playerbot 2023-03-16 11:08:57 -06:00
郑佩茹
be7c57507f Merge branch 'master' into Playerbot
# Conflicts:
#	src/server/game/Entities/Player/Player.h
2023-03-16 10:00:13 -06:00
ZhengPeiRu21
e898462333 Merge branch 'azerothcore:master' into Playerbot 2023-03-10 08:18:50 -07:00
ZhengPeiRu21
ca84c22cf2 Merge branch 'azerothcore:master' into Playerbot 2023-03-06 23:19:41 -07:00
ZhengPeiRu21
fce7ba32a3 Merge branch 'azerothcore:master' into Playerbot 2023-03-02 08:52:37 -07:00
郑佩茹
328d991305 Merge branch 'Playerbot' of https://github.com/ZhengPeiRu21/azerothcore-wotlk into Playerbot 2023-03-01 11:52:48 -07:00
郑佩茹
826bac08ec Merge branch 'master' into Playerbot
# Conflicts:
#	src/server/game/World/IWorld.h
#	src/server/game/World/World.h
2023-03-01 11:52:02 -07:00
ZhengPeiRu21
d40a859de6 Merge branch 'azerothcore:master' into Playerbot 2023-02-21 11:29:39 -07:00
ZhengPeiRu21
62d3317c93 Merge branch 'azerothcore:master' into Playerbot 2023-02-17 16:12:43 -07:00
郑佩茹
6a1589c989 Update to be compatible with latest AC 2023-02-17 12:41:37 -07:00
郑佩茹
8ffdf088d4 Merge branch 'master' into Playerbot 2023-02-17 11:37:31 -07:00
郑佩茹
d5e1ec851a Merge branch 'Playerbot' of https://github.com/ZhengPeiRu21/azerothcore-wotlk into Playerbot 2023-02-14 12:03:09 -07:00
郑佩茹
4bc9901f16 Merge branch 'master' into Playerbot
# Conflicts:
#	src/server/game/Entities/GameObject/GameObject.h
2023-02-13 13:07:03 -07:00
ZhengPeiRu21
ba4e49f5b2 Merge branch 'azerothcore:master' into Playerbot 2023-02-10 15:48:50 -07:00
郑佩茹
ccee04c908 Merge branch 'Playerbot' of https://github.com/ZhengPeiRu21/azerothcore-wotlk into Playerbot 2023-02-09 12:42:09 -07:00
郑佩茹
03b3f9d051 Merge branch 'master' into Playerbot
# Conflicts:
#	src/server/game/World/World.h
2023-02-09 12:40:25 -07:00
ZhengPeiRu21
465d19b7f6 Merge branch 'azerothcore:master' into Playerbot 2023-01-19 11:57:25 -07:00
ZhengPeiRu21
f51115a054 Merge branch 'azerothcore:master' into Playerbot 2023-01-12 09:20:22 -07:00
ZhengPeiRu21
16eecd908e Merge branch 'azerothcore:master' into Playerbot 2023-01-04 11:21:02 -07:00
ZhengPeiRu21
b86914fd37 Merge branch 'azerothcore:master' into Playerbot 2022-12-29 12:20:26 -07:00
ZhengPeiRu21
2bb78d1451 Merge branch 'azerothcore:master' into Playerbot 2022-12-27 09:50:12 -07:00
ZhengPeiRu21
cd6e0d7e0b Merge branch 'azerothcore:master' into Playerbot 2022-12-12 10:18:34 -07:00
ZhengPeiRu21
5a8fe17184 Merge branch 'azerothcore:master' into Playerbot 2022-12-09 11:56:19 -07:00
郑佩茹
2ec6f2d92f Merge branch 'Playerbot' of https://github.com/ZhengPeiRu21/azerothcore-wotlk into Playerbot 2022-12-07 14:46:45 -07:00
郑佩茹
c1c97ad425 Merge branch 'master' into Playerbot
# Conflicts:
#	src/server/game/Server/WorldSession.cpp
#	src/server/game/Server/WorldSession.h
2022-12-07 14:46:21 -07:00
ZhengPeiRu21
fad161a76b Merge branch 'azerothcore:master' into Playerbot 2022-12-01 09:43:29 -07:00
ZhengPeiRu21
87f185bb85 Merge branch 'azerothcore:master' into Playerbot 2022-11-23 09:13:39 -07:00
郑佩茹
ec7288bc17 Merge branch 'Playerbot' of https://github.com/ZhengPeiRu21/azerothcore-wotlk into Playerbot 2022-11-18 12:15:17 -07:00
郑佩茹
cab0d6f027 Merge branch 'master' into Playerbot
# Conflicts:
#	src/server/game/Guilds/Guild.cpp
2022-11-18 10:21:36 -07:00
ZhengPeiRu21
8ec316da13 Merge branch 'azerothcore:master' into Playerbot 2022-11-07 13:20:52 -07:00
ZhengPeiRu21
4d068b0e74 Merge branch 'azerothcore:master' into Playerbot 2022-11-04 09:12:25 -06:00
ZhengPeiRu21
18ae6a473f Merge branch 'azerothcore:master' into Playerbot 2022-10-31 16:12:42 -06:00
ZhengPeiRu21
99dbd3d4c5 Merge branch 'azerothcore:master' into Playerbot 2022-10-26 09:07:05 -06:00
ZhengPeiRu21
780b947f51 Merge branch 'azerothcore:master' into Playerbot 2022-10-24 16:21:51 -06:00
ZhengPeiRu21
b68c3a733a Merge branch 'azerothcore:master' into Playerbot 2022-10-24 08:50:01 -06:00
ZhengPeiRu21
e0b905aef7 Merge branch 'azerothcore:master' into Playerbot 2022-10-22 17:44:53 -06:00
ZhengPeiRu21
4b8fb01016 Merge branch 'azerothcore:master' into Playerbot 2022-10-19 19:25:35 -06:00
ZhengPeiRu21
ce8592b29b Merge branch 'azerothcore:master' into Playerbot 2022-10-17 10:41:21 -06:00
ZhengPeiRu21
46438255bf Merge branch 'azerothcore:master' into Playerbot 2022-10-15 09:59:28 -06:00
郑佩茹
5996f1f1af Remove outdated Git submodule 2022-10-07 09:17:43 -06:00
ZhengPeiRu21
906748cd16 Merge branch 'azerothcore:master' into Playerbot 2022-10-07 09:14:47 -06:00
ZhengPeiRu21
80c608df4f Merge branch 'azerothcore:master' into Playerbot 2022-10-02 10:46:28 -06:00
ZhengPeiRu21
a300a4be12 Merge branch 'azerothcore:master' into Playerbot 2022-09-28 17:09:45 -06:00
郑佩茹
203f2ec7eb Update PLAYERBOTS_SEL_TEXT query 2022-09-27 08:40:27 -06:00
ZhengPeiRu21
8c05b69e4e Merge branch 'azerothcore:master' into Playerbot 2022-09-26 10:01:10 -06:00
ZhengPeiRu21
7b5a03ac8f Merge branch 'azerothcore:master' into Playerbot 2022-09-23 10:03:15 -06:00
ZhengPeiRu21
4c6c80d880 Merge branch 'azerothcore:master' into Playerbot 2022-09-22 15:18:27 -06:00
ZhengPeiRu21
8da3ae8a91 Merge branch 'azerothcore:master' into Playerbot 2022-09-21 09:42:10 -06:00
ZhengPeiRu21
e67849a858 Merge branch 'azerothcore:master' into Playerbot 2022-09-19 09:23:59 -06:00
ZhengPeiRu21
d38899321c Merge branch 'azerothcore:master' into Playerbot 2022-09-18 17:01:24 -06:00
ZhengPeiRu21
6dfc04c2bf Merge branch 'azerothcore:master' into Playerbot 2022-09-15 18:12:58 -06:00
ZhengPeiRu21
46fa7b484d Merge branch 'azerothcore:master' into Playerbot 2022-09-15 09:10:16 -06:00
ZhengPeiRu21
76f4f741d8 Merge branch 'azerothcore:master' into Playerbot 2022-09-13 18:48:47 -06:00
ZhengPeiRu21
8791645166 Merge branch 'azerothcore:master' into Playerbot 2022-09-13 10:44:15 -06:00
ZhengPeiRu21
77571adf1f Merge branch 'azerothcore:master' into Playerbot 2022-09-08 15:10:29 -06:00
ZhengPeiRu21
aa1705d6c5 Merge branch 'azerothcore:master' into Playerbot 2022-09-07 09:35:58 -06:00
郑佩茹
c9fa699837 Attempt to fix Evade issue 2022-09-06 13:35:06 -06:00
ZhengPeiRu21
819532426b Merge branch 'azerothcore:master' into Playerbot 2022-09-06 12:11:39 -06:00
ZhengPeiRu21
31f36b25f2 Merge branch 'azerothcore:master' into Playerbot 2022-09-03 10:17:45 -06:00
ZhengPeiRu21
ac5bcfae12 Merge branch 'azerothcore:master' into Playerbot 2022-09-02 10:49:43 -06:00
ZhengPeiRu21
399b8803b8 Merge branch 'azerothcore:master' into Playerbot 2022-09-01 12:56:06 -06:00
ZhengPeiRu21
cd7a22a4de Merge branch 'azerothcore:master' into Playerbot 2022-08-30 20:52:05 -06:00
ZhengPeiRu21
2759a5ee1d Merge branch 'azerothcore:master' into Playerbot 2022-08-29 09:30:33 -06:00
郑佩茹
0752208c43 Merge branch 'master' into Playerbot
# Conflicts:
#	src/server/game/Entities/Player/Player.cpp
2022-08-25 10:07:17 -06:00
郑佩茹
3d8f540110 ResetChatTimer no longer needed with upstream chat flood handling changes 2022-08-19 12:16:34 -06:00
ZhengPeiRu21
774225e669 Merge branch 'azerothcore:master' into Playerbot 2022-08-18 13:48:09 -06:00
郑佩茹
bbd283598d Fix Evading issue 2022-08-18 13:46:22 -06:00
郑佩茹
32c6babdb7 Merge branch 'master' into Playerbot
# Conflicts:
#	src/server/game/Entities/Player/Player.cpp
#	src/server/game/Entities/Player/Player.h
#	src/server/game/Entities/Unit/Unit.h
2022-08-16 16:13:26 -06:00
郑佩茹
29e14042e7 Update to work with latest AzerothCore master 2022-07-27 10:15:08 -06:00
郑佩茹
a5f1fc38a8 Merge branch 'Playerbot' of https://github.com/ZhengPeiRu21/azerothcore-wotlk into Playerbot
 Conflicts:
	src/server/game/Entities/Creature/Creature.cpp
2022-07-27 09:57:48 -06:00
郑佩茹
6ad65508af Merge branch 'master' into Playerbot
# Conflicts:
#	src/server/game/Entities/Creature/Creature.cpp
#	src/server/game/Entities/Creature/Creature.h
#	src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp
2022-07-27 09:11:50 -06:00
ZhengPeiRu21
2a45fdff1f Merge pull request #5 from KobaltBlu/Playerbot
fix: illegal instruction error in Creature.cpp:3470
2022-07-21 09:07:48 -06:00
ZhengPeiRu21
d960ccd4e4 Merge branch 'azerothcore:master' into Playerbot 2022-07-21 09:06:44 -06:00
KobaltBlu
55510b18e6 fix: illegal instruction error in Creature.cpp:3470 2022-07-20 00:50:00 -04:00
ZhengPeiRu21
0fd3d185b9 Merge pull request #4 from KobaltBlu/Playerbot
fix: remove WorldFloatConfigs[CONFIG_WATER_BREATH_TIMER]
2022-07-19 08:53:24 -06:00
KobaltBlu
efd245daf5 fix: remove WorldFloatConfigs[CONFIG_WATER_BREATH_TIMER]
fixes compile error: "fatal error: redefinition of enumerator"
2022-07-16 11:09:52 -04:00
郑佩茹
27300e9fdf Merge branch 'Playerbot' of https://github.com/ZhengPeiRu21/azerothcore-wotlk into Playerbot 2022-07-13 10:32:18 -06:00
郑佩茹
a44c241430 Merge branch 'master' into Playerbot
# Conflicts:
#	src/server/apps/worldserver/worldserver.conf.dist
#	src/server/game/Battlegrounds/Battleground.h
#	src/server/game/Entities/Player/Player.cpp
#	src/server/game/World/World.cpp
2022-07-13 10:31:30 -06:00
ZhengPeiRu21
f1043be632 Merge branch 'azerothcore:master' into Playerbot 2022-07-06 10:08:55 -06:00
ZhengPeiRu21
0d3a10cc26 Merge branch 'azerothcore:master' into Playerbot 2022-07-05 10:24:47 -06:00
ZhengPeiRu21
e8781b0fc1 Merge branch 'azerothcore:master' into Playerbot 2022-07-01 10:11:40 -06:00
ZhengPeiRu21
c687d40741 Merge branch 'azerothcore:master' into Playerbot 2022-06-30 09:34:51 -06:00
ZhengPeiRu21
65f6fbb496 Merge branch 'azerothcore:master' into Playerbot 2022-06-27 09:06:46 -06:00
ZhengPeiRu21
98f0f093e5 Merge branch 'azerothcore:master' into Playerbot 2022-06-24 15:25:18 -06:00
郑佩茹
67e9f2fd35 Fix merge conflicts 2022-06-21 13:24:33 -06:00
郑佩茹
98c22aa96d Merge branch 'master' of https://github.com/ZhengPeiRu21/azerothcore-wotlk into Playerbot 2022-06-21 13:23:18 -06:00
郑佩茹
87fc81d0cc Merge branch 'master' of https://github.com/ZhengPeiRu21/azerothcore-wotlk into Playerbot 2022-06-21 09:19:50 -06:00
郑佩茹
743479e817 Merge branch 'Playerbot' of https://github.com/ZhengPeiRu21/azerothcore-wotlk into Playerbot 2022-06-16 10:06:30 -06:00
郑佩茹
7cc44a4ab1 Merge branch 'breathTimerConfig' into Playerbot 2022-06-16 10:06:05 -06:00
ZhengPeiRu21
3ab6d3cb37 Merge branch 'azerothcore:master' into Playerbot 2022-06-16 10:04:30 -06:00
ZhengPeiRu21
4f8564ea5b Merge branch 'azerothcore:master' into Playerbot 2022-06-13 15:00:30 -06:00
ZhengPeiRu21
2d7cba14db Merge branch 'azerothcore:master' into Playerbot 2022-06-10 08:51:40 -06:00
ZhengPeiRu21
d8a2665867 Merge branch 'azerothcore:master' into Playerbot 2022-06-08 11:10:38 -06:00
郑佩茹
46e9e82118 feat(Core/Config): Configurable Water Breath Timer 2022-06-03 12:34:31 -06:00
ZhengPeiRu21
427f0afaaf Merge branch 'azerothcore:master' into Playerbot 2022-06-03 10:02:54 -06:00
郑佩茹
b314b3a711 Merge branch 'master' into Playerbot 2022-05-31 09:11:39 -06:00
ZhengPeiRu21
2442fc6ad7 Merge branch 'azerothcore:master' into Playerbot 2022-05-29 21:07:57 -06:00
郑佩茹
650e71728a Merge branch 'master' into Playerbot
# Conflicts:
#	src/server/game/Entities/Unit/Unit.cpp
2022-05-25 08:51:01 -06:00
ZhengPeiRu21
882359297d Merge branch 'azerothcore:master' into Playerbot 2022-05-23 09:04:16 -06:00
ZhengPeiRu21
0d42597ba3 Merge branch 'azerothcore:master' into Playerbot 2022-05-22 12:08:05 -06:00
ZhengPeiRu21
34b332b51b Merge branch 'azerothcore:master' into Playerbot 2022-05-19 12:55:28 -06:00
ZhengPeiRu21
cc94955bb2 Merge branch 'azerothcore:master' into Playerbot 2022-05-17 11:00:13 -06:00
郑佩茹
9a6c789f1a Add missing override annotation to GetPlayerbotsDBRevision 2022-05-16 13:16:03 -06:00
ZhengPeiRu21
26595bd2d9 Merge branch 'azerothcore:master' into Playerbot 2022-05-16 13:11:42 -06:00
ZhengPeiRu21
6b57ea8223 Merge branch 'azerothcore:master' into Playerbot 2022-05-12 09:41:56 -06:00
ZhengPeiRu21
e05bc38461 Merge pull request #3 from qudzy/upstream/refactor-instance-suggestions
Refactor instance suggestions
2022-05-10 08:48:32 -06:00
ZhengPeiRu21
0053ac67d9 Merge branch 'azerothcore:master' into Playerbot 2022-05-10 08:46:47 -06:00
ZhengPeiRu21
c2efd301b5 Merge branch 'azerothcore:master' into Playerbot 2022-05-06 16:13:01 -06:00
qudzy
44e4cd8cda Add prepared dungeon suggestion statement 2022-05-06 16:55:21 +02:00
qudzy
0e6a5bddbb Declare strToLower method in utilities 2022-05-06 16:55:21 +02:00
qudzy
1e3d488784 Ignore Visual Studio folders 2022-05-06 16:55:21 +02:00
ZhengPeiRu21
c6df5eae3a Merge branch 'azerothcore:master' into Playerbot 2022-05-04 10:47:16 -06:00
郑佩茹
0326d8576d Merge branch 'master' into Playerbot
# Conflicts:
#	src/server/game/World/IWorld.h
#	src/server/game/World/World.cpp
#	src/server/game/World/World.h
#	src/server/scripts/Commands/cs_server.cpp
2022-05-02 16:39:21 -06:00
ZhengPeiRu21
92841a35e1 Merge branch 'azerothcore:master' into Playerbot 2022-04-26 08:42:57 -06:00
ZhengPeiRu21
84b794ab38 Merge branch 'azerothcore:master' into Playerbot 2022-04-25 08:58:13 -06:00
ZhengPeiRu21
8b0ef0b5a0 Merge branch 'azerothcore:master' into Playerbot 2022-04-22 09:13:49 -06:00
ZhengPeiRu21
0efe2a01fe Merge branch 'azerothcore:master' into Playerbot 2022-04-20 09:18:17 -06:00
ZhengPeiRu21
f5f3d78ed6 Merge branch 'azerothcore:master' into Playerbot 2022-04-19 09:07:56 -06:00
ZhengPeiRu21
534df7c448 Merge branch 'azerothcore:master' into Playerbot 2022-04-17 17:59:20 -06:00
ZhengPeiRu21
ec96415fda Merge branch 'azerothcore:master' into Playerbot 2022-04-16 21:41:45 -06:00
ZhengPeiRu21
19b2c35180 Merge branch 'azerothcore:master' into Playerbot 2022-04-14 09:06:05 -06:00
ZhengPeiRu21
a1985ddbeb Merge branch 'azerothcore:master' into Playerbot 2022-04-11 08:40:56 -06:00
ZhengPeiRu21
2cb590a48b Merge branch 'azerothcore:master' into Playerbot 2022-04-07 08:55:50 -06:00
ZhengPeiRu21
68d3ec7d77 Merge branch 'azerothcore:master' into Playerbot 2022-04-04 07:53:51 -06:00
ZhengPeiRu21
a25c289a5a Merge branch 'azerothcore:master' into Playerbot 2022-04-01 08:30:15 -06:00
ZhengPeiRu21
32dc06900c Merge branch 'azerothcore:master' into Playerbot 2022-03-30 09:53:52 -06:00
ZhengPeiRu21
1c11bde14f Merge branch 'azerothcore:master' into Playerbot 2022-03-28 17:33:20 -06:00
ZhengPeiRu21
f5f6478688 Merge branch 'azerothcore:master' into Playerbot 2022-03-27 11:23:15 -06:00
ZhengPeiRu21
7d7e66cbe4 Merge branch 'azerothcore:master' into Playerbot 2022-03-25 10:48:58 -06:00
ZhengPeiRu21
fb52816a11 Merge branch 'azerothcore:master' into Playerbot 2022-03-24 12:58:22 -06:00
ZhengPeiRu21
246e2cad2e Merge branch 'azerothcore:master' into Playerbot 2022-03-24 08:28:09 -06:00
郑佩茹
36ed431c7f Merge branch 'master' of https://github.com/ZhengPeiRu21/azerothcore-wotlk into Playerbot 2022-03-23 08:47:32 -06:00
郑佩茹
5cec9facf8 Add missing ifdef for PLAYERBOTS 2022-03-23 08:46:03 -06:00
郑佩茹
d4062269c8 Merge branch 'master' into Playerbot 2022-03-22 10:53:26 -06:00
郑佩茹
db71f4739c Fix corrupt item cache crashes, bot whispers, trade crashes 2022-03-22 10:51:50 -06:00
郑佩茹
ff0e5d5e3b Merge branch 'questXPHook' into Playerbot 2022-03-21 14:47:43 -06:00
郑佩茹
60f11b3671 Merge branch 'master' into Playerbot
# Conflicts:
#	apps/ci/ci-install-modules.sh
#	src/common/Collision/Management/MMapMgr.cpp
#	src/common/Debugging/Errors.h
#	src/server/game/AI/SmartScripts/SmartScript.cpp
#	src/server/game/Battlegrounds/Arena.cpp
#	src/server/game/Battlegrounds/ArenaScore.h
#	src/server/game/Battlegrounds/Battleground.cpp
#	src/server/game/Battlegrounds/BattlegroundMgr.cpp
#	src/server/game/Battlegrounds/BattlegroundMgr.h
#	src/server/game/Battlegrounds/BattlegroundQueue.cpp
#	src/server/game/Battlegrounds/BattlegroundQueue.h
#	src/server/game/Battlegrounds/Zones/BattlegroundAB.h
#	src/server/game/Battlegrounds/Zones/BattlegroundEY.h
#	src/server/game/Battlegrounds/Zones/BattlegroundIC.h
#	src/server/game/Conditions/ConditionMgr.cpp
#	src/server/game/DataStores/M2Stores.cpp
#	src/server/game/DungeonFinding/LFGMgr.cpp
#	src/server/game/Entities/Creature/Creature.cpp
#	src/server/game/Entities/Creature/CreatureData.h
#	src/server/game/Entities/GameObject/GameObject.cpp
#	src/server/game/Entities/GameObject/GameObject.h
#	src/server/game/Entities/Player/Player.cpp
#	src/server/game/Entities/Player/Player.h
#	src/server/game/Entities/Player/PlayerStorage.cpp
#	src/server/game/Entities/Unit/Unit.cpp
#	src/server/game/Entities/Unit/Unit.h
#	src/server/game/Globals/ObjectMgr.cpp
#	src/server/game/Groups/Group.cpp
#	src/server/game/Groups/Group.h
#	src/server/game/Guilds/Guild.cpp
#	src/server/game/Guilds/Guild.h
#	src/server/game/Handlers/BattleGroundHandler.cpp
#	src/server/game/Handlers/CharacterHandler.cpp
#	src/server/game/Scripting/ScriptDefines/BGScript.cpp
#	src/server/game/Scripting/ScriptDefines/DatabaseScript.cpp
#	src/server/game/Scripting/ScriptDefines/PlayerScript.cpp
#	src/server/game/Scripting/ScriptDefines/ServerScript.cpp
#	src/server/game/Scripting/ScriptMgr.cpp
#	src/server/game/Scripting/ScriptMgrMacros.h
#	src/server/game/Server/Packets/MiscPackets.cpp
#	src/server/game/Server/Packets/MiscPackets.h
#	src/server/game/Server/WorldSession.cpp
#	src/server/game/Spells/SpellEffects.cpp
#	src/server/game/World/IWorld.h
#	src/server/game/World/World.cpp
#	src/server/game/World/World.h
#	src/server/scripts/Commands/cs_npc.cpp
#	src/server/scripts/Commands/cs_server.cpp
#	src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp
#	src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp
#	src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp
#	src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp
#	src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp
#	src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.h
#	src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp
2022-03-21 13:57:37 -06:00
郑佩茹
e42a572c35 Merge branch 'master' into questXPHook 2022-03-16 15:22:22 -06:00
郑佩茹
921bfbde86 Merge branch 'master' into questXPHook 2022-03-13 16:37:06 -06:00
郑佩茹
b88c5d8b89 Added changelog 2022-03-12 20:13:55 -07:00
UltraNix
12d41d1314 Big update. 2022-03-12 22:28:00 +01:00
郑佩茹
c2a6eff91d Merge branch 'master' into questXPHook 2022-03-10 12:08:00 -07:00
郑佩茹
7b3b37b1b3 Merge branch 'master' into questXPHook 2022-03-08 10:23:32 -07:00
郑佩茹
d60bb4fc90 feat(Scripting/Hooks): Implement OnQuestComputeXP() hook 2022-03-07 19:17:29 -07:00
UltraNix
6006eeeb01 asd 2021-12-07 15:57:39 +01:00
UltraNix
2cab3258bb 1st commit 2021-12-06 11:16:04 +01:00
195 changed files with 4595 additions and 1298 deletions

3
.github/README.md vendored
View File

@@ -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.

View File

@@ -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

View File

@@ -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

View File

@@ -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

View 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
View 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 }}

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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
View File

@@ -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

View File

@@ -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 \

View File

@@ -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:

View File

@@ -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

View 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');

View 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');

View 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)');

View 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');

View 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');

View 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');

View 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');

View 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');

View 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\'');

View 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');

View 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);

View 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\'');

View 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);

View 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;

View 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;

View 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;

View 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');

View 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;

View 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)');

View 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.');

View 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);

View 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;

View 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');

View 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);

View 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');

View 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');

View 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

View 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');

View 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);

View 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)');

View 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\'');

View File

@@ -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)

View File

@@ -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

View File

@@ -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)

View File

@@ -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()

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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")

View File

@@ -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)

View File

@@ -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();

View File

@@ -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);
}
};

View File

@@ -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);

View File

@@ -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;

View File

@@ -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

View File

@@ -20,3 +20,7 @@
DatabaseWorkerPool<WorldDatabaseConnection> WorldDatabase;
DatabaseWorkerPool<CharacterDatabaseConnection> CharacterDatabase;
DatabaseWorkerPool<LoginDatabaseConnection> LoginDatabase;
#ifdef MOD_PLAYERBOTS
DatabaseWorkerPool<PlayerbotsDatabaseConnection> PlayerbotsDatabase;
#endif

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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;

View File

@@ -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

View File

@@ -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);

View File

@@ -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,

View File

@@ -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);

View File

@@ -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,

View File

@@ -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

View 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

View File

@@ -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

View File

@@ -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();

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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);

View File

@@ -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;
};
};

View File

@@ -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;
}
}

View File

@@ -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;

View File

@@ -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

View File

@@ -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;

View File

@@ -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;

View File

@@ -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];

View File

@@ -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;

View File

@@ -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);

View File

@@ -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

View File

@@ -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();

View File

@@ -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)

View File

@@ -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);

View File

@@ -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 ==========================
//============================================================

View File

@@ -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; }

View File

@@ -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);

View File

@@ -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
};

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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

View File

@@ -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