diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 1ba090982..c0eb85382 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -1067,6 +1067,15 @@ void Spell::DoSpellHitOnUnit(Unit *unit, const uint32 effectMask) if( m_caster != unit ) { + // Recheck UNIT_FLAG_NON_ATTACKABLE for delayed spells + if (m_spellInfo->speed > 0.0f && + unit->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE) && + unit->GetCharmerOrOwnerGUID() != m_caster->GetGUID()) + { + m_caster->SendSpellMiss(unit, m_spellInfo->Id, SPELL_MISS_EVADE); + return; + } + if( !m_caster->IsFriendlyTo(unit) ) { // for delayed spells ignore not visible explicit target diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 4f70bfda4..291d0b1f1 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 "6987" + #define REVISION_NR "6988" #endif // __REVISION_NR_H__