Personalizzazione
Quasi tutto ciò che riguarda una missione — chi la assegna, cosa dice, cosa succede dopo — viene costruito nell’editor e salvato nel tuo database. I file servono per quelle poche impostazioni che sono uguali per ogni missione.
Quale file decide cosa
Sezione intitolata “Quale file decide cosa”| File | Cosa decide | Aperto? |
|---|---|---|
config.lua | Framework, lingua, come i giocatori parlano agli NPC, colore del dialogo, /cancelquest, screenshot | Sì |
bridge/bridge_server.lua | Denaro, oggetti, dati del giocatore, callback e controllo dei permessi | Sì |
bridge/bridge_client.lua | Notifiche, testo di aiuto, dati del giocatore e come un giocatore viene rianimato | Sì |
locales/*.lua | Ogni testo: editor, finestra di dialogo, notifiche, log webhook | Sì |
install.sql | Le otto tabelle, importate una sola volta | Sì |
web/ | L’editor, la finestra di dialogo, il minigioco e la barra di progresso (HTML, CSS, JS) | Leggibile |
client/, server/ | Il motore delle missioni | Protetto |
client/game_data/*.lua | Gli elenchi dietro i selettori dell’editor: ped, auto, ossa, animazioni, particelle, suoni, effetti schermo | Protetto |
config.lua
Sezione intitolata “config.lua”Generale
Sezione intitolata “Generale”| Opzione | Cosa fa | Predefinito |
|---|---|---|
Config.Framework | Con quale framework comunicare: 'esx' o 'qbcore'. Non rilevato automaticamente. Su QBox, usa 'qbcore' — QBox esegue le risorse QBCore tramite il suo livello di compatibilità | 'esx' |
Config.Locale | La lingua dell’editor, della finestra di dialogo e delle notifiche. Vedi Lingue | 'en' |
Config.Debug | Presente nel file; questa versione non stampa nulla in più quando è attivo | true |
Parlare con gli NPC delle missioni
Sezione intitolata “Parlare con gli NPC delle missioni”| Opzione | Cosa fa | Predefinito |
|---|---|---|
Config.InteractionType | 'ox_target', 'qb-target' o 'drawtext' (testo 3D e un tasto) | 'ox_target' |
Config.InteractionDistance | Quanto vicino, in metri, deve trovarsi un giocatore per parlare con un NPC | 2.5 |
Config.InteractionKey | Il tasto utilizzato con 'drawtext' e dal nodo Interact in Area. 38 è E | 38 |
Config.ThemeColor | Colore principale della finestra di dialogo: blue, pink, yellow, red, green, purple, orange, cyan, white o black | "purple" |
Annullare una missione
Sezione intitolata “Annullare una missione”| Opzione | Cosa fa | Predefinito |
|---|---|---|
Config.EnableCancelQuest | Registra un comando che permette al giocatore di abbandonare la missione attiva | true |
Config.CancelQuestCommand | Il nome del comando, senza la barra | "cancelquest" |
L’annullamento cancella i progressi salvati del giocatore per quella missione e rimuove ciò che ha generato.
Screenshot
Sezione intitolata “Screenshot”| Opzione | Cosa fa | Predefinito |
|---|---|---|
Config.ScreenshotBasic | Permette al nodo Send Webhook di allegare uno screenshot quando la relativa casella è spuntata. Richiede screenshot-basic in esecuzione | true |
Comandi e permessi
Sezione intitolata “Comandi e permessi”| Comando | Chi può usarlo | Cosa fa |
|---|---|---|
/questcreator | Chiunque abbia il permesso ACE mic_questcreator.open | Apre il Quest & Event Creator |
/cancelquest | Ogni giocatore, mentre Config.EnableCancelQuest è attivo | Abbandona la missione attiva. Rinominato tramite Config.CancelQuestCommand |
Lo stesso permesso protegge tutto ciò che l’editor salva, elimina, importa ed esporta — il controllo viene effettuato lato server, non solo all’apertura del menu. Concedilo con una riga add_ace a un identificatore o a un gruppo; il controllo stesso si trova in Bridge.Server.IsPlayerAllowed in bridge/bridge_server.lua se preferisci collegarlo al tuo sistema di amministrazione.
Tredici file sono inclusi in locales/: en, es, fr, de, it, pt, ru, ja, ko, zh-CN, ar, nl e cs. Imposta Config.Locale con il nome del file senza .lua.
Aggiungere una lingua:
- Copia
locales/en.luae rinomina la copia con il codice della tua lingua, ad esempiolocales/pl.lua. - Al suo interno, cambia il nome della tabella da
'en'al tuo codice e traduci il testo a destra di ogni riga. Lascia invariate le chiavi a sinistra e qualsiasi%s. - Aggiungi il tuo file a
shared_scriptsinfxmanifest.lua, insieme agli altri file della lingua e sopraconfig.lua. - Imposta
Config.Localesul tuo codice, quindi eseguirefreshe riavvia.
Una chiave mancante nel tuo file appare in gioco come Translation [xx][key] does not exist, indicandoti esattamente quale riga aggiungere.
Ciò che dicono gli NPC, i titoli delle missioni e i messaggi di notifica non si trovano nei file della lingua — li digiti direttamente nell’editor, in qualsiasi lingua tu preferisca.
Il bridge
Sezione intitolata “Il bridge”Due file aperti si trovano tra il motore delle missioni e il resto del tuo server.
bridge/bridge_server.lua
| Funzione | A cosa serve |
|---|---|
Bridge.Server.Initialize | Ottiene fmLib e l’oggetto ESX o QBCore quando la risorsa si avvia |
Bridge.Server.RegisterServerCallback | Registra i callback tramite ESX o QBCore |
Bridge.Server.GetPlayer, GetPlayerParams | Ottiene un giocatore tramite fmLib, oltre a identificatore, nome e lavoro |
Bridge.Server.GetMoney, AddMoney, RemoveMoney | Denaro, tramite fmLib |
Bridge.Server.GetItem, AddItem, RemoveItem | Oggetti, tramite fmLib, qualunque sia l’inventario con cui fmLib comunica |
Bridge.Server.IsPlayerAllowed | Chi può aprire e usare l’editor. Controlla l’ACE mic_questcreator.open |
bridge/bridge_client.lua
| Funzione | A cosa serve |
|---|---|
Bridge.Client.ShowNotification | Ogni notifica. Sostituisci il corpo della funzione per usare la tua risorsa di notifiche |
Bridge.Client.ShowHelpNotification | Il testo di aiuto in alto a sinistra |
Bridge.Client.GetPlayerData, IsPlayerLoaded | Dati del giocatore, usati dai controlli Has Job e Is Night/Day |
Bridge.Client.TriggerServerCallback | Callback tramite ESX o QBCore |
Bridge.Client.RevivePlayer | Usato dal gestore della morte. Attiva esx_ambulancejob:revive su ESX o hospital:client:Revive su QBCore, poi rianima nativamente il giocatore se risulta ancora morto |
Usi un altro script per l’ambulanza? Cambia l’evento in Bridge.Client.RevivePlayer con quello ascoltato dal tuo script. Un’altra risorsa per le notifiche? Modifica Bridge.Client.ShowNotification. Mantieni invariati i nomi delle funzioni — il motore le chiama per nome.
Due export lato client permettono a un’altra risorsa di prendere in prestito il minigioco e la barra di progresso del quest creator.
| Export | Argomenti | Cosa fa |
|---|---|---|
StartMinigame | difficoltà (1–5), velocità (1–5), round, callback | Apre il minigioco in stile scasso. Il callback riceve true o false |
StartProgressBar | durata in millisecondi, etichetta | Mostra la barra di progresso integrata |
Chiamali su mic_questcreator da uno script client.
Eventi della community ed esportazione
Sezione intitolata “Eventi della community ed esportazione”Community Events nell’editor elenca gli eventi condivisi da altri server; importane uno e verrà aggiunto ai tuoi eventi come qualsiasi altro. L’elenco viene scaricato da GitHub, quindi il tuo server necessita di accesso a internet in uscita per poterlo caricare.
Export Event richiede un nome, una descrizione e un autore, quindi scrive l’evento in un file JSON all’interno della cartella della risorsa, in exports/. Quella cartella non viene fornita con la risorsa — crea prima una cartella vuota exports dentro mic_questcreator, altrimenti il file verrà salvato nella radice della risorsa come export_<name>.json.