Restart zasobu zostawia po sobie wątki, encje albo handlery
Restart skryptu zostawił jego stare pojazdy, postacie albo menu, więc teraz wszystkiego jest po dwa.
Zrób najpierw to
Pełny restart serwera to czyści. Skrypt trzeba naprawić, żeby sprzątał po sobie.
Co to znaczy
/restart myres zatrzymuje i uruchamia zasób, ale nie cofa tego, co zasób zrobił światu. Wątki są zabijane; zespawnowane encje, fokus NUI, blipy, pedy i cokolwiek zarejestrowanego gdzie indziej — nie. Zrestartuj to kilka razy i masz po kilka kopii wszystkiego.
Objawem jest zwykle "działa, dopóki tego nie zrestartuję, a potem robi to dwa razy".
Co to powoduje
Uszeregowane według tego, jak często są odpowiedzią.
- 1
Zespawnowane encje nigdy nie są sprzątane
Pedy, pojazdy, obiekty i blipy tworzone przy starcie, tworzone znowu przy następnym starcie, przy oryginałach wciąż na miejscu.
- 2
Fokus NUI trzymany w momencie zatrzymania
Gracz zostaje bez możliwości ruchu i bez interfejsu na ekranie.
- 3
Handlery zarejestrowane w innym zasobie
Strefa targetowania albo komenda zarejestrowana w zasobie zewnętrznym zostaje zarejestrowana.
- 4
Wątki, które przeżywają zatrzymanie na kliencie
Wątek kliencki działa dalej, dopóki klient nie zauważy, że zasób się zatrzymał.
- 5
Dane zapisane do state baga albo do globalnej
Zostają; następny start je powiększa.
Jak poznać, który jest twój
Zrestartuj zasób dwa razy i policz. Dwa pedy tam, gdzie powinien być jeden, to cała diagnoza.
Gdzie szukać
Wszystko tworzone przy starcie zasobu i to, czy istnieje onResourceStop, który to cofa.
Jak to naprawić
Każdy zasób, który dotyka świata, potrzebuje sprzątania:
local spawned = {}
AddEventHandler('onResourceStop', function(res)
if res ~= GetCurrentResourceName() then return end
for _, entity in ipairs(spawned) do
if DoesEntityExist(entity) then DeleteEntity(entity) end
end
SetNUIFocus(false, false)
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 znajduje to, co kosztuje cię klatki, i przepisuje.