Cupón WELCOME disponible Usa el código WELCOME al finalizar la compra hasta el 31 de julio de 2026. WELCOME

FiveM Real-Time Sync – Free FiveM Mods

¿Estás probando un script gratuito?

Los scripts gratuitos son útiles para comprobaciones rápidas. Para servidores de producción, compare los paquetes completos para servidores o los scripts de pago con mantenimiento, teniendo en cuenta el framework y el caso de uso.

Este tutorial te guiará en la creación de un script de FiveM que sincroniza el reloj del juego con la hora real. Esto garantiza que el entorno de juego refleje la hora real, mejorando el realismo para los jugadores.

Cubriremos los scripts del lado del servidor y del lado del cliente, agregando funcionalidad para iniciar y detener la sincronización y configurando el recurso para su servidor FiveM.


Prerrequisitos

Antes de comenzar, asegúrese de tener lo siguiente:

  • Acceso al servidor FiveM: You need administrative access to your FiveM server to add scripts.
  • Conocimientos básicos de Lua:La familiaridad con los scripts de Lua le ayudará a comprender y personalizar el script.
  • Editor de texto:Software como Visual Studio Code, Sublime Text o Notepad++ para editar archivos de script.

Configuración de la carpeta de recursos

  1. Navegar a su directorio de recursos:Localizar el recursos Carpeta en el directorio de su servidor FiveM. Normalmente se encuentra en: bashCode copiarsu-carpeta-servidor-fivem/recursos/
  2. Crear una nueva carpeta de recursos:Dentro de la recursos carpeta, crea una nueva carpeta llamada tiempo realCopiar .bashCodesu-carpeta-servidor-fivem/recursos/tiempo-real/
  3. Navegar hasta el tiempo real Carpeta:Esta carpeta contendrá todos los scripts y archivos de configuración necesarios para la sincronización en tiempo real.

Creación del script del lado del servidor (servidor.lua)

  1. Crear servidor.lua:Dentro de la tiempo real carpeta, crea un nuevo archivo llamado servidor.lua.
  2. Agregue el siguiente código a servidor.luaCopiar código luaRegisterNetEvent("tiempo real:evento") AddEventHandler("tiempo real:evento", función() hora local = tonumber(os.date("%H")) minuto local = tonumber(os.date("%M")) segundo local = tonumber(os.date("%S")) TriggerClientEvent("tiempo real:evento", origen, hora, minuto, segundo) fin) Explicación:
    • RegisterNetEvent:Registra un evento de red llamado tiempo real:evento.
    • Agregar manejador de eventos:Define lo que sucede cuando el tiempo real:evento se activa.
    • fecha del sistema operativo:Recupera la hora actual del sistema (hora, minuto, segundo).
    • Evento de cliente de activación:Envía los datos de tiempo al cliente que activó el evento.

Creación del script del lado del cliente (cliente.lua)

  1. Crear cliente.lua:Dentro de la tiempo real carpeta, crea un nuevo archivo llamado cliente.lua.
  2. Agregue el siguiente código a cliente.luaCopiar código lua-- Establece la duración de un minuto del juego en milisegundos SetMillisecondsPerGameMinute(60000) -- 60 000 ms = 1 minuto del mundo real RegisterNetEvent("realtime:event") AddEventHandler("realtime:event", function(hour, minute, second) NetworkOverrideClockTime(hour, minute, second) end) -- Activa el evento del servidor para iniciar la sincronización TriggerServerEvent("realtime:event") Explicación:
    • Establecer milisegundos por minuto de juego: Define la duración de un minuto de juego. Al configurarlo en 60000 hace que 1 minuto de juego sea igual a 1 minuto del mundo real.
    • RegisterNetEvent y AddEventHandler:Escucha el tiempo real:evento desde el servidor y actualiza el reloj del juego en consecuencia.
    • Tiempo de reloj de anulación de red:Anula el reloj del juego para que coincida con la hora real recibida del servidor.
    • Evento de servidor de activación:Inicia la sincronización activando el evento del servidor.

Agregar una funcionalidad de parada

Para permitir activar y desactivar la sincronización en tiempo real, agregaremos funciones para iniciar y detener la sincronización.

  1. Actualizar cliente.lua con funcionalidad de paradaCopiar código lualocal syncActive = true local syncThread = nil -- Función para iniciar la sincronización function StartRealTimeSync() if not syncActive then syncActive = true syncThread = CreateThread(function() while syncActive do TriggerServerEvent("realtime:event") Wait(60000) -- Espera 1 minuto antes del próximo fin de sincronización end) end end -- Función para detener la sincronización function StopRealTimeSync() if syncActive then syncActive = false if syncThread then -- En Lua, no hay una forma directa de matar un hilo. -- El uso de una bandera para salir del bucle detiene efectivamente el hilo. syncThread = nil end end end RegisterNetEvent("realtime:event") AddEventHandler("realtime:event", function(hour, minute, second) if syncActive then NetworkOverrideClockTime(hour, minute, second) end end) - Iniciar la sincronización al iniciar el recurso StartRealTimeSync() - Ejemplo: Comando para alternar la sincronización RegisterCommand("toggleTimeSync", function() if syncActive then StopRealTimeSync() print("La sincronización en tiempo real se detuvo.") else StartRealTimeSync() print("La sincronización en tiempo real se inició.") end end, false) Explicación:
    • sincronización activa:Una bandera para determinar si la sincronización está activa.
    • Iniciar sincronización en tiempo real:Inicia un bucle que solicita actualizaciones de tiempo del servidor cada minuto.
    • Detener la sincronización en tiempo real:Detiene la sincronización estableciendo el indicador en falso.
    • RegistrarComando:Agrega un comando (/alternar sincronización de tiempo) que los jugadores pueden usar para activar o desactivar la sincronización.

Creación del manifiesto de recursos (fxmanifest.lua)

Cada recurso de FiveM requiere un archivo de manifiesto que define sus metadatos y dependencias.

  1. Crear fxmanifest.lua:Dentro de la tiempo real carpeta, crea un nuevo archivo llamado fxmanifest.lua.
  2. Agregue el siguiente código a fxmanifest.lua: fx_version 'cerulean' juego 'gta5' autor 'YourName' descripción 'Script de sincronización en tiempo real para FiveM' versión '1.0.0' server_script 'server.lua' client_script 'client.lua'
  3. Explicación:
    • versión fx: Especifica la versión del manifiesto de FiveM. azul claro Es la última versión en el momento de escribir este artículo.
    • juego: Indica para qué juego es el recurso (GTA 5).
    • autor, descripción, versión:Metadatos sobre su recurso.
    • script_del_servidor y script_del_cliente:Especifica los scripts del servidor y del cliente que se cargarán.

Iniciar el recurso en su servidor

  1. Editar la configuración de su servidor:Abra el archivo de configuración de su servidor, normalmente llamado servidor.cfg.
  2. Agregar el recurso a la configuración:Agregue la siguiente línea para garantizar que tiempo real El recurso comienza con el servidor: rubyCode copiargarantizar el tiempo real Nota:Si estás usando comenzar en lugar de asegurar, puedes utilizar: iniciar en tiempo real
  3. Guardar y reiniciar su servidor:Después de guardar los cambios en servidor.cfg, reinicie su servidor FiveM para cargar el nuevo recurso.

Descarga completa de recursos

Para su comodidad, aquí encontrará el conjunto completo de archivos que necesita crear para el tiempo real recurso.

1. servidor.lua

RegisterNetEvent("tiempo real:evento") AddEventHandler("tiempo real:evento", función() hora local = tonumber(os.date("%H")) minuto local = tonumber(os.date("%M")) segundo local = tonumber(os.date("%S")) TriggerClientEvent("tiempo real:evento", origen, hora, minuto, segundo) fin)

2. cliente.lua

local syncActive = true local syncThread = nil -- Función para iniciar la función de sincronización StartRealTimeSync() if not syncActive then syncActive = true syncThread = CreateThread(function() while syncActive do TriggerServerEvent("realtime:event") Wait(60000) -- Esperar 1 minuto antes del próximo fin de sincronización end) end end -- Función para detener la función de sincronización StopRealTimeSync() if syncActive then syncActive = false if syncThread then -- En Lua, los hilos son cooperativos; Establecer syncActive en falso detendrá el bucle syncThread = nil end end end RegisterNetEvent("realtime:event") AddEventHandler("realtime:event", function(hour, minute, second) if syncActive then NetworkOverrideClockTime(hour, minute, second) end end) - Iniciar la sincronización al iniciar el recurso StartRealTimeSync() - Ejemplo: Comando para alternar la sincronización RegisterCommand("toggleTimeSync", function() if syncActive then StopRealTimeSync() print("Sincronización en tiempo real detenida.") else StartRealTimeSync() print("Sincronización en tiempo real iniciada.") end end, false)

3. fxmanifest.lua

fx_version 'cerulean' juego 'gta5' autor 'YourName' descripción 'Script de sincronización en tiempo real para FiveM' versión '1.0.0' server_script 'server.lua' client_script 'client.lua'

Guión completo

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

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

Github

Has creado correctamente un recurso de FiveM que sincroniza el reloj del juego con la hora real. Este script mejora la experiencia de juego al garantizar que el entorno de juego refleje la hora real, lo que añade un toque de realismo a los jugadores.

Puede personalizar aún más el script ajustando los intervalos de sincronización, agregando más comandos o integrándolo con otras funciones del servidor.

¡Siéntete libre de ampliar esta base para adaptarla a las necesidades únicas de tu servidor!

Lucas
Lucas

Soy Luke, gamer y me encanta escribir sobre FiveM, GTA y juegos de rol. Dirijo una comunidad de juegos de rol y tengo unos 10 años de experiencia administrando servidores.

Artículos: 436

Deja un comentario