Commit Graph
18 Commits
Author SHA1 Message Date
D4rkst3randClaude Opus 5 d661152bc9 feat: Flaschengroessen mit echter Laufzeit und persistenter Restluft
Lint / Lint Resource (push) Has been cancelled
Der Sauerstoff war eine lokale Client-Variable: nicht persistent, an kein Item
gebunden, weg bei Relog. Dazu ergab startingOxygenLevel=100 bei decayRate=1/s
genau 100 Sekunden Tauchzeit statt Minuten.

Sauerstoff-Logik:
- Restsekunden statt Punkte, Verbrauch ueber GetGameTimer-Delta statt gezaehlter
  Wait(1000) - ein Tick laeuft unter Last laenger als eine Sekunde, was sich
  ueber einen langen Tauchgang aufsummiert
- Float-Vergleiche (oxygenLevel % 10 == 0, == 0) raus, Warnschwellen als
  config.warnAtSeconds, jede Schwelle einmal pro Tauchgang
- Verbrauch steigt mit der Tiefe (1 + tiefe/30, gedeckelt), abschaltbar
- Anzeige als mm:ss

Flaschen:
- Vier Items mit capacity in Sekunden (300/600/900/1200) in config/shared.lua
- Restluft in metadata.oxygen, Fuellstand zusaetzlich in metadata.durability,
  damit der Balken direkt im Inventar-Slot sichtbar ist
- Kein decay auf den Items: ox_inventory loescht sonst die leere Flasche
- Auswahlmenue beim Anlegen und Auffuellen (entfaellt bei nur einer Flasche)
- diving_fill fuellt bis capacity statt auf einen Fixwert, verweigert volle
  Flaschen und verbraucht sich nur bei Erfolg
- items_for_ox_inventory.lua zum Reinkopieren

Server:
- getTanks/syncTank als Callbacks, Restluft kann nur sinken und nicht schneller
  als maxDrainPerSecond pro echter Sekunde
- SetMetadata ersetzt die Metadata-Tabelle komplett, daher wird der bestehende
  Inhalt kopiert statt nur oxygen gesetzt

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-10 23:45:11 +02:00
D4rkst3randClaude Opus 5 58f31adfa9 fix(client): onCache('ped') haengt Props an den neuen Ped
Lint / Lint Resource (push) Has been cancelled
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>
2026-08-10 23:34:24 +02:00
D4rkst3randClaude Opus 5 e0f758161d docs: Attach-Parameter gegen die Native-Doku korrigiert
Lint / Lint Resource (push) Has been cancelled
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>
2026-08-10 23:27:59 +02:00
D4rkst3randClaude Opus 5 921d9c89c8 fix(client): Ausruestung verschwindet nicht mehr bei Animationen
Lint / Lint Resource (push) Has been cancelled
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>
2026-08-10 23:24:39 +02:00
amsali22andGitHub 3b77398dac fix(client): Disable EntityCollision for the mask and tank (#18)
this will disable the Collision for the mask and tank entities so they dont act like a bullet proof
2026-05-20 06:17:54 +02:00
Justin FurnasandGitHub b5fdb3a8f9 feat: variable decay time oxygen timer (#17) 2025-07-12 15:55:47 +02:00
SolareonandGitHub 177e195c69 refactor(client): release models (#11) 2024-06-23 08:35:43 -07:00
MatthewandGitHub b672697a7f refactor: update modules and locales 2024-03-03 16:36:53 -05:00
MatthewandGitHub 60dd3a9851 fix(client): config options and interact sound (#7) 2023-12-24 15:57:00 +01:00
MatthewandGitHub b50550abd5 refactor: split config 2023-11-17 22:11:02 -08:00
FjamZooandGitHub cb1a23fb50 feat(config): config as a module 2023-11-14 23:00:31 -08:00
unknown 75d54d7df5 feat: progress bar for refilling air and config for durations of progress bars 2023-11-09 22:30:54 -08:00
unknown 5bf410321a feat: can now refill tank at any oxygen level, but cannot fill underwater 2023-11-09 22:14:40 -08:00
unknown 237923e368 fix(client): re-filling tank no longer pauses oxygen timer 2023-11-09 22:12:18 -08:00
ManasonandGitHub 8965df1dfc fix(client): can now run out of oxygen & don't need to take off suit to re-fill 2023-11-09 08:06:24 -08:00
unknown 26ed7c917d fix: drawtext and fxmanifest 2023-11-09 00:49:02 -08:00
ManasonandGitHub 5b5ba9e1af refactor: general improvement and cleanup 2023-11-08 23:23:33 -08:00
unknown 5173547b24 init commit 2023-11-08 17:52:35 -08:00