diff options
| author | Wyrserth <wyrserth@protonmail.com> | 2019-07-03 16:09:21 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-07-03 16:09:21 +0200 |
| commit | 858fa4d2ddab47a52fe98ff3b4b7f15c1a9b00e1 (patch) | |
| tree | 5bab889427e761b03321eb0a682f514f6d06dece /src/server/game/Entities/Player | |
| parent | f05891405ab40502cfa67fdcff0edb1391ff8719 (diff) | |
Core/Reputation: don't allow quests to reward Honor Hold/Alliance Vanguard reputation to Horde players or Thrallmar reputation to Alliance players (#23552)
Diffstat (limited to 'src/server/game/Entities/Player')
| -rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index f2ecd746ffc..c2fe6978456 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -6655,7 +6655,12 @@ void Player::RewardReputation(Quest const* quest) { for (uint8 i = 0; i < QUEST_REPUTATIONS_COUNT; ++i) { - if (!quest->RewardFactionId[i]) + uint32 rewardFactionId = quest->RewardFactionId[i]; + + if (!rewardFactionId) + continue; + + if (!GetReputationMgr().IsReputationAllowedForTeam(GetTeamId(), rewardFactionId)) continue; int32 rep = 0; @@ -6680,17 +6685,17 @@ void Player::RewardReputation(Quest const* quest) continue; if (quest->IsDaily()) - rep = CalculateReputationGain(REPUTATION_SOURCE_DAILY_QUEST, GetQuestLevel(quest), rep, quest->RewardFactionId[i], noQuestBonus); + rep = CalculateReputationGain(REPUTATION_SOURCE_DAILY_QUEST, GetQuestLevel(quest), rep, rewardFactionId, noQuestBonus); else if (quest->IsWeekly()) - rep = CalculateReputationGain(REPUTATION_SOURCE_WEEKLY_QUEST, GetQuestLevel(quest), rep, quest->RewardFactionId[i], noQuestBonus); + rep = CalculateReputationGain(REPUTATION_SOURCE_WEEKLY_QUEST, GetQuestLevel(quest), rep, rewardFactionId, noQuestBonus); else if (quest->IsMonthly()) - rep = CalculateReputationGain(REPUTATION_SOURCE_MONTHLY_QUEST, GetQuestLevel(quest), rep, quest->RewardFactionId[i], noQuestBonus); + rep = CalculateReputationGain(REPUTATION_SOURCE_MONTHLY_QUEST, GetQuestLevel(quest), rep, rewardFactionId, noQuestBonus); else if (quest->IsRepeatable()) - rep = CalculateReputationGain(REPUTATION_SOURCE_REPEATABLE_QUEST, GetQuestLevel(quest), rep, quest->RewardFactionId[i], noQuestBonus); + rep = CalculateReputationGain(REPUTATION_SOURCE_REPEATABLE_QUEST, GetQuestLevel(quest), rep, rewardFactionId, noQuestBonus); else - rep = CalculateReputationGain(REPUTATION_SOURCE_QUEST, GetQuestLevel(quest), rep, quest->RewardFactionId[i], noQuestBonus); + rep = CalculateReputationGain(REPUTATION_SOURCE_QUEST, GetQuestLevel(quest), rep, rewardFactionId, noQuestBonus); - if (FactionEntry const* factionEntry = sFactionStore.LookupEntry(quest->RewardFactionId[i])) + if (FactionEntry const* factionEntry = sFactionStore.LookupEntry(rewardFactionId)) GetReputationMgr().ModifyReputation(factionEntry, rep); } } |
