Gutschein verwenden WELCOME um 20% zu sparen

$ USD
  • $ USD
  • € EUR
  • £ GBP
  • $ AUD
  • R$ BRL
  • CHF CHF
  • ¥ JPY
Wie man Schnee in FiveM aktiviert

Wie man Schnee in FiveM aktiviert

Aktiviere FiveM-Schnee mit einer kleinen Ressource: Der Server verwaltet den Zustand, ACE schützt den Befehl und Clients wenden dokumentierte Wetter-Natives an.

Die hier gezeigten Konfigurations- und Codebeispiele beziehen sich auf FiveM für GTA V Legacy. Enhanced hat andere Laufzeit- und Kompatibilitätsregeln; überprüfe die Legacy-zu-Enhanced-Änderungen von Cfx.re bevor du sie auf einen Enhanced-Server anwendest.

Erstelle die Ressource

Erstelle einen Ressourcenordner wie resources/[local]/fmx-snow und füge die folgende fxmanifest.lua hinzu. Das Manifest verwendet die aktuelle cerulean-FXv2-Version, deklariert GTA V und lädt je ein Client- und Server-Skript.

fx_version 'cerulean'
game 'gta5'

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

Halte den Schalter auf dem Server

Lege dies in server.lua ab. Der Befehl akzeptiert nur on oder off und lässt den Zustand bei jedem anderen Argument unverändert. Sein eingeschränkter RegisterCommand-Aufruf delegiert den Zugriff an ACE; weise den fmxsnow-admin-Prinzipal nur der kleinen Operatorgruppe zu, die ihn benötigt. GlobalState stellt Clients den aktuellen serverseitigen Wert bereit.

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

Wende den Zustand auf jedem Client an

Lege dies in client.lua ab. Der Client liest beim Start den replizierten GlobalState-Wert, reagiert auf spätere State-Bag-Updates und verwendet die dokumentierten Wetter-Natives. Kein Client-Event kann den serverseitig verwalteten Zustand ändern.

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)

Füge nach dem Speichern der Dateien ensure fmx-snow zur server.cfg hinzu und starte danach Ressource oder Server neu. Teste fmxsnow on und off mit einem autorisierten Konto, prüfe, dass ungültige Argumente nur die Usage ausgeben, ohne den Zustand zu ändern, und bestätige, dass ein nicht privilegierter Account keinen Befehlszugriff hat.

Primärquellen: Cfx-Dokumentation zu Ressourcenmanifest, Serverbefehlen, Natives und Serversicherheit.

Prüfe Zuständigkeit und Wiederherstellung

Verwende nur einen Wetter-Controller. Deaktiviere konkurrierende Wetter-Synchronisation auf der Testinstanz, bevor du dieses Beispiel ausführst. Es schaltet sofort auf XMAS um; es speichert die Auswahl nicht über einen Ressourcen-/Server-Neustart hinweg.

GlobalState erfordert die Unterstützung der Server-State-Awareness. Weise die gezeigte ACE-Gruppe deinem tatsächlich autorisierten Administrator mit deinem bestehenden Berechtigungs-Workflow zu. Teste Ein/Aus, die Wiederverbindung und das Stoppen der Ressource. Nachdem du sie entfernt hast, lasse deinen normalen Wetter-Controller das beabsichtigte Wetter wiederherstellen.

Referenzdokumentation

Cfx.re — Ressourcenmanifest · Cfx.re — State Bags

Schreibe einen Kommentar