|
savus Beginner
Joined: 19 Dec 2010 Posts: 10
|
Posted: Mon Jul 15, 2013 11:03 am
Triggering on the value of multiple variables. |
Im capturing mobs into different variables that look like this; @target1, @target2, @target3..and so on until @target20.
For example when I walk into a room with a guard and servant. The guard will add a value of 1 to @target1 and the servant to @target2.
#tr {A guard is here.} {target1 = @target1 + 1}
#tr {A servant is here.} {target2 = @target2 + 1}
Instead of firing my kill trigg every time I move into another room I would like to have it fire only when the value of any of the 20 target variables is greater then 0.
I tried this:
#IF (@target[1-20] > 0) {autowhack}
Im definitly not using this range expression correctly because its not working, and as Im writing this a thought occured. How would I make a variable that contains the value of the target variables?
@targetgroup = @target1 + @target2 + @target3....and so on?
Then I could use: #IF (@targetgroup > 0) {autowhack}
Any ideas and hints will be greatly appreciated. Even if it seems to be taking me in another direction. |
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4692 Location: Pensacola, FL, USA
|
Posted: Mon Jul 15, 2013 5:58 pm |
#tr {A guard is here.} {target1 = (@target1 + 1)}
you need the parenthesis to perform math on the variables i believe |
|
_________________ Discord: Shalimarwildcat |
|
|
|
MattLofton GURU
Joined: 23 Dec 2000 Posts: 4834 Location: USA
|
Posted: Mon Jul 15, 2013 9:29 pm |
Range expressions are only for trigger patterns, and you cannot put zscript commands like #if into a pattern (you can put functions in there, but none of the trigger pattern wildcards are allowed to go inside the function).
If you only want the first occurrence to fire, you could use a #loop with a datarecord variable:
Code: |
#loop 1,20 {
#if (@target.%i > 0) {
autowhack @target.%i
#break
}
} |
|
|
_________________ EDIT: I didn't like my old signature |
|
|
|
savus Beginner
Joined: 19 Dec 2010 Posts: 10
|
Posted: Mon Jul 15, 2013 10:16 pm |
Thanks for the quick responses guys. Im not having any trouble adding the value to an @target or firing on one target at a time. My question is after I walk into a room and all mobs are assigned to their variable is it possible to set up a trigger that will fire only if there is value greater than zero to any of the 20 @target variables?
|
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4692 Location: Pensacola, FL, USA
|
Posted: Tue Jul 16, 2013 6:53 am |
Add it to the incrementing trigger
target1 = (@target1 + 1)
#IF (@target1>0) {smack target1} |
|
_________________ Discord: Shalimarwildcat |
|
|
|
|
|