diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index dc6c9c4a5..bd9506c05 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -3712,7 +3712,6 @@ void Spell::cancel(bool bySelf) return; uint32 oldState = m_spellState; - bool autoRepeat = m_autoRepeat; m_spellState = SPELL_STATE_FINISHED; m_autoRepeat = false; @@ -3720,6 +3719,8 @@ void Spell::cancel(bool bySelf) { case SPELL_STATE_PREPARING: CancelGlobalCooldown(); + SendCastResult(SPELL_FAILED_INTERRUPTED); + if (m_caster->GetTypeId() == TYPEID_PLAYER) { if (m_caster->ToPlayer()->NeedSendSpectatorData()) @@ -3727,10 +3728,7 @@ void Spell::cancel(bool bySelf) } [[fallthrough]]; case SPELL_STATE_DELAYED: - SendInterrupted(0); - // xinef: fixes bugged gcd reset in some cases - if (!autoRepeat) - SendCastResult(SPELL_FAILED_INTERRUPTED); + SendInterrupted(SPELL_FAILED_INTERRUPTED); break; case SPELL_STATE_CASTING: if (!bySelf)