Salta ai contenuti

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.


FileCosa decideAperto?
config.luaFramework, lingua, come i giocatori parlano agli NPC, colore del dialogo, /cancelquest, screenshotSì
bridge/bridge_server.luaDenaro, oggetti, dati del giocatore, callback e controllo dei permessiSì
bridge/bridge_client.luaNotifiche, testo di aiuto, dati del giocatore e come un giocatore viene rianimatoSì
locales/*.luaOgni testo: editor, finestra di dialogo, notifiche, log webhookSì
install.sqlLe otto tabelle, importate una sola voltaSì
web/L’editor, la finestra di dialogo, il minigioco e la barra di progresso (HTML, CSS, JS)Leggibile
client/, server/Il motore delle missioniProtetto
client/game_data/*.luaGli elenchi dietro i selettori dell’editor: ped, auto, ossa, animazioni, particelle, suoni, effetti schermoProtetto

OpzioneCosa faPredefinito
Config.FrameworkCon 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.LocaleLa lingua dell’editor, della finestra di dialogo e delle notifiche. Vedi Lingue'en'
Config.DebugPresente nel file; questa versione non stampa nulla in più quando è attivotrue
OpzioneCosa faPredefinito
Config.InteractionType'ox_target', 'qb-target' o 'drawtext' (testo 3D e un tasto)'ox_target'
Config.InteractionDistanceQuanto vicino, in metri, deve trovarsi un giocatore per parlare con un NPC2.5
Config.InteractionKeyIl tasto utilizzato con 'drawtext' e dal nodo Interact in Area. 38 è E38
Config.ThemeColorColore principale della finestra di dialogo: blue, pink, yellow, red, green, purple, orange, cyan, white o black"purple"
OpzioneCosa faPredefinito
Config.EnableCancelQuestRegistra un comando che permette al giocatore di abbandonare la missione attivatrue
Config.CancelQuestCommandIl nome del comando, senza la barra"cancelquest"

L’annullamento cancella i progressi salvati del giocatore per quella missione e rimuove ciò che ha generato.

OpzioneCosa faPredefinito
Config.ScreenshotBasicPermette al nodo Send Webhook di allegare uno screenshot quando la relativa casella è spuntata. Richiede screenshot-basic in esecuzionetrue

ComandoChi può usarloCosa fa
/questcreatorChiunque abbia il permesso ACE mic_questcreator.openApre il Quest & Event Creator
/cancelquestOgni giocatore, mentre Config.EnableCancelQuest è attivoAbbandona 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:

  1. Copia locales/en.lua e rinomina la copia con il codice della tua lingua, ad esempio locales/pl.lua.
  2. 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.
  3. Aggiungi il tuo file a shared_scripts in fxmanifest.lua, insieme agli altri file della lingua e sopra config.lua.
  4. Imposta Config.Locale sul tuo codice, quindi esegui refresh e 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.


Due file aperti si trovano tra il motore delle missioni e il resto del tuo server.

bridge/bridge_server.lua

FunzioneA cosa serve
Bridge.Server.InitializeOttiene fmLib e l’oggetto ESX o QBCore quando la risorsa si avvia
Bridge.Server.RegisterServerCallbackRegistra i callback tramite ESX o QBCore
Bridge.Server.GetPlayer, GetPlayerParamsOttiene un giocatore tramite fmLib, oltre a identificatore, nome e lavoro
Bridge.Server.GetMoney, AddMoney, RemoveMoneyDenaro, tramite fmLib
Bridge.Server.GetItem, AddItem, RemoveItemOggetti, tramite fmLib, qualunque sia l’inventario con cui fmLib comunica
Bridge.Server.IsPlayerAllowedChi può aprire e usare l’editor. Controlla l’ACE mic_questcreator.open

bridge/bridge_client.lua

FunzioneA cosa serve
Bridge.Client.ShowNotificationOgni notifica. Sostituisci il corpo della funzione per usare la tua risorsa di notifiche
Bridge.Client.ShowHelpNotificationIl testo di aiuto in alto a sinistra
Bridge.Client.GetPlayerData, IsPlayerLoadedDati del giocatore, usati dai controlli Has Job e Is Night/Day
Bridge.Client.TriggerServerCallbackCallback tramite ESX o QBCore
Bridge.Client.RevivePlayerUsato 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.

ExportArgomentiCosa fa
StartMinigamedifficoltà (1–5), velocità (1–5), round, callbackApre il minigioco in stile scasso. Il callback riceve true o false
StartProgressBardurata in millisecondi, etichettaMostra la barra di progresso integrata

Chiamali su mic_questcreator da uno script client.


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.