mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-13 01:08:35 +00:00
fix(SAI/Script) Quest 8304 Dearest Natalia (#8717)
Redid quest to have proper gossip and use proper db gossip system.
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1635047186151663471');
|
||||
|
||||
-- Quest 8304 Dearest Natalia
|
||||
|
||||
-- Rutgar Glyphshaper
|
||||
UPDATE `creature_template` SET `gossip_menu_id`=6533, `AIName`='SmartAI', `ScriptName`='' WHERE `entry`=15170;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=15170 AND `source_type`=0;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_chance`,`event_param1`,`event_param2`,`action_type`,`action_param1`,`target_type`,`comment`) VALUES
|
||||
(15170,0,0,1,62,100,6545,0,33,15222,7, 'Rutgar Glyphshaper - On Gossip Option Select - Killmonster credit Rutgar Questioned'),
|
||||
(15170,0,1,0,61,100,0,0,72,0,7, 'Rutgar Glyphshaper - On Gossip Option Select - Close Gossip');
|
||||
|
||||
-- Gossip option fix
|
||||
UPDATE `gossip_menu_option` SET `ActionMenuID`=6551 WHERE `MenuID`=6533;
|
||||
|
||||
-- Condition for source Gossip menu option condition type Quest taken
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=6533 AND `SourceEntry`=0 AND `SourceId`=0;
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(15, 6533, 0, 0, 0, 9, 0, 8304, 0, 0, 0, 0, 0, '', 'Show gossip menu 6533 option id 0 if quest Dearest Natalia has been taken.');
|
||||
|
||||
-- Frankal Stonebridge
|
||||
UPDATE `creature_template` SET `gossip_menu_id`=6534, `AIName`='SmartAI', `ScriptName`='' WHERE `entry`=15171;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=15171 AND `source_type`=0;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_chance`,`event_param1`,`event_param2`,`action_type`,`action_param1`,`target_type`,`comment`) VALUES
|
||||
(15171,0,0,1,62,100,6552,0,33,15221,7, 'Frankal Stonebridge - On Gossip Option Select - Killmonster credit Frankal Questioned'),
|
||||
(15171,0,1,0,61,100,0,0,72,0,7, 'Frankal Stonebridge - On Gossip Option Select - Close Gossip');
|
||||
|
||||
-- Gossip option fix
|
||||
UPDATE `gossip_menu_option` SET `OptionText`='Hello, Frankal. I''ve heard that you might have some information as to the whereabouts of Mistress Natalia Mar''alith.', `OptionBroadcastTextID`=10727, `ActionMenuID`=6558 WHERE `MenuID`=6534;
|
||||
|
||||
-- Condition for source Gossip menu option condition type Quest taken
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=6534 AND `SourceEntry`=0 AND `SourceId`=0;
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(15, 6534, 0, 0, 0, 9, 0, 8304, 0, 0, 0, 0, 0, '', 'Show gossip menu 6534 option id 0 if quest Dearest Natalia has been taken.');
|
||||
@@ -37,122 +37,6 @@ EndContentData */
|
||||
#include "Spell.h"
|
||||
#include "SpellInfo.h"
|
||||
|
||||
/*###
|
||||
## npcs_rutgar_and_frankal
|
||||
###*/
|
||||
|
||||
//gossip item text best guess
|
||||
#define GOSSIP_ITEM1 "I seek information about Natalia"
|
||||
|
||||
#define GOSSIP_ITEM2 "That sounds dangerous!"
|
||||
#define GOSSIP_ITEM3 "What did you do?"
|
||||
#define GOSSIP_ITEM4 "Who?"
|
||||
#define GOSSIP_ITEM5 "Women do that. What did she demand?"
|
||||
#define GOSSIP_ITEM6 "What do you mean?"
|
||||
#define GOSSIP_ITEM7 "What happened next?"
|
||||
|
||||
#define GOSSIP_ITEM11 "Yes, please continue"
|
||||
#define GOSSIP_ITEM12 "What language?"
|
||||
#define GOSSIP_ITEM13 "The Priestess attacked you?!"
|
||||
#define GOSSIP_ITEM14 "I should ask the monkey about this"
|
||||
#define GOSSIP_ITEM15 "Then what..."
|
||||
|
||||
enum RutgarAndFrankal //trigger creatures to kill
|
||||
{
|
||||
TRIGGER_FRANKAL = 15221,
|
||||
TRIGGER_RUTGAR = 15222
|
||||
};
|
||||
|
||||
class npcs_rutgar_and_frankal : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npcs_rutgar_and_frankal() : CreatureScript("npcs_rutgar_and_frankal") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
ClearGossipMenuFor(player);
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF:
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
SendGossipMenuFor(player, 7755, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 1:
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
SendGossipMenuFor(player, 7756, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 2:
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
SendGossipMenuFor(player, 7757, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 3:
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
|
||||
SendGossipMenuFor(player, 7758, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 4:
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM6, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
|
||||
SendGossipMenuFor(player, 7759, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 5:
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM7, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
|
||||
SendGossipMenuFor(player, 7760, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 6:
|
||||
SendGossipMenuFor(player, 7761, creature->GetGUID());
|
||||
//'kill' our trigger to update quest status
|
||||
player->KilledMonsterCredit(TRIGGER_RUTGAR);
|
||||
break;
|
||||
|
||||
case GOSSIP_ACTION_INFO_DEF + 9:
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM11, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11);
|
||||
SendGossipMenuFor(player, 7762, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 10:
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM12, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11);
|
||||
SendGossipMenuFor(player, 7763, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 11:
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM13, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 12);
|
||||
SendGossipMenuFor(player, 7764, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 12:
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM14, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 13);
|
||||
SendGossipMenuFor(player, 7765, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 13:
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM15, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 14);
|
||||
SendGossipMenuFor(player, 7766, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 14:
|
||||
SendGossipMenuFor(player, 7767, creature->GetGUID());
|
||||
//'kill' our trigger to update quest status
|
||||
player->KilledMonsterCredit(TRIGGER_FRANKAL);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (player->GetQuestStatus(8304) == QUEST_STATUS_INCOMPLETE &&
|
||||
creature->GetEntry() == 15170 &&
|
||||
!player->GetReqKillOrCastCurrentCount(8304, TRIGGER_RUTGAR))
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
|
||||
if (player->GetQuestStatus(8304) == QUEST_STATUS_INCOMPLETE &&
|
||||
creature->GetEntry() == 15171 &&
|
||||
player->GetReqKillOrCastCurrentCount(8304, TRIGGER_RUTGAR))
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 9);
|
||||
|
||||
SendGossipMenuFor(player, 7754, creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
/*####
|
||||
# quest_a_pawn_on_the_eternal_board (Defines)
|
||||
####*/
|
||||
@@ -1453,6 +1337,5 @@ void AddSC_silithus()
|
||||
new npc_anachronos_quest_trigger();
|
||||
new npc_anachronos_the_ancient();
|
||||
new npc_qiraj_war_spawn();
|
||||
new npcs_rutgar_and_frankal();
|
||||
new go_wind_stone();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user