• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

buff /effect trigger

Status
Not open for further replies.
Level 4
Joined
Aug 18, 2011
Messages
73
hi everyone
i tried to use this trigger to add a freeze effect and slowing down enemy units with buff Cold of cone

what wrong with this trigger and why it wont work?
  • Cone of Cold buff
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in (Units in (Playable map area) matching (((Picked unit) has buff Cone of Cold ) Equal to True)) and do (Actions)
        • Loop - Actions
          • Unit - Set (Picked unit) movement speed to ((Current movement speed of (Picked unit)) - ((Current movement speed of (Picked unit)) x 0.60))
          • Animation - Change (Picked unit)'s vertex coloring to (0.00%, 0.00%, 100.00%) with 0.00% transparency
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Picked unit) has buff Cone of Cold ) Equal to False
            • Then - Actions
              • Animation - Change (Picked unit)'s vertex coloring to (0.00%, 0.00%, 100.00%) with 0.00% transparency
              • Unit - Set (Picked unit) movement speed to (Default movement speed of (Picked unit))
            • Else - Actions
and how can i fix it? i need the pros guide!
 
I think you should do;
  • Unit - Set (Picked unit) movement speed to ((Default movement speed of (Picked unit)) - ((Default movement speed of (Picked unit)) x 0.60))
but that is bad also, coz you're checking everytime, so you should put a condition to run it just one time...

BTW:
- your group leaks
- This is useless " ((Picked unit) has buff Cone of Cold ) Equal to False" since it will filter the ONLY the unit who has that buff
- Picking units in playable map area to check buff using a looper 1.0/sec is bad coz you need to off this trigger somehow

SUGGETIONS:
- Make a group variable, if this is a spell, add the target to that group
- PIck all units in THAT GROUP and put conditions like you mentioned above, this way it will pick units with or w/o buff
- If no buff detecetd, remove unit from group

EDIT; something like this
  • Cone of Cold buff
  • Events
    • Time - Every 1.00 seconds of game time
  • Conditions
  • Actions
    • Unit Group - Pick every unit in (YOUR_GROUP) and do (Actions)
      • Loop - Actions
        • If - Conditions ((Picked unit) has buff Cone of Cold ) Equal to False
        • Then - Actions
          • Animation - Change (Picked unit)'s vertex coloring to (0.00%, 0.00%, 100.00%) with 0.00% transparency
          • Unit - Set (Picked unit) movement speed to (Default movement speed of (Picked unit))
          • Custom script: call GroupRemoveUnit(udg_YOUR_GROUP, GetEnumUnit())
          • Custom script: if IsUnitGroupEmptyBJ(udg_YOUR_GROUP) then
          • Trigger - Turn Off this trigger
          • Custom script: endif
        • Else - Actions
 
Status
Not open for further replies.
Top