diff options
Diffstat (limited to 'src/server/scripts')
| -rw-r--r-- | src/server/scripts/Northrend/VioletHold/violet_hold.cpp | 7 | ||||
| -rw-r--r-- | src/server/scripts/Outland/shadowmoon_valley.cpp | 38 |
2 files changed, 21 insertions, 24 deletions
diff --git a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp index 122d051f1dd..870ea893b78 100644 --- a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp +++ b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp @@ -782,10 +782,13 @@ struct violet_hold_trashAI : public npc_escortAI void JustDied(Unit* /*killer*/) { - if (Creature* portal = Unit::GetCreature((*me), instance->GetData64(DATA_TELEPORTATION_PORTAL))) - CAST_AI(npc_teleportation_portal_vh::npc_teleportation_portalAI, portal->AI())->SummonedMobDied(me); if (instance) + { + if (Creature* portal = Unit::GetCreature((*me), instance->GetData64(DATA_TELEPORTATION_PORTAL))) + CAST_AI(npc_teleportation_portal_vh::npc_teleportation_portalAI, portal->AI())->SummonedMobDied(me); + instance->SetData(DATA_NPC_PRESENCE_AT_DOOR_REMOVE, 1); + } } void CreatureStartAttackDoor() diff --git a/src/server/scripts/Outland/shadowmoon_valley.cpp b/src/server/scripts/Outland/shadowmoon_valley.cpp index 1656f7221ed..078f8f5a4f0 100644 --- a/src/server/scripts/Outland/shadowmoon_valley.cpp +++ b/src/server/scripts/Outland/shadowmoon_valley.cpp @@ -839,19 +839,10 @@ public: return 1500; break; case 16: - if (player) - { - Illi->CastSpell(player, SPELL_TWO, true); - player->RemoveAurasDueToSpell(SPELL_THREE); - player->RemoveAurasDueToSpell(SPELL_FOUR); - return 5000; - } - else - { - player->FailQuest(QUEST_LORD_ILLIDAN_STORMRAGE); - Step = 30; - return 100; - } + Illi->CastSpell(player, SPELL_TWO, true); + player->RemoveAurasDueToSpell(SPELL_THREE); + player->RemoveAurasDueToSpell(SPELL_FOUR); + return 5000; break; case 17: DoScriptText(LORD_ILLIDAN_SAY_5, Illi); @@ -1871,8 +1862,8 @@ public: enum ZuluhedChains { - QUEST_ZULUHED = 10866, - NPC_KARYNAKU = 22112, + QUEST_ZULUHED = 10866, + NPC_KARYNAKU = 22112, }; class spell_unlocking_zuluheds_chains : public SpellScriptLoader @@ -1884,18 +1875,21 @@ class spell_unlocking_zuluheds_chains : public SpellScriptLoader { PrepareSpellScript(spell_unlocking_zuluheds_chains_SpellScript); - void HandleOnCast() + bool Load() + { + return GetCaster()->GetTypeId() == TYPEID_PLAYER; + } + + void HandleAfterHit() { - // FIXME: Hackish solution, a better way to reward killcredit should be found - if (Unit* caster = GetCaster()) - if(Player* player = caster->ToPlayer()) - if (player->GetQuestStatus(QUEST_ZULUHED) == QUEST_STATUS_INCOMPLETE) - player->CastedCreatureOrGO(NPC_KARYNAKU, MAKE_NEW_GUID(0, NPC_KARYNAKU, HIGHGUID_UNIT), 0); + Player* caster = GetCaster()->ToPlayer(); + if (caster->GetQuestStatus(QUEST_ZULUHED) == QUEST_STATUS_INCOMPLETE) + caster->KilledMonsterCredit(NPC_KARYNAKU, 0); } void Register() { - OnCast += SpellCastFn(spell_unlocking_zuluheds_chains_SpellScript::HandleOnCast); + AfterHit += SpellHitFn(spell_unlocking_zuluheds_chains_SpellScript::HandleAfterHit); } }; |
