From 7de5955637e7ec67b9f394efdca371400e51190f Mon Sep 17 00:00:00 2001 From: Nordi98 Date: Mon, 30 Jun 2025 00:25:08 +0200 Subject: [PATCH] edit --- .../[tools]/thommie-nightvision/cl_main.lua | 62 +++++++++++++++---- .../[tools]/thommie-nightvision/config.lua | 16 ++++- 2 files changed, 65 insertions(+), 13 deletions(-) diff --git a/resources/[tools]/thommie-nightvision/cl_main.lua b/resources/[tools]/thommie-nightvision/cl_main.lua index fc4897ed7..ea9a5f9b6 100644 --- a/resources/[tools]/thommie-nightvision/cl_main.lua +++ b/resources/[tools]/thommie-nightvision/cl_main.lua @@ -2,10 +2,21 @@ local QBCore = exports[Config.CoreName]:GetCoreObject() local mode = 0 local canToggle = false +-- Funktion zum Prüfen des Charaktergeschlechts +local function IsPedMale(ped) + return GetEntityModel(ped) == `mp_m_freemode_01` +end + RegisterCommand('toggleNV', function() + local ped = PlayerPedId() + if QBCore.Functions.HasItem(Config.NVItem) then + local currentGlasses = GetPedPropIndex(ped, 1) + local gender = IsPedMale(ped) and "male" or "female" + + -- Prüfen, ob der Spieler eine der NV-Brillen trägt if Config.CheckHelmet then - if GetPedPropIndex(PlayerPedId(), 0) == 116 then + if currentGlasses == Config.Glasses[gender].up or currentGlasses == Config.Glasses[gender].down then canToggle = true else canToggle = false @@ -15,31 +26,60 @@ RegisterCommand('toggleNV', function() end if canToggle then - if mode == 0 then - QBCore.Functions.Notify('Nightvision on!') + -- Wenn die Brille hochgeklappt ist und Nachtsicht aktiviert wird, klappe sie runter + if mode == 0 and currentGlasses == Config.Glasses[gender].up then + SetPedPropIndex(ped, 1, Config.Glasses[gender].down, 0, true) + QBCore.Functions.Notify('Nachtsicht aktiviert!') SetNightvision(true) mode = 1 + -- Wenn bereits im Nachtsichtmodus, wechsle zu Wärmesicht elseif mode == 1 then - QBCore.Functions.Notify('Thermal vision on!') + QBCore.Functions.Notify('Wärmesicht aktiviert!') SetSeethrough(true) mode = 2 + -- Wenn im Wärmesichtmodus, deaktiviere alles und klappe Brille hoch elseif mode == 2 then - QBCore.Functions.Notify('Nightvision off!') + SetPedPropIndex(ped, 1, Config.Glasses[gender].up, 0, true) + QBCore.Functions.Notify('Nachtsicht deaktiviert!') SetNightvision(false) SetSeethrough(false) mode = 0 end else - QBCore.Functions.Notify('You are not wearing a nightvision helmet!', 'error') + QBCore.Functions.Notify('Du trägst keine Nachtsichtbrille!', 'error') end end end) + RegisterKeyMapping('toggleNV', 'Toggle nightvision', 'keyboard', Config.NVKey) -RegisterNetEvent('nightvision:toggleHelmet', function() - if GetPedPropIndex(PlayerPedId(), 0) == 116 then - SetPedPropIndex(PlayerPedId(), 0, 8, 0, true) - else - SetPedPropIndex(PlayerPedId(), 0, 116, 0, true) +-- Umbenannt für bessere Klarheit +RegisterNetEvent('nightvision:toggleGlasses', function() + local ped = PlayerPedId() + local currentGlasses = GetPedPropIndex(ped, 1) + local gender = IsPedMale(ped) and "male" or "female" + + -- Wenn keine NV-Brille getragen wird, setze hochgeklappte Version auf + if currentGlasses ~= Config.Glasses[gender].up and currentGlasses ~= Config.Glasses[gender].down then + SetPedPropIndex(ped, 1, Config.Glasses[gender].up, 0, true) + QBCore.Functions.Notify('Nachtsichtbrille aufgesetzt!') + -- Wenn hochgeklappte NV-Brille getragen wird, klappe sie runter und aktiviere Nachtsicht + elseif currentGlasses == Config.Glasses[gender].up then + SetPedPropIndex(ped, 1, Config.Glasses[gender].down, 0, true) + QBCore.Functions.Notify('Nachtsicht aktiviert!') + SetNightvision(true) + mode = 1 + -- Wenn runtergeklappte NV-Brille getragen wird, klappe sie hoch und deaktiviere Nachtsicht + elseif currentGlasses == Config.Glasses[gender].down then + SetPedPropIndex(ped, 1, Config.Glasses[gender].up, 0, true) + QBCore.Functions.Notify('Nachtsicht deaktiviert!') + SetNightvision(false) + SetSeethrough(false) + mode = 0 end end) + +-- Behalte den alten Event-Namen für Kompatibilität +RegisterNetEvent('nightvision:toggleHelmet', function() + TriggerEvent('nightvision:toggleGlasses') +end) diff --git a/resources/[tools]/thommie-nightvision/config.lua b/resources/[tools]/thommie-nightvision/config.lua index 9e2342ed6..c7d8d98fd 100644 --- a/resources/[tools]/thommie-nightvision/config.lua +++ b/resources/[tools]/thommie-nightvision/config.lua @@ -2,5 +2,17 @@ Config = Config or {} Config.CoreName = 'qb-core' -- Change this if you changed the core name. Config.NVItem = 'nightvision' -- Item needed to use nightvision -Config.CheckHelmet = true -- Check if player has nightvision helmet (clothing) -Config.NVKey = 'N' -- The key you want to be pressed to toggle night/thermal vision (this is the default key, players can change this key in keybinds) \ No newline at end of file +Config.CheckHelmet = true -- Umbenannt zu CheckGlasses wäre besser, aber für Kompatibilität belassen +Config.NVKey = 'N' -- The key you want to be pressed to toggle night/thermal vision + +-- Neue Konfigurationsoptionen für die Brillen +Config.Glasses = { + male = { + up = 116, -- ID für hochgeklappte NV-Brille (männlich) - Ändern Sie diese zu Ihrer tatsächlichen ID + down = 117 -- ID für runtergeklappte NV-Brille (männlich) - Ändern Sie diese zu Ihrer tatsächlichen ID + }, + female = { + up = 70, -- ID für hochgeklappte NV-Brille (weiblich) - Ändern Sie diese zu Ihrer tatsächlichen ID + down = 73 -- ID für runtergeklappte NV-Brille (weiblich) - Ändern Sie diese zu Ihrer tatsächlichen ID + } +}