diff options
author | Vincent-Michael <Vincent_Michael@gmx.de> | 2014-07-14 21:16:19 +0200 |
---|---|---|
committer | Vincent-Michael <Vincent_Michael@gmx.de> | 2014-07-14 21:16:19 +0200 |
commit | 06d9d33de3e6a1e33d6d3edcd07e7d4e9457e735 (patch) | |
tree | ae04c4dac994023704b1928bea1529d5e96b0111 /src | |
parent | 13ff07f1213b7214797363171bfd95fd1b8515e2 (diff) |
Core/Battleground: Fix merge fail (thx @joschiwald)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Battlegrounds/Arena.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Battlegrounds/Battleground.cpp | 14 |
2 files changed, 14 insertions, 2 deletions
diff --git a/src/server/game/Battlegrounds/Arena.cpp b/src/server/game/Battlegrounds/Arena.cpp index 0dcd4997bde..96f3e644bea 100644 --- a/src/server/game/Battlegrounds/Arena.cpp +++ b/src/server/game/Battlegrounds/Arena.cpp @@ -143,7 +143,7 @@ void Arena::EndBattleground(uint32 winner) uint32 winnerMatchmakerRating = 0; int32 winnerChange = 0; int32 winnerMatchmakerChange = 0; - bool guildAwarded = false; + bool guildAwarded = false; ArenaTeam* winnerArenaTeam = sArenaTeamMgr->GetArenaTeamById(GetArenaTeamIdForTeam(winner)); ArenaTeam* loserArenaTeam = sArenaTeamMgr->GetArenaTeamById(GetArenaTeamIdForTeam(GetOtherTeam(winner))); diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp index ca8892d04bf..9b70d208e14 100644 --- a/src/server/game/Battlegrounds/Battleground.cpp +++ b/src/server/game/Battlegrounds/Battleground.cpp @@ -26,6 +26,8 @@ #include "Formulas.h" #include "GridNotifiersImpl.h" #include "Group.h" +#include "GuildMgr.h" +#include "Guild.h" #include "MapManager.h" #include "Object.h" #include "ObjectMgr.h" @@ -743,6 +745,7 @@ void Battleground::EndBattleground(uint32 winner) RemoveFromBGFreeSlotQueue(); int32 winmsg_id = 0; + bool guildAwarded = false; if (winner == ALLIANCE) { @@ -768,7 +771,7 @@ void Battleground::EndBattleground(uint32 winner) SetStatus(STATUS_WAIT_LEAVE); //we must set it this way, because end time is sent in packet! SetRemainingTime(TIME_AUTOCLOSE_BATTLEGROUND); - + WorldPacket pvpLogData; BuildPvPLogDataPacket(pvpLogData); @@ -822,6 +825,15 @@ void Battleground::EndBattleground(uint32 winner) player->ModifyCurrency(CURRENCY_TYPE_CONQUEST_META_ARENA, sWorld->getIntConfig(CONFIG_BG_REWARD_WINNER_CONQUEST_LAST)); player->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_WIN_BG, 1); + if (!guildAwarded) + { + guildAwarded = true; + if (uint32 guildId = GetBgMap()->GetOwnerGuildId(player->GetTeam())) + { + if (Guild* guild = sGuildMgr->GetGuildById(guildId)) + guild->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_WIN_BG, 1, 0, 0, NULL, player); + } + } } else { |