diff options
| author | Gildor <gildor55@gmail.com> | 2023-02-25 14:19:58 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-02-25 14:19:58 +0100 |
| commit | 70b483aae4aefc581f5099b3d41b24c9e4bb1d98 (patch) | |
| tree | 164cd247edf48d0c4498b4070487b4b34798e55f | |
| parent | c6cd272505cdca5d21935ba346df82b8c767fb13 (diff) | |
Core/Arena: Correctly update the stats of the members of each team when the week ends and the arena points are distributed. (#28812)
| -rw-r--r-- | src/server/game/Battlegrounds/ArenaTeam.cpp | 4 | ||||
| -rw-r--r-- | src/server/game/Battlegrounds/ArenaTeam.h | 2 | ||||
| -rw-r--r-- | src/server/game/Battlegrounds/ArenaTeamMgr.cpp | 2 |
3 files changed, 4 insertions, 4 deletions
diff --git a/src/server/game/Battlegrounds/ArenaTeam.cpp b/src/server/game/Battlegrounds/ArenaTeam.cpp index 56f4f3b56c7..ba85fe695ec 100644 --- a/src/server/game/Battlegrounds/ArenaTeam.cpp +++ b/src/server/game/Battlegrounds/ArenaTeam.cpp @@ -907,7 +907,7 @@ void ArenaTeam::UpdateArenaPointsHelper(std::map<uint32, uint32>& playerPoints) } } -void ArenaTeam::SaveToDB() +void ArenaTeam::SaveToDB(bool forceMemberSave) { // Save team and member stats to db // Called after a match has ended or when calculating arena_points @@ -927,7 +927,7 @@ void ArenaTeam::SaveToDB() for (MemberList::const_iterator itr = Members.begin(); itr != Members.end(); ++itr) { // Save the effort and go - if (itr->WeekGames == 0) + if (itr->WeekGames == 0 && !forceMemberSave) continue; stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ARENA_TEAM_MEMBER); diff --git a/src/server/game/Battlegrounds/ArenaTeam.h b/src/server/game/Battlegrounds/ArenaTeam.h index ed83ab563de..9495218980c 100644 --- a/src/server/game/Battlegrounds/ArenaTeam.h +++ b/src/server/game/Battlegrounds/ArenaTeam.h @@ -155,7 +155,7 @@ class TC_GAME_API ArenaTeam bool LoadArenaTeamFromDB(QueryResult arenaTeamDataResult); bool LoadMembersFromDB(QueryResult arenaTeamMembersResult); void LoadStatsFromDB(uint32 ArenaTeamId); - void SaveToDB(); + void SaveToDB(bool forceMemberSave = false); void BroadcastPacket(WorldPacket* packet); void BroadcastEvent(ArenaTeamEvents event, ObjectGuid guid, uint8 strCount, std::string const& str1, std::string const& str2, std::string const& str3); diff --git a/src/server/game/Battlegrounds/ArenaTeamMgr.cpp b/src/server/game/Battlegrounds/ArenaTeamMgr.cpp index 2aa08c47956..84611173201 100644 --- a/src/server/game/Battlegrounds/ArenaTeamMgr.cpp +++ b/src/server/game/Battlegrounds/ArenaTeamMgr.cpp @@ -178,7 +178,7 @@ void ArenaTeamMgr::DistributeArenaPoints() for (auto [teamId, team] : ArenaTeamStore) { if (team->FinishWeek()) - team->SaveToDB(); + team->SaveToDB(true); team->NotifyStatsChanged(); } |
