
- ESX
- QBCore
- vRP
Von Luke

Diese kleine Entwicklungsressource sorgt dafür, dass jeder verbundene Client die UTC-Zeit des FXServer-Hosts anzeigt. Verwende sie nur, wenn sie der alleinige Besitzer der Spieluhr ist. Wenn dein Framework bereits Zeit und Wetter verwaltet, konfiguriere oder erweitere stattdessen diese Ressource, anstatt zwei Uhrensysteme zu betreiben.
Dieses Beispiel erfordert State-Awareness-Unterstützung für GlobalState. Stoppe andere Zeit-/Wettersynchronisationsressourcen auf der Testinstanz, damit ein Controller die Uhr besitzt. Es zeigt UTC an, nicht die lokale Zeitzone des Server-Hosts.
Die hier gezeigten Konfigurations- und Codebeispiele beziehen sich auf FiveM für GTA V Legacy. Enhanced hat andere Laufzeit- und Kompatibilitätsregeln; überprüfe die Legacy-zu-Enhanced-Änderungen von Cfx.re bevor du sie auf einen Enhanced-Server anwendest.
Überprüfe, ob die Host-Uhr genau ist. Sichere die bestehende Zeitressourcenkonfiguration und verwende einen isolierten Server. Erstelle resources/[local]/utc_clock mit den drei untenstehenden Dateien. Der Server veröffentlicht die Zeit; Clients können keine GlobalState-Werte auf dem Server setzen.
Speichere dies als fxmanifest.lua:
fx_version 'cerulean'
game 'gta5'
server_script 'server.lua'
client_script 'client.lua'Speichere dies als server.lua. Das vorangestellte Ausrufezeichen in os.date wählt UTC anstelle der lokalen Zeitzone des Hosts:
CreateThread(function()
while true do
local now = os.date('!*t')
GlobalState.tutorialUtcClock = {
hour = now.hour, minute = now.min, second = now.sec
}
Wait(1000)
end
end)
AddEventHandler('onResourceStop', function(name)
if name == GetCurrentResourceName() then
GlobalState.tutorialUtcClock = nil
end
end)Speichere dies als client.lua:
CreateThread(function()
while true do
local clock = GlobalState.tutorialUtcClock
if clock then
NetworkOverrideClockTime(clock.hour, clock.minute, clock.second)
end
Wait(1000)
end
end)
AddEventHandler('onResourceStop', function(name)
if name == GetCurrentResourceName() then
NetworkClearClockTimeOverride()
end
end)Dieses Beispiel folgt einem echten 24-Stunden-UTC-Tag; es beschleunigt weder das Tageslicht noch wählt es eine regionale Sommerzeit aus. Netzwerk- und Planungsverzögerungen bedeuten, dass es keine präzise Wanduhranzeige ist. Es synchronisiert das Wetter nicht.
Siehe Cfx.re state bags und der Native zum Überschreiben der Spieluhr , bevor du dieses Muster in eine größere Ressource integrierst.





