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>
This commit is contained in:
podmepodme
2023-10-22 03:16:51 +02:00
committed by GitHub
parent c5ac4789d8
commit 945d7c6afe
4 changed files with 70 additions and 37 deletions
@@ -157,7 +157,6 @@ enum ThrallWarchief : uint32
QUEST_WHAT_THE_WIND_CARRIES = 6566, QUEST_WHAT_THE_WIND_CARRIES = 6566,
GOSSIP_MENU_THRALL = 3664, GOSSIP_MENU_THRALL = 3664,
GOSSIP_RESPONSE_THRALL_FIRST = 5733, GOSSIP_RESPONSE_THRALL_FIRST = 5733,
GOSSIP_OPTION_DEFAULT = 0
}; };
const Position heraldOfThrallPos = { -462.404f, -2637.68f, 96.0656f, 5.8606f }; 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 NextAction = GOSSIP_ACTION_INFO_DEF + DiscussionOrder + 1;
uint32 GossipResponse = GOSSIP_RESPONSE_THRALL_FIRST + 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()); SendGossipMenuFor(player, GossipResponse, creature->GetGUID());
} }
else if (DiscussionOrder == 7) else if (DiscussionOrder == 7)
@@ -200,7 +199,7 @@ public:
if (player->GetQuestStatus(QUEST_WHAT_THE_WIND_CARRIES) == QUEST_STATUS_INCOMPLETE) 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()); SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
@@ -731,8 +731,19 @@ public:
## npc_flanis_swiftwing_and_kagrosh ## npc_flanis_swiftwing_and_kagrosh
######*/ ######*/
#define GOSSIP_HSK1 "Take Flanis's Pack" enum Flanis : uint32
#define GOSSIP_HSK2 "Take Kagrosh's Pack" {
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 class npcs_flanis_swiftwing_and_kagrosh : public CreatureScript
{ {
@@ -745,32 +756,33 @@ public:
if (action == GOSSIP_ACTION_INFO_DEF + 1) if (action == GOSSIP_ACTION_INFO_DEF + 1)
{ {
ItemPosCountVec dest; 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) if (msg == EQUIP_ERR_OK)
{ {
player->StoreNewItem(dest, 30658, true); player->StoreNewItem(dest, ITEM_FLAUNISS_PACK, true);
ClearGossipMenuFor(player);
} }
} }
if (action == GOSSIP_ACTION_INFO_DEF + 2) if (action == GOSSIP_ACTION_INFO_DEF + 2)
{ {
ItemPosCountVec dest; 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) if (msg == EQUIP_ERR_OK)
{ {
player->StoreNewItem(dest, 30659, true); player->StoreNewItem(dest, ITEM_KAGROSHS_PACK, true);
ClearGossipMenuFor(player);
} }
} }
CloseGossipMenuFor(player);
return true; return true;
} }
bool OnGossipHello(Player* player, Creature* creature) override bool OnGossipHello(Player* player, Creature* creature) override
{ {
if (player->GetQuestStatus(10583) == QUEST_STATUS_INCOMPLETE && !player->HasItemCount(30658, 1, true)) if (player->GetQuestStatus(QUEST_THE_FATE_OF_FLANIS) == QUEST_STATUS_INCOMPLETE && !player->HasItemCount(ITEM_FLAUNISS_PACK, 1, true))
AddGossipItemFor(player, 0, GOSSIP_HSK1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); AddGossipItemFor(player, GOSSIP_MENU_FLANIS, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
if (player->GetQuestStatus(10601) == QUEST_STATUS_INCOMPLETE && !player->HasItemCount(30659, 1, true)) if (player->GetQuestStatus(QUEST_THE_FATE_OF_KAGROSH) == QUEST_STATUS_INCOMPLETE && !player->HasItemCount(ITEM_KAGROSHS_PACK, 1, true))
AddGossipItemFor(player, 0, GOSSIP_HSK2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); AddGossipItemFor(player, GOSSIP_MENU_KAGROSH, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID()); SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
@@ -85,7 +85,11 @@ public:
# npc_zephyr # 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 class npc_zephyr : public CreatureScript
{ {
@@ -96,7 +100,7 @@ public:
{ {
ClearGossipMenuFor(player); ClearGossipMenuFor(player);
if (action == GOSSIP_ACTION_INFO_DEF + 1) if (action == GOSSIP_ACTION_INFO_DEF + 1)
player->CastSpell(player, 37778, false); player->CastSpell(player, SPELL_TELEPORT_CAVERNS_OF_TIME, false);
return true; return true;
} }
@@ -104,7 +108,7 @@ public:
bool OnGossipHello(Player* player, Creature* creature) override bool OnGossipHello(Player* player, Creature* creature) override
{ {
if (player->GetReputationRank(989) >= REP_REVERED) 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()); SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
@@ -575,10 +575,25 @@ public:
/*###### /*######
## go_skull_pile ## go_skull_pile
######*/ ######*/
#define GOSSIP_S_DARKSCREECHER_AKKARAI "Summon Darkscreecher Akkarai"
#define GOSSIP_S_KARROG "Summon Karrog" enum SkullPile : uint32
#define GOSSIP_S_GEZZARAK_THE_HUNTRESS "Summon Gezzarak the Huntress" {
#define GOSSIP_S_VAKKIZ_THE_WINDRAGER "Summon Vakkiz the Windrager" 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 class go_skull_pile : public GameObjectScript
{ {
@@ -588,26 +603,29 @@ public:
bool OnGossipSelect(Player* player, GameObject* go, uint32 sender, uint32 action) override bool OnGossipSelect(Player* player, GameObject* go, uint32 sender, uint32 action) override
{ {
ClearGossipMenuFor(player); ClearGossipMenuFor(player);
switch (sender)
if (sender == GOSSIP_SENDER_MAIN)
{ {
case GOSSIP_SENDER_MAIN: SendActionMenu(player, go, action);
SendActionMenu(player, go, action); CloseGossipMenuFor(player);
break;
} }
return true; return true;
} }
bool OnGossipHello(Player* player, GameObject* go) override 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_MENU_SKULL_PILE, GOSSIP_OPTION_SUMMON_GEZZARAK_THE_HUNTRESS, 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_MENU_SKULL_PILE, GOSSIP_OPTION_SUMMON_DARKSCREECHER_AKKARAI, 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_MENU_SKULL_PILE, GOSSIP_OPTION_SUMMON_KARROG, 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_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; return true;
} }
@@ -616,16 +634,16 @@ public:
switch (action) switch (action)
{ {
case GOSSIP_ACTION_INFO_DEF + 1: case GOSSIP_ACTION_INFO_DEF + 1:
player->CastSpell(player, 40642, false); player->CastSpell(player, SPELL_SUMMON_GEZZARAK_THE_HUNTRESS, false);
break; break;
case GOSSIP_ACTION_INFO_DEF + 2: case GOSSIP_ACTION_INFO_DEF + 2:
player->CastSpell(player, 40640, false); player->CastSpell(player, SPELL_SUMMON_DARKSCREECHER_AKKARAI, false);
break; break;
case GOSSIP_ACTION_INFO_DEF + 3: case GOSSIP_ACTION_INFO_DEF + 3:
player->CastSpell(player, 40632, false); player->CastSpell(player, SPELL_SUMMON_KARROG, false);
break; break;
case GOSSIP_ACTION_INFO_DEF + 4: case GOSSIP_ACTION_INFO_DEF + 4:
player->CastSpell(player, 40644, false); player->CastSpell(player, SPELL_SUMMON_VAKKIZ_THE_WINDRAGER, false);
break; break;
} }
} }