diff --git a/server/gameserver/pbutils.cc b/server/gameserver/pbutils.cc index 12c5e28c..018ef02e 100644 --- a/server/gameserver/pbutils.cc +++ b/server/gameserver/pbutils.cc @@ -1436,6 +1436,11 @@ void Human::FillMFGasData(cs::MFGasData* gas_data) long long duration = room->GetGasData().old_area_meta->wait_time() * 20 - (room->GetFrameNo() - room->GetGasData().gas_start_frameno); gas_data->set_duration(std::max(duration * 50, (long long)1000) / 1000); + { + 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); + } } if (room->IsPveRoom()) { gas_data->set_duration(0);