SetMinuteDuration

From Multi Theft Auto: Wiki
Revision as of 15:18, 27 June 2010 by Damage22 (talk | contribs)
Jump to navigation Jump to search


Sets the real-world duration of an ingame minute. The GTA default is 1000.

Syntax

bool setMinuteDuration ( int milliseconds )

Required Arguments

  • milliseconds: the new duration of an ingame minute

Returns

Returns true if successful, false otherwise.

Example

This example will make the ingame time correspond to the real-world time of the server.


Dialog-information.png This article needs checking.

Reason(s): In this example, triggerClientEvent, if executed immediately on resource start, gives an error, that "doSyncRealTime" event is not registered on client side, although it does work on player join. Hence the example won't work, unless resourceStart() execution is delayed using a timer
Click to collapse [-]
Server
function syncRealTime(player)
    -- get the current real time and send it to the player
    local realtime = getRealTime()
    triggerClientEvent(player, "doSyncRealTime", getRootElement(), realtime.hour, realtime.minute)
end

function resourceStart()
    -- when the resource starts, send the real time to all players currently in the server
    local players = getElementsByType("player")
    for i,player in ipairs(players) do
        syncRealTime(player)
    end
end
addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), resourceStart)

function playerJoin()
    -- send the real time to joining players
    syncRealTime(source)
end
addEventHandler("onPlayerJoin", getRootElement(), playerJoin)
Click to collapse [-]
Client
function syncRealTime(h, m)
    -- set the ingame time
    setTime(h, m)
    -- make ingame time progress at the same rate as real time (60 seconds per minute)
    setMinuteDuration(60000)
end
-- attach the above function to the doSyncRealTime event
addEvent("doSyncRealTime", true)
addEventHandler("doSyncRealTime", getRootElement(), syncRealTime)

See Also