SetTimer: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
(OOP syntax added)
Line 13: Line 13:
timer setTimer ( function theFunction, int timeInterval, int timesToExecute, [ var arguments... ] )
timer setTimer ( function theFunction, int timeInterval, int timesToExecute, [ var arguments... ] )
</syntaxhighlight>  
</syntaxhighlight>  
 
{{OOP||Timer.create||}}
===Required Arguments===  
===Required Arguments===  
*'''theFunction:''' The function you wish the timer to call. (Notice: Do not use a 'local' function, it must be global!)
*'''theFunction:''' The function you wish the timer to call. (Notice: Do not use a 'local' function, it must be global!)

Revision as of 07:00, 12 July 2014

This function allows you to trigger a function after a number of milliseconds have elapsed. You can call one of your own functions or a built-in function. For example, you could set a timer to spawn a player after a number of seconds have elapsed.

Once a timer has finished repeating, it no longer exists.

The minimum accepted interval is 50ms.

Multi Theft Auto guarantees that the timer will be triggered after at least the interval you specify. The resolution of the timer is tied to the frame rate (server side and client-side). All the overdue timers are triggered at a single point each frame. This means that if, for example, the player is running at 30 frames per second, then two timers specified to occur after 100ms and 110ms would more than likely occur during the same frame, as the difference in time between the two timers (10ms) is less than half the length of the frame (33ms). As with most timers provided by other languages, you shouldn't rely on the timer triggering at an exact point in the future.

Syntax

timer setTimer ( function theFunction, int timeInterval, int timesToExecute, [ var arguments... ] )

OOP Syntax Help! I don't understand this!

Method: Timer.create(...)


Required Arguments

  • theFunction: The function you wish the timer to call. (Notice: Do not use a 'local' function, it must be global!)
  • timeInterval: The number of milliseconds that should elapse before the function is called. (the minimum is 50)(1000 milliseconds = 1 second)
  • timesToExecute: The number of times you want the timer to execute, or 0 for infinite repetitions.

Optional Arguments

NOTE: When using optional arguments, you might need to supply all arguments before the one you wish to use. For more information on optional arguments, see optional arguments.

  • arguments: Any arguments you wish to pass to the function can be listed after the timesToExecute argument. Note that any tables you want to pass will get cloned, whereas metatables will get lost. Also changes you make in the original table before the function gets called won't get transferred.

Returns

Returns a timer pointer if the timer was set successfully, false if the arguments are invalid or the timer could not be set.

Example

Click to collapse [-]
Example

This example will output some text after a small delay.

-- define function to be called
function delayedChat ( text )
	outputChatBox ( "Delayed text: " .. text )
end

-- set a timer so the function is called after 1 second
setTimer ( delayedChat, 1000, 1, "Hello, World!" )

1 second after the line above has been executed, the text Delayed text: Hello, World! will be displayed in the chat box.

Click to collapse [-]
Example

This example will nest a whole function within a timer. This is nice for things like setting variables without having to call a function outside of your code block.

function mainFunction()
        outputChatBox ("Instant text!")
	setTimer ( function()
		outputChatBox ( "5 second delay text!" )
	end, 5000, 1 )
end

mainFunction() --call function

See Also