Merge pull request #5343 from kandera/fix_spell_script_stuff

fix a few issues with the spell scripts i made.
This commit is contained in:
QAston
2012-02-23 09:35:10 -08:00
3 changed files with 17 additions and 27 deletions

View File

@@ -1585,19 +1585,17 @@ class spell_gen_spirit_healer_res : public SpellScriptLoader
bool Load()
{
return GetOriginalCaster()->GetTypeId() == TYPEID_PLAYER;
return GetOriginalCaster() && GetOriginalCaster()->GetTypeId() == TYPEID_PLAYER;
}
void HandleDummy(SpellEffIndex /* effIndex */)
{
if (Player* originalCaster = GetOriginalCaster()->ToPlayer())
Player* originalCaster = GetOriginalCaster()->ToPlayer();
if (Unit* target = GetHitUnit())
{
if (Unit* target = GetHitUnit())
{
WorldPacket data(SMSG_SPIRIT_HEALER_CONFIRM, 8);
data << uint64(target->GetGUID());
originalCaster->GetSession()->SendPacket(&data);
}
WorldPacket data(SMSG_SPIRIT_HEALER_CONFIRM, 8);
data << uint64(target->GetGUID());
originalCaster->GetSession()->SendPacket(&data);
}
}

View File

@@ -1513,7 +1513,7 @@ class spell_item_complete_raptor_capture : public SpellScriptLoader
enum ImpaleLeviroth
{
NPC_LEVIROTH = 26452,
SPELL_LEVIROTH_SELF_IMPALE = 49882
SPELL_LEVIROTH_SELF_IMPALE = 49882,
};
class spell_item_impale_leviroth : public SpellScriptLoader
@@ -1534,11 +1534,9 @@ class spell_item_impale_leviroth : public SpellScriptLoader
void HandleDummy(SpellEffIndex /* effIndex */)
{
Unit* target = GetHitCreature();
if (!target || target->GetEntry() != NPC_LEVIROTH || !target->HealthBelowPct(95))
return;
target->CastSpell(target, SPELL_LEVIROTH_SELF_IMPALE, true);
if (Unit* target = GetHitCreature())
if (target->GetEntry() == NPC_LEVIROTH && target->HealthBelowPct(95))
target->CastSpell(target, SPELL_LEVIROTH_SELF_IMPALE, true);
}
void Register()

View File

@@ -1025,9 +1025,9 @@ class spell_q14112_14145_chum_the_water: public SpellScriptLoader
// http://old01.wowhead.com/quest=9452 - Red Snapper - Very Tasty!
enum RedSnapperVeryTasty
{
SPELL_CAST_NET = 29866,
ITEM_RED_SNAPPER = 23614,
NPC_ANGRY_MURLOC = 17102,
SPELL_CAST_NET = 29866,
ITEM_RED_SNAPPER = 23614,
SPELL_NEW_SUMMON_TEST = 49214,
};
class spell_q9452_cast_net: public SpellScriptLoader
@@ -1047,16 +1047,10 @@ class spell_q9452_cast_net: public SpellScriptLoader
void HandleDummy(SpellEffIndex /*effIndex*/)
{
Player* caster = GetCaster()->ToPlayer();
switch (urand(0, 2))
{
case 0: case 1:
caster->AddItem(ITEM_RED_SNAPPER, 1);
break;
case 2:
if (Creature* murloc = caster->SummonCreature(NPC_ANGRY_MURLOC, caster->GetPositionX()+5, caster->GetPositionY(), caster->GetPositionZ(), 0.0f, TEMPSUMMON_MANUAL_DESPAWN, 120000))
murloc->AI()->AttackStart(caster);
break;
}
if (roll_chance_i(66))
caster->AddItem(ITEM_RED_SNAPPER, 1);
else
caster->CastSpell(caster, SPELL_NEW_SUMMON_TEST, true);
}
void Register()