diff --git a/server/gameserver/incubator.cc b/server/gameserver/incubator.cc index 9c2ab141..7b158250 100644 --- a/server/gameserver/incubator.cc +++ b/server/gameserver/incubator.cc @@ -37,7 +37,15 @@ void Incubator::Init() Incubator* incubator = (Incubator*)param.sender.GetUserData(); incubator->OnEnterNewWave(param.param1.GetInt()); }, - &xtimer_attacher_.timer_list_); + &xtimer_attacher_.timer_list_, + [] (const a8::XParams& param) + { + int wave = param.param1.GetInt(); + Incubator* incubator = (Incubator*)param.sender.GetUserData(); + if (wave < incubator->wave_timers_.size()) { + incubator->wave_timers_[wave] = nullptr; + } + }); wave_timers_.push_back(timer); ++wave; } @@ -337,7 +345,7 @@ bool Incubator::IsLastWave() void Incubator::NextWave() { - if (room->pve_data.wave < wave_timers_.size() && room->IsSurvivalRoom()) { + if (room->pve_data.wave < wave_timers_.size()) { int acc_time = 0; { xtimer_list* timer = wave_timers_[room->pve_data.wave];