From 0e223cb2637eb8325589037a681d17046a9db7aa Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 2 Apr 2024 17:32:26 +0800 Subject: [PATCH] 1 --- server/gameserver/pbutils.cc | 9 +++------ server/gameserver/team.cc | 8 ++++++++ server/gameserver/team.h | 10 +++++++--- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/server/gameserver/pbutils.cc b/server/gameserver/pbutils.cc index 9caf7e5a..e96ac57f 100644 --- a/server/gameserver/pbutils.cc +++ b/server/gameserver/pbutils.cc @@ -1098,7 +1098,7 @@ void Human::FillSMGameOver(cs::SMGameOver& msg) data->ToJsonStr(); msg.mutable_settlement_new()->set_box_payload(custom_data); } - if (GetTeam()->already_report_battle_) { + if (room->IsAlreadyRoomReportBattle()) { msg.mutable_settlement_new()->set_settlement_status(1); auto p = msg.mutable_settlement_new(); p->set_version(20230321); @@ -1695,7 +1695,7 @@ void Human::SendUpdateMsg() void Human::SendGameOver() { if (stats->abandon_battle == 1 || (GetTeam()->HasPlayer()) || GetTeam()->MemberHasOb()) { - if (GetTeam()->already_report_battle_) { + if (room->IsAlreadyRoomReportBattle()) { cs::SMGameOver msg; FillSMGameOver(msg); #if 0 @@ -1721,10 +1721,7 @@ void Human::SendGameOver() } if (GetTeam()->team_rank && GetTeam()->HasPlayer() && !GetTeam()->IsViewTeam() && stats->abandon_battle != 1) { - if (!GetTeam()->sending_battlereport_) { - GetTeam()->sending_battlereport_ = true; - GetTeam()->SendTeamBattleReport(this); - } + GetTeam()->TrySendTeamBattleReport(this); } else { cs::SMGameOver msg; FillSMGameOver(msg); diff --git a/server/gameserver/team.cc b/server/gameserver/team.cc index 7066c56f..e239e20e 100644 --- a/server/gameserver/team.cc +++ b/server/gameserver/team.cc @@ -620,3 +620,11 @@ bool Team::AllIsDead() } return true; } + +void Team::TrySendTeamBattleReport(Human* sender) +{ + if (!sending_battlereport_) { + sending_battlereport_ = true; + SendTeamBattleReport(sender); + } +} diff --git a/server/gameserver/team.h b/server/gameserver/team.h index 3672b834..7c74112a 100644 --- a/server/gameserver/team.h +++ b/server/gameserver/team.h @@ -21,8 +21,6 @@ class Team : public std::enable_shared_from_this int team_rank = 0; std::map target_pos; int settlement_color = 0; - bool sending_battlereport_ = false; - bool already_report_battle_ = false; Team(); ~Team(); @@ -51,7 +49,6 @@ class Team : public std::enable_shared_from_this bool HasPlayer(); int GetPlayerNum(); void FillSMGameOver(cs::SMGameOver& msg); - void SendTeamBattleReport(Human* sender); void GenBattleReportData(Human* player, a8::MutableXObject* params); void GenBattleUuid(); void RunAway(Human* hum); @@ -65,6 +62,10 @@ class Team : public std::enable_shared_from_this void FillMFMobaBattleDataTeam(cs::MFMobaBattleDataTeam* p); void FillMFTeamFull(cs::MFTeamFull* p); bool AllIsDead(); + void TrySendTeamBattleReport(Human* sender); + +private: + void SendTeamBattleReport(Human* sender); private: int team_id_ = 0; @@ -76,4 +77,7 @@ class Team : public std::enable_shared_from_this bool auto_fill_ = false; int kill_count_ = 0; long long last_kill_frameno_ = 0; + bool sending_battlereport_ = false; + bool already_report_battle_ = false; + };