From 9c8f641cd2d7713a91281362b15c31a19e4a4071 Mon Sep 17 00:00:00 2001 From: rstebler Date: Sat, 17 Dec 2016 18:25:00 +0100 Subject: Core/Achievements: Add faction check before completing an achievement (#18436) Fixes player getting achievements of both factions if they use the same criteria --- src/server/game/Achievements/AchievementMgr.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') 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; -- cgit v1.2.3