From 28844db74d4a7685611abb2431a59020fde47650 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 22 Mar 2023 14:24:02 +0800 Subject: [PATCH] 1 --- server/gameserver/human.cc | 10 ++++++++++ server/gameserver/pbutils.cc | 2 +- server/gameserver/stats.h | 1 - server/gameserver/team.cc | 8 ++++++++ 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 0af1f86f..57fe4770 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -3259,6 +3259,7 @@ void Human::CalcStats() if (stats->pve_kill_boss) { stats->victory = true; stats->settlement_color = 1; + GetTeam()->team_rank = 1; } } else { stats->victory = stats->rank == 1; @@ -3296,4 +3297,13 @@ void Human::CalcStats() } stats->alive_time = alive_time; } + if (GetTeam()->team_rank) { + GetTeam()->TraverseMembers + ( + [] (Human* hum) + { + hum->CalcStats(); + return true; + }); + } } diff --git a/server/gameserver/pbutils.cc b/server/gameserver/pbutils.cc index 8ce2c0e7..8ace7976 100644 --- a/server/gameserver/pbutils.cc +++ b/server/gameserver/pbutils.cc @@ -1396,7 +1396,7 @@ void Human::SendGameOver() SendNotifyMsg(msg); } else { CalcStats(); - if (stats->team_statsed) { + if (GetTeam()->team_rank) { if (!GetTeam()->sending_battlereport) { GetTeam()->sending_battlereport = true; GetTeam()->SendTeamBattleReport(this); diff --git a/server/gameserver/stats.h b/server/gameserver/stats.h index 153a120d..959596c0 100644 --- a/server/gameserver/stats.h +++ b/server/gameserver/stats.h @@ -58,7 +58,6 @@ class Human; class PlayerStats { public: - bool team_statsed = false; int kills = 0; long long last_kill_frameno = 0; int damage_amount_in = 0; diff --git a/server/gameserver/team.cc b/server/gameserver/team.cc index 94bb51d1..1cbe68ee 100644 --- a/server/gameserver/team.cc +++ b/server/gameserver/team.cc @@ -178,4 +178,12 @@ bool Team::HasPlayer() void Team::SendTeamBattleReport(Human* sender) { already_report_battle = true; + sending_battlereport = false; + TraverseMembers + ( + [] (Human* hum) + { + hum->SendGameOver(); + return true; + }); }