Osiągnięty limit encji albo puli
W grze skończyło się miejsce na pojazdy, ludzi albo obiekty. Coś je tworzy i nigdy nie sprząta.
Zrób najpierw to
Restart czyści to tymczasowo. Prawdziwym rozwiązaniem jest znalezienie skryptu, który przecieka.
Co to znaczy
GTA ma twarde pule na pojazdy, pedy i obiekty. Kiedy jedna się zapełni, każde kolejne tworzenie tego typu zwraca 0, dopóki czegoś nie usuniesz. Typowa postać w konsoli to Ran out of object slots albo ostrzeżenie o pełnej puli.
W praktyce najciaśniej jest z pojazdami, a serwer, który stoi od kilku dni, zwykle trafia na to wcześniej niż taki, który dopiero został zrestartowany — i to jest wskazówka.
Co to powoduje
Uszeregowane według tego, jak często są odpowiedzią.
- 1
Encje tworzone i nigdy nieusuwane
Zdecydowanie najczęstsza przyczyna. Skrypt pracy spawnuje pojazd przy każdym użyciu i usuwa go tylko na ścieżce, na której wszystko poszło dobrze.
- 2
Propsy spawnowane przy każdej interakcji
Props przyczepiony podczas animacji, potem animacja zostaje anulowana, a props osierocony.
- 3
Osierocone encje po wyjściu gracza
Wszystko, co utworzył, zostaje, dopóki coś tego nie usunie.
- 4
Wyciek w pętli
Wątek, który tworzy, zanim sprawdzi, czy już czegoś nie ma.
Jak poznać, który jest twój
-- server print(#GetAllVehicles(), #GetAllPeds(), #GetAllObjects())
Obserwuj przez godzinę. Liczba, która tylko rośnie, to wyciek, a typ, który rośnie, mówi ci, któremu skryptowi się przyjrzeć.
Gdzie szukać
Każde wywołanie Create* i to, czy każde ma odpowiadające DeleteEntity na każdej ścieżce, również tych błędnych.
Jak to naprawić
Usuwaj na każdej ścieżce wyjścia i sprzątaj to, co wyciekło:
local veh = spawnVehicle(...)
local ok = pcall(doTheJob, veh)
if DoesEntityExist(veh) then DeleteEntity(veh) end
-- i posprzątaj po wyjściu gracza
AddEventHandler('playerDropped', function()
local src = source
for _, veh in ipairs(GetAllVehicles()) do
if NetworkGetEntityOwner(veh) == src then DeleteEntity(veh) end
end
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 Skaner bezpieczeństwa oznacza obsługę zdarzeń, która do tego prowadzi.