chore: aufgeraeumt nach der Abnahme

Lampen-Prop entfernt. Seit der Umstellung auf die spieleigene Scuba-Lampe war es
funktionslos: standardmaessig aus, nie verifiziert, und eine Polizei-Taschenlampe
am Kopf haette neben dem nativen Licht nur Deko gespielt. Damit fallen auch die
Debug-Befehle /divelamp und /divelampcheck weg, samt config.debug und vier
Config-Werten.

Zwoelf Upstream-Locales geloescht. Sie hatten 8 von 26 Keys - im Spiel waeren
dort rohe Key-Namen erschienen. Gepflegt werden DE und EN.

PLAN.md war ein Vorab-Plan mit Phasen und Aufwandsschaetzungen und damit
erledigt. Ersetzt durch ENTSCHEIDUNGEN.md: warum die Dinge so gebaut sind und
welche Fallstricke dahinterstecken - onCache-Timing, consume, decay,
SetMetadata, die Atemgas-Grenze, das transform-origin am Zeiger. Also das, was
beim naechsten Anfassen wirklich hilft.

README von den Abschnitten befreit, die es nicht mehr gibt. Bilder und Icons neu
erzeugt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-11 10:16:04 +02:00
co-authored by Claude Opus 5
parent a49e6d0f6a
commit 1ed6a924f8
24 changed files with 147 additions and 607 deletions
+4 -54
View File
@@ -201,64 +201,13 @@ auf z.B. `2`.
| Option | Default | Bedeutung |
|---|---|---|
| `lampKey` | `'l'` | Vorbelegung |
| `lampKey` | `'l'` | Vorbelegung der Taste |
| `lampReconcileIntervalMs` | `500` | Wie oft der Lampen-Zustand auf die Peds in der Nähe nachgezogen wird |
| `lampProp` | `''` | Optionales Prop am Kopf, rein optisch. Die Lampe leuchtet unabhängig davon |
| `lampBone` / `lampPropOffset` / `lampPropRotation` | `12844` / `vec3(0,0,0)` | Sitz des optionalen Props — mit `/divelamp` einstellen |
> **Beim Balancing beachten:** `maxDrainPerSecond` (shared) muss über
> `maxDecayFactor` (client) liegen. Sonst hält der Server den ehrlichen Verbrauch
> in großer Tiefe für Cheat und schreibt Luft zurück.
## Debug-Befehle
Mit `debug = true` in `config/client.lua`:
```
/divelampcheck Hat das aktuelle Outfit eine Scuba-Lampe?
/divelamp <x> <y> <z> <rx> <ry> <rz> Sitz des optionalen Lampen-Props
```
`/divelamp` hängt das Prop sofort neu an und schreibt die fertige Config-Zeile ins
Log — kein Resource-Restart pro Versuch. Alternativ mit einem Prop-Attach-Editor
wie [noted_propattacher](https://github.com/NotedDevelopment/noted_propattacher)
ausmessen.
> Ein Tauchlampen-Prop gibt es im Basegame nicht. Was es gibt, sind Varianten
> derselben Polizei-Taschenlampe: `prop_cs_police_torch`, `prop_police_torch`,
> `prop_scn_police_torch`. Für die Beleuchtung braucht es das Prop ohnehin nicht.
## Tiefengrenze und Tiefenrausch
Warum 4045 m real das Limit sind, liegt nicht am Druck, sondern am **Stickstoff
in der Pressluft**: tiefer wirkt er narkotisch, und ab etwa 56 m wird auch der
Sauerstoff giftig. Wer tiefer will, atmet **Trimix** — dort ersetzt Helium einen
Teil des Stickstoffs.
Genau so ist es hier umgesetzt: jede Flasche hat in `config/shared.lua` eine
`maxDepth`. Darunter setzt Tiefenrausch ein, in drei Stufen, je tiefer desto
heftiger — Bildschirmeffekt, Kamerawackeln, höherer Luftverbrauch, in der letzten
Stufe Schaden. Fünf Meter vorher kommt eine Warnung, und die Tiefenanzeige im HUD
wird rot und pulsiert, sobald die Grenze überschritten ist.
Damit ist ein 45-m-Limit keine Absprache mehr, sondern spürbar — und die tiefen
Spots bleiben erreichbar, kosten aber die richtige Flasche.
Alles daran ist in `config/client.lua` unter `narcosis` einstellbar: Schwellen,
Effekte, Stärke, Verbrauchsaufschlag, Schaden. `enabled = false` schaltet es ganz aus.
> Die `timecycle`-Namen sind Spiel-Effekte, keine Natives. Existiert einer nicht,
> passiert einfach nichts — dann einen anderen eintragen.
### Die Grenze der Engine
Unabhängig von allem hier ist bei **160 m** Schluss — das macht GTA selbst über den
Wasserdruck, dagegen hilft kein Atemgas. Ingame gemessen.
Deshalb gibt es dafür nur eine Warnung (`engineDepthLimit`, 20 m vorher). Trimix
hört mit 100 m bewusst darüber auf; dazwischen liegt die Zone, in der es zwar
ungemütlich wird, aber noch nichts tödlich ist.
## Exports
```lua
@@ -287,7 +236,7 @@ Sie funktioniert **auch ohne Scuba-Kleidung** am Ped — ingame bestätigt. Der
Hinweis in [esx_scuba](https://github.com/wobozkyng/esx_scuba), das Licht hänge am
Kleidungs-Component, trifft hier also nicht zu. Das Outfit wird nicht angefasst.
Sollte die Native bei einem Ped-Model doch nicht anschlagen, gibt es beim
Einschalten eine Meldung, und `/divelampcheck` (mit `debug = true`) sagt es direkt.
Einschalten eine Meldung statt stiller Wirkungslosigkeit.
Der Flag ist ein **lokaler** Ped-Zustand und wird nicht von selbst repliziert.
Deshalb läuft der Zustand über einen Statebag
@@ -321,7 +270,8 @@ Schachbrett, in Slot-Größe und klein, zum Gegenschauen nach Änderungen.
> passiert bei jedem `<text>`-Element, auch im minimalsten Testfall — die Zahlen
> kommen korrekt raus.
Der Umbau ist in [PLAN.md](PLAN.md) dokumentiert, inklusive der offenen Punkte.
Warum die Dinge so gebaut sind — und welche Fallstricke dahinterstecken — steht
in [ENTSCHEIDUNGEN.md](ENTSCHEIDUNGEN.md), zusammen mit den offenen Punkten.
Die Abnahme läuft über die
[Issues](https://git.d4rkst3r.de/D4rkst3r/d4rk_divegear/issues?labels=test) —
ein Issue pro Testbereich, mit `prio:`-Labels und `ungeprueft` für alles, was