diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 9c7a49b4a..0b76eb390 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -928,8 +928,7 @@ void Spell::DoAllEffectOnTarget(TargetInfo *target) unitTarget = unit; // Reset damage/healing counter - m_damage = 0; - m_healing = 0; + ResetEffectDamageAndHeal(); // Fill base trigger info uint32 procAttacker = m_procAttacker; @@ -1082,6 +1081,8 @@ void Spell::DoSpellHitOnUnit(Unit *unit, const uint32 effectMask) { if (realCaster) realCaster->SendSpellMiss(unit, m_spellInfo->Id, SPELL_MISS_IMMUNE); + + ResetEffectDamageAndHeal(); return; } @@ -1102,6 +1103,7 @@ void Spell::DoSpellHitOnUnit(Unit *unit, const uint32 effectMask) unit->GetCharmerOrOwnerGUID() != m_caster->GetGUID()) { realCaster->SendSpellMiss(unit, m_spellInfo->Id, SPELL_MISS_EVADE); + ResetEffectDamageAndHeal(); return; } @@ -1112,6 +1114,7 @@ void Spell::DoSpellHitOnUnit(Unit *unit, const uint32 effectMask) !unit->isVisibleForOrDetect(m_caster, m_caster, false)) { realCaster->SendSpellMiss(unit, m_spellInfo->Id, SPELL_MISS_EVADE); + ResetEffectDamageAndHeal(); return; } @@ -1150,6 +1153,7 @@ void Spell::DoSpellHitOnUnit(Unit *unit, const uint32 effectMask) if (m_spellInfo->speed > 0.0f && !IsPositiveSpell(m_spellInfo->Id)) { realCaster->SendSpellMiss(unit, m_spellInfo->Id, SPELL_MISS_EVADE); + ResetEffectDamageAndHeal(); return; } @@ -6505,3 +6509,9 @@ WorldObject* Spell::GetCastingObject() const else return m_caster; } + +void Spell::ResetEffectDamageAndHeal() +{ + m_damage = 0; + m_healing = 0; +} \ No newline at end of file diff --git a/src/game/Spell.h b/src/game/Spell.h index 739b32ec2..7cda2c8d1 100644 --- a/src/game/Spell.h +++ b/src/game/Spell.h @@ -611,6 +611,7 @@ class Spell void DoAllEffectOnTarget(TargetInfo *target); void HandleDelayedSpellLaunch(TargetInfo *target); void InitializeDamageMultipliers(); + void ResetEffectDamageAndHeal(); void DoSpellHitOnUnit(Unit *unit, uint32 effectMask); void DoAllEffectOnTarget(GOTargetInfo *target); void DoAllEffectOnTarget(ItemTargetInfo *target); diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index d898da509..d43087157 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "9874" + #define REVISION_NR "9875" #endif // __REVISION_NR_H__