diff --git a/server/gameserver/incubator.cc b/server/gameserver/incubator.cc index f158a633..c0e5e2df 100644 --- a/server/gameserver/incubator.cc +++ b/server/gameserver/incubator.cc @@ -258,6 +258,13 @@ void Incubator::OnEnterNewWave(int wave) if (room->IsGameOver()) { return; } + if ( + room->pve_data.refreshed_mon > 0 && + room->pve_data.mon_num > 0 + ) { + timeout_ = true; + return; + } room->pve_data.wave = wave + 1; room->OnEnterNewWave(wave + 1); if (wave < 0) { @@ -266,13 +273,6 @@ void Incubator::OnEnterNewWave(int wave) if (wave >= room->pve_mode_meta->waves.size()) { abort(); } - if ( - room->pve_data.refreshed_mon > 0 && - room->pve_data.mon_num > 0 - ) { - timeout_ = true; - return; - } if (wave + 1 < room->pve_mode_meta->waves.size()) { SpawnWaveMon(wave + 1); } diff --git a/server/gameserver/pvedata.cc b/server/gameserver/pvedata.cc index 2ceada6d..d168cca6 100644 --- a/server/gameserver/pvedata.cc +++ b/server/gameserver/pvedata.cc @@ -51,6 +51,15 @@ void PveData::OnBeKill(Hero* hero) room->NotifyUiUpdate(); } +#ifdef DEBUG + a8::XPrintf("PveData::OnBeKill wave:%d refreshed_mon:%d killed_num:%d\n", + { + wave, + refreshed_mon, + killed_num + }); +#endif + if (refreshed_mon > 0) { if (killed_num >= refreshed_mon) { if (room->IsDestoryRoom()) { @@ -71,6 +80,14 @@ void PveData::OnBeKill(Hero* hero) void PveData::FlyDoor(Room* room, a8::Vec2& point, int radius) { +#ifdef DEBUG + a8::XPrintf("FlyDoor wave:%d refreshed_mon:%d killed_num:%d\n", + { + wave, + refreshed_mon, + killed_num + }); +#endif room->TraverseHumanList ( a8::XParams(),