80 lines
2.8 KiB
Lua
80 lines
2.8 KiB
Lua
players = {}
|
|
tableData = {}
|
|
|
|
for job, data in pairs(Config.authorizedJob) do
|
|
tableData[job] = {}
|
|
end
|
|
|
|
function isAuthorized(job)
|
|
return Config.authorizedJob[job] ~= nil
|
|
end
|
|
|
|
AddEventHandler("playerDropped", function()
|
|
local source = source
|
|
local data = tableData
|
|
for job, tables in pairs(data) do
|
|
for i = 1, #data[job] do
|
|
if data[job][i] and data[job][i].id == source then
|
|
table.remove(data[job], i)
|
|
tableData = data
|
|
return
|
|
end
|
|
end
|
|
end
|
|
end)
|
|
|
|
RegisterServerEvent("blips:inVehicle", function(state, sprite, siren)
|
|
local source = source
|
|
for job, tables in pairs(tableData) do
|
|
for i = 1, #tableData[job] do
|
|
if tableData[job][i] and tableData[job][i].id == source then
|
|
if siren and not Config.authorizedJob[job]?.siren then
|
|
return
|
|
end
|
|
tableData[job][i].sprite = state and sprite or nil
|
|
return
|
|
end
|
|
end
|
|
end
|
|
end)
|
|
|
|
CreateThread(function()
|
|
while true do
|
|
local data = tableData
|
|
for job, tables in pairs(data) do
|
|
for i = 1, #data[job] do
|
|
if data[job][i] then
|
|
if GetPlayerName(data[job][i].id) ~= nil then
|
|
data[job][i].coords = GetEntityCoords(GetPlayerPed(data[job][i].id))
|
|
data[job][i].heading = GetEntityHeading(GetPlayerPed(data[job][i].id))
|
|
else
|
|
table.remove(data[job], i)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
for id, xPlayer in pairs(players) do
|
|
local preparedData = {}
|
|
if GetPlayerName(id) then
|
|
for job, tables in pairs(Config.authorizedJob) do
|
|
local jobName = QBCore and xPlayer.PlayerData.job.name or xPlayer.job.name
|
|
local authorized = tables.sharedjobs[jobName]
|
|
if authorized then
|
|
for n = 1, #data[job] do
|
|
if type(authorized) == "number" then
|
|
local playerCoord = GetEntityCoords(GetPlayerPed(id))
|
|
if #(playerCoord - data[job][n].coords) <= authorized then
|
|
preparedData[#preparedData+1] = data[job][n]
|
|
end
|
|
elseif type(authorized) == "boolean" then
|
|
preparedData[#preparedData+1] = data[job][n]
|
|
end
|
|
end
|
|
end
|
|
end
|
|
TriggerClientEvent("send:blipData", id, preparedData)
|
|
end
|
|
end
|
|
Wait(Config.tickupdate * 1000)
|
|
end
|
|
end) |