diff --git a/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp b/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp index da9dfb25d0e..cc3342c0070 100644 --- a/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp +++ b/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp @@ -353,10 +353,13 @@ void EscortAI::FillPointMovementListForCreature() void EscortAI::SetRun(bool on) { - if (on && !_running) - me->SetWalk(false); - else if (!on && _running) - me->SetWalk(true); + if (on == _running) + return; + + for (auto& node : _path.nodes) + node.moveType = on ? WAYPOINT_MOVE_TYPE_RUN : WAYPOINT_MOVE_TYPE_WALK; + + me->SetWalk(!on); _running = on; } diff --git a/src/server/game/AI/SmartScripts/SmartAI.cpp b/src/server/game/AI/SmartScripts/SmartAI.cpp index 6b2acb1d57b..38c2fda2be7 100644 --- a/src/server/game/AI/SmartScripts/SmartAI.cpp +++ b/src/server/game/AI/SmartScripts/SmartAI.cpp @@ -799,8 +799,13 @@ ObjectGuid SmartAI::GetGUID(int32 /*id*/) const void SmartAI::SetRun(bool run) { + if (run == mRun) + return; + me->SetWalk(!run); mRun = run; + for (auto& node : _path.nodes) + node.moveType = run ? WAYPOINT_MOVE_TYPE_RUN : WAYPOINT_MOVE_TYPE_WALK; } void SmartAI::SetDisableGravity(bool fly)