# d4rk_divegear Tauchausrüstung für QBox. Fork von [qbx_divegear](https://github.com/Qbox-project/qbx_divegear) mit Flaschengrößen, gesyncter Lampe, Tiefenanzeige und Ausrüstung, die bei Animationen nicht verschwindet. ## Features - **Vier Flaschengrößen** — 5, 10, 15 und 20 Minuten. Die Restluft liegt in der Item-Metadata und überlebt Ablegen, Relog, Resource-Restart und Tod. Der Füllstand ist als Balken direkt im Inventar-Slot sichtbar. - **Gesyncte Tauchlampe** — an der Ausrüstung, An/Aus per Taste (Standard `L`). Andere Spieler sehen den Lichtkegel. - **NUI-HUD** — Restluft als Ring mit `mm:ss`, Tauchtiefe in Metern und Manometer in bar, mit Warnstufen. Nur sichtbar mit angelegter Ausrüstung unter Wasser, und ausblendbar für Unterwasser-Screenshots. - **Tiefenabhängiger Verbrauch** — tiefer tauchen kostet mehr Luft. Abschaltbar. - **Ausrüstung bleibt** — bei Emotes, Ragdoll, Kleiderwechsel und aufräumenden Fremd-Scripts. - **Serverseitige Prüfung** — die Restluft kann nur sinken, und nicht schneller als physikalisch möglich. ## Abhängigkeiten `qbx_core` · `ox_lib` · `ox_inventory` ## Installation 1. Resource nach `resources/` und in der `server.cfg` starten. 2. Die Einträge aus [`items_for_ox_inventory.lua`](items_for_ox_inventory.lua) in `ox_inventory/data/items.lua` kopieren. 3. Item-Icons nach `cdn.d4rkst3r.de/items/` legen (`diving_gear.png`, `diving_fill.png`, `diving_tank_small.png` … `diving_tank_xl.png`). ## Bedienung | Aktion | Wie | |---|---| | Ausrüstung an-/ausziehen | `diving_gear` benutzen | | Flasche wählen | Menü beim Anlegen (entfällt bei nur einer Flasche) | | Flasche auffüllen | `diving_fill` benutzen, nicht unter Wasser | | Lampe an/aus | `L` (in den FiveM-Tastenbelegungen umlegbar) | | HUD ausblenden | Eigene Taste, standardmäßig unbelegt — in den FiveM-Tastenbelegungen unter "FiveM" setzen | ### HUD ausblenden für Screenshots Drei Wege, damit es unabhängig von der eingesetzten HUD-Resource funktioniert: 1. **Automatisch** — das Tauch-HUD verschwindet mit dem Spiel-HUD. Greift bei allem, was `DisplayHud(false)` setzt (Screenshot-Scripts, HUD-Toggles, Cinematic-Modes). Abschaltbar über `hudFollowGameHud`. 2. **Eigene Taste** — `hudToggleKey` in der Config, oder vom Spieler selbst belegt. 3. **Export** — für andere Resources: ```lua exports.d4rk_divegear:setHudVisible(false) local shown = exports.d4rk_divegear:isHudVisible() ``` ## Konfiguration | Datei | Inhalt | |---|---| | [`config/client.lua`](config/client.lua) | Timings, Verbrauch, Tiefe, HUD, Lampe | | [`config/shared.lua`](config/shared.lua) | Flaschen und ihre Laufzeit, Sync-Intervall, Anti-Cheat-Grenze | Laufzeiten ändert man über `capacity` (Sekunden) in `config/shared.lua`. Wer den Tiefenfaktor (`maxDecayFactor`) hochdreht, muss `maxDrainPerSecond` mitziehen — sonst schreibt der Server ehrlichen Spielern in großer Tiefe Luft zurück. ## Entwicklung ```bash node ../.tools/lint.mjs # Lua-Lint (CfxLua-tauglich) node ../.tools/nui-preview.mjs nui # HUD im Browser anschauen ``` Der Umbau ist in [PLAN.md](PLAN.md) dokumentiert, inklusive der offenen Punkte. ## Lizenz GPL-3.0, wie das Original. Upstream-Historie ist erhalten und liegt auf dem Remote `upstream`.