diff options
author | rstebler <roger.stebler@students.unibe.ch> | 2016-12-17 18:25:00 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2016-12-17 18:25:00 +0100 |
commit | 9c8f641cd2d7713a91281362b15c31a19e4a4071 (patch) | |
tree | c5a6fb4608d727b441d05ef119c90e1ed2702d9e /src | |
parent | 17f94855f07b331ba3ad109c6d6e213ed08b70df (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.cpp | 4 |
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; |