aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Quests
diff options
context:
space:
mode:
authorKinzcool <kinzzcool@hotmail.com>2015-07-01 17:57:09 -0400
committerKinzcool <kinzzcool@hotmail.com>2015-07-01 17:57:09 -0400
commit4bbbd9540a25845edb0d424199bab196b5e6bea1 (patch)
tree39aa0b8c6c76390a70e5e513131cb4a777ce32e5 /src/server/game/Quests
parent97b693343586be8ec01178b6b0a02f52bee4d723 (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.cpp14
-rw-r--r--src/server/game/Quests/QuestDef.h5
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;