diff options
| -rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 4 | ||||
| -rw-r--r-- | src/server/game/Quests/QuestDef.cpp | 4 | ||||
| -rw-r--r-- | src/server/game/World/IWorld.h | 1 | ||||
| -rw-r--r-- | src/server/game/World/World.cpp | 1 | ||||
| -rw-r--r-- | src/server/worldserver/worldserver.conf.dist | 8 |
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 |
