1
0
Fork 0
forked from Simnation/Main

Update cl_main.lua

This commit is contained in:
Nordi98 2025-06-30 00:51:12 +02:00
parent ace67368d1
commit a4033a5c26

View file

@ -7,6 +7,19 @@ local function IsPedMale(ped)
return GetEntityModel(ped) == `mp_m_freemode_01` return GetEntityModel(ped) == `mp_m_freemode_01`
end end
-- Funktion zum Vergleichen der aktuellen Brille mit einer Konfigurationsbrille
local function IsWearingGlasses(ped, glassesConfig)
local currentDrawable = GetPedPropIndex(ped, 1)
local currentTexture = GetPedPropTextureIndex(ped, 1)
return currentDrawable == glassesConfig.drawable and currentTexture == glassesConfig.texture
end
-- Funktion zum Setzen einer Brille aus der Konfiguration
local function SetGlasses(ped, glassesConfig)
SetPedPropIndex(ped, 1, glassesConfig.drawable, glassesConfig.texture, true)
end
-- Funktion zum Deaktivieren aller Sichtmodi -- Funktion zum Deaktivieren aller Sichtmodi
local function DisableAllVisionModes() local function DisableAllVisionModes()
SetNightvision(false) SetNightvision(false)
@ -20,14 +33,13 @@ RegisterCommand('toggleNV', function()
local ped = PlayerPedId() local ped = PlayerPedId()
if QBCore.Functions.HasItem(Config.NVItem) then if QBCore.Functions.HasItem(Config.NVItem) then
local currentGlasses = GetPedPropIndex(ped, 1)
local gender = IsPedMale(ped) and "male" or "female" local gender = IsPedMale(ped) and "male" or "female"
local glasses = Config.Glasses[gender]
-- Prüfen, ob der Spieler eine der Brillen trägt -- Prüfen, ob der Spieler eine der Brillen trägt
local canToggle = not Config.CheckHelmet local canToggle = not Config.CheckHelmet
if Config.CheckHelmet then if Config.CheckHelmet then
if currentGlasses == Config.Glasses[gender].up or if IsWearingGlasses(ped, glasses.up) or IsWearingGlasses(ped, glasses.nvDown) then
currentGlasses == Config.Glasses[gender].nvDown then
canToggle = true canToggle = true
end end
end end
@ -37,25 +49,25 @@ RegisterCommand('toggleNV', function()
if thermalMode > 0 then if thermalMode > 0 then
SetSeethrough(false) SetSeethrough(false)
thermalMode = 0 thermalMode = 0
-- Wenn die Brille runtergeklappt ist, klappe sie hoch -- Wenn die Wärmebildbrille getragen wird, klappe sie hoch
if currentGlasses == Config.Glasses[gender].thermalDown then if IsWearingGlasses(ped, glasses.thermalDown) then
SetPedPropIndex(ped, 1, Config.Glasses[gender].up, 0, true) SetGlasses(ped, glasses.up)
end end
end end
-- Nachtsicht-Modus umschalten -- Nachtsicht-Modus umschalten
if nvMode == 0 then if nvMode == 0 then
-- Wenn die Brille hochgeklappt ist, klappe sie runter -- Wenn die Brille hochgeklappt ist, klappe sie runter
if currentGlasses == Config.Glasses[gender].up then if IsWearingGlasses(ped, glasses.up) then
SetPedPropIndex(ped, 1, Config.Glasses[gender].nvDown, 0, true) SetGlasses(ped, glasses.nvDown)
end end
QBCore.Functions.Notify('Nachtsicht aktiviert!') QBCore.Functions.Notify('Nachtsicht aktiviert!')
SetNightvision(true) SetNightvision(true)
nvMode = 1 nvMode = 1
else else
-- Wenn die Brille runtergeklappt ist, klappe sie hoch -- Wenn die Brille runtergeklappt ist, klappe sie hoch
if currentGlasses == Config.Glasses[gender].nvDown then if IsWearingGlasses(ped, glasses.nvDown) then
SetPedPropIndex(ped, 1, Config.Glasses[gender].up, 0, true) SetGlasses(ped, glasses.up)
end end
QBCore.Functions.Notify('Nachtsicht deaktiviert!') QBCore.Functions.Notify('Nachtsicht deaktiviert!')
SetNightvision(false) SetNightvision(false)
@ -74,14 +86,13 @@ RegisterCommand('toggleThermal', function()
local ped = PlayerPedId() local ped = PlayerPedId()
if QBCore.Functions.HasItem(Config.ThermalItem) then if QBCore.Functions.HasItem(Config.ThermalItem) then
local currentGlasses = GetPedPropIndex(ped, 1)
local gender = IsPedMale(ped) and "male" or "female" local gender = IsPedMale(ped) and "male" or "female"
local glasses = Config.Glasses[gender]
-- Prüfen, ob der Spieler eine der Brillen trägt -- Prüfen, ob der Spieler eine der Brillen trägt
local canToggle = not Config.CheckHelmet local canToggle = not Config.CheckHelmet
if Config.CheckHelmet then if Config.CheckHelmet then
if currentGlasses == Config.Glasses[gender].up or if IsWearingGlasses(ped, glasses.up) or IsWearingGlasses(ped, glasses.thermalDown) then
currentGlasses == Config.Glasses[gender].thermalDown then
canToggle = true canToggle = true
end end
end end
@ -91,25 +102,25 @@ RegisterCommand('toggleThermal', function()
if nvMode > 0 then if nvMode > 0 then
SetNightvision(false) SetNightvision(false)
nvMode = 0 nvMode = 0
-- Wenn die Brille runtergeklappt ist, klappe sie hoch -- Wenn die Nachtsichtbrille getragen wird, klappe sie hoch
if currentGlasses == Config.Glasses[gender].nvDown then if IsWearingGlasses(ped, glasses.nvDown) then
SetPedPropIndex(ped, 1, Config.Glasses[gender].up, 0, true) SetGlasses(ped, glasses.up)
end end
end end
-- Wärmebild-Modus umschalten -- Wärmebild-Modus umschalten
if thermalMode == 0 then if thermalMode == 0 then
-- Wenn die Brille hochgeklappt ist, klappe sie runter -- Wenn die Brille hochgeklappt ist, klappe sie runter
if currentGlasses == Config.Glasses[gender].up then if IsWearingGlasses(ped, glasses.up) then
SetPedPropIndex(ped, 1, Config.Glasses[gender].thermalDown, 0, true) SetGlasses(ped, glasses.thermalDown)
end end
QBCore.Functions.Notify('Wärmebild aktiviert!') QBCore.Functions.Notify('Wärmebild aktiviert!')
SetSeethrough(true) SetSeethrough(true)
thermalMode = 1 thermalMode = 1
else else
-- Wenn die Brille runtergeklappt ist, klappe sie hoch -- Wenn die Brille runtergeklappt ist, klappe sie hoch
if currentGlasses == Config.Glasses[gender].thermalDown then if IsWearingGlasses(ped, glasses.thermalDown) then
SetPedPropIndex(ped, 1, Config.Glasses[gender].up, 0, true) SetGlasses(ped, glasses.up)
end end
QBCore.Functions.Notify('Wärmebild deaktiviert!') QBCore.Functions.Notify('Wärmebild deaktiviert!')
SetSeethrough(false) SetSeethrough(false)
@ -130,58 +141,58 @@ RegisterKeyMapping('toggleThermal', 'Wärmebild umschalten', 'keyboard', Config.
-- Event zum Umschalten der Brille -- Event zum Umschalten der Brille
RegisterNetEvent('nightvision:toggleGlasses', function(mode) RegisterNetEvent('nightvision:toggleGlasses', function(mode)
local ped = PlayerPedId() local ped = PlayerPedId()
local currentGlasses = GetPedPropIndex(ped, 1)
local gender = IsPedMale(ped) and "male" or "female" local gender = IsPedMale(ped) and "male" or "female"
local glasses = Config.Glasses[gender]
-- Alle Sichtmodi deaktivieren -- Alle Sichtmodi deaktivieren
DisableAllVisionModes() DisableAllVisionModes()
if mode == 'nightvision' then if mode == 'nightvision' then
-- Wenn keine Brille getragen wird, setze hochgeklappte Version auf -- Wenn keine der konfigurierten Brillen getragen wird, setze hochgeklappte Version auf
if currentGlasses ~= Config.Glasses[gender].up and if not (IsWearingGlasses(ped, glasses.up) or
currentGlasses ~= Config.Glasses[gender].nvDown and IsWearingGlasses(ped, glasses.nvDown) or
currentGlasses ~= Config.Glasses[gender].thermalDown then IsWearingGlasses(ped, glasses.thermalDown)) then
SetPedPropIndex(ped, 1, Config.Glasses[gender].up, 0, true) SetGlasses(ped, glasses.up)
QBCore.Functions.Notify('Nachtsichtbrille aufgesetzt!') QBCore.Functions.Notify('Nachtsichtbrille aufgesetzt!')
-- Wenn hochgeklappte Brille getragen wird, klappe sie runter und aktiviere Nachtsicht -- Wenn hochgeklappte Brille getragen wird, klappe sie runter und aktiviere Nachtsicht
elseif currentGlasses == Config.Glasses[gender].up then elseif IsWearingGlasses(ped, glasses.up) then
SetPedPropIndex(ped, 1, Config.Glasses[gender].nvDown, 0, true) SetGlasses(ped, glasses.nvDown)
QBCore.Functions.Notify('Nachtsicht aktiviert!') QBCore.Functions.Notify('Nachtsicht aktiviert!')
SetNightvision(true) SetNightvision(true)
nvMode = 1 nvMode = 1
-- Wenn runtergeklappte Brille getragen wird, klappe sie hoch und deaktiviere Nachtsicht -- Wenn runtergeklappte Nachtsichtbrille getragen wird, klappe sie hoch und deaktiviere Nachtsicht
elseif currentGlasses == Config.Glasses[gender].nvDown then elseif IsWearingGlasses(ped, glasses.nvDown) then
SetPedPropIndex(ped, 1, Config.Glasses[gender].up, 0, true) SetGlasses(ped, glasses.up)
QBCore.Functions.Notify('Nachtsicht deaktiviert!') QBCore.Functions.Notify('Nachtsicht deaktiviert!')
nvMode = 0 nvMode = 0
-- Wenn Wärmebildbrille getragen wird, wechsle zu Nachtsichtbrille -- Wenn Wärmebildbrille getragen wird, wechsle zu Nachtsichtbrille
elseif currentGlasses == Config.Glasses[gender].thermalDown then elseif IsWearingGlasses(ped, glasses.thermalDown) then
SetPedPropIndex(ped, 1, Config.Glasses[gender].nvDown, 0, true) SetGlasses(ped, glasses.nvDown)
QBCore.Functions.Notify('Nachtsicht aktiviert!') QBCore.Functions.Notify('Nachtsicht aktiviert!')
SetNightvision(true) SetNightvision(true)
nvMode = 1 nvMode = 1
end end
elseif mode == 'thermal' then elseif mode == 'thermal' then
-- Wenn keine Brille getragen wird, setze hochgeklappte Version auf -- Wenn keine der konfigurierten Brillen getragen wird, setze hochgeklappte Version auf
if currentGlasses ~= Config.Glasses[gender].up and if not (IsWearingGlasses(ped, glasses.up) or
currentGlasses ~= Config.Glasses[gender].nvDown and IsWearingGlasses(ped, glasses.nvDown) or
currentGlasses ~= Config.Glasses[gender].thermalDown then IsWearingGlasses(ped, glasses.thermalDown)) then
SetPedPropIndex(ped, 1, Config.Glasses[gender].up, 0, true) SetGlasses(ped, glasses.up)
QBCore.Functions.Notify('Wärmebildbrille aufgesetzt!') QBCore.Functions.Notify('Wärmebildbrille aufgesetzt!')
-- Wenn hochgeklappte Brille getragen wird, klappe sie runter und aktiviere Wärmebild -- Wenn hochgeklappte Brille getragen wird, klappe sie runter und aktiviere Wärmebild
elseif currentGlasses == Config.Glasses[gender].up then elseif IsWearingGlasses(ped, glasses.up) then
SetPedPropIndex(ped, 1, Config.Glasses[gender].thermalDown, 0, true) SetGlasses(ped, glasses.thermalDown)
QBCore.Functions.Notify('Wärmebild aktiviert!') QBCore.Functions.Notify('Wärmebild aktiviert!')
SetSeethrough(true) SetSeethrough(true)
thermalMode = 1 thermalMode = 1
-- Wenn runtergeklappte Wärmebildbrille getragen wird, klappe sie hoch und deaktiviere Wärmebild -- Wenn runtergeklappte Wärmebildbrille getragen wird, klappe sie hoch und deaktiviere Wärmebild
elseif currentGlasses == Config.Glasses[gender].thermalDown then elseif IsWearingGlasses(ped, glasses.thermalDown) then
SetPedPropIndex(ped, 1, Config.Glasses[gender].up, 0, true) SetGlasses(ped, glasses.up)
QBCore.Functions.Notify('Wärmebild deaktiviert!') QBCore.Functions.Notify('Wärmebild deaktiviert!')
thermalMode = 0 thermalMode = 0
-- Wenn Nachtsichtbrille getragen wird, wechsle zu Wärmebildbrille -- Wenn Nachtsichtbrille getragen wird, wechsle zu Wärmebildbrille
elseif currentGlasses == Config.Glasses[gender].nvDown then elseif IsWearingGlasses(ped, glasses.nvDown) then
SetPedPropIndex(ped, 1, Config.Glasses[gender].thermalDown, 0, true) SetGlasses(ped, glasses.thermalDown)
QBCore.Functions.Notify('Wärmebild aktiviert!') QBCore.Functions.Notify('Wärmebild aktiviert!')
SetSeethrough(true) SetSeethrough(true)
thermalMode = 1 thermalMode = 1