From d59abe8d55ec44e0d665b1b7eb7f1e48b7460399 Mon Sep 17 00:00:00 2001 From: D4rkst3r Date: Tue, 11 Aug 2026 10:36:58 +0200 Subject: [PATCH] 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 --- client/main.lua | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/client/main.lua b/client/main.lua index 471599e..0cfbb79 100644 --- a/client/main.lua +++ b/client/main.lua @@ -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.