Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
- index 9c6b1ed..046f1fe 100644
- --- a/src/server/game/Spells/SpellEffects.cpp
- +++ b/src/server/game/Spells/SpellEffects.cpp
- @@ -3765,7 +3765,30 @@ void Spell::EffectDispel(SpellEffIndex effIndex)
- if (dispelMask & (1 << DISPEL_DISEASE) && unitTarget->HasAura(50536))
- dispelMask &= ~(1 << DISPEL_DISEASE);
- - Unit::AuraMap const& auras = unitTarget->GetOwnedAuras();
- + Unit::AuraMap const& auras = unitTarget->GetOwnedAuras();
- +
- + switch (m_spellInfo->Id)
- + {
- + case 4987: //Cleanse, Acts of Sacrifice
- + //Check for talents and target. Effect must dispel only once
- + //but cleanse has more than one spelleffect. So proc only once at effect_0.
- + if ((GetCaster()->HasAura(85795) || GetCaster()->HasAura(85446)) &&
- + effIndex == EFFECT_0 && GetCaster()->GetGUID() == unitTarget->GetGUID())
- + {
- + uint32 mechanic_mask = (1<<MECHANIC_SNARE) | (1<<MECHANIC_ROOT);
- + for (Unit::AuraMap::const_iterator itr = auras.begin(); itr != auras.end(); ++itr)
- + {
- + Aura * aura = itr->second;
- + if (GetAllSpellMechanicMask(aura->GetSpellProto()) & mechanic_mask)
- + {
- + unitTarget->RemoveAurasDueToSpell(aura->GetSpellProto()->Id);
- + break;
- + }
- + }
- + }
- + break;
- + }
- +
- for (Unit::AuraMap::const_iterator itr = auras.begin(); itr != auras.end(); ++itr)
- {
- Aura * aura = itr->second;
Advertisement
Add Comment
Please, Sign In to add comment