aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorrstebler <roger.stebler@students.unibe.ch>2016-12-17 18:25:00 +0100
committerShauren <shauren.trinity@gmail.com>2016-12-17 18:25:00 +0100
commit9c8f641cd2d7713a91281362b15c31a19e4a4071 (patch)
treec5a6fb4608d727b441d05ef119c90e1ed2702d9e /src
parent17f94855f07b331ba3ad109c6d6e213ed08b70df (diff)
Core/Achievements: Add faction check before completing an achievement (#18436)
Fixes player getting achievements of both factions if they use the same criteria
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Achievements/AchievementMgr.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp
index 1a6d058345b..8c7678a3f47 100644
--- a/src/server/game/Achievements/AchievementMgr.cpp
+++ b/src/server/game/Achievements/AchievementMgr.cpp
@@ -452,6 +452,10 @@ void PlayerAchievementMgr::CompletedAchievement(AchievementEntry const* achievem
if (_owner->IsGameMaster())
return;
+ if ((achievement->Faction == ACHIEVEMENT_FACTION_HORDE && referencePlayer->GetTeam() != HORDE) ||
+ (achievement->Faction == ACHIEVEMENT_FACTION_ALLIANCE && referencePlayer->GetTeam() != ALLIANCE))
+ return;
+
if (achievement->Flags & ACHIEVEMENT_FLAG_COUNTER || HasAchieved(achievement->ID))
return;