mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-15 23:20:36 +01:00
Core/Arena: Correctly update the stats of the members of each team when the week ends and the arena points are distributed. (#28812)
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -178,7 +178,7 @@ void ArenaTeamMgr::DistributeArenaPoints()
|
||||
for (auto [teamId, team] : ArenaTeamStore)
|
||||
{
|
||||
if (team->FinishWeek())
|
||||
team->SaveToDB();
|
||||
team->SaveToDB(true);
|
||||
|
||||
team->NotifyStatsChanged();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user