azerothcore / azerothcore-wotlk

Complete Open Source and Modular solution for MMO
http://www.azerothcore.org
GNU Affero General Public License v3.0
6.51k stars 2.61k forks source link

Bash'ir Landing Stasis Prisons are hacked #15389

Open Gultask opened 1 year ago

Gultask commented 1 year ago

Current Behaviour

Summons Creature

Expected Blizzlike Behaviour

After interacting, the mobs inside (Ethereum Prisoners) should update their templates, removed Non-selectable flag, wait ~1s, remove flags 512 and 256, then attack the player.

After respawning, their respective prisons change state back and the IN_USE flag is removed.

Prisons have flag 32 NO_DESPAWN

Source

Retail

Steps to reproduce the problem

.

Extra Notes

No response

AC rev. hash/commit

https://github.com/azerothcore/azerothcore-wotlk/commit/6cf0f57616bb9417b02429a958387b6d16040acd

Operating system

Windows 10

Custom changes or Modules

No response

balleny commented 1 year ago

and the mobs contained in the prisons miss all their immunities (the one for this quest, and the ones in the prisons unlocked by the follow up quest) https://github.com/chromiecraft/chromiecraft/issues/5178

Gultask commented 1 year ago

Here's all I originally made for Thuk:

Doesn't Work because Gob state won't change after a second attempt

Wouldn't make it through either because it's not focused on fixing any of the others.

A more robust solution is needed, especially concerning the IC AI

-- On Reached Home / On Deat Despawn Stasis Chamber Alpha
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 20889;
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 20889);
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
(20889, 0, 0, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 3, 0, 15880, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ethereum Prisoner (Group Energy Ball) - On Respawn - Hack: Morph To Model 15880'),
(20889, 0, 1, 0, 38, 0, 100, 0, 1, 1, 0, 0, 0, 80, 2088900, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ethereum Prisoner (Group Energy Ball) - On Data Set 1 1 - Run Script'),
(20889, 0, 2, 0, 21, 0, 100, 0, 0, 0, 0, 0, 0, 41, 15000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ethereum Prisoner (Group Energy Ball) - On Reached Home - Despawn In 15000 ms'),
(20889, 0, 3, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 20, 185512, 10, 0, 0, 0, 0, 0, 0, 'Ethereum Prisoner (Group Energy Ball) - On Respawn - Set Data 1 1');

DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 2088900);
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
(2088900, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ethereum Prisoner (Group Energy Ball) - Actionlist - Remove Aura \'null\''),
(2088900, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 36, 22920, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ethereum Prisoner (Group Energy Ball) - Actionlist - Update Template To \'Thuk the Defiant\''),
(2088900, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 19, 33554432, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ethereum Prisoner (Group Energy Ball) - Actionlist - Remove Flags Not Selectable'),
(2088900, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 18, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ethereum Prisoner (Group Energy Ball) - Actionlist - Set Flags Immune To Players & Immune To NPC\'s'),
(2088900, 9, 4, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 0, 19, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ethereum Prisoner (Group Energy Ball) - Actionlist - Remove Flags Immune To Players & Immune To NPC\'s - Hack: Delayed to restore HP. Should be closer to 1200ms'),
(2088900, 9, 5, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 21, 100, 0, 0, 0, 0, 0, 0, 0, 'Ethereum Prisoner (Group Energy Ball) - Actionlist - Start Attacking'),
(2088900, 9, 6, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ethereum Prisoner (Group Energy Ball) - Actionlist - Set Event Phase 1');

DELETE FROM `smart_scripts` WHERE (`source_type` = 1 AND `entryorguid` = 185512);
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
(185512, 1, 0, 0, 70, 0, 100, 0, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 19, 20889, 10, 0, 0, 0, 0, 0, 0, 'Stasis Chamber Alpha - On Gameobject State Changed - Set Data 1 1'),
(185512, 1, 1, 2, 38, 0, 100, 0, 1, 1, 0, 0, 0, 202, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Stasis Chamber Alpha - On Data Set 1 1 - Set GO state to 1'),
(185512, 1, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 106, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Stasis Chamber Alpha - On Data Set 1 1 - Remove Gameobject Flags In Use');

DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 18551200);

DELETE FROM `creature_template_addon` WHERE (`entry` = 20889);
INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES
(20889, 0, 0, 0, 0, 0, 0, '39490 35465');

UPDATE `creature_template` SET `flags_extra` = 0, `unit_flags`=`unit_flags`|33554432|512|256 WHERE (`entry` = 20889);

UPDATE `creature` SET `id1`=20889, `spawntimesecs`=60 WHERE `id1`=22921 AND `guid`=70520;
UPDATE `gameobject_template_addon` SET `flags` = 32 WHERE (`entry` = 185512);