diff options
| author | Wyrserth <wyrserth@protonmail.com> | 2019-07-03 17:42:23 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-07-03 17:42:23 +0200 |
| commit | 670085d8c099606136a904c8a67b8df9c0dd9f1e (patch) | |
| tree | bcee86b9c8eca0bb74efaf79b8ec1939fffee38c /src/server/game/Quests | |
| parent | c63bbb97b4850abfd60917bd9b668f276f9ecedb (diff) | |
Core/Quest: fix money reward for quests turned in at level cap. (#23495)
Diffstat (limited to 'src/server/game/Quests')
| -rw-r--r-- | src/server/game/Quests/QuestDef.cpp | 11 | ||||
| -rw-r--r-- | src/server/game/Quests/QuestDef.h | 4 |
2 files changed, 9 insertions, 6 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 diff --git a/src/server/game/Quests/QuestDef.h b/src/server/game/Quests/QuestDef.h index 0d2ecb40975..d3989b7ec45 100644 --- a/src/server/game/Quests/QuestDef.h +++ b/src/server/game/Quests/QuestDef.h @@ -207,7 +207,7 @@ class TC_GAME_API Quest void LoadQuestTemplateAddon(Field* fields); void LoadQuestMailSender(Field* fields); - uint32 XPValue(Player* player) const; + uint32 GetXPReward(Player const* player) const; bool HasFlag(uint32 flag) const { return (_flags & flag) != 0; } void SetFlag(uint32 flag) { _flags |= flag; } @@ -257,7 +257,7 @@ class TC_GAME_API Quest std::string const& GetRequestItemsText() const { return _requestItemsText; } std::string const& GetAreaDescription() const { return _areaDescription; } std::string const& GetCompletedText() const { return _completedText; } - int32 GetRewOrReqMoney() const; + int32 GetRewOrReqMoney(Player const* player = nullptr) const; uint32 GetRewHonorAddition() const { return _rewardHonor; } float GetRewHonorMultiplier() const { return _rewardKillHonor; } uint32 GetRewMoneyMaxLevel() const; // use in XP calculation at client |
