SetMinuteDuration: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
__NOTOC__
__NOTOC__
{{Server client function}}
{{Server client function}}
Sets the real-world duration of an ingame minute. The GTA default is 1000.
Sets the real-world duration of an ingame minute. The GTA default is 1000.
Line 17: Line 16:
==Example==
==Example==
This example will make the ingame time correspond to the real-world time of the server.
This example will make the ingame time correspond to the real-world time of the server.
{{Needs_Checking|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}}
<section class="server" name="Server" show="true">
<section class="server" name="Server" show="true">
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
function syncRealTime(player)
function resourceStart()
    -- get the current real time and send it to the player
     local realtime = getRealTime()
     local realtime = getRealTime()
    triggerClientEvent(player, "doSyncRealTime", getRootElement(), realtime.hour, realtime.minute)
end


function resourceStart()
    setTime(realtime.hour, realtime.minute)
    -- when the resource starts, send the real time to all players currently in the server
     setMinuteDuration(60000)
    local players = getElementsByType("player")
     for i,player in ipairs(players) do
        syncRealTime(player)
    end
end
end
addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), resourceStart)
addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), resourceStart)
function playerJoin()
    -- send the real time to joining players
    syncRealTime(source)
end
addEventHandler("onPlayerJoin", getRootElement(), playerJoin)
</syntaxhighlight>
</section>
<section class="client" name="Client" show="true">
<syntaxhighlight lang="lua">
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)
</syntaxhighlight>
</syntaxhighlight>
</section>
</section>

Revision as of 12:19, 29 June 2010

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.

Click to collapse [-]
Server
function resourceStart()
    local realtime = getRealTime()

    setTime(realtime.hour, realtime.minute)
    setMinuteDuration(60000)
end
addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), resourceStart)

See Also