FiveM utkwiłem na ekranie ładowania: przyczyny i jak to debugować
Gracze utkwiłem na ekranie ładowania FiveM na zawsze? Sprawdź spawnmanager, multicharacter, zasób loadscreen, kompilację gry, duże streamowanie i załadowanie struktury za pomocą F8.
Gracze się łączą, pasek się wypełnia, a potem nic: ekran ładowania trwa na zawsze, lub gra zamarza na czarnym ekranie. Ten przewodnik przechodzi przez przyczyny w kolejności, która jest najszybsza do wyeliminowania, i pokazuje, jak używać F8 i konsoli serwera, aby znaleźć ten, który masz.
Najpierw: czy wszyscy są utkwiłem czy tylko jeden gracz?
- Wszyscy są utkwiłem. Przyczyna jest na serwerze: zasób, framework, lub loadscreen.
- Jeden gracz jest utkwiłem. Spójrz na tego gracza na kliencie: pamięć podręczna, wolne połączenie, mody, lub stara kompilacja gry. Zacznij od wyczyszczenia pamięci podręcznej FiveM.
Dołącz raz sam i naciśnij F8. To działa również na ekranie ładowania. Przeczytaj, co jest tam wydrukowane, i trzymaj konsolę serwera otwartą po drugiej stronie.
1. Błąd skryptu na kliencie
F8 wyświetla listę błędów klienta. Każdy wiersz taki jak ten podczas ładowania to silna wskazówka:
SCRIPT ERROR: @my_script/client/main.lua:25: attempt to index a nil value (global 'ESX')Skrypt klienta, który ulega awarii w wątku startu, może pozostawić przepływ spawn niedokończony. Napraw skrypt wymieniony w błędzie: przewodniki dotyczące czytania błędu skryptu, ESX nil i QBCore nil obejmują typowe. Następnie uruchom ponownie zasób i dołącz ponownie.
Testuj poprzez eliminację, jeśli nic się nie wydrukuje: zatrzymaj ostatnio dodany lub zmieniony zasób, dołącz ponownie i zobaczysz, czy ładowanie się zakończy.
2. Nikt nie spawnuje gracza
Po załadowaniu coś musi spawnować gracza i wyłączyć ekran ładowania. Zwykle:
spawnmanagerrobi to na zwykłym serwerze.- multicharacter i spawn selector frameworku robią to na ESX i QBCore.
Sprawdź, czy te zasoby się uruchamiają, w odpowiedniej kolejności i czy tylko jeden z nich obsługuje spawnowanie. Typowy konflikt to domyślny spawnmanager automatycznie spawnujący gracza, podczas gdy zasób multicharacter również chce. Upewnij się, że zasoby bazowe są uruchamiane przed strukturą, jak w odpowiedniej kolejności ensure:
ensure oxmysql
ensure ox_lib
ensure es_extended # or qb-core / qbx_core
ensure spawnmanager
ensure esx_multicharacter # or qb-multicharacter / qbx_core's ownJeśli zasób multicharacter się zaciąga, spójrz na konsolę serwera w poszukiwaniu błędu bazy danych z niego: ładowanie postaci odczytuje bazę danych, a awaria SQL pozostawia gracza czekającego. Zobacz błąd połączenia oxmysql i SQL table doesn't exist.
3. Niestandardowy loadscreen, który się nigdy nie zamyka
Loadscreeny serwera to zasoby zadeklarowane w ich manifeście:
fx_version 'cerulean'
game 'gta5'
loadscreen 'html/index.html'
loadscreen_manual_shutdown 'yes'
files { 'html/**/*' }Przy loadscreen_manual_shutdown 'yes', FiveM nie zamyka loadscreen'a sam. Skrypt klienta musi to zrobić, poprzez wezwanie shutdown natives, gdy gracz jest gotów:
ShutdownLoadingScreen()
ShutdownLoadingScreenNui()Jeśli zasób loadscreen ma opcję manualnego zamykania i nikt nie wezwie ich, ekran zostanie na zawsze. Albo usuń loadscreen_manual_shutdown, albo upewnij się, że twój przepływ spawn je wezwie. Testuj poprzez zatrzymanie zasobu loadscreen i ponowne dołączenie.
Loadscreen, który jest zepsuty, który ładuje zewnętrzny plik niedostępny, lub który gra bardzo duży film może również blokować lub spowalniać ekran. Utrzymuj go lekkim i lokalnym.
4. Duże streamowanie i pobieranie
Dołączanie pobiera wszystkie spł streamed files, których gracz jeszcze nie ma. Serwer z wieloma dużymi pojazdami, mapami i pakietami odzieży może zająć minuty przy pierwszym połączeniu, a ekran ładowania nie pokazuje nic, co się dzieje, jeśli pobieranie jest powolne. Znaki:
- F8 lub ekran ładowania pokazuje pobieranie w toku.
- Działa dla powracających graczy, ale nie dla nowych.
- Problem się pogarsza po dodaniu pakietu zasobów.
Naprawy: zmniejsz rozmiar i liczbę spł streamed assets (zobacz oversized assets), hosta serwer na połączeniu z wystarczającą przepustowością, i poproś graczy, aby czekali na zakończenie pierwszego pobierania.
5. Problemy z kompilacją gry lub wersją serwera
Jeśli serwer wymusza kompilację gry, gracz na starszej lub innej kompilacji może nie dołączyć czysty. Sprawdź sv_enforceGameBuild w server.cfg względem DLC, którą potrzebują twoje zasoby. Zobacz sv_enforceGameBuild. Nieaktualizowany artefakt serwera może również powodować dziwne dołączenia: aktualizuj swoje artefakty.
6. Framework nie załaduje postaci
Gracze spawnują, ale framework nigdy nie kończy załadowania gracza. W konsoli serwera szukaj:
- błędu bazy danych podczas ładowania gracza lub postaci
- błędu od
es_extended,qb-corelubqbx_corew zdarzeniu player-loaded - skryptu, który zahaczy na to zdarzenie i wyrzuci, zatrzymując inne handlery
Jeśli tam widzisz błąd, napraw go i dołącz ponownie. Uszkodzony inventorz lub uszkodzony job script mogą również się nie powieść w przepływie player-loaded, więc sprawdź najpierw ostatnio dodane.
Procedura debugowania
- Dołącz i naciśnij F8. Zanotuj każdy błąd.
- Przeczytaj konsolę serwera podczas dołączania.
- Zatrzymaj ostatnio zmieniony zasób, dołącz ponownie.
- Zatrzymaj zasób loadscreen, dołącz ponownie.
- Wciąż utkwiłem dla każdego: zacznij tylko od zasobów bazowych i dodaj resztę z powrotem w grupach.
Wskazówka: jeśli dodasz zasoby w grupach pięciu lub dziesięciu, znajdziesz zły z kilkoma restartami zamiast testowania 80 zasobów jeden po jednym.
Lista kontrolna
| Symptom | Naprawa |
|---|---|
| Błąd w F8 podczas ładowania | Napraw ten skrypt klienta, dołącz ponownie |
| Czarny ekran, nikt nie spawnuje | Sprawdź spawnmanager lub multicharacter, tylko jeden przepływ spawn |
| Loadscreen nigdy się nie zamyka | Usuń loadscreen_manual_shutdown, lub wezwij shutdown natives |
| Tylko nowych graczy utkwiłem | Duże streamowanie: zmniejsz zasoby, czekaj na pobierania |
| Jeden gracz utkwiłem | Wyczyść ich pamięć podręczną FiveM |
Utkwiłem po zmianie sv_enforceGameBuild |
Dopasuj kompilację do swojego DLC i gracza gra |
| Błąd bazy danych w konsoli serwera | Napraw oxmysql lub brakującą tabelę, następnie dołącz ponownie |
Szybkie odpowiedzi
Dlaczego moja FiveM utkwiła się na ekranie ładowania?
Klient nigdy nie kończy dołączania: gracz nie jest spawnowany, zasób loadscreen nigdy się nie wyłącza, skrypt błędów przy ładowaniu, lub duże pobieranie wciąż trwa. F8 i konsola serwera pokazują, który.
Jak otworzyć konsolę F8 podczas ładowania?
Naciśnij F8 na ekranie ładowania lub w grze. Pokazuje błędy skryptu klienta i stan połączenia. Błędy tam często wymieniają dokładny plik i linię.
Czy spawnmanager musi działać?
Coś musi spawnować gracza. Albo spawnmanager to robi, albo multicharacter lub spawn script frameworku to robi. Jeśli żaden nie robi, gracz pozostaje na ekranie ładowania.
Skrypty bez tego problemu
Mic PhoneSkładany telefon, który rozkłada się w tablet i działa też na prawdziwym telefonie gracza.Zobacz skrypt →
Arcade MachinesSiedem grywalnych gier arcade w prawdziwych automatach, z rankingami i zakładami.Zobacz skrypt →
CCTV Security CamerasKamery do rozstawienia, tablet z podglądem wielu kamer na żywo i drukowane zdjęcia jako dowody.Zobacz skrypt →