diff --git a/server/gameserver/ingamevoice.cc b/server/gameserver/ingamevoice.cc index 2e372229..2eff0d96 100644 --- a/server/gameserver/ingamevoice.cc +++ b/server/gameserver/ingamevoice.cc @@ -285,11 +285,11 @@ a8::Attacher* InGameVoice::GetNoDeadTimerAttacher(int killer_id) { auto itr = personal_nodead_timer_attacher_.find(killer_id); if (itr == personal_nodead_timer_attacher_.end()) { - personal_nodead_timer_attacher_[killer_id] = a8::Attacher(); + personal_nodead_timer_attacher_[killer_id] = std::make_shared(); itr = personal_nodead_timer_attacher_.find(killer_id); - itr->second.SetOwner(&room_->xtimer); + itr->second->SetOwner(&room_->xtimer); } - return &itr->second; + return itr->second.get(); } void InGameVoice::TriggerEvent(Human* killer, Human* deader) diff --git a/server/gameserver/ingamevoice.h b/server/gameserver/ingamevoice.h index 3d3b48a5..26f255b1 100644 --- a/server/gameserver/ingamevoice.h +++ b/server/gameserver/ingamevoice.h @@ -29,6 +29,6 @@ private: std::map personal_kills_; std::map personal_series_kills_; std::map personal_nodead_series_kills_; - std::map personal_nodead_timer_attacher_; + std::map> personal_nodead_timer_attacher_; };