diff options
author | Nyeriah <sarah.trysan@live.com> | 2014-10-20 13:30:57 -0200 |
---|---|---|
committer | DDuarte <dnpd.dd@gmail.com> | 2014-10-23 01:32:58 +0100 |
commit | 7bbc3a8a98d4b08d1d0adc28973e03cd37d13a19 (patch) | |
tree | 1797338e69cef5d086777b697bcab97ab411f7fe | |
parent | 1e5336e30ea9b6a61baf7fc18149a4a173000b89 (diff) |
Scripts/ScarletMonastery: Summon the Headless Horseman once the Call the Headless Horseman is quest complete
By @cr4st
Closes #13273
(cherry picked from commit 22f218540bedbe43fd5fefb049561dbeccddc6c5)
-rw-r--r-- | src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp index 0b1292e6aae..6ea3232084f 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp @@ -882,34 +882,37 @@ public: }; }; +enum LooselyTurnedSoil +{ + QUEST_CALL_THE_HEADLESS_HORSEMAN = 11405 +}; + class go_loosely_turned_soil : public GameObjectScript { public: go_loosely_turned_soil() : GameObjectScript("go_loosely_turned_soil") { } - bool OnGossipHello(Player* player, GameObject* soil) override + bool OnGossipHello(Player* player, GameObject* go) override { - InstanceScript* instance = player->GetInstanceScript(); - if (instance) - { - if (instance->GetBossState(DATA_HORSEMAN_EVENT) != NOT_STARTED) + if (InstanceScript* instance = player->GetInstanceScript()) + if (instance->GetBossState(DATA_HORSEMAN_EVENT) == IN_PROGRESS || player->GetQuestStatus(QUEST_CALL_THE_HEADLESS_HORSEMAN) != QUEST_STATUS_COMPLETE) return true; - instance->SetBossState(DATA_HORSEMAN_EVENT, IN_PROGRESS); - } - /* if (soil->GetGoType() == GAMEOBJECT_TYPE_QUESTGIVER && player->getLevel() > 64) - { - player->PrepareQuestMenu(soil->GetGUID()); - player->SendPreparedQuest(soil->GetGUID()); - } - if (player->GetQuestStatus(11405) == QUEST_STATUS_INCOMPLETE && player->getLevel() > 64) - { */ + + return false; + } + + bool OnQuestReward(Player* player, GameObject* go, Quest const* /*quest*/, uint32 /*opt*/) override + { + if (InstanceScript* instance = go->GetInstanceScript()) + if (instance->GetBossState(DATA_HORSEMAN_EVENT) == IN_PROGRESS) + return false; + player->AreaExploredOrEventHappens(11405); - if (Creature* horseman = soil->SummonCreature(HH_MOUNTED, FlightPoint[20].x, FlightPoint[20].y, FlightPoint[20].z, 0, TEMPSUMMON_MANUAL_DESPAWN, 0)) + if (Creature* horseman = go->SummonCreature(HH_MOUNTED, FlightPoint[20].x, FlightPoint[20].y, FlightPoint[20].z, 0, TEMPSUMMON_MANUAL_DESPAWN, 0)) { ENSURE_AI(boss_headless_horseman::boss_headless_horsemanAI, horseman->AI())->PlayerGUID = player->GetGUID(); ENSURE_AI(boss_headless_horseman::boss_headless_horsemanAI, horseman->AI())->FlyMode(); } - //} return true; } }; |