FiveM Fahrzeugschaden: Motor-Gesundheit, Karosserie-Gesundheit und Handling-Tweaks
Wie Fahrzeugschaden in FiveM funktioniert: die Motor-, Karosserie- und Benzintank-Gesundheitsbereiche, GetVehicleEngineHealth, Handling Schadensvervielfältiger und wie realistische Schadensscripts funktionieren.
Typische Symptome:
Cars lose their engine after a small bump, explode when someone lightly hits a wall, or never take damage at all.Schaden in GTA ist ein Handvoll Gesundheitswerte pro Fahrzeug und ein paar Handling-Zahlen, die steuern, wie schnell sie fallen. Dieser Artikel gibt die Bereiche, die Natives, die Handling-Werte und die Idee hinter realistischen Schadensscripts.
Die Gesundheitswerte
Ein Fahrzeug hat mehrere Gesundheitswerte, die du auf dem Client lesen und schreiben kannst:
| Wert | Bereich | Lesen mit |
|---|---|---|
| Motor-Gesundheit | -4000 bis 1000 | GetVehicleEngineHealth |
| Karosserie-Gesundheit | 0 bis 1000 | GetVehicleBodyHealth |
| Benzintank-Gesundheit | 0 bis 1000 | GetVehiclePetrolTankHealth |
Ein neues Auto ist auf allen drei bei 1000.0. Der Motor ist der ungewöhnliche, weil er unter Null geht:
- Bei
1000, der Motor ist gesund. - Wenn der Wert fällt, qualmt das Auto und verliert Kraft.
- Bei
0und darunter, der Motor ist tot und das Auto kann Feuer fangen. Der Bereich geht hinunter bis-4000.
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
print('engine', GetVehicleEngineHealth(vehicle))
print('body', GetVehicleBodyHealth(vehicle))
print('tank', GetVehiclePetrolTankHealth(vehicle))Der Benzintank ist wichtig für Brände. Wenn die Benzintank-Gesundheit fällt, kann er auslaufen, und ein auslaufender Tank kann Feuer fangen. Der Motor und der Tank sind getrennt, daher kann ein Motor bei 1000 immer noch brennen, wenn der Tank getroffen wird.
Die Werte setzen
Um ein Fahrzeug zu reparieren oder zu beschädigen, schreibe die Werte zurück:
SetVehicleEngineHealth(vehicle, 1000.0)
SetVehicleBodyHealth(vehicle, 1000.0)
SetVehiclePetrolTankHealth(vehicle, 1000.0)Um ein Fahrzeug vollständig zu reparieren, einschließlich der sichtbaren Verformung und der Verschmutzung, gibt es separate Natives:
SetVehicleFixed(vehicle)
SetVehicleDeformationFixed(vehicle)
SetVehicleDirtLevel(vehicle, 0.0)SetVehicleFixed setzt die Gesundheit zurück und repariert das Modell. SetVehicleDeformationFixed entfernt Beulen. Verwende beide für eine vollständige Reparatur.
Um den Schaden eines eigenen Autos zu speichern, speichere die Werte mit den anderen Eigenschaften, siehe Fahrzeug-Eigenschaften. Wenn du das nicht tust, kommt jedes Auto vollständig repariert aus der Garage.
Tipp: Ein Fahrzeug, das sofort abwürgt und nicht wieder startet, hat oft eine Motor-Gesundheit unter 0. Setze es zurück auf einen Wert wie
400.0, bringt es zurück ohne eine vollständige Reparatur, was viele Mechaniker-Scripts tun. Siehe auch den Mechanikerberuf.
Handling-Vervielfältiger
Wie schnell die Werte fallen, wird durch das Handling des Fahrzeugs entschieden. Drei davon sind die üblichen Knöpfe:
| Handling-Wert | Effekt |
|---|---|
fCollisionDamageMult |
Wie viel eine Kollision Karosserie und Motor beschädigt |
fDeformationDamageMult |
Wie viel eine Kollision das Modell verformt, die sichtbaren Beulen |
fEngineDamageMult |
Wie viel Schaden der Motor erleidet |
Ein Wert von 1.0 ist neutral, niedriger bedeutet weniger Schaden und höher bedeutet mehr. In einem handling.meta sehen sie so aus:
<fCollisionDamageMult value="0.700000" />
<fDeformationDamageMult value="0.700000" />
<fEngineDamageMult value="1.500000" />Kleine Änderungen gehen lange, also bewege in Zehntel. Für wo die Datei lebt und wie man die Änderung anwendet, siehe Bearbeite Fahrzeug-Handling. Die gleichen Werte können zur Laufzeit mit SetVehicleHandlingFloat geändert werden, was ein Fahrzeug beeinflusst:
SetVehicleHandlingFloat(vehicle, 'CHandlingData', 'fCollisionDamageMult', 0.7)Laufzeit-Änderungen gelten für dieses Fahrzeug, während es existiert. Wende sie erneut an, jedes Mal wenn es spawnt.
Realistische Schadensscripts
Schadensscripts ändern nicht das Triebwerk des Spiels, sie verwenden die Werte oben. Das Konzept ist einfach:
- Eine Schleife liest die Motor- und Karosserie-Gesundheit des Fahrzeugs, das der Spieler fährt.
- Wenn die Werte unter eingestellte Schwellenwerte fallen, wendet das Script Effekte an: weniger Kraft mit
SetVehicleEnginePowerMultiplier, einen abwürgenden Motor, ein ziehendes Lenkrad, eine Warnung auf dem Bildschirm. - Es hält den Motor davon ab, völlig zu sterben, zum Beispiel, indem es ihn auf einen kleinen positiven Wert hält, damit das Auto hinkt statt zu brennen.
- Ein Mechaniker oder ein Reparatur-Kit setzt die Werte zurück.
Die Schleife muss nicht jeden Frame laufen. Eine Überprüfung alle paar hundert Millisekunden reicht und ist billiger, siehe wie Wait funktioniert:
CreateThread(function()
while true do
local ped = PlayerPedId()
local vehicle = GetVehiclePedIsIn(ped, false)
if vehicle ~= 0 and GetPedInVehicleSeat(vehicle, -1) == ped then
if GetVehicleEngineHealth(vehicle) < 200.0 then
SetVehicleEngineHealth(vehicle, 200.0)
SetVehicleEngineOn(vehicle, false, true, true)
end
Wait(500)
else
Wait(1500)
end
end
end)Dies hält den Motor davon ab zu brennen und schaltet ihn statt dessen aus. Behandle es als Ausgangspunkt: Ein echtes Script addiert einen Weg, ihn neu zu starten, daher ist der Spieler nicht stecken.
Explosionen verhindern
Wenn du nur weniger Todesfälle durch Feuer möchtest, sind die einfachsten sicheren Optionen die oben: ein niedrigerer Schadensvervielfältiger und die Motor- und Benzintank-Gesundheit davon zu halten, auf Null zu fallen.
Es gibt auch Natives, die Teile des Feuer- und Explosionssystems für ein Fahrzeug deaktivieren, wie diejenigen, die den Motor verhindern zu verschlechtern. Verwende sie auf einem spezifischen Fahrzeug, wie ein Job-Fahrzeug, und lese die Dokumentation der Funktion, bevor du dich darauf verlässt. Wende sie nicht auf jedes Fahrzeug auf dem Server an:
- Scripts wie eine Autobombe oder ein Raub hängen von Fahrzeugen ab, die explodieren können.
- Spieler verwenden Schaden in Roleplay: eine Verfolgung, eine Crash-Szene, ein Police Stop.
- Ein Fahrzeug, das nicht zerstört werden kann, ist ein Griefing-Tool und ein Weg, Konsequenzen zu vermeiden.
Entscheide pro Use Case und bevorzuge die Vervielfältiger.
Schaden nach Neustart oder Respawn
Wenn ein Auto repariert wird, jedes Mal wenn es spawnt, ist die Ursache eine dieser:
- Die Garage speichert Motor- und Karosserie-Gesundheit nicht, daher startete jeder Spawn bei 1000. Speichere die Werte beim Speichern und wende sie beim Spawn an.
- Ein Script ruft
SetVehicleFixedbei jedem Spawn auf. - Das Auto ist eine frische Entität und seine Gesundheit startet immer voll. Nur deine gespeicherten Daten tragen Schaden über.
Checkliste
| Symptom | Behebung |
|---|---|
| Brauche die Motor-Gesundheit | GetVehicleEngineHealth, Bereich -4000 bis 1000 |
| Auto stirbt bei dem kleinsten Stoß | Senke fCollisionDamageMult und fEngineDamageMult im Handling |
| Beulen zu sichtbar | Senke fDeformationDamageMult |
| Auto brennt nach kleinem Treffer | Halte die Benzintank-Gesundheit oben oder begrenze den Motor-Tropfen |
| Abgewürgtes Auto startet nicht neu | Setze die Motor-Gesundheit über 0 |
| Reparatur hinterlässt Beulen | Addiere SetVehicleDeformationFixed nach SetVehicleFixed |
| Schaden verloren nach Speichern | Speichere Motor- und Karosserie-Gesundheit mit den anderen Eigenschaften |
Kurze Antworten
Was ist der Bereich der Fahrzeugmotor-Gesundheit?
Von -4000 bis 1000. Ein gesunder Motor ist bei 1000. Unter 0 ist der Motor tot und das Auto kann brennen.
Wie mache ich, dass Autos weniger Schaden erleiden?
Senke die Schadensvervielfältiger im Handling des Fahrzeugs, wie fCollisionDamageMult und fDeformationDamageMult, oder halte die Gesundheitswerte von einem Script oben.
Kann ich Fahrzeuge daran hindern zu explodieren?
Du kannst es reduzieren, indem du die Gesundheitswerte oben hältst oder das Handling änderst, aber sei vorsichtig: eine pauschale Einstellung entfernt einen Teil des Spiels, den andere Scripts, wie ein Raub oder eine Autobombe, brauchen können.
Scripts ohne dieses Problem
Advanced BoostingFahrzeug-Boosting per Tablet: Aufträge von Klasse D bis S+, Crews und eine Live-Warteschlange.Script ansehen →
Car BombPlatziere, finde und entschärfe Autobomben — mit Zünder-Handy und C4-Minispiel.Script ansehen →
Chameleon Paints82 schillernde Chamäleon-Lacke in einem Menü, per Klick aufgetragen.Script ansehen →