2025-06-29 23:58:18 +02:00
|
|
|
local QBCore = exports[Config.CoreName]:GetCoreObject()
|
|
|
|
local mode = 0
|
|
|
|
local canToggle = false
|
|
|
|
|
2025-06-30 00:25:08 +02:00
|
|
|
-- Funktion zum Prüfen des Charaktergeschlechts
|
|
|
|
local function IsPedMale(ped)
|
|
|
|
return GetEntityModel(ped) == `mp_m_freemode_01`
|
|
|
|
end
|
|
|
|
|
2025-06-29 23:58:18 +02:00
|
|
|
RegisterCommand('toggleNV', function()
|
2025-06-30 00:25:08 +02:00
|
|
|
local ped = PlayerPedId()
|
|
|
|
|
2025-06-29 23:58:18 +02:00
|
|
|
if QBCore.Functions.HasItem(Config.NVItem) then
|
2025-06-30 00:25:08 +02:00
|
|
|
local currentGlasses = GetPedPropIndex(ped, 1)
|
|
|
|
local gender = IsPedMale(ped) and "male" or "female"
|
|
|
|
|
|
|
|
-- Prüfen, ob der Spieler eine der NV-Brillen trägt
|
2025-06-29 23:58:18 +02:00
|
|
|
if Config.CheckHelmet then
|
2025-06-30 00:25:08 +02:00
|
|
|
if currentGlasses == Config.Glasses[gender].up or currentGlasses == Config.Glasses[gender].down then
|
2025-06-29 23:58:18 +02:00
|
|
|
canToggle = true
|
|
|
|
else
|
|
|
|
canToggle = false
|
|
|
|
end
|
|
|
|
else
|
|
|
|
canToggle = true
|
|
|
|
end
|
|
|
|
|
|
|
|
if canToggle then
|
2025-06-30 00:25:08 +02:00
|
|
|
-- 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!')
|
2025-06-29 23:58:18 +02:00
|
|
|
SetNightvision(true)
|
|
|
|
mode = 1
|
2025-06-30 00:25:08 +02:00
|
|
|
-- Wenn bereits im Nachtsichtmodus, wechsle zu Wärmesicht
|
2025-06-29 23:58:18 +02:00
|
|
|
elseif mode == 1 then
|
2025-06-30 00:25:08 +02:00
|
|
|
QBCore.Functions.Notify('Wärmesicht aktiviert!')
|
2025-06-29 23:58:18 +02:00
|
|
|
SetSeethrough(true)
|
|
|
|
mode = 2
|
2025-06-30 00:25:08 +02:00
|
|
|
-- Wenn im Wärmesichtmodus, deaktiviere alles und klappe Brille hoch
|
2025-06-29 23:58:18 +02:00
|
|
|
elseif mode == 2 then
|
2025-06-30 00:25:08 +02:00
|
|
|
SetPedPropIndex(ped, 1, Config.Glasses[gender].up, 0, true)
|
|
|
|
QBCore.Functions.Notify('Nachtsicht deaktiviert!')
|
2025-06-29 23:58:18 +02:00
|
|
|
SetNightvision(false)
|
|
|
|
SetSeethrough(false)
|
|
|
|
mode = 0
|
|
|
|
end
|
|
|
|
else
|
2025-06-30 00:25:08 +02:00
|
|
|
QBCore.Functions.Notify('Du trägst keine Nachtsichtbrille!', 'error')
|
2025-06-29 23:58:18 +02:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end)
|
2025-06-30 00:25:08 +02:00
|
|
|
|
2025-06-29 23:58:18 +02:00
|
|
|
RegisterKeyMapping('toggleNV', 'Toggle nightvision', 'keyboard', Config.NVKey)
|
|
|
|
|
2025-06-30 00:25:08 +02:00
|
|
|
-- 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
|
2025-06-29 23:58:18 +02:00
|
|
|
end
|
|
|
|
end)
|
2025-06-30 00:25:08 +02:00
|
|
|
|
|
|
|
-- Behalte den alten Event-Namen für Kompatibilität
|
|
|
|
RegisterNetEvent('nightvision:toggleHelmet', function()
|
|
|
|
TriggerEvent('nightvision:toggleGlasses')
|
|
|
|
end)
|