aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Spells/Spell.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 3af200f7a56..21d49ccf151 100755
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -4956,6 +4956,7 @@ SpellCastResult Spell::CheckCast(bool strict)
return castResult;
bool hasDispellableAura = false;
+ bool hasNonDispelEffect = false;
for (int i = 0; i < MAX_SPELL_EFFECTS; i++)
if (m_spellInfo->Effects[i].Effect == SPELL_EFFECT_DISPEL)
{
@@ -4976,8 +4977,13 @@ SpellCastResult Spell::CheckCast(bool strict)
}
}
}
+ else if (m_spellInfo->Effects[i].IsEffect())
+ {
+ hasNonDispelEffect = true;
+ break;
+ }
- if (!hasDispellableAura && m_spellInfo->HasEffect(SPELL_EFFECT_DISPEL))
+ if (!hasNonDispelEffect && !hasDispellableAura && m_spellInfo->HasEffect(SPELL_EFFECT_DISPEL))
return SPELL_FAILED_NOTHING_TO_DISPEL;
for (int i = 0; i < MAX_SPELL_EFFECTS; i++)