SendNUIMessage dociera puste albo nie dociera wcale
Skrypt próbował wysłać informacje do własnego menu i nie dało się ich wysłać, więc menu nic nie pokazuje.
Zrób najpierw to
Zgłoś to sprzedawcy razem z tą linijką.
Co to znaczy
SendNUIMessage serializuje tablicę do JSON-a i wysyła ją na stronę. Wartości, których JSON nie wyraża, są odrzucane albo wywracają całe kodowanie, a nieudane kodowanie nie wysyła nic — zwykle bez błędu.
Co to powoduje
Uszeregowane według tego, jak często są odpowiedzią.
- 1
Funkcja w tablicy
Callbacków nie da się zserializować. Kodowanie pada, a wiadomość znika.
- 2
Encja albo wektor
GetEntityCoordszwraca vector3, który nie jest zwykłą tablicą. Wysyłaj zamiast tego{ x = c.x, y = c.y, z = c.z }. - 3
Tablica cykliczna
Tablica, która odwołuje się do samej siebie, bezpośrednio albo przez łańcuch.
- 4
Pomieszane klucze tablicowe i mapowe
{ 1, 2, foo = 'bar' }koduje się do czegoś, czego strona nie odczyta ani jako tablicy, ani jako obiektu. - 5
Strona nie ma listenera wiadomości
Wiadomość dociera i nikt jej nie nasłuchuje — inny problem o tym samym objawie.
Jak poznać, który jest twój
Zakoduj to najpierw sam:
print(json.encode(payload))
Jeśli to rzuci błąd albo wypisze coś nieoczekiwanego, problemem są dane. Jeśli wypisze czysty JSON, strona nie nasłuchuje.
Gdzie szukać
Tablica przekazana do SendNUIMessage i listener zdarzenia message na stronie.
Jak to naprawić
-- wysyłaj wyłącznie proste dane
SendNUIMessage({
action = 'open',
coords = { x = c.x, y = c.y, z = c.z },
items = items, -- czysta tablica
})
// strona
window.addEventListener('message', (event) => {
const data = event.data
if (data.action === 'open') { /* ... */ }
})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 Loading Screen Creator buduje NUI działające bez ręcznie pisanego HTML-a.