From e65fae7bcd451a2f779c3a6097d0e072a673c384 Mon Sep 17 00:00:00 2001 From: Shauren Date: Wed, 12 Oct 2022 00:41:49 +0200 Subject: Scripts/Gossips: Set gossip menu id for scripts that load menu items from database (cherry picked from commit 900a2f6d88f7676f5053da33d80981297b07ccde) --- .../scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp | 7 +++++++ .../CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp | 8 ++++++++ .../CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp | 7 +++++++ src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp | 1 + src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp | 2 ++ src/server/scripts/Kalimdor/zone_silithus.cpp | 3 +++ src/server/scripts/Kalimdor/zone_thunder_bluff.cpp | 1 + 7 files changed, 29 insertions(+) (limited to 'src/server/scripts/Kalimdor') diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp index 961f17f10b1..9af92ab3caa 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp @@ -119,16 +119,19 @@ class npc_jaina_proudmoore : public CreatureScript uint32 AnetheronEncounter = instance->GetBossState(DATA_ANETHERON); if (RageEncounter != DONE && RageEncounter != IN_PROGRESS) { + InitGossipMenuFor(player, GOSSIP_ITEM_BEGIN_ALLY_MID); AddGossipItemFor(player, GOSSIP_ITEM_BEGIN_ALLY_MID, GOSSIP_ITEM_BEGIN_ALLY_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); SendGossipMenuFor(player, 9168, me->GetGUID()); } else if (RageEncounter == DONE && AnetheronEncounter != DONE && AnetheronEncounter != IN_PROGRESS) { + InitGossipMenuFor(player, GOSSIP_ITEM_ANETHERON_MID); AddGossipItemFor(player, GOSSIP_ITEM_ANETHERON_MID, GOSSIP_ITEM_ANETHERON_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); SendGossipMenuFor(player, 9380, me->GetGUID()); } else if (RageEncounter == DONE && AnetheronEncounter == DONE) { + InitGossipMenuFor(player, GOSSIP_ITEM_ALLY_RETREAT_MID); AddGossipItemFor(player, GOSSIP_ITEM_ALLY_RETREAT_MID, GOSSIP_ITEM_ALLY_RETREAT_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3); SendGossipMenuFor(player, 9387, me->GetGUID()); } @@ -202,16 +205,19 @@ class npc_thrall : public CreatureScript uint32 AzgalorEvent = instance->GetBossState(DATA_AZGALOR); if (KazrogalEvent != DONE && AzgalorEvent != IN_PROGRESS) { + InitGossipMenuFor(player, GOSSIP_ITEM_BEGIN_HORDE_MID); AddGossipItemFor(player, GOSSIP_ITEM_BEGIN_HORDE_MID, GOSSIP_ITEM_BEGIN_HORDE_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); SendGossipMenuFor(player, 9225, me->GetGUID()); } else if (KazrogalEvent == DONE && AzgalorEvent != DONE && AzgalorEvent != IN_PROGRESS) { + InitGossipMenuFor(player, GOSSIP_ITEM_AZGALOR_MID); AddGossipItemFor(player, GOSSIP_ITEM_AZGALOR_MID, GOSSIP_ITEM_AZGALOR_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); SendGossipMenuFor(player, 9396, me->GetGUID()); } else if (AzgalorEvent == DONE) { + InitGossipMenuFor(player, GOSSIP_ITEM_HORDE_RETREAT_MID); AddGossipItemFor(player, GOSSIP_ITEM_HORDE_RETREAT_MID, GOSSIP_ITEM_HORDE_RETREAT_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3); SendGossipMenuFor(player, 9398, me->GetGUID()); } @@ -260,6 +266,7 @@ class npc_tyrande_whisperwind : public CreatureScript bool OnGossipHello(Player* player) override { + InitGossipMenuFor(player, GOSSIP_ITEM_TYRANDE_MID); uint32 AzgalorEvent = instance->GetBossState(DATA_AZGALOR); // Only let them get item if Azgalor is dead. diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp index fa3b41dd071..f5372defb0c 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp @@ -305,6 +305,7 @@ class npc_chromie_start : public CreatureScript if (InstanceScript* instance = me->GetInstanceScript()) { + InitGossipMenuFor(player, GOSSIP_MENU_INITIAL); if (player->CanBeGameMaster()) // GM instance state override menu AddGossipItemFor(player, GossipOptionNpc::None, "[GM] Access instance control panel", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + GOSSIP_OFFSET_OPEN_GM_MENU); @@ -351,10 +352,12 @@ class npc_chromie_start : public CreatureScript switch (action - GOSSIP_ACTION_INFO_DEF) { case GOSSIP_OFFSET_EXPLAIN: + InitGossipMenuFor(player, GOSSIP_MENU_EXPLAIN_1); AddGossipItemFor(player, GOSSIP_MENU_EXPLAIN_1, GOSSIP_OPTION_EXPLAIN_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + GOSSIP_OFFSET_EXPLAIN_1); SendGossipMenuFor(player, GOSSIP_TEXT_EXPLAIN_1, me->GetGUID()); break; case GOSSIP_OFFSET_SKIP: + InitGossipMenuFor(player, GOSSIP_MENU_SKIP_1); AddGossipItemFor(player, GOSSIP_MENU_SKIP_1, GOSSIP_OPTION_SKIP_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + GOSSIP_OFFSET_SKIP_1); SendGossipMenuFor(player, GOSSIP_TEXT_SKIP_1, me->GetGUID()); break; @@ -366,6 +369,7 @@ class npc_chromie_start : public CreatureScript me->CastSpell(player, SPELL_TELEPORT_PLAYER); break; case GOSSIP_OFFSET_EXPLAIN_1: + InitGossipMenuFor(player, GOSSIP_MENU_EXPLAIN_2); AddGossipItemFor(player, GOSSIP_MENU_EXPLAIN_2, GOSSIP_OPTION_EXPLAIN_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + GOSSIP_OFFSET_EXPLAIN_2); SendGossipMenuFor(player, GOSSIP_TEXT_EXPLAIN_2, me->GetGUID()); break; @@ -506,6 +510,7 @@ class npc_chromie_middle : public CreatureScript bool OnGossipHello(Player* player) override { + InitGossipMenuFor(player, GOSSIP_MENU_STEP1); if (me->IsQuestGiver()) player->PrepareQuestMenu(me->GetGUID()); @@ -522,14 +527,17 @@ class npc_chromie_middle : public CreatureScript switch (action - GOSSIP_ACTION_INFO_DEF) { case GOSSIP_OFFSET_STEP1: + InitGossipMenuFor(player, GOSSIP_MENU_STEP2); AddGossipItemFor(player, GOSSIP_MENU_STEP2, GOSSIP_OPTION_STEP2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + GOSSIP_OFFSET_STEP2); SendGossipMenuFor(player, GOSSIP_TEXT_STEP2, me->GetGUID()); break; case GOSSIP_OFFSET_STEP2: + InitGossipMenuFor(player, GOSSIP_MENU_STEP3); AddGossipItemFor(player, GOSSIP_MENU_STEP3, GOSSIP_OPTION_STEP3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + GOSSIP_OFFSET_STEP3); SendGossipMenuFor(player, GOSSIP_TEXT_STEP3, me->GetGUID()); break; case GOSSIP_OFFSET_STEP3: + InitGossipMenuFor(player, GOSSIP_MENU_STEP4); SendGossipMenuFor(player, GOSSIP_TEXT_STEP4, me->GetGUID()); AdvanceDungeon(player); break; diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp index ef1b1377458..f6a33f0c303 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp @@ -84,6 +84,7 @@ struct npc_erozion : public ScriptedAI bool OnGossipHello(Player* player) override { + InitGossipMenuFor(player, GOSSIP_MENU_EROZION); if (me->IsQuestGiver()) player->PrepareQuestMenu(me->GetGUID()); @@ -512,6 +513,7 @@ struct npc_thrall_old_hillsbrad : public EscortAI break; case GOSSIP_ACTION_INFO_DEF + 2: + InitGossipMenuFor(player, GOSSIP_ITEM_SKARLOC2_MID); AddGossipItemFor(player, GOSSIP_ITEM_SKARLOC2_MID, GOSSIP_ITEM_DEFAULT_OP, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 20); SendGossipMenuFor(player, GOSSIP_ID_SKARLOC2, me->GetGUID()); break; @@ -543,18 +545,21 @@ struct npc_thrall_old_hillsbrad : public EscortAI if (instance->GetBossState(DATA_LIEUTENANT_DRAKE) == DONE && instance->GetData(TYPE_THRALL_EVENT) == OH_ESCORT_PRISON_TO_SKARLOC) { + InitGossipMenuFor(player, GOSSIP_ITEM_WALKING_MID); AddGossipItemFor(player, GOSSIP_ITEM_WALKING_MID, GOSSIP_ITEM_DEFAULT_OP, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); SendGossipMenuFor(player, GOSSIP_ID_START, me->GetGUID()); } if (instance->GetData(TYPE_THRALL_EVENT) == OH_ESCORT_HORSE_RIDE) { + InitGossipMenuFor(player, GOSSIP_ITEM_SKARLOC1_MID); AddGossipItemFor(player, GOSSIP_ITEM_SKARLOC1_MID, GOSSIP_ITEM_DEFAULT_OP, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); SendGossipMenuFor(player, GOSSIP_ID_SKARLOC1, me->GetGUID()); } if (instance->GetData(TYPE_THRALL_EVENT) == OH_ESCORT_BARN_TO_TARETHA) { + InitGossipMenuFor(player, GOSSIP_ITEM_TARREN_MID); AddGossipItemFor(player, GOSSIP_ITEM_TARREN_MID, GOSSIP_ITEM_DEFAULT_OP, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3); SendGossipMenuFor(player, GOSSIP_ID_TARREN, me->GetGUID()); } @@ -607,6 +612,7 @@ struct npc_taretha : public EscortAI if (action == GOSSIP_ACTION_INFO_DEF + 1) { + InitGossipMenuFor(player, GOSSIP_ITEM_EPOCH2_MID); AddGossipItemFor(player, GOSSIP_ITEM_EPOCH2_MID, GOSSIP_ITEM_EPOCH2_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); SendGossipMenuFor(player, GOSSIP_ID_EPOCH2, me->GetGUID()); } @@ -629,6 +635,7 @@ struct npc_taretha : public EscortAI { if (instance->GetData(TYPE_THRALL_EVENT) == OH_ESCORT_EPOCH_HUNTER && instance->GetBossState(DATA_EPOCH_HUNTER) != DONE) { + InitGossipMenuFor(player, GOSSIP_ITEM_EPOCH1_MID); AddGossipItemFor(player, GOSSIP_ITEM_EPOCH1_MID, GOSSIP_ITEM_EPOCH1_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); SendGossipMenuFor(player, GOSSIP_ID_EPOCH1, me->GetGUID()); } diff --git a/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp b/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp index 0f75d149003..6355a9a2133 100644 --- a/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp +++ b/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp @@ -348,6 +348,7 @@ public: if ((instance->GetData(TYPE_LORD_COBRAHN) == DONE) && (instance->GetData(TYPE_LORD_PYTHAS) == DONE) && (instance->GetData(TYPE_LADY_ANACONDRA) == DONE) && (instance->GetData(TYPE_LORD_SERPENTIS) == DONE)) { + InitGossipMenuFor(player, GOSSIP_OPTION_LET_EVENT_BEGIN); AddGossipItemFor(player, GOSSIP_OPTION_LET_EVENT_BEGIN, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); SendGossipMenuFor(player, NPC_TEXT_FANGLORDS_ARE_DEAD, me->GetGUID()); diff --git a/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp b/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp index 96aedc468ac..e4584437b48 100644 --- a/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp +++ b/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp @@ -179,6 +179,7 @@ public: bool OnGossipHello(Player* player) override { + InitGossipMenuFor(player, GOSSIP_BLY_MID); if (instance->GetData(EVENT_PYRAMID) == PYRAMID_KILLED_ALL_TROLLS) { AddGossipItemFor(player, GOSSIP_BLY_MID, GOSSIP_BLY_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); @@ -374,6 +375,7 @@ public: bool OnGossipHello(Player* player) override { + InitGossipMenuFor(player, GOSSIP_WEEGLI_MID); switch (instance->GetData(EVENT_PYRAMID)) { case PYRAMID_KILLED_ALL_TROLLS: diff --git a/src/server/scripts/Kalimdor/zone_silithus.cpp b/src/server/scripts/Kalimdor/zone_silithus.cpp index 38ca6f735b7..8f72488bd3f 100644 --- a/src/server/scripts/Kalimdor/zone_silithus.cpp +++ b/src/server/scripts/Kalimdor/zone_silithus.cpp @@ -1231,6 +1231,7 @@ class go_wind_stone : public GameObjectScript { case GOSSIP_ID_LESSER_WS: { + InitGossipMenuFor(player, GOSSIP_ID_LESSER_WS); if (rank >= 1) // 1 or 2 or 3 AddGossipItemFor(player, GOSSIP_ID_LESSER_WS, OPTION_ID_WS_RANDOM, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); else @@ -1252,6 +1253,7 @@ class go_wind_stone : public GameObjectScript } case GOSSIP_ID_WIND_STONE: { + InitGossipMenuFor(player, GOSSIP_ID_WIND_STONE); if (rank >= 2) // 2 or 3 AddGossipItemFor(player, GOSSIP_ID_WIND_STONE, OPTION_ID_WS_RANDOM, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6); else @@ -1273,6 +1275,7 @@ class go_wind_stone : public GameObjectScript } case GOSSIP_ID_GREATER_WS: { + InitGossipMenuFor(player, GOSSIP_ID_GREATER_WS); if (rank == 3) // 3 AddGossipItemFor(player, GOSSIP_ID_GREATER_WS, OPTION_ID_WS_RANDOM, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11); else diff --git a/src/server/scripts/Kalimdor/zone_thunder_bluff.cpp b/src/server/scripts/Kalimdor/zone_thunder_bluff.cpp index ba842f5f9ad..f6fd975dc62 100644 --- a/src/server/scripts/Kalimdor/zone_thunder_bluff.cpp +++ b/src/server/scripts/Kalimdor/zone_thunder_bluff.cpp @@ -142,6 +142,7 @@ public: bool OnGossipHello(Player* player) override { + InitGossipMenuFor(player, GOSSIP_MENU_HCB); if (me->IsQuestGiver()) player->PrepareQuestMenu(me->GetGUID()); -- cgit v1.2.3