From fd6941de7c7e43ae3406bb91d2d80670569eff4a Mon Sep 17 00:00:00 2001 From: Gultask <100873791+Gultask@users.noreply.github.com> Date: Sun, 9 Apr 2023 23:44:52 -0300 Subject: [PATCH] fix(Core/SmartAI): Prevent MOVE_TO_POS from creating large distances between target (#15899) Update SmartScript.cpp --- src/server/game/AI/SmartScripts/SmartScript.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index 3f2b39ef6..b89a1d6de 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -1635,7 +1635,9 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u float x, y, z; target->GetPosition(x, y, z); if (e.action.moveToPos.ContactDistance > 0) - target->GetContactPoint(me, x, y, z, e.action.moveToPos.ContactDistance); + { + target->GetNearPoint(me, x, y, z, e.action.moveToPos.ContactDistance, 0, target->GetAngle(me)); + } me->GetMotionMaster()->MovePoint(e.action.moveToPos.pointId, x + e.target.x, y + e.target.y, z + e.target.z, true, true, isControlled ? MOTION_SLOT_CONTROLLED : MOTION_SLOT_ACTIVE); } break;