fix(client): Absturz im updateInventory-Handler beim Ablegen

attempt to index a nil value (local 'expected')

Die Pruefung stand vor dem CreateThread, der Block laeuft aber erst im naechsten
Tick - bis dahin war activeTank schon nil. Ausgeloest hat es das Ablegen selbst:
removeGear sichert die Restluft, das ist eine Inventar-Aenderung, die feuert
updateInventory, und der Thread lief in die abgeraeumte Ausruestung.

Die Pruefung wiederholt sich jetzt innerhalb des Threads. Alle uebrigen
activeTank-Zugriffe wurden gegengeprueft: entweder ohne Yield hinter ihrer
Pruefung oder bereits abgesichert.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-11 10:36:58 +02:00
co-authored by Claude Opus 5
parent 08f8f34b31
commit d59abe8d55
+7
View File
@@ -676,6 +676,13 @@ AddEventHandler('ox_inventory:updateInventory', function()
CreateThread(function()
local expected = activeTank
-- Der Thread startet erst im nächsten Tick, die Prüfung oben ist also
-- schon veraltet. Beim Ablegen passiert genau das: removeGear sichert die
-- Restluft, das ist selbst eine Inventar-Änderung, und bis hierher ist
-- activeTank längst nil.
if not expected or not currentGear.enabled then return end
local result = lib.callback.await('d4rk_divegear:server:verifyGear', false, expected.slot, expected.name)
-- Während des Callbacks kann die Ausrüstung schon abgelegt worden sein.