Personalizzazione
Tutto ciò che puoi modificare si trova in config.lua e locales/. Il resto della risorsa è sotto escrow, a parte le schermate dell’app.
Quale file decide cosa
Sezione intitolata “Quale file decide cosa”| File | Cosa decide | Modificabile |
|---|---|---|
config.lua | Framework, denaro, probabilità di rifiuto, polizia, scheda App Store, droghe, livelli, zone | Sì |
locales/*.lua | Le notifiche del telefono, un file per lingua | Sì |
locales/locales.lua | La tabella delle lingue compilata dai singoli file di traduzione | Sì |
ui/img/ | Le immagini dell’app: una per droga, il logo della schermata iniziale e l’icona dell’app (icon.png) | Sì |
ui/index.html, ui/styles.css, ui/script.js | Le schermate dell’app, il layout e le etichette dei pulsanti | — |
player_data.json | Vendite, livello e bonus di ogni spacciatore. Scritto dalla risorsa | Sì |
client/, server/ | La logica | Sotto escrow |
Non c’è una cartella bridge separata: il framework viene scelto tramite Config.Framework qui sotto.
Framework e denaro
Sezione intitolata “Framework e denaro”| Opzione | Cosa fa | Predefinito |
|---|---|---|
Config.Framework | "ESX" o "QB", in maiuscolo. Su QBox, usa "QB" — QBox esegue le risorse QBCore tramite il suo livello di compatibilità | "ESX" |
Config.esxResourceName | Il nome della risorsa di ESX, se il tuo non è quello standard | "es_extended" |
Config.qbResourceName | Il nome della risorsa di QBCore, se il tuo non è quello standard. Lascialo su "qb-core" se usi QBox | "qb-core" |
Config.BlackMoney | Paga in denaro sporco invece che in contanti puliti | true |
Config.MoneyAsItem | Paga come oggetto nell’inventario invece che su un conto | true |
Config.MoneyItem | L’oggetto consegnato quando MoneyAsItem è attivo e BlackMoney è disattivato | "money" |
Cosa riceve effettivamente il giocatore:
| ESX | QBCore / QBox | |
|---|---|---|
| Denaro sporco, oggetto | Oggetto black_money | Oggetto blackmoney |
| Denaro sporco, conto | Conto black_money | Oggetto blackmoney |
| Denaro pulito, oggetto | Oggetto da Config.MoneyItem | Oggetto da Config.MoneyItem |
| Denaro pulito, conto | Contanti (Cash) | Contanti (Cash) |
La trattativa
Sezione intitolata “La trattativa”| Opzione | Cosa fa | Predefinito |
|---|---|---|
Config.Failure | La probabilità, da 0 a 100, che l’acquirente mandi via il giocatore dopo aver bussato. La droga resta al giocatore | 55 |
Config.DealTimeout | Secondi a disposizione per raggiungere la porta prima che l’offerta scada | 300 |
Config.MinimumPolice | Agenti online necessari prima che qualcuno compri. 0 disattiva il controllo | 1 |
La quantità venduta viene scelta casualmente tra minAmount e maxAmount della droga quando il giocatore tocca SELL; la porta viene scelta casualmente tra le zone assegnate a quella droga.
Polizia
Sezione intitolata “Polizia”| Opzione | Cosa fa | Predefinito |
|---|---|---|
Config.PoliceJobs | I lavori conteggiati come polizia e che ricevono le segnalazioni | police, sheriff |
Config.PoliceAlertChance | La probabilità, da 0 a 100, che una vendita conclusa venga segnalata | 20 |
Config.PoliceNotifyAppName | Il titolo dell’avviso sull’lb-phone dell’agente | "Police Dispatch" |
Config.PoliceBlipSprite | Il blip posizionato nel punto in cui è avvenuta la vendita | 161 |
Config.PoliceBlipColor | Il suo colore | 38 |
Config.PoliceBlipScale | La sua dimensione | 1.0 |
Config.PoliceBlipDuration | Secondi prima che il blip scompaia | 120 |
Config.PriceMultipliers | Fasce di prezzo per numero di agenti online, ciascuna con minPolice, maxPolice e multiplier | Vedi sotto |
Fasce predefinite: 1–2 agenti ×1.0, 3–4 ×1.2, 5–6 ×1.4, 7–9 ×1.6, 10 o più ×2.0. Con un numero di agenti non coperto da alcuna fascia, i prezzi restano a ×1.0.
Come viene calcolato il prezzo. Il bonus del livello e il bonus della polizia vengono sommati, non moltiplicati: uno spacciatore di livello 5 (×1.5) che vende con sei agenti online (×1.4) ottiene 1 + 0.5 + 0.4 = ×1.9 del prezzo base.
Ogni agente con un lavoro presente in PoliceJobs riceve l’avviso; non c’è alcun controllo sullo stato di servizio (on-duty).
Chi vede l’app
Sezione intitolata “Chi vede l’app”| Opzione | Cosa fa | Predefinito |
|---|---|---|
Config.BlockedAppJobs | Lavori che non possono vedere né installare l’app. Controllato al caricamento del giocatore e a ogni cambio lavoro | police, sheriff, ambulance, mechanic |
La scheda nell’App Store
Sezione intitolata “La scheda nell’App Store”| Opzione | Cosa fa | Predefinito |
|---|---|---|
Config.name | Il nome dell’app sul telefono | "Drug Dealer" |
Config.description | La descrizione sotto il nome nell’App Store | "Deal dope, dodge the cops" |
Config.defaultApp | true la preinstalla su ogni telefono; false richiede che venga scaricata dall’App Store | false |
Config.size | La dimensione mostrata nello store, in KB | 25400 |
Config.price | Il costo per installarla | 0 |
L’icona dell’app è ui/img/icon.png. Sostituisci il file per cambiarla.
Config.drugs è un elenco; ogni voce corrisponde a un pulsante nell’app.
| Campo | Cosa fa |
|---|---|
item | L’oggetto dell’inventario che viene venduto |
label | Il nome mostrato nell’app e nelle notifiche |
price | Prezzo per unità, prima dei bonus |
minAmount, maxAmount | L’intervallo da cui viene estratta la quantità di ogni trattativa |
zones | In quali zone di Config.NPCLocations può trovarsi un acquirente |
image | Il nome di un file dentro ui/img/ |
minLevel | Il livello da spacciatore richiesto per venderla |
Per aggiungere una droga, aggiungi una voce, inserisci la sua immagine in ui/img/ e assicurati che l’oggetto esista nel tuo inventario. Immagini già presenti e usate dall’elenco predefinito: baggy_weed.png, baggy_cocaine.png, lsd.png, baggy_meth.png, mushroom.png, opium.png, crack.png, drug_heroin.png, xtc_baggy.png, oxy.png, drug_lean.png, drug_hash.png.
Livelli
Sezione intitolata “Livelli”Config.levels elenca i gradi in ordine. Ciascuno ha un numero level, un name, salesRequired (il numero totale di trattative concluse, non di unità) e bonusMultiplier.
| Livello | Nome | Vendite | Bonus |
|---|---|---|---|
| 1 | Newbie | 0 | ×1.0 |
| 2 | Rookie | 25 | ×1.1 |
| 3 | Hustler | 75 | ×1.2 |
| 4 | Dealer | 150 | ×1.35 |
| 5 | Trader | 300 | ×1.5 |
| 6 | Boss | 600 | ×1.75 |
| 7 | Kingpin | 1200 | ×2.0 |
| 8 | Overlord | 2000 | ×2.25 |
| 9 | Tycoon | 3500 | ×2.5 |
| 10 | Legend | 5000 | ×3.0 |
Mantienili in ordine crescente di salesRequired; il livello viene calcolato scorrendo l’elenco dall’alto verso il basso.
| Opzione | Cosa fa | Predefinito |
|---|---|---|
Config.dataFile | Il file nella cartella della risorsa che memorizza i progressi di ogni spacciatore | "player_data.json" |
I progressi vengono salvati per singolo personaggio: l’identificatore ESX o il citizen ID di QBCore.
Config.NPCLocations è numerato; i numeri sono quelli a cui fa riferimento il campo zones di una droga. Ogni zona ha:
| Campo | Cosa fa |
|---|---|
peds | Modelli di ped, ne viene scelto uno a caso per aprire la porta |
locations | Posizioni delle porte (x, y, z e rotazione) |
| Zona | Area | Porte incluse |
|---|---|---|
| 1 | Grove | 1 |
| 2 | Molo e spiaggia | 10 |
| 3 | Case di Vinewood | 10 |
| 4 | Sandy Shores | 8 |
| 5 | Paleto Bay | 9 |
Puoi aggiungere zone e porte liberamente. Una cosa da tenere a mente: il nome della zona nella segnalazione alla polizia proviene dalla risorsa stessa e conosce solo le zone da 1 a 5; qualsiasi zona aggiunta verrà segnalata come “Unknown Zone”.
In locales/ sono incluse nove lingue: en, es, fr, de, it, pt, pl, ru e tr. Imposta Config.Locale su una di esse.
Per aggiungerne una:
- Copia
locales/en.luain un nuovo file, ad esempiolocales/nl.lua. - Cambia il codice in alto in
nle traduci i testi. - Aggiungi
locales/nl.luaall’elencoshared_scriptsinfxmanifest.lua, accanto agli altri e sopraconfig.lua. - Imposta
Config.Locale = "nl", poi eseguirefreshe riavvia la risorsa.
I file della lingua coprono le notifiche del telefono. I pulsanti interni dell’app — DRUGS, PROFILE, SELL, CANCEL e la schermata del profilo — sono scritti in ui/script.js e ui/index.html.