aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKandera <KanderaDev@gmail.com>2012-03-16 17:59:10 -0400
committerKandera <KanderaDev@gmail.com>2012-03-16 17:59:10 -0400
commitaad4e41ca5f9bd94fbb6aef37c569543f239a42b (patch)
treeacac6d07d99fd2afface683cb1361dd166326e1b /src
parent23c5ce0e0a5d47f62005f38099dfa4812b84e70e (diff)
Core/Spells: finish fixing dispel functionality. closes #5745
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++)