Schermata di caricamento personalizzata per FiveM: loadscreen, fxmanifest e shutdown
Crea una schermata di caricamento FiveM personalizzata: fxmanifest loadscreen e file, loadscreen_manual_shutdown con ShutdownLoadingScreenNui, suggerimenti per musica e dimensioni di video, solo una loadscreen.
Una schermata di caricamento è una piccola pagina web che i giocatori vedono mentre i file del server vengono scaricati. È una risorsa normale con un manifest e un file HTML. Questa guida copre i file, il manifest, chiudere la schermata da solo e mantenerla leggera.
La risorsa
Crea una cartella con l'HTML e i suoi asset:
resources/[ui]/my_loadscreen/
fxmanifest.lua
index.html
css/style.css
js/app.js
img/background.jpg
audio/music.oggIl fxmanifest.lua
fx_version 'cerulean'
game 'gta5'
loadscreen 'index.html'
files {
'index.html',
'css/style.css',
'js/app.js',
'img/background.jpg',
'audio/music.ogg',
}Due cose sono importanti qui:
loadscreen 'index.html'nomina la pagina che FiveM mostra.- Ogni file che la pagina usa, incluso l'HTML stesso, deve essere in
files. Un file che non è elencato restituisce un 404 e la schermata è vuota o rotta in quella parte. Un pattern come'img/*'è consentito per elencare un'intera cartella.
Aggiungilo a server.cfg:
ensure my_loadscreenUn index.html minimo
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<h1>Welcome to my server</h1>
<div id="bar"><div id="fill"></div></div>
<audio id="music" src="audio/music.ogg" autoplay loop></audio>
<script src="js/app.js"></script>
</body>
</html>Usa percorsi relativi, come sopra. La pagina viene eseguita nel browser del gioco, quindi puoi usare HTML, CSS e JavaScript normali. Per una barra di avanzamento, la pagina riceve messaggi mentre il gioco carica:
window.addEventListener('message', (e) => {
if (e.data.eventName === 'loadProgress') {
document.getElementById('fill').style.width = (e.data.loadFraction * 100) + '%'
}
})Solo una schermata di caricamento
FiveM mostra una singola schermata di caricamento. Se due risorse dichiarano un loadscreen, solo una viene usata, e quale può cambiare tra gli avvii. Quindi:
- Rimuovi o ferma qualsiasi altra risorsa di schermata di caricamento da
server.cfg. - Quando vuoi testare una nuova, commenta la vecchia riga invece di avviare entrambe.
Chiudere la schermata da solo
Per impostazione predefinita, FiveM chiude la schermata di caricamento quando la sessione di gioco è pronta. Uno script multicarattere o spawn spesso ha bisogno che la schermata rimanga aperta più a lungo, per nascondere il mondo fino a quando il personaggio è scelto. Per questo, il manifest disattiva la chiusura automatica:
loadscreen_manual_shutdown 'yes'Quindi uno script client deve chiuderla:
-- client.lua
CreateThread(function()
-- wait until your own condition: player spawned, character chosen...
while not NetworkIsPlayerActive(PlayerId()) do
Wait(100)
end
ShutdownLoadingScreenNui()
end)ShutdownLoadingScreenNui chiude la pagina NUI della tua schermata di caricamento. Uno script che gestisce lo spawn, come uno script multicarattere, spesso lo chiama, o i nativi dietro di esso, per te. Controlla prima quello script, quindi aggiungi la tua chiamata solo se nient'altro lo fa.
Attenzione: se imposti
loadscreen_manual_shutdown 'yes'e niente chiama lo shutdown, i giocatori rimangono sulla schermata di caricamento per sempre. Se succede, vedi giocatori bloccati sulla schermata di caricamento.
Musica e video: mantienili leggeri
Tutto in files viene scaricato da ogni giocatore. Una schermata di caricamento pesante rende l'attesa più lunga, il che è l'opposto dell'obiettivo.
- Musica: usa
.oggo.mp3, pochi minuti al massimo, e un bitrate moderato. Una traccia di 3 MB va bene, una traccia di 60 MB no. Aggiungi un pulsante di disattivazione audio, e imposta il volume basso nel codice, poiché un avvio forte infastidisce i giocatori. - Video: breve e in loop, in
.webmo.mp4, risoluzione piccola e bitrate basso. Ancora meglio, usa una buona immagine di sfondo, che è molto più piccola. - Immagini: comprimile. Uno sfondo di 200 a 400 KB sembra lo stesso di uno di 8 MB sulla maggior parte degli schermi.
- Font e librerie: mettile nella risorsa. Caricarle da Internet al join rende la pagina più lenta, e fallisce se l'host è giù.
Poiché i giocatori scaricano questi file per ogni nuova versione, non cambiarli spesso. Quando un giocatore vede ancora la vecchia pagina dopo un aggiornamento, chiedgli di cancellare la cache di FiveM.
Opzionale: un cursore
Se vuoi che il giocatore clicchi sulla schermata di caricamento, per regole o un menu, aggiungi il seguente al manifest:
loadscreen_cursor 'yes'Problemi comuni
- Schermata vuota, nessuno stile. Un file è mancante da
files, o un percorso nell'HTML è sbagliato. - La schermata predefinita appare. La risorsa non è avviata, o la riga
loadscreenè mancante. - Non si chiude mai. Hai impostato
loadscreen_manual_shutdown 'yes'e nessuno script chiamaShutdownLoadingScreenNui(). - La musica non si riproduce. Controlla il percorso del file e il formato. Testa la pagina in un browser normale prima.
Checklist
| Sintomo | Soluzione |
|---|---|
| Schermata di caricamento predefinita | ensure la risorsa e aggiungi loadscreen 'index.html' |
| Vuota o nessuno stile | Elenca ogni file in files e usa percorsi relativi |
| Due schermate nella config | Mantieni una sola risorsa loadscreen |
| Rimane per sempre | Chiama ShutdownLoadingScreenNui() da uno script client |
| Attesa lunga | Riduci le dimensioni di musica, video e immagini |
| Vecchia pagina dopo un aggiornamento | Cancella la cache del client |
Risposte rapide
Posso eseguire due risorse di schermata di caricamento?
No. FiveM usa una schermata di caricamento, quindi mantieni una sola risorsa loadscreen e rimuovi le altre da server.cfg. Se due vengono avviate, ottieni una di loro e non necessariamente quella che ti aspetti.
Come chiudo la schermata di caricamento da solo?
Aggiungi loadscreen_manual_shutdown 'yes' al manifest e chiama ShutdownLoadingScreenNui() da uno script client quando sei pronto. Senza quella chiamata, la schermata di caricamento rimane.
Perché la mia schermata di caricamento è lenta?
File di immagini, video e musica grandi. Mantienili piccoli e compressi, poiché i file vengono scaricati da ogni giocatore ad ogni primo ingresso, e dopo ogni cambiamento.
Script senza questo problema
Tebex TemplateUn tema premium senza codice per il tuo negozio Tebex, modificabile interamente dal pannello Tebex.Vedi script →
Mic PhoneUn telefono pieghevole che si apre in un tablet e arriva sul telefono vero del giocatore.Vedi script →
Quest CreatorUn editor visuale di missioni e dialoghi con gli NPC, costruito nodo per nodo in gioco.Vedi script →