Trigger Question - Why only 1 unit affected by Aerial Shackles instead of all?

Volkof

Well-Known Member
Reaction score
31
Hi all. Its been a while since I posted a thread, but I needed a problem with a trigger that I couldnt solve.

Here is the spell description.
Code:
[B]Iron Cuffs[/B]

Summons an Iron Ball that chains all nearby enemy units to it. Chained units can neither move nor attack. Lasts 10 seconds.

Level 1 - Deals 100 damage per second. 
Level 2 - Deals 200 damage per second. 
Level 3 - Deals 300 damage per second.

Code:
Iron Cuffs
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Iron Cuffs [Boss]
    Actions
        Set IronCuffs_Caster = (Triggering unit)
        Set IronCuffs_CastPoint = (Target point of ability being cast)
        Set local_Group = (Units within 600.00 of (Target point of ability being cast) matching ((((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) is A structure) Equal to False))
        Unit Group - Pick every unit in local_Group and do (Actions)
            Loop - Actions
                Set local_DummyPoint = IronCuffs_CastPoint
                Unit - Create 1 Dummy Unit for (Owner of IronCuffs_Caster) at local_DummyPoint facing Default building facing degrees
                Unit - Add a 10.00 second Generic expiration timer to (Last created unit)
                Unit - Add Iron Cuffs Shackles to (Last created unit)
                Unit - Set level of Iron Cuffs Shackles for (Last created unit) to (Level of Iron Cuffs for IronCuffs_Caster)
                Unit - Order (Last created unit) to Human Dragonhawk Rider - Aerial Shackles (Picked unit)
                Custom script:   call RemoveLocation(udg_local_DummyPoint)
        Custom script:   call DestroyGroup(udg_local_Group)


This spell is based on Inferno. When casted, it summons an Iron Ball model (Dummy unit) at Target Point. Then the Iron Ball will shackle all nearby enemy units.

According to the trigger, after the spell is casted, it will pick every units within 600AOE, create a Dummy Unit at position of ability casted for every picked unit, and cast Aerial Shackles on them.
 

KaerfNomekop

Swim, fishies. Swim through the veil of steel.
Reaction score
613
So what's the problem?

EDIT: Silly me. I didn't notice the title. Try this instead.
Trigger:
  • Unit Group - Pick every unit in TempUnitGroup and do (Actions)
    • Loop - Actions
      • Unit - Create 1 Dummy for (Owner of (Triggering unit)) at TempPoint facing Default building facing degrees
      • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
      • Unit - Add Iron Cuffs (Dummy) to (Last created unit)
      • Unit - Order (Last created unit) to Night Elf Keeper Of The Grove - Entangling Roots (Picked unit)

This works. I don't know why yours doesn't, but I'm thinking it has something to do with the fact that Aerial Shackles is channeling. Anyway, why not just do an area stun?

P.S. Type [wc3.] and [/wc3.] without the dots at the start and end of your triggers, to make them look like they did in the editor.
 

WolfieeifloW

WEHZ Helper
Reaction score
372
Units can still cast spells in Entangling Roots.

You set IronCuffs_CastPoint, but then don't use it in the local_Group selection.
Also, you set the level of the spell to the level on the boss.
Does the boss actually have the ability, and it is leveled?
Just use the IronCuffs_CastPoint, instead of creating another point (local_DummyPoint).
Then, destroy it outside of the loop:
Trigger:
  • Iron Cuffs
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Iron Cuffs [Boss]
    • Actions
      • Set IronCuffs_Caster = (Triggering unit)
      • Set IronCuffs_CastPoint = (Target point of ability being cast)
      • Set local_Group = (Units within 600.00 of IronCuffs_CastPoint matching ((((Matching unit) belongs to an enemy of (Owner of IronCuffs_Caster)) Equal to True) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) is A structure) Equal to False))
      • Unit Group - Pick every unit in local_Group and do (Actions)
        • Loop - Actions
          • Unit - Create 1 Dummy Unit for (Owner of IronCuffs_Caster) at IronCuffs_CastPoint facing Default building facing degrees
          • Unit - Add a 10.00 second Generic expiration timer to (Last created unit)
          • Unit - Add Iron Cuffs Shackles to (Last created unit)
          • Unit - Set level of Iron Cuffs Shackles for (Last created unit) to (Level of Iron Cuffs for IronCuffs_Caster)
          • Unit - Order (Last created unit) to Human Dragonhawk Rider - Aerial Shackles (Picked unit)
      • Custom script: call DestroyGroup(udg_local_Group)
      • Custom script: call RemoveLocation(udg_IronCuffs_CastPoint)
      • Custom script: set udg_IronCuffs_Caster = null

Oh, and you set the level of Iron Cuffs Shackles to the level of Iron Cuffs, when the ability cast is supposed to be Iron Cuffs [Boss]?
 

Volkof

Well-Known Member
Reaction score
31
Units can still cast spells in Entangling Roots.

Trigger:
  • Iron Cuffs
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Iron Cuffs [Boss]
    • Actions
      • Set IronCuffs_Caster = (Triggering unit)
      • Set IronCuffs_CastPoint = (Target point of ability being cast)
      • Set local_Group = (Units within 600.00 of IronCuffs_CastPoint matching ((((Matching unit) belongs to an enemy of (Owner of IronCuffs_Caster)) Equal to True) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) is A structure) Equal to False))
      • Unit Group - Pick every unit in local_Group and do (Actions)
        • Loop - Actions
          • Unit - Create 1 Dummy Unit for (Owner of IronCuffs_Caster) at IronCuffs_CastPoint facing Default building facing degrees
          • Unit - Add a 10.00 second Generic expiration timer to (Last created unit)
          • Unit - Add Iron Cuffs Shackles to (Last created unit)
          • Unit - Set level of Iron Cuffs Shackles for (Last created unit) to (Level of Iron Cuffs for IronCuffs_Caster)
          • Unit - Order (Last created unit) to Human Dragonhawk Rider - Aerial Shackles (Picked unit)
      • Custom script: call DestroyGroup(udg_local_Group)
      • Custom script: call RemoveLocation(udg_IronCuffs_CastPoint)
      • Custom script: set udg_IronCuffs_Caster = null


About the Pick every unit portion, wont it cause a point leak since you create a Dummy Unit for every Picked Unit?
 

Dirac

22710180
Reaction score
147
Location = Other Location
That bugs, i can see it in your trigger (Set local_DummyPoint = IronCuffs_CastPoint)

-Locations only leak when the variable is set to another value while overriding the last one, not every time you use it
-Theres no need for that local in your triggers
-Use
Trigger:
  • tags
    • EDIT: i don't think unit variables leak at all
 

WolfieeifloW

WEHZ Helper
Reaction score
372
Could you post the finished, working trigger please?
It helps for future people who have this problem and find this thread.

Thanks, and glad it's working!
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top