Statt zweier Zahlenfelder jetzt zwei Zeigerinstrumente links und rechts vom Luft-Ring - wie eine echte Tauchkonsole. Der Ring bleibt in der Mitte, weil die Restzeit die Zahl ist, auf die es ankommt. - Finimeter 0-300 bar, roter Bereich = Reserve unter reservePressure - Tiefenmesser 0-depthDialMax, roter Bereich = Tiefengrenze des Atemgases. Der faengt bei Pressluft bei 45 m an und bei Trimix erst bei 100 m - der Gefahrenbereich haengt also an der getragenen Flasche. Gibt es real nicht, hilft im Spiel aber sofort beim Einschaetzen - Skalenzahlen bewusst weggelassen: bei 96 px kollidieren sie mit allem und liest ohnehin niemand. Zeiger zeigt die Tendenz, die Zahl in der Uhr den Wert - Zeiger und Wert faerben sich rot, sobald der rote Bereich erreicht ist Beim Bauen gefunden: CSS transform-origin auf dem Zeiger wird zusaetzlich zum rotate(winkel 50 50) im Attribut angewendet, der Drehpunkt wandert dadurch doppelt und der Zeiger landet ausserhalb der Uhr. transform-origin ist raus. README-Renderings auf die Konsole umgebaut. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
164 lines
7.3 KiB
Lua
164 lines
7.3 KiB
Lua
return {
|
|
--- Schaltet /divelamp und /divelight frei, mit denen sich Sitz und
|
|
--- Leuchtrichtung der Lampe im laufenden Spiel einstellen lassen - ohne
|
|
--- Resource-Restart pro Versuch. Auf dem Live-Server ausschalten.
|
|
debug = false,
|
|
|
|
putOnSuitTimeMs = 5000,
|
|
takeOffSuitTimeMs = 5000,
|
|
refillTankTimeMs = 5000,
|
|
|
|
--- Sekunden Luft, die pro echter Sekunde verbraucht werden (vor dem Tiefenfaktor).
|
|
decayRate = 1.0,
|
|
|
|
--- Intervall des Watchdogs, der prüft ob die Ausrüstung noch am Ped hängt (ms).
|
|
gearWatchdogIntervalMs = 1000,
|
|
|
|
--- Sekunden, die der Spieler ohne Ausrüstung unter Wasser überlebt (Vanilla-Verhalten).
|
|
maxTimeUnderwater = 50.0,
|
|
|
|
--- Sekunden, sobald die Flasche leer ist. Bewusst kurz: leer tauchen soll wehtun.
|
|
maxTimeUnderwaterOutOfAir = 1.0,
|
|
|
|
--- Ausrüstung beim Tod abnehmen. Die Flasche bleibt mit ihrer Restluft im Inventar.
|
|
removeGearOnDeath = true,
|
|
|
|
--- Restsekunden, bei denen gewarnt wird. Jede Schwelle löst einmal pro Tauchgang aus.
|
|
warnAtSeconds = { 60, 30, 10 },
|
|
|
|
--- Verbrauch steigt mit der Tiefe: faktor = 1 + tiefe / depthDecayReference.
|
|
--- Standardmäßig aus, damit die angegebenen 5/10/15/20 Minuten exakt stimmen
|
|
--- und für Spieler berechenbar bleiben.
|
|
depthDecayEnabled = false,
|
|
depthDecayReference = 30.0,
|
|
maxDecayFactor = 4.0,
|
|
|
|
--- NUI-HUD mit Luft und Tiefe. Auf false bleibt die Ausrüstung voll nutzbar,
|
|
--- nur ohne Anzeige.
|
|
hudEnabled = true,
|
|
|
|
--- Update-Intervall des HUD (ms). 250 = 4 Updates pro Sekunde, reicht für eine
|
|
--- ruhige Anzeige ohne unnötigen NUI-Traffic.
|
|
hudUpdateIntervalMs = 250,
|
|
|
|
--- HUD nur unter Wasser zeigen. Auf false ist es sichtbar, sobald die
|
|
--- Ausrüstung angelegt ist - dann lässt sich der Flaschendruck am Finimeter
|
|
--- ablesen, ohne extra das Inventar zu öffnen.
|
|
hudOnlyUnderwater = false,
|
|
|
|
--- Tauch-HUD mit ausblenden, sobald das Spiel-HUD ausgeblendet ist.
|
|
--- Greift bei allem, was DisplayHud(false) setzt - Screenshot-Scripts,
|
|
--- HUD-Toggles, Cinematic-Modes -, ohne dass wir die Resource kennen müssen.
|
|
hudFollowGameHud = true,
|
|
|
|
--- Eigene Taste zum Aus-/Einblenden des Tauch-HUD. Leer = keine Vorbelegung,
|
|
--- der Spieler kann sie in den FiveM-Tastenbelegungen unter "FiveM" setzen.
|
|
--- Zusätzlich gibt es den Export setHudVisible(bool) für andere Resources.
|
|
hudToggleKey = '',
|
|
|
|
--- Ab dieser Tiefe wird die Tiefenanzeige eingefärbt (Meter).
|
|
deepWarningDepth = 25.0,
|
|
|
|
--- Skalenende des Tiefenmessers (Meter). Echte Tiefenmesser gehen meist bis
|
|
--- 60 m; hier lieber so weit, dass auch Trimix-Tauchgänge auf der Skala
|
|
--- bleiben. Tiefer schlägt der Zeiger an, die Zahl in der Mitte stimmt weiter.
|
|
depthDialMax = 100.0,
|
|
|
|
---------------------------------------------------------------------------
|
|
-- Tiefenrausch
|
|
---------------------------------------------------------------------------
|
|
-- Macht die Tiefengrenze mechanisch statt zur Absprache: unterhalb der
|
|
-- maxDepth der getragenen Flasche (config/shared.lua) wird es ungemütlich.
|
|
-- Mit Pressluft ab 45 m, mit Trimix erst ab 100 m - wer die tiefen Spots
|
|
-- sehen will, braucht also die richtige Flasche.
|
|
|
|
narcosis = {
|
|
enabled = true,
|
|
|
|
--- Wie viele Meter *vor* der Grenze schon gewarnt wird.
|
|
warnBeforeMeters = 5.0,
|
|
|
|
--- Tiefe, ab der das Spiel selbst den Spieler über den Wasserdruck tötet.
|
|
--- Dagegen hilft keine Flasche - das ist die Engine, nicht dieses Script.
|
|
--- Deshalb hier nur eine Warnung, kein eigener Effekt.
|
|
--- 160 m ist ingame gemessen: darunter ist Schluss.
|
|
engineDepthLimit = 160.0,
|
|
engineWarnBeforeMeters = 20.0,
|
|
|
|
--- Stufen, sobald die Grenze überschritten ist. `over` = Meter unterhalb
|
|
--- der maxDepth der Flasche. Es gilt jeweils die höchste erreichte Stufe,
|
|
--- die Reihenfolge muss also aufsteigend sein.
|
|
---
|
|
--- timecycle Bildschirmeffekt. Namen sind Timecycle-Modifier des
|
|
--- Spiels, keine Natives - falls einer nicht existiert,
|
|
--- passiert einfach nichts. Alternativen zum Ausprobieren:
|
|
--- 'drug_flying_base', 'drug_deadman', 'REDMIST',
|
|
--- 'spectator5'. Auf nil = kein Effekt.
|
|
--- strength 0.0 bis 1.0
|
|
--- shake Kamerawackeln, z.B. 'DRUNK_SHAKE', 'SKY_DIVING_SHAKE'.
|
|
--- Auf nil = kein Wackeln.
|
|
--- shakeIntensity Stärke des Wackelns
|
|
--- drainFactor Faktor auf den Luftverbrauch (Stress atmet mehr)
|
|
--- damagePerTick Schaden pro Sekunde. 0 = kein Schaden.
|
|
stages = {
|
|
{
|
|
over = 0.0,
|
|
timecycle = 'drug_wobbly', strength = 0.3,
|
|
shake = nil, shakeIntensity = 0.0,
|
|
drainFactor = 1.5, damagePerTick = 0
|
|
},
|
|
{
|
|
over = 10.0,
|
|
timecycle = 'drug_wobbly', strength = 0.7,
|
|
shake = 'DRUNK_SHAKE', shakeIntensity = 0.3,
|
|
drainFactor = 2.0, damagePerTick = 0
|
|
},
|
|
{
|
|
over = 20.0,
|
|
timecycle = 'drug_wobbly', strength = 1.0,
|
|
shake = 'DRUNK_SHAKE', shakeIntensity = 0.8,
|
|
-- Schaden bewusst auf 0: erstmal nur Effekte und höherer
|
|
-- Verbrauch. Auf z.B. 2 setzen, wenn es härter sein soll.
|
|
drainFactor = 3.0, damagePerTick = 0
|
|
},
|
|
},
|
|
},
|
|
|
|
--- Reservedruck in bar. Darunter wird die Druckanzeige eingefärbt - in der
|
|
--- Tauchpraxis die Schwelle, ab der man den Aufstieg einleitet.
|
|
reservePressure = 50,
|
|
|
|
---------------------------------------------------------------------------
|
|
-- Taschenlampe
|
|
---------------------------------------------------------------------------
|
|
|
|
--- Taste zum An- und Ausschalten. Der Spieler kann sie in den FiveM-
|
|
--- Tastenbelegungen unter "FiveM" umlegen.
|
|
lampKey = 'l',
|
|
|
|
--- Die Lampe ist die spieleigene Scuba-Lampe (SetEnableScubaGearLight, seit
|
|
--- v1493). Sie sitzt an der richtigen Stelle und leuchtet in Blickrichtung -
|
|
--- deshalb gibt es hier weder Offsets noch Farb- und Kegelwerte.
|
|
---
|
|
--- Sie funktioniert auch ohne Scuba-Kleidung am Ped (ingame bestätigt), das
|
|
--- Outfit wird also nicht angefasst.
|
|
|
|
--- Wie oft der Lampen-Zustand auf die Peds in der Nähe nachgezogen wird (ms).
|
|
--- Nötig, weil Peds beim Streaming, Respawn und Model-Wechsel neu erzeugt
|
|
--- werden und den Flag dabei verlieren.
|
|
lampReconcileIntervalMs = 500,
|
|
|
|
--- Optionales Prop am Kopf, rein optisch. Die Lampe leuchtet unabhängig davon.
|
|
--- Standardmäßig aus, weil die Spiel-Lampe schon an der Ausrüstung sitzt.
|
|
--- Ein Basegame-Tauchlampen-Prop gibt es nicht; die Polizei-Taschenlampe
|
|
--- ('prop_cs_police_torch', 'prop_police_torch', 'prop_scn_police_torch')
|
|
--- passt optisch nur bedingt.
|
|
lampProp = '',
|
|
|
|
--- Bone und Sitz des optionalen Props. 12844 = Kopf (wie die Maske).
|
|
--- Mit /divelamp im Spiel einstellen statt hier zu raten.
|
|
lampBone = 12844,
|
|
lampPropOffset = vec3(0.0, 0.0, 0.0),
|
|
lampPropRotation = vec3(0.0, 0.0, 0.0),
|
|
}
|