diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/Player.cpp | 10 | ||||
-rw-r--r-- | src/game/World.cpp | 2 | ||||
-rw-r--r-- | src/game/World.h | 2 | ||||
-rw-r--r-- | src/trinitycore/trinitycore.conf.dist | 10 |
4 files changed, 21 insertions, 3 deletions
diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 6482bf3b684..4f338cd4823 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -6111,14 +6111,18 @@ bool Player::SetOneFactionReputation(FactionEntry const* factionEntry, int32 sta //Calculate total reputation percent player gain with quest/creature level int32 Player::CalculateReputationGain(uint32 creatureOrQuestLevel, int32 rep, bool for_quest) { - // for grey creature kill received 20%, in other case 100. - int32 percent = (!for_quest && (creatureOrQuestLevel <= MaNGOS::XP::GetGrayLevel(getLevel()))) ? 20 : 100; + float percent = 100.0f; + + float rate = for_quest ? sWorld.getRate(RATE_REPUTATION_LOWLEVEL_QUEST) : sWorld.getRate(RATE_REPUTATION_LOWLEVEL_KILL); + + if(rate != 1.0f && creatureOrQuestLevel <= MaNGOS::XP::GetGrayLevel(getLevel())) + percent *= rate; int32 repMod = GetTotalAuraModifier(SPELL_AURA_MOD_REPUTATION_GAIN); percent += rep > 0 ? repMod : -repMod; - if(percent <=0) + if(percent <= 0.0f) return 0; return int32(sWorld.getRate(RATE_REPUTATION_GAIN)*rep*percent/100); diff --git a/src/game/World.cpp b/src/game/World.cpp index 3e25ff086c0..099914918b2 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -483,6 +483,8 @@ void World::LoadConfigSettings(bool reload) rate_values[RATE_XP_QUEST] = sConfig.GetFloatDefault("Rate.XP.Quest", 1.0f); rate_values[RATE_XP_EXPLORE] = sConfig.GetFloatDefault("Rate.XP.Explore", 1.0f); rate_values[RATE_REPUTATION_GAIN] = sConfig.GetFloatDefault("Rate.Reputation.Gain", 1.0f); + rate_values[RATE_REPUTATION_LOWLEVEL_KILL] = sConfig.GetFloatDefault("Rate.Reputation.LowLevel.Kill", 1.0f); + rate_values[RATE_REPUTATION_LOWLEVEL_QUEST] = sConfig.GetFloatDefault("Rate.Reputation.LowLevel.Quest", 1.0f); rate_values[RATE_CREATURE_NORMAL_DAMAGE] = sConfig.GetFloatDefault("Rate.Creature.Normal.Damage", 1.0f); rate_values[RATE_CREATURE_ELITE_ELITE_DAMAGE] = sConfig.GetFloatDefault("Rate.Creature.Elite.Elite.Damage", 1.0f); rate_values[RATE_CREATURE_ELITE_RAREELITE_DAMAGE] = sConfig.GetFloatDefault("Rate.Creature.Elite.RAREELITE.Damage", 1.0f); diff --git a/src/game/World.h b/src/game/World.h index e997f34f089..f6d9045a406 100644 --- a/src/game/World.h +++ b/src/game/World.h @@ -243,6 +243,8 @@ enum Rates RATE_XP_QUEST, RATE_XP_EXPLORE, RATE_REPUTATION_GAIN, + RATE_REPUTATION_LOWLEVEL_KILL, + RATE_REPUTATION_LOWLEVEL_QUEST, RATE_CREATURE_NORMAL_HP, RATE_CREATURE_ELITE_ELITE_HP, RATE_CREATURE_ELITE_RAREELITE_HP, diff --git a/src/trinitycore/trinitycore.conf.dist b/src/trinitycore/trinitycore.conf.dist index 4a463e7b95e..7e483380843 100644 --- a/src/trinitycore/trinitycore.conf.dist +++ b/src/trinitycore/trinitycore.conf.dist @@ -1072,6 +1072,14 @@ Visibility.Distance.Grey.Object = 10 # Reputation Gain rate # Default: 1 # +# Rate.Reputation.LowLevel.Kill +# Reputation Gain form low level kill (grey creture) +# Default: 1 +# +# Rate.Reputation.LowLevel.Quest +# Reputation Gain rate +# Default: 1 +# # Rate.InstanceResetTime # Multiplier for the number of days in between global raid/heroic instance resets. # Default: 1 @@ -1166,6 +1174,8 @@ Rate.Mining.Amount = 1 Rate.Mining.Next = 1 Rate.Talent = 1 Rate.Reputation.Gain = 1 +Rate.Reputation.LowLevel.Kill = 1 +Rate.Reputation.LowLevel.Quest = 1 Rate.InstanceResetTime = 1 SkillGain.Crafting = 1 SkillGain.Defense = 1 |