feat: Flasche und Maske als Kleidung, Patronen tauschen, HUD-Anmeldung

- Tauchgeraet bereit = Taucherflasche (rigItem, Slot 31) mit Patrone UND
  Maske (maskItem, Slot 29) angezogen; Server getWorn statt verifyGear,
  geprueft bei jeder Inventaraenderung und nach jedem Umziehen.
  Props, diving_gear und der Anzieh-Balken entfallen.
- Die fuenf Flaschen sind Patronen: benutzen = in die getragene Flasche
  einsetzen, die alte kommt mit Restluft zurueck (patroneTauschen).
- Faeden mit Laufnummer, damit ein Tausch sie nicht verdoppelt.
- exports.ox_inventory -> exports.d4rk_inventory, Meldungen ueber
  lib.notify (meldung_shared) und d4rk_bridge:Notify.
- Konsole beim HUD angemeldet (client/hud.lua), 366 x 165 bei 1080p
  gemessen; ohne HUD bleibt die CSS-Position.
- Nachfuellen (diving_fill) stillgelegt: kommt spaeter ueber Shop/Crafting.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
D4rkst3randClaude Opus 5.5 committed 2026-09-28 23:48:26 +02:00
1 parent 930ff6381f
commit e64a1bd3d0
9 files changed
+401 -214

No files matched your search

+34 -3
View File
@@ -118,10 +118,35 @@ function formatTime(seconds) {
return `${mm}:${ss}`;
}
function render(state) {
hud.classList.toggle('hidden', !state.visible);
// Lage vom HUD (d4rk_hud, BauteilAnmelden - client/hud.lua). null = keine,
// dann gilt die Position aus style.css. 28.09.2026.
let lage = null;
let letzterStand = null;
if (!state.visible) return;
function lageAnwenden() {
if (!lage) {
hud.classList.remove('gelagert');
hud.style.left = '';
hud.style.top = '';
hud.style.removeProperty('--lage-scale');
return;
}
hud.classList.add('gelagert');
hud.style.left = `${lage.links}px`;
hud.style.top = `${lage.oben}px`;
hud.style.setProperty('--lage-scale', String(lage.skalierung ?? 1));
}
function render(state) {
letzterStand = state;
// Im HUD abgeschaltet, Fotomodus, Auswahl: das HUD sagt "nicht sichtbar".
const zeigen = state.visible && (!lage || lage.sichtbar !== false);
hud.classList.toggle('hidden', !zeigen);
if (!zeigen) return;
const capacity = state.capacity > 0 ? state.capacity : 1;
const ratio = Math.min(1, Math.max(0, state.oxygen / capacity));
@@ -171,6 +196,12 @@ window.addEventListener('message', (event) => {
}
if (data.action === 'state') render(data);
if (data.action === 'lage') {
lage = data.lage || null;
lageAnwenden();
if (letzterStand) render(letzterStand);
}
});
// Damit sich das HUD im Browser ohne FiveM anschauen laesst.
+12
View File
@@ -60,6 +60,18 @@ body {
pointer-events: none;
}
/* Lage vom HUD (28.09.2026): linke obere Ecke in Bildschirmpixeln, Skalierung
fuer den bei 1080p gebauten Inhalt - rechnet d4rk_hud, hier nur anwenden. */
#hud.gelagert {
bottom: auto;
transform: scale(var(--lage-scale, 1));
transform-origin: 0 0;
}
#hud.gelagert.hidden {
transform: scale(var(--lage-scale, 1)) translateY(14px);
}
.caption {
font-size: 9px;
font-weight: 600;