Personalizzazione
Il comportamento si configura in config.lua. Tutto ciò che tocca il tuo framework, le tue notifiche o quello che fa concretamente un effetto si trova nella cartella bridge/, lasciata aperta esattamente per questo motivo.
Quale file decide cosa
Sezione intitolata “Quale file decide cosa”| File o cartella | Cosa decide | Aperto? |
|---|---|---|
config.lua | Ogni impostazione presente in questa pagina e l’elenco delle vape | Aperto |
locales/*.lua | Testi delle notifiche, un file per lingua | Aperto |
bridge/client_bridge.lua | Rilevamento del framework lato client, notifiche, barra di progresso e cosa fa ogni effetto | Aperto |
bridge/server_bridge.lua | Rilevamento del framework lato server, rimozione di una vape scarica, controllo inventario e l’hook dello stress OnVapePuff | Aperto |
bridge/stress.lua | Una vecchia copia dell’hook dello stress. Non viene caricata dal manifest; modifica invece server_bridge.lua | Aperto |
client/client.lua | Impugnare la vape, il tiro, il fumo e la sua sincronizzazione | Escrowed |
server.lua | Registra ogni vape come oggetto utilizzabile e ritrasmette il fumo | Escrowed |
html/ | La barra di progresso: index.html, style.css, script.js | File normali |
stream/ | I dieci modelli di vape e def_props.ytyp | Asset |
inventory_items/ | Definizioni di oggetti pronte per ESX, ox_inventory e QBCore | Riferimento |
inventory_images/ | Un’icona per ogni oggetto | Asset |
Impostazioni generali
Sezione intitolata “Impostazioni generali”| Opzione | Cosa fa | Predefinito |
|---|---|---|
Config.Locale | Lingua delle notifiche | en |
Config.ShowNotifications | Mostra o meno le notifiche. Disattivato significa nessun messaggio per “impugnata”, “in recupero”, “scarica” o poteri | false |
Config.EnableMaxPuffs | Le vape si esauriscono dopo aver raggiunto il loro numero di puffs | true |
Config.RemoveVapeCommand | Comando chat che ripone la vape | vape |
Config.PuffKey | Tasto predefinito per fare un tiro | E |
Config.DisableCombatButtons | Blocca i tasti di combattimento (attacco e mira) mentre esce il fumo | true |
Config.Stress | Chiama l’hook dello stress a ogni tiro (vedi Stress) | true |
Config.PuffKey è un valore predefinito. Il tiro è un’assegnazione tasti di FiveM chiamata “Vape Puff”, quindi ogni giocatore può cambiarla in Impostazioni › Assegnazione tasti › FiveM, e una volta che un giocatore ha salvato il tasto, modificare Config.PuffKey non lo cambierà più per lui.
Vita, armatura e velocità
Sezione intitolata “Vita, armatura e velocità”| Opzione | Cosa fa | Predefinito |
|---|---|---|
Config.SpeedVapeInfiniteStamina | La stamina non si consuma durante l’effetto di velocità | true |
Config.StaticHealth | false: ogni tiro di vita aggiunge Config.Health. true: un tiro porta la vita a Config.Health se è inferiore | false |
Config.Health | Quantità aggiunta, oppure il livello a cui portarla. Con l’impostazione statica usa 101–200, la scala della vita del gioco | 10 |
Config.StaticArmor | Stessa logica per l’armatura: aggiungi oppure porta al valore | false |
Config.Armor | Quantità aggiunta, oppure il livello a cui portarla (fino a 100) | 10 |
La vita viene sempre mantenuta tra 100 e 200, l’armatura a 100 o meno.
| Opzione | Cosa fa | Predefinito |
|---|---|---|
Config.VapeExhale | Dimensione della particella di fumo | 0.4 |
Config.SmokeOpacity | Densità del fumo, da 0.0 a 1.0 | 1.0 |
Config.SmokeDelay | Secondi tra l’animazione del tiro e la comparsa del fumo | 1.5 |
Config.Particle | Quale particella viene usata: un dict e un name. Di base usa il fumo di burnout di scr_recartheft | scr_recartheft / scr_wheel_burnout |
Config.SmokeOffset | Punto di partenza del fumo rispetto alla testa: PosX, PosY, PosZ, RotX, RotY, RotZ | 0.05, 0.0, 0.5, 0, 0, 0 |
Ogni nuvola dura 1,5 secondi ed è visibile ai giocatori entro 30 metri.
Le vape — Config.Vapes
Sezione intitolata “Le vape — Config.Vapes”Ogni voce è nome oggetto → impostazioni. L’elenco completo fornito di base si trova in 🎒 Oggetti.
| Campo | Cosa fa |
|---|---|
prop | Quale modello viene impugnato: mic_black, mic_blue, mic_green, mic_lightblue, mic_orange, mic_pink, mic_purple, mic_red, mic_white, mic_yellow |
Label | Nome utilizzato sulla barra di progresso |
SmokeColor | Un colore R, G, B, oppure la parola Rainbow per colori a rotazione |
Cooldown | Secondi prima che questa vape possa essere usata per un altro tiro |
puffs | Tiri prima che si esaurisca e che un’unità venga rimossa dall’inventario |
EffectDuration | Secondi di durata del potere. 0 per i gusti normali |
ShowProgress | Mostra la barra di progresso mentre dura il potere. Disattivato su tutte le vape predefinite |
SpeedMultiplier | Solo per speed_vape (scatto) e carspeed_vape (motore) |
power | Opzionale. Un elenco di effetti da eseguire insieme, ciascuno con il proprio valore numerico (vedi sotto) |
Quale effetto ha una vape
Sezione intitolata “Quale effetto ha una vape”Il nome dell’oggetto decide l’effetto. invisibility_vape ti rende invisibile perché si chiama invisibility_vape; qualsiasi altro nome senza un elenco power è un semplice gusto.
I nomi degli effetti riconosciuti dal bridge: invisibility_vape, speed_vape, superjump_vape, teleport_vape, invincibility_vape, health_vape (o health), armor_vape (o armor), carspeed_vape, freeze_vape, gravity_vape — più random_vape, che ne sceglie uno tra gli altri.
Combinare gli effetti con power
Sezione intitolata “Combinare gli effetti con power”Assegna a una vape un elenco power ed eseguirà tutti gli effetti al suo interno a ogni tiro, qualunque sia il nome della vape. Il numero accanto a ciascun effetto indica la sua durata in secondi, tranne per health e armor, dove indica la quantità. vape_custom nella configurazione è un esempio funzionante: vita 10, armatura 10, velocità per 10 secondi.
Aggiungere una vape
Sezione intitolata “Aggiungere una vape”- Copia una voce esistente in
Config.Vapese assegnale un nuovo nome oggetto. - Scegli un
prop, unoSmokeColor,puffseCooldown. Per un potere, usa uno dei nomi effetto qui sopra come nome dell’oggetto oppure aggiungi un elencopower. - Aggiungi l’oggetto al tuo inventario nello stesso modo degli altri, con un’icona.
- Esegui
refresh, poirestart mic_vape.
Effetti extra riconosciuti dal bridge
Sezione intitolata “Effetti extra riconosciuti dal bridge”freeze_vape (non puoi muoverti) e gravity_vape (gravità ridotta, movimento più lento) sono gestiti in bridge/client_bridge.lua, e le loro definizioni oggetto sono già in inventory_items/, ma non hanno una voce in Config.Vapes. Aggiungi una voce per ciascuno — copia superjump_vape e rinominalo — e funzioneranno.
Anche transform_vape è nei file degli oggetti, ma richiede un elenco Config.TransformAnimals che la configurazione predefinita non include. Tralascialo a meno che tu non sia pronto a scrivere quell’elenco e testarlo.
Con Config.Stress = true, ogni tiro chiama OnVapePuff in bridge/server_bridge.lua passando l’ID server del giocatore. Di base quella funzione stampa solo una riga nella console del server. Al suo interno si trovano esempi commentati per i metadati QBCore e per esx_status: decommenta quello adatto a te, oppure chiama lì la tua risorsa di HUD o stress.
Se non usi un sistema di stress, imposta Config.Stress = false e la console rimarrà silenziosa.
Nove file sono inclusi in locales/: en, de, es, fr, it, pl, pt, ru, tr. Scegline uno con Config.Locale.
La riga car_speed — mostrata quando entra in funzione la vape per la velocità dell’auto — riporta “No waypoint set!” nei file predefiniti. Riformulala nel file della tua lingua.
Per aggiungere una lingua: copia locales/en.lua, cambia la chiave in cima con il tuo codice, traduci e aggiungi il file sia a client_scripts che a server_scripts in fxmanifest.lua. Imposta Config.Locale, esegui refresh e riavvia.
Il bridge
Sezione intitolata “Il bridge”Tutto ciò che dipende dal tuo server si trova in bridge/.
| File | Cosa modificare lì |
|---|---|
bridge/client_bridge.lua | ShowNotification — indirizza i messaggi alla tua risorsa di notifiche. Il codice degli effetti — cambia cosa fa un potere o aggiungi un nuovo nome effetto. ShowProgressBar / HideProgressBar per la barra |
bridge/server_bridge.lua | OnVapePuff per lo stress. Rimozione di una vape scarica e controllo se il giocatore la possiede ancora — adatta queste due funzioni per un inventario che non passa dalle funzioni oggetto native di ESX o QBCore |
Entrambi i file rilevano il framework nello stesso modo: es_extended se è avviato, altrimenti qb-core — che è anche il modo in cui viene rilevato QBox, tramite la sua compatibilità QBCore. Per un altro framework, aggiungi un ramo lì e nelle due funzioni oggetto accanto.
Comandi e tasti
Sezione intitolata “Comandi e tasti”| Comando o tasto | Cosa fa | Impostato in |
|---|---|---|
| Usa l’oggetto | Impugna la vape; usarlo di nuovo la ripone | Inventario |
| E (“Vape Puff”) | Fa un tiro | Config.PuffKey, poi nelle assegnazioni tasti di ogni giocatore |
/vape | Ripone la vape | Config.RemoveVapeCommand |
Una vape viene riposta anche quando il giocatore non ha più l’oggetto nell’inventario; la risorsa effettua un controllo ogni 2,5 secondi.