aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/AI/SmartScripts/SmartAI.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartAI.cpp b/src/server/game/AI/SmartScripts/SmartAI.cpp
index 501bc35b77a..799102aa4bd 100644
--- a/src/server/game/AI/SmartScripts/SmartAI.cpp
+++ b/src/server/game/AI/SmartScripts/SmartAI.cpp
@@ -422,6 +422,9 @@ void SmartAI::MovepointReached(uint32 id)
void SmartAI::MovementInform(uint32 MovementType, uint32 Data)
{
+ if ((MovementType == POINT_MOTION_TYPE && Data == SMART_ESCORT_LAST_OOC_POINT) || MovementType == FOLLOW_MOTION_TYPE)
+ me->ClearUnitState(UNIT_STATE_EVADE);
+
GetScript()->ProcessEventsFor(SMART_EVENT_MOVEMENTINFORM, NULL, MovementType, Data);
if (MovementType != POINT_MOTION_TYPE || !HasEscortState(SMART_ESCORT_ESCORTING))
return;
@@ -443,11 +446,12 @@ void SmartAI::RemoveAuras()
void SmartAI::EnterEvadeMode()
{
- if (!me->isAlive())
+ if (!me->isAlive() || me->IsInEvadeMode())
return;
RemoveAuras();
+ me->AddUnitState(UNIT_STATE_EVADE);
me->DeleteThreatList();
me->CombatStop(true);
me->LoadCreaturesAddon();