mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Scripts/Misc: Load gossip options from DB (#27892)
This commit is contained in:
32
sql/updates/world/3.3.5/2022_04_08_01_world.sql
Normal file
32
sql/updates/world/3.3.5/2022_04_08_01_world.sql
Normal file
@@ -0,0 +1,32 @@
|
||||
--
|
||||
ALTER TABLE `gossip_menu_option` MODIFY `VerifiedBuild` int(11) NOT NULL DEFAULT '0';
|
||||
|
||||
-- Quest Chasing the Moonstone (11194)
|
||||
DELETE FROM `gossip_menu_option` WHERE `MenuID` IN (57025) AND `OptionID` IN (0);
|
||||
INSERT INTO `gossip_menu_option`(`MenuID`, `OptionID`, `OptionIcon`, `OptionText`, `OptionBroadcastTextID`, `OptionType`, `OptionNpcFlag`, `ActionMenuID`, `ActionPoiID`, `BoxCoded`, `BoxMoney`, `BoxText`, `BoxBroadcastTextID`, `VerifiedBuild`) VALUES
|
||||
(57025, 0, 0, 'Hand over the Southfury moonstone and I\'ll let you go.', 20723, 1, 1, 0, 0, 0, 0, NULL, 0, 0);
|
||||
|
||||
-- Quest Cairne's Hoofprint (925), credit: vmangos
|
||||
DELETE FROM `gossip_menu_option` WHERE `MenuID` IN (5851) AND `OptionID` IN (0);
|
||||
INSERT INTO `gossip_menu_option`(`MenuID`, `OptionID`, `OptionIcon`, `OptionText`, `OptionBroadcastTextID`, `OptionType`, `OptionNpcFlag`, `ActionMenuID`, `ActionPoiID`, `BoxCoded`, `BoxMoney`, `BoxText`, `BoxBroadcastTextID`, `VerifiedBuild`) VALUES
|
||||
(5851, 0, 0, 'Chief Bloodhoof, this may sound like an odd request... but I have a young ward who is quite shy. You are a hero to him, and he asked me to get your hoofprint.', 9670, 1, 1, 5852, 0, 0, 0, NULL, 0, 34219);
|
||||
|
||||
DELETE FROM `gossip_menu` WHERE `MenuID` = 5852 AND `TextID` = 7014;
|
||||
INSERT INTO `gossip_menu` (`MenuID`, `TextID`, `VerifiedBuild`) VALUES
|
||||
(5852,7014,34219);
|
||||
|
||||
-- ZulAman
|
||||
DELETE FROM `gossip_menu_option` WHERE `MenuID` IN (8799,8874,8927,8881) AND `OptionID` IN (0);
|
||||
INSERT INTO `gossip_menu_option`(`MenuID`, `OptionID`, `OptionIcon`, `OptionText`, `OptionBroadcastTextID`, `OptionType`, `OptionNpcFlag`, `ActionMenuID`, `ActionPoiID`, `BoxCoded`, `BoxMoney`, `BoxText`, `BoxBroadcastTextID`, `VerifiedBuild`) VALUES
|
||||
(8799, 0, 0, "Nalorakk is dead, you're free to go.", 23015, 1, 1, 0, 0, 0, 0, NULL, 0, 12340),
|
||||
(8874, 0, 0, "The coast is clear. You're free!", 22965, 1, 1, 0, 0, 0, 0, NULL, 0, 11723),
|
||||
(8927, 0, 0, "It's safe, little gnome. You can come out now.", 23154, 1, 1, 0, 0, 0, 0, NULL, 0, 0),
|
||||
(8881, 0, 0, "We've killed your captors. You're free to go.
|
||||
", 23090, 1, 1, 0, 0, 0, 0, NULL, 0, 0);
|
||||
|
||||
-- MGT
|
||||
UPDATE `gossip_menu_option` SET `ActionMenuID` = 9200 WHERE `MenuID` = 9199 AND `OptionID` = 0;
|
||||
UPDATE `gossip_menu_option` SET `ActionMenuID` = 9297 WHERE `MenuID` = 9199 AND `OptionID` = 1;
|
||||
UPDATE `gossip_menu_option` SET `ActionMenuID` = 9201 WHERE `MenuID` = 9200 AND `OptionID` = 0;
|
||||
UPDATE `gossip_menu_option` SET `ActionMenuID` = 9295 WHERE `MenuID` = 9297 AND `OptionID` = 0;
|
||||
UPDATE `gossip_menu_option` SET `ActionMenuID` = 9296 WHERE `MenuID` = 9297 AND `OptionID` = 1;
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user