-- Von Client und Server benutzt. Muss in fxmanifest unter files{} stehen, -- damit lib.require die Datei auf beiden Seiten laden kann. local config = { --- Tauchflaschen. --- --- capacity = Laufzeit in Sekunden bei normalem Verbrauch. --- pressure = Fülldruck in bar. Reine Anzeige: der angezeigte Druck ist --- pressure * (Restluft / capacity). Bei konstantem Volumen ist der --- Druck proportional zur verbliebenen Gasmenge, das passt also. --- Dass alle Flaschen denselben Fülldruck haben ist gewollt - in echt --- macht das Volumen die Laufzeit, nicht der Druck. --- maxDepth = Tiefe in Metern, bis zu der das Atemgas verträglich ist. --- Darunter setzt Tiefenrausch ein (siehe narcosis in config/client.lua). --- Der Grund ist real der Stickstoff in der Pressluft: tiefer wirkt er --- narkotisch, und ab ~56 m wird auch der Sauerstoff giftig. Wer tiefer --- will, atmet Trimix - dort ersetzt Helium einen Teil des Stickstoffs. --- gas = Nur fürs Auswahlmenü, damit man die Flaschen unterscheiden kann. --- --- Reihenfolge = Reihenfolge im Auswahlmenü. tanks = { { name = 'diving_tank_small', capacity = 300, pressure = 300, maxDepth = 45.0, gas = 'Pressluft' }, -- 5 Minuten { name = 'diving_tank_medium', capacity = 600, pressure = 300, maxDepth = 45.0, gas = 'Pressluft' }, -- 10 Minuten { name = 'diving_tank_large', capacity = 900, pressure = 300, maxDepth = 45.0, gas = 'Pressluft' }, -- 15 Minuten { name = 'diving_tank_xl', capacity = 1200, pressure = 300, maxDepth = 45.0, gas = 'Pressluft' }, -- 20 Minuten { name = 'diving_tank_trimix', capacity = 900, pressure = 300, maxDepth = 100.0, gas = 'Trimix' }, -- 15 Minuten, tieftauglich }, --- SEIT 28.09.2026 SIND FLASCHE UND MASKE KLEIDUNG (plan-divegear.md). --- Betreiber: "die Prop flasche zu einer richtigen taucherfalsche + maske --- welche wir im kleider laden kaufen koennen", und "die flaschen groessen --- soll man an der normalen taucherfalsche austauschen koennen". --- --- rigItem die Taucherflasche aus dem Kleiderladen (d4rk_garment -> item). --- Sie traegt die eingesetzte Patrone in der Metadata: --- patrone = Name aus tanks (unten), oxygen = Restsekunden. --- maskItem die Tauchmaske aus dem Kleiderladen. --- rigSlot / maskSlot wo sie getragen werden - d4rk_inventory --- shared/d4rk_slots.lua:71-96. GEMESSEN am 29.09.2026 mit --- /d4rk_kleidungsstand (Betreiber, Modell m): --- Flasche m:c:8:mp_m_christmas2017:1 -> 31 Unterhemd (Komponente 8) --- Maske m:p:1:mp_m_christmas2017:0 -> 27 Brille (PROP 1, nicht --- die Maskenkomponente 1 - angenommen war Slot 29) --- --- Die fuenf `tanks` sind jetzt PATRONEN: Items im Inventar, die man an der --- getragenen Flasche tauscht (Patrone benutzen). Die alten Props und das --- Item diving_gear gibt es nicht mehr. rigItem = 'diving_tank', maskItem = 'diving_mask', rigSlot = 31, maskSlot = 27, --- Die Kleidungsstuecke im Kleiderladen, die statt `clothing` das Item --- ausgeben (d4rk_garment.item, angelegt mit /tauchartikel). drawable ist --- der LOKALE Index in der Sammlung, texture -1 = alle Farben. --- Weiblich (f) gemessen am 29.09.2026 (Betreiber): dieselben Sammlungen und --- Indizes wie m - Flasche mp_f_christmas2017:1, Maske mp_f_christmas2017:0. kleidung = { { pedset = 'm', komponente = 'c:8', collection = 'mp_m_christmas2017', drawable = 1, item = 'diving_tank' }, { pedset = 'm', komponente = 'p:1', collection = 'mp_m_christmas2017', drawable = 0, item = 'diving_mask' }, { pedset = 'f', komponente = 'c:8', collection = 'mp_f_christmas2017', drawable = 1, item = 'diving_tank' }, { pedset = 'f', komponente = 'p:1', collection = 'mp_f_christmas2017', drawable = 0, item = 'diving_mask' }, }, --- Das Fuell-Item. NICHT ANGELEGT: Nachfuellen kommt spaeter ueber einen --- Shop oder Crafting (Betreiber, 28.09.2026). Der Weg bleibt stehen, damit --- er sich dort anhaengen laesst - ohne das Item ist er nie erreichbar. fillItem = 'diving_fill', --- Flaschen ohne Metadata als voll behandeln. Betrifft alles, was frisch aus --- einem Shop, per AddItem oder aus einem Admin-Befehl kommt - da ist noch kein --- oxygen gesetzt. Auf false muss jede neue Flasche erst mit einer Kartusche --- befüllt werden, bevor man damit tauchen kann. newTanksFull = true, --- Wie oft der Client die Restluft an den Server meldet (Sekunden). --- Bei einem Crash gehen maximal so viele Sekunden Luft verloren. syncIntervalSeconds = 15, --- Obergrenze für die serverseitige Plausibilitätsprüfung: so viele Sekunden --- Luft kann ein Spieler höchstens pro echter Sekunde verbrauchen. Muss über --- maxDecayFactor aus config/client.lua liegen, sonst wird ehrlichen Spielern --- in großer Tiefe fälschlich Luft zurückgegeben. maxDrainPerSecond = 5.0, } config.tankByName = {} config.tankNames = {} for i = 1, #config.tanks do local tank = config.tanks[i] config.tankByName[tank.name] = tank config.tankNames[i] = tank.name end return config