diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index cb1484d7..5a77d3a5 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -164,6 +164,14 @@ void Player::InternalUpdate(int delta_time) moving = true; moved_frames = 0; } + if (room->GetGasData().GetGasMode() == GasInactive && + room->IsSandTableRoom() + ) { + if (sand_table_target_pos) { + } else { + moving = false; + } + } if (moving) { UpdateMoving(); } @@ -1031,6 +1039,11 @@ void Player::_CMMove(f8::MsgHdr& hdr, const cs::CMMove& msg) sand_table_target_pos = std::make_shared(); } TypeConvert::FromPb(*sand_table_target_pos, &msg.sand_table_target_pos()); + if (GlmHelper::IsEqual2D(*sand_table_target_pos, GetPos().ToGlmVec3())) { + sand_table_target_pos = nullptr; + } else { + glm::vec3 dir = *sand_table_target_pos - GetPos().ToGlmVec3(); + } } else { sand_table_target_pos = nullptr; }