cannot resume dead coroutine
Coś próbowało kontynuować zadanie, które już się skończyło albo już się wysypało. Prawie zawsze POWYŻEJ tego jest PRAWDZIWY błąd.
Zrób najpierw to
Przewiń w górę i napraw błąd nad tą linijką; ten zwykle znika razem z nim.
Co to znaczy
Coś próbowało wznowić korutynę, która już się skończyła albo już się wywaliła. We FiveM to niemal zawsze środowisko zgłaszające skutek uboczny: korutyna umarła przez błąd w środku, a to jest DRUGI komunikat.
Co to powoduje
Uszeregowane według tego, jak często są odpowiedzią.
- 1
Wcześniejszy błąd zabił korutynę
Przewiń w górę. Nad tym jest prawdziwy błąd i to jego trzeba naprawić.
- 2
Callback zapamiętany i wywołany dwa razy
Callback oxmysql albo ox_lib wywołany po raz drugi — pierwsze wznowienie go zakończyło, drugie zastaje go martwym.
- 3
Oczekiwanie w handlerze, który już wrócił
MySQL.query.awaitwewnątrz callbacku, którego rodzic już się zakończył. - 4
Oddawanie sterowania poza wątkiem
Wait()w zasięgu pliku albo w zwykłej funkcji wołanej spoza kontekstu wątku. FiveM zgłasza wtedy "attempt to yield from outside a coroutine".
Jak poznać, który jest twój
Popatrz na to, co jest NAD tą linią w konsoli. Jeśli jest tam jakikolwiek inny błąd, napraw najpierw tamten, a ten zwykle zniknie razem z nim. Jeśli to jedyny komunikat, oddajesz sterowanie gdzieś, gdzie nie ma korutyny.
Gdzie szukać
Ślad pod tym komunikatem i błąd nad nim.
Jak to naprawić
Wszystko, co czeka, musi być wewnątrz wątku:
-- źle: Wait w zasięgu pliku
Wait(1000)
-- dobrze
CreateThread(function()
Wait(1000)
end)Callbacki odpalają się raz — zabezpiecz się przed podwójnym wywołaniem:
local done = false
someLib.request(function(result)
if done then return end
done = true
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 Script Optimizer czyta skrypt i naprawia kod stojący za tym.