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:

text
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:

text
/car mycar

Uż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.

sql
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:

sql
INSERT INTO vehicle_categories (name, label) VALUES ('mycars', 'My cars');

Potem dodaj samochód:

sql
INSERT INTO vehicles (name, model, price, category)
VALUES ('My Car', 'mycar', 85000, 'mycars');
  • name to etykieta wyświetlana w sklepie.
  • model to nazwa spawnu, jak w /car. Małe litery, dokładnie.
  • price to liczba całkowita.
  • category musi pasować do name wiersza w vehicle_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:

lua
['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.
  • name i brand: co sklep wyświetla.
  • price: cena sprzedaży.
  • category i categoryLabel: 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:

sql
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 →

Czytaj dalej