IsTimer

From Multi Theft Auto: Wiki
Revision as of 07:03, 12 July 2014 by MarioKart (talk | contribs) (OOP syntax added)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

This function checks if a variable is a timer.

[[{{{image}}}|link=|]] Note: This function is not reliable as timer ids are eventually recycled. Always make sure you nil variables containing a timer after it has expired.

Syntax

bool isTimer ( timer theTimer )

OOP Syntax Help! I don't understand this!

Method: timer:isValid(...)
Variable: .valid


Required Arguments

  • theTimer: The variable that we want to check.

Returns

Returns true if the passed value is a timer, false otherwise.

Example

Click to collapse [-]
Server

This example uses isTimer to prevent players from using chat/teamchat/me more than once a second, to prevent spammers.

-- This anti spam is just an example and won't work if you have other scripts and game modes which manipulate chat,
-- If you do then this script would need to be put with the other script/gamemode that handles chat else cancelEvent() won't work.

antiSpam = {} -- This makes a table called antiSpam
function antiChatSpam() -- The function that the event has called. Will stop all mainchat/teamchat/me spam.
	if isTimer(antiSpam[source]) then -- Check if timer is running using isTimer (this is an example of its use and all)
		cancelEvent()  -- If timer is running then cancel the event
		outputChatBox("Sorry bro, you may only send 1 message a second to prevent spam.", source, 255, 255, 0) -- Message to player
	else
		antiSpam[source] = setTimer(function(source) antiSpam[source] = nil end, 1000, 1, source) -- Timer lasting 1 second.
		-- The "function(source) antiSpam[source] = nil end" should clear the player from table after 1 second so he can chat again. 
                -- antiSpam[source] = setTimer(... is using the table to bind that player to the timer.
	end
end
addEventHandler("onPlayerChat", root, antiChatSpam) -- Event we're using, don't waste your time with getRootElement() (root is the same)
-- You now have an antispam to prevent people super spamming your chatbox!

See Also