aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/AI/SmartScripts/SmartScript.cpp12
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: