Fix assert triggered when a spell would trigger another spell in OnEffectHitTarget that would kill the target, then processing the main spell effects. The triggered spell can kill the target, changing its death state to CORPSE and removing auras created.
Fix#22306
(cherry picked from commit 518e6299ca)
Change again how SOAP is stopped if SOAP successfully binds but worldserver fails to bind its sockets.
A crash remains if SOAP fails to bind because it calls exit() and that triggers asserts everywhere.
(cherry picked from commit d05ab073cb)
Fix worldserver entering a loop when having SOAP enabled but failing to bind both SOAP and worldserver listened socket. SOAP thread would keep trying to bind the socket over and over checking World::IsStopped() condition that was never set to true
(cherry picked from commit 85e3169fbd)
* Core/AI: Revamp how UnitAI changes are applied
Revamp how UnitAI changes are applied by storing current AI in a variable and all previous AIs plus current in a stack.
The callers can push/pop AIs on the stack that will take effect only in next Unit::Update() call.
The current AI will be a valid object for the whole duration of Unit::Update() and until next Unit::Update() call.
* Core/AI: Apply new AI change code
* Core/AI: Fix build
* Core/AI: Fix crash on Creature::AIM_Create()
* Core/AI: Fix crash
* Core/AI: Restore ASSERT
* Core/AI: Fix UnitAI not being popped properly when restoring a charmed AI
(cherry picked from commit 8f9654d817)
- split the quest status check, the quest gossips are different
- remove old hardcoded text (deprecated method)
- enumerate already existing DB gossip menu option items
(cherry picked from commit a8558c4361)
Replace the output string when a UTF-8 conversion error happen with an error message instead of using an empty string, swallowing any message that the caller wanted to log.
(cherry picked from commit bdb7e6e5e8)
Quest 12288: Overwhelmed!
- Upon casting the healing quest spell, Wounded Skirmisher (npc_wounded_skirmisher)
shows $r and $c in their reply talk text because of the missing target argument,
hence not targeting the player on the quest (or the specific caster, in this case).
Text used by the NPC Wounded Skirmisher:
0 Ahh.... better.
1 Whoa - I nearly died there. Thank you, $r!
2 Thank you, $c.
Solution: add the missing target name, caster, to the Talk() script line.
(cherry picked from commit 95398fadf9)