mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 07:37:01 +00:00
[7520] Let set in mangosd.conf custom rates for low level kill/quest reputation gain.
This commit is contained in:
parent
718d92c4a3
commit
50c0bc6aac
5 changed files with 23 additions and 4 deletions
|
|
@ -6026,14 +6026,18 @@ bool Player::SetOneFactionReputation(FactionEntry const* factionEntry, int32 sta
|
||||||
//Calculate total reputation percent player gain with quest/creature level
|
//Calculate total reputation percent player gain with quest/creature level
|
||||||
int32 Player::CalculateReputationGain(uint32 creatureOrQuestLevel, int32 rep, bool for_quest)
|
int32 Player::CalculateReputationGain(uint32 creatureOrQuestLevel, int32 rep, bool for_quest)
|
||||||
{
|
{
|
||||||
// for grey creature kill received 20%, in other case 100.
|
float percent = 100.0f;
|
||||||
int32 percent = (!for_quest && (creatureOrQuestLevel <= MaNGOS::XP::GetGrayLevel(getLevel()))) ? 20 : 100;
|
|
||||||
|
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);
|
int32 repMod = GetTotalAuraModifier(SPELL_AURA_MOD_REPUTATION_GAIN);
|
||||||
|
|
||||||
percent += rep > 0 ? repMod : -repMod;
|
percent += rep > 0 ? repMod : -repMod;
|
||||||
|
|
||||||
if(percent <=0)
|
if(percent <= 0.0f)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return int32(sWorld.getRate(RATE_REPUTATION_GAIN)*rep*percent/100);
|
return int32(sWorld.getRate(RATE_REPUTATION_GAIN)*rep*percent/100);
|
||||||
|
|
|
||||||
|
|
@ -470,6 +470,8 @@ void World::LoadConfigSettings(bool reload)
|
||||||
rate_values[RATE_XP_QUEST] = sConfig.GetFloatDefault("Rate.XP.Quest", 1.0f);
|
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_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_GAIN] = sConfig.GetFloatDefault("Rate.Reputation.Gain", 1.0f);
|
||||||
|
rate_values[RATE_REPUTATION_LOWLEVEL_KILL] = sConfig.GetFloatDefault("Rate.Reputation.LowLevel.Kill", 0.2f);
|
||||||
|
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_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_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);
|
rate_values[RATE_CREATURE_ELITE_RAREELITE_DAMAGE] = sConfig.GetFloatDefault("Rate.Creature.Elite.RAREELITE.Damage", 1.0f);
|
||||||
|
|
|
||||||
|
|
@ -223,6 +223,8 @@ enum Rates
|
||||||
RATE_XP_QUEST,
|
RATE_XP_QUEST,
|
||||||
RATE_XP_EXPLORE,
|
RATE_XP_EXPLORE,
|
||||||
RATE_REPUTATION_GAIN,
|
RATE_REPUTATION_GAIN,
|
||||||
|
RATE_REPUTATION_LOWLEVEL_KILL,
|
||||||
|
RATE_REPUTATION_LOWLEVEL_QUEST,
|
||||||
RATE_CREATURE_NORMAL_HP,
|
RATE_CREATURE_NORMAL_HP,
|
||||||
RATE_CREATURE_ELITE_ELITE_HP,
|
RATE_CREATURE_ELITE_ELITE_HP,
|
||||||
RATE_CREATURE_ELITE_RAREELITE_HP,
|
RATE_CREATURE_ELITE_RAREELITE_HP,
|
||||||
|
|
|
||||||
|
|
@ -1004,6 +1004,14 @@ Visibility.Distance.Grey.Object = 10
|
||||||
# Reputation Gain rate
|
# Reputation Gain rate
|
||||||
# Default: 1
|
# Default: 1
|
||||||
#
|
#
|
||||||
|
# Rate.Reputation.LowLevel.Kill
|
||||||
|
# Reputation Gain form low level kill (grey creture)
|
||||||
|
# Default: 0.2
|
||||||
|
#
|
||||||
|
# Rate.Reputation.LowLevel.Quest
|
||||||
|
# Reputation Gain rate
|
||||||
|
# Default: 1
|
||||||
|
#
|
||||||
# Rate.InstanceResetTime
|
# Rate.InstanceResetTime
|
||||||
# Multiplier for the number of days in between global raid/heroic instance resets.
|
# Multiplier for the number of days in between global raid/heroic instance resets.
|
||||||
# Default: 1
|
# Default: 1
|
||||||
|
|
@ -1096,6 +1104,9 @@ Rate.Mining.Amount = 1
|
||||||
Rate.Mining.Next = 1
|
Rate.Mining.Next = 1
|
||||||
Rate.Talent = 1
|
Rate.Talent = 1
|
||||||
Rate.Reputation.Gain = 1
|
Rate.Reputation.Gain = 1
|
||||||
|
Rate.Reputation.LowLevel.Kill = 0.2
|
||||||
|
Rate.Reputation.LowLevel.Quest = 1
|
||||||
|
|
||||||
Rate.InstanceResetTime = 1
|
Rate.InstanceResetTime = 1
|
||||||
SkillGain.Crafting = 1
|
SkillGain.Crafting = 1
|
||||||
SkillGain.Defense = 1
|
SkillGain.Defense = 1
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "7519"
|
#define REVISION_NR "7520"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue