Um ausgewählte Umgebungsflugzeuge in FiveM zu reduzieren, erstelle eine Client-Ressource zum Aufruf von SetVehicleModelIsSuppressed für eine explizite Liste von Modell-Hashes. Dies zielt auf das natürliche Spawnen dieser Modelle ab; es ist kein Berechtigungssystem und garantiert nicht, dass eine andere Ressource nicht dasselbe Flugzeug erstellen kann.
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.
Teste jedes Modell auf dem aktuellen FiveM-Client und der aktuellen Spielversion. Das native Verhalten und die Umgebungsbevölkerung können je nach Ort und Version variieren. Halte die Modellliste klein und bewahre ein Rollback auf.
Erstelle die Ressource
Erstelle resources/[local]/ambient_aircraft_control mit diesen beiden Dateien.
fxmanifest.lua:
fx_version 'cerulean'
game 'gta5'
author 'Your name'
description 'Suppress selected ambient aircraft models'
version '1.0.0'
client_script 'client.lua'
client.lua:
local suppressedModels = {
`luxor`,
`shamal`,
`maverick`,
`frogger`,
}
CreateThread(function()
for i = 1, #suppressedModels do
SetVehicleModelIsSuppressed(suppressedModels[i], true)
end
end)
AddEventHandler('onResourceStop', function(resourceName)
if resourceName ~= GetCurrentResourceName() then
return
end
for i = 1, #suppressedModels do
SetVehicleModelIsSuppressed(suppressedModels[i], false)
end
end)
Die Werte in Backticks sind CfxLua-Hashes, die beim Kompilieren entstehen. Cfx.re dokumentiert die aktuellen Laufzeit- und Manifestformen hier: CfxLua-Leitfaden und Ressourcenmanifestreferenz.
Wähle den Umfang bewusst
Füge nur Modelle hinzu, die du beim ambienten Spawnen beobachtet hast und die du tatsächlich unterdrücken möchtest. Die Beispielnamen sind illustrative Flugzeugmodelle aus GTA V, keine empfohlene universelle Liste. Eine geskriptete Mission, ein Admin-Befehl oder ein Fahrzeugshop kann trotzdem ein unterdrücktes Modell erstellen. Wenn das Ziel darin besteht, den Spielerzugriff zu steuern, erzwinge das in der autoritativen serverseitigen Ressource, die Fahrzeuge gewährt oder spawnt.
Führe die native Funktion nicht in jedem Frame aus
Der Unterdrückungsstatus erfordert in dieser Ressource keine Schleife mit Nullverzögerung. Wende ihn an, wenn die Ressource startet, und kehre ihn um, wenn die Ressource stoppt. Eine permanente Wait(0) Schleife fügt Arbeit hinzu, ohne besseres Verhalten zu beweisen.
Vor dem Produktivbetrieb testen
- Sichere die vorhandene Verkehrs- oder Bevölkerungsressource.
- Füge auf einem Entwicklungsserver
ensure ambient_aircraft_controlhinzu. - Führe aus:
refreshundensure ambient_aircraft_control. - Beobachte bekannte Standorte mit ambienten Flugzeugen lange genug, um dieselben Bedingungen vor und nach der Änderung zu vergleichen.
- Spawne ein Flugzeug über einen genehmigten geskripteten Workflow, um zu bestätigen, ob dieser separate Verwendungszweck verfügbar bleiben soll.
- Stoppe die Ressource und verifiziere, dass ihr Unterdrückungsstatus rückgängig gemacht wurde.
Wenn Unterdrückung nicht ausreicht
Wenn eine andere Ressource wiederholt Flugzeuge erstellt, ändere die Konfiguration dieser Ressource oder den serverseitig autorisierten Spawn-Pfad. Wenn du umfassendere Dichteänderungen benötigst, behandle sie als separate Aufgabe zur Bevölkerungsverwaltung und messe die Nebenwirkungen auf Verkehr, Missionen und andere Ressourcen. Kombiniere keine nicht verwandten Dichte-Natives in diesen kleinen Fix, ohne das gezielt zu testen.