
FiveM Real-Time Sync – Free FiveM Mods
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.
Tabla de contenido
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
- Navegar a su directorio de recursos:Localizar el
recursosCarpeta en el directorio de su servidor FiveM. Normalmente se encuentra en: bashCode copiarsu-carpeta-servidor-fivem/recursos/ - Crear una nueva carpeta de recursos:Dentro de la
recursoscarpeta, crea una nueva carpeta llamadatiempo realCopiar .bashCodesu-carpeta-servidor-fivem/recursos/tiempo-real/ - Navegar hasta el
tiempo realCarpeta: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)
- Crear
servidor.lua:Dentro de latiempo realcarpeta, crea un nuevo archivo llamadoservidor.lua. - 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:eventose 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.
- RegisterNetEvent:Registra un evento de red llamado
Creación del script del lado del cliente (cliente.lua)
- Crear
cliente.lua:Dentro de latiempo realcarpeta, crea un nuevo archivo llamadocliente.lua. - 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
60000hace que 1 minuto de juego sea igual a 1 minuto del mundo real. - RegisterNetEvent y AddEventHandler:Escucha el
tiempo real:eventodesde 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.
- Establecer milisegundos por minuto de juego: Define la duración de un minuto de juego. Al configurarlo en
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.
- Actualizar
cliente.luacon 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.
- Crear
fxmanifest.lua:Dentro de latiempo realcarpeta, crea un nuevo archivo llamadofxmanifest.lua. - 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' - Explicación:
- versión fx: Especifica la versión del manifiesto de FiveM.
azul claroEs 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.
- versión fx: Especifica la versión del manifiesto de FiveM.
Iniciar el recurso en su servidor
- Editar la configuración de su servidor:Abra el archivo de configuración de su servidor, normalmente llamado
servidor.cfg. - Agregar el recurso a la configuración:Agregue la siguiente línea para garantizar que
tiempo realEl recurso comienza con el servidor: rubyCode copiargarantizar el tiempo realNota:Si estás usandocomenzaren lugar deasegurar, puedes utilizar:iniciar en tiempo real - 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
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!






