LUA-Skripting, Kostenlose FiveM Mods, Kostenlose FiveM-Skripte

FiveM Echtzeit-Synchronisation

FiveM Echtzeit-Skript

Dieses Tutorial führt Sie durch die Erstellung eines FiveM-Skripts, das die Uhr im Spiel mit der realen Zeit synchronisiert. Dadurch wird sichergestellt, dass die Spielumgebung die tatsächliche Zeit widerspiegelt, was den Realismus für die Spieler erhöht.

Wir behandeln sowohl serverseitiges als auch clientseitiges Scripting, fügen Funktionen zum Starten und Stoppen der Synchronisierung hinzu und richten die Ressource für Ihren FiveM-Server ein.


Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie über Folgendes verfügen:

  • FiveM-Serverzugriff: Sie benötigen Administratorzugriff auf Ihren FiveM-Server, um Skripte hinzuzufügen.
  • Grundkenntnisse in Lua: Kenntnisse im Lua-Scripting helfen Ihnen, das Skript zu verstehen und anzupassen.
  • Texteditor: Software wie Visual Studio Code, Sublime Text oder Notepad++ zum Bearbeiten von Skriptdateien.

Einrichten des Ressourcenordners

  1. Navigieren Sie zu Ihrem Ressourcenverzeichnis:Suchen Sie die Ressourcen Ordner in Ihrem FiveM-Serververzeichnis. Dieser befindet sich normalerweise unter:bashCode kopierenIhr-fivem-Server-Ordner/Ressourcen/
  2. Einen neuen Ressourcenordner erstellen:Im Inneren des Ressourcen Ordner, erstellen Sie einen neuen Ordner mit dem Namen Echtzeit.bashCode kopierenIhr fivem-Serverordner/Ressourcen/Echtzeit/
  3. Navigieren Sie zum Echtzeit Ordner:Dieser Ordner enthält alle erforderlichen Skripte und Konfigurationsdateien für die Echtzeitsynchronisierung.

Erstellen des serverseitigen Skripts (server.lua)

  1. Erstellen server.lua:Im Inneren des Echtzeit Ordner, erstellen Sie eine neue Datei mit dem Namen server.lua.
  2. Fügen Sie den folgenden Code hinzu zu server.lua:luaCode kopierenRegisterNetEvent("Echtzeit:Ereignis") AddEventHandler("Echtzeit:Ereignis", Funktion() lokale Stunde = bisZahl(os.date("%H")) lokale Minute = bisZahl(os.date("%M")) lokale Sekunde = bisZahl(os.date("%S")) TriggerClientEvent("Echtzeit:Ereignis", Quelle, Stunde, Minute, Sekunde) Ende) Erläuterung:
    • RegisterNetEvent: Registriert ein Netzwerkereignis namens Echtzeit: Ereignis.
    • Ereignishandler hinzufügen: Definiert, was passiert, wenn der Echtzeit: Ereignis wird ausgelöst.
    • os.date: Ruft die aktuelle Systemzeit (Stunde, Minute, Sekunde) ab.
    • TriggerClientEvent: Sendet die Zeitdaten an den Client, der das Ereignis ausgelöst hat.

Erstellen des clientseitigen Skripts (client.lua)

  1. Erstellen client.lua:Im Inneren des Echtzeit Ordner, erstellen Sie eine neue Datei mit dem Namen client.lua.
  2. Fügen Sie den folgenden Code hinzu zu client.lua:luaCode kopieren-- Legt die Dauer einer Spielminute in Millisekunden fest. SetMillisecondsPerGameMinute(60000) -- 60.000 ms = 1 Minute in der realen Welt. RegisterNetEvent("realtime:event") AddEventHandler("realtime:event", function(hour, minute, second) NetworkOverrideClockTime(hour, minute, second) end) -- Löst das Serverereignis aus, um die Synchronisierung zu starten. TriggerServerEvent("realtime:event") Erläuterung:
    • SetzeMillisekundenProSpielMinute: Definiert, wie lange eine Spielminute dauert. Wenn Sie es auf 60000 macht 1 Spielminute gleich 1 Minute in der realen Welt.
    • RegisterNetEvent und AddEventHandler: Hört auf die Echtzeit: Ereignis vom Server und aktualisiert die Uhr im Spiel entsprechend.
    • NetzwerküberschreibungUhrzeit: Überschreibt die Uhr im Spiel, um sie an die vom Server empfangene Echtzeit anzupassen.
    • TriggerServerEvent: Initiiert die Synchronisierung durch Auslösen des Serverereignisses.

Hinzufügen einer Stoppfunktion

Um das Ein- und Ausschalten der Echtzeitsynchronisierung zu ermöglichen, fügen wir Funktionen zum Starten und Stoppen der Synchronisierung hinzu.

  1. Aktualisieren client.lua mit Stop-Funktionalität:luaCode kopierenlocal syncActive = true local syncThread = nil – Funktion zum Starten der Synchronisierungsfunktion StartRealTimeSync(), wenn nicht syncActive, dann syncActive = true syncThread = CreateThread(function(), während syncActive TriggerServerEvent("realtime:event") ausführt. Wait(60000) – 1 Minute vor dem nächsten Synchronisierungsende warten (Ende, Ende) Ende (Ende, Ende) – Funktion zum Stoppen der Synchronisierungsfunktion StopRealTimeSync(), wenn syncActive, dann syncActive = false, wenn syncThread, dann – In Lua gibt es keine direkte Möglichkeit, einen Thread zu beenden. – Die Verwendung eines Flags zum Verlassen der Schleife stoppt den Thread effektiv. syncThread = nil end end end RegisterNetEvent("realtime:event") AddEventHandler("realtime:event", function(hour, minute, second) if syncActive then NetworkOverrideClockTime(hour, minute, second) end end) -- Synchronisierung beim Ressourcenstart starten StartRealTimeSync() -- Beispiel: Befehl zum Umschalten der Synchronisierung RegisterCommand("toggleTimeSync", function() if syncActive then StopRealTimeSync() print("Echtzeitsynchronisierung gestoppt.") else StartRealTimeSync() print("Echtzeitsynchronisierung gestartet.") end end, false) Erläuterung:
    • synchronisierenAktiv: Ein Flag, um zu bestimmen, ob die Synchronisierung aktiv ist.
    • StartRealTimeSync: Initiiert eine Schleife, die jede Minute Zeitaktualisierungen vom Server anfordert.
    • Stoppen Sie RealTimeSync: Stoppt die Synchronisierung, indem das Flag auf „False“ gesetzt wird.
    • RegisterCommand: Fügt einen Befehl hinzu (/Zeitsynchronisierung umschalten), mit dem Spieler die Synchronisierung ein- oder ausschalten können.

Erstellen des Ressourcenmanifests (fxmanifest.lua)

Jede FiveM-Ressource erfordert eine Manifestdatei, die ihre Metadaten und Abhängigkeiten definiert.

  1. Erstellen fxmanifest.lua:Im Inneren des Echtzeit Ordner, erstellen Sie eine neue Datei mit dem Namen fxmanifest.lua.
  2. Fügen Sie den folgenden Code hinzu zu fxmanifest.lua: fx_version „cerulean“ Spiel „gta5“ Autor „IhrName“ Beschreibung „Echtzeit-Synchronisierungsskript für FiveM“ Version „1.0.0“ Server-Skript „server.lua“ Client-Skript „client.lua“
  3. Erläuterung:
    • fx_version: Gibt die Version des FiveM-Manifests an. himmelblau ist der neueste Stand zum Zeitpunkt des Schreibens.
    • Spiel: Gibt an, für welches Spiel die Ressource bestimmt ist (gta5).
    • Autor, Beschreibung, Version: Metadaten zu Ihrer Ressource.
    • Server-Skript und Client-Skript: Gibt die zu ladenden Server- und Client-Skripte an.

Starten der Ressource auf Ihrem Server

  1. Bearbeiten Sie Ihre Serverkonfiguration:Öffnen Sie die Konfigurationsdatei Ihres Servers, normalerweise benannt server.cfg.
  2. Hinzufügen der Ressource zur Konfiguration:Fügen Sie die folgende Zeile hinzu, um sicherzustellen, dass Echtzeit Ressource beginnt mit dem Server:rubyCode kopierenEchtzeit gewährleisten Notiz: Wenn Sie Start anstatt sicherstellenkönnen Sie Folgendes verwenden: in Echtzeit starten
  3. Speichern und starten Sie Ihren Server neu:Nach dem Speichern der Änderungen an server.cfg, starten Sie Ihren FiveM-Server neu, um die neue Ressource zu laden.

Vollständige Ressourcen zum Download

Der Einfachheit halber finden Sie hier den vollständigen Satz von Dateien, die Sie für die Echtzeit Ressource.

1. server.lua

RegisterNetEvent("Echtzeit:Ereignis") AddEventHandler("Echtzeit:Ereignis", Funktion() lokale Stunde = bisZahl(os.date("%H")) lokale Minute = bisZahl(os.date("%M")) lokale Sekunde = bisZahl(os.date("%S")) TriggerClientEvent("Echtzeit:Ereignis", Quelle, Stunde, Minute, Sekunde) Ende)

2. client.lua

local syncActive = true local syncThread = nil – Funktion zum Starten der Synchronisierungsfunktion StartRealTimeSync(), wenn nicht syncActive, dann syncActive = true syncThread = CreateThread(function() while syncActive do TriggerServerEvent("realtime:event") Wait(60000) – Warten Sie 1 Minute vor dem nächsten Synchronisierungsende (Ende) Ende (Ende) – Funktion zum Stoppen der Synchronisierungsfunktion StopRealTimeSync(), wenn syncActive, dann syncActive = false, wenn syncThread, dann – In Lua sind Threads kooperativ; Wenn Sie syncActive auf „false“ setzen, wird die Schleife gestoppt. syncThread = nil end end end RegisterNetEvent("realtime:event") AddEventHandler("realtime:event", function(hour, minute, second) if syncActive then NetworkOverrideClockTime(hour, minute, second) end end) -- Starten Sie die Synchronisierung beim Start der Ressource. StartRealTimeSync() -- Beispiel: Befehl zum Umschalten der Synchronisierung. RegisterCommand("toggleTimeSync", function() if syncActive then StopRealTimeSync() print("Echtzeitsynchronisierung gestoppt.") else StartRealTimeSync() print("Echtzeitsynchronisierung gestartet.") end end, false)

3. fxmanifest.lua

fx_version „cerulean“ Spiel „gta5“ Autor „IhrName“ Beschreibung „Echtzeit-Synchronisierungsskript für FiveM“ Version „1.0.0“ Server-Skript „server.lua“ Client-Skript „client.lua“

Vollständiges Skript

Hier können Sie das soeben erstellte Skript herunterladen:

https://github.com/HiFiveM/fivem-realtime/archive/refs/heads/main.zip

Github

Sie haben erfolgreich eine FiveM-Ressource erstellt, die die Uhr im Spiel mit der realen Zeit synchronisiert. Dieses Skript verbessert das Spielerlebnis, indem es sicherstellt, dass die Spielumgebung die tatsächliche Zeit widerspiegelt, was den Spielern eine Ebene des Realismus verleiht.

Sie können das Skript weiter anpassen, indem Sie die Synchronisierungsintervalle anpassen, weitere Befehle hinzufügen oder es in andere Serverfunktionen integrieren.

Sie können diese Grundlage jederzeit erweitern, um sie an die individuellen Anforderungen Ihres Servers anzupassen!

Autor-Avatar

Über Luke

Ich bin Luke, ein Gamer und schreibe gerne über FiveM, GTA und Rollenspiele. Ich betreibe eine Rollenspiel-Community und habe etwa 10 Jahre Erfahrung in der Verwaltung von Servern.

Schreibe einen Kommentar