Füge Autos zum FiveM-Autoshop hinzu (ESX vehicles-Tabelle, QBCore, QBox)
Wie man ein Auto zu einem Autohaus hinzufügt: die ESX vehicles- und vehicle_categories-Tabellen, QBCore- und QBox-Einträge in der shared vehicles.lua, und warum ein Auto ohne Preis angezeigt wird.
Typische Symptome:
The addon car works with /car, but the dealership does not sell it. Or it shows with no name, no price, or in the wrong category.Ein Autohaus verkauft, was in seinen Daten aufgelistet ist, nicht was im Spiel existiert. Das Hinzufügen eines Autos erfolgt in zwei Schritten: Das Modell muss zum Spiel gestreamt werden, dann muss es in den Daten aufgelistet werden, die dein Framework verwendet. Dieser Artikel behandelt den zweiten Schritt für ESX, QBCore und QBox.
Schritt eins: Das Modell muss gestreamt werden
Wenn das Modell nicht geladen wird, kann das Autohaus es nicht anzeigen, und ein Kauf spawnt nichts. Füge das Auto zuerst als Ressource hinzu und überprüfe, dass es im Spiel funktioniert:
/car mycarVerwende den Spawn-Namen, der aus dem vehicles.meta des Autos kommt. Wenn /car fehlschlägt, behebe das zuerst, bevor du den Shop berührst, siehe Addon-Autos hinzufügen.
ESX: Die vehicles-Tabelle
Das ESX-Autohaus liest zwei SQL-Tabellen. vehicle_categories enthält die im Menü des Shops angezeigten Kategorien, und vehicles enthält die Autos.
DESCRIBE vehicle_categories;
DESCRIBE vehicles;In einer Standard-ESX-Legacy-Datenbank sehen sie so aus:
| Tabelle | Spalten |
|---|---|
vehicle_categories |
name, label |
vehicles |
name, model, price, category |
Füge eine Kategorie hinzu, wenn du eine neue brauchst:
INSERT INTO vehicle_categories (name, label) VALUES ('mycars', 'My cars');Dann füge das Auto hinzu:
INSERT INTO vehicles (name, model, price, category)
VALUES ('My Car', 'mycar', 85000, 'mycars');nameist die im Shop angegebene Beschriftung.modelist der Spawn-Name wie in/car. Kleinbuchstaben, genau.priceist eine ganze Zahl.categorymuss demnameeiner Reihe invehicle_categoriesentsprechen, oder das Auto erscheint in keiner Kategorie.
Starte die Autohaus-Ressource oder den ganzen Shop neu, damit sie die Tabelle erneut liest. Deine Spaltenliste kann unterschiedlich sein, wenn du einen angepassten Fahrzeugshop verwendest, vertraue daher auf DESCRIBE als auf diese Tabelle.
Tipp: Um zu sehen, wie ein funktionierendes Auto aussieht, kopiere die Werte einer Reihe, die bereits im Shop mit
SELECT * FROM vehicles LIMIT 5;vorhanden ist, und bearbeite sie.
QBCore: shared/vehicles.lua
QBCore speichert seine Fahrzeugliste in einer Lua-Datei, qb-core/shared/vehicles.lua. Jeder Eintrag ist ein Auto:
['mycar'] = {
model = 'mycar',
name = 'My Car',
brand = 'Mic',
price = 85000,
category = 'sports',
categoryLabel = 'Sports',
hash = `mycar`,
shop = 'pdm',
},Die Felder:
model: der Spawn-Name, gleich wie der Tabellenslüssel.nameundbrand: was der Shop anzeigt.price: der Verkaufspreis.categoryundcategoryLabel: die Gruppe im Menü.hash: das Modell-Hash. Die Backtick-Form berechnet es für dich.shop: die ID des Autohauses, das es verkauft, zum Beispiel das Standard-Autohaus. Ein Shop-Name, der nicht existiert, bedeutet, dass kein Shop das Auto verkauft.
Das genaue Layout hängt von der Version von qb-core ab. Einige Versionen verwenden eine Tabelle mit dem Modell als Schlüssel, andere eine einfache Liste. Öffne deine eigene Datei und kopiere einen benachbarten Eintrag, ändere dann die Werte, sodass die Struktur immer passt.
Nach dem Bearbeiten starte qb-core und die Autohaus-Ressource neu. Das Neustarten des Kern auf einem Live-Server trennt Spieler in einigen Setups, daher führe es zu einer ruhigen Zeit durch oder starte den ganzen Server neu.
QBox: qbx_core gemeinsame Fahrzeuge
QBox speichert Fahrzeuge in seinem eigenen Kern, qbx_core/shared/vehicles.lua. Die Idee ist gleich wie auf QBCore: ein Eintrag mit Modell, Name, Marke, Preis, Kategorie und Shop. QBox ändert sein Daten-Layout zwischen Versionen, daher öffne die Datei und kopiere einen Eintrag, der bereits auf deiner Version funktioniert, ändere ihn dann.
Starte qbx_core und dein Autohaus neu. Führe keinen separaten qb-core-Ordner daneben aus, siehe Konvertiere QBCore-Skripte zu QBox.
Autohaus-Skripte mit ihrer eigenen Konfiguration
Nicht jedes Autohaus verwendet die Framework-Liste. Einige lesen ihre eigene Konfigurationsdatei oder eine Datenbanktabelle, und die vehicles-Tabelle oder die gemeinsame Datei wird ignoriert. Überprüfe zunächst die Konfiguration des Skripts auf eine Fahrzeugliste. Wenn es eine hat, füge das Auto auch dort hinzu.
Name-, Preis- und Kategorie-Probleme
Das Auto zeigt keinen Namen. Das Feld name ist leer, oder das Autohaus verwendet den Anzeigenamen des Spiels. Ein Anzeigename im Spiel kommt von AddTextEntry mit dem gameName des Modells in vehicles.meta. Ohne dies kann der Shop NULL oder das Modell anzeigen. Stelle die Beschriftung in deinen Daten ein.
Ein Auto, das 0 kostet oder kostenlos ist. Der Preis fehlt oder ist keine Zahl. Entferne Anführungszeichen darum.
Die Kategorie wird nicht angezeigt. Bei ESX hat der Wert category keine Reihe in vehicle_categories. Bei QBCore fehlt die Kategorie-Beschriftung, oder der Shop filtert nach einer Kategorie, die er nicht kennt.
Falscher Spawn-Name. Mycar und mycar sind nicht gleich bei Daten-Lookups. Verwende den Namen genau wie definiert, in Kleinbuchstaben.
Gekauft, aber kein Auto. Der Kauf funktionierte und der Spawn nicht. Das Modell wird auf dem Client nicht gestreamt, oder das Kennzeichen und der Besitzer werden nicht gespeichert. Überprüfe die Konsole und die Datenbank, siehe die Garagen-Tabellen.
Handling und Leistung von Addon-Autos
Ein hinzugefügtes Auto mit schlechtem Handling oder einem schweren Modell schadet dem ganzen Server. Überprüfe das Handling vor dem Verkauf, bearbeite das Fahrzeug-Handling, und teste das Modell auf Textur-Speicher, siehe Oversized Assets.
Füge viele Autos auf einmal hinzu
Für ein Paket von Autos spart eine Schleife in SQL Zeit bei ESX. Schreibe die Reihen in einer Anweisung:
INSERT INTO vehicles (name, model, price, category) VALUES
('Car A', 'cara', 60000, 'mycars'),
('Car B', 'carb', 75000, 'mycars'),
('Car C', 'carc', 90000, 'mycars');Bei QBCore und QBox füge die Einträge nacheinander in die Lua-Datei ein, mit einem Komma nach jedem.
Checkliste
| Symptom | Behebung |
|---|---|
Auto funktioniert mit /car, wird aber nicht verkauft |
Füge es zur vehicles-Tabelle oder shared/vehicles.lua hinzu |
| Auto fehlt in einer Kategorie bei ESX | Der category muss einem name in vehicle_categories entsprechen |
| Kein Name oder Preis angezeigt | Fülle name und price, mit dem Preis als Zahl |
| Nichts verkauft das Auto bei QBCore oder QBox | Überprüfe, dass der Wert shop einem Autohaus entspricht |
| Kauf spawnt nichts | Das Modell wird nicht gestreamt: behebe zuerst das Addon-Auto |
| Bearbeitete Daten haben keine Auswirkung | Starte die Datenressource und das Autohaus neu |
| Lua-Datei-Fehler nach Bearbeitung | Überprüfe Kommas und Klammern um deinen neuen Eintrag |
Kurze Antworten
Warum ist mein Addon-Auto nicht im Autohaus?
Das Geschäft listet nur auf, was sich in seinen Daten befindet: die vehicles-Tabelle auf ESX oder shared/vehicles.lua auf QBCore und QBox. Das Auto zum Server-Stream hinzuzufügen ist ein separater Schritt, und beide sind erforderlich.
Welchen Modellnamen setze ich in die Tabelle?
Den Spawn-Namen des Fahrzeugs, den in /car, der im vehicles.meta des Fahrzeugs definiert ist. Er muss genau übereinstimmen, in Kleinbuchstaben.
Muss ich den Server nach dem Hinzufügen eines Autos neu starten?
Starte die Ressource neu, die die Daten enthält, und das Autohaus-Skript. Bei ESX liest der Shop normalerweise die Tabelle beim Start, daher reicht es, ihn neu zu starten.
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 →
Shop CreatorBau einen Shop in unter einer Minute — Besitzer, Angestellte, Tresore und Überfälle inklusive.Script ansehen →