Команда !adminmode

Команда чтобы можно было с определенного ранга (например 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)
1 лайк

Можете на 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)

(сообщение удалено автором)