diff --git a/PLAN.md b/PLAN.md index e2ebb77..34e2cc9 100644 --- a/PLAN.md +++ b/PLAN.md @@ -135,8 +135,15 @@ Tiefenanzeige und O2-Anzeige zusammen als ein NUI-Overlay — `qbx.drawText2d` ### Phase 5 — Gesyncte Taschenlampe (~2–3 h) -Licht ist in GTA nie synchronisiert — jeder Client zeichnet das Licht für jeden -Taucher in seiner Nähe selbst. +**Nachträglich komplett ersetzt.** Der ganze Abschnitt unten beschreibt den +DrawSpotLight-Eigenbau — der ist raus. GTA hat seit v1493 eine eigene Lampe an der +Tauchausrüstung (`SetEnableScubaGearLight`, `0xEE2476B9EE4A094F`), gefunden über +[wobozkyng/esx_scuba](https://github.com/wobozkyng/esx_scuba). Die sitzt richtig, +leuchtet in Blickrichtung und macht Prop, Offsets, Kegelwerte, Distanzfilter und +Draw-Thread überflüssig. Geblieben ist nur der Statebag, weil der Flag ein lokaler +Ped-Zustand ist. Einschränkung: die Lampe hängt an der Scuba-Kleidung. + +Der ursprüngliche Plan zum Vergleich: - [x] Torch-Prop mit derselben harten Attach-Methode aus Phase 1 anhängen (Kopf-Bone oder Hand, Config) @@ -231,24 +238,23 @@ Am 2026-08-10 festgelegt: ## Offen -Alles unten ist **ungetestet im Spiel** — es gibt hier keinen FiveM-Server. Geprüft -sind nur Lua-Syntax und Globals (`node ../.tools/lint.mjs`, 0 Warnungen), die -Locale-JSONs und das HUD im Browser. +Ingame getestet (2026-08-11): Anlegen/Ablegen, Flaschenauswahl, Luftverbrauch, +HUD mit Tiefe und Druck, Lampe. Zwei Bugs kamen dabei raus und sind gefixt — +`consume = 0` im Item-Snippet (der qbx-Callback feuerte nie) und leere +Metadata bei frisch gekauften Flaschen. -1. **Lampen-Prop `prop_cs_police_torch`** — Name ungeprüft. Ist er falsch, meldet - das Script eine Warnung und leuchtet ohne sichtbares Prop weiter. - Ersatz suchen: [forge.plebmasters.de/objects](https://forge.plebmasters.de/objects) -2. **`lampDirection`** — welche lokale Achse des Kopf-Bones nach vorne zeigt, hängt - am Skelett. Leuchtet der Kegel falsch herum, in `config/client.lua` die Achse - tauschen oder das Vorzeichen drehen. -3. **Auto-Anziehen nach Relog** (siehe Phase 2) und **HUD-Position in der Config** - (Phase 4) sind nicht umgesetzt. -4. **`IsHudHidden()`** — ob die Native wirklich auf `DisplayHud(false)` anspringt, - ist ungetestet. Falls nicht, greifen weiterhin die eigene Taste und der Export; - `hudFollowGameHud` lässt sich dann abschalten. -5. **Balancing:** `maxDrainPerSecond = 5.0` muss über `maxDecayFactor = 4.0` liegen, +1. **Scuba-Lampe braucht die Scuba-Kleidung** (Component 8). Auf Wunsch des Users + fasst die Resource das Outfit nicht an — wer keine trägt, bekommt eine Meldung. + Soll die Ausrüstung die Kleidung selbst setzen, muss das inklusive Sichern und + Wiederherstellen gebaut werden (wie in wobozkyng/esx_scuba). +2. **`IsHudHidden()`** — ungetestet, ob die Native auf `DisplayHud(false)` + anspringt. Falls nicht, greifen Taste und Export weiterhin. +3. **Auto-Anziehen nach Relog** und **HUD-Position in der Config** sind nicht + umgesetzt. +4. **Balancing:** `maxDrainPerSecond = 5.0` muss über `maxDecayFactor = 4.0` liegen, sonst bekommen ehrliche Spieler in großer Tiefe vom Server Luft zurückgeschrieben. - Wer den Tiefenfaktor hochdreht, muss beides nachziehen. + Wer den Tiefenfaktor hochdreht, muss beides nachziehen. Die Laufzeiten selbst + sind noch nicht am Spielgefühl geprüft. --- diff --git a/README.md b/README.md index 7c905c7..0a25f49 100644 --- a/README.md +++ b/README.md @@ -259,20 +259,21 @@ Schachbrett, in Slot-Größe und klein, zum Gegenschauen nach Änderungen. Der Umbau ist in [PLAN.md](PLAN.md) dokumentiert, inklusive der offenen Punkte. -## Bekannte Unsicherheiten +## Offene Punkte -Bisher **nicht im Spiel getestet** — geprüft sind Lua-Syntax und Globals, die -Locale-JSONs und das HUD im Browser. +Ingame getestet sind Anlegen und Ablegen, Flaschenauswahl, Luftverbrauch, HUD mit +Tiefe und Druck sowie die Lampe. Noch offen: -- **`lampProp`** — der Prop-Name ist ungeprüft. Falls falsch: Warnung im Log, das - Licht funktioniert weiter, nur ohne sichtbares Prop. Ersatz finden: - [forge.plebmasters.de/objects](https://forge.plebmasters.de/objects) -- **`lampDirection`** — welche lokale Achse des Kopf-Bones nach vorne zeigt, hängt - am Skelett. Leuchtet der Kegel falsch herum: Achse tauschen oder Vorzeichen drehen. +- **Scuba-Lampe ohne passendes Outfit** — sie hängt an der Scuba-Kleidung + (Component 8). Wer die nicht trägt, bekommt eine Meldung. Soll die Ausrüstung + das Outfit selbst setzen, muss das noch gebaut werden (inklusive Sichern und + Wiederherstellen der vorherigen Kleidung). - **`IsHudHidden()`** — ob die Native auf `DisplayHud(false)` anspringt, ist ungetestet. Falls nicht, greifen Taste und Export weiterhin. -- Nach einem Relog muss die Ausrüstung neu angelegt werden. Die Restluft geht +- **Nach einem Relog** muss die Ausrüstung neu angelegt werden. Die Restluft geht dabei nicht verloren, die liegt auf der Flasche. +- **HUD-Position** ist nur in `nui/style.css` einstellbar, nicht in der Config. +- **Balancing** — die Laufzeiten sind gesetzt, aber nicht am Spielgefühl geprüft. ## Lizenz