All pastes #1015248 Raw Edit

addhonor fix

public diff v1 · immutable
#1015248 ·published 2008-05-12 00:32 UTC
rendered paste body
Index: src/game/SharedDefines.h===================================================================--- src/game/SharedDefines.h	(revision 5788)+++ src/game/SharedDefines.h	(working copy)@@ -291,7 +291,7 @@     SPELL_EFFECT_SUMMON_GUARDIAN           = 42,     SPELL_EFFECT_TELEPORT_UNITS_FACE_CASTER= 43,     SPELL_EFFECT_SKILL_STEP                = 44,-    SPELL_EFFECT_UNDEFINED_45              = 45,+    SPELL_EFFECT_ADDHONOR                  = 45,     SPELL_EFFECT_SPAWN                     = 46,     SPELL_EFFECT_TRADE_SKILL               = 47,     SPELL_EFFECT_STEALTH                   = 48,Index: src/game/Spell.cpp===================================================================--- src/game/Spell.cpp	(revision 5788)+++ src/game/Spell.cpp	(working copy)@@ -1935,7 +1935,17 @@     // Pass cast spell event to handler (not send triggered by aura spells)     if (m_spellInfo->DmgClass != SPELL_DAMAGE_CLASS_MELEE && m_spellInfo->DmgClass != SPELL_DAMAGE_CLASS_RANGED && !m_triggeredByAuraSpell)     {-        m_caster->ProcDamageAndSpell(m_targets.getUnitTarget(), PROC_FLAG_CAST_SPELL, PROC_FLAG_NONE, 0, m_spellInfo, m_IsTriggeredSpell);+		if(m_spellInfo->Attributes == 8388608)+		{+			for(uint32 i = 0; i<3; ++i)+			{+				HandleEffects(m_targets.getUnitTarget(), NULL, NULL, i, m_spellInfo->DmgMultiplier[i]);+			}+		}+		else+		{+			m_caster->ProcDamageAndSpell(m_targets.getUnitTarget(), PROC_FLAG_CAST_SPELL, PROC_FLAG_NONE, 0, m_spellInfo, m_IsTriggeredSpell);+		}          // update pointers base at GUIDs to prevent access to non-existed already object         UpdatePointers();                                   // pointers can be invalidate at triggered spell castingIndex: src/game/SpellEffects.cpp===================================================================--- src/game/SpellEffects.cpp	(revision 5788)+++ src/game/SpellEffects.cpp	(working copy)@@ -2977,18 +2977,22 @@     ((Player*)unitTarget)->SetSkill(skillid,skillval?skillval:1,damage*75); } -void Spell::EffectAddHonor(uint32 /*i*/)+void Spell::EffectAddHonor(uint32 i) {     if(unitTarget->GetTypeId() != TYPEID_PLAYER)         return; -    sLog.outDebug("SpellEffect::AddHonor called for spell_id %u , that rewards %d honor points to player: %u", m_spellInfo->Id, this->damage, ((Player*)unitTarget)->GetGUIDLow());+	sLog.outDebug("SpellEffect::AddHonor called for spell_id %u , that rewards %d honor points to player: %u", m_spellInfo->Id, this->m_currentBasePoints[i], ((Player*)unitTarget)->GetGUIDLow()); +	((Player*)unitTarget)->RewardHonor(NULL, 1, this->m_currentBasePoints[i]);+     //TODO find formula for honor reward based on player's level!      //now fixed only for lvl 70 players:     if (((Player*)unitTarget)->getLevel() == 70)+	{         ((Player*)unitTarget)->RewardHonor(NULL, 1, this->damage);+	} }  void Spell::EffectTradeSkill(uint32 /*i*/)