summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFrancesco Borzì <borzifrancesco@gmail.com>2021-02-12 16:20:31 +0100
committerGitHub <noreply@github.com>2021-02-12 16:20:31 +0100
commita63e41e5b39f53b1a00f83aaaf8b11da84f8976a (patch)
tree2c8229a94de2febf19077c8d85bccde6252abc7c /src
parent576f3588be7de502d17b27e7e8838a88b0d33688 (diff)
feat(Core/Conf): Rate.RewMoneyMaxLevel (#4546)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Player/Player.cpp4
-rw-r--r--src/server/game/Quests/QuestDef.cpp4
-rw-r--r--src/server/game/World/IWorld.h1
-rw-r--r--src/server/game/World/World.cpp1
-rw-r--r--src/server/worldserver/worldserver.conf.dist8
5 files changed, 14 insertions, 4 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index b0ee16cd39..465bb91a84 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -16073,7 +16073,7 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver,
int32 moneyRew = 0;
if (getLevel() >= sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL) || sScriptMgr->ShouldBeRewardedWithMoneyInsteadOfExp(this))
{
- moneyRew = int32(quest->GetRewMoneyMaxLevel() * sWorld->getRate(RATE_DROP_MONEY));
+ moneyRew = quest->GetRewMoneyMaxLevel();
}
else
{
@@ -17587,7 +17587,7 @@ void Player::SendQuestReward(Quest const* quest, uint32 XP)
else
{
data << uint32(0);
- data << uint32(quest->GetRewOrReqMoney() + int32(quest->GetRewMoneyMaxLevel() * sWorld->getRate(RATE_DROP_MONEY)));
+ data << uint32(quest->GetRewOrReqMoney() + quest->GetRewMoneyMaxLevel());
}
data << uint32(10 * quest->CalculateHonorGain(GetQuestLevel(quest)));
diff --git a/src/server/game/Quests/QuestDef.cpp b/src/server/game/Quests/QuestDef.cpp
index 113cb6af29..7daab8261a 100644
--- a/src/server/game/Quests/QuestDef.cpp
+++ b/src/server/game/Quests/QuestDef.cpp
@@ -208,7 +208,7 @@ int32 Quest::GetRewOrReqMoney() const
if (RewardMoney <= 0)
return RewardMoney;
- return int32(RewardMoney * sWorld->getRate(RATE_DROP_MONEY));
+ return static_cast<int32>(RewardMoney * sWorld->getRate(RATE_DROP_MONEY));
}
uint32 Quest::GetRewMoneyMaxLevel() const
@@ -216,7 +216,7 @@ uint32 Quest::GetRewMoneyMaxLevel() const
if (HasFlag(QUEST_FLAGS_NO_MONEY_FROM_XP))
return 0;
- return RewardBonusMoney;
+ return static_cast<int32>(RewardBonusMoney * sWorld->getRate(RATE_REWARD_BONUS_MONEY) * sWorld->getRate(RATE_DROP_MONEY));
}
bool Quest::IsAutoAccept() const
diff --git a/src/server/game/World/IWorld.h b/src/server/game/World/IWorld.h
index 16ccf23f11..51acacccdd 100644
--- a/src/server/game/World/IWorld.h
+++ b/src/server/game/World/IWorld.h
@@ -416,6 +416,7 @@ enum Rates
RATE_BUYVALUE_ITEM_ARTIFACT,
RATE_BUYVALUE_ITEM_HEIRLOOM,
RATE_DROP_MONEY,
+ RATE_REWARD_BONUS_MONEY,
RATE_XP_KILL,
RATE_XP_BG_KILL,
RATE_XP_QUEST,
diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp
index db21814dd9..7cc1c0ec66 100644
--- a/src/server/game/World/World.cpp
+++ b/src/server/game/World/World.cpp
@@ -500,6 +500,7 @@ void World::LoadConfigSettings(bool reload)
rate_values[RATE_DROP_ITEM_REFERENCED] = sConfigMgr->GetFloatDefault("Rate.Drop.Item.Referenced", 1.0f);
rate_values[RATE_DROP_ITEM_REFERENCED_AMOUNT] = sConfigMgr->GetFloatDefault("Rate.Drop.Item.ReferencedAmount", 1.0f);
rate_values[RATE_DROP_MONEY] = sConfigMgr->GetFloatDefault("Rate.Drop.Money", 1.0f);
+ rate_values[RATE_REWARD_BONUS_MONEY] = sConfigMgr->GetFloatDefault("Rate.RewardBonusMoney", 1.0f);
rate_values[RATE_XP_KILL] = sConfigMgr->GetFloatDefault("Rate.XP.Kill", 1.0f);
rate_values[RATE_XP_BG_KILL] = sConfigMgr->GetFloatDefault("Rate.XP.BattlegroundKill", 1.0f);
rate_values[RATE_XP_QUEST] = sConfigMgr->GetFloatDefault("Rate.XP.Quest", 1.0f);
diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist
index 1f9c78f43d..6a736e937d 100644
--- a/src/server/worldserver/worldserver.conf.dist
+++ b/src/server/worldserver/worldserver.conf.dist
@@ -2363,6 +2363,14 @@ Rate.Drop.Item.Artifact = 1
Rate.Drop.Item.Referenced = 1
Rate.Drop.Money = 1
+# RewardBonusMoney
+# Description: Allows to further tweak the amount of extra money rewarded by quests when the player
+# is at MaxPlayerLevel (this amount is specified in quest_template.RewardBonusMoney).
+# NOTE: the final amount will also affected by Rate.Drop.Money
+# Default: 1
+
+Rate.RewardBonusMoney = 1
+
#
# Rate.SellValue.Item.Poor
# Rate.SellValue.Item.Normal