diff options
| -rw-r--r-- | src/server/game/AI/SmartScripts/SmartAI.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartAI.cpp b/src/server/game/AI/SmartScripts/SmartAI.cpp index b185ada614d..96c4cb9f5d0 100644 --- a/src/server/game/AI/SmartScripts/SmartAI.cpp +++ b/src/server/game/AI/SmartScripts/SmartAI.cpp @@ -460,7 +460,6 @@ void SmartAI::EnterEvadeMode() me->LoadCreaturesAddon(); me->SetLootRecipient(NULL); me->ResetPlayerDamageReq(); - GetScript()->ProcessEventsFor(SMART_EVENT_EVADE);//must be after aura clear so we can cast spells from db SetRun(mRun); @@ -475,7 +474,10 @@ void SmartAI::EnterEvadeMode() me->GetMotionMaster()->MoveFollow(target, mFollowDist, mFollowAngle); } else + { + mCanCombatMove = true; me->GetMotionMaster()->MoveTargetedHome(); + } Reset(); } @@ -588,6 +590,9 @@ int SmartAI::Permissible(const Creature* creature) void SmartAI::JustReachedHome() { GetScript()->ProcessEventsFor(SMART_EVENT_REACHED_HOME); + + if (!UpdateVictim() && me->GetMotionMaster()->GetCurrentMovementGeneratorType() == IDLE_MOTION_TYPE && me->GetWaypointPath()) + me->ToCreature()->GetMotionMaster()->MovePath(me->GetWaypointPath(), true); } void SmartAI::EnterCombat(Unit* enemy) @@ -787,8 +792,9 @@ void SmartAI::SetCombatMove(bool on) } else { - me->StopMoving(); + me->GetMotionMaster()->MovementExpired(); me->GetMotionMaster()->Clear(true); + me->StopMoving(); me->GetMotionMaster()->MoveIdle(); } } |
