fix(Scripts/MoltenCore): Move Majordomo Executus gossip to database (#25309)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Andrew 2026-03-30 07:33:23 -03:00 committed by GitHub
parent 7352910a59
commit 331393df93
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 16 additions and 47 deletions

View file

@ -0,0 +1,9 @@
-- Move Majordomo Executus Ragnaros summoning gossip chain to database
-- Previously handled entirely in C++ script (sGossipHello/sGossipSelect)
-- Add gossip_menu entries (MenuID -> TextID) for the gossip chain
DELETE FROM `gossip_menu` WHERE `MenuID` IN (4093, 4108, 4109);
INSERT INTO `gossip_menu` (`MenuID`, `TextID`) VALUES
(4093, 4995),
(4109, 5011),
(4108, 5012);

View file

@ -95,13 +95,7 @@ enum Events
enum Misc
{
TEXT_ID_SUMMON_1 = 4995,
TEXT_ID_SUMMON_2 = 5011,
TEXT_ID_SUMMON_3 = 5012,
GOSSIP_ITEM_SUMMON_1 = 4093,
GOSSIP_ITEM_SUMMON_2 = 4109,
GOSSIP_ITEM_SUMMON_3 = 4108,
MENU_ID_RAGNAROS_SUMMON = 4108,
FACTION_MAJORDOMO_FRIENDLY = 1080,
SUMMON_GROUP_ADDS = 1,
@ -507,48 +501,14 @@ struct boss_majordomo : public BossAI
}
}
void sGossipHello(Player* player) override
void sGossipSelect(Player* player, uint32 menuId, uint32 /*gossipListId*/) override
{
ClearGossipMenuFor(player);
AddGossipItemFor(player, GOSSIP_ITEM_SUMMON_1, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
SendGossipMenuFor(player, TEXT_ID_SUMMON_1, me->GetGUID());
}
void sGossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override
{
uint32 const action = player->PlayerTalkClass->GetGossipOptionAction(gossipListId);
ClearGossipMenuFor(player);
switch (action)
if (menuId == MENU_ID_RAGNAROS_SUMMON)
{
case GOSSIP_ACTION_INFO_DEF:
{
AddGossipItemFor(player, GOSSIP_ITEM_SUMMON_2, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
SendGossipMenuFor(player, TEXT_ID_SUMMON_2, me->GetGUID());
break;
}
case GOSSIP_ACTION_INFO_DEF+1:
{
AddGossipItemFor(player, GOSSIP_ITEM_SUMMON_2, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
SendGossipMenuFor(player, TEXT_ID_SUMMON_2, me->GetGUID());
break;
}
case GOSSIP_ACTION_INFO_DEF+2:
{
AddGossipItemFor(player, GOSSIP_ITEM_SUMMON_3, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
SendGossipMenuFor(player, TEXT_ID_SUMMON_3, me->GetGUID());
break;
}
case GOSSIP_ACTION_INFO_DEF+3:
{
CloseGossipMenuFor(player);
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
Talk(SAY_RAG_SUM_1, player);
DoAction(ACTION_START_RAGNAROS_INTRO);
break;
}
default:
CloseGossipMenuFor(player);
break;
CloseGossipMenuFor(player);
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
Talk(SAY_RAG_SUM_1, player);
DoAction(ACTION_START_RAGNAROS_INTRO);
}
}