mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-26 07:06:23 +00:00
fix(DB/SAI) Myranda the Hag (#8911)
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1635880139183138212');
|
||||
|
||||
-- Fix Gossip for Myranda the Hag
|
||||
DELETE FROM `gossip_menu` WHERE `MenuID`=3801 AND `TextID`=4773;
|
||||
INSERT INTO `gossip_menu` (`MenuID`,`TextID`) VALUES (3801,4773);
|
||||
|
||||
-- Condition for source Gossip menu condition
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=14 AND `SourceGroup`=3801 AND `SourceEntry`=4773 AND `SourceId`=0;
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=3801 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
|
||||
(14, 3801, 4773, 0, 1, 8, 0, 5944, 0, 0, 1, 0, 0, '', 'Only show text if quest ''In Dreams'' is not rewarded'),
|
||||
(14, 3801, 4773, 0, 1, 8, 0, 5862, 0, 0, 0, 0, 0, '', 'Only show text if quest ''Scarlet Subterfuge'' is rewarded'),
|
||||
(14, 3801, 4773, 0, 0, 8, 0, 5944, 0, 0, 1, 0, 0, '', 'Only show text if quest ''In Dreams'' is not rewarded'),
|
||||
(14, 3801, 4773, 0, 0, 28, 0, 5944, 0, 0, 1, 0, 0, '', 'Only show text if quest ''In Dreams'' is not complete'),
|
||||
(14, 3801, 4773, 0, 0, 28, 0, 5862, 0, 0, 0, 0, 0, '', 'Only show text if quest ''Scarlet Subterfuge'' is complete'),
|
||||
(14, 3801, 4773, 0, 1, 28, 0, 5944, 0, 0, 1, 0, 0, '', 'Only show text if quest ''In Dreams'' is not complete'),
|
||||
(15, 3801, 0, 0, 1, 1, 0, 17961, 0, 0, 1, 0, 0, '', 'Only show gossip menu option if no ''Scarlet Illusion'' Aura'),
|
||||
(15, 3801, 0, 0, 1, 8, 0, 5862, 0, 0, 0, 0, 0, '', 'Only show gossip menu option if quest ''Scarlet Subterfuge'' is rewarded'),
|
||||
(15, 3801, 0, 0, 0, 1, 0, 17961, 0, 0, 1, 0, 0, '', 'Only show gossip menu option if no ''Scarlet Illusion'' Aura'),
|
||||
(15, 3801, 0, 0, 0, 8, 0, 5944, 0, 0, 1, 0, 0, '', 'Only show gossip menu option if quest ''In Dreams'' is not rewarded'),
|
||||
(15, 3801, 0, 0, 0, 28, 0, 5944, 0, 0, 1, 0, 0, '', 'Only show gossip menu option if quest ''In Dreams'' is not complete'),
|
||||
(15, 3801, 0, 0, 1, 8, 0, 5944, 0, 0, 1, 0, 0, '', 'Only show gossip menu option if quest ''In Dreams'' is not rewarded'),
|
||||
(15, 3801, 0, 0, 1, 28, 0, 5944, 0, 0, 1, 0, 0, '', 'Only show gossip menu option if quest ''In Dreams'' is not complete'),
|
||||
(15, 3801, 0, 0, 0, 28, 0, 5862, 0, 0, 0, 0, 0, '', 'Only show gossip menu option if quest ''Scarlet Subterfuge'' is complete');
|
||||
|
||||
-- Add SAI for Myranda the Hag
|
||||
UPDATE `creature_template` SET `AIName`="SmartAI", `ScriptName`='' WHERE `entry`=11872;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=11872 AND `source_type`=0;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
|
||||
(11872, 0, 0, 1, 62, 0, 100, 0, 3801, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Myranda the Hag - On Gossip Option 0 Selected - Close Gossip'),
|
||||
(11872, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 85, 17961, 2, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Myranda the Hag - On Gossip Option 0 Selected - Invoker Cast ''Scarlet Illusion''');
|
||||
@@ -23,7 +23,6 @@ SDCategory: Western Plaguelands
|
||||
EndScriptData */
|
||||
|
||||
/* ContentData
|
||||
npc_myranda_the_hag
|
||||
npc_the_scourge_cauldron
|
||||
npc_andorhal_tower
|
||||
EndContentData */
|
||||
@@ -34,55 +33,6 @@ EndContentData */
|
||||
#include "ScriptMgr.h"
|
||||
#include "WorldSession.h"
|
||||
|
||||
/*######
|
||||
## npc_myranda_the_hag
|
||||
######*/
|
||||
|
||||
enum Myranda
|
||||
{
|
||||
QUEST_FIND_MYRANDA = 5861,
|
||||
QUEST_SUBTERFUGE = 5862,
|
||||
QUEST_IN_DREAMS = 5944,
|
||||
SPELL_SCARLET_ILLUSION = 17961
|
||||
};
|
||||
|
||||
#define GOSSIP_ITEM_ILLUSION "I am ready for the illusion, Myranda."
|
||||
|
||||
class npc_myranda_the_hag : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_myranda_the_hag() : CreatureScript("npc_myranda_the_hag") { }
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action) override
|
||||
{
|
||||
ClearGossipMenuFor(player);
|
||||
if (action == GOSSIP_ACTION_INFO_DEF + 1)
|
||||
{
|
||||
CloseGossipMenuFor(player);
|
||||
player->CastSpell(player, SPELL_SCARLET_ILLUSION, false);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature) override
|
||||
{
|
||||
if (creature->IsQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (player->GetQuestRewardStatus(QUEST_FIND_MYRANDA) &&
|
||||
!player->GetQuestRewardStatus(QUEST_IN_DREAMS) && !player->HasAura(SPELL_SCARLET_ILLUSION))
|
||||
{
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_ILLUSION, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
SendGossipMenuFor(player, 4773, creature->GetGUID());
|
||||
return true;
|
||||
}
|
||||
else
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
/*######
|
||||
## npc_the_scourge_cauldron
|
||||
######*/
|
||||
@@ -208,7 +158,6 @@ public:
|
||||
|
||||
void AddSC_western_plaguelands()
|
||||
{
|
||||
new npc_myranda_the_hag();
|
||||
new npc_the_scourge_cauldron();
|
||||
new npc_andorhal_tower();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user