diff options
author | lee <leelf_00@126.com> | 2022-04-08 09:43:57 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-08 04:43:57 +0300 |
commit | 5a20861565c6de3ed0312bb82fbf5bb048f0f8f4 (patch) | |
tree | 77a486f5d85b02d3331640a504487aa7c34b53f9 /src | |
parent | f02b70860fcefb4902b910aac12cef683451496e (diff) |
Scripts/Misc: Load gossip options from DB (#27892)
Diffstat (limited to 'src')
4 files changed, 43 insertions, 56 deletions
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp index 2fdd7623839..d53c63a3acd 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.cpp @@ -56,12 +56,6 @@ enum EventIds EVENT_KALECGOS_LANDING = 2 }; -#define GOSSIP_ITEM_KAEL_1 "Who are you?" -#define GOSSIP_ITEM_KAEL_2 "What can we do to assist you?" -#define GOSSIP_ITEM_KAEL_3 "What brings you to the Sunwell?" -#define GOSSIP_ITEM_KAEL_4 "You're not alone here?" -#define GOSSIP_ITEM_KAEL_5 "What would Kil'jaeden want with a mortal woman?" - class npc_kalecgos : public CreatureScript { public: @@ -107,47 +101,6 @@ public: } } - bool OnGossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override - { - uint32 const action = player->PlayerTalkClass->GetGossipOptionAction(gossipListId); - ClearGossipMenuFor(player); - switch (action) - { - case GOSSIP_ACTION_INFO_DEF: - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KAEL_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); - SendGossipMenuFor(player, 12500, me->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF + 1: - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KAEL_3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); - SendGossipMenuFor(player, 12502, me->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF + 2: - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KAEL_4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3); - SendGossipMenuFor(player, 12606, me->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF + 3: - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KAEL_5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4); - SendGossipMenuFor(player, 12607, me->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF + 4: - SendGossipMenuFor(player, 12608, me->GetGUID()); - break; - } - - return true; - } - - bool OnGossipHello(Player* player) override - { - if (me->IsQuestGiver()) - player->PrepareQuestMenu(me->GetGUID()); - - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KAEL_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF); - SendGossipMenuFor(player, 12498, me->GetGUID()); - - return true; - } - private: EventMap events; }; diff --git a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp index d680e0b7c55..aa615c6c3c5 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp @@ -40,11 +40,26 @@ EndContentData */ ## npc_zulaman_hostage ######*/ -#define GOSSIP_HOSTAGE1 "I am glad to help you." - static uint32 const HostageEntry[] = {23790, 23999, 24024, 24001}; static uint32 const ChestEntry[] = {186648, 187021, 186672, 186667}; +enum Npcs +{ + NPC_TANZAR = 23790, + NPC_HARKOR = 23999, + NPC_ASHLI = 24001, + NPC_KRAZ = 24024 +}; + +enum Gossips +{ + GOSSIP_MENU_TANZAR = 8799, + GOSSIP_MENU_HARKOR = 8874, + GOSSIP_MENU_ASHLI = 8927, + GOSSIP_MENU_KRAZ = 8881, + GOSSIP_OPTION_HOSTAGE = 0 +}; + class npc_zulaman_hostage : public CreatureScript { public: @@ -58,7 +73,21 @@ class npc_zulaman_hostage : public CreatureScript bool OnGossipHello(Player* player) override { - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_HOSTAGE1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); + switch (me->GetEntry()) + { + case NPC_TANZAR: + AddGossipItemFor(player, GOSSIP_MENU_TANZAR, GOSSIP_OPTION_HOSTAGE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); + break; + case NPC_HARKOR: + AddGossipItemFor(player, GOSSIP_MENU_HARKOR, GOSSIP_OPTION_HOSTAGE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); + break; + case NPC_ASHLI: + AddGossipItemFor(player, GOSSIP_MENU_ASHLI, GOSSIP_OPTION_HOSTAGE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); + break; + case NPC_KRAZ: + AddGossipItemFor(player, GOSSIP_MENU_KRAZ, GOSSIP_OPTION_HOSTAGE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); + break; + } SendGossipMenuFor(player, player->GetGossipTextId(me), me->GetGUID()); return true; } diff --git a/src/server/scripts/Kalimdor/zone_azshara.cpp b/src/server/scripts/Kalimdor/zone_azshara.cpp index d75840e81fc..907b469d3de 100644 --- a/src/server/scripts/Kalimdor/zone_azshara.cpp +++ b/src/server/scripts/Kalimdor/zone_azshara.cpp @@ -43,11 +43,11 @@ enum RizzleSprysprocketData SAY_RIZZLE_START = 0, SAY_RIZZLE_GRENADE = 1, SAY_RIZZLE_FINAL = 2, - MSG_ESCAPE_NOTICE = 3 + MSG_ESCAPE_NOTICE = 3, + GOSSIP_MENU_GET_MOONSTONE = 57025, + GOSSIP_OPTION_GET_MOONSTONE = 0 }; -#define GOSSIP_GET_MOONSTONE "Hand over the Southfury moonstone and I'll let you go." - Position const WPs[58] = { {3691.97f, -3962.41f, 35.9118f, 3.67f}, @@ -284,7 +284,7 @@ public: { if (player->GetQuestStatus(QUEST_CHASING_THE_MOONSTONE) != QUEST_STATUS_INCOMPLETE) return true; - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_GET_MOONSTONE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); + AddGossipItemFor(player, GOSSIP_MENU_GET_MOONSTONE, GOSSIP_OPTION_GET_MOONSTONE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); SendGossipMenuFor(player, 10811, me->GetGUID()); return true; } diff --git a/src/server/scripts/Kalimdor/zone_thunder_bluff.cpp b/src/server/scripts/Kalimdor/zone_thunder_bluff.cpp index c1c55e3ccdf..ba842f5f9ad 100644 --- a/src/server/scripts/Kalimdor/zone_thunder_bluff.cpp +++ b/src/server/scripts/Kalimdor/zone_thunder_bluff.cpp @@ -45,7 +45,12 @@ enum Sounds SOUND_AGGRO = 5884 }; -#define GOSSIP_HCB "I know this is rather silly but a young ward who is a bit shy would like your hoofprint." +enum Gossips +{ + GOSSIP_MENU_HCB = 5851, + GOSSIP_OPTION_HCB = 0 +}; + /// @todo verify abilities/timers class npc_cairne_bloodhoof : public CreatureScript { @@ -141,7 +146,7 @@ public: player->PrepareQuestMenu(me->GetGUID()); if (player->GetQuestStatus(925) == QUEST_STATUS_INCOMPLETE) - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_HCB, GOSSIP_SENDER_MAIN, GOSSIP_SENDER_INFO); + AddGossipItemFor(player, GOSSIP_MENU_HCB, GOSSIP_OPTION_HCB, GOSSIP_SENDER_MAIN, GOSSIP_SENDER_INFO); SendGossipMenuFor(player, 7013, me->GetGUID()); |