add sborka
This commit is contained in:
77
garrysmod/lua/autorun/server/sv_admin_physics_fix.lua
Normal file
77
garrysmod/lua/autorun/server/sv_admin_physics_fix.lua
Normal file
@@ -0,0 +1,77 @@
|
||||
if not SERVER then return end
|
||||
|
||||
-- Таблица групп, которым разрешён административный доступ к Physgun
|
||||
local AdminGroups = {
|
||||
["superadmin"] = true,
|
||||
["super admin"] = true,
|
||||
["owner"] = true,
|
||||
["curator"] = true,
|
||||
["sudo-curator"] = true,
|
||||
["asist-sudo"] = true,
|
||||
["admin"] = true,
|
||||
["st.admin"] = true,
|
||||
["projectteam"] = true,
|
||||
["teh.admin"] = true,
|
||||
["ivent"] = true,
|
||||
["st.event"] = true,
|
||||
["event"] = true,
|
||||
["specadmin"] = true,
|
||||
["assistant"] = true,
|
||||
["disp"] = true,
|
||||
}
|
||||
|
||||
-- Хук для Physgun: позволяем администраторам поднимать энтити и игроков
|
||||
hook.Add("PhysgunPickup", "!!!!Admin_PhysgunPickup_Fix", function(ply, ent)
|
||||
if not IsValid(ply) then return end
|
||||
|
||||
local group = ply:GetUserGroup()
|
||||
if AdminGroups[group] then
|
||||
-- Если это игрок, SAM уже имеет свою логику, но мы подтверждаем наше разрешение
|
||||
if ent:IsPlayer() then
|
||||
-- Запрещаем поднимать суперадминов если мы просто "админ" (опционально)
|
||||
-- if group == "admin" and ent:IsSuperAdmin() then return false end
|
||||
return true
|
||||
end
|
||||
|
||||
-- Для всех остальных энтитей — разрешаем
|
||||
return true
|
||||
end
|
||||
end)
|
||||
|
||||
-- Хук для ToolGun: позволяем администраторам использовать инструменты на защищённых объектах
|
||||
hook.Add("CanTool", "!!!!Admin_CanTool_Fix", function(ply, tr, tool)
|
||||
if IsValid(ply) and AdminGroups[ply:GetUserGroup()] then
|
||||
return true
|
||||
end
|
||||
end)
|
||||
|
||||
-- Хук для Properties (ПКМ меню): позволяем администраторам видеть всё
|
||||
hook.Add("CanProperty", "!!!!Admin_CanProperty_Fix", function(ply, property, ent)
|
||||
if IsValid(ply) and AdminGroups[ply:GetUserGroup()] then
|
||||
return true
|
||||
end
|
||||
end)
|
||||
|
||||
-- Хук для Unfreeze: позволяем администраторам размораживать объекты
|
||||
hook.Add("CanPlayerUnfreeze", "!!!!Admin_CanPlayerUnfreeze_Fix", function(ply, ent, phys)
|
||||
if IsValid(ply) and AdminGroups[ply:GetUserGroup()] then
|
||||
return true
|
||||
end
|
||||
end)
|
||||
|
||||
-- Принудительная регистрация привилегий в CAMI для Helix и SAM
|
||||
hook.Add("InitPostEntity", "!!!!Admin_CAMI_Permissions_Fix", function()
|
||||
if CAMI then
|
||||
CAMI.RegisterPrivilege({
|
||||
Name = "Helix - Bypass Prop Protection",
|
||||
MinAccess = "admin"
|
||||
})
|
||||
|
||||
-- Для SAM
|
||||
if SAM_LOADED and sam then
|
||||
sam.permissions.add("can_physgun_players", nil, "admin")
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
print("[ADMIN FIX] Physics and Prop Protection bypass for 'admin' and 'curator' groups loaded.")
|
||||
Reference in New Issue
Block a user