From 1a891f3a5edf173adcd304aa4bfc6828b63fb507 Mon Sep 17 00:00:00 2001 From: Naios Date: Sat, 2 Jul 2016 18:38:24 +0200 Subject: Core/Scripting: Don't force event cancellation when swapping creatures. * EventProcessor::KillAllEvents(force = false) should only be used by the EventProcessor. (cherry picked from commit d68316fcd2fc71343edfbd387249b75bd6e8a90f) --- src/server/game/Scripting/ScriptMgr.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/server/game/Scripting/ScriptMgr.cpp') diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index 5d3297b009d..476b87f2440 100644 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -368,7 +368,9 @@ class CreatureGameObjectScriptRegistrySwapHooks // Hook which is called before a creature is swapped static void UnloadStage1(Creature* creature) { - creature->m_Events.KillAllEvents(true); + // Remove deletable events only, + // otherwise it causes crashes with non-deletable spell events. + creature->m_Events.KillAllEvents(false); if (creature->IsCharmed()) creature->RemoveCharmedBy(nullptr); -- cgit v1.2.3