75 lines
2.2 KiB
Lua
75 lines
2.2 KiB
Lua
-----------------------------------------
|
|
-- FD DRONE SCRIPT - SERVER <!-- FD Drone System Nov 2025 - Ferious Dev-->
|
|
-----------------------------------------
|
|
|
|
local activeState = {
|
|
isActive = false,
|
|
truckNet = 0,
|
|
droneNet = 0
|
|
}
|
|
|
|
-------------------------------------------------
|
|
-- SPOTLIGHT SYNC
|
|
-------------------------------------------------
|
|
|
|
RegisterNetEvent("fd_drone:syncSpotlight", function(netId, data)
|
|
local src = source
|
|
|
|
-- Basic sanity
|
|
if type(netId) ~= "number" or type(data) ~= "table" then
|
|
return
|
|
end
|
|
|
|
-- Re-broadcast to everyone except sender
|
|
TriggerClientEvent("fd_drone:applySpotlight", -1, src, netId, {
|
|
enabled = data.enabled or false,
|
|
pitch = data.pitch or 0.0,
|
|
yaw = data.yaw or 0.0,
|
|
radius = data.radius or 5.0,
|
|
intensity = data.intensity or 10.0
|
|
})
|
|
end)
|
|
|
|
-------------------------------------------------
|
|
-- GLOBAL ACTIVE DRONE STATE
|
|
-------------------------------------------------
|
|
|
|
RegisterNetEvent("fd_drone:setActiveState", function(isActive, truckNet, droneNet)
|
|
local src = source
|
|
|
|
isActive = not not isActive
|
|
truckNet = tonumber(truckNet) or 0
|
|
droneNet = tonumber(droneNet) or 0
|
|
|
|
-- If setting active, store them
|
|
if isActive then
|
|
activeState.isActive = true
|
|
activeState.truckNet = truckNet
|
|
activeState.droneNet = droneNet
|
|
else
|
|
activeState.isActive = false
|
|
activeState.truckNet = 0
|
|
activeState.droneNet = 0
|
|
end
|
|
|
|
TriggerClientEvent("fd_drone:updateActiveState", -1,
|
|
activeState.isActive, activeState.truckNet, activeState.droneNet)
|
|
end)
|
|
|
|
-------------------------------------------------
|
|
-- TRUNK DOOR / PROP SYNC
|
|
-------------------------------------------------
|
|
|
|
RegisterNetEvent("fd_drone:syncTrunk", function(truckNet, state)
|
|
-- Simple broadcast: everyone applies the same trunk state
|
|
TriggerClientEvent("fd_drone:applyTrunk", -1, truckNet, state)
|
|
end)
|
|
|
|
|
|
-- When a player joins / resource restarts, client requests this
|
|
RegisterNetEvent("fd_drone:requestActiveState", function()
|
|
local src = source
|
|
TriggerClientEvent("fd_drone:updateActiveState", src,
|
|
activeState.isActive, activeState.truckNet, activeState.droneNet)
|
|
end)
|