diff options
author | click <none@none> | 2010-05-01 09:12:52 +0200 |
---|---|---|
committer | click <none@none> | 2010-05-01 09:12:52 +0200 |
commit | 593d962665b3a9814cfd6eab6cbbb72c25bd66c6 (patch) | |
tree | 452fc5aebea3e019d8d5895669d667ce8ef0a6dc /src | |
parent | bcbb52f507e12e0713de48cbe9a1262ec76610fe (diff) |
Add support for quest 1440 (Return to Vahlarriel) - patch by Supabad
Closes issue #323
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/scripts/kalimdor/desolace.cpp | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/scripts/kalimdor/desolace.cpp b/src/scripts/kalimdor/desolace.cpp index dd0d1ed3240..2e1d951c3fe 100644 --- a/src/scripts/kalimdor/desolace.cpp +++ b/src/scripts/kalimdor/desolace.cpp @@ -26,6 +26,7 @@ npc_aged_dying_ancient_kodo EndContentData */ #include "ScriptedPch.h" +#include "ScriptedEscortAI.h" enum eDyingKodo { @@ -169,6 +170,70 @@ bool GOHello_go_iruxos(Player *pPlayer, GameObject* /*pGO*/) return true; } +/*###### +## npc_dalinda_malem. Quest 1440 +######*/ + +#define QUEST_RETURN_TO_VAHLARRIEL 1440 + +struct npc_dalindaAI : public npc_escortAI +{ + npc_dalindaAI(Creature* pCreature) : npc_escortAI(pCreature) { } + + void WaypointReached(uint32 i) + { + Player* pPlayer = GetPlayerForEscort(); + switch (i) + { + case 1: + me->IsStandState(); + break; + case 15: + if (pPlayer) + pPlayer->GroupEventHappens(QUEST_RETURN_TO_VAHLARRIEL, me); + break; + } + } + + void EnterCombat(Unit* pWho) { } + + void Reset() {} + + void JustDied(Unit* pKiller) + { + Player* pPlayer = GetPlayerForEscort(); + if (pPlayer) + pPlayer->FailQuest(QUEST_RETURN_TO_VAHLARRIEL); + return; + } + + void UpdateAI(const uint32 uiDiff) + { + npc_escortAI::UpdateAI(uiDiff); + if (!UpdateVictim()) + return; + DoMeleeAttackIfReady(); + } +}; + +CreatureAI* GetAI_npc_dalinda(Creature* pCreature) +{ + return new npc_dalindaAI(pCreature); +} + +bool QuestAccept_npc_dalinda(Player* pPlayer, Creature* pCreature, Quest const* quest) +{ + if (quest->GetQuestId() == QUEST_RETURN_TO_VAHLARRIEL) + { + if (npc_escortAI* pEscortAI = CAST_AI(npc_dalindaAI, pCreature->AI())) + { + pEscortAI->Start(true, false, pPlayer->GetGUID()); + pCreature->setFaction(113); + } + } + return true; +} + void AddSC_desolace() { Script *newscript; @@ -184,4 +249,11 @@ void AddSC_desolace() newscript->Name = "go_iruxos"; newscript->pGOHello = &GOHello_go_iruxos; newscript->RegisterSelf(); + + newscript = new Script; + newscript->Name = "npc_dalinda"; + newscript->GetAI = &GetAI_npc_dalinda; + newscript->pQuestAccept = &QuestAccept_npc_dalinda; + newscript->RegisterSelf(); + } |