skipTime – Talk

From Bohemia Interactive Community
Revision as of 11:52, 11 January 2023 by Lou Montana (talk | contribs) (Text replacement - "<code>" to "<code style="display: block">")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

To explain my most recent edit: Previously I had put in the following:

A useful piece of code that will enable the mission to skip forward to any given time, irrespective of what time it happens to be in the mission is:

skipTime (_timeToSkipTo - daytime + 24 ) % 24


This was subsequently changed by Str to:

skipTime (-daytime + _timeToSkipTo)

That change was not correct.

To understand why this is the case imagine that _timeToSkipTo is 02:00 and that the current time in the mission is 23:30 (daytime = 23.50). In otherwords it is nearly midnight and you want to skip to the early hours of the next morning.

Using skipTime (_timeToSkipTo - daytime + 24 ) % 24 will work as follows:

_timeToSkipTo - daytime = -21.50

_timeToSkipTo - daytime + 24 = 2.50

(_timeToSkipTo - daytime + 24 ) % 24 = 2.5

So the mission will skip time 2.5 hours forward, which is correct.


Using skipTime (-daytime + _timeToSkipTo) will work as follows:

-daytime + _timeToSkipTo = -21.50

So the mission will skip backwards 21.5 hours, which is not correct.


Note that in the more simple case of _timeToSkipTo = 11.00 and daytime = 10.00

Then:

_timeToSkipTo - daytime = 1.0

_timeToSkipTo - daytime + 24 = 25.0

(_timeToSkipTo - daytime + 24 ) % 24 = 1.0

So it still works correctly.


--THobson 20:51, 13 August 2006 (CEST)

Oh sorry, I didn't noticed that % 24 and changed it to "correct" way. It is, but only until you want to skip to another day. My fault. --Str 21:38, 13 August 2006 (CEST)


If you want players who join a server to have their weather and time synced exactly like everyone else, just run skipTime (time / 60) // time is sec & skipTime is mina few seconds after they join since time is automatically synced. I.e. if the game has already been running for 600 sec then your time will equal 600 (at very start it equals 0 until it has had time to auto-sync with server) so you should skipTime 10 minutes. --Doolittle 08:01, 6 October 2007 (CEST)