Anyone care to explain timer usage...?

Azlier

Old World Ghost
Reaction score
461
Well, it's not like Stuff even runs unless you call TriggerExecute on your trigger.

That Run on Map Initialization box doesn't work for local triggers.

I don't even see why myFunct should run.
 

Azlier

Old World Ghost
Reaction score
461
Is it a library/scope initializer?
 

Lyerae

I keep popping up on this site from time to time.
Reaction score
105
No...
But I used a GUI trigger with the event as "Map Initialization" to call "Stuff", and it worked, so I guess I figured that out... I think...
 

Azlier

Old World Ghost
Reaction score
461
Add a debug message in the Stuff function. myFunct, too.
 

Lyerae

I keep popping up on this site from time to time.
Reaction score
105
JASS:
function Callback takes nothing returns boolean // Only works if I call "Stuff" with a GUI trigger.
    local integer Data = KT_GetData()
    local boolean b = false
    call BJDebugMsg("Just a test, to see if I'm actually doing this right...")
    if b == true then
        return true
    endif
    return false
endfunction

function Stuff takes nothing returns nothing
    call KT_Add(function Callback, 0, 1)
    call BJDebugMsg("Debugging Stuff") // Doesn't do anything, unless I call it with GUI.
endfunction
function myFunct takes nothing returns nothing
    local trigger t = CreateTrigger( )
    call TriggerAddAction(t, function Stuff)
    call BJDebugMsg("Debugging myFunct") // Doesn't do anything
endfunction
 

Azlier

Old World Ghost
Reaction score
461
JASS:
scope Blah initializer Stuff

function Callback takes nothing returns boolean // Only works if I call "Stuff" with a GUI trigger.
    local integer Data = KT_GetData()
    local boolean b = false
    call BJDebugMsg("Just a test, to see if I'm actually doing this right...")
    if b == true then
        return true
    endif
    return false
endfunction

function Stuff takes nothing returns nothing
    call KT_Add(function Callback, 0, 1)
    call BJDebugMsg("Debugging Stuff") // Doesn't do anything, unless I call it with GUI.
endfunction

endscope
 

Jesus4Lyf

Good Idea™
Reaction score
397
Azlier is right.

Here's a neat example.
JASS:
scope Cool initializer OnInit
    // Some data you'd like to attach. This might store the
    // unit and speed in a knockback system for example.
    //
    // In this case, it only stores a message to display,
    // and how many times it has displayed so far.
    private struct Data
        integer count = 0
        string message = null
    endstruct
    
    // The callback.
    private function Callback takes nothing returns boolean
        // Load KT attached data.
        local Data d = Data(KT_GetData())
        
        // Do things.
        set d.count = d.count + 1
        call BJDebugMsg(d.message)
        
        // If it is time to end this...
        if d.count == 5 then
            call d.destroy()
            return true
        endif
        
        // Default: keep ticking
        return false
    endfunction
    
    private function OnInit takes nothing returns nothing
        // Make a struct instance and pass it to Callback through KT every 0.5 seconds.
        local Data d = Data.create()
        set d.message = "Hi!"
        call KT_Add(function Callback, d, 0.5)
        
        // New one (completely separate to above):
        set d = Data.create()
        set d.message = "Message #2!"
        call KT_Add(function Callback, d, 0.7)
    endfunction
endscope
 

SanKakU

Member
Reaction score
21
JASS:
function Callback takes nothing returns boolean
    local integer Data = KT_GetData() //Get attached data. If you don't want it, just call KT_GetData().
    //Do stuff.
    if something then
        //Returning true makes the system stop calling the callback.
        return true
    endif
    //Returning false tells the system to call the function when the timer expires again.
    return false
endfunction

function Omg takes nothing returns nothing
    call KT_Add(function Callback, data, period)
endfunction

//ok first of all...WHAT IS DATA????????!?!?!??!

//secondly...what's the difference between data and period?
//i mean seriously...if this is an alternative to triggersleepaction
//then i am totally baffled.  last i checked that function takes one number!
 

Jesus4Lyf

Good Idea™
Reaction score
397
A simple "wait" using KT2 will always look something like this:
JASS:
private function AfterWait takes nothing returns boolean
    local <structtype> d=<structtype>(KT_GetData())
    
    // Do things.
    
    call d.destroy()
    return true // No returning false for a simple wait, it only fires one time.
endfunction

function Something tak...
    local <structtype> d=<structtype>.create()

    //Do things before the wait.
   
    set d.<something>=<some value you'll need to use after the wait>
    //... more of these
   
    call KT_Add(function AfterWait, d, <wait duration>)
endfunction

You should post what you PM'd me here instead. It is easier to ask publicly for advice than to respond to 50 PMs...
... And as I said just before your post, I prefer people asking questions in the system thread.

PS. Nothing is as easy to use as TriggerSleepAction. ;)
 

Lyerae

I keep popping up on this site from time to time.
Reaction score
105
But doesn't [ljass]TriggerSleepAction[/ljass] not work properly?
 

Lyerae

I keep popping up on this site from time to time.
Reaction score
105
Yeah, that's what I ment... I really need to word things better. >.<
 
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