Ability Help

Verrak

New Member
Reaction score
4
I'm trying to make an ability that attacks all units on the map that have a specific buff.

Been trying to do it my self but i get lost with the variables.

Code:
IcyTempest
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Icy Tempest 
    Actions
        Set FrigidWindBuff = Frigid Winds 
        Set FrigidWindsLoc = (Position of (Matching unit))


The buff is frigid winds, but i dont know how to set the variable to target units with that buff
 

Renendaru

(Evol)ution is nothing without love.
Reaction score
309
It's under Boolean Comparison > Unit has specific Buff
 

Verrak

New Member
Reaction score
4
K couple questions.
This is what i got so far, i know it wrong. And i want it to have 6 levels (6 diffrent dummy casters)

Code:
IcyTempest
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Icy Tempest 
    Actions
        Set FrigidWindBuff = Frigid Winds 
        Set FrigidWindsLoc = (Position of (Matching unit))
        Set FrigidGroup = (Units in (Playable map area) matching (((Triggering unit) has buff Frigid Winds ) Equal to True))
        Unit Group - Pick every unit in (Last created unit group) and do (Unit - Create 1 IcyTempest Dummy (1) for (Owner of (Triggering unit)) at FrigidWindsLoc facing Default building facing degrees)
        Unit - Order (Last created unit) to Neutral Alchemist - Acid Bomb (Matching unit)
 

Cold

New Member
Reaction score
4
Replace matching (Triggering unit) with (Matching Unit)

Also you could set the acid bomb to 6 levels and do
Set level of Acid Bomb for Last Created Unit to level of Icy Tempest for Casting Unit
 

Azlier

Old World Ghost
Reaction score
461
You mix up quite a few things such as triggering unit, matching unit, etc.

I refined it.

Code:
IcyTempest
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Icy Tempest 
    Actions
        Set FrigidGroup = (Units in (Playable map area) matching (((Matching unit) has buff Frigid Winds ) Equal to True))
        Unit Group - Pick every unit in FrigidGroup and do Actions:
Set FrigidWindsLoc to Position of Picked Unit
      Unit - Create 1 IcyTempest Dummy (1) for (Owner of (Triggering unit)) at FrigidWindsLoc facing Default building facing degrees
Add 3.00 generic expiration timer to (Last Created Unit)
        Unit - Order (Last created unit) to Neutral Alchemist - Acid Bomb Picked Unit
     Custom Script: RemoveLocation(udg_FrigidWindsLoc)
 

Verrak

New Member
Reaction score
4
Sill didnt work, this is what i got
Dummy is made, has ability
Ability has range, time to be cast, no mana cost

Code:
IcyTempest
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Icy Tempest 
    Actions
        Set FrigidGroup = (Units in (Playable map area) matching (((Matching unit) has buff Frigid Winds ) Equal to True))
        Unit Group - Pick every unit in (Units in (Playable map area)) and do (Actions)
            Loop - Actions
                Set FrigidWindsLoc = (Position of (Picked unit))
        Unit - Create 1 IcyTempest Dummy (1) for (Triggering player) at FrigidWindsLoc facing Default building facing degrees
        Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
        Custom script:   call RemoveLocation( udg_FrigidWindsLoc )
 

Cold

New Member
Reaction score
4
Try this, and make sure to put those last actions inside the loop.

Code:
IcyTempest
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Icy Tempest 
    Actions
        Set FrigidGroup = (Units in (Playable map area) matching (((Matching unit) has buff Frigid Winds ) Equal to True))
        Unit Group - Pick every unit in ([B]FrigidGroup[/B]) and do (Actions)
            Loop - Actions
                Set FrigidWindsLoc = (Position of (Picked unit))
                Unit - Create 1 IcyTempest Dummy (1) for ([B]Owner of (Casting               
                Unit)[/B]) at FrigidWindsLoc facing Default building facing degrees
                Unit - Add a 3.00 second Generic expiration timer to (Last created        
                unit)
                Custom script:   call RemoveLocation( udg_FrigidWindsLoc )
 

TechGeek001

New Member
Reaction score
3
Don't forget to fix the player group leak.

I think I've found...something.
Line 8, you reference every unit on the map instead of those in Frigid Group.
Furthermore, the only position that's going to show up at FrigidWindsLoc is the last unit that is registered. If you need more than one unit, you're going to have to use an array.
 

Cold

New Member
Reaction score
4
Don't forget to fix the player group leak.

I think I've found...something.
Line 8, you reference every unit on the map instead of those in Frigid Group.
Furthermore, the only position that's going to show up at FrigidWindsLoc is the last unit that is registered. If you need more than one unit, you're going to have to use an array.

It should create the dummies at the picked point simultaneously I believe.
 

Verrak

New Member
Reaction score
4
Ok it works! but some side questions, how do i remove the player group leak?

and

the Trigger as a whole...the actual hero ability is warstomp with .01 range, .01 damage, .01 stun.

The dummy cast is acid bomb
armor pen 3
damage interval 0.00
attackspeed reduce .05
movespeed reduce .05
primary damage 75
secondary damage 0.0
Area of effect 0.01
cast range 1400
cooldown 4sec
duration 15seconds

Problem....it kills everything instatly...ive tested it with knights with 9000 life and they die.

Is thier some mechanic i overlooked.

here is the trigger
Code:
IcyTempest
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Icy Tempest 
    Actions
        Set FrigidGroup = (Units in (Playable map area) matching (((Matching unit) has buff Frigid Winds ) Equal to True))
        Unit Group - Pick every unit in FrigidGroup and do (Actions)
            Loop - Actions
                Set FrigidWindsLoc = (Position of (Picked unit))
                Unit - Create 1 IcyTempest Dummy (1) for (Owner of (Casting unit)) at FrigidWindsLoc facing Default building facing degrees
                Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
                Unit - Order (Last created unit) to Neutral Alchemist - Acid Bomb (Picked unit)
                Custom script:   call RemoveLocation( udg_FrigidWindsLoc )
 

Cold

New Member
Reaction score
4
Hmm, I'm not sure but try setting War Stomp to 0 damage, acid bomb Damage Interval to 9999 seconds. If that doesn't work post again.

Also outside of the loop you should add a
Custom Script: call DestroyGroup(udg_FrigidGroup)
at the end of the trigger to clear the group leak. I'm not sure what player leak the other poster is talking about but I see no reference to players so you should be fine.
 

Verrak

New Member
Reaction score
4
Setting it to its max (300) worked, i'm guessing it needs to be 1 or more, but i didnt test it.

Heres the finished working, to my knowlege, code for refrence for anyone.

Code:
IcyTempest
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Icy Tempest 
    Actions
        Set FrigidGroup = (Units in (Playable map area) matching (((Matching unit) has buff Frigid Winds ) Equal to True))
        Unit Group - Pick every unit in FrigidGroup and do (Actions)
            Loop - Actions
                Set FrigidWindsLoc = (Position of (Picked unit))
                Unit - Create 1 IcyTempest Dummy (1) for (Owner of (Casting unit)) at FrigidWindsLoc facing Default building facing degrees
                Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
                Unit - Set level of IcyTempest (IceLord)-1 for (Last created unit) to (Level of Icy Tempest  for (Triggering unit))
                Unit - Order (Last created unit) to Neutral Alchemist - Acid Bomb (Picked unit)
                Custom script:   call RemoveLocation( udg_FrigidWindsLoc )
        Custom script:   call DestroyGroup(udg_FrigidGroup)

Thank you for every one that helped!!!
 
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