[Trigger] Variable events?

Discussion in 'Starcraft 2 (SC2) Editor Help' started by Vellu, Aug 21, 2010.

  1. Vellu

    Vellu Real eyes realize real lies.

    Ratings:
    +60 / 0 / -0
    I was playing with the Galaxy Editor and noticed that you can't fire a trigger with variables. For example, I have a variable that counts kills, and then have a trigger that, let's say, raises enemy unit's maximum HP when the kill count-variable's value is ten. Or am I doing it wrong? Is there any other way to do things when a variable's value is X?
     
  2. Frozenwind

    Frozenwind System maker

    Ratings:
    +99 / 0 / -0
    Haven't checked the events, but this is an alternative:

    Code:
    event
       time elapsed is 0.00seconds
    conditions
    local variables
    actions
        wait until variable >= 10 checking every 0.5 seconds
        "your actions"
     
  3. Vellu

    Vellu Real eyes realize real lies.

    Ratings:
    +60 / 0 / -0
    I'll try that tomorrow. Thank you.:)
     
  4. Monsterous

    Monsterous In the Shadows, Lurking.

    Ratings:
    +100 / 0 / -0
    Or do a periodic timer, say every 0.5 seconds checking the condition that Variable >= 10

    Essentially the same thing, but incase map initialization fails. (Assuming 0 seconds passed is map initialization, i dont know.)
     
  5. Frozenwind

    Frozenwind System maker

    Ratings:
    +99 / 0 / -0
    map init = loading screen
    elapsed game time 0.00sec = in-game
     
  6. Viikuna

    Viikuna No Marlo no game.

    Ratings:
    +265 / 0 / -0
    Dude, if you are the one setting the variable, you can easily just do some function which both sets the variable, evaluates related triggers and runs them if needed.

    somthing like:


    funtion ModifyVariable
    - loops through all trigges in array and evaluates and maybe runs them too
    - modifys your variable

    function RegisterVariableEvent
    - is used to add your trigger to array, this is your custom register event thingy
     
  7. Monsterous

    Monsterous In the Shadows, Lurking.

    Ratings:
    +100 / 0 / -0
    And thus i learn something new :O
     
  8. Vellu

    Vellu Real eyes realize real lies.

    Ratings:
    +60 / 0 / -0
    I've never touched functions. Should I learn how to use 'em?
     
  9. Sevion

    Sevion The DIY Ninja

    Ratings:
    +423 / 0 / -0
    Yes, yes, and yes.
     
  10. Viikuna

    Viikuna No Marlo no game.

    Ratings:
    +265 / 0 / -0
    Im just starting to learn Andromeda now, so I dont really know too much about scripting in sc2, but back in the days of wc3 modding, the events used to trigger before the actual thingy "happens".

    Example being: unit takes damage -event triggers just before the damage is actually dealt, so you can do stuff before damage being dealt ( for example prevent damage if you want ) or stuff after damage being dealt ( with help of 0 sec wait/timer ).


    This is why something like this is how Id do it:


    public class killCounter{
    unit killer;
    int count;
    public killCounter( unit whichUnit ){
    unit=whichUnit;
    count=0;
    }
    public add( int value ){

    // do those trigger executing thingies.

    // for( int i=TriggersInArray;i=0;i--){
    // if evaluate Trigger {
    // execute Trigger;
    // }
    // }

    set count=count+value
    }

    }
     
  11. Sgqvur

    Sgqvur FullOfUltimateTruthsAndEt ernalPrinciples, i.e shi

    Ratings:
    +62 / 0 / -0
    Use the same event you in which you increment the kills count and put there a check to see if killscount >= 10 then do this else DoNothing(xD) maybe?

    Btw there is such an event in warcraft 3:
    native TriggerRegisterVariableEvent takes trigger whichTrigger, string varName, limitop opcode, real limitval returns event
    It works for reals only but kills count can be a real right? (3.1459 kills :p)

    PS: Its kinda funny they made replay rewinding but forgot about things like this.
     

Share This Page