aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsrc/server/game/Spells/Auras/SpellAuraEffects.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
index 87cc2ce0771..fa37ad9daad 100755
--- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp
+++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
@@ -2814,6 +2814,21 @@ void AuraEffect::HandleModInvisibility(AuraApplication const * aurApp, uint8 mod
target->m_invisibility.DelFlag(type);
}
+ else
+ {
+ bool found = false;
+ Unit::AuraEffectList const& invisAuras = target->GetAuraEffectsByType(SPELL_AURA_MOD_INVISIBILITY);
+ for (Unit::AuraEffectList::const_iterator i = invisAuras.begin(); i != invisAuras.end(); ++i)
+ {
+ if (GetMiscValue() == (*i)->GetMiscValue())
+ {
+ found = true;
+ break;
+ }
+ }
+ if (!found)
+ target->m_invisibility.DelFlag(type);
+ }
target->m_invisibility.AddValue(type, -GetAmount());
}