diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index fa6ae2f..124d022 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -23,6 +23,8 @@ #include "framework/cpp/utils.h" #include "framework/cpp/httpclientpool.h" +const int kReviveTimeAdd = 3; + Human::Human():Entity() { default_weapon.weapon_idx = 0; @@ -150,7 +152,9 @@ void Human::FillMFObjectFull(cs::MFObjectFull* full_data) p->set_can_revive(false); } else { p->set_can_revive(true); - p->set_revive_countdown(std::ceil(room->xtimer.GetRemainTime(revive_timer) / SERVER_FRAME_RATE)); + int countdown = std::ceil(room->xtimer.GetRemainTime(revive_timer) / SERVER_FRAME_RATE); + countdown = std::max(0, countdown - kReviveTimeAdd); + p->set_revive_countdown(countdown); p->set_killer_name(stats.killer_name); } } @@ -2405,7 +2409,7 @@ void Human::Revive() hum->real_dead = true; hum->OnDie(); }; - int wait_revive_time = MetaMgr::Instance()->GetSysParamAsInt("revive_time", 33); + int wait_revive_time = MetaMgr::Instance()->GetSysParamAsInt("revive_time", 30 + kReviveTimeAdd); revive_timer = room->xtimer.AddDeadLineTimerAndAttach(SERVER_FRAME_RATE * wait_revive_time, a8::XParams() .SetSender(this),