Personalizzazione
Quasi tutto si trova in config.lua. Il resto è testo, dati e il sottile strato che dialoga con il tuo framework.
Quale file decide cosa
Sezione intitolata “Quale file decide cosa”| File | Cosa decide | Modificabile |
|---|---|---|
config.lua | Framework, lingua, chi può verniciare, oggetti, nomi dei comandi, marker delle carrozzerie | Sì |
locales/*.lua | Ogni notifica e suggerimento in chat, un file per lingua | Sì |
locales/main.lua | La funzione che sceglie il testo per Config.Locale | Sì |
bridge/server.lua | Rilevamento del framework, notifiche, controllo admin, lavori, oggetti utilizzabili, rimozione degli oggetti | Sì |
bridge/client.lua | Rilevamento del framework e notifiche lato giocatore | Sì |
items/ox.lua, items/qb.lua, items/sql.sql | Definizioni di oggetti pronte da copiare nel tuo inventario | Sì |
permissions.json | Gli Steam ID autorizzati ad aprire il menu. Scritto dai comandi give e remove | Sì |
vehicle_original_colors.json | Il colore di ogni auto verniciata prima della sua prima verniciatura, per modello e targa | Sì |
html/ui.html, html/style.css, html/script.js | Il menu: il titolo, i campioni e l’aspetto | — |
data/, stream/ | Le definizioni delle vernici e le texture delle rampe per i colori dal 223 al 242 | Non toccare |
client/main.lua, server/main.lua | La logica | Escrow (criptato) |
Generale
Sezione intitolata “Generale”| Opzione | Cosa fa | Predefinito |
|---|---|---|
Config.Framework | "auto", "esx" o "qbcore". Auto usa quello in esecuzione tra es_extended e qb-core; QBox conta come qb-core tramite la sua compatibilità con QBCore. Se lo fissi, QBox usa "qbcore" | "auto" |
Config.Locale | La lingua di ogni messaggio. Vedi Lingue, più sotto | "es" |
Config.PermissionFile | Il nome del file JSON che contiene l’elenco dei permessi | "permissions.json" |
Chi può aprire il menu
Sezione intitolata “Chi può aprire il menu”| Opzione | Cosa fa | Predefinito |
|---|---|---|
Config.Permissions | Usa l’elenco dei permessi in permissions.json | true |
Config.UseJobs | Fa aprire il menu anche ai lavori in Config.AuthorizedJobs | true |
Config.AuthorizedJobs | I nomi dei lavori consentiti quando UseJobs è attivo | mechanic, police |
I due interruttori si combinano così:
Permissions | UseJobs | Chi può aprire il menu |
|---|---|---|
| attivo | attivo | I giocatori nell’elenco, e chiunque abbia un lavoro presente in AuthorizedJobs |
| attivo | disattivo | Solo i giocatori nell’elenco |
| disattivo | attivo o disattivo | Tutti |
L’elenco è indicizzato per identificatore Steam. Un giocatore che non usa Steam non può essere aggiunto; il comando give risponde di non essere riuscito a ottenere il suo identificatore Steam.
Oggetti
Sezione intitolata “Oggetti”| Opzione | Cosa fa | Predefinito |
|---|---|---|
Config.UseItems | Registra come utilizzabili gli 82 oggetti vernice e l’oggetto di reset | true |
Config.ItemsRequirePermission | Fa seguire agli oggetti vernice le stesse regole del menu. Se disattivo, chiunque ne abbia uno può usarlo | false |
L’oggetto di reset non chiede mai il permesso. I nomi degli oggetti, e dove sono fornite le loro definizioni, si trovano in Installazione.
Comandi
Sezione intitolata “Comandi”Ogni nome è impostato in config.lua, senza la barra.
| Opzione | Predefinito | Chi | Cosa fa |
|---|---|---|---|
Config.Chameleon | /chameleon | Chiunque sia autorizzato dalle regole sopra | Apre il menu. Devi essere in un veicolo |
Config.ChameleonReset | /chameleonreset | Chiunque | Riporta l’auto in cui ti trovi al suo colore originale |
Config.ChameleonGive | /chameleongive [ID] | Admin | Aggiunge lo Steam ID di quel giocatore all’elenco dei permessi |
Config.ChameleonRemove | /chameleonremove [ID] | Admin | Lo rimuove di nuovo |
“Admin” indica il gruppo admin o superadmin su ESX, e il permesso admin o god su QBCore. Entrambi i controlli si trovano in bridge/server.lua, se i tuoi hanno un altro nome.
Marker delle carrozzerie
Sezione intitolata “Marker delle carrozzerie”Config.Locations è un elenco; aggiungi tutte le voci che vuoi. Ognuna ha:
| Campo | Cosa fa | Valore predefinito |
|---|---|---|
coords | Dove si trova il marker | Due punti di esempio vicino a Burton |
radius | A che distanza, in metri, devi trovarti perché compaia il messaggio | 3.0 |
markerType | Il marker di FiveM disegnato | 1 (un anello a terra) |
markerColor | Rosso, verde, blu e alfa | Rosso in uno, verde nell’altro, alfa 100 |
markerScale | La sua dimensione | 2.0 × 2.0 × 1.0 |
notification | Il testo di aiuto mostrato dentro il raggio | Press ~INPUT_CONTEXT~ to open the Chameleon menu |
Il marker viene disegnato da 10 metri di distanza. Il messaggio compare solo dentro radius e in un veicolo; E apre quindi il menu, con lo stesso controllo dei permessi del comando.
Il testo di notification si trova in config.lua, non nei locale, quindi traducilo lì.
Il menu
Sezione intitolata “Il menu”html/ui.html contiene i campioni — uno per ogni ID colore da 161 a 242 — e il titolo del menu, “Chameleon Paintings”, che è scritto nella pagina anziché preso dai locale. html/style.css assegna a ogni campione il suo colore di anteprima.
Nove sono incluse in locales/: en, es, fr, de, it, pt, pl, ru e tr. Imposta Config.Locale su uno di questi codici.
Per aggiungerne una:
- Copia
locales/en.luain un nuovo file, per esempiolocales/nl.lua. - Cambia il codice della lingua in cima al nuovo file in
nle traduci il testo. - Aggiungi
locales/nl.luaa entrambe le listeclient_scriptseserver_scriptsinfxmanifest.lua, accanto agli altri file dei locale. - Imposta
Config.Locale = "nl", poi eseguirefreshe riavvia la risorsa.
Una chiave mancante appare come Translation [key] does not exist anziché rompere qualcosa, il che rende facile individuare un file lasciato a metà.
Il bridge
Sezione intitolata “Il bridge”Due file in bridge/ sono gli unici punti in cui la risorsa tocca il tuo framework.
| File | Cosa fa |
|---|---|
bridge/server.lua | Trova il framework, invia le notifiche (esx:showNotification o QBCore:Notify), decide chi è admin, legge il lavoro di un giocatore, registra gli oggetti utilizzabili e rimuove un oggetto dopo l’uso |
bridge/client.lua | Trova il framework lato giocatore e mostra le notifiche (ESX.ShowNotification o QBCore.Functions.Notify) |
Se non viene trovato alcun framework, le notifiche ripiegano sui messaggi in chat.
Adattarlo. Per usare il tuo script di notifiche, sostituisci il corpo di Bridge.Notify in entrambi i file. Per un sistema admin personalizzato, modifica Bridge.IsAdmin. Per un framework diverso da ESX, QBCore o QBox, compila ogni funzione Bridge. in bridge/server.lua — rilevamento del framework, Notify, IsAdmin, GetPlayerJob, RegisterUsableItem e RemoveItem — e alla risorsa non serve altro.