fix: GTA nimmt Flasche und Maske nicht mehr selbst ab (Flag 409)

Gemessen mit /tauchprobe beobachten: beim Wechsel "schwimmt" -> nein
verschwanden Komponente 8 (global 123) und Prop 1 gleichzeitig, bei
ausgeschaltetem Tauchgeraet; die Items blieben in den Slots.
CPED_CONFIG_FLAG_DisableTakeOffScubaGear = 409 (nachgeschlagen) am
Spieler-Ped, nach jedem Ped-Wechsel neu, beim Stoppen ab.
/tauchprobe beobachten zeigt die Flagge mit an.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
D4rkst3randClaude Opus 5.5 committed 2026-09-29 00:16:48 +02:00
1 parent daefe46cb8
commit bfe1d8ee2d
2 files changed
+78

No files matched your search

+51
View File
@@ -62,9 +62,60 @@ local function zeile(ped, e)
e.art, e.id, e.d, e.tex, tostring(e.sammlung ~= '' and e.sammlung or 'base'), e.lokal or -1, texturen or -1)
end
--[[
/tauchprobe beobachten [sekunden] - 29.09.2026. Betreiber: "bei der
taucherfalsche haben wir das problem er zieht sie aus wenn er an land ist".
Schreibt JEDE Aenderung an Flasche (Komponente 8) und Maske (Prop 1) mit
Zeit, Wasserzustand und ob das Tauchgeraet aktiv ist - damit man sieht,
WANN sie verschwindet (Wasser verlassen? Tauchgeraet aus? Neuanziehen?),
statt es zu raten. Alle 10 s eine Lebenszeile, damit Stille nicht wie
"keine Aenderung" aussieht, wenn die Probe gar nicht laeuft.
]]
local function beobachten(sekunden)
local ende = GetGameTimer() + sekunden * 1000
local start = GetGameTimer()
local letzt, lebenszeichen = nil, 0
print(('^5=== Tauchprobe beobachten, %d s ===^7'):format(sekunden))
print(' t Flasche (c8) Maske (p1) Wasser Schwimmt Unten Geraet Flag409')
while GetGameTimer() < ende do
local ped = PlayerPedId()
local c8 = ('%s:%d (g%d t%d)'):format(GetPedDrawableVariationCollectionName(ped, 8) or 'base',
GetPedDrawableVariationCollectionLocalIndex(ped, 8) or -1, GetPedDrawableVariation(ped, 8), GetPedTextureVariation(ped, 8))
local p1 = ('%s:%d (g%d t%d)'):format(GetPedPropCollectionName(ped, 1) or 'base',
GetPedPropCollectionLocalIndex(ped, 1) or -1, GetPedPropIndex(ped, 1), GetPedPropTextureIndex(ped, 1))
local function jn(x) return (x == true or x == 1) and 'j' or 'n' end
local okA, aktiv = pcall(function() return exports.d4rk_divegear:geraetAktiv() end)
local zeile = ('%-29s %-29s %s %s %s %s %s'):format(c8, p1, jn(IsEntityInWater(ped)),
jn(IsPedSwimming(ped)), jn(IsPedSwimmingUnderWater(ped)), okA and jn(aktiv) or '?',
jn(GetPedConfigFlag(ped, 409, true)))
local t = (GetGameTimer() - start) / 1000
if zeile ~= letzt then
print((' %5.1f %s'):format(t, zeile))
letzt = zeile
elseif t - lebenszeichen >= 10 then
print((' %5.1f (unveraendert)'):format(t))
lebenszeichen = t
end
Wait(250)
end
print('^5=== Tauchprobe beobachten: Ende ===^7')
end
RegisterCommand('tauchprobe', function(_, args)
local ped = PlayerPedId()
if args[1] == 'beobachten' then
CreateThread(function() beobachten(tonumber(args[2]) or 120) end)
lib.notify({ title = 'Tauchprobe', description = 'Beobachte - Ausgabe in F8.', type = 'info' })
return
end
print('')
print(('^5=== d4rk_divegear: Tauchprobe (Modell %s) ===^7'):format(modell(ped)))