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 "Spell.h"
|
||||||
#include "SpellInfo.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)
|
# quest_a_pawn_on_the_eternal_board (Defines)
|
||||||
####*/
|
####*/
|
||||||
@@ -1453,6 +1337,5 @@ void AddSC_silithus()
|
|||||||
new npc_anachronos_quest_trigger();
|
new npc_anachronos_quest_trigger();
|
||||||
new npc_anachronos_the_ancient();
|
new npc_anachronos_the_ancient();
|
||||||
new npc_qiraj_war_spawn();
|
new npc_qiraj_war_spawn();
|
||||||
new npcs_rutgar_and_frankal();
|
|
||||||
new go_wind_stone();
|
new go_wind_stone();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user