Команда чтобы можно было с определенного ранга (например curator) использовать админ возможности в рп профе.
hook.Add("PlayerSay", "AdminMode", function(ply, text, team)
if (text == "!adminmode") then
if ply:IsUserGroup("curator") then
ply:ChatPrint("Allowed")
else
ply:ChatPrint("You do not have permission to run this command.")
end
end
end)
Какая у тебя админка?
Fadmin
куда вписывать эт?
Создаёшь файл в lua/autorun/server/name.lua
и туда кидаешь
Так этот код ничего не делает. Он даже будет отправлять сообщение в чате несмотря на то, что ты написал команду
а если ulx?
Без разницы, работает на всех админках.
А если нет, напиши сюда я тебе код пришлю другой.
А можно сделать тоже самое но при этом когда писал !adminmode включался noclip?
не работает
Ладно, вот нормальный код, который на самом деле запрещает юзать команды. Чуть позже напишу для 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)
Ждем для ulx
спасибо! работает.
Не работает я хочу тип чтоб не просто в чат писало а именно там права на ноуклип клок выдавались и.т.п
Эх, разбираться и учиться надо, а не копипастить чужой код. В любой 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)
(сообщение удалено автором)