aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Quests/QuestDef.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Quests/QuestDef.cpp')
-rw-r--r--src/server/game/Quests/QuestDef.cpp11
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