Usar cupón WELCOME para guardar 20%

$ USD
  • $ USD
  • € EUR
  • £ GBP
  • $ AUD
  • R$ BRL
  • CHF CHF
  • ¥ yenes
Cómo activar la nieve en FiveM

Cómo activar la nieve en FiveM

Activa la nieve en FiveM con un recurso pequeño: el servidor controla el estado, ACE protege el comando y los clientes aplican las funciones nativas de clima documentadas.

Los ejemplos de configuración y código aquí están dirigidos a FiveM para GTA V Legacy. Enhanced tiene diferentes reglas de tiempo de ejecución y compatibilidad; consulta los cambios de Legacy a Enhanced de Cfx.re antes de aplicarlos a un servidor Enhanced.

Crea el recurso

Crea una carpeta de recurso como resources/[local]/fmx-snow y añade el siguiente fxmanifest.lua. El manifiesto usa la versión FXv2 cerulean actual, declara GTA V y carga un script de cliente y uno de servidor.

fx_version 'cerulean'
game 'gta5'

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

Mantén el interruptor en el servidor

Coloca esto en server.lua. El comando solo acepta on u off y deja el estado sin cambios después de cualquier otro argumento. Su RegisterCommand restringido delega el acceso a ACE; asigna el principal fmxsnow-admin solo al pequeño grupo de operadores que lo necesita. GlobalState proporciona a los clientes el valor actual controlado por el servidor.

local snowEnabled = false
GlobalState.fmxSnowEnabled = false

RegisterCommand('fmxsnow', function(source, args)
    local mode = args[1]
    if mode ~= 'on' and mode ~= 'off' then
        print(('fmxsnow: usage fmxsnow on|off (source %s)'):format(source))
        return
    end

    snowEnabled = mode == 'on'
    GlobalState.fmxSnowEnabled = snowEnabled
end, true)
add_ace group.fmxsnow-admin command.fmxsnow allow
ensure fmx-snow

Aplica el estado en cada cliente

Coloca esto en client.lua. El cliente lee el valor replicado de GlobalState al inicio, escucha las actualizaciones posteriores del state bag y usa las funciones nativas de clima documentadas. Ningún evento del cliente puede cambiar el estado controlado por el servidor.

local function applySnow(enabled)
    if enabled then
        SetWeatherTypeNowPersist('XMAS')
        SetOverrideWeather('XMAS')
    else
        ClearOverrideWeather()
        ClearWeatherTypePersist()
    end
end

AddStateBagChangeHandler('fmxSnowEnabled', nil, function(_, _, value)
    applySnow(value == true)
end)

applySnow(GlobalState.fmxSnowEnabled == true)

AddEventHandler('onClientResourceStop', function(name)
    if name == GetCurrentResourceName() then
        ClearOverrideWeather()
        ClearWeatherTypePersist()
    end
end)

Añade ensure fmx-snow a server.cfg después de guardar los archivos y reinicia el recurso o servidor. Prueba fmxsnow on y off con una cuenta autorizada, verifica que un argumento no válido muestre el uso sin cambiar el estado y confirma que una cuenta sin privilegios no tenga acceso al comando.

Fuentes primarias: documentación de Cfx sobre manifiestos de recursos, comandos de servidor, referencia de funciones nativas y seguridad de servidor.

Comprueba qué recurso controla el estado y cómo recuperarlo

Usa solo un controlador de clima. Deshabilita la sincronización de clima en conflicto en la instancia de prueba antes de ejecutar este ejemplo. Cambia a XMAS inmediatamente; no persiste la elección a través de un reinicio de recurso/servidor.

GlobalState requiere el soporte de conocimiento del estado del servidor. Asigna el grupo ACE mostrado a tu administrador autorizado real usando tu flujo de trabajo de permisos existente. Prueba encender/apagar, reconectar y detener el recurso. Después de eliminarlo, deja que tu controlador de clima normal restaure el clima deseado.

Documentación de referencia

Cfx.re — manifiesto de recursos · Cfx.re — state bags

Deja una respuesta