diff options
| author | Kinzcool <kinzzcool@hotmail.com> | 2015-07-01 17:57:09 -0400 |
|---|---|---|
| committer | Kinzcool <kinzzcool@hotmail.com> | 2015-07-01 17:57:09 -0400 |
| commit | 4bbbd9540a25845edb0d424199bab196b5e6bea1 (patch) | |
| tree | 39aa0b8c6c76390a70e5e513131cb4a777ce32e5 /src/server/game/Quests | |
| parent | 97b693343586be8ec01178b6b0a02f52bee4d723 (diff) | |
Core/Quests: Calculate the RewardMoney value with QuestMoneyReward.dbc and defined an unknown field
Diffstat (limited to 'src/server/game/Quests')
| -rw-r--r-- | src/server/game/Quests/QuestDef.cpp | 14 | ||||
| -rw-r--r-- | src/server/game/Quests/QuestDef.h | 5 |
2 files changed, 12 insertions, 7 deletions
diff --git a/src/server/game/Quests/QuestDef.cpp b/src/server/game/Quests/QuestDef.cpp index 148cdeab68e..93930cdba54 100644 --- a/src/server/game/Quests/QuestDef.cpp +++ b/src/server/game/Quests/QuestDef.cpp @@ -37,7 +37,7 @@ Quest::Quest(Field* questRecord) RewardXPMultiplier = questRecord[10].GetFloat(); RewardMoney = questRecord[11].GetUInt32(); RewardMoneyDifficulty = questRecord[12].GetUInt32(); - Float13 = questRecord[13].GetFloat(); + RewardMoneyMultiplier = questRecord[13].GetFloat(); RewardBonusMoney = questRecord[14].GetUInt32(); RewardDisplaySpell = questRecord[15].GetUInt32(); RewardSpell = questRecord[16].GetUInt32(); @@ -241,10 +241,14 @@ uint32 Quest::XPValue(uint32 playerLevel) const return 0; } -uint32 Quest::GetRewMoney() const +uint32 Quest::MoneyValue(uint8 playerLevel) const { - if (RewardMoney > 0) - return RewardMoney * sWorld->getRate(RATE_MONEY_QUEST); + uint8 level; + if (playerLevel) + level = Level == -1 ? playerLevel : Level; + + if (QuestMoneyRewardEntry const* money = sQuestMoneyRewardStore.LookupEntry(level)) + return money->Money[GetRewMoneyDifficulty()] * GetMoneyMultiplier(); else return 0; } @@ -253,7 +257,7 @@ void Quest::BuildQuestRewards(WorldPackets::Quest::QuestRewards& rewards, Player { rewards.ChoiceItemCount = GetRewChoiceItemsCount(); rewards.ItemCount = GetRewItemsCount(); - rewards.Money = GetRewMoney(); + rewards.Money = player->GetQuestMoneyReward(this); rewards.XP = player->GetQuestXPReward(this); rewards.Title = GetRewTitle(); rewards.Talents = GetBonusTalents(); diff --git a/src/server/game/Quests/QuestDef.h b/src/server/game/Quests/QuestDef.h index e11794dc64c..a2a61cc5da0 100644 --- a/src/server/game/Quests/QuestDef.h +++ b/src/server/game/Quests/QuestDef.h @@ -286,6 +286,7 @@ class Quest void LoadQuestObjectiveVisualEffect(Field* fields); uint32 XPValue(uint32 playerLevel) const; + uint32 MoneyValue(uint8 playerLevel) const; bool HasFlag(uint32 flag) const { return (Flags & flag) != 0; } void SetFlag(uint32 flag) { Flags |= flag; } @@ -320,6 +321,7 @@ class Quest int32 GetRewArenaPoints() const {return RewardArenaPoints; } uint32 GetXPDifficulty() const { return RewardXPDifficulty; } float GetXPMultiplier() const { return RewardXPMultiplier; } + float GetMoneyMultiplier() const { return RewardMoneyMultiplier; } uint32 GetSrcItemId() const { return SourceItemId; } uint32 GetSrcItemCount() const { return SourceItemIdCount; } uint32 GetSrcSpell() const { return SourceSpellID; } @@ -335,7 +337,6 @@ class Quest std::string const& GetPortraitTurnInText() const { return PortraitTurnInText; } std::string const& GetPortraitTurnInName() const { return PortraitTurnInName; } QuestObjectives const& GetObjectives() const { return Objectives; } - uint32 GetRewMoney() const; uint32 GetRewMoneyDifficulty() const { return RewardMoneyDifficulty; } uint32 GetRewHonor() const { return RewardHonor; } uint32 GetRewKillHonor() const { return RewardKillHonor; } @@ -406,7 +407,7 @@ class Quest float RewardXPMultiplier; int32 RewardMoney; uint32 RewardMoneyDifficulty; - float Float13; + float RewardMoneyMultiplier; uint32 RewardBonusMoney; uint32 RewardDisplaySpell; uint32 RewardSpell; |
