diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index f97a8827d..4bf4341a5 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -6088,23 +6088,6 @@ SpellCastResult Spell::CheckCast(bool strict) // for effects of spells that have only one target switch (m_spellInfo->Effects[i].Effect) { - case SPELL_EFFECT_DUMMY: - { - if (m_spellInfo->SpellFamilyName == SPELLFAMILY_DEATHKNIGHT) - { - // Raise Ally - if( m_spellInfo->Id == 61999 ) - { - Unit* target = m_targets.GetUnitTarget(); - if (!target) - return SPELL_FAILED_BAD_TARGETS; - - if (target->IsAlive()) // not discovered attributeEx5? - return SPELL_FAILED_TARGET_NOT_DEAD; - } - } - break; - } case SPELL_EFFECT_LEARN_SPELL: { if (m_caster->GetTypeId() != TYPEID_PLAYER) diff --git a/src/server/scripts/Spells/spell_dk.cpp b/src/server/scripts/Spells/spell_dk.cpp index 046dd925e..7a829a517 100644 --- a/src/server/scripts/Spells/spell_dk.cpp +++ b/src/server/scripts/Spells/spell_dk.cpp @@ -146,6 +146,18 @@ class spell_dk_raise_ally : public SpellScript { PrepareSpellScript(spell_dk_raise_ally); + SpellCastResult CheckCast() + { + Player* unitTarget = GetHitPlayer(); + if (!unitTarget) + return SPELL_FAILED_BAD_TARGETS; + + if (unitTarget->IsAlive()) // not discovered attributeEx5? + return SPELL_FAILED_TARGET_NOT_DEAD; + + return SPELL_CAST_OK; + } + void HandleDummy(SpellEffIndex /*effIndex*/) { if (Player* unitTarget = GetHitPlayer()) @@ -237,6 +249,7 @@ class spell_dk_raise_ally : public SpellScript void Register() override { + OnCheckCast += SpellCheckCastFn(spell_dk_raise_ally::CheckCast); OnEffectHitTarget += SpellEffectFn(spell_dk_raise_ally::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); } };