Scripts/Spells: Use correct spell and fix crash in spell_item_impale_leviroth

This commit is contained in:
vincent-michael
2012-02-18 21:18:02 +00:00
committed by Nay
parent f87da6d664
commit 34a41d0152
+7 -10
View File
@@ -1504,7 +1504,8 @@ class spell_item_complete_raptor_capture : public SpellScriptLoader
enum ImpaleLeviroth
{
NPC_LEVIROTH = 26452,
NPC_LEVIROTH = 26452,
SPELL_LEVIROTH_SELF_IMPALE = 49882
};
class spell_item_impale_leviroth : public SpellScriptLoader
@@ -1516,11 +1517,6 @@ class spell_item_impale_leviroth : public SpellScriptLoader
{
PrepareSpellScript(spell_item_impale_leviroth_SpellScript);
bool Load()
{
return GetHitCreature()->GetEntry() == NPC_LEVIROTH;
}
bool Validate(SpellInfo const* /*spell*/)
{
if (!sObjectMgr->GetCreatureTemplate(NPC_LEVIROTH))
@@ -1530,10 +1526,11 @@ class spell_item_impale_leviroth : public SpellScriptLoader
void HandleDummy(SpellEffIndex /* effIndex */)
{
Unit* caster = GetCaster();
if (Unit* target = GetHitCreature())
if (target->HealthBelowPct(95))
caster->DealDamage(target, target->CountPctFromMaxHealth(93));
Unit* target = GetHitCreature();
if (!target || target->GetEntry() != NPC_LEVIROTH || !target->HealthBelowPct(95))
return;
target->CastSpell(target, SPELL_LEVIROTH_SELF_IMPALE, true);
}
void Register()