1
0
Fork 0
forked from Simnation/Main
Main/resources/[jobs]/[police]/helicam/server.lua
2025-06-07 08:51:21 +02:00

53 lines
1.9 KiB
Lua

local helicopters = {}
GlobalState.heliSpotlightsActive = 0
RegisterServerEvent('helicam:enterCamera')
AddEventHandler('helicam:enterCamera', function(heliNetId)
local helicopter = Entity(NetworkGetEntityFromNetworkId(heliNetId))
if helicopter and not helicopter.state.heliCamInUse then
helicopter.state.heliCamInUse = true
helicopter.state.heliCamTargetBlip = false
helicopter.state.heliCamSpotlightData = nil
if not helicopter.state.heliCamMarkers then
helicopter.state.heliCamMarkers = {}
end
helicopters[source] = heliNetId
TriggerClientEvent('helicam:enterCamera', source, true)
else
TriggerClientEvent('helicam:enterCamera', source, false)
end
end)
RegisterServerEvent('helicam:leaveCamera')
AddEventHandler('helicam:leaveCamera', function(heliNetId)
local helicopter = Entity(NetworkGetEntityFromNetworkId(heliNetId))
helicopter.state.heliCamInUse = false
helicopter.state.heliCamTargetBlip = nil
if source ~= nil and source ~= "" then
helicopters[source] = nil
end
end)
RegisterServerEvent('helicam:setStateBag')
AddEventHandler('helicam:setStateBag', function(heliNetId, bagName, value)
local helicopter = Entity(NetworkGetEntityFromNetworkId(heliNetId))
helicopter.state[bagName] = value
end)
RegisterServerEvent('helicam:toggleSpotlight')
AddEventHandler('helicam:toggleSpotlight', function(state)
if state then
GlobalState.heliSpotlightsActive += 1
else
GlobalState.heliSpotlightsActive -= 1
end
end)
-- If a player crashes/leaves while in the camera
AddEventHandler('playerDropped', function(reason)
if helicopters[source] then
TriggerEvent('helicam:leaveCamera', helicopters[source])
Player(source).state.heliCamSpotlightData = { position = false, helicopter = helicopters[source] }
helicopters[source] = nil
end
end)