From 03527680b0fd35e4e8e2bcdd07295c9c074ec361 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 10 Sep 2024 10:50:01 +0800 Subject: [PATCH] 1 --- server/gameserver/creature.cc | 2 +- server/gameserver/movement.cc | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index 10d42460..c05e7793 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -2701,8 +2701,8 @@ void Creature::UpdateMove() } else { if (IsPlayer() || HasBuffEffect(kBET_Sprint)) { if (!GetMovement()->UpdatePosition()) { - GetMovement()->CalcTargetPos(mt::Param::s().move_step_len); if (HasBuffEffect(kBET_Sprint)) { + GetMovement()->CalcTargetPos(mt::Param::s().move_step_len); SprintBuff* buff = (SprintBuff*)GetBuffByEffectId(kBET_Sprint); if (buff) { buff->SprintEnd(); diff --git a/server/gameserver/movement.cc b/server/gameserver/movement.cc index dd1f8d03..0c6f8ff0 100644 --- a/server/gameserver/movement.cc +++ b/server/gameserver/movement.cc @@ -402,7 +402,11 @@ bool Movement::MoveToPos(const glm::vec3& target_pos) } #endif + if (GlmHelper::IsEqual2D(point.tar_pos.ToGlmVec3(), owner_->GetPos().ToGlmVec3())) { + return true; + } glm::vec3 dir = point.tar_pos.ToGlmVec3() - owner_->GetPos().ToGlmVec3(); + GlmHelper::Normalize(dir); point.dir.x = dir.x; point.dir.y = dir.y;