diff --git a/server/gameserver/ingamevoice.cc b/server/gameserver/ingamevoice.cc index 40011ebd..98f78e36 100644 --- a/server/gameserver/ingamevoice.cc +++ b/server/gameserver/ingamevoice.cc @@ -70,17 +70,17 @@ void InGameVoice::OnHumanBeKill(int killer_id, Human* deader) } ++global_kills_; if (global_kills_ > 0) { - if (room_->GetFrameNo() - GetInt64Map(personal_last_kill_frameno_, killer_id) > + if (room_->GetFrameNo() - GetLastKillFrameNo(killer_id) > SERVER_FRAME_RATE * mt::InGameVoice::s_series_kill_interval) { personal_series_kills_.erase(killer_id); } - personal_last_kill_frameno_[killer_id] = room_->GetFrameNo(); IncIntMap(personal_kills_, killer_id); IncIntMap(personal_series_kills_, killer_id); if (!killer->dead) { IncIntMap(personal_nodead_series_kills_, killer_id); } } + personal_last_kill_frameno_[killer_id] = room_->GetFrameNo(); TriggerEvent(killer, deader); } @@ -487,3 +487,8 @@ bool InGameVoice::IsSpecSeriesKill(Human* killer, Human* deader) }); return ok; } + +long long InGameVoice::GetLastKillFrameNo(int killer_id) +{ + return GetInt64Map(personal_last_kill_frameno_, killer_id); +} diff --git a/server/gameserver/ingamevoice.h b/server/gameserver/ingamevoice.h index 3f1c8a4a..fcdac03c 100644 --- a/server/gameserver/ingamevoice.h +++ b/server/gameserver/ingamevoice.h @@ -18,6 +18,7 @@ class InGameVoice : public std::enable_shared_from_this void OnHumanRevive(Human* hum); void Fail(Team* team); void Victory(Team* team); + long long GetLastKillFrameNo(int killer_id); private: void UpdateTeamBeKillLastTime(int team_id);