diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index 6c389a11..6714fff5 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -1012,7 +1012,17 @@ void Player::_CMMove(f8::MsgHdr* hdr, const cs::CMMove& msg) moving = false; if (is_client_move) { if (msg.has_move_target_pos()) { - + if (std::isfinite(msg.move_target_pos().x()) && + std::isfinite(msg.move_target_pos().y()) && + std::isfinite(msg.move_target_pos().z()) && + ( + std::abs(msg.move_target_pos().x()) > 0.00001f || + std::abs(msg.move_target_pos().y()) > 0.00001f || + std::abs(msg.move_target_pos().z()) > 0.00001f + ) + ){ + TypeConvert::FromPb(move_target_pos_, &msg.move_target_pos()); + } } else { ((cs::CMMove*)&msg)->clear_move_dir(); }