diff options
author | offl <offl@users.noreply.github.com> | 2020-11-10 00:37:35 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-02-28 23:59:55 +0100 |
commit | c883c0ee1f4104c0c43adca0055f02865d8fae2a (patch) | |
tree | e9f96f41b04feb0433faa451df21da87db9a2e84 | |
parent | 0b0532e96a635e71d746252ad80057d58be44ef5 (diff) |
DB/Quest: Update support for 'Merciful Freedom' (11676)
(cherry picked from commit 05fa1a46b36f81c177a503f7f5de14eb34830208)
-rw-r--r-- | sql/updates/world/master/2022_02_28_67_world_2020_11_09_05_world.sql | 61 | ||||
-rw-r--r-- | src/server/scripts/World/go_scripts.cpp | 39 |
2 files changed, 61 insertions, 39 deletions
diff --git a/sql/updates/world/master/2022_02_28_67_world_2020_11_09_05_world.sql b/sql/updates/world/master/2022_02_28_67_world_2020_11_09_05_world.sql new file mode 100644 index 00000000000..17e69edc4d4 --- /dev/null +++ b/sql/updates/world/master/2022_02_28_67_world_2020_11_09_05_world.sql @@ -0,0 +1,61 @@ +-- https://youtu.be/Gae52R_BPi8?t=171 +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (187854,187855,187856,187857,187858,187859,187860,187861,187862,187863,187864,187865,187866,187867,187868,187870,187871,187872,187873,187874) AND `source_type` = 1; +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (18785400,18785500,18785600,18785700,18785800,18785900,18786000,18786100,18786200,18786300,18786400,18786500,18786600,18786700,18786800,18787000,18787100,18787200,18787300,18787400) 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 +(187854,1,0,0,70,0,100,0,2,0,0,0,0,80,18785400,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Scourge Cage - On Gameobject State Changed - Run Script"), +(187855,1,0,0,70,0,100,0,2,0,0,0,0,80,18785400,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Scourge Cage - On Gameobject State Changed - Run Script"), +(187856,1,0,0,70,0,100,0,2,0,0,0,0,80,18785400,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Scourge Cage - On Gameobject State Changed - Run Script"), +(187857,1,0,0,70,0,100,0,2,0,0,0,0,80,18785400,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Scourge Cage - On Gameobject State Changed - Run Script"), +(187858,1,0,0,70,0,100,0,2,0,0,0,0,80,18785400,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Scourge Cage - On Gameobject State Changed - Run Script"), +(187859,1,0,0,70,0,100,0,2,0,0,0,0,80,18785400,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Scourge Cage - On Gameobject State Changed - Run Script"), +(187860,1,0,0,70,0,100,0,2,0,0,0,0,80,18785400,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Scourge Cage - On Gameobject State Changed - Run Script"), +(187861,1,0,0,70,0,100,0,2,0,0,0,0,80,18785400,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Scourge Cage - On Gameobject State Changed - Run Script"), +(187862,1,0,0,70,0,100,0,2,0,0,0,0,80,18785400,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Scourge Cage - On Gameobject State Changed - Run Script"), +(187863,1,0,0,70,0,100,0,2,0,0,0,0,80,18785400,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Scourge Cage - On Gameobject State Changed - Run Script"), +(187864,1,0,0,70,0,100,0,2,0,0,0,0,80,18785400,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Scourge Cage - On Gameobject State Changed - Run Script"), +(187865,1,0,0,70,0,100,0,2,0,0,0,0,80,18785400,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Scourge Cage - On Gameobject State Changed - Run Script"), +(187866,1,0,0,70,0,100,0,2,0,0,0,0,80,18785400,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Scourge Cage - On Gameobject State Changed - Run Script"), +(187867,1,0,0,70,0,100,0,2,0,0,0,0,80,18785400,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Scourge Cage - On Gameobject State Changed - Run Script"), +(187868,1,0,0,70,0,100,0,2,0,0,0,0,80,18785400,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Scourge Cage - On Gameobject State Changed - Run Script"), +(187870,1,0,0,70,0,100,0,2,0,0,0,0,80,18785400,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Scourge Cage - On Gameobject State Changed - Run Script"), +(187871,1,0,0,70,0,100,0,2,0,0,0,0,80,18785400,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Scourge Cage - On Gameobject State Changed - Run Script"), +(187872,1,0,0,70,0,100,0,2,0,0,0,0,80,18785400,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Scourge Cage - On Gameobject State Changed - Run Script"), +(187873,1,0,0,70,0,100,0,2,0,0,0,0,80,18785400,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Scourge Cage - On Gameobject State Changed - Run Script"), +(187874,1,0,0,70,0,100,0,2,0,0,0,0,80,18785400,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Scourge Cage - On Gameobject State Changed - Run Script"), + +(18785400,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,"Scourge Cage - On Script - Store Targetlist"), +(18785400,9,1,0,0,0,100,0,0,0,0,0,0,100,1,0,0,0,0,0,19,25610,5,0,0,0,0,0,0,"Scourge Cage - On Script - Send Target 1 (Scourge Prisoner)"), +(18785400,9,2,0,0,0,100,0,0,0,0,0,0,45,0,1,0,0,0,0,19,25610,5,0,0,0,0,0,0,"Scourge Cage - On Script - Set Data 0 1 (Scourge Prisoner)"); + +-- Scourge Prisoner SAI +SET @ID := 25610; +DELETE FROM `smart_scripts` WHERE `entryorguid` = @ID AND `source_type` = 0; +DELETE FROM `smart_scripts` WHERE `entryorguid` = @ID*100+0 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 +(@ID,0,0,0,10,0,20,0,1,15,60000,60000,1,1,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,"Scourge Prisoner - Within 0-15 Range Out of Combat LoS - Say Line 0"), +(@ID,0,1,0,38,0,100,0,0,1,0,0,0,80,2561000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Scourge Prisoner - On Data Set 0 1 - Run Script"), + +(@ID*100+0,9,0,0,0,0,100,0,0,0,0,0,0,66,0,0,0,0,0,0,12,1,0,0,0,0,0,0,0,"Scourge Prisoner - On Script - Set Orientation Stored Target 1"), +(@ID*100+0,9,1,0,0,0,100,0,1000,1000,0,0,0,33,25610,0,0,0,0,0,12,1,0,0,0,0,0,0,0,"Scourge Prisoner - On Script - Quest Credit 'Merciful Freedom'"), +(@ID*100+0,9,2,0,0,0,100,0,0,0,0,0,0,1,1,0,0,0,0,0,12,1,0,0,0,0,0,0,0,"Scourge Prisoner - On Script - Say Line 1"), +(@ID*100+0,9,3,0,0,0,100,0,0,0,0,0,0,41,7000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Scourge Prisoner - On Script - Despawn (7000)"); + +DELETE FROM `creature_text` WHERE `CreatureID` = @ID; +INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`BroadcastTextId`,`TextRange`,`comment`) VALUES +(@ID,0,0,"Somebody please... Help...",12,1,100,0,0,0,24827,0,"Scourge Prisoner"), +(@ID,0,1,"Don't let them turn me into one of those aberrations!",12,1,100,0,0,0,24828,0,"Scourge Prisoner"), +(@ID,0,2,"Kill me... Kill me now!",12,1,100,0,0,0,24829,0,"Scourge Prisoner"), +(@ID,0,3,"Should I ever escape this prison...",12,1,100,0,0,0,24830,0,"Scourge Prisoner"), +(@ID,1,0,"Thank you, friend.",12,1,100,1,0,0,24831,0,"Scourge Prisoner"), +(@ID,1,1,"Freedom at last! I must return to Warsong Hold at once!",12,1,100,1,0,0,24832,0,"Scourge Prisoner"), +(@ID,1,2,"You have my thanks, stranger.",12,1,100,1,0,0,24833,0,"Scourge Prisoner"), +(@ID,1,3,"I am forever indebted to you, friend.",12,1,100,1,0,0,24834,0,"Scourge Prisoner"); + +-- Say only if caged +-- Old condition to say only if quest is not taken is not correct, they can say if quest is taken +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 22 AND `SourceEntry` = 25610 AND `SourceId` = 0; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorType`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES +(22,1,25610,0,0,1,1,45801,0,0,1,0,0,"","Group 0: Execute SAI (Action 0) if creature does not have aura 'Dead Soldier'"); + +-- The script actually was already converted and used only by one object(shouldn't be even scripted) +UPDATE `gameobject_template` SET `ScriptName` = "" WHERE `entry` = 190803; diff --git a/src/server/scripts/World/go_scripts.cpp b/src/server/scripts/World/go_scripts.cpp index 1d79f16cba2..43fb33a1698 100644 --- a/src/server/scripts/World/go_scripts.cpp +++ b/src/server/scripts/World/go_scripts.cpp @@ -23,7 +23,6 @@ go_resonite_cask go_tablet_of_the_seven go_tele_to_dalaran_crystal go_tele_to_violet_stand -go_scourge_cage go_soulwell go_amberpine_outhouse go_veil_skith_cage @@ -435,43 +434,6 @@ public: }; /*###### -## go_scourge_cage -######*/ - -enum ScourgeCage -{ - NPC_SCOURGE_PRISONER = 25610 -}; - -class go_scourge_cage : public GameObjectScript -{ -public: - go_scourge_cage() : GameObjectScript("go_scourge_cage") { } - - struct go_scourge_cageAI : public GameObjectAI - { - go_scourge_cageAI(GameObject* go) : GameObjectAI(go) { } - - bool OnGossipHello(Player* player) override - { - me->UseDoorOrButton(); - if (Creature* pNearestPrisoner = me->FindNearestCreature(NPC_SCOURGE_PRISONER, 5.0f, true)) - { - player->KilledMonsterCredit(NPC_SCOURGE_PRISONER, pNearestPrisoner->GetGUID()); - pNearestPrisoner->DisappearAndDie(); - } - - return true; - } - }; - - GameObjectAI* GetAI(GameObject* go) const override - { - return new go_scourge_cageAI(go); - } -}; - -/*###### ## go_blood_filled_orb ######*/ @@ -1346,7 +1308,6 @@ void AddSC_go_scripts() new go_tele_to_dalaran_crystal(); new go_tele_to_violet_stand(); new go_matrix_punchograph(); - new go_scourge_cage(); new go_blood_filled_orb(); new go_soulwell(); new go_amberpine_outhouse(); |