Commit Graph
7 Commits
Author SHA1 Message Date
D4rkst3randClaude Opus 5 7c4004a378 docs: Testliste durch Issues ersetzt
TESTING.md war nicht filterbar, nicht zuweisbar und haette neben den Issues als
zweite Quelle gedriftet. Jetzt ein Issue pro Testbereich mit Labels (test,
prio:kritisch/mittel/niedrig, ungeprueft), plus bug und doku fuer spaeter.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-11 09:20:27 +02:00
D4rkst3randClaude Opus 5 edeb8d9d76 docs: Stand nach dem Ingame-Test nachgezogen
Die Lampen-Phase im Plan beschrieb noch den DrawSpotLight-Eigenbau, und die
offenen Punkte listeten Unsicherheiten (Prop-Name, Leuchtrichtung), die mit der
Umstellung auf die native Scuba-Lampe hinfaellig sind.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-11 08:54:12 +02:00
D4rkst3randClaude Opus 5 5a59fc513f feat(hud): Manometer in bar und ausblendbares HUD
Lint / Lint Resource (push) Has been cancelled
Druckanzeige:
- pressure * (Restluft / capacity). Bei konstantem Volumen ist der Druck
  proportional zur verbliebenen Gasmenge, die lineare Abbildung stimmt also
- Fuelldruck pro Flasche in config/shared.lua, alle bei 300 bar. Dass die grosse
  Flasche denselben Druck zeigt wie die kleine ist gewollt - in echt macht das
  Volumen die Laufzeit, nicht der Druck
- Unter config.reservePressure (50 bar) rot: in der Tauchpraxis die Schwelle,
  ab der man den Aufstieg einleitet

HUD ausblenden fuer Unterwasser-Screenshots. qbx_core hat selbst keinen
HUD-Toggle, es feuert nur hud:client:* an eine separate HUD-Resource - deshalb
drei voneinander unabhaengige Wege:
- IsHudHidden() folgen, greift bei allem was DisplayHud(false) setzt
- eigene Taste, standardmaessig unbelegt
- Export setHudVisible(bool) / isHudVisible() fuer andere Resources

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-11 00:06:58 +02:00
D4rkst3randClaude Opus 5 d9643620ff feat(light): gesyncte Tauchlampe
Lint / Lint Resource (push) Has been cancelled
Licht ist in GTA nie synchronisiert - DrawSpotLight zeichnet nur lokal fuer den
aktuellen Frame. "Gesynct" heisst deshalb: der Zustand wird als Statebag
repliziert und jeder Client zeichnet die Lampen aller Taucher in seiner Naehe
selbst. Muster uebernommen aus d4rk_phone (Statebag, adaptives Polling,
Distanzfilter).

client/light.lua ist ein reiner Renderer ohne gemeinsamen Zustand mit main.lua -
er kommt mit dem Statebag allein aus und kennt weder Ausruestung noch Flasche.

- Richtung ueber zwei bone-relative Punkte am Kopf-Bone statt ueber
  GetEntityForwardVector: beim Tauchen liegt der Ped waagerecht im Wasser, der
  Entity-Forward wuerde stur horizontal leuchten. Die Offsets von
  GetPedBoneCoords sind laut Native-Doku "relative to the bone's rotation",
  die Differenz zweier solcher Punkte enthaelt also den Pitch
- Toggle per lib.addKeybind, Standard L, vom Spieler umlegbar
- Distanzfilter und Limit auf die naechsten N Lampen, Schatten abschaltbar
- Prop-Model wird vorher mit IsModelValid geprueft: lib.requestModel wirft bei
  ungueltigen Models einen Error, der sonst die ganze Ausruestung lahmlegt
- Lampen-Status im HUD

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-10 23:56:40 +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
D4rkst3randClaude Opus 5 c6b35ebe28 chore: fork als d4rk_divegear aufsetzen
Lint / Lint Resource (push) Has been cancelled
- Umbauplan (PLAN.md) mit 5 Phasen: Gear-Persistenz, Sauerstoff-Logik,
  Flaschengroessen, NUI-HUD (Tiefe + O2), gesyncte Taschenlampe
- fxmanifest auf D4rkst3r/Gitea umgestellt
- Qbox-spezifische CI entfernt (Discord-Webhooks, GitHub-Releases,
  Issue-Projektzuordnung) - laeuft auf Gitea ins Leere bzw. gegen fremde
  Endpunkte. lint.yml bleibt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-10 23:12:59 +02:00