THE ORB
Uruchamiam studio

Zdarzenie frameworka nie istnieje

Jeden skrypt zawołał do drugiego i nic nie odpowiedziało. Często nie ma w ogóle błędu — funkcja po prostu nigdy się nie dzieje.

groupsFunkcja po cichu nic nie robicodePotrzebny programista

Zrób najpierw to

Sprawdź, czy oba skrypty działają i czy są wersjami przeznaczonymi dla siebie nawzajem.

bug_reportWklej zamiast tego całą konsolę

Co to znaczy

Kod wywołał zdarzenie, którego nikt nie nasłuchuje. FiveM nie zgłasza na to błędu: wywołanie po cichu nic nie robi, a objawem jest funkcja, która nigdy się nie uruchamia, a nie czerwona linia. Kiedy komunikat już się pojawi, to zwykle sam framework narzeka.

Co to powoduje

Uszeregowane według tego, jak często są odpowiedzią.

  1. 1

    Zdarzenie zmieniło nazwę między wersjami frameworka

    esx:getSharedObject usunięto w ESX Legacy. QBCore:Server:OnPlayerLoaded i QBCore:Client:OnPlayerLoaded to różne zdarzenia dla różnych stron.

  2. 2

    Nasłuchujący zasób nie jest uruchomiony

    Handler istnieje, ale nie jest zarejestrowany, bo jego zasób leży.

  3. 3

    RegisterNetEvent nigdy nie zostało wywołane

    Zdarzenie sieciowe potrzebuje i RegisterNetEvent, i handlera. Sam AddEventHandler nie przyjmie wywołania z sieci.

  4. 4

    Pomylenie klienta z serwerem

    TriggerEvent jest lokalne dla danej strony. TriggerServerEvent i TriggerClientEvent przekraczają granicę. Użycie lokalnego dla zdalnego handlera strzela w pustkę.

  5. 5

    Literówka

    Nazwa zdarzenia to ciąg znaków, więc nic jej nie sprawdza.

Jak poznać, który jest twój

Dodaj print wewnątrz handlera. Jeśli nigdy się nie wykona, wywołanie do niego nie dociera. Potem przeszukaj wszystkie zasoby pod kątem dokładnej nazwy zdarzenia:

grep -rn "esx:playerLoaded" resources/

Jeśli jedynym trafieniem jest wywołanie, nikt nie nasłuchuje.

Gdzie szukać

Obie strony: wywołanie i zamierzony handler.

Jak to naprawić

-- server
RegisterNetEvent('myres:buy')
AddEventHandler('myres:buy', function(item)
    local src = source
end)

-- client
TriggerServerEvent('myres:buy', item)

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 Fixer

Dla tego rodzaju błędu Konwerter skryptów przenosi zasób między ESX, QBCore i Qbox.

Błędy, które chodzą z tym w parze