-- ============================================================ -- MercyV | mercyv_helmet – Client -- ============================================================ -- Logik: -- • Beim Besteigen eines Motorrads wird der Head-Prop (Slot 0) -- VOR dem GTA-Auto-Helm gespeichert und danach wiederhergestellt. -- • Hatte der Spieler keinen Helm → Auto-Helm wird entfernt. -- • Hatte der Spieler einen Kleidungsladen-Helm → bleibt exakt erhalten. -- • Beim Absteigen wird der Helm-Zustand NICHT verändert. -- ============================================================ local savedPropIndex = -1 local savedPropTexture = 0 local isOnBike = false -- ── Hilfsfunktionen ───────────────────────────────────────── local function IsBike(vehicle) local class = GetVehicleClass(vehicle) for _, v in ipairs(Config.BikeClasses) do if class == v then return true end end return false end local function DebugPrint(msg) if Config.Debug then print('^3[mercyv_helmet]^7 ' .. tostring(msg)) end end local function SaveHeadProp(ped) savedPropIndex = GetPedPropIndex(ped, 0) savedPropTexture = GetPedPropTextureIndex(ped, 0) DebugPrint('Head-Prop gespeichert → Index: ' .. savedPropIndex .. ' | Textur: ' .. savedPropTexture) end local function RestoreHeadProp(ped) SetPedHelmet(ped, false) if savedPropIndex == -1 then -- Kein manueller Helm vorhanden → GTA-Auto-Helm entfernen ClearPedProp(ped, 0) DebugPrint('Kein manueller Helm → Auto-Helm entfernt.') else -- Spieler hatte einen gekauften Helm → exakt wiederherstellen SetPedPropIndex(ped, 0, savedPropIndex, savedPropTexture, true) DebugPrint('Manueller Helm wiederhergestellt → Index: ' .. savedPropIndex) end end -- ── Event: Einsteigen ──────────────────────────────────────── AddEventHandler('baseevents:enteredVehicle', function(vehicle, seat) if not IsBike(vehicle) then return end local ped = PlayerPedId() SaveHeadProp(ped) -- GTA setzt den Helm mit kleiner Verzögerung intern → -- wir stellen den gespeicherten Zustand nach jedem Delay wieder her for _, delay in ipairs(Config.RemoveDelays) do SetTimeout(delay, function() RestoreHeadProp(ped) end) end end) -- ── Sicherheitsschleife ────────────────────────────────────── -- Hält das GTA-Auto-Helm-Flag dauerhaft deaktiviert. -- Berührt KEINE manuell gesetzten Props (SetPedHelmet ≠ ClearPedProp). CreateThread(function() while true do Wait(Config.LoopInterval) local ped = PlayerPedId() local vehicle = GetVehiclePedIsIn(ped, false) local onBike = vehicle ~= 0 and IsBike(vehicle) if onBike then SetPedHelmet(ped, false) isOnBike = true elseif isOnBike then -- Abgestiegen → Helm-Zustand wird bewusst nicht verändert DebugPrint('Bike verlassen – Helm-Zustand unberührt.') isOnBike = false end end end)