Personalizzazione
Un solo file decide tutto ciò che puoi cambiare: config.lua. Il resto sono le schermate dell’app e la logica protetta da escrow.
Quale file decide cosa
Sezione intitolata “Quale file decide cosa”| File | Cosa decide | Modificabile |
|---|---|---|
config.lua | Framework, percorso immagini, scadenza, pagamenti, posizione del banco dei pegni, marker, blip, commesso, blacklist, testi delle notifiche, nome dell’app | Sì |
pawnshop.sql | Le tre tabelle, importate una sola volta | Sì |
web/index.html, web/styles.css, web/script.js | Le schermate, il layout e le etichette dell’app | — |
web/assets/pawn.png | L’icona dell’app | Sì |
web/assets/fries.png | L’immagine mostrata quando un oggetto non ha un’icona | Sì |
client/main.lua, server/main.lua | La logica | Escrow |
Non c’è alcuna cartella bridge né una cartella locales: il framework è una singola opzione qui sotto e tutti i testi si trovano in config.lua.
Generale
Sezione intitolata “Generale”| Opzione | Cosa fa | Predefinito |
|---|---|---|
Config.Framework | "esx" o "qb", in minuscolo. Su QBox, usa "qb" — QBox esegue le risorse QBCore tramite il suo livello di compatibilità | "esx" |
Config.InventoryImagePath | La cartella da cui vengono lette le immagini degli oggetti, come resource/folder/. Per qb-inventory, "qb-inventory/html/images/" | "ox_inventory/web/images/" |
Config.Expire | Giorni di permanenza di un’offerta. Modificare il prezzo di un’offerta fa ripartire il conteggio | 7 |
Pagamenti
Sezione intitolata “Pagamenti”| Opzione | Cosa fa | Predefinito |
|---|---|---|
Config.Bank | true: gli acquirenti pagano dalla banca e i venditori incassano in banca. false: entrambi usano l’oggetto in Config.Money | true |
Config.Money | L’oggetto dell’inventario usato come denaro quando Bank è disattivato — money, black_money o uno personalizzato | "money" |
Con Bank disattivato, il denaro deve essere un oggetto dell’inventario, che è il modo in cui ox_inventory gestisce i contanti. Sull’inventario nativo di ESX e su QBCore i contanti sono un conto e non un oggetto, quindi mantieni Config.Bank = true in quei casi.
I soldi di una vendita non arrivano direttamente al venditore. Vengono aggiunti al suo saldo Pending nell’app e il giocatore li preleva con il pulsante di trasferimento.
Vendita al bancone
Sezione intitolata “Vendita al bancone”| Opzione | Cosa fa | Predefinito |
|---|---|---|
Config.RequireLocation | true: la creazione e l’acquisto delle offerte devono essere completati al banco dei pegni | false |
Config.PawnShopLocation | Dove si trova il banco dei pegni: x, y, z e l’orientamento (heading) del commesso | 412.17, 315.11, 103.13, heading 194.62 |
Config.InteractionDistance | Quanto vicino, in metri, deve trovarsi il giocatore per premere E. Anche il server lo verifica | 1.0 |
Config.Marker | Il marker alla porta: Type, Scale (x, y, z) e Color (r, g, b, a) | Tipo 20, grigio-blu scuro |
Config.Blip | Il blip del percorso: Sprite, Color, Scale | 480, 32, 1 |
Config.NPC | Il Model ped del commesso e l’animazione di consegna (Dict e Name) | a_m_m_business_01, mp_common / givetake1_a |
Come funziona con RequireLocation attivo: il giocatore compila l’offerta o tocca acquista, il telefono imposta un percorso verso il banco dei pegni e il marker appare quando si trova entro 20 metri. Premendo E sul marker, il commesso si avvicina per la consegna e lo scambio viene completato.
Il blip e il marker esistono solo mentre un giocatore ha un’operazione da concludere lì; non c’è alcun blip permanente sulla mappa. Con RequireLocation disattivato, nulla di tutto questo viene usato.
Config.Blip.Name non viene utilizzato per l’etichetta del blip — quella proviene da Config.Messages.blip_name.
Blacklist
Sezione intitolata “Blacklist”Config.BlackList è un elenco di nomi di oggetti che non possono mai essere messi in vendita. Vengono esclusi dal selettore oggetti, rifiutati dal server e qualsiasi offerta esistente per uno di essi viene rimossa dalla bacheca — insieme ai suoi oggetti — la volta successiva che qualcuno apre l’app. Include burger e weapon_appistol come esempi predefiniti.
Testo e lingua
Sezione intitolata “Testo e lingua”Non c’è una cartella locales. Tutto il testo modificabile si trova in config.lua, in inglese:
| Opzione | Cosa contiene |
|---|---|
Config.locales.en.app_name | Il nome dell’app sul telefono e il titolo delle sue notifiche |
Config.locales.en.app_description | La riga descrittiva sotto il nome nell’App Store |
Config.Messages | Ogni notifica: offerta creata, acquistata ed eliminata, campi mancanti, errori, “vai al banco dei pegni”, il suggerimento del tasto E e il nome del blip |
Per giocare in un’altra lingua, traduci direttamente quelle stringhe. Alcune risposte del server — “Insufficient items”, “Inventory full”, “This item cannot be listed for sale”, “You do not own this offer” e simili — sono fisse nel file server protetto da escrow e rimangono in inglese.
Su ESX, le notifiche arrivano come notifiche lb-phone inviate dall’app. Su QBCore utilizzano il sistema di notifiche nativo del framework.
Immagini degli oggetti
Sezione intitolata “Immagini degli oggetti”L’app mostra ogni oggetto come <Config.InventoryImagePath><item name>.png, letto direttamente dalla tua risorsa inventario. Se manca un’immagine, viene mostrata al suo posto web/assets/fries.png; sostituisci quel file per cambiare l’immagine di riserva.