From 073da111a4514aa521a12bebbfd09f47c13f647a Mon Sep 17 00:00:00 2001 From: azw Date: Wed, 22 Mar 2023 09:14:44 +0000 Subject: [PATCH] 1 --- server/gameserver/room.cc | 6 ++++++ server/gameserver/room.h | 1 + server/gameserver/team.cc | 25 ++++++++++++++++--------- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index 7476f46b..8b79021d 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -3835,3 +3835,9 @@ void Room::CreateWorldObjects() } } } + +Team* Room::GetTeam(int team_id) +{ + auto itr = team_hash_.find(team_id); + return itr != team_hash_.end() ? itr->second : nullptr; +} diff --git a/server/gameserver/room.h b/server/gameserver/room.h index 0ca4b153..01ff0b8e 100644 --- a/server/gameserver/room.h +++ b/server/gameserver/room.h @@ -164,6 +164,7 @@ public: Human* GetWatchWarTarget(Human* hum); bool BattleStarted(); int GetTeamNum(); + Team* GetTeam(int team_id); int GetAliveTeamNum(); Team* GetAliveTeam(); void TraverseTeams(std::function cb); diff --git a/server/gameserver/team.cc b/server/gameserver/team.cc index 037359ab..96821819 100644 --- a/server/gameserver/team.cc +++ b/server/gameserver/team.cc @@ -11,6 +11,7 @@ #include "stats.h" #include "jsondatamgr.h" #include "httpproxy.h" +#include "roommgr.h" #include "mt/Map.h" #include "mt/Hero.h" @@ -219,19 +220,25 @@ void Team::SendTeamBattleReport(Human* sender) [room_uuid, team_id] (bool ok, a8::XObject* rsp_obj, f8::HttpContext* ctx) { + Room* room = RoomMgr::Instance()->GetRoomByUuid(room_uuid); + if (room) { + Team* team = room->GetTeam(team_id); + if (team) { + team->already_report_battle = true; + team->sending_battlereport = false; + team->TraverseMembers + ( + [] (Human* hum) + { + hum->SendGameOver(); + return true; + }); + } + } }, url.c_str(), *params.get() ); - already_report_battle = true; - sending_battlereport = false; - TraverseMembers - ( - [] (Human* hum) - { - hum->SendGameOver(); - return true; - }); } void Team::GenBattleReportData(a8::MutableXObject* params)