From e635ba5b813464797ea834f845b723c54cfc469b Mon Sep 17 00:00:00 2001 From: Gacko Date: Tue, 26 Mar 2013 21:49:22 +0100 Subject: [PATCH] Core/SmartAI: SMART_ACTION_FORCE_DESPAWN for dead creatures --- src/server/game/AI/SmartScripts/SmartScript.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index 9c476ea55f..f5a75de73f 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -1023,8 +1023,16 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u if (!IsSmart()) break; - CAST_AI(SmartAI, me->AI())->SetDespawnTime(e.action.forceDespawn.delay + 1);//next tick - CAST_AI(SmartAI, me->AI())->StartDespawn(); + // The AI is only updated if the creature is alive + if (me->isAlive()) + { + CAST_AI(SmartAI, me->AI())->SetDespawnTime(e.action.forceDespawn.delay + 1); // Next tick + CAST_AI(SmartAI, me->AI())->StartDespawn(); + } + // Otherwise we call the despawn directly + else + me->DespawnOrUnsummon(e.action.forceDespawn.delay); + break; } case SMART_ACTION_SET_INGAME_PHASE_MASK: