Welcome to Сообщество игровых серверов NETZONA.ORG

Присоединяйтесь к нам сейчас, чтобы получить доступ ко всем нашим функциям. Зарегистрировавшись и войдя в систему, вы сможете создавать темы, публиковать ответы в существующих темах, давать репутацию другим участникам, получать собственный личный мессенджер и многое другое. Это также быстро и совершенно бесплатно, так чего же вы ждете?
  • Приветствуем на сайте, Гость! Обязательно ознакомьтесь с условиями и правилами Публичной оферты Проекта NetZONA.org: https://netzona.org/help/public-offer/

  • Приветствуем на сайте, Гость! Обязательно ознакомьтесь с условиями и правилами использования Ваших файлов cookie на Проекте NetZONA.org: https://netzona.org/help/cookies/

  • Приветствуем на сайте, Гость! Обязательно ознакомьтесь с Политикой конфиденциальности Проекта NetZONA.org: https://netzona.org/pages/privacy-policy/

  • Ответы на основные вопросы: https://netzona.org/threads/populjarnye-voprosy-i-otvety-na-nix.6122/

  • Приветствуем на сайте, Гость! Приобрести (купить) Информационную услугу (в том числе группу "Проверенный") на Проекте NetZONA.org: https://netzona.org/account/upgrades

Вопрос по системе администрирования.

Статус
В этой теме нельзя размещать новые ответы.

Mr.Cat

Пользователь
Регистрация
5 Янв 2017
Сообщения
41
Реакции
0
Баллы
15
Возраст
26
Адрес
Russia
Пол
Приветствую!
У меня вопрос, как сделать что-бы администратор только за профессию администратора мог летать, садить в джаил, телепортировать людей и т.д.
 

gigi

Пользователь
Регистрация
24 Ноя 2017
Сообщения
22
Реакции
0
Баллы
23
Возраст
28
Пол
Это пример

TEAM_ADMIN = DarkRP.createJob("Админ", {
color = Color(0, 201, 8, 255),
model = {"models/player/combine_super_soldier.mdl"},
description = [[ТЕКСТ]],
weapons = {""},
command = "adminz",
max = 0,
salary = 50,
admin = 1, (admin = 0 -- любой игрок) (admin = 1 -- только администраторы) (admin = 2 -- только супер админы)
vote = false,
hasLicense = false,
candemote = true,
-- CustomCheck
medic = false,
chief = false,
mayor = false,
hobo = false,
cook = false,
category = "Основные работы",
 

Mr.Cat

Пользователь
Регистрация
5 Янв 2017
Сообщения
41
Реакции
0
Баллы
15
Возраст
26
Адрес
Russia
Пол
Это просто создаёт работу, а мне надо что-бы за профу допустим мафия админ не мог использовать функции админа ...
 

Hikka

Модератор
Команда форума
Проверенный
Регистрация
29 Сен 2016
Сообщения
555
Реакции
1
Баллы
60
Возраст
30
Пол
Это просто создаёт работу, а мне надо что-бы за профу допустим мафия админ не мог использовать функции админа ...
Если админка ULX, то придется каждую команду обрабатывать вручную.
Вот как я например сделал в TTT.
В функции YobaFuncSlay, если игрок не суперадмин и что-то еще то его убьет за использование прав, как-то так.
Естественно тебе нужно для даркрп, то будет что-то типо if (!ply:IsSuperAdmin() and ply:Team() == TEAM_GUN) then ... end
Код:
local function YobaFuncSlay(ply)
    if engine.ActiveGamemode() != "terrortown" then return false end
    if !ply:IsSuperAdmin() and GetRoundState() == ROUND_PREP then
        if IsValid(ply) and ply:Alive() then
            ply:Kill()
        end
        return true
    end
    return false
end

Код:
function ulx.slap( calling_ply, target_plys, dmg )
    if YobaFuncSlay(calling_ply) then
        return
    end

    local affected_plys = {}
    for i=1, #target_plys do
        local v = target_plys[ i ]
        if v:IsFrozen() then
            ULib.tsayError( calling_ply, v:Nick() .. " is frozen!", true )
        else
            ULib.slap( v, dmg )
            table.insert( affected_plys, v )
        end
    end

    ulx.fancyLogAdmin( calling_ply, "#A slapped #T with #i damage", affected_plys, dmg )
end
 

Mr.Cat

Пользователь
Регистрация
5 Янв 2017
Сообщения
41
Реакции
0
Баллы
15
Возраст
26
Адрес
Russia
Пол
Если админка ULX, то придется каждую команду обрабатывать вручную.
Вот как я например сделал в TTT.
В функции YobaFuncSlay, если игрок не суперадмин и что-то еще то его убьет за использование прав, как-то так.
Естественно тебе нужно для даркрп, то будет что-то типо if (!ply:IsSuperAdmin() and ply:Team() == TEAM_GUN) then ... end
Код:
local function YobaFuncSlay(ply)
    if engine.ActiveGamemode() != "terrortown" then return false end
    if !ply:IsSuperAdmin() and GetRoundState() == ROUND_PREP then
        if IsValid(ply) and ply:Alive() then
            ply:Kill()
        end
        return true
    end
    return false
end

Код:
function ulx.slap( calling_ply, target_plys, dmg )
    if YobaFuncSlay(calling_ply) then
        return
    end

    local affected_plys = {}
    for i=1, #target_plys do
        local v = target_plys[ i ]
        if v:IsFrozen() then
            ULib.tsayError( calling_ply, v:Nick() .. " is frozen!", true )
        else
            ULib.slap( v, dmg )
            table.insert( affected_plys, v )
        end
    end

    ulx.fancyLogAdmin( calling_ply, "#A slapped #T with #i damage", affected_plys, dmg )
end
Конечно спасибо ... Но *** это такая запара ...)
[doublepost=1511766114,1511765922][/doublepost]
Если админка ULX, то придется каждую команду обрабатывать вручную.
Вот как я например сделал в TTT.
В функции YobaFuncSlay, если игрок не суперадмин и что-то еще то его убьет за использование прав, как-то так.
Естественно тебе нужно для даркрп, то будет что-то типо if (!ply:IsSuperAdmin() and ply:Team() == TEAM_GUN) then ... end
Код:
local function YobaFuncSlay(ply)
    if engine.ActiveGamemode() != "terrortown" then return false end
    if !ply:IsSuperAdmin() and GetRoundState() == ROUND_PREP then
        if IsValid(ply) and ply:Alive() then
            ply:Kill()
        end
        return true
    end
    return false
end

Код:
function ulx.slap( calling_ply, target_plys, dmg )
    if YobaFuncSlay(calling_ply) then
        return
    end

    local affected_plys = {}
    for i=1, #target_plys do
        local v = target_plys[ i ]
        if v:IsFrozen() then
            ULib.tsayError( calling_ply, v:Nick() .. " is frozen!", true )
        else
            ULib.slap( v, dmg )
            table.insert( affected_plys, v )
        end
    end

    ulx.fancyLogAdmin( calling_ply, "#A slapped #T with #i damage", affected_plys, dmg )
end
А можно ли использовать перечисление проф ? if (!ply:IsSuperAdmin() and ply:Team() == TEAM_GUN, TEAM_TAPOCK, ...) then ... end ? Я просто сам по большей части занимаюсь pawno и не знаю как это всё в гарисе работает, но предполагаю
 

DrodA

Пользователь
Проверенный
Регистрация
16 Фев 2017
Сообщения
128
Реакции
0
Баллы
30
Адрес
Sweden
А можно ли использовать перечисление проф ? if (!ply:IsSuperAdmin() and ply:Team() == TEAM_GUN, TEAM_TAPOCK, ...) then ... end ?

Такого рода перечисление недоступно в LUA/GLUA. Для данного потребуется использовать наиболее классический способ:
Код:
if (player:Team() == FACTION_NAME or player:Team() == FACTION_NAME2) then ... end

Если количество фракций превышает все допустимые нормы, а проверка до боли необходима, то можно использовать метод таблицей:
Код:
local factionTable =
{
    [FACTION_NAME] = true,
    [FACTION_NAME2] = true
}

if factionTable[player:Team()] then ... end
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху Снизу