diff options
author | megamage <none@none> | 2009-03-15 17:20:15 -0600 |
---|---|---|
committer | megamage <none@none> | 2009-03-15 17:20:15 -0600 |
commit | 596e9b353ae8dc6e4b0b0347cc450e4beaf2f0ab (patch) | |
tree | fa94e7eb9e0f3ba5a6b91c71aec94f32ea931f6a | |
parent | 9ef443c2868552460a4657f0535903eb232d660e (diff) |
[7461] Give proper honor amount at item based AddHonor spells cast. Author: VladimirMangos
*The last rev is also by VladimirMangos, sorry.
--HG--
branch : trunk
-rw-r--r-- | src/game/SpellEffects.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index ef6d5c2c2d7..4f5e630c56b 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -3915,17 +3915,26 @@ void Spell::EffectAddHonor(uint32 /*i*/) if(unitTarget->GetTypeId() != TYPEID_PLAYER) return; - uint32 honor_reward = MaNGOS::Honor::hk_honor_at_level(unitTarget->getLevel(), damage); - sLog.outDebug("SpellEffect::AddHonor called for spell_id %u, that rewards %u honor points to player: %u", m_spellInfo->Id, honor_reward, ((Player*)unitTarget)->GetGUIDLow()); + // not scale value for item based reward (/10 value expected) + if(m_CastItem) + { + ((Player*)unitTarget)->RewardHonor(NULL, 1, damage/10); + sLog.outError("SpellEffect::AddHonor (spell_id %u) rewards %d honor points (item %u) for player: %u", m_spellInfo->Id, damage/10, m_CastItem->GetEntry(),((Player*)unitTarget)->GetGUIDLow()); + return; + } // do not allow to add too many honor for player (50 * 21) = 1040 at level 70, or (50 * 31) = 1550 at level 80 - if( damage <= 50 ) + if( damage <= 50) + { + uint32 honor_reward = MaNGOS::Honor::hk_honor_at_level(unitTarget->getLevel(), damage); ((Player*)unitTarget)->RewardHonor(NULL, 1, honor_reward); + sLog.outDebug("SpellEffect::AddHonor (spell_id %u) rewards %u honor points (scale) to player: %u", m_spellInfo->Id, honor_reward, ((Player*)unitTarget)->GetGUIDLow()); + } else { //maybe we have correct honor_gain in damage already ((Player*)unitTarget)->RewardHonor(NULL, 1, damage); - sLog.outError("SpellEffect::AddHonor called for spell_id %u, that rewards %d * honor for one honorable kill and it is too much (%u of honor) for player: %u", m_spellInfo->Id, damage, honor_reward, ((Player*)unitTarget)->GetGUIDLow()); + sLog.outError("SpellEffect::AddHonor (spell_id %u) rewards %u honor points (non scale) for player: %u", m_spellInfo->Id, damage, ((Player*)unitTarget)->GetGUIDLow()); } } |