From 781dc2f18d98fae0d91492c8494b8ed77534ffb4 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sat, 3 Jun 2023 10:45:46 +0800 Subject: [PATCH] 1 --- server/gameserver/pbutils.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/server/gameserver/pbutils.cc b/server/gameserver/pbutils.cc index 4cc6a748..e43f2aa0 100644 --- a/server/gameserver/pbutils.cc +++ b/server/gameserver/pbutils.cc @@ -1406,7 +1406,6 @@ void Human::FillMFGasData(cs::MFGasData* gas_data) long long duration = room->GetGasInactiveTime() * SERVER_FRAME_RATE - (room->GetFrameNo() - room->GetGasData().gas_start_frameno); gas_data->set_duration(std::max(duration * 50, (long long)1000) / 1000); - gas_data->set_total_duration(room->GetGasInactiveTime()); } else if (room->GetGasData().GetGasMode() == GasJump) { gas_data->set_duration(0); } else if (room->GetGasData().GetGasMode() == GasMoving) { @@ -1430,6 +1429,11 @@ void Human::FillMFGasData(cs::MFGasData* gas_data) gas_data->set_duration(0); } } + { + long long passed_frame_num = room->GetFrameNo() - room->GetGasData().gas_start_frameno; + float time = std::max(0.0f, gas_data->duration() - passed_frame_num / SERVER_FRAME_RATE) + 1; + gas_data->set_total_duration(time); + } // 333 { glm::vec3 v3(room->GetGasData().pos_old.x, 0.0f, room->GetGasData().pos_old.y);