LUA скрипт Гайд как сделать бан профу в bAdmin | Разработка сервера GMOD #1

t.me/maj0rblog
Дизайнер
Статус
Оффлайн
Регистрация
6 Окт 2018
Сообщения
975
Реакции[?]
619
Поинты[?]
12K
Привет, сегодня расскажу как сделать бан профу в админ системе bAdmin которая работает на SUP сборке (Разбираем сборку UnityRP 2019 года).
Для начала разберём как работает система банов.
Файлы системы банов находятся в этих директориях :
badmin/lua/ba/core/bans_sv.lua
badmin/lua/ba/modules/darkrp/bans/bans_sv.lua
badmin/lua/ba/modules/darkrp/bans/bans_sh.lua

Будем разбирать для начала разберём этот файл : badmin/lua/ba/core/bans_sv.lua
Как только мы зайдем можем сразу заметить несколько функций :
ba.bans.Sync (Синхронизация с бд определённых элементов)
ba.bans.SyncAll (Синхронизация с бд всего)
ba.bans.Ban (Сам бан)
ba.bans.Unban (Разбан)
ba.bans.UpdateBan (Обновление бана)
ba.bans.CheckPassword (Проверка на наличие бана у игрока (При заходе) )

Нам нужна функция Ban
В ней мы можем заметить эти две строчки
Код:
        -- pl:Kick(reason)

        if (hook.Call('KickOnPlayerBan', ba, pl, reason, ban_len, admin) ~= false) and isplayer(pl) then pl:Kick(reason) end
Они нам и нужны.
В первой строчке мы можем заметить что закомментирован кик игрока при бане, но надо быть внимательней.
Если вы заметите то тут есть интересная проверка на то если хук на кик игрока не вызван то его кикает при бане.
Проверку то можно оставить но pl:Kick(reason) нам нужно заменить на нашу функцию, я исользую setjobonban()
Сейчас мы её и напишем!

Теперь мы заходим в файл : badmin/lua/ba/modules/darkrp/bans/bans_sv.lua
И пишем саму эту функцию, выглядит она так
Код:
local function setjobonban(pl)
    if isplayer(pl) and IsValid(pl) then
        timer.Simple(1, function()
            pl:ChangeTeam(TEAM_BANNED, true)
            pl:Spawn()
        end)
    end
end
Так же нам нужно раскомментировать 36 строчку ( pl:ChangeTeam(1, true) )
Она отвечает за смену профессии забаненого на гражданина после разбана.

Казалось бы всё, но не тут то было вернёмся к этому файлу : badmin/lua/ba/core/bans_sv.lua
Тут нам нужно в функции Unban раскомментировать данные строчки :
1636510543451.png
Они отвечают за таймер который будет чекать профессию забаненого что-бы потом вызвать хук который снимет с него бан и даст профессию гражданина.

Вот и всё!
Вам остаётся только создать саму профессию забаненого и указать ему место спавна.
ВНИМАНИЕ! ID профессии должен быть TEAM_BANNED т.к. указывали мы его.

Приятного вам кодинга, и удачного дня!
Спасибо за прочтение
 
Начинающий
Статус
Оффлайн
Регистрация
10 Дек 2019
Сообщения
5
Реакции[?]
0
Поинты[?]
0
Ты лучший! Можешь на всякий случай скинь файлик в которых изменял все?
 
t.me/maj0rblog
Дизайнер
Статус
Оффлайн
Регистрация
6 Окт 2018
Сообщения
975
Реакции[?]
619
Поинты[?]
12K
Ты лучший! Можешь на всякий случай скинь файлик в которых изменял все?
У меня там ещё много моего кода, если тебе нужна помощь отпиши в тему либо в дискорд.
 
Сверху Снизу