diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 1de14ccc5..ac0f5c100 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -8765,7 +8765,7 @@ bool SpellAuraHolder::HasMechanicMask(uint32 mechanicMask) const return true; for (int32 i = 0; i < MAX_EFFECT_INDEX; ++i) - if (m_auras[i] && m_spellProto->EffectMechanic[i] & mechanicMask) + if (m_auras[i] && m_spellProto->EffectMechanic[i] && ((1 << (m_spellProto->EffectMechanic[i] -1)) & mechanicMask)) return true; return false; } diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index d08d24b25..f1ab615bd 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -7362,7 +7362,7 @@ void Spell::EffectDispelMechanic(SpellEffectIndex eff_idx) next = iter; ++next; SpellEntry const *spell = iter->second->GetSpellProto(); - if (spell->Mechanic == mechanic || iter->second->HasMechanic(mechanic)) + if (iter->second->HasMechanic(mechanic)) { unitTarget->RemoveAurasDueToSpell(spell->Id); if (Auras.empty()) diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index a7db78b2b..2d72810a1 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 "10232" + #define REVISION_NR "10233" #endif // __REVISION_NR_H__