diff options
Diffstat (limited to 'src/server/game/Quests/QuestDef.cpp')
-rw-r--r-- | src/server/game/Quests/QuestDef.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/server/game/Quests/QuestDef.cpp b/src/server/game/Quests/QuestDef.cpp index 8ba3eda1f65..1157ba7d24f 100644 --- a/src/server/game/Quests/QuestDef.cpp +++ b/src/server/game/Quests/QuestDef.cpp @@ -199,7 +199,7 @@ void Quest::LoadQuestMailSender(Field* fields) _rewardMailSenderEntry = fields[1].GetUInt32(); } -uint32 Quest::XPValue(Player* player) const +uint32 Quest::GetXPReward(Player const* player) const { if (player) { @@ -227,14 +227,17 @@ uint32 Quest::XPValue(Player* player) const return 0; } -int32 Quest::GetRewOrReqMoney() const +int32 Quest::GetRewOrReqMoney(Player const* player) const { // RequiredMoney: the amount is the negative copper sum. - if (_rewardMoney <= 0) + if (_rewardMoney < 0) return _rewardMoney; // RewardMoney: the positive amount - return int32(_rewardMoney * sWorld->getRate(RATE_MONEY_QUEST)); + if (!player || player->GetLevel() < sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL)) + return int32(_rewardMoney * sWorld->getRate(RATE_MONEY_QUEST)); + else // At level cap, the money reward is the maximum amount between normal and bonus money reward + return std::max(int32(GetRewMoneyMaxLevel()), int32(_rewardMoney * sWorld->getRate(RATE_MONEY_QUEST))); } uint32 Quest::GetRewMoneyMaxLevel() const |