diff options
-rw-r--r-- | sql/updates/world/3.3.5/2020_05_21_04_world.sql | 77 | ||||
-rw-r--r-- | src/server/scripts/World/go_scripts.cpp | 63 |
2 files changed, 77 insertions, 63 deletions
diff --git a/sql/updates/world/3.3.5/2020_05_21_04_world.sql b/sql/updates/world/3.3.5/2020_05_21_04_world.sql new file mode 100644 index 00000000000..9a4506823c1 --- /dev/null +++ b/sql/updates/world/3.3.5/2020_05_21_04_world.sql @@ -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"); diff --git a/src/server/scripts/World/go_scripts.cpp b/src/server/scripts/World/go_scripts.cpp index a863076fded..57ecc3fcc47 100644 --- a/src/server/scripts/World/go_scripts.cpp +++ b/src/server/scripts/World/go_scripts.cpp @@ -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 @@ -789,67 +788,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 -}; - -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; - - Quest const* qInfo = sObjectMgr->GetQuestTemplate(QUEST_PRISONERS_OF_WYRMSKULL); - if (qInfo) - { - /// @todo prisoner should help player for a short period of time - player->KilledMonsterCredit(qInfo->RequiredNpcOrGo[0]); - pPrisoner->DisappearAndDie(); - } - return true; - } - }; - - GameObjectAI* GetAI(GameObject* go) const override - { - return new go_dragonflayer_cageAI(go); - } -}; - -/*###### ## go_amberpine_outhouse ######*/ @@ -1706,7 +1644,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(); |