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:
1 parent
930ff6381f
commit
e64a1bd3d0
9 files changed
+401
-214
No files matched your search
+34
-3
@@ -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.
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in new issue
Block a user