From 1ef8fddde798419aa275be0eded85879b7cdb14d Mon Sep 17 00:00:00 2001 From: Charles A Edwards Date: Thu, 21 Jan 2016 15:51:20 +0000 Subject: [PATCH] fix by H0zen moved back to its original location The condition statement has been moved back to its original location. --- src/game/WorldHandlers/Spell.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/game/WorldHandlers/Spell.cpp b/src/game/WorldHandlers/Spell.cpp index c8e51474..53f617f7 100644 --- a/src/game/WorldHandlers/Spell.cpp +++ b/src/game/WorldHandlers/Spell.cpp @@ -4241,12 +4241,7 @@ SpellCastResult Spell::CheckCast(bool strict) else if (m_caster == target) { if (m_caster->GetTypeId() == TYPEID_PLAYER && m_caster->IsInWorld()) - { - // Arcane Missile self cast forbidden - if (m_spellInfo->SpellFamilyName == SPELLFAMILY_MAGE && - m_spellInfo->SpellFamilyFlags & UI64LIT(0x00000800)) - { return SPELL_FAILED_BAD_TARGETS; } - + { // Additional check for some spells // If 0 spell effect empty - client not send target data (need use selection) // TODO: check it on next client version @@ -4255,6 +4250,12 @@ SpellCastResult Spell::CheckCast(bool strict) { target = m_caster->GetMap()->GetUnit(((Player*)m_caster)->GetSelectionGuid()); if (!target) + { return SPELL_FAILED_BAD_TARGETS; } + + // Arcane Missile self cast forbidden + if (m_spellInfo->SpellFamilyName == SPELLFAMILY_MAGE && + m_spellInfo->SpellFamilyFlags & UI64LIT(0x00000800) && + m_caster == target) { return SPELL_FAILED_BAD_TARGETS; } m_targets.setUnitTarget(target);