aboutsummaryrefslogtreecommitdiff
path: root/src/game/Player.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-03-22 19:29:09 -0600
committermegamage <none@none>2009-03-22 19:29:09 -0600
commit470d961dfadd0694f8101a8223486aeea87f256f (patch)
tree89513f18fd5de4c844c01eff3ec6f43c1b8b561b /src/game/Player.cpp
parenta47d2e1c22237e1b2337e89b0f1d910cca68b6ed (diff)
Let set in conf custom rates for low level kill/quest reputation gain. Author: VladimirMangos
--HG-- branch : trunk
Diffstat (limited to 'src/game/Player.cpp')
-rw-r--r--src/game/Player.cpp10
1 files changed, 7 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);