azerothcore / azerothcore-wotlk

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

Crust Burster Moving in Melee Range #19001

Open justurn opened 5 months ago

justurn commented 5 months ago

Current Behaviour

Crust Burster worms move in combat when in melee range as they trigger the reposition movement handler.

Expected Blizzlike Behaviour

Crust Bursters cannot move in combat

Source

https://www.wowhead.com/tbc/npc=16844/crust-burster

Steps to reproduce the problem

  1. Teleport to Hellfire Peninsula
  2. Engage in combat with a Crust Burster
  3. Move into Melee range and observe the Burster sliding away

Extra Notes

This can be fixed with an SAI tweak to use the ROOT effect in combat on the Crust Bursters. By applying a root effect in combat CanFreeMove will return false, which then causes IsFreeToMove to return false. Then MoveBcackwardsChecks also fails so the reposition movement handler can't run on these.

image

image

image

-- Marauding Crust Burster DELETE FROM smart_scripts WHERE (entryorguid = 16857) AND (source_type = 0) AND (id IN (7, 11)); 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, event_param6, 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 (16857, 0, 7, 0, 61, 0, 100, 512, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Marauding Crust Burster - On Aggro - Set Rooted On'), (16857, 0, 11, 0, 25, 0, 100, 512, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Marauding Crust Burster - On Aggro - Set Rooted Off');

-- Crust Burster DELETE FROM smart_scripts WHERE (entryorguid = 16844) AND (source_type = 0) AND (id IN (7, 11)); 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, event_param6, 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 (16844, 0, 7, 0, 61, 0, 100, 512, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Marauding Crust Burster - On Aggro - Set Rooted On'), (16844, 0, 11, 0, 25, 0, 100, 512, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Marauding Crust Burster - On Aggro - Set Rooted Off');

-- Greater Crust Burster DELETE FROM smart_scripts WHERE (entryorguid = 21380) AND (source_type = 0) AND (id IN (7, 11)); 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, event_param6, 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 (21380, 0, 7, 0, 61, 0, 100, 512, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Marauding Crust Burster - On Aggro - Set Rooted On'), (21380, 0, 11, 0, 25, 0, 100, 512, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Marauding Crust Burster - On Aggro - Set Rooted Off');

AC rev. hash/commit

766ce24367e7+

Operating system

Linux

Custom changes or Modules

Using a HD creature model on the worms

image

justurn commented 5 months ago

This behavior is also present on the Tunnelers. Same fix applies

-- Tunneler DELETE FROM smart_scripts WHERE (entryorguid = 16968) AND (source_type = 0) AND (id IN (7, 11)); 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, event_param6, 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 (16968, 0, 7, 0, 61, 0, 100, 512, 0, 0, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tunneler - On Aggro - Set Rooted On'), (16968, 0, 11, 0, 25, 0, 100, 512, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Tunneler - On Aggro - Set Rooted Off');