charinfo / metadata jest nil
Nie dało się odczytać zapisanych danych postaci — albo nie skończyła się wczytywać, albo dane tej postaci są uszkodzone.
Zrób najpierw to
Sprawdź, czy zdarza się to wszystkim, czy jednemu graczowi. Jeden gracz znaczy, że jego zapisane dane wymagają naprawy.
Co to znaczy
Obiekt gracza istnieje, ale odczytywana podtablica nie jest wypełniona. W QBCore PlayerData.charinfo trzyma imię i telefon, PlayerData.metadata całą resztę; obie to kolumny JSON, a zepsuta wraca jako nil, nie jako pusta.
Co to powoduje
Uszeregowane według tego, jak często są odpowiedzią.
- 1
Odczyt przed wybraniem postaci
Połączony to nie wczytany. Między dołączeniem a wyborem postaci istnieje gracz, który nie ma charinfo w ogóle.
- 2
Kolumna JSON jest uszkodzona
Obcięty zapis (zobacz "Data too long") zostawia niepoprawny JSON, a jego dekodowanie zwraca nil. Taki gracz psuje potem każdy skrypt, dopóki wiersz nie zostanie naprawiony.
- 3
Klucz metadanych, którego nigdy nie zainicjowano
metadata.thirstna postaci utworzonej, zanim ten klucz istniał. Tablica jest w porządku, klucz nie. - 4
Restart zasobu, kiedy gracz jest w grze
Gracz wczytał się, zanim twój zasób wystartował, więc nigdy nie zobaczył zdarzenia wczytania.
- 5
Różnice wersji frameworka
Pola wędrują między wersjami QBCore; skrypt napisany pod jedną czyta klucz, który druga trzyma gdzie indziej.
Jak poznać, który jest twój
Sprawdź wiersz:
SELECT charinfo, metadata FROM players WHERE citizenid = 'ABC12345';
Jeśli któraś jest NULL albo nie jest poprawnym JSON-em, problemem są dane tej postaci. Jeśli obie wyglądają dobrze, chodzi o moment odczytu.
Gdzie szukać
Sam odczyt i to, czy plik czeka na zdarzenie wczytania gracza.
Jak to naprawić
Daj kluczowi wartość domyślną i nigdy nie czytaj w zasięgu pliku:
local meta = PlayerData.metadata or {}
local thirst = meta.thirst or 100
RegisterNetEvent('QBCore:Client:OnPlayerLoaded', function()
PlayerData = QBCore.Functions.GetPlayerData()
end)Wciąż utknąłeś na własnym kodzie?
Ta strona mówi, co ten błąd zwykle oznacza. Wklej swoją konsolę do Server Fixera, a uszereguje wszystko, co w niej jest, i powie, co zrobić najpierw; a jeśli wolisz tego nie ruszać, ORBIE naprawi skrypt i odda ci zasób gotowy do wrzucenia.
bug_reportOtwórz Server FixerDla tego rodzaju błędu Konwerter skryptów przenosi zasób między ESX, QBCore i Qbox.