diff --git a/server/gameserver/movement.cc b/server/gameserver/movement.cc index 0ffcc2e1..357fdda0 100644 --- a/server/gameserver/movement.cc +++ b/server/gameserver/movement.cc @@ -135,7 +135,8 @@ void Movement::CalcTargetPos(float distance) } #endif - if (point.distance < 0.00001f / owner_->room->GetMapMeta()->scale()) { + const float safe_distance = 2.0f; + if (point.distance < safe_distance + 1.0f / owner_->room->GetMapMeta()->scale()) { return; } @@ -144,6 +145,8 @@ void Movement::CalcTargetPos(float distance) point.dir.x = dir.x; point.dir.y = dir.y; point.dir.z = dir.z; + point.distance -= safe_distance; + point.tar_pos.FromGlmVec3(owner_->GetPos().ToGlmVec3() + point.dir * point.distance); paths_.push_back(point); }