$ USD
  • $ USD
  • € EUR
  • Britse pond (£ GBP)
  • $ AUD
  • R$ BRL
  • CHF CHF
  • ¥ JPY
FiveM Real-Time Sync – Gratis FiveM Mods

FiveM Real-Time Sync

Deze tutorial leidt u door het maken van een FiveM-script dat de in-game klok synchroniseert met de echte tijd. Dit zorgt ervoor dat de spelomgeving de werkelijke tijd weerspiegelt, wat de realisme voor spelers vergroot.

We behandelen zowel server-side als client-side scripting, het toevoegen van functionaliteit om de synchronisatie te starten en stoppen, en het instellen van de resource voor uw FiveM-server.


Voorwaarden

Voordat je begint, zorg ervoor dat je het volgende hebt:

  • FiveM-server toegang: U heeft administratieve toegang nodig tot uw FiveM-server om scripts toe te voegen.
  • Basiskennis van Lua: Bekendheid met Lua-scripting helpt u het script te begrijpen en aan te passen.
  • Teksteditor: Software zoals Visual Studio Code, Sublime Text of Notepad++ voor het bewerken van scriptbestanden.

De resource-map instellen

  1. Navigeer naar uw Resources-map:Zoek de resources map in uw FiveM-serverdirectory. Deze bevindt zich meestal op:bashCode kopierenyour-fivem-server-folder/resources/
  2. Maak een nieuwe Resource-map:In de resources map, maak een nieuwe map met de naam realtime.bashCode kopierenyour-fivem-server-folder/resources/realtime/
  3. Navigeer naar de realtime Map:Deze map bevat alle benodigde scripts en configuratiebestanden voor de real-time synchronisatie.

Het maken van het server-side script (server.lua)

  1. Creëren server.lua:In de realtime map, maak een nieuw bestand met de naam server.lua.
  2. Voeg de volgende code toe aan server.lua:luaCode kopierenRegisterNetEvent("realtime:event") AddEventHandler("realtime:event", function() local hour = tonumber(os.date("%H")) local minute = tonumber(os.date("%M")) local second = tonumber(os.date("%S")) TriggerClientEvent("realtime:event", source, hour, minute, second) end) Uitleg:
    • RegisterNetEvent: Registreert een netwerkevenement genaamd "realtime:event" dat de huidige echte tijd naar de client stuurt wanneer geactiveerd. realtime:event.
    • AddEventHandler: Definieert wat er gebeurt wanneer de realtime:event wordt geactiveerd.
    • os.date: Haalt de huidige systeemtijd op (uur, minuut, seconde).
    • TriggerClientEvent: Stuurt de tijdgegevens naar de client die de gebeurtenis heeft geactiveerd.

Het maken van het client-side script (client.lua)

  1. Creëren client.lua:In de realtime map, maak een nieuw bestand met de naam client.lua.
  2. Voeg de volgende code toe aan client.lua:luaCode kopieren-- Set the duration of one in-game minute in milliseconds SetMillisecondsPerGameMinute(60000) -- 60,000 ms = 1 real-world minute RegisterNetEvent("realtime:event") AddEventHandler("realtime:event", function(hour, minute, second) NetworkOverrideClockTime(hour, minute, second) end) -- Trigger the server event to initiate synchronization TriggerServerEvent("realtime:event") Uitleg:
    • SetMillisecondsPerGameMinute: Definieert hoe lang een in-game minuut duurt. Door het in te stellen op 60000 wordt 1 in-game minuut gelijk aan 1 echte minuut.
    • RegisterNetEvent & AddEventHandler: Luistert naar de realtime:event van de server en werkt de in-game klok dienovereenkomstig bij.
    • NetworkOverrideClockTime: Overschrijft de in-game klok om overeen te komen met de echte tijd ontvangen van de server.
    • TriggerServerEvent: Start de synchronisatie door de servergebeurtenis te activeren.

Een stopfunctionaliteit toevoegen

Om het in- en uitschakelen van de real-time synchronisatie mogelijk te maken, voegen we functies toe om de synchronisatie te starten en stoppen.

  1. Update client.lua met stopfunctionaliteit:luaCode kopierenlocal syncActive = true local syncThread = nil -- Function to start synchronization function StartRealTimeSync() if not syncActive then syncActive = true syncThread = CreateThread(function() while syncActive do TriggerServerEvent("realtime:event") Wait(60000) -- Wait for 1 minute before next sync end end) end end -- Function to stop synchronization function StopRealTimeSync() if syncActive then syncActive = false if syncThread then -- In Lua, there's no direct way to kill a thread. -- Using a flag to exit the loop effectively stops the thread. syncThread = nil end end end RegisterNetEvent("realtime:event") AddEventHandler("realtime:event", function(hour, minute, second) if syncActive then NetworkOverrideClockTime(hour, minute, second) end end) -- Start synchronization on resource start StartRealTimeSync() -- Example: Command to toggle synchronization RegisterCommand("toggleTimeSync", function() if syncActive then StopRealTimeSync() print("Real-time synchronization stopped.") else StartRealTimeSync() print("Real-time synchronization started.") end end, false) Uitleg:
    • syncActive: Een vlag om te bepalen of synchronisatie actief is.
    • StartRealTimeSync: Start een lus die elke minuut tijdupdates van de server aanvraagt.
    • StopRealTimeSync: Stopt de synchronisatie door de vlag op false te zetten.
    • RegisterCommand: Voegt een commando toe (/toggleTimeSync) dat spelers kunnen gebruiken om synchronisatie aan of uit te zetten.

Het maken van het Resource Manifest (fxmanifest.lua)

Elke FiveM-resource vereist een manifestbestand dat de metadata en afhankelijkheden definieert.

  1. Creëren fxmanifest.lua:In de realtime map, maak een nieuw bestand met de naam fxmanifest.lua.
  2. Voeg de volgende code toe aan fxmanifest.lua: fx_version 'cerulean' game 'gta5' author 'YourName' description 'Real-Time Synchronization Script for FiveM' version '1.0.0' server_script 'server.lua' client_script 'client.lua'
  3. Uitleg:
    • fx_version: Specificeert de versie van het FiveM-manifest. cerulean is de nieuwste op het moment van schrijven.
    • spel: Geeft aan voor welk spel de resource is (gta5).
    • author, description, version: Metadata over uw resource.
    • server_script & client_script: Specificeert de server- en clientscripts die moeten worden geladen.

De Resource starten op uw server

  1. Bewerk uw serverconfiguratie:Open het configuratiebestand van uw server, meestal genaamd server.cfg.
  2. Voeg de Resource toe aan de configuratie:Voeg de volgende regel toe om ervoor te zorgen dat de realtime resource start met de server:rubyCode kopierenensure realtime Notitie: Als u gebruikmaakt van start in plaats van ensure, kunt u gebruiken: start realtime
  3. Sla uw server op en herstart deze:Na het opslaan van de wijzigingen in server.cfg, herstart u uw FiveM-server om de nieuwe resource te laden.

Volledige resource download

Voor het gemak vindt u hier de volledige set bestanden die u moet maken voor de realtime resource.

1. server.lua

RegisterNetEvent("realtime:event")
AddEventHandler("realtime:event", function()
 local hour = tonumber(os.date("%H"))
 local minute = tonumber(os.date("%M"))
 local second = tonumber(os.date("%S"))
 TriggerClientEvent("realtime:event", source, hour, minute, second)
end)

2. client.lua

local syncActive = true
local syncThread = nil

-- Function to start synchronization
function StartRealTimeSync()
 if not syncActive then
 syncActive = true
 syncThread = CreateThread(function()
 while syncActive do
 TriggerServerEvent("realtime:event")
 Wait(60000) -- Wait for 1 minute before next sync
 end
 end)
 end
end

-- Function to stop synchronization
function StopRealTimeSync()
 if syncActive then
 syncActive = false
 if syncThread then
 -- In Lua, threads are cooperative; setting syncActive to false will stop the loop
 syncThread = nil
 end
 end
end

RegisterNetEvent("realtime:event")
AddEventHandler("realtime:event", function(hour, minute, second)
 if syncActive then
 NetworkOverrideClockTime(hour, minute, second)
 end
end)

-- Start synchronization on resource start
StartRealTimeSync()

-- Example: Command to toggle synchronization
RegisterCommand("toggleTimeSync", function()
 if syncActive then
 StopRealTimeSync()
 print("Real-time synchronization stopped.")
 else
 StartRealTimeSync()
 print("Real-time synchronization started.")
 end
end, false)

3. fxmanifest.lua

fx_version 'cerulean'
game 'gta5'

author 'YourName'
description 'Real-Time Synchronization Script for FiveM'
version '1.0.0'

server_script 'server.lua'
client_script 'client.lua'

Volledig script

Hier kunt u het script downloaden dat we zojuist hebben gemaakt:

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

Github

U heeft succesvol een FiveM-resource gemaakt die de in-game klok synchroniseert met de echte tijd. Dit script voegt een speelgebied toe doordat de game-omgeving de werkelijke tijd weerspiegelt, wat een laag realisme toevoegt voor spelers.

U kunt het script verder aanpassen door synchronisatie-intervallen aan te passen, meer commando's toe te voegen of het te integreren met andere serverfuncties.

Voel u vrij om op deze basis voort te bouwen om aan de unieke behoeften van uw server te voldoen!

Geef een reactie