diff options
author | Nyeriah <sarah.trysan@live.com> | 2014-10-20 13:30:57 -0200 |
---|---|---|
committer | Nyeriah <sarah.trysan@live.com> | 2014-10-20 13:30:57 -0200 |
commit | 22f218540bedbe43fd5fefb049561dbeccddc6c5 (patch) | |
tree | 994af5b07b68dec14346f9a740667200ee35b9dc /src | |
parent | f4c035554fdc25d286ddc37c24e3ab43c71f1dae (diff) |
Scripts/ScarletMonastery: Summon the Headless Horseman once the Call the Headless Horseman is quest complete
By @cr4st
Closes #13273
Diffstat (limited to 'src')
-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 58165df48ef..ac7f4c0aad4 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; } }; |