diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Northrend/zone_howling_fjord.cpp | 117 |
1 files changed, 56 insertions, 61 deletions
diff --git a/src/server/scripts/Northrend/zone_howling_fjord.cpp b/src/server/scripts/Northrend/zone_howling_fjord.cpp index 71bbd6b23b3..4f3bf3cc932 100644 --- a/src/server/scripts/Northrend/zone_howling_fjord.cpp +++ b/src/server/scripts/Northrend/zone_howling_fjord.cpp @@ -252,82 +252,77 @@ public: ## npc_razael_and_lyana ######*/ -#define GOSSIP_RAZAEL_REPORT "High Executor Anselm wants a report on the situation." -#define GOSSIP_LYANA_REPORT "High Executor Anselm requests your report." - enum Razael { - QUEST_REPORTS_FROM_THE_FIELD = 11221, - NPC_RAZAEL = 23998, - NPC_LYANA = 23778, - GOSSIP_TEXTID_RAZAEL1 = 11562, - GOSSIP_TEXTID_RAZAEL2 = 11564, - GOSSIP_TEXTID_LYANA1 = 11586, - GOSSIP_TEXTID_LYANA2 = 11588 + QUEST_REPORTS_FROM_THE_FIELD = 11221, + + NPC_RAZAEL = 23998, + NPC_LYANA = 23778, + + GOSSIP_RAZAEL_REPORT = 8870, + GOSSIP_TEXTID_RAZAEL1 = 11562, + GOSSIP_TEXTID_RAZAEL2 = 11564, + + GOSSIP_LYANA_REPORT = 8879, + GOSSIP_TEXTID_LYANA1 = 11586, + GOSSIP_TEXTID_LYANA2 = 11588, + + GOSSIP_MENU_ID = 0 }; -class npc_razael_and_lyana : public CreatureScript +struct npc_razael_and_lyana : public ScriptedAI { -public: - npc_razael_and_lyana() : CreatureScript("npc_razael_and_lyana") { } - - struct npc_razael_and_lyanaAI : public ScriptedAI + npc_razael_and_lyana(Creature *creature) : ScriptedAI(creature) { - npc_razael_and_lyanaAI(Creature* creature) : ScriptedAI(creature) { } - - bool GossipHello(Player* player) override - { - if (me->IsQuestGiver()) - player->PrepareQuestMenu(me->GetGUID()); + } - if (player->GetQuestStatus(QUEST_REPORTS_FROM_THE_FIELD) == QUEST_STATUS_INCOMPLETE) - { - switch (me->GetEntry()) - { - case NPC_RAZAEL: - if (!player->GetReqKillOrCastCurrentCount(QUEST_REPORTS_FROM_THE_FIELD, NPC_RAZAEL)) - { - AddGossipItemFor(player, GossipOptionIcon::None, GOSSIP_RAZAEL_REPORT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); - SendGossipMenuFor(player, GOSSIP_TEXTID_RAZAEL1, me->GetGUID()); - return true; - } - break; - case NPC_LYANA: - if (!player->GetReqKillOrCastCurrentCount(QUEST_REPORTS_FROM_THE_FIELD, NPC_LYANA)) - { - AddGossipItemFor(player, GossipOptionIcon::None, GOSSIP_LYANA_REPORT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); - SendGossipMenuFor(player, GOSSIP_TEXTID_LYANA1, me->GetGUID()); - return true; - } - break; - } - } - SendGossipMenuFor(player, player->GetGossipTextId(me), me->GetGUID()); - return true; - } + bool GossipHello(Player* player) override + { + if (me->IsQuestGiver()) + player->PrepareQuestMenu(me->GetGUID()); - bool GossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override + if (player->GetQuestStatus(QUEST_REPORTS_FROM_THE_FIELD) == QUEST_STATUS_INCOMPLETE) { - uint32 const action = player->PlayerTalkClass->GetGossipOptionAction(gossipListId); - ClearGossipMenuFor(player); - switch (action) + switch (me->GetEntry()) { - case GOSSIP_ACTION_INFO_DEF + 1: - SendGossipMenuFor(player, GOSSIP_TEXTID_RAZAEL2, me->GetGUID()); - player->TalkedToCreature(NPC_RAZAEL, me->GetGUID()); + case NPC_RAZAEL: + if (!player->GetReqKillOrCastCurrentCount(QUEST_REPORTS_FROM_THE_FIELD, NPC_RAZAEL)) + { + AddGossipItemFor(player, GOSSIP_RAZAEL_REPORT, GOSSIP_MENU_ID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); + SendGossipMenuFor(player, GOSSIP_TEXTID_RAZAEL1, me->GetGUID()); + return true; + } break; - case GOSSIP_ACTION_INFO_DEF + 2: - SendGossipMenuFor(player, GOSSIP_TEXTID_LYANA2, me->GetGUID()); - player->TalkedToCreature(NPC_LYANA, me->GetGUID()); + case NPC_LYANA: + if (!player->GetReqKillOrCastCurrentCount(QUEST_REPORTS_FROM_THE_FIELD, NPC_LYANA)) + { + AddGossipItemFor(player, GOSSIP_LYANA_REPORT, GOSSIP_MENU_ID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); + SendGossipMenuFor(player, GOSSIP_TEXTID_LYANA1, me->GetGUID()); + return true; + } break; } - return true; } - }; + SendGossipMenuFor(player, player->GetGossipTextId(me), me->GetGUID()); + return true; + } - CreatureAI* GetAI(Creature* creature) const override + bool GossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override { - return new npc_razael_and_lyanaAI(creature); + uint32 const action = player->PlayerTalkClass->GetGossipOptionAction(gossipListId); + ClearGossipMenuFor(player); + switch (action) + { + case GOSSIP_ACTION_INFO_DEF + 1: + SendGossipMenuFor(player, GOSSIP_TEXTID_RAZAEL2, me->GetGUID()); + player->TalkedToCreature(NPC_RAZAEL, me->GetGUID()); + break; + case GOSSIP_ACTION_INFO_DEF + 2: + SendGossipMenuFor(player, GOSSIP_TEXTID_LYANA2, me->GetGUID()); + player->TalkedToCreature(NPC_LYANA, me->GetGUID()); + break; + } + return true; } }; @@ -669,7 +664,7 @@ public: void AddSC_howling_fjord() { new npc_apothecary_hanes(); - new npc_razael_and_lyana(); + RegisterCreatureAI(npc_razael_and_lyana); RegisterCreatureAI(npc_daegarn); new npc_mindless_abomination(); new spell_mindless_abomination_explosion_fx_master(); |