Aggiungi auto al negozio di veicoli FiveM (tabella ESX vehicles, QBCore, QBox)
Come aggiungere un'auto a una concessionaria: le tabelle ESX vehicles e vehicle_categories, le voci shared vehicles.lua di QBCore e QBox, e perché un'auto appare senza prezzo.
Sintomi tipici:
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.Una concessionaria vende ciò che è elencato nei suoi dati, non ciò che esiste nel gioco. L'aggiunta di un'auto richiede due passaggi: il modello deve essere trasmesso al gioco, quindi deve essere elencato nei dati che usa il tuo framework. Questo articolo copre il secondo passaggio per ESX, QBCore e QBox.
Passaggio uno: il modello deve essere trasmesso
Se il modello non viene caricato, la concessionaria non può mostrarlo, e un acquisto non spawna nulla. Aggiungi l'auto come risorsa per prima, e controlla che funziona nel gioco:
/car mycarUsa il nome spawn, che viene da vehicles.meta dell'auto. Se /car fallisce, risolvilo prima di toccare il negozio, vedi aggiungere auto addon.
ESX: la tabella vehicles
Il negozio ESX legge due tabelle SQL. vehicle_categories contiene le categorie mostrate nel menu del negozio, e vehicles contiene le auto.
DESCRIBE vehicle_categories;
DESCRIBE vehicles;In un database ESX Legacy standard si presentano così:
| Table | Colonne |
|---|---|
vehicle_categories |
name, label |
vehicles |
name, model, price, category |
Aggiungi una categoria se ne hai bisogno di una nuova:
INSERT INTO vehicle_categories (name, label) VALUES ('mycars', 'My cars');Quindi aggiungi l'auto:
INSERT INTO vehicles (name, model, price, category)
VALUES ('My Car', 'mycar', 85000, 'mycars');nameè l'etichetta mostrata nel negozio.modelè il nome spawn, come in/car. Minuscolo, esatto.priceè un numero intero.categorydeve corrispondere alnamedi una riga invehicle_categories, o l'auto non appare in nessuna categoria.
Riavvia la risorsa della concessionaria, o il negozio intero, così legge la tabella di nuovo. Il tuo elenco di colonne può differire se usi un negozio di veicoli personalizzato, quindi fidati di DESCRIBE rispetto a questa tabella.
Consiglio: per vedere come appare un'auto funzionante, copia i valori di una riga che è già nel negozio con
SELECT * FROM vehicles LIMIT 5;e modificali.
QBCore: shared/vehicles.lua
QBCore mantiene il suo elenco di veicoli in un file Lua, qb-core/shared/vehicles.lua. Ogni voce è un'auto:
['mycar'] = {
model = 'mycar',
name = 'My Car',
brand = 'Mic',
price = 85000,
category = 'sports',
categoryLabel = 'Sports',
hash = `mycar`,
shop = 'pdm',
},I campi:
model: il nome spawn, uguale alla chiave della tabella.nameebrand: ciò che il negozio visualizza.price: il prezzo di vendita.categoryecategoryLabel: il gruppo nel menu.hash: l'hash del modello. La forma con backtick lo calcola per te.shop: l'id della concessionaria che la vende, ad esempio quella predefinita. Un nome di negozio che non esiste significa che nessun negozio vende l'auto.
L'esatto layout dipende dalla versione di qb-core. Alcune versioni usano una tabella con chiave per il modello, altre una semplice lista. Apri il tuo file e copia una voce vicina, quindi cambia i valori, così la struttura corrisponde sempre.
Dopo aver modificato, riavvia qb-core e la risorsa della concessionaria. Riavviare il core su un server dal vivo disconnette i giocatori in alcuni setup, quindi fallo in un momento tranquillo, o riavvia il server intero.
QBox: qbx_core shared vehicles
QBox mantiene i veicoli nel suo core, qbx_core/shared/vehicles.lua. L'idea è la stessa di QBCore: una voce con il modello, nome, brand, prezzo, categoria e negozio. QBox cambia il suo layout di dati tra i rilasci, quindi apri il file e copia una voce che già funziona nella tua versione, quindi modificala.
Riavvia qbx_core e la tua concessionaria. Non eseguire una cartella qb-core separata accanto a essa, vedi conversione di script QBCore a QBox.
Script di concessionaria con loro propria config
Non ogni concessionaria usa l'elenco framework. Alcuni leggono il loro file di config o una tabella di database, e la tabella vehicles o il file condiviso vengono ignorati. Controlla il config dello script per un elenco di veicoli prima. Se ne ha uno, aggiungi l'auto anche lì.
Problemi di nome, prezzo e categoria
L'auto non mostra il nome. Il campo name è vuoto, o la concessionaria usa il nome visualizzato del gioco. Un nome visualizzato nel gioco viene da AddTextEntry con il gameName del modello in vehicles.meta. Senza di esso il negozio può mostrare NULL o il modello. Imposta l'etichetta nei tuoi dati.
Un'auto che costa 0 o è gratuita. Il prezzo è mancante o non è un numero. Rimuovi le virgolette attorno ad esso.
La categoria non appare. Su ESX, il valore category non ha una riga in vehicle_categories. Su QBCore l'etichetta categoria è mancante, o il negozio filtra per una categoria che non conosce.
Nome spawn sbagliato. Mycar e mycar non sono gli stessi nelle ricerche di dati. Usa il nome esattamente come definito, in minuscolo.
Acquistato, ma nessun'auto. L'acquisto ha funzionato e lo spawn no. Il modello non viene trasmesso al client, o la targa e il proprietario non vengono salvati. Controlla la console e il database, vedi le tabelle del garage.
Gestione e prestazioni delle auto addon
Un'auto aggiunta con gestione scadente o un modello pesante danneggia il server intero. Controlla la gestione prima di venderla, modifica la gestione del veicolo, e testa il modello per la memoria della texture, vedi oversized assets.
Aggiungi molte auto contemporaneamente
Per un pacchetto di auto, un loop in SQL risparmia tempo su ESX. Scrivi le righe in un'unica istruzione:
INSERT INTO vehicles (name, model, price, category) VALUES
('Car A', 'cara', 60000, 'mycars'),
('Car B', 'carb', 75000, 'mycars'),
('Car C', 'carc', 90000, 'mycars');Su QBCore e QBox, incolla le voci una dopo l'altra nel file Lua, con una virgola dopo ognuna.
Checklist
| Sintomo | Soluzione |
|---|---|
L'auto funziona con /car ma non è venduta |
Aggiungila alla tabella vehicles, o shared/vehicles.lua |
| L'auto manca da una categoria su ESX | Il category deve corrispondere a un name in vehicle_categories |
| Nessun nome o prezzo mostrato | Compila name e price, con il prezzo come numero |
| Niente vende l'auto su QBCore o QBox | Controlla che il valore shop corrisponda a una concessionaria |
| L'acquisto non spawna nulla | Il modello non è trasmesso: prima ripara l'auto addon |
| I dati modificati non hanno effetto | Riavvia la risorsa di dati e la concessionaria |
| Errori del file Lua dopo la modifica | Controlla virgole e parentesi graffe intorno alla tua nuova voce |
Risposte rapide
Perché la mia auto addon non è nella concessionaria?
Il negozio elenca solo ciò che è nei suoi dati: la tabella vehicles su ESX, o shared/vehicles.lua su QBCore e QBox. Aggiungere l'auto al flusso del server è un passaggio separato, e entrambi sono necessari.
Quale nome di modello metto nella tabella?
Il nome spawn del veicolo, quello usato in /car, che è definito in vehicles.meta del veicolo. Deve corrispondere esattamente, in minuscolo.
Devo riavviare il server dopo aver aggiunto un'auto?
Riavvia la risorsa che contiene i dati e lo script della concessionaria. Su ESX il negozio di solito legge la tabella quando si avvia, quindi riavviarla è sufficiente.
Script senza questo problema
Advanced BoostingBoosting di veicoli dal tablet: contratti dalla classe D alla S+, crew e coda in tempo reale.Vedi script →
Chameleon Paints82 vernici camaleonte che cambiano colore, in un menu da applicare con un clic.Vedi script →
Shop CreatorCrea un negozio in meno di un minuto — proprietari, dipendenti, casseforti e rapine inclusi.Vedi script →