Salta ai contenuti

Personalizzazione

Le impostazioni si trovano in config.lua. I file che comunicano con il tuo framework, il tuo inventario e la tua risorsa di target sono lasciati aperti, così un server con una configurazione diversa può adattarli senza toccare il codice principale protetto da escrow.


File o cartellaCosa decideAperto?
config.luaOgni impostazione di questa pagina, la funzione di notifica, gli oggetti e gli aromiAperto
locales/*.luaOgni testo: menu, etichette del target, messaggi. Un file per linguaAperto
server_functions.luaRecupero del giocatore, aggiunta, rimozione e controllo oggetti, registrazione oggetti usabili, callback lista aromi e ReduceStressAperto
client/client_functions.luaLettura dei dati del giocatore e controllo del lavoro per il menu di configurazioneAperto
target/target.luaOgni opzione di target su narghilè e mobili, per ox_target e qb-targetAperto
client/client.lua, server/server.lua, locale.luaPosizionamento, tubo, fumo, proprietà e rifornimentiProtetto (Escrow)
html/Il menu di configurazione: index.html, style.css, script.jsFile in chiaro
inventory_items/Definizioni oggetti pronte all’uso per ESX, ox_inventory e QBCoreRiferimento
inventory_images/Un’icona per ogni oggettoAsset
mic_hookah_prop/stream/I dieci modelli di narghilèAsset, risorsa separata

OpzioneCosa faPredefinito
Config.LocaleLinguaen
Config.Frameworkesx, qbcore o qboxesx
Config.ESXResourceNameNome della cartella di ESXes_extended
Config.QBResourceNameNome della cartella di QBCoreqb-core
Config.QBoxResourceNameNome della cartella di QBoxqbx_core
Config.Targetox_target o qb-targetox_target
Config.QBTargetResourceNameNome della cartella di qb-targetqb-target
Config.InventoryImagePathDa dove il menu di configurazione carica le icone degli arominui://ox_inventory/web/images/

OpzioneCosa faPredefinito
Config.AdminGroupsGruppi che possono aprire il menu e raccogliere qualsiasi narghilè o mobile. false significa che tutti sono considerati adminfalse
Config.AllowedJobsLavori che possono aprire il menu di configurazione. false significa qualsiasi lavorofalse

Di base, chiunque può gestire il narghilè di chiunque. Per fare in modo che ogni narghilè appartenga al giocatore che lo ha posizionato, elenca i tuoi gruppi staff in Config.AdminGroups — ad esempio admin e superadmin. Su ESX la lista viene confrontata con il gruppo del giocatore; su QBCore e QBox, con il campo permission del giocatore.

Con una lista configurata:

ChiAprire menu di configurazioneRaccogliereAfferrare tubo
Il giocatore che l’ha posizionatosì (se il suo lavoro è consentito)sìsì
Un gruppo adminsì (se il suo lavoro è consentito)sìsì
Chiunque altrononosì

Config.AllowedJobs protegge solo il menu di configurazione. Chiunque può afferrare il tubo e fumare da un narghilè acceso.


OpzioneCosa faPredefinito
Config.MaxActiveTimeCosa significa “pieno” per carbone e acqua. Un hookah_coal o hookah_water lo riempie fino a questo valore1800
Config.ConsumptionPerPuffQuanto ogni tiro sottrae a charcoal e water10 e 10
Config.MaxPuffsPerSessionCalcolato dai due valori sopra (1800 ÷ 10 = 180). Solo come riferimento; lo script non lo legge180
Config.MaxHoseDistanceMetri di estensione del tubo prima che si stacchi3.5
Config.MaxSimultaneousUsersLimite previsto di persone che fumano dallo stesso narghilè4
Config.StressChiama ReduceStress a ogni tirotrue

Il narghilè non si consuma a tempo: carbone e acqua scendono solo quando qualcuno fa un tiro. Quando uno dei due arriva a zero, il narghilè si spegne e deve essere ricaricato.

ReduceStress in server_functions.lua riceve l’ID server del giocatore a ogni tiro quando Config.Stress è attivo. Viene fornito vuoto, con esempi commentati: un evento client, un export o un evento server della tua risorsa di stress o HUD. Inserisci lì la tua chiamata.


OpzioneCosa faPredefinito
Config.ParticleQuale particella viene usata: un dict e un namescr_recartheft / scr_wheel_burnout
Config.VapeExhaleDimensione del fumo0.5

La configurazione indica questi due valori come “non modificare a meno che tu non sappia cosa stai facendo”. Ogni nuvola dura tre secondi ed è mostrata ai giocatori entro 150 metri.


Le liste complete si trovano in 🎒 Oggetti.

Config.HookahItems — nome oggetto → modello. Per aggiungere un narghilè, il modello deve essere trasmesso in streaming (ad esempio in mic_hookah_prop/stream/ con una voce nel suo .ytyp), poi aggiungi la riga qui e l’oggetto nel tuo inventario.

Config.PlaceableProps — nome oggetto → propModel, type (furniture) e isChair. Qualsiasi prop del gioco base funziona. Imposta isChair = true su qualsiasi oggetto che debba offrire l’opzione Sit Down.

Config.Flavors — nome oggetto → impostazioni:

CampoCosa fa
LabelNome mostrato nel menu di configurazione
SmokeColorColore R, G, B del fumo
ScreenEffectNome di un effetto schermo di GTA riprodotto per chi fuma, oppure false per nessuno
EffectDurationDurata in secondi dell’effetto schermo

La configurazione contiene un link a una lista di nomi di effetti schermo accanto a Config.Flavors. Per aggiungere un aroma, copia una voce, dalle un nuovo nome oggetto e aggiungi l’oggetto e la sua icona al tuo inventario.


Config.Notify in config.lua invia ogni messaggio: ShowNotification su ESX, Functions.Notify su QBCore e QBox, altrimenti sulla console. Sostituisci il corpo della funzione per usare la tua risorsa di notifiche.


Undici file sono inclusi in locales/: en, es, fr, de, it, pt, ru, cn, nl, pl, tr. Scegline uno con Config.Locale.

Il commento sopra Config.Locale menziona anche jp, ma non è incluso alcun file giapponese; impostandolo apparirà “Locale [jp] does not exist”.

Ogni file copre il menu di configurazione, le etichette del target e i messaggi. Alcune parole sono scritte direttamente nei file Lua invece che nei file della lingua: i suggerimenti di posizionamento (Rotate Right, Rotate Left, Height Up, Height Down, Place Prop, Cancel), “You are already placing an object” e “None” per un aroma vuoto.

Per aggiungere una lingua: copia locales/en.lua, cambia la chiave in alto con il tuo codice e traduci. Il manifest carica automaticamente tutto ciò che si trova in locales/, quindi non c’è altro da registrare. Imposta Config.Locale, esegui refresh e riavvia.


Per modificareModifica
Un framework personalizzatoL’oggetto framework in fondo a config.lua e le funzioni in server_functions.lua e client/client_functions.lua
Un inventario diversoAddItem, RemoveItem e HasItem in server_functions.lua, e la registrazione degli oggetti usabili sotto di essi
Un target diversotarget/target.lua — le liste di opzioni sono condivise, cambiano solo le due chiamate addModel / AddTargetModel
Etichette, icone o distanza del targettarget/target.lua per icone e distanza, locales/ per le etichette
Regole sui lavoriCheckJobAccess in client/client_functions.lua

Su QBCore e QBox con ox_inventory avviato, server_functions.lua registra anche ogni narghilè e mobile tramite l’hook di utilizzo proprio di ox_inventory, come fallback per le configurazioni in cui il bridge oggetti di QBCore non inoltra l’utilizzo.


Tasto o comandoQuandoCosa fa
ETenendo in mano un narghilèInizia il posizionamento
XTenendo in mano un narghilèLo ripone senza posizionarlo
Rotellina del mouseDurante il posizionamentoRuota l’anteprima
Freccia su / giùDurante il posizionamentoAlza o abbassa l’anteprima
EDurante il posizionamentoAppoggia l’oggetto
XDurante il posizionamentoAnnulla
ETenendo il tubo di un narghilè accesoFa un tiro
X (“Hookah - Stand Up X”)SedutoSi alza. Riassegnabile nelle impostazioni tasti di FiveM del giocatore
/hookah:chair:stand_upSedutoLo stesso, come comando