Как запретить использовать определенные админ команды определенным группам? (SAM)
Если кто-то сможет ответить на этот вопрос – сниму таймер автоудаления темы, а ответивший получит медальку на форуме
Самое простое решение, без лишних модулей
Не забудь изменить профессию администратора, на свою
local blocked_cmds = {
["noclip"] = true,
}
hook.Add("SAM.CanRunCommand", "testingCode", function(ply, cmd_name)
if ply:IsSuperAdmin() then return end
if (blocked_cmds[cmd_name] and ply:Team() ~= TEAM_ADMIN) then
return false
end
end)
Окей, а как запретить трогать игроков и их пропы физганом в РП профе?
- укажи, куда это закидывать
- какой тип файла это
полагаю, это модуль sv части?
Просто файл, закидываешь в серверную часть
Пример пути: “/addons/любое_имя/lua/autorun/server/blabla.lua”
На счет физгана, не изучал
Думаю, благодаря CAMI в SAM (can_physgun_players) это можно реализовать легко
Я изучил с физганом, если максимум изменять код внутри админки
Скинь CAMI с SAM
-- addons/anyname/lua/autorun/server/sam_physgun.lua
hook.Add("CAMI.PlayerHasAccess", "SAM.PhysgunLimit", function(pl, privilege, callback)
if privilege == "can_physgun_players" and pl:Team() ~= TEAM_ADMIN then
callback(false)
end
end)
на что смотреть?
Данный хук не вызывается, принт должен быть
я сделал решение, основываясь на полученных от тебя файлах. Если хук не вызывается, то это уже не ко мне вопрос, потому что он ДОЛЖЕН вызываться.
Да, кстати
SAM ломается.
Не знаю почему, но быть может, потому что я добавил проверку на суперадмина в строчку if (blocked_cmds[cmd_name] and ply:Team() ~= TEAM_ADMIN) or ply:IsSuperAdmin() then
Я обновил код, возьми его
Лично у меня такой код:
local disallowed_commands = {
["goto"] = true,
["bring"] = true,
["return"] = true,
["noclip"] = true,
["slay"] = true,
["slap"] = true,
["freeze"] = true,
["unfreeze"] = true,
["scale"] = true,
["giveammo"] = true,
["give"] = true
}
hook.Add("SAM.CanRunCommand", "SAM.DisallowedCommands", function(ply, cmd)
if IsValid(ply) then
local disallowed_command = disallowed_commands[cmd]
if disallowed_command and ply:Team() ~= TEAM_ADMIN or not ply:CheckGroup('superadmin') then
sam.player.send_message(ply, "'{S}' данную команду запрещено использовать в РП Профессии!", {
S = cmd
})
return false
end
end
end)
Я как раз написал минут 10 назад подобный код ,сейчас сравню и уже завтра отпишу ,если поможет большое тебе спасибо.
Помог?
с этим кодом проблема
Если я суперадмин я всё могу юзать
Но
Если я даже в профе админа и рангом ниже superadmin - пишет что я не могу юзать команды в рп профе, которые прописал в disallowed_commands
Т.е. если я условно admin и нахожусь в TEAM_ADMIN - я не могу использовать команды…