Making a Wait Without Waits...

Discussion in 'World Editor Help' started by Chaos_Knight, Apr 13, 2010.

  1. Chaos_Knight

    Chaos_Knight New Member

    Ratings:
    +39 / 0 / -0
    This is a kinda strange question (or not). I know the MUI creators sometimes say "Dont use waits use likely waits but not waits". I dont understand that thing.
    And how to create like that?

    //Chaos_Knight
     
  2. HeX.16

    HeX.16 Isn't Trollin You Right Now

    Ratings:
    +131 / 0 / -0
    Not sure if it works. But make a dummy with a timer. Then when its finshed(dies) make the actions?
     
  3. Chaos_Knight

    Chaos_Knight New Member

    Ratings:
    +39 / 0 / -0
    I know. But i saw someone how did write that thing..

    Like not using
    Trigger:
    • Wait 5 game-time seconds

    :confused:
     
  4. HeX.16

    HeX.16 Isn't Trollin You Right Now

    Ratings:
    +131 / 0 / -0
    huh i didnt catch that.
     
  5. Skippy

    Skippy Active Member

    Ratings:
    +39 / 0 / -0
    Whenever I need to wait, I start timer and save every useful information (triggering unit, target unit, ...) to hashtable.
     
  6. polo2005

    polo2005 Wana start playing LoL? http://tinyurl.com/369as27

    Ratings:
    +97 / 0 / -0
    why use a timer if you use hashtables? normal wiats works exactöy the same...
     
  7. Skippy

    Skippy Active Member

    Ratings:
    +39 / 0 / -0
    What kind of wait?
    "Normal" wait ignores game speed, lags and so on.
    Polled wait is not accurate (wait duration is always a little bit longer).
    Timer is the best choice.
     
  8. polo2005

    polo2005 Wana start playing LoL? http://tinyurl.com/369as27

    Ratings:
    +97 / 0 / -0
    so you mean that if you use like 20 unit at the same time that are casting an ability that are damaging a unit x seconds after it have been used,

    that 20 timers laggs lesser than 20 waits?

    can you prove that for me?

    since what i know gametime waits is exact.
     
  9. Komaqtion

    Komaqtion You can change this now in User CP.

    Ratings:
    +469 / 0 / -0
    No, wait are actually very inaccurate, if we are to compare them with timers... And they can't handle lower periods AT ALL, as they're limited to about 0.2 - 0.3 seconds or so :S
    And no, 20 timers for 20 units doesn't take up much memory if you know how to use them... If you use JASS, and know what you're doing, it will probably be more efficient :p
     
  10. polo2005

    polo2005 Wana start playing LoL? http://tinyurl.com/369as27

    Ratings:
    +97 / 0 / -0
    care to give me an example on how you use them "right"
    and also i mean for gui usage now :p
     
  11. SanKakU

    SanKakU Member

    Ratings:
    +21 / 0 / -0
  12. polo2005

    polo2005 Wana start playing LoL? http://tinyurl.com/369as27

    Ratings:
    +97 / 0 / -0
    umh?.... TSA does NOT keep counting when you pause the game?
    atleast didn't for meright now when i tested...
    and

    - Jesus4Lyf
    "In terms of the dilemma of do you use a triggercondition and timers, or do you use a triggeraction and sleeps, I'd say what you're doing is fine. Purists might disagree. No one knows what's more efficient - TSA or timers. It shouldn't matter anyway. "

    what i could read there is no 100% answear why timers is better
     
  13. polo2005

    polo2005 Wana start playing LoL? http://tinyurl.com/369as27

    Ratings:
    +97 / 0 / -0
    wops dubbel psot, sorry
     
  14. Skippy

    Skippy Active Member

    Ratings:
    +39 / 0 / -0
    Why timers are better? Look at PolledWait function:

    JASS:
    function PolledWait takes real duration returns nothing
        local timer t
        local real  timeRemaining
    
        if (duration > 0) then
            set t = CreateTimer()
            call TimerStart(t, duration, false, null)
            loop
                set timeRemaining = TimerGetRemaining(t)
                exitwhen timeRemaining <= 0
    
                // If we have a bit of time left, skip past 10% of the remaining
                // duration instead of checking every interval, to minimize the
                // polling on long waits.
                if (timeRemaining > bj_POLLED_WAIT_SKIP_THRESHOLD) then
                    call TriggerSleepAction(0.1 * timeRemaining)
                else
                    call TriggerSleepAction(bj_POLLED_WAIT_INTERVAL)
                endif
            endloop
            call DestroyTimer(t)
        endif
    endfunction


    PolledWait uses Timers.
     
    • Like Like x 1
  15. HeX.16

    HeX.16 Isn't Trollin You Right Now

    Ratings:
    +131 / 0 / -0
    YOu made it 3. YOu could just deleted 2nd post and edited 1st.
     
  16. polo2005

    polo2005 Wana start playing LoL? http://tinyurl.com/369as27

    Ratings:
    +97 / 0 / -0
    guess you learn new thing every day :p

    thx for the example
    and hex? wut?
     
  17. Chaos_Knight

    Chaos_Knight New Member

    Ratings:
    +39 / 0 / -0
    So, you can make it MUI.

    *LOOKING THROUGH ALL POSTS*: Okay, can someone make a short explanition of all whats been said, please? Thanks :thup:
     
  18. polo2005

    polo2005 Wana start playing LoL? http://tinyurl.com/369as27

    Ratings:
    +97 / 0 / -0
    actually the wiat itself doesn't make it non-mui, it varrius on how you use things AFTER the wait.
    for example... Triggering unit survives waits and so do dying unit.

    Code:
    example:
    e) 
    start the effect of an ability
    c) 
    ability being cast == w/e
    a) 
    wait 5 sec
    set life of Triggering unit to 100%
    this would work but this wouldn't

    Code:
    example:
    e) 
    start the effect of an ability
    c) 
    ability being cast == w/e
    a) 
    wait 5 sec
    set life of Target unit of ability being cast to 100%
    since Target unito f ability being cast doesn't survive waits.

    and since GUI now have hashtables... its MUCH easier to do GUI-MUI spells...

    and ofc... you should use timers instand of waits (i wont since then i would need another trigger... :p)
    of the reason that its execute the exact time.
     
  19. shadowmapper

    shadowmapper New Member

    Ratings:
    +0 / 0 / -0
    Can Waits be replaced with the TriggerSleepAction function to cut back on memory leakage, or are they essentially the same thing? I.e... call TriggerSleepAction( 1.00 )
     
  20. Weep

    Weep Godspeed to the sound of the pounding

    Ratings:
    +400 / 0 / -0
    They are the same thing - Wait in GUI turns into TriggerSleepAction in the resultant code.
     

Share This Page