Команда чтобы можно было с определенного ранга (например curator) использовать админ возможности в рп профе.
Ладно, вот нормальный код, который на самом деле запрещает юзать команды. Чуть позже напишу для ULX, пока что только FAdmin.
В файле gamemodes/darkrp/gamemode/modules/fadmin/commands/sv_chatcommands.lua после 28 строки добавь:
if hook.Run("FAdmin_CanExecuteCommand", ply, Command, Args) == false then return "" end
В файле gamemodes/darkrp/gamemode/modules/fadmin/fadmin/commands/sv_concommands.lua после 18 строки добавь:
if hook.Run("FAdmin_CanExecuteCommand", ply, name, args2) == false then return end
В любом серверном файле (addons/addon/lua/autorun/server/sv_adminmode.lua):
local meta = FindMetaTable('Player')
function meta:InAdminmode()
return self:GetNWBool('fadmin_adminmode', false)
end
hook.Add('loadCustomDarkRPItems', 'adminmode', function()
FAdmin.Commands.AddCommand('adminmode', function(ply, cmd, args)
if not ply:IsAdmin() then return false end
ply:SetNWBool('fadmin_adminmode', not ply:InAdminmode())
FAdmin.Messages.SendMessage(ply, 5, 'Админ-мод '..(ply:InAdminmode() and 'включен' or 'выключен')..'!')
return true, ply:InAdminmode()
end)
end)
local function restrict(ply)
if not ply:InAdminmode() then
DarkRP.notify(ply, 1, 5, 'Ты не включил админ-мод')
return false
end
end
hook.Add('PlayerNoClip', 'adminmode', restrict)
hook.Add('FAdmin_CanExecuteCommand', 'adminmode', function(ply, cmd, args)
if not IsValid(ply) then return end
if not ply:InAdminmode() and cmd ~= 'adminmode' then return restrict(ply) end
end)
спасибо! работает.
Не работает я хочу тип чтоб не просто в чат писало а именно там права на ноуклип клок выдавались и.т.п
Эх, разбираться и учиться надо, а не копипастить чужой код. В любой shared-модуль ulx (addons/ulx/lua/ulx/modules/sh/adminmode.lua):
local meta = FindMetaTable('Player')
function meta:InAdminmode()
return self:GetNWBool('ulx_adminmode', false)
end
function ulx.adminmode(ply)
ply:SetNWBool('ulx_adminmode', not ply:InAdminmode())
ulx.fancyLogAdmin( ply, '#A '..(ply:InAdminmode() and 'включил' or 'выключил')..' админ-мод')
end
local adminmode = ulx.command('Utility', 'ulx adminmode', ulx.adminmode, '!adminmode')
adminmode:defaultAccess( ULib.ACCESS_ADMIN )
adminmode:help('Включить/выключить админ-мод')
local function restrict(ply)
if not ply:InAdminmode() then
DarkRP.notify(ply, 1, 5, 'Ты не включил админ-мод')
return false
end
end
local whitelisted = {
['ulx help'] = true,
['ulx adminmode'] = true,
['ulx motd'] = true,
['ulx version'] = true,
}
hook.Add('PlayerNoClip', 'adminmode', restrict)
hook.Add(ULib.HOOK_COMMAND_CALLED, 'adminmode', function(ply, cmd, args)
if not IsValid(ply) then return end
if cmd:sub(1,3) ~= 'ulx' then return end
if not whitelisted[cmd] then return restrict(ply) end
end)
Можете на SAM, негде нету некто не делал вам за это должны медаль дать )
local meta = FindMetaTable('Player')
function meta:InAdminmode()
return self:GetNWBool('sam_adminmode', false)
end
sam.command.set_category('Utility')
sam.command.new('adminmode')
:Help('Включает/Выключает админмод')
:SetPermission('adminmode', 'admin')
:OnExecute(function(ply)
ply:SetNWBool('sam_adminmode', not ply:InAdminmode())
ply:ChatPrint('Ты '..(ply:InAdminmode() and 'включил' or 'выключил')..' админ-мод')
end)
:End()
local function restrict(ply)
if not ply:InAdminmode() then
ply:ChatPrint('Ты не включил админ-мод')
return false
end
end
local whitelisted = {
['adminmode'] = true,
}
hook.Add('PlayerNoClip', 'adminmode', restrict)
hook.Add('SAM.CanRunCommand', 'adminmode', function(ply, cmd)
if not IsValid(ply) then return end
if not whitelisted[cmd] then return restrict(ply) end
end)
А можно, как-то еще добавить исключения для root, superadmin?
local excluded = {
['root'] = true,
['superadmin'] = true,
}
local function restrict(ply)
if not excluded[ply:GetUserGroup()] and not ply:InAdminmode() then
ply:ChatPrint('Ты не включил админ-мод')
return false
end
end
Это работает как прошлый код для SAM? Только с исключениям? И куда кидать код?? В модули?
Вроде-бы установил, но какая-то фигня. Почему-то один раз включаю noclip за admin. И мне пишет 1 млн сообщений
Хотя, должно быть одно!
Этим кодом нужно заменить функцию restrict из оригинального кода. Насчет кучи сообщений не знаю, такого не должно быть
Как сделать что бы писалось в админский чат или просто в чат и если можно над головой
Типо
User включил админмод или как то так
вот нормальная луашка, там тп в админ зону и админ мод
там не только под SAM если что, все настраивается
Где функция эта?
А куда сам скрипт?
Привет, можешь добавить фичу, чтобы при активации только при активации можна было брать людей физганом?
Куда Кидать?
Значит не правильно заменил код
(сообщение удалено автором)