Real Time Clock

From GTAMods Wiki
Revision as of 17:44, 3 June 2007 by Spaceeinstein (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This code snippet is a modification that attempts to make one game minute equal to one real minute.

Installation

This installation guide uses the latest version of the Sanny Builder.

Find

004F: create_thread @MS_BIKE_MISSIONS

Add below

004F: create_thread @RTMOD

Find

//-------------Mission 0---------------

Add above

:RTMOD
03A4: name_thread 'RTMOD'

:RTMOD_11
0001: wait 0 ms
00BF: 0@ = current_time_hours, 1@ = current_time_minutes
00C0: set_current_time_hours_to 0@ minutes_to 1@
01B6: set_weather 0
00D6: if
0019:   32@ > 59999
004D: jump_if_false @RTMOD_11
0006: 32@ = 0
000A: 1@ += 1
00D6: if
0019:   1@ > 59
004D: jump_if_false @RTMOD_128
0006: 1@ = 0
000A: 0@ += 1
00D6: if
0019:   0@ > 23
004D: jump_if_false @RTMOD_128
0006: 0@ = 0

:RTMOD_128
00C0: set_current_time_hours_to 0@ minutes_to 1@
0002: jump @RTMOD_11

What's in it

:RTMOD

03A4: name_thread 'RTMOD' // This is the name of the thread.

:RTMOD_11

0001: wait 0 ms // The code is in loop so you need a wait here to prevent a crash.
00BF: 0@ = current_time_hours, 1@ = current_time_minutes // This stores the game's current time in hours as 0@ and in minutes as 1@.
00C0: set_current_time_hours_to 0@ minutes_to 1@ // This forces the time to stay still.
01B6: set_weather 0 // Because of the manipulation of time in loop, the weather would change constantly. This prevents the weather from doing that.
00D6: if // one condition
0019: 32@ > 59999 // Checks if 59999 milliseconds has passed (1 minute).
004D: jump_if_false @RTMOD_11 // If not, loop back up. If yes, continue.
0006: 32@ = 0 // Internal timer 32@ is reset so it can check if one minute has passed again later on.
000A: 1@ += 1 // One game minute is added.
00D6: if // one condition
0019: 1@ > 59 // Checks if time in minutes passed 59 minutes.
004D: jump_if_false @RTMOD_128 // If not, jump to next label. If yes, continue.
0006: 1@ = 0 // Resets the minute.
000A: 0@ += 1 // One game hour is added because 59 minutes has passed.
00D6: if // one condition
0019: 0@ > 23 // Checks if time in hours passed 23 hours.
004D: jump_if_false @RTMOD_128 // If not, jump to next label. If yes, continue.
0006: 0@ = 0 // Resets the hour.

:RTMOD_128

00C0: set_current_time_hours_to 0@ minutes_to 1@ // Game time is forced to set at those values.
0002: jump @RTMOD_11 // Loops back up.

Information

Author: Barton Waterduck
Game: Vice City, San Andreas