dobrograd-13-06-2022/garrysmod/addons/feature-camera/lua/autorun/server/init.lua
Jonny_Bro (Nikita) e4d5311906 first commit
2023-11-16 15:01:19 +05:00

83 lines
2.5 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

CFG.use.ent_dbg_camera = {
function(ply, ent)
if ent.pendingWorker ~= ply then return end
return 'Починить', 'octoteam/icons/wrench.png', function(ply, ent)
ent:Use(ply, ply, USE_TOGGLE, 1)
end
end,
function(ply, ent)
if not ply:IsSuperAdmin() then return end
return 'Настроить', 'octoteam/icons/keypad.png', function(ply, ent)
local dt, notifyData = ent:GetNetVar('rotationData', {}), octolib.array.toKeys(ent.notifyData) or {}
local notifyOpts = octolib.table.mapSequential(table.GetKeys(simpleOrgs.orgs), function(v) return {simpleOrgs.orgs[v].name, v, notifyData[v]} end)
notifyOpts[#notifyOpts + 1] = {'Полиция', 'cp', notifyData['cp']}
octolib.request.send(ply, {
pitch = {
name = 'Наклон',
type = 'numSlider',
dec = 0,
min = -45,
max = 30,
default = dt.p or 0,
},
center = {
name = 'Центр',
type = 'numSlider',
dec = 0,
min = -120,
max = 120,
default = dt.center or 0,
},
radius = {
name = 'Радиус вращения',
desc = 'Левая граница: центр - alpha, правая: центр + alpha',
type = 'numSlider',
dec = 0,
min = 0,
max = 90,
default = dt.r or 0,
},
speed = {
name = 'Скорость вращения',
desc = 'Градусы/сек',
type = 'numSlider',
dec = 1,
min = 0,
max = 30,
default = math.deg(dt.v or 0),
},
viewDist = {
name = 'Дальность обзора',
type = 'numSlider',
dec = 0,
min = 500,
max = 2000,
default = dt.viewDist or 1500,
},
notifyData = {
name = 'Оповещения',
desc = 'Выбери, какую организацию будет оповещать камера о всех нарушениях',
type = 'checkGroup',
opts = notifyOpts,
required = true,
},
}, function(data)
if IsValid(ent) then
data.pitch = math.Clamp(data.pitch or dt.p or 0, -45, 30)
data.center = math.Clamp(data.center or dt.center or 0, -120, 120)
data.radius = math.Clamp(data.radius or dt.r or 0, 0, 90)
data.speed = math.Clamp(data.speed or dt.v or 0, 0, 30)
data.viewDist = math.Clamp(data.viewDist or dt.viewDist, 500, 2000)
ent.notifyData = data.notifyData
local ac = math.abs(data.center)
if ac + data.radius > 120 then
data.radius = 120 - ac
end
ent:SetRotationData(data.pitch, data.center, data.radius, math.rad(data.speed), data.viewDist)
end
end)
end
end,
}