Dodaj samochody do sklepu pojazdów FiveM (tabela vehicles ESX, QBCore, QBox)
Jak dodać samochód do dealerstwa: tabele vehicles i vehicle_categories ESX, wpisy shared vehicles.lua QBCore i QBox, i dlaczego samochód pojawia się bez ceny.
Typowe objawy:
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.Dealerstwo sprzedaje to, co jest wymienione w jego danych, nie to, co istnieje w grze. Dodanie samochodu wymaga dwóch kroków: model musi być strumieniowany do gry, potem musi być wymieniony w danych, które używa twoja struktura. Ten artykuł obejmuje drugi krok dla ESX, QBCore i QBox.
Krok pierwszy: model musi być strumieniowany
Jeśli model nie jest załadowany, dealerstwo nie może go pokazać, a zakup spawnia nic. Najpierw dodaj samochód jako zasób i sprawdź, czy działa w grze:
/car mycarUżyj nazwy spawnu, która pochodzi z vehicles.meta samochodu. Jeśli /car się nie powiedzie, napraw to przed dotknięciem sklepu, zobacz adding addon cars.
ESX: tabela vehicles
Dealerstwo ESX czyta dwie tabele SQL. vehicle_categories zawiera kategorie pokazane w menu sklepu, a vehicles zawiera samochody.
DESCRIBE vehicle_categories;
DESCRIBE vehicles;W standardowej bazie danych ESX Legacy wyglądają tak:
| Tabela | Kolumny |
|---|---|
vehicle_categories |
name, label |
vehicles |
name, model, price, category |
Dodaj kategorię, jeśli potrzebujesz nowej:
INSERT INTO vehicle_categories (name, label) VALUES ('mycars', 'My cars');Potem dodaj samochód:
INSERT INTO vehicles (name, model, price, category)
VALUES ('My Car', 'mycar', 85000, 'mycars');nameto etykieta wyświetlana w sklepie.modelto nazwa spawnu, jak w/car. Małe litery, dokładnie.priceto liczba całkowita.categorymusi pasować donamewiersza wvehicle_categories, lub samochód nie pojawi się w żadnej kategorii.
Zrestartuj zasób dealerstwa lub cały sklep, aby przeczytał tabelę ponownie. Twoja lista kolumn może się różnić, jeśli używasz dostosowanego sklepu pojazdów, więc ufaj DESCRIBE zamiast tej tabeli.
Wskazówka: aby zobaczyć, jak wygląda działający samochód, skopiuj wartości wiersza, który jest już w sklepie z
SELECT * FROM vehicles LIMIT 5;i edytuj je.
QBCore: shared/vehicles.lua
QBCore przechowuje listę pojazdów w pliku Lua, qb-core/shared/vehicles.lua. Każdy wpis to samochód:
['mycar'] = {
model = 'mycar',
name = 'My Car',
brand = 'Mic',
price = 85000,
category = 'sports',
categoryLabel = 'Sports',
hash = `mycar`,
shop = 'pdm',
},Pola:
model: nazwa spawnu, taka sama jak klucz tabeli.nameibrand: co sklep wyświetla.price: cena sprzedaży.categoryicategoryLabel: grupa w menu.hash: hash modelu. Forma z backtick oblicza to dla ciebie.shop: id dealerstwa, które go sprzedaje, na przykład domyślne. Nazwa sklepu, która nie istnieje, oznacza, że żaden sklep nie sprzedaje samochodu.
Dokładny układ zależy od wersji qb-core. Niektóre wersje używają tabeli oindeksowanej przez model, inne zwykłą listę. Otwórz swój własny plik i skopiuj sąsiedni wpis, potem zmień wartości, aby struktura zawsze pasowała.
Po edycji, zrestartuj qb-core i zasób dealerstwa. Restartowanie rdzenia na działającym serwerze rozłącza graczy w niektórych konfiguracjach, więc zrób to w cichy moment lub zrestartuj cały serwer.
QBox: pojazdy wspólne qbx_core
QBox przechowuje pojazdy w swoim rdzeniu, qbx_core/shared/vehicles.lua. Pomysł jest taki sam jak na QBCore: wpis z modelem, nazwą, marką, ceną, kategorią i sklepem. QBox zmienia układ danych między wydaniami, więc otwórz plik i skopiuj wpis, który już działa w twojej wersji, potem edytuj go.
Zrestartuj qbx_core i swoje dealerstwo. Nie uruchamiaj osobnego folderu qb-core obok niego, zobacz converting QBCore scripts to QBox.
Skrypty dealerstwa z własnym konfiguracją
Nie każde dealerstwo używa listy struktury. Niektóre czytają swój własny plik config lub tabelę bazy danych, a tabela vehicles lub plik wspólny jest ignorowany. Sprawdź config skryptu na listę pojazdów najpierw. Jeśli ma jedną, dodaj samochód tam też.
Problemy z nazwą, ceną i kategorią
Samochód nie pokazuje nazwy. Pole name jest puste, lub dealerstwo używa nazwy wyświetlanej gry. Nazwa wyświetlona w grze pochodzi z AddTextEntry z gameName modelu w vehicles.meta. Bez niej sklep może pokazać NULL lub model. Ustaw etykietę w swoich danych.
Samochód, który kosztuje 0 lub jest darmowy. Cena brakuje lub nie jest liczbą. Usuń cudzysłowy wokół niej.
Kategoria się nie pokazuje. Na ESX wartość category nie ma wiersza w vehicle_categories. Na QBCore etykieta kategorii brakuje lub sklep filtruje po kategorii, którą nie zna.
Zła nazwa spawnu. Mycar i mycar nie są tym samym w wyszukiwaniach danych. Użyj nazwy dokładnie jako zdefiniowana, małymi literami.
Kupiony, ale żaden samochód. Zakup działał i spawn nie. Model nie jest strumieniowany na kliencie lub tablica rejestracyjna i właściciel nie są zapisani. Sprawdź konsolę i bazę danych, zobacz the garage tables.
Handling i wydajność samochodów addon
Dodany samochód ze złym handlingiem lub ciężkim modelem boli cały serwer. Sprawdź handling przed sprzedażą, edit the vehicle handling, i przetestuj model na pamięć tekstury, zobacz oversized assets.
Dodaj wiele samochodów naraz
Dla paczki samochodów, pętla w SQL oszczędza czas na ESX. Napisz wiersze w jednym poleceniu:
INSERT INTO vehicles (name, model, price, category) VALUES
('Car A', 'cara', 60000, 'mycars'),
('Car B', 'carb', 75000, 'mycars'),
('Car C', 'carc', 90000, 'mycars');Na QBCore i QBox, wklej wpisy jeden po drugim w pliku Lua, z przecinkiem po każdym.
Lista kontrolna
| Symptom | Naprawa |
|---|---|
Samochód działa z /car, ale nie jest sprzedawany |
Dodaj go do tabeli vehicles lub shared/vehicles.lua |
| Samochód brakuje z kategorii na ESX | category musi pasować do name w vehicle_categories |
| Brak nazwy lub ceny wyświetlanej | Wypełnij name i price, z ceną jako liczbę |
| Nic nie sprzedaje samochodu na QBCore lub QBox | Sprawdź, czy wartość shop pasuje do dealerstwa |
| Zakup spawnia nic | Model nie jest strumieniowany: najpierw napraw samochód addon |
| Edytowane dane nie mają efektu | Zrestartuj zasób danych i dealerstwo |
| Błędy pliku Lua po edycji | Sprawdź przecinki i nawiasy wokół nowego wpisu |
Szybkie odpowiedzi
Dlaczego mój samochód addon nie jest w dealerstwie?
Sklep wyświetla tylko to, co jest w jego danych: tabela vehicles na ESX lub shared/vehicles.lua na QBCore i QBox. Dodanie samochodu do strumienia serwera to osobny krok, i obydwa są potrzebne.
Jaka jest nazwa modelu, którą wpisuję w tabelę?
Nazwa spawnu pojazdu, ta używana w /car, która jest zdefiniowana w vehicles.meta pojazdu. Musi pasować dokładnie, małymi literami.
Czy muszę zrestartować serwer po dodaniu samochodu?
Zrestartuj zasób, który zawiera dane, i skrypt dealerstwa. Na ESX sklep zwykle czyta tabelę, gdy się uruchamia, więc zrestartowanie go wystarczy.
Skrypty bez tego problemu
Advanced BoostingBoosting pojazdów z tabletu: kontrakty od klasy D do S+, ekipy i kolejka na żywo.Zobacz skrypt →
Chameleon Paints82 lakiery kameleon zmieniające kolor, w jednym menu — klik i gotowe.Zobacz skrypt →
Shop CreatorZbuduj sklep w niecałą minutę — właściciele, pracownicy, sejfy i napady w zestawie.Zobacz skrypt →