mirror of
https://github.com/liyunfan1223/mod-playerbots.git
synced 2026-06-20 15:39:25 +02:00
fix(Core/Movement): Force replan when dest shifts >40y from cached spline endpoint
This commit is contained in:
parent
3f79fe44f2
commit
57febb7683
@ -73,7 +73,16 @@ bool NewRpgBaseAction::MoveFarTo(WorldPosition dest)
|
||||
if (bot->isMoving() && lastMove.lastMoveToMapId == bot->GetMapId())
|
||||
{
|
||||
float remaining = bot->GetExactDist(lastMove.lastMoveToX, lastMove.lastMoveToY, lastMove.lastMoveToZ);
|
||||
if (remaining > 10.0f)
|
||||
// Only ride the existing spline if the cached endpoint is
|
||||
// still close to the requested dest. A dest shift > 40y is
|
||||
// a target change (objective POI -> turn-in NPC, new POI
|
||||
// selection, …) and needs a fresh travelplan/mmap probe;
|
||||
// otherwise the bot rides a stale spline straight through
|
||||
// geometry.
|
||||
float endpointToDest = dest.distance(WorldPosition(
|
||||
lastMove.lastMoveToMapId, lastMove.lastMoveToX,
|
||||
lastMove.lastMoveToY, lastMove.lastMoveToZ));
|
||||
if (remaining > 10.0f && endpointToDest <= 40.0f)
|
||||
{
|
||||
EmitDebugMove("MoveFar", "spline-plan",
|
||||
lastMove.lastMoveToX, lastMove.lastMoveToY, lastMove.lastMoveToZ);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user