ox_lib feuert die onCache-Callbacks ueber Citizen.CreateThreadNow, bevor der
neue Wert in den Cache geschrieben wird (ox_lib/init.lua:188-199). cache.ped
zeigt im Callback also noch auf den alten, bereits verschwundenen Ped - die
Props waeren an genau den Ped gegangen, dessen Verschwinden der Handler
abfangen soll.
enableScuba, disableScuba, attachProp und attachGear nehmen den Ped jetzt als
Parameter (default cache.ped), der onCache-Handler reicht den Callback-Wert
durch.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Der 15. Parameter heisst syncRot, nicht fixedRot. useSoftPinning=false ist
laut Doku korrekt fuer eine Attachment, die sich nicht loesen soll.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Die Props waren soft-pinned angehaengt (useSoftPinning = true), wodurch die
Physik-Engine die Attachment bei Ragdoll und harten Anim-Uebergaengen loesen
darf. Dazu kam, dass ein Ped-Model-Wechsel und aufraeumende Fremd-Scripts
(Emotes, Handcuffs) gar nicht abgefangen wurden.
- attachProp() Helper mit harter Attachment (useSoftPinning = false)
- Watchdog-Thread prueft jede Sekunde, ob beide Props noch am aktuellen Ped
haengen, und haengt sie sonst neu an
- Scuba-Flags werden im Watchdog neu gesetzt, weil das Spiel sie bei Respawn
und Fahrzeugausstieg zuruecksetzt
- lib.onCache('ped') haengt die Props nach einem Model-Wechsel neu an
- Ausruestung wird beim Tod abgenommen (removeGearOnDeath, default true)
- removeGear() als gemeinsamer Teardown fuer Ablegen, leere Flasche und Tod
- onResourceStop raeumt Props und Scuba-Flags auf
- maxTimeUnderwater / maxTimeUnderwaterOutOfAir statt Magic Numbers
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>