From 341ef2c0dd5a15ecfe95450febdd41272f1e48d1 Mon Sep 17 00:00:00 2001 From: jackpoz Date: Sat, 5 Sep 2020 22:03:26 +0200 Subject: Core/Arena: Fix Arena.ArenaStartPersonalRating setting not having effect if the player didn't do any arena match before next server restart Ref #16609 (cherry picked from commit cc64762f068749bbee0ef96580614f5a8cdfc867) --- src/server/database/Database/Implementation/CharacterDatabase.cpp | 2 +- src/server/game/Battlegrounds/ArenaTeam.cpp | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/server/database/Database/Implementation/CharacterDatabase.cpp b/src/server/database/Database/Implementation/CharacterDatabase.cpp index 8e323f3c849..6c75b2fa287 100644 --- a/src/server/database/Database/Implementation/CharacterDatabase.cpp +++ b/src/server/database/Database/Implementation/CharacterDatabase.cpp @@ -401,7 +401,7 @@ void CharacterDatabaseConnection::DoPrepareStatements() // Arena teams PrepareStatement(CHAR_SEL_CHARACTER_ARENAINFO, "SELECT arenaTeamId, weekGames, seasonGames, seasonWins, personalRating FROM arena_team_member WHERE guid = ?", CONNECTION_ASYNC); PrepareStatement(CHAR_INS_ARENA_TEAM, "INSERT INTO arena_team (arenaTeamId, name, captainGuid, type, rating, backgroundColor, emblemStyle, emblemColor, borderStyle, borderColor) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC); - PrepareStatement(CHAR_INS_ARENA_TEAM_MEMBER, "INSERT INTO arena_team_member (arenaTeamId, guid) VALUES (?, ?)", CONNECTION_ASYNC); + PrepareStatement(CHAR_INS_ARENA_TEAM_MEMBER, "INSERT INTO arena_team_member (arenaTeamId, guid, personalRating) VALUES (?, ?, ?)", CONNECTION_ASYNC); PrepareStatement(CHAR_DEL_ARENA_TEAM, "DELETE FROM arena_team where arenaTeamId = ?", CONNECTION_ASYNC); PrepareStatement(CHAR_DEL_ARENA_TEAM_MEMBERS, "DELETE FROM arena_team_member WHERE arenaTeamId = ?", CONNECTION_ASYNC); PrepareStatement(CHAR_UPD_ARENA_TEAM_CAPTAIN, "UPDATE arena_team SET captainGuid = ? WHERE arenaTeamId = ?", CONNECTION_ASYNC); diff --git a/src/server/game/Battlegrounds/ArenaTeam.cpp b/src/server/game/Battlegrounds/ArenaTeam.cpp index 7211a822edc..f85546b1c73 100644 --- a/src/server/game/Battlegrounds/ArenaTeam.cpp +++ b/src/server/game/Battlegrounds/ArenaTeam.cpp @@ -121,10 +121,10 @@ bool ArenaTeam::AddMember(ObjectGuid playerGuid) } // Set player's personal rating - uint32 personalRating = 0; + uint16 personalRating = 0; if (sWorld->getIntConfig(CONFIG_ARENA_START_PERSONAL_RATING) > 0) - personalRating = sWorld->getIntConfig(CONFIG_ARENA_START_PERSONAL_RATING); + personalRating = uint16(sWorld->getIntConfig(CONFIG_ARENA_START_PERSONAL_RATING)); else if (GetRating() >= 1000) personalRating = 1000; @@ -163,6 +163,7 @@ bool ArenaTeam::AddMember(ObjectGuid playerGuid) stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_ARENA_TEAM_MEMBER); stmt->setUInt32(0, TeamId); stmt->setUInt64(1, playerGuid.GetCounter()); + stmt->setUInt16(2, personalRating); CharacterDatabase.Execute(stmt); // Inform player if online -- cgit v1.2.3