Gban SAM бан система

Во первых. Как сделать бан в минутах, чтобы админ мог написать время банах на пример сразу в 30 минутах.
Во вторых. Как сделать чтобы админ не мог банить другого админа, а администрация выше привилегии admin - могла.
Во третих. Как сделать чтобы админ не мог себя разбанить, типа его забанил ROOT, а он себя разбанил. А так же нужно чтобы админи выше привилегии admin могли.

1.где сам Gban?
2.где таблица рангов, имунитета.
вслепую желать?
Тебе так не помогут.

По поводу второго вопроса отвечал тут, ты не указал админку, так что предположу что используешь ULX.

Что такое GBan? Дай больше конкретики. Тыкаю сейчас пальцев в небо, но могут предположить что где-то прописана конвертация времени, попробуй её найти и заменить на то что тебе нужно.

По поводу третьего. Сделай проверку на нужные тебе условия, вот нужный тебе хук.

Будет что-то в духе такого.

local WHITELIST = { -- люди с этой привилегией имеют иммунитет к этой системе
    ["superadmin"] = true
}

local BAN_PRIVILAGE_NAMES = {   -- строки доступа (команды), которые отвечают за бан
                                -- Ты с вероятностью 100% хочешь вписать сюда своё, я с ULX уже больше года не работал, и не помню что и как там.
    ["ulx.ban"] = true,
    ["ulx.banid"] = true
}

hook.Add("CAMI.PlayerHasAccess", "AntiAA", function(defaultAccessHandler, actorPly, privilegeName, callback_, targetPly, extraInfoTbl)
    if actorPly:IsBanned() and not WHITELIST[actorPly:GetUserGroup()] then -- замени :IsBanned на свою функцию проверки бана
        return false, "Вы не можете использовать свои права, пока вы в бане." -- запрещает использовать любые права, если игрок в бане
    end

    -- добавляй сюда свою логику

    return defaultAccessHandler["CAMI.PlayerHasAccess"](nil, actorPly, privilegeName, callback_, targetPly, extraInfoTbl)
end)

:warning: Этот код тут для примера, тебе нужно его допиливать под свои нужды.

Gban это модуль для SAM (админ система)
Тип админки видно в Заголовке.
Ждём когда отправит данные, которые я ‘запросил’

Видимо ещё не проснулся, не заметил)

Спасибо за то что поправил.

1 лайк
  1. gban.lua (10,6 КБ)
  2. Поставил все привилегии по имунитету.
    superadmin
    root
    admin
    moderator
    dadmin
    dmoderator
    vip
    user

gban.lua (11,4 КБ)

Проверяй на lua ошибки с игроками
Сделал так же проверку если игрок офлайн(проверка иммунитета).
По задумке если иммунитет админа ниже цели то бана не будет.
И цели напишет что

“Администратор %s хотел выдать Вам бан по причине: %s на %s минут.”

Бан сразу в минутах.

Спасибо, сейчас попробую…

У меня ошибка какая-то, я еще не загрузил скрипт, просто на сервер зашел.

ошибка не в Gban .

Вот и говорю…

А как еще добавить, функцию мута чата и войс-чата, до разбана?

зображення
Ошибку показало

gban.lua (11,4 КБ)
Мут потом допишу

[adminmode] addons/adminmode/lua/sam/modules/gban.lua:64: malformed number near ‘60…’

  1. load_file - addons/adminmode/lua/autorun/sam.lua:45
  2. unknown - addons/adminmode/lua/autorun/sam.lua:106

gban.lua (11,8 КБ)
Добавил мут

[adminmode] addons/adminmode/lua/sam/modules/gban.lua:35: attempt to call global ‘Isvalid’ (a nil value)

  1. GiveBanPlayer - addons/adminmode/lua/sam/modules/gban.lua:35
  2. on_execute - addons/adminmode/lua/sam/modules/gban.lua:375
    3. run_command - addons/adminmode/lua/sam/command/sv_command.lua:130
    4. unknown - addons/adminmode/lua/sam/command/sv_command.lua:173
    5. unknown - lua/includes/modules/concommand.lua:54

Ой глупую ошибку сделал.
gban.lua (11,8 КБ)
Тебе бы быстрее отвечать.

Да просто, пока сервер запуститься…

Попробуй менять файлы без перезапуска.