diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/AI/SmartScripts/SmartScript.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index 9c476ea55fc..f5a75de73f8 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: |