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())
|
if (bot->isMoving() && lastMove.lastMoveToMapId == bot->GetMapId())
|
||||||
{
|
{
|
||||||
float remaining = bot->GetExactDist(lastMove.lastMoveToX, lastMove.lastMoveToY, lastMove.lastMoveToZ);
|
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",
|
EmitDebugMove("MoveFar", "spline-plan",
|
||||||
lastMove.lastMoveToX, lastMove.lastMoveToY, lastMove.lastMoveToZ);
|
lastMove.lastMoveToX, lastMove.lastMoveToY, lastMove.lastMoveToZ);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user