From 945d7c6afef52bfdc677d3b06b1b4c27e5d86ef1 Mon Sep 17 00:00:00 2001 From: podmepodme <57728656+podmepodme@users.noreply.github.com> Date: Sun, 22 Oct 2023 03:16:51 +0200 Subject: [PATCH] fix(Script/Misc): Replace hardcoded gossip and texts with DB ones. (#17502) * fix(CORE/Creature): replace shadowmoon valley hardcoded gossips * fix(CORE/GameObject): replace terokkar forrest hardcoded gossips * fix(Core/Creature): replace shattrath city hardcoded gossips * style(Core): code style edit * style(CORE) codestyle edit * style(CORE) codestyle edit * style(CORE): codestyle edit * ready for merge --------- Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com> --- .../scripts/Kalimdor/zone_orgrimmar.cpp | 5 +- .../Outland/zone_shadowmoon_valley.cpp | 36 ++++++++---- .../scripts/Outland/zone_shattrath_city.cpp | 10 +++- .../scripts/Outland/zone_terokkar_forest.cpp | 56 ++++++++++++------- 4 files changed, 70 insertions(+), 37 deletions(-) diff --git a/src/server/scripts/Kalimdor/zone_orgrimmar.cpp b/src/server/scripts/Kalimdor/zone_orgrimmar.cpp index 0f9f3dbd7..d4ecb8cad 100644 --- a/src/server/scripts/Kalimdor/zone_orgrimmar.cpp +++ b/src/server/scripts/Kalimdor/zone_orgrimmar.cpp @@ -157,7 +157,6 @@ enum ThrallWarchief : uint32 QUEST_WHAT_THE_WIND_CARRIES = 6566, GOSSIP_MENU_THRALL = 3664, GOSSIP_RESPONSE_THRALL_FIRST = 5733, - GOSSIP_OPTION_DEFAULT = 0 }; const Position heraldOfThrallPos = { -462.404f, -2637.68f, 96.0656f, 5.8606f }; @@ -179,7 +178,7 @@ public: uint32 NextAction = GOSSIP_ACTION_INFO_DEF + DiscussionOrder + 1; uint32 GossipResponse = GOSSIP_RESPONSE_THRALL_FIRST + DiscussionOrder - 1; - AddGossipItemFor(player, GOSSIP_MENU_THRALL + DiscussionOrder, GOSSIP_OPTION_DEFAULT, GOSSIP_SENDER_MAIN, NextAction); + AddGossipItemFor(player, GOSSIP_MENU_THRALL + DiscussionOrder, 0, GOSSIP_SENDER_MAIN, NextAction); SendGossipMenuFor(player, GossipResponse, creature->GetGUID()); } else if (DiscussionOrder == 7) @@ -200,7 +199,7 @@ public: if (player->GetQuestStatus(QUEST_WHAT_THE_WIND_CARRIES) == QUEST_STATUS_INCOMPLETE) { - AddGossipItemFor(player, GOSSIP_MENU_THRALL, GOSSIP_OPTION_DEFAULT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); + AddGossipItemFor(player, GOSSIP_MENU_THRALL, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); } SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID()); diff --git a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp index 00e2b6619..164a5513f 100644 --- a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp +++ b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp @@ -731,8 +731,19 @@ public: ## npc_flanis_swiftwing_and_kagrosh ######*/ -#define GOSSIP_HSK1 "Take Flanis's Pack" -#define GOSSIP_HSK2 "Take Kagrosh's Pack" +enum Flanis : uint32 +{ + QUEST_THE_FATE_OF_FLANIS = 10583, + ITEM_FLAUNISS_PACK = 30658, + GOSSIP_MENU_FLANIS = 8356, +}; + +enum Kagrosh : uint32 +{ + QUEST_THE_FATE_OF_KAGROSH = 10601, + ITEM_KAGROSHS_PACK = 30659, + GOSSIP_MENU_KAGROSH = 8371, +}; class npcs_flanis_swiftwing_and_kagrosh : public CreatureScript { @@ -745,32 +756,33 @@ public: if (action == GOSSIP_ACTION_INFO_DEF + 1) { ItemPosCountVec dest; - uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, 30658, 1, nullptr); + uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, ITEM_FLAUNISS_PACK, 1, nullptr); if (msg == EQUIP_ERR_OK) { - player->StoreNewItem(dest, 30658, true); - ClearGossipMenuFor(player); + player->StoreNewItem(dest, ITEM_FLAUNISS_PACK, true); } } if (action == GOSSIP_ACTION_INFO_DEF + 2) { ItemPosCountVec dest; - uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, 30659, 1, nullptr); + uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, ITEM_KAGROSHS_PACK, 1, nullptr); if (msg == EQUIP_ERR_OK) { - player->StoreNewItem(dest, 30659, true); - ClearGossipMenuFor(player); + player->StoreNewItem(dest, ITEM_KAGROSHS_PACK, true); } } + + CloseGossipMenuFor(player); + return true; } bool OnGossipHello(Player* player, Creature* creature) override { - if (player->GetQuestStatus(10583) == QUEST_STATUS_INCOMPLETE && !player->HasItemCount(30658, 1, true)) - AddGossipItemFor(player, 0, GOSSIP_HSK1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); - if (player->GetQuestStatus(10601) == QUEST_STATUS_INCOMPLETE && !player->HasItemCount(30659, 1, true)) - AddGossipItemFor(player, 0, GOSSIP_HSK2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); + if (player->GetQuestStatus(QUEST_THE_FATE_OF_FLANIS) == QUEST_STATUS_INCOMPLETE && !player->HasItemCount(ITEM_FLAUNISS_PACK, 1, true)) + AddGossipItemFor(player, GOSSIP_MENU_FLANIS, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); + if (player->GetQuestStatus(QUEST_THE_FATE_OF_KAGROSH) == QUEST_STATUS_INCOMPLETE && !player->HasItemCount(ITEM_KAGROSHS_PACK, 1, true)) + AddGossipItemFor(player, GOSSIP_MENU_KAGROSH, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID()); diff --git a/src/server/scripts/Outland/zone_shattrath_city.cpp b/src/server/scripts/Outland/zone_shattrath_city.cpp index aacd828c1..8aaaf8580 100644 --- a/src/server/scripts/Outland/zone_shattrath_city.cpp +++ b/src/server/scripts/Outland/zone_shattrath_city.cpp @@ -85,7 +85,11 @@ public: # npc_zephyr ######*/ -#define GOSSIP_HZ "Take me to the Caverns of Time." +enum Zephyr : int32 +{ + GOSSIP_MENU_ZEPHYR = 9205, + SPELL_TELEPORT_CAVERNS_OF_TIME = 37778, +}; class npc_zephyr : public CreatureScript { @@ -96,7 +100,7 @@ public: { ClearGossipMenuFor(player); if (action == GOSSIP_ACTION_INFO_DEF + 1) - player->CastSpell(player, 37778, false); + player->CastSpell(player, SPELL_TELEPORT_CAVERNS_OF_TIME, false); return true; } @@ -104,7 +108,7 @@ public: bool OnGossipHello(Player* player, Creature* creature) override { if (player->GetReputationRank(989) >= REP_REVERED) - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_HZ, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); + AddGossipItemFor(player, GOSSIP_MENU_ZEPHYR, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID()); diff --git a/src/server/scripts/Outland/zone_terokkar_forest.cpp b/src/server/scripts/Outland/zone_terokkar_forest.cpp index e584f8cbe..b71a018b8 100644 --- a/src/server/scripts/Outland/zone_terokkar_forest.cpp +++ b/src/server/scripts/Outland/zone_terokkar_forest.cpp @@ -575,10 +575,25 @@ public: /*###### ## go_skull_pile ######*/ -#define GOSSIP_S_DARKSCREECHER_AKKARAI "Summon Darkscreecher Akkarai" -#define GOSSIP_S_KARROG "Summon Karrog" -#define GOSSIP_S_GEZZARAK_THE_HUNTRESS "Summon Gezzarak the Huntress" -#define GOSSIP_S_VAKKIZ_THE_WINDRAGER "Summon Vakkiz the Windrager" + +enum SkullPile : uint32 +{ + QUEST_ADVERSARIAL_BLOOD = 11885, + + GOSSIP_MENU_SKULL_PILE = 8660, + GOSSIP_MENU_TEXT_SKULL_PILE = 10888, + GOSSIP_MENU_TEXT_SKULL_PILE_QUEST = 11057, + + GOSSIP_OPTION_SUMMON_GEZZARAK_THE_HUNTRESS = 0, + GOSSIP_OPTION_SUMMON_DARKSCREECHER_AKKARAI = 1, + GOSSIP_OPTION_SUMMON_KARROG = 2, + GOSSIP_OPTION_SUMMON_VAKKIZ_THE_WINDRAGER = 3, + + SPELL_SUMMON_GEZZARAK_THE_HUNTRESS = 40632, + SPELL_SUMMON_DARKSCREECHER_AKKARAI = 40642, + SPELL_SUMMON_KARROG = 40640, + SPELL_SUMMON_VAKKIZ_THE_WINDRAGER = 40644, +}; class go_skull_pile : public GameObjectScript { @@ -588,26 +603,29 @@ public: bool OnGossipSelect(Player* player, GameObject* go, uint32 sender, uint32 action) override { ClearGossipMenuFor(player); - switch (sender) + + if (sender == GOSSIP_SENDER_MAIN) { - case GOSSIP_SENDER_MAIN: - SendActionMenu(player, go, action); - break; + SendActionMenu(player, go, action); + CloseGossipMenuFor(player); } return true; } bool OnGossipHello(Player* player, GameObject* go) override { - if ((player->GetQuestStatus(11885) == QUEST_STATUS_INCOMPLETE) || player->GetQuestRewardStatus(11885)) + if ((player->GetQuestStatus(QUEST_ADVERSARIAL_BLOOD) == QUEST_STATUS_INCOMPLETE) || player->GetQuestRewardStatus(QUEST_ADVERSARIAL_BLOOD)) { - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_S_DARKSCREECHER_AKKARAI, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_S_KARROG, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_S_GEZZARAK_THE_HUNTRESS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3); - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_S_VAKKIZ_THE_WINDRAGER, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4); - } + AddGossipItemFor(player, GOSSIP_MENU_SKULL_PILE, GOSSIP_OPTION_SUMMON_GEZZARAK_THE_HUNTRESS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); + AddGossipItemFor(player, GOSSIP_MENU_SKULL_PILE, GOSSIP_OPTION_SUMMON_DARKSCREECHER_AKKARAI, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); + AddGossipItemFor(player, GOSSIP_MENU_SKULL_PILE, GOSSIP_OPTION_SUMMON_KARROG, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3); + AddGossipItemFor(player, GOSSIP_MENU_SKULL_PILE, GOSSIP_OPTION_SUMMON_VAKKIZ_THE_WINDRAGER, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4); + + SendGossipMenuFor(player, GOSSIP_MENU_TEXT_SKULL_PILE_QUEST, go->GetGUID()); + } + else + SendGossipMenuFor(player, GOSSIP_MENU_TEXT_SKULL_PILE, go->GetGUID()); - SendGossipMenuFor(player, go->GetGOInfo()->questgiver.gossipID, go->GetGUID()); return true; } @@ -616,16 +634,16 @@ public: switch (action) { case GOSSIP_ACTION_INFO_DEF + 1: - player->CastSpell(player, 40642, false); + player->CastSpell(player, SPELL_SUMMON_GEZZARAK_THE_HUNTRESS, false); break; case GOSSIP_ACTION_INFO_DEF + 2: - player->CastSpell(player, 40640, false); + player->CastSpell(player, SPELL_SUMMON_DARKSCREECHER_AKKARAI, false); break; case GOSSIP_ACTION_INFO_DEF + 3: - player->CastSpell(player, 40632, false); + player->CastSpell(player, SPELL_SUMMON_KARROG, false); break; case GOSSIP_ACTION_INFO_DEF + 4: - player->CastSpell(player, 40644, false); + player->CastSpell(player, SPELL_SUMMON_VAKKIZ_THE_WINDRAGER, false); break; } }