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:
1 parent
daefe46cb8
commit
bfe1d8ee2d
2 files changed
+78
No files matched your search
@@ -327,6 +327,8 @@ end
|
|||||||
|
|
||||||
exports('setHudVisible', setHudVisible)
|
exports('setHudVisible', setHudVisible)
|
||||||
exports('isHudVisible', function() return not hudHidden end)
|
exports('isHudVisible', function() return not hudHidden end)
|
||||||
|
-- Fuer /tauchprobe beobachten (client/probe.lua): ist das Tauchgeraet aktiv?
|
||||||
|
exports('geraetAktiv', function() return currentGear.enabled == true end)
|
||||||
|
|
||||||
--- Pflegt die geglättete Tiefe und schiebt den Zustand ins NUI.
|
--- Pflegt die geglättete Tiefe und schiebt den Zustand ins NUI.
|
||||||
--- Läuft auch über Wasser weiter, weil getDecayFactor die Tiefe braucht - nur die
|
--- Läuft auch über Wasser weiter, weil getDecayFactor die Tiefe braucht - nur die
|
||||||
@@ -672,8 +674,33 @@ lib.onCache('ped', function(ped)
|
|||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
--[[
|
||||||
|
GTA NIMMT FLASCHE UND MASKE SELBST AB - gemessen am 29.09.2026 mit
|
||||||
|
/tauchprobe beobachten (Betreiber): im Moment, in dem "schwimmt" auf nein
|
||||||
|
springt (flaches Wasser, Boden unter den Fuessen), verschwanden Komponente 8
|
||||||
|
(global 123 = GTAs Taucherflasche) und Prop 1 gleichzeitig - bei
|
||||||
|
ausgeschaltetem Tauchgeraet, also nicht durch diesen Code. Die Items lagen
|
||||||
|
weiter in ihren Slots.
|
||||||
|
|
||||||
|
CPED_CONFIG_FLAG_DisableTakeOffScubaGear = 409 (NACHGESCHLAGEN in der
|
||||||
|
SetPedConfigFlag-Doku der Nativ-Datenbank) schaltet das ab. Bei uns zieht
|
||||||
|
nur das Inventar aus. Gesetzt am Spieler-Ped, nach jedem Ped-Wechsel neu
|
||||||
|
(onCache-Parameter, nicht cache.ped), beim Stoppen wieder ab - sonst
|
||||||
|
bliebe sie ohne diese Resource stehen.
|
||||||
|
]]
|
||||||
|
local ABNEHMEN_AUS = 409
|
||||||
|
|
||||||
|
CreateThread(function()
|
||||||
|
SetPedConfigFlag(PlayerPedId(), ABNEHMEN_AUS, true)
|
||||||
|
end)
|
||||||
|
|
||||||
|
lib.onCache('ped', function(ped)
|
||||||
|
SetPedConfigFlag(ped, ABNEHMEN_AUS, true)
|
||||||
|
end)
|
||||||
|
|
||||||
AddEventHandler('onResourceStop', function(resource)
|
AddEventHandler('onResourceStop', function(resource)
|
||||||
if resource ~= GetCurrentResourceName() then return end
|
if resource ~= GetCurrentResourceName() then return end
|
||||||
|
SetPedConfigFlag(cache.ped, ABNEHMEN_AUS, false)
|
||||||
|
|
||||||
syncTank(true)
|
syncTank(true)
|
||||||
setLamp(false)
|
setLamp(false)
|
||||||
|
|||||||
@@ -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)
|
e.art, e.id, e.d, e.tex, tostring(e.sammlung ~= '' and e.sammlung or 'base'), e.lokal or -1, texturen or -1)
|
||||||
end
|
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)
|
RegisterCommand('tauchprobe', function(_, args)
|
||||||
local ped = PlayerPedId()
|
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('')
|
||||||
print(('^5=== d4rk_divegear: Tauchprobe (Modell %s) ===^7'):format(modell(ped)))
|
print(('^5=== d4rk_divegear: Tauchprobe (Modell %s) ===^7'):format(modell(ped)))
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user