From 8ff441127428c1b5eb1d5b46cd263b0adc98264a Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 28 Oct 2022 15:11:55 +0800 Subject: [PATCH] 1 --- server/gameserver/creature.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index 86616c08..1d341297 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -3330,9 +3330,11 @@ void Creature::AutoNavigation(a8::Vec2 target_pos, float speed, { float distance = GetPos().Distance(target_pos); if (distance < 0.001f) { + cb(this); return; } if (speed < 0.001f) { + cb(this); return; } @@ -3345,6 +3347,7 @@ void Creature::AutoNavigation(a8::Vec2 target_pos, float speed, int exec_frameno = 0; float speed = 0.0f; float distance = 0.0f; + std::function cb; }; NavContext* context = new NavContext(); context->c = GetWeakPtrRef(); @@ -3354,6 +3357,7 @@ void Creature::AutoNavigation(a8::Vec2 target_pos, float speed, context->dir.Normalize(); context->speed = speed; context->distance = distance; + context->cb = cb; IncDisableMoveTimes(); room->xtimer.AddRepeatTimerAndAttach @@ -3397,6 +3401,7 @@ void Creature::AutoNavigation(a8::Vec2 target_pos, float speed, } if (ok || c->dead) { + context->cb(c); c->DecDisableMoveTimes(); delete context; room->xtimer.DeleteTimer(room->xtimer.GetRunningTimer());