Using variable in events?

Wratox1

Member
Reaction score
22
Hello, can someone tell me how i can use variables in events? or maybe someone can help me with a workaround? if there is no way i can use variables in events i will will post what i need to do.
 

Jedi

New Member
Reaction score
63
There is only real variable event as you can see, but you can add events later with Trigger - add event action.
 

Wratox1

Member
Reaction score
22
didnt think of that:) will try it:)

Edit:

it worked!:) however, the spell im working on is called Sticky Eye, a hero called Watcher can place a ward, a Sticky Eye, which will get stuck to an enemy hero if the enemy hero comes too close to the eye, that was what i needed the variable in event for(the comes within range event), but i have another prolem with my triggers.

At the moment it doesnt matter if its an enemy or allied hero that comes close, when i place the ward and walk too close it gets attached to the hero and is moved as the hero moves, but when i place the ward a second time it gets moved to the same hero that i used last time instantly, can someone take a look at my triggers and find the problem?

here are my triggers:

Trigger:
  • sticky eye init
    • Events
      • Unit - A unit enters (Playable map area)
    • Conditions
      • (Unit-type of (Triggering unit)) Equal to Sticky Eye
    • Actions
      • Set sticky_eye = (Triggering unit)
      • Trigger - Add to sticky eye <gen> the event (Unit - A unit comes within 80.00 of sticky_eye)


Trigger:
  • sticky eye
    • Events
    • Conditions
      • ((Triggering unit) is A Hero) Equal to True
    • Actions
      • Set sticky_eye_hero = (Triggering unit)
      • Trigger - Turn on sticky eye move <gen>


Trigger:
  • sticky eye move
    • Events
      • Time - Every 0.20 seconds of game time
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • sticky_eye Equal to No unit
        • Then - Actions
          • Set sticky_eye_hero = No unit
          • Trigger - Turn off (This trigger)
          • Game - Display to (All players) the text: ftnjndghndghn
        • Else - Actions
          • Unit - Turn collision for sticky_eye Off
          • Set sticky_eye_point = (Position of sticky_eye_hero)
          • Unit - Move sticky_eye instantly to sticky_eye_point
          • Custom script: call RemoveLocation(udg_sticky_eye_point)
 

evilwolf

Member
Reaction score
11
After you're done the ability set sticky_eye = no unit this should solve the problem...
 

DioD

New Member
Reaction score
57
you must register new ever for every "variable" since trigger destruction not possible from GUI you forced to use jass for this.
 

evilwolf

Member
Reaction score
11
@Diod nice unclear comment...
Once you're done casting the ability remove the sticky eye variable.
Do this to destroy the variable:
Custom script: call RemoveUnit(udg_Temp_Unit)
Don't worry, this is kind of like setting it to no unit, and you can reuse the variable...
 

evilwolf

Member
Reaction score
11
You haven't created a trigger about that yet
Create a new trigger that will destroy the unit when sticky eye ends.
 

Wratox1

Member
Reaction score
22
well, now i have another problem, my triggers dont work at all! now when i place the ward and walk close to it nothing happens!? could you explain why?
 

Wratox1

Member
Reaction score
22
Trigger:
  • sticky eye init
    • Events
      • Unit - A unit enters (Playable map area)
    • Conditions
      • (Unit-type of (Triggering unit)) Equal to Sticky Eye
    • Actions
      • Game - Display to (All players) the text: ftnjndghndghn
      • Set sticky_eye = (Triggering unit)
      • Trigger - Add to sticky eye <gen> the event (Unit - A unit comes within 80.00 of sticky_eye)


Trigger:
  • sticky eye
    • Events
    • Conditions
      • ((Triggering unit) is A Hero) Equal to True
    • Actions
      • Game - Display to (All players) the text: ftnjndghndghn
      • Set sticky_eye_hero = (Triggering unit)
      • Trigger - Turn on sticky eye move <gen>


Trigger:
  • sticky eye move
    • Events
      • Time - Every 0.20 seconds of game time
    • Conditions
    • Actions
      • Game - Display to (All players) the text: ftnjndghndghn
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • sticky_eye Equal to No unit
        • Then - Actions
          • Set sticky_eye_hero = No unit
          • Trigger - Turn off (This trigger)
        • Else - Actions
          • Game - Display to (All players) the text: ftnjndghndghn
          • Unit - Turn collision for sticky_eye Off
          • Set sticky_eye_point = (Position of sticky_eye_hero)
          • Unit - Move sticky_eye instantly to sticky_eye_point
          • Custom script: call RemoveLocation(udg_sticky_eye_point)


Trigger:
  • sticky eye remove
    • Events
      • Unit - A unit leaves (Playable map area)
    • Conditions
      • (Unit-type of (Triggering unit)) Equal to Sticky Eye
    • Actions
      • Set sticky_eye = No unit
      • Set sticky_eye_hero = No unit
      • Game - Display to (All players) the text: mumumum
 

evilwolf

Member
Reaction score
11
Hmm..
It might be better to just create a Timer array when you start casting the ability...
But don't show it to anyone, it will be like a dummy timer....
And when the timer array ends destroy the unit...
This is currently the best way to destroy any ability related dummies...
Or just make the sticky_eye unit variable an array...
These are the best methods as far as I know...
 

Wratox1

Member
Reaction score
22
the wierd thing is that it worked before, and the ward ability is based on the witch doctors ward, just fyi.

it would be great if we could do this without triggering(i know we cant, but i want as less triggering as possible)

Edit: one thing i didnt think of until now, none of the debug messages are displayed.. it seems that when i place the ward it is not registered as a unit enters playable map area? wierd!

Edit2: apparently there was another trigger which caused the sticky eye init to not run or something, i dont really know, but when i deleted it, it worked again, so now im back where i was before, i cant use my spell twice!

where did you say i should put the remove line? in my remove trigger?
 

evilwolf

Member
Reaction score
11
the wierd thing is that it worked before, and the ward ability is based on the witch doctors ward, just fyi.

it would be great if we could do this without triggering(i know we cant, but i want as less triggering as possible)

Edit: one thing i didnt think of until now, none of the debug messages are displayed.. it seems that when i place the ward it is not registered as a unit enters playable map area? wierd!
Hmm...
There is an ability based on Sticky Eye, Its called Wand of Shadowsight
It Gives the player vision of a target unit until that unit is dispelled, but it dosen't create a unit.
So we can after all...
 

evilwolf

Member
Reaction score
11
How about you just post a copy of your map or just the triggers...
Cause something is really messes up...
Just post it and I'll edit it and make it work (if possible)
I'll try to give it back tomorrow.
 
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