aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/master/2022_02_28_67_world_2020_11_09_05_world.sql61
-rw-r--r--src/server/scripts/World/go_scripts.cpp39
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();