Bearbeite handling.meta in FiveM: Geschwindigkeit, Grip, Bremsen und HANDLING_FILE

Bearbeite ein Auto-handling.meta auf FiveM: Schlüsselfelder (fInitialDriveForce, fBrakeForce, fTractionCurveMax, fMass), HANDLING_FILE, passende handlingName, Tests und Laufzeit.

Du möchtest, dass ein Auto schneller beschleunigt, besser grippt oder härter bremst, und die Werte sind in handling.meta. Dieser Leitfaden zeigt, was die Schlüsselfelder tun, wie die Datei geladen wird, wie sie an das Fahrzeug gebunden ist und wie man deine Änderungen ohne Raten testet.

Wie Handling an ein Auto gebunden ist

Ein Auto hat einen Handling-Eintrag und das Auto weist darauf mit Namen hin:

xml
<!-- vehicles.meta -->
<Item>
  <modelName>mycar</modelName>
  <handlingId>MYCAR</handlingId>
  ...
</Item>
xml
<!-- handling.meta -->
<Item type="CHandlingData">
  <handlingName>MYCAR</handlingName>
  ...
</Item>

Der handlingName in handling.meta muss der gleiche wie der handlingId in vehicles.meta sein. Falls sie unterschiedlich sind, findet das Spiel den Eintrag nicht und das Auto verwendet einen Standard. Falls zwei Pakete den gleichen handlingName verwenden, gewinnt einer und das andere Auto handhabt falsch, daher halte Namen eindeutig.

Lade die Datei

Die Ressource muss die Datei in fxmanifest.lua deklarieren:

lua
fx_version 'cerulean'
game 'gta5'

files {
    'data/handling.meta',
    'data/vehicles.meta',
}

data_file 'HANDLING_FILE' 'data/handling.meta'
data_file 'VEHICLE_METADATA_FILE' 'data/vehicles.meta'

Ohne die HANDLING_FILE-Zeile wird die Datei nicht verwendet und deine Änderungen tun nichts. Die vollständige Menge von Dateien für ein Addon-Auto ist in Wie man Addon-Autos hinzufügt.

Die Schlüsselfelder

Die Handling-Datei hat viele Werte. Dies sind die, die du am meisten ändern wirst:

xml
<fMass value="1500.000000" />
<fInitialDriveForce value="0.320000" />
<fInitialDriveMaxFlatVel value="160.000000" />
<fBrakeForce value="0.800000" />
<fTractionCurveMax value="2.400000" />
  • fMass: das Gewicht des Autos in Kilogramm. Ein schweres Auto ist schwerer zu bewegen und zu stoppen und gewinnt Kollisionen mit leichteren Autos.
  • fInitialDriveForce: Beschleunigung. Ein höherer Wert gibt einen stärkeren Push an der Linie. Autos im Basis-Spiel sitzen normalerweise gut unter 1.0, daher ist eine Änderung von ein paar hunderstel schon sichtbar.
  • fInitialDriveMaxFlatVel: die Höchstgeschwindigkeit, die der Motor auf flachem Boden erreichen kann, in einer Einheit nahe km/h. Die im Spiel angezeigte Geschwindigkeit stimmt nicht genau, da Luftwiderstand und Getriebe auch eine Rolle spielen.
  • fBrakeForce: Bremsleistung. Erhöhe sie für kürzere Bremsstrecken; zu hoch macht das Auto Blockierungen oder kippt die Nase nach unten.
  • fTractionCurveMax: der Grip der Reifen in einer Kurve. Höher bedeutet mehr Grip, bis das Auto sich wie geklebt auf der Straße anfühlt.

Andere, auf die du treffen kannst, sind fInitialDragCoeff (Luftwiderstand), fTractionCurveMin (Grip, wenn das Auto rutscht), fSteeringLock und fSuspensionForce. Ändere immer eine Sache auf einmal, so dass du weißt, was das Ergebnis verursacht.

Tipp: Kopiere die Original-Datei, bevor du anfängst und ändere Werte in kleinen Schritten, etwa 10 bis 20 Prozent. Ein paar große Änderungen auf einmal machen das Auto schwer zu verstehen und schwer rückgängig zu machen.

Teste deine Änderungen

Handling wird gelesen, wenn ein Fahrzeug erstellt wird, daher:

  1. Starte die Ressource neu (restart mycar) oder den ganzen Server, falls ein Neustart der Ressource nicht anzuwenden scheint.
  2. Lösche das Auto und spawne ein neues. Ein bereits gespawntes Auto behält seine alten Werte.
  3. Fahre die gleiche Test-Route jedes Mal: eine gerade Straße für Höchstgeschwindigkeit und Beschleunigung, eine lange Kurve für Grip, ein plötzlicher Halt für Bremsen.
  4. Ändere einen Wert, teste, schreibe auf, was sich geändert hat.

Falls das Auto sich immer noch wie vorher verhält, arbeite durch die Ursachen: die data_file-Zeile, die handlingName-Übereinstimmung und ob eine andere Ressource auch den gleichen Handling-Namen definiert.

Ändere Handling zur Laufzeit

Für einen Wert, der von einer Situation abhängt, wie einen Nitro-Boost, ein Job-Auto oder einen beschädigten Motor, kannst du das Handling eines Fahrzeugs aus einem Client-Skript ändern:

lua
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)

if vehicle ~= 0 then
    local mass = GetVehicleHandlingFloat(vehicle, 'CHandlingData', 'fMass')
    SetVehicleHandlingFloat(vehicle, 'CHandlingData', 'fMass', mass + 200.0)
    SetVehicleHandlingFloat(vehicle, 'CHandlingData', 'fInitialDriveForce', 0.35)
end

SetVehicleHandlingFloat ändert den Wert für dieses eine Fahrzeug, solange es existiert. Es berührt nicht die Datei, andere Autos des gleichen Modells oder das nächste Auto, das du spawnst. Es ist das richtige Werkzeug für temporäre Effekte und das falsche für permanentes Tuning: Lege diese in handling.meta ab, so dass jedes Auto des Modells sie hat.

Achtung: Führe die Änderung nicht in einer Schleife jeden Frame aus. Setze sie einmal, wenn die Situation startet und setze den Original-Wert zurück, wenn sie endet.

Ersetze ein Basis-Spiel-Auto

Ein Handling-Eintrag mit dem Namen eines Basis-Spiel-Autos in einer Ressource ändert dieses Auto für jeden Spieler und jeden Spawn, einschließlich Verkehr. Das kann das sein, was du für ein „Realistisches Handling"-Paket möchtest, teste es aber, da sich alle Autos des Modells auf einmal ändern.

Häufige Probleme

  • Überhaupt keine Änderung. Überprüfe die HANDLING_FILE-Zeile, die handlingName und die handlingId und spawne ein neues Auto.
  • Die Ressource startet nicht. Der Pfad in files ist falsch oder die XML hat einen Fehler wie ein fehlendes schließendes Tag. Siehe Konnte Ressource nicht starten.
  • Das Auto kippt oder dreht. fInitialDriveForce oder fTractionCurveMax ist zu hoch für die Masse. Gehe einen Schritt zurück.
  • Ein anderes Auto hat sich geändert. Zwei Dateien verwenden den gleichen handlingName. Benenne deinen und die passende handlingId um.

Checkliste

Symptom Behebung
Änderungen haben keine Auswirkung Füge data_file 'HANDLING_FILE' hinzu und spawne das Auto neu
Auto verwendet Standard-Handling Mache handlingName gleich wie handlingId in vehicles.meta
Brauche mehr Beschleunigung Erhöhe fInitialDriveForce in kleinen Schritten
Brauche eine höhere Höchstgeschwindigkeit Erhöhe fInitialDriveMaxFlatVel
Zu wenig Grip Erhöhe fTractionCurveMax; zu viel fühlt sich unnatürlich an
Temporärer Effekt SetVehicleHandlingFloat auf dem Client, einmal und später zurücksetzen

Kurze Antworten

Warum macht meine handling.meta-Änderung nichts?

Normalerweise wird die Datei nicht mit data_file 'HANDLING_FILE' geladen oder der handlingName stimmt nicht mit der handlingId in vehicles.meta überein. Auch das Auto neu spawnen: ein Fahrzeug, das bereits existiert, behält seine alten Werte.

Wie mache ich ein Auto schneller?

Erhöhe fInitialDriveMaxFlatVel für Höchstgeschwindigkeit und fInitialDriveForce für Beschleunigung in kleinen Schritten. Große Sprünge machen das Auto nicht fahrbar oder unrealistisch.

Kann ich Handling in einem Skript ändern, während der Server läuft?

Ja, mit SetVehicleHandlingFloat auf dem Client. Es ändert nur ein Fahrzeug und geht verloren, wenn das Fahrzeug gelöscht wird, daher ersetzt es die Datei nicht.

Scripts ohne dieses Problem

Advanced BoostingFahrzeug-Boosting per Tablet: Aufträge von Klasse D bis S+, Crews und eine Live-Warteschlange.Script ansehen →Chameleon Paints82 schillernde Chamäleon-Lacke in einem Menü, per Klick aufgetragen.Script ansehen →Car BombPlatziere, finde und entschärfe Autobomben — mit Zünder-Handy und C4-Minispiel.Script ansehen →

Weiterlesen