diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp index ed3a7f0c7..74fc9c22f 100644 --- a/src/server/game/Battlegrounds/Battleground.cpp +++ b/src/server/game/Battlegrounds/Battleground.cpp @@ -782,7 +782,7 @@ void Battleground::EndBattleground(TeamId winnerTeamId) stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_PVPSTATS_BATTLEGROUND); stmt->SetData(0, battlegroundId); - stmt->SetData(1, GetWinner()); + stmt->SetData(1, GetPvPTeamId(GetWinner())); stmt->SetData(2, GetUniqueBracketId()); stmt->SetData(3, GetBgTypeID(true)); CharacterDatabase.Execute(stmt); diff --git a/src/server/game/Battlegrounds/BattlegroundMgr.cpp b/src/server/game/Battlegrounds/BattlegroundMgr.cpp index 44ff0a5e6..72b3ab612 100644 --- a/src/server/game/Battlegrounds/BattlegroundMgr.cpp +++ b/src/server/game/Battlegrounds/BattlegroundMgr.cpp @@ -241,7 +241,7 @@ void BattlegroundMgr::BuildPvpLogDataPacket(WorldPacket* data, Battleground* bg) else { *data << uint8(1); // bg ended - *data << uint8(bg->GetWinner() == TEAM_ALLIANCE ? TEAM_HORDE : TEAM_ALLIANCE); // who win + *data << uint8(GetPvPTeamId(bg->GetWinner())); // who win } size_t wpos = data->wpos(); diff --git a/src/server/shared/SharedDefines.h b/src/server/shared/SharedDefines.h index 6cb96fc6b..20c327189 100644 --- a/src/server/shared/SharedDefines.h +++ b/src/server/shared/SharedDefines.h @@ -3400,6 +3400,18 @@ enum ResponseCodes CHAR_NAME_DECLENSION_DOESNT_MATCH_BASE_NAME = 0x67 }; +enum PvPTeamId +{ + PVP_TEAM_HORDE = 0, // Battleground: Horde, Arena: Green + PVP_TEAM_ALLIANCE = 1, // Battleground: Alliance, Arena: Gold + PVP_TEAM_NEUTRAL = 2 // Battleground: Neutral, Arena: None +}; + +inline PvPTeamId GetPvPTeamId(TeamId teamId) +{ + return teamId == TEAM_ALLIANCE ? PVP_TEAM_ALLIANCE : PVP_TEAM_HORDE; +} + // indexes of BattlemasterList.dbc enum BattlegroundTypeId {