Coupon WELCOME disponibile Usa il codice WELCOME al checkout entro il 31 luglio 2026. WELCOME

FiveM Real-Time Sync – Free FiveM Mods

Testare uno script gratuito?

Gli script gratuiti vanno bene per controlli rapidi. Per server in produzione, confronta pacchetti server completi o script a pagamento mantenuti, in base al framework e al caso d'uso.

Questo tutorial ti guiderà nella creazione di uno script FiveM che sincronizza l'orologio di gioco con l'ora reale. Questo garantisce che l'ambiente di gioco rifletta l'ora reale, aumentando il realismo per i giocatori.

Tratteremo sia la scrittura di script lato server che lato client, aggiungendo funzionalità per avviare e arrestare la sincronizzazione e configurando le risorse per il tuo server FiveM.


Prerequisiti

Prima di iniziare, assicurati di avere quanto segue:

  • Accesso al server FiveM: You need administrative access to your FiveM server to add scripts.
  • Conoscenza di base di Lua: La familiarità con la programmazione Lua ti aiuterà a comprendere e personalizzare lo script.
  • Editor di testo: Software come Visual Studio Code, Sublime Text o Notepad++ per la modifica dei file di script.

Impostazione della cartella delle risorse

  1. Vai alla directory delle tue risorse:Individuare il risorse cartella nella directory del server FiveM. In genere si trova in: bashCode copiacartella-del-tuo-server-fivem/risorse/
  2. Crea una nuova cartella di risorse:All'interno del risorse cartella, crea una nuova cartella denominata in tempo realeCopia .bashCodecartella-del-server-fivem/risorse/tempo-reale/
  3. Vai a in tempo reale Cartella:Questa cartella conterrà tutti gli script e i file di configurazione necessari per la sincronizzazione in tempo reale.

Creazione dello script lato server (server.lua)

  1. Creare server.lua:All'interno del in tempo reale cartella, crea un nuovo file denominato server.lua.
  2. Aggiungere il seguente codice a server.lua:luaCodice copiatoRegisterNetEvent("realtime:evento") AddEventHandler("realtime:evento", function() ora locale = tonumber(os.date("%H")) minuto locale = tonumber(os.date("%M")) secondo locale = tonumber(os.date("%S")) TriggerClientEvent("realtime:evento", origine, ora, minuto, secondo) fine) Spiegazione:
    • RegisterNetEvent: Registra un evento di rete denominato realtime:evento.
    • Aggiungi gestore eventi: Definisce cosa succede quando il realtime:evento viene attivato.
    • os.date: Recupera l'ora corrente del sistema (ora, minuto, secondo).
    • TriggerClientEvent: Invia i dati temporali al client che ha attivato l'evento.

Creazione dello script lato client (client.lua)

  1. Creare client.lua:All'interno del in tempo reale cartella, crea un nuovo file denominato client.lua.
  2. Aggiungere il seguente codice a client.lua:luaCodice copiato-- Imposta la durata di un minuto di gioco in millisecondi SetMillisecondsPerGameMinute(60000) -- 60.000 ms = 1 minuto reale RegisterNetEvent("realtime:event") AddEventHandler("realtime:event", function(hour, minute, second) NetworkOverrideClockTime(hour, minute, second) end) -- Attiva l'evento del server per avviare la sincronizzazione TriggerServerEvent("realtime:event") Spiegazione:
    • Imposta millisecondi per minuto di partita: Definisce la durata di un minuto di gioco. Impostandolo su 60000 fa sì che 1 minuto di gioco equivalga a 1 minuto nel mondo reale.
    • RegisterNetEvent e AddEventHandler: Ascolta il realtime:evento dal server e aggiorna di conseguenza l'orologio di gioco.
    • NetworkOverrideClockTime: Sostituisce l'orologio di gioco con l'ora reale ricevuta dal server.
    • TriggerServerEvent: Avvia la sincronizzazione attivando l'evento del server.

Aggiunta di una funzionalità di arresto

Per consentire l'attivazione e la disattivazione della sincronizzazione in tempo reale, aggiungeremo funzioni per avviare e arrestare la sincronizzazione.

  1. Aggiornamento client.lua con funzionalità di arresto:luaCodice copiatolocal syncActive = true local syncThread = nil -- Funzione per avviare la sincronizzazione function StartRealTimeSync() if not syncActive then syncActive = true syncThread = CreateThread(function() while syncActive do TriggerServerEvent("realtime:event") Wait(60000) -- Attendi 1 minuto prima della sincronizzazione successiva end end) end end -- Funzione per interrompere la sincronizzazione function StopRealTimeSync() if syncActive then syncActive = false if syncThread then -- In Lua, non esiste un modo diretto per terminare un thread. -- L'utilizzo di un flag per uscire dal ciclo di fatto arresta il 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) -- Avvia la sincronizzazione all'avvio della risorsa StartRealTimeSync() -- Esempio: comando per attivare/disattivare la sincronizzazione RegisterCommand("toggleTimeSync", function() if syncActive then StopRealTimeSync() print("Sincronizzazione in tempo reale interrotta.") else StartRealTimeSync() print("Sincronizzazione in tempo reale avviata.") end end, false) Spiegazione:
    • sincronizzazioneAttiva: Flag per determinare se la sincronizzazione è attiva.
    • Avvia sincronizzazione in tempo reale: Avvia un ciclo che richiede aggiornamenti orari al server ogni minuto.
    • Arresta la sincronizzazione in tempo reale: Interrompe la sincronizzazione impostando il flag su false.
    • RegisterCommand: Aggiunge un comando (/toggleTimeSync) che i giocatori possono utilizzare per attivare o disattivare la sincronizzazione.

Creazione del manifesto delle risorse (fxmanifest.lua)

Ogni risorsa FiveM richiede un file manifest che ne definisce i metadati e le dipendenze.

  1. Creare fxmanifest.lua:All'interno del in tempo reale cartella, crea un nuovo file denominato fxmanifest.lua.
  2. Aggiungere il seguente codice a fxmanifest.lua: fx_version 'cerulean' gioco 'gta5' autore 'YourName' descrizione 'Script di sincronizzazione in tempo reale per FiveM' versione '1.0.0' server_script 'server.lua' client_script 'client.lua'
  3. Spiegazione:
    • versione fx: Specifica la versione del manifesto FiveM. ceruleo è l'ultima disponibile al momento della scrittura.
    • gioco: Indica il gioco a cui è destinata la risorsa (gta5).
    • autore, descrizione, versione: Metadati sulla tua risorsa.
    • script_server e script_client: Specifica gli script del server e del client da caricare.

Avvio della risorsa sul server

  1. Modifica la configurazione del tuo server:Apri il file di configurazione del tuo server, in genere denominato server.cfg.
  2. Aggiungere la risorsa alla configurazione:Aggiungere la seguente riga per garantire che in tempo reale la risorsa inizia con il server:rubyCode copiagarantire in tempo reale Nota: Se stai usando inizio invece di garantire, puoi usare: avvia in tempo reale
  3. Salva e riavvia il tuo server:Dopo aver salvato le modifiche a server.cfg, riavvia il server FiveM per caricare la nuova risorsa.

Scarica la risorsa completa

Per comodità, ecco il set completo dei file che devi creare per il in tempo reale risorsa.

1. server.lua

RegisterNetEvent("realtime:evento") AddEventHandler("realtime:evento", function() ora locale = tonumber(os.date("%H")) minuto locale = tonumber(os.date("%M")) secondo locale = tonumber(os.date("%S")) TriggerClientEvent("realtime:evento", origine, ora, minuto, secondo) fine)

2. client.lua

local syncActive = true local syncThread = nil -- Funzione per avviare la sincronizzazione function StartRealTimeSync() se non syncActive allora syncActive = true syncThread = CreateThread(function() while syncActive do TriggerServerEvent("realtime:event") Wait(60000) -- Attendi 1 minuto prima della sincronizzazione successiva end end) end end -- Funzione per interrompere la sincronizzazione function StopRealTimeSync() se syncActive allora syncActive = false se syncThread allora -- In Lua, i thread sono cooperativi; impostando syncActive su false si interromperà il ciclo syncThread = nil end end end RegisterNetEvent("realtime:event") AddEventHandler("realtime:event", function(hour, minute, second) if syncActive then NetworkOverrideClockTime(hour, minute, second) end end) -- Avvia la sincronizzazione all'avvio della risorsa StartRealTimeSync() -- Esempio: comando per attivare/disattivare la sincronizzazione RegisterCommand("toggleTimeSync", function() if syncActive then StopRealTimeSync() print("Sincronizzazione in tempo reale interrotta.") else StartRealTimeSync() print("Sincronizzazione in tempo reale avviata.") end end, false)

3. fxmanifest.lua

fx_version 'cerulean' gioco 'gta5' autore 'YourName' descrizione 'Script di sincronizzazione in tempo reale per FiveM' versione '1.0.0' server_script 'server.lua' client_script 'client.lua'

Script completo

Here you can download the script we’ve just created:

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

Github

Hai creato con successo una risorsa FiveM che sincronizza l'orologio di gioco con l'ora reale. Questo script migliora l'esperienza di gioco assicurando che l'ambiente di gioco rifletta l'ora reale, aggiungendo un ulteriore livello di realismo per i giocatori.

È possibile personalizzare ulteriormente lo script regolando gli intervalli di sincronizzazione, aggiungendo altri comandi o integrandolo con altre funzionalità del server.

Sentiti libero di ampliare questa base per adattarla alle esigenze specifiche del tuo server!

Luca
Luca

Mi chiamo Luke, sono un giocatore e amo scrivere di FiveM, GTA e giochi di ruolo. Gestisco una community di gioco di ruolo e ho circa 10 anni di esperienza nell'amministrazione di server.

Articoli: 436

Lascia una risposta