mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
DB/Quest: Convert & update support for 'Prisoners of Wyrmskull' to SAI
Closes #24650
(cherry picked from commit 2008cb7dd3)
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
-- (Source: https://www.youtube.com/watch?v=aR2UoUn-Q1A & other similar)
|
||||
UPDATE `gameobject_template` SET `AIName` = "SmartGameObjectAI", `ScriptName` = "" WHERE `entry` IN (186566,186567,186568,186569,186570,186571,186572,186573,186574,186575);
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (186566,186567,186568,186569,186570,186571,186572,186573,186574,186575) AND `source_type` = 1;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` = 18656600 AND `source_type` = 9;
|
||||
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`,`event_param5`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_param4`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
|
||||
(186566,1,0,0,70,0,100,0,2,0,0,0,0,80,18656600,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Dragonflayer Cage - On Gameobject State Changed - Run Script"),
|
||||
(186567,1,0,0,70,0,100,0,2,0,0,0,0,80,18656600,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Dragonflayer Cage - On Gameobject State Changed - Run Script"),
|
||||
(186568,1,0,0,70,0,100,0,2,0,0,0,0,80,18656600,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Dragonflayer Cage - On Gameobject State Changed - Run Script"),
|
||||
(186569,1,0,0,70,0,100,0,2,0,0,0,0,80,18656600,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Dragonflayer Cage - On Gameobject State Changed - Run Script"),
|
||||
(186570,1,0,0,70,0,100,0,2,0,0,0,0,80,18656600,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Dragonflayer Cage - On Gameobject State Changed - Run Script"),
|
||||
(186571,1,0,0,70,0,100,0,2,0,0,0,0,80,18656600,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Dragonflayer Cage - On Gameobject State Changed - Run Script"),
|
||||
(186572,1,0,0,70,0,100,0,2,0,0,0,0,80,18656600,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Dragonflayer Cage - On Gameobject State Changed - Run Script"),
|
||||
(186573,1,0,0,70,0,100,0,2,0,0,0,0,80,18656600,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Dragonflayer Cage - On Gameobject State Changed - Run Script"),
|
||||
(186574,1,0,0,70,0,100,0,2,0,0,0,0,80,18656600,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Dragonflayer Cage - On Gameobject State Changed - Run Script"),
|
||||
(186575,1,0,0,70,0,100,0,2,0,0,0,0,80,18656600,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Dragonflayer Cage - On Gameobject State Changed - Run Script"),
|
||||
|
||||
(18656600,9,0,0,0,0,100,0,0,0,0,0,0,64,1,0,0,0,0,0,7,0,0,0,0,0,0,0,0,"Dragonflayer Cage - On Script - Store Targetlist"),
|
||||
(18656600,9,1,0,0,0,100,0,0,0,0,0,0,100,1,0,0,0,0,0,19,24086,5,0,0,0,0,0,0,"Dragonflayer Cage - On Script - Send Target 1 (Captured Valgarde Priest)"),
|
||||
(18656600,9,2,0,0,0,100,0,0,0,0,0,0,100,1,0,0,0,0,0,19,24088,5,0,0,0,0,0,0,"Dragonflayer Cage - On Script - Send Target 1 (Captured Valgarde Mage)"),
|
||||
(18656600,9,3,0,0,0,100,0,0,0,0,0,0,100,1,0,0,0,0,0,19,24089,5,0,0,0,0,0,0,"Dragonflayer Cage - On Script - Send Target 1 (Captured Valgarde Warrior)"),
|
||||
(18656600,9,4,0,0,0,100,0,0,0,0,0,0,100,1,0,0,0,0,0,19,24090,5,0,0,0,0,0,0,"Dragonflayer Cage - On Script - Send Target 1 (Captured Valgarde Paladin)"),
|
||||
(18656600,9,5,0,0,0,100,0,0,0,0,0,0,45,0,1,0,0,0,0,19,24086,5,0,0,0,0,0,0,"Dragonflayer Cage - On Script - Set Data 0 1 (Captured Valgarde Priest)"),
|
||||
(18656600,9,6,0,0,0,100,0,0,0,0,0,0,45,0,1,0,0,0,0,19,24088,5,0,0,0,0,0,0,"Dragonflayer Cage - On Script - Set Data 0 1 (Captured Valgarde Mage)"),
|
||||
(18656600,9,7,0,0,0,100,0,0,0,0,0,0,45,0,1,0,0,0,0,19,24089,5,0,0,0,0,0,0,"Dragonflayer Cage - On Script - Set Data 0 1 (Captured Valgarde Warrior)"),
|
||||
(18656600,9,8,0,0,0,100,0,0,0,0,0,0,45,0,1,0,0,0,0,19,24090,5,0,0,0,0,0,0,"Dragonflayer Cage - On Script - Set Data 0 1 (Captured Valgarde Paladin)");
|
||||
|
||||
UPDATE `creature_template` SET `AIName` = "SmartAI" WHERE `entry` IN (24086,24088,24089,24090);
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (24086,24088,24089,24090) AND `source_type` = 0;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (2408600,2408800,2408900,2409000) AND `source_type` = 9;
|
||||
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`,`event_param5`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_param4`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
|
||||
(24086,0,0,0,38,0,100,0,0,1,0,0,0,80,2408600,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Captured Valgarde Priest - On Data Set 0 1 - Run Script"),
|
||||
(24088,0,0,0,38,0,100,0,0,1,0,0,0,80,2408800,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Captured Valgarde Mage - On Data Set 0 1 - Run Script"),
|
||||
(24089,0,0,0,38,0,100,0,0,1,0,0,0,80,2408900,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Captured Valgarde Warrior - On Data Set 0 1 - Run Script"),
|
||||
(24090,0,0,0,38,0,100,0,0,1,0,0,0,80,2409000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Captured Valgarde Paladin - On Data Set 0 1 - Run Script"),
|
||||
|
||||
(2408600,9,0,0,0,0,100,0,0,0,0,0,0,1,0,0,0,0,0,0,12,1,0,0,0,0,0,0,0,"Captured Valgarde Priest - On Script - Say Line 0"),
|
||||
(2408600,9,1,0,0,0,100,0,0,0,0,0,0,54,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Captured Valgarde Priest - On Script - Pause Waypoint"),
|
||||
(2408600,9,2,0,0,0,100,0,2000,2000,0,0,0,11,43094,0,0,0,0,0,12,1,0,0,0,0,0,0,0,"Captured Valgarde Priest - On Script - Cast 'Valgarde Prisoner Credit'"),
|
||||
(2408600,9,3,0,0,0,100,0,0,0,0,0,0,85,43030,0,0,0,0,0,12,1,0,0,0,0,0,0,0,"Captured Valgarde Priest - On Script - Self Cast 'Summon Valgarde Mage'"),
|
||||
(2408600,9,4,0,0,0,100,0,1000,1000,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Captured Valgarde Priest - On Script - Despawn (0)"),
|
||||
|
||||
(2408800,9,0,0,0,0,100,0,0,0,0,0,0,1,0,0,0,0,0,0,12,1,0,0,0,0,0,0,0,"Captured Valgarde Mage - On Script - Say Line 0"),
|
||||
(2408800,9,1,0,0,0,100,0,0,0,0,0,0,54,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Captured Valgarde Mage - On Script - Pause Waypoint"),
|
||||
(2408800,9,2,0,0,0,100,0,2000,2000,0,0,0,11,43094,0,0,0,0,0,12,1,0,0,0,0,0,0,0,"Captured Valgarde Mage - On Script - Cast 'Valgarde Prisoner Credit'"),
|
||||
(2408800,9,3,0,0,0,100,0,0,0,0,0,0,85,43028,0,0,0,0,0,12,1,0,0,0,0,0,0,0,"Captured Valgarde Mage - On Script - Self Cast 'Summon Valgarde Mage'"),
|
||||
(2408800,9,4,0,0,0,100,0,1000,1000,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Captured Valgarde Mage - On Script - Despawn (0)"),
|
||||
|
||||
(2408900,9,0,0,0,0,100,0,0,0,0,0,0,1,0,0,0,0,0,0,12,1,0,0,0,0,0,0,0,"Captured Valgarde Warrior - On Script - Say Line 0"),
|
||||
(2408900,9,1,0,0,0,100,0,0,0,0,0,0,54,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Captured Valgarde Warrior - On Script - Pause Waypoint"),
|
||||
(2408900,9,2,0,0,0,100,0,2000,2000,0,0,0,11,43094,0,0,0,0,0,12,1,0,0,0,0,0,0,0,"Captured Valgarde Warrior - On Script - Cast 'Valgarde Prisoner Credit'"),
|
||||
(2408900,9,3,0,0,0,100,0,0,0,0,0,0,85,42984,0,0,0,0,0,12,1,0,0,0,0,0,0,0,"Captured Valgarde Warrior - On Script - Self Cast 'Summon Valgarde Mage'"),
|
||||
(2408900,9,4,0,0,0,100,0,1000,1000,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Captured Valgarde Warrior - On Script - Despawn (0)"),
|
||||
|
||||
(2409000,9,0,0,0,0,100,0,0,0,0,0,0,1,0,0,0,0,0,0,12,1,0,0,0,0,0,0,0,"Captured Valgarde Paladin - On Script - Say Line 0"),
|
||||
(2409000,9,1,0,0,0,100,0,0,0,0,0,0,54,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Captured Valgarde Paladin - On Script - Pause Waypoint"),
|
||||
(2409000,9,2,0,0,0,100,0,2000,2000,0,0,0,11,43094,0,0,0,0,0,12,1,0,0,0,0,0,0,0,"Captured Valgarde Paladin - On Script - Cast 'Valgarde Prisoner Credit'"),
|
||||
(2409000,9,3,0,0,0,100,0,0,0,0,0,0,85,43032,0,0,0,0,0,12,1,0,0,0,0,0,0,0,"Captured Valgarde Paladin - On Script - Self Cast 'Summon Valgarde Mage'"),
|
||||
(2409000,9,4,0,0,0,100,0,1000,1000,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Captured Valgarde Paladin - On Script - Despawn (0)");
|
||||
|
||||
DELETE FROM `creature_text` WHERE `CreatureID` IN (24086,24088,24089,24090);
|
||||
INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`BroadcastTextId`,`TextRange`,`comment`) VALUES
|
||||
(24086,0,0,"You have my thanks, hero. If you don't mind, I'd like to stay by your side and exact a little vengeance upon my captors!",12,7,100,1,0,0,22753,0,"Captured Valgarde Priest"),
|
||||
(24086,0,1,"Many thanks! Allow me to repay you by killing a few dozen of these beasts!",12,7,100,1,0,0,22760,0,"Captured Valgarde Priest"),
|
||||
(24086,0,2,"Thanks, friend. Looking for another to join your group?",12,7,100,1,0,0,22761,0,"Captured Valgarde Priest"),
|
||||
(24086,0,3,"I will help you out before I head back to Valgarde. It's the least I could do.",12,7,100,1,0,0,22762,0,"Captured Valgarde Priest"),
|
||||
(24088,0,0,"You have my thanks, hero. If you don't mind, I'd like to stay by your side and exact a little vengeance upon my captors!",12,7,100,1,0,0,22753,0,"Captured Valgarde Mage"),
|
||||
(24088,0,1,"Many thanks! Allow me to repay you by killing a few dozen of these beasts!",12,7,100,1,0,0,22760,0,"Captured Valgarde Mage"),
|
||||
(24088,0,2,"Thanks, friend. Looking for another to join your group?",12,7,100,1,0,0,22761,0,"Captured Valgarde Mage"),
|
||||
(24088,0,3,"I will help you out before I head back to Valgarde. It's the least I could do.",12,7,100,1,0,0,22762,0,"Captured Valgarde Mage"),
|
||||
(24089,0,0,"You have my thanks, hero. If you don't mind, I'd like to stay by your side and exact a little vengeance upon my captors!",12,7,100,1,0,0,22753,0,"Captured Valgarde Warrior"),
|
||||
(24089,0,1,"Many thanks! Allow me to repay you by killing a few dozen of these beasts!",12,7,100,1,0,0,22760,0,"Captured Valgarde Warrior"),
|
||||
(24089,0,2,"Thanks, friend. Looking for another to join your group?",12,7,100,1,0,0,22761,0,"Captured Valgarde Warrior"),
|
||||
(24089,0,3,"I will help you out before I head back to Valgarde. It's the least I could do.",12,7,100,1,0,0,22762,0,"Captured Valgarde Warrior"),
|
||||
(24090,0,0,"You have my thanks, hero. If you don't mind, I'd like to stay by your side and exact a little vengeance upon my captors!",12,7,100,1,0,0,22753,0,"Captured Valgarde Paladin"),
|
||||
(24090,0,1,"Many thanks! Allow me to repay you by killing a few dozen of these beasts!",12,7,100,1,0,0,22760,0,"Captured Valgarde Paladin"),
|
||||
(24090,0,2,"Thanks, friend. Looking for another to join your group?",12,7,100,1,0,0,22761,0,"Captured Valgarde Paladin"),
|
||||
(24090,0,3,"I will help you out before I head back to Valgarde. It's the least I could do.",12,7,100,1,0,0,22762,0,"Captured Valgarde Paladin");
|
||||
@@ -27,7 +27,6 @@ go_scourge_cage
|
||||
go_jotunheim_cage
|
||||
go_table_theka
|
||||
go_soulwell
|
||||
go_dragonflayer_cage
|
||||
go_amberpine_outhouse
|
||||
go_hive_pod
|
||||
go_veil_skith_cage
|
||||
@@ -714,64 +713,6 @@ class go_soulwell : public GameObjectScript
|
||||
}
|
||||
};
|
||||
|
||||
/*######
|
||||
## Quest 11255: Prisoners of Wyrmskull
|
||||
## go_dragonflayer_cage
|
||||
######*/
|
||||
|
||||
enum PrisonersOfWyrmskull
|
||||
{
|
||||
QUEST_PRISONERS_OF_WYRMSKULL = 11255,
|
||||
NPC_PRISONER_PRIEST = 24086,
|
||||
NPC_PRISONER_MAGE = 24088,
|
||||
NPC_PRISONER_WARRIOR = 24089,
|
||||
NPC_PRISONER_PALADIN = 24090,
|
||||
NPC_CAPTURED_VALGARDE_PRISONER_PROXY = 24124
|
||||
};
|
||||
|
||||
class go_dragonflayer_cage : public GameObjectScript
|
||||
{
|
||||
public:
|
||||
go_dragonflayer_cage() : GameObjectScript("go_dragonflayer_cage") { }
|
||||
|
||||
struct go_dragonflayer_cageAI : public GameObjectAI
|
||||
{
|
||||
go_dragonflayer_cageAI(GameObject* go) : GameObjectAI(go) { }
|
||||
|
||||
bool GossipHello(Player* player) override
|
||||
{
|
||||
me->UseDoorOrButton();
|
||||
if (player->GetQuestStatus(QUEST_PRISONERS_OF_WYRMSKULL) != QUEST_STATUS_INCOMPLETE)
|
||||
return true;
|
||||
|
||||
Creature* pPrisoner = me->FindNearestCreature(NPC_PRISONER_PRIEST, 2.0f);
|
||||
if (!pPrisoner)
|
||||
{
|
||||
pPrisoner = me->FindNearestCreature(NPC_PRISONER_MAGE, 2.0f);
|
||||
if (!pPrisoner)
|
||||
{
|
||||
pPrisoner = me->FindNearestCreature(NPC_PRISONER_WARRIOR, 2.0f);
|
||||
if (!pPrisoner)
|
||||
pPrisoner = me->FindNearestCreature(NPC_PRISONER_PALADIN, 2.0f);
|
||||
}
|
||||
}
|
||||
|
||||
if (!pPrisoner || !pPrisoner->IsAlive())
|
||||
return true;
|
||||
|
||||
/// @todo prisoner should help player for a short period of time
|
||||
player->KilledMonsterCredit(NPC_CAPTURED_VALGARDE_PRISONER_PROXY);
|
||||
pPrisoner->DespawnOrUnsummon();
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
GameObjectAI* GetAI(GameObject* go) const override
|
||||
{
|
||||
return new go_dragonflayer_cageAI(go);
|
||||
}
|
||||
};
|
||||
|
||||
/*######
|
||||
## go_amberpine_outhouse
|
||||
######*/
|
||||
@@ -1629,7 +1570,6 @@ void AddSC_go_scripts()
|
||||
new go_table_theka();
|
||||
new go_inconspicuous_landmark();
|
||||
new go_soulwell();
|
||||
new go_dragonflayer_cage();
|
||||
new go_amberpine_outhouse();
|
||||
new go_hive_pod();
|
||||
new go_massive_seaforium_charge();
|
||||
|
||||
Reference in New Issue
Block a user