1
0
Fork 0
forked from Simnation/Main
Main/resources/[tools]/thommie-nightvision/cl_main.lua

86 lines
3.4 KiB
Lua
Raw Normal View History

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)