GetPlayerIdleTime: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
(→‎Syntax: OOP syntax added)
 
Line 18: Line 18:
This example will kick a player if they don't move for 5 minutes and the resource has access to "function.kickPlayer"
This example will kick a player if they don't move for 5 minutes and the resource has access to "function.kickPlayer"
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
function checkAFKPlayers()
setTimer(
    for index, thePlayer in ipairs(getElementsByType("player"))do -- Loop all online players
    function()
        if (getPlayerIdleTime(thePlayer) > 300000) then -- Player hasn't moved for 300,000ms (5 minutes)
        for _, player in ipairs(getElementsByType("player"))do -- Loop thru every player
            kickPlayer(thePlayer, "Idle for 5 minutes") -- Kick the idle player
            if (getPlayerIdleTime(player) > 300000) then -- Player hasn't moved for 300,000ms (5 minutes)
                kickPlayer(player, "Idle for 5 minutes") -- Kick the idling player
            end
         end
         end
     end
     end,
end
30000, 0) -- Timer to execute every 30 seconds, checking for idlers
setTimer(checkAFKPlayers, 30000, 0) -- Timer to execute every 30 seconds, checking for idlers
 
</syntaxhighlight>
</syntaxhighlight>
</section>
</section>

Latest revision as of 11:52, 13 June 2018

This function gets the amount of time in milliseconds that a players position has not changed.

Syntax

int getPlayerIdleTime ( player thePlayer )

OOP Syntax Help! I don't understand this!

Method: player:getIdleTime(...)
Variable: .idleTime


Required Arguments

  • thePlayer: The player you wish to get the idle time of.

Returns

Returns the amount of time in milliseconds that a player has been idle, false otherwise.

Example

Click to collapse [-]
Serverside example

This example will kick a player if they don't move for 5 minutes and the resource has access to "function.kickPlayer"

setTimer(
    function()
        for _, player in ipairs(getElementsByType("player"))do -- Loop thru every player
            if (getPlayerIdleTime(player) > 300000) then -- Player hasn't moved for 300,000ms (5 minutes)
                kickPlayer(player, "Idle for 5 minutes") -- Kick the idling player
            end
        end
    end,
30000, 0) -- Timer to execute every 30 seconds, checking for idlers

Requirements

Minimum server version 1.1.1-9.03316
Minimum client version n/a

Note: Using this feature requires the resource to have the above minimum version declared in the meta.xml <min_mta_version> section. e.g. <min_mta_version server="1.1.1-9.03316" />

See Also