1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. The SharpCraft World Editor Extended (WEX) has been updated for the latest Warcraft 3 version: Forum.
    Dismiss Notice
  3. The Paired Modeling/Texturing Contest #3 - Leaders has begun! Artists group up and struggle! May the best team lead the run.
    Dismiss Notice

buff /effect trigger

Discussion in 'World Editor Help Zone' started by Blackair, Jul 16, 2012.

  1. Blackair

    Blackair

    Joined:
    Aug 18, 2011
    Messages:
    76
    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!
     
  2. mckill2009

    mckill2009

    Joined:
    Mar 10, 2009
    Messages:
    4,681
    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