diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index e1fb1952..cd3a255b 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -2213,6 +2213,13 @@ void Room::OnGameOver() }); return; } else { + TraverseHumanList + ( + [] (Human* ele_hum) -> bool + { + ele_hum->SendGameOver(); + return true; + }); xtimer.SetIntervalEx (SERVER_FRAME_RATE / 0.5, [this, frameno = GetFrameNo()] (int event, const a8::Args* args) @@ -2223,7 +2230,7 @@ void Room::OnGameOver() ( [&all_sent] (Team* team) -> bool { - if (team->HasPlayer() && team->IsViewTeam() && + if (team->HasPlayer() && !team->IsViewTeam() && !team->IsAlreadyReportBattle()) { all_sent = false; return false; @@ -3981,6 +3988,13 @@ void Room::TryRoomReport(int try_count) if (room) { room->already_room_report_battle_ = true; room->sending_room_report_battle_ = false; + room->TraverseHumanList + ( + [] (Human* ele_hum) -> bool + { + ele_hum->SendGameOver(); + return true; + }); room->StartOverTimer(); } },