diff options
author | Shauren <shauren.trinity@gmail.com> | 2022-10-12 00:41:49 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-10-12 00:41:49 +0200 |
commit | 900a2f6d88f7676f5053da33d80981297b07ccde (patch) | |
tree | 07e5fd72a7ea1f26999a1743c281fc6d335efac7 /src | |
parent | 81bf8de9895e050d5800a8a37316c0e6874b5e40 (diff) |
Scripts/Gossips: Set gossip menu id for scripts that load menu items from database
Diffstat (limited to 'src')
22 files changed, 72 insertions, 3 deletions
diff --git a/src/server/game/AI/ScriptedAI/ScriptedGossip.cpp b/src/server/game/AI/ScriptedAI/ScriptedGossip.cpp index 86131b2c10b..e60b74b17e1 100644 --- a/src/server/game/AI/ScriptedAI/ScriptedGossip.cpp +++ b/src/server/game/AI/ScriptedAI/ScriptedGossip.cpp @@ -29,6 +29,11 @@ uint32 GetGossipActionFor(Player* player, uint32 gossipListId) return player->PlayerTalkClass->GetGossipOptionAction(gossipListId); } +void InitGossipMenuFor(Player* player, uint32 menuId) +{ + player->PlayerTalkClass->GetGossipMenu().SetMenuId(menuId); +} + void ClearGossipMenuFor(Player* player) { player->PlayerTalkClass->ClearMenus(); diff --git a/src/server/game/AI/ScriptedAI/ScriptedGossip.h b/src/server/game/AI/ScriptedAI/ScriptedGossip.h index a7b3c6c1212..4dab95bbe55 100644 --- a/src/server/game/AI/ScriptedAI/ScriptedGossip.h +++ b/src/server/game/AI/ScriptedAI/ScriptedGossip.h @@ -83,6 +83,7 @@ class Creature; uint32 TC_GAME_API GetGossipSenderFor(Player* player, uint32 menuId); uint32 TC_GAME_API GetGossipActionFor(Player* player, uint32 gossipListId); +void TC_GAME_API InitGossipMenuFor(Player* player, uint32 menuId); void TC_GAME_API ClearGossipMenuFor(Player* player); // Using provided text, not from DB void TC_GAME_API AddGossipItemFor(Player* player, GossipOptionIcon icon, std::string const& text, uint32 sender, uint32 action); diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp index 585b39210c3..34c5ac42b81 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp @@ -468,6 +468,7 @@ class npc_lokhtos_darkbargainer : public CreatureScript bool OnGossipHello(Player* player) override { + InitGossipMenuFor(player, GOSSIP_ITEM_SHOW_ACCESS_MID); if (me->IsQuestGiver()) player->PrepareQuestMenu(me->GetGUID()); diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp index 7641143d621..2ffc71b8b93 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp @@ -237,6 +237,7 @@ class boss_doomrel : public CreatureScript switch (action) { case GOSSIP_ACTION_INFO_DEF + 1: + InitGossipMenuFor(player, GOSSIP_SELECT_DOOMREL); AddGossipItemFor(player, GOSSIP_SELECT_DOOMREL, GOSSIP_MENU_ID_CONTINUE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); SendGossipMenuFor(player, 2605, me->GetGUID()); break; @@ -255,6 +256,7 @@ class boss_doomrel : public CreatureScript bool OnGossipHello(Player* player) override { + InitGossipMenuFor(player, GOSSIP_MENU_CHALLENGE); AddGossipItemFor(player, GOSSIP_MENU_CHALLENGE, GOSSIP_MENU_ID_CHALLENGE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); SendGossipMenuFor(player, 2601, me->GetGUID()); diff --git a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp index 206c8b2646e..5b8105b95d4 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp @@ -340,6 +340,7 @@ public: switch (action) { case GOSSIP_ACTION_INFO_DEF + 1: + InitGossipMenuFor(player, OZ_GOSSIP2_MID); AddGossipItemFor(player, OZ_GOSSIP2_MID, OZ_GOSSIP2_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); SendGossipMenuFor(player, 8971, me->GetGUID()); break; @@ -370,6 +371,7 @@ public: bool OnGossipHello(Player* player) override { + InitGossipMenuFor(player, OZ_GOSSIP1_MID); // Check for death of Moroes and if opera event is not done already if (instance->GetBossState(DATA_MOROES) == DONE && instance->GetBossState(DATA_OPERA_PERFORMANCE) != DONE) { diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp index 5b3c94ea729..d87d2aa17dc 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp @@ -673,6 +673,8 @@ public: bool OnGossipHello(Player* player) override { + uint32 gossipMenuId = Player::GetDefaultGossipMenuForSource(me); + InitGossipMenuFor(player, gossipMenuId); if (player->GetQuestStatus(QUEST_DEATH_CHALLENGE) == QUEST_STATUS_INCOMPLETE && me->IsFullHealth()) { if (player->HealthBelowPct(10)) @@ -681,7 +683,7 @@ public: if (player->IsInCombat() || me->IsInCombat()) return true; - AddGossipItemFor(player, Player::GetDefaultGossipMenuForSource(me), 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF); + AddGossipItemFor(player, gossipMenuId, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF); SendGossipMenuFor(player, player->GetGossipTextId(me), me->GetGUID()); } return true; diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp index 79fc776c973..2abb36047e6 100644 --- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp +++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp @@ -125,8 +125,10 @@ public: bool OnGossipHello(Player* player) override { + uint32 gossipMenuId = Player::GetDefaultGossipMenuForSource(me); + InitGossipMenuFor(player, gossipMenuId); if (instance->GetData(TYPE_FREE_NPC) != DONE && instance->GetData(TYPE_RETHILGORE) == DONE) - AddGossipItemFor(player, Player::GetDefaultGossipMenuForSource(me), 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); + AddGossipItemFor(player, gossipMenuId, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); SendGossipMenuFor(player, player->GetGossipTextId(me), me->GetGUID()); return true; diff --git a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp index aa615c6c3c5..ec37f0388ac 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp @@ -76,15 +76,19 @@ class npc_zulaman_hostage : public CreatureScript switch (me->GetEntry()) { case NPC_TANZAR: + InitGossipMenuFor(player, GOSSIP_MENU_TANZAR); AddGossipItemFor(player, GOSSIP_MENU_TANZAR, GOSSIP_OPTION_HOSTAGE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); break; case NPC_HARKOR: + InitGossipMenuFor(player, GOSSIP_MENU_HARKOR); AddGossipItemFor(player, GOSSIP_MENU_HARKOR, GOSSIP_OPTION_HOSTAGE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); break; case NPC_ASHLI: + InitGossipMenuFor(player, GOSSIP_MENU_ASHLI); AddGossipItemFor(player, GOSSIP_MENU_ASHLI, GOSSIP_OPTION_HOSTAGE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); break; case NPC_KRAZ: + InitGossipMenuFor(player, GOSSIP_MENU_KRAZ); AddGossipItemFor(player, GOSSIP_MENU_KRAZ, GOSSIP_OPTION_HOSTAGE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); break; } diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp index 57c4983eb7a..e829453ea8c 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 49e8d584bb8..efbdd91ca8f 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp @@ -304,6 +304,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, GOSSIP_ICON_INTERACT_1, "[GM] Access instance control panel", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + GOSSIP_OFFSET_OPEN_GM_MENU); @@ -350,10 +351,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; @@ -365,6 +368,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; @@ -505,6 +509,7 @@ class npc_chromie_middle : public CreatureScript bool OnGossipHello(Player* player) override { + InitGossipMenuFor(player, GOSSIP_MENU_STEP1); if (me->IsQuestGiver()) player->PrepareQuestMenu(me->GetGUID()); @@ -521,14 +526,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 43e28614c3b..03d392dd2f4 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 0865cc0e48f..9904d9e030a 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_azshara.cpp b/src/server/scripts/Kalimdor/zone_azshara.cpp index 907b469d3de..7114c620d09 100644 --- a/src/server/scripts/Kalimdor/zone_azshara.cpp +++ b/src/server/scripts/Kalimdor/zone_azshara.cpp @@ -282,6 +282,7 @@ public: bool OnGossipHello(Player* player) override { + InitGossipMenuFor(player, GOSSIP_MENU_GET_MOONSTONE); if (player->GetQuestStatus(QUEST_CHASING_THE_MOONSTONE) != QUEST_STATUS_INCOMPLETE) return true; AddGossipItemFor(player, GOSSIP_MENU_GET_MOONSTONE, GOSSIP_OPTION_GET_MOONSTONE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); diff --git a/src/server/scripts/Kalimdor/zone_orgrimmar.cpp b/src/server/scripts/Kalimdor/zone_orgrimmar.cpp index 4c40bf54350..5ad228974b7 100644 --- a/src/server/scripts/Kalimdor/zone_orgrimmar.cpp +++ b/src/server/scripts/Kalimdor/zone_orgrimmar.cpp @@ -233,26 +233,32 @@ public: switch (action) { case GOSSIP_ACTION_INFO_DEF + 1: + InitGossipMenuFor(player, OPTION_WHAT_DISCOVERIES); AddGossipItemFor(player, OPTION_WHAT_DISCOVERIES, GOSSIP_MENU_OPTION_ID_ALL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); SendGossipMenuFor(player, GOSSIP_THE_SHATTERED_HAND, me->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF + 2: + InitGossipMenuFor(player, OPTION_USURPER); AddGossipItemFor(player, OPTION_USURPER, GOSSIP_MENU_OPTION_ID_ALL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3); SendGossipMenuFor(player, GOSSIP_IT_WOULD_APPEAR_AS, me->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF + 3: + InitGossipMenuFor(player, OPTION_WITH_ALL_DUE_RESPECT); AddGossipItemFor(player, OPTION_WITH_ALL_DUE_RESPECT, GOSSIP_MENU_OPTION_ID_ALL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4); SendGossipMenuFor(player, GOSSIP_THE_BROOD_MOTHER, me->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF + 4: + InitGossipMenuFor(player, OPTION_I_I_DID_NOT_THINK_OF); AddGossipItemFor(player, OPTION_I_I_DID_NOT_THINK_OF, GOSSIP_MENU_OPTION_ID_ALL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5); SendGossipMenuFor(player, GOSSIP_SO_MUCH_TO_LEARN, me->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF + 5: + InitGossipMenuFor(player, OPTION_I_LIVE_ONLY_TO_SERVE); AddGossipItemFor(player, OPTION_I_LIVE_ONLY_TO_SERVE, GOSSIP_MENU_OPTION_ID_ALL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6); SendGossipMenuFor(player, GOSSIP_I_DO_NOT_FAULT_YOU, me->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF + 6: + InitGossipMenuFor(player, OPTION_OF_COURSE_WARCHIEF); AddGossipItemFor(player, OPTION_OF_COURSE_WARCHIEF, GOSSIP_MENU_OPTION_ID_ALL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 7); SendGossipMenuFor(player, GOSSIP_NOW_PAY_ATTENTION, me->GetGUID()); break; @@ -266,6 +272,7 @@ public: bool OnGossipHello(Player* player) override { + InitGossipMenuFor(player, OPTION_PLEASE_SHARE_YOUR); if (me->IsQuestGiver()) player->PrepareQuestMenu(me->GetGUID()); diff --git a/src/server/scripts/Kalimdor/zone_silithus.cpp b/src/server/scripts/Kalimdor/zone_silithus.cpp index 6aa57bb75cc..cc96f07496a 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()); diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp index b34e27a9c7d..e3c4e1e6c61 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp @@ -467,11 +467,18 @@ public: instance->GetBossState(BOSS_ARGENT_CHALLENGE_E) == NOT_STARTED && instance->GetBossState(BOSS_ARGENT_CHALLENGE_P) == NOT_STARTED && instance->GetBossState(BOSS_BLACK_KNIGHT) == NOT_STARTED) + { + InitGossipMenuFor(player, GOSSIP_START_EVENT1_MID); AddGossipItemFor(player, GOSSIP_START_EVENT1_MID, GOSSIP_START_EVENT1_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); + SendGossipMenuFor(player, player->GetGossipTextId(GOSSIP_START_EVENT1_MID, me), me->GetGUID()); + } else + { + InitGossipMenuFor(player, GOSSIP_START_EVENT2_MID); AddGossipItemFor(player, GOSSIP_START_EVENT2_MID, GOSSIP_START_EVENT2_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); + SendGossipMenuFor(player, player->GetGossipTextId(GOSSIP_START_EVENT2_MID, me), me->GetGUID()); + } - SendGossipMenuFor(player, player->GetGossipTextId(me), me->GetGUID()); return true; } diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp index 80f35573d52..700a707fb13 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp @@ -689,6 +689,7 @@ struct npc_brann_hos : public EscortAI bool OnGossipHello(Player* player) override { + InitGossipMenuFor(player, GOSSIP_ITEM_START_MID); if (me->IsQuestGiver()) player->PrepareQuestMenu(me->GetGUID()); diff --git a/src/server/scripts/Northrend/zone_borean_tundra.cpp b/src/server/scripts/Northrend/zone_borean_tundra.cpp index bcb60113b41..11fe7a898b6 100644 --- a/src/server/scripts/Northrend/zone_borean_tundra.cpp +++ b/src/server/scripts/Northrend/zone_borean_tundra.cpp @@ -521,6 +521,7 @@ public: bool OnGossipHello(Player* player) override { + InitGossipMenuFor(player, GOSSIP_THASSARIAN_MENU); if (me->IsQuestGiver()) player->PrepareQuestMenu(me->GetGUID()); @@ -1289,6 +1290,7 @@ struct npc_hidden_cultist : public ScriptedAI return false; } + InitGossipMenuFor(player, charGossipItem); if (player->HasAura(SPELL_RIGHTEOUS_VISION) && player->GetQuestStatus(QUEST_THE_HUNT_IS_ON) == QUEST_STATUS_INCOMPLETE) AddGossipItemFor(player, charGossipItem, GOSSIP_ITEM_HIDDEN_CULTIST_OPTIONID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); diff --git a/src/server/scripts/World/npc_innkeeper.cpp b/src/server/scripts/World/npc_innkeeper.cpp index aeaecc9da91..e1a9a4da912 100644 --- a/src/server/scripts/World/npc_innkeeper.cpp +++ b/src/server/scripts/World/npc_innkeeper.cpp @@ -53,6 +53,7 @@ public: bool OnGossipHello(Player* player) override { + InitGossipMenuFor(player, NPC_GOSSIP_MENU); if (IsHolidayActive(HOLIDAY_HALLOWS_END) && !player->HasAura(SPELL_TRICK_OR_TREATED)) AddGossipItemFor(player, NPC_GOSSIP_MENU_EVENT, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp index f78f5e27727..069360bc77f 100644 --- a/src/server/scripts/World/npcs_special.cpp +++ b/src/server/scripts/World/npcs_special.cpp @@ -1636,6 +1636,7 @@ class npc_wormhole : public CreatureScript bool OnGossipHello(Player* player) override { + InitGossipMenuFor(player, MENU_ID_WORMHOLE); if (me->IsSummon()) { if (player == me->ToTempSummon()->GetSummoner()) @@ -1761,6 +1762,7 @@ public: bool OnGossipHello(Player* player) override { + InitGossipMenuFor(player, MENU_ID_XP_ON_OFF); if (player->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_NO_XP_GAIN)) // not gaining XP { AddGossipItemFor(player, MENU_ID_XP_ON_OFF, OPTION_ID_XP_ON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); |