[SAM] Запретить определенные команды в РП профессии

Как запретить использовать определенные админ команды определенным группам? (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

Я обновил код, возьми его

1 лайк