SAM Gban Fix New

Это перезапуск темы

Там я давно не мог редактировать главный пост.
Вроде как всё перенёс

Отличия от оригинального SAM Gban.

1- Максимальное время бана будет такое как указанно в Sam.
2- Теперь будет писаться полное время максимального бана.

3- Когда у игрока закончится бан, напишет(Всем):

4-Перма бан нужно указать 0, 0mi и т.д.
игрока кикнет и напишет

5-Умный бан, Если игрока забанили на 1д и он вышел, зайдя через 12ч бан будет 12ч(24-12) это не нагружает сервер.
6-ХУД бана:

7-Бан в указанном вами типе:
минуты=mi
часы=h
дни=d
недели=w
месяцы=mo
примеры:
бан 2ч и 30минут
sam gban Kekors 2h30mi 3.4
бан 1 месяц 2 недели 3 дня 8 часов 34 минуты
sam gban Amogus 1mo2w3d8h34m 8.4

8-Переменная

GBan.Config.AllBan
изначально false

Если игрок был забанен через консоль, то только консоль сможет снять бан.
Если игрок был забанен пермаментно, то снять бан сможет админ с доступом к пермаментному бану.(зависит от GBan.Config.AllBan )

9-Переменная

GbanTeam
изначально true
Требует TEAM_BANNED !!!

если вам нужно менять профессию игроку ставьте true или false .
10- CL хук, (вызывается после начала отрисовки hud’а бана):
GBan.BanLocalPlayer- вызывается при получении бана и при разбане.
аргументы:
to_ban- получен бан true| получен разбан false
admin- (String) ник(Steam), при разбане nil
time- (int) время бана, при разбане nil
reason-(String) причина, при разбане nil

Если у вас уже стоял на сервере

Gban

не gban fix !!!

удалите таблицу в sql. почему? я добавил в таблицу новый столбец.
либо добавьте его сами.

Изменение Лимита бана (0 = доступ к перме):

Прочее:

  1. Забаненый не сможет использовать SAM команды.
  2. Не сможет Включать Noclip (только если у вас, нет обхода хука)
  3. Забаненый не сможет получать, наносить урон (игрокам).
  4. Добавленны 4 хука:

PreGBanSam-вызывается до выдачи бана, если вернуть true бан будет прерван.
PostGBanSam-вызывается после выдачи бана, записи в sql.

аргументы у обоих хуков:

target- Если цель оффлайн, то вернёт не игрока а стимайди.
admin-Если бан был выдан не игроком то вернёт nil
table- таблица содержит:

  1. Время
  2. Причина

permaban-Если выдаётся перма то вернёт true иначе false.
-=-
PreUnGBanSam-вызывается до разбана, если вернуть true разбан будет прерван.
PostUnGBanSam-после разбана и удаления с sql.

аргументы:

target- Если цель оффлайн, то вернёт не игрока а стимайди.
admin-Если разбан был выдан не игроком то вернёт nil

До 13.02.2024
gban_New.lua (29,4 КБ)

13.02.2024
gban_New.lua (29,3 КБ)

Изменения:

  1. Исправлен net при получении разбана, ранее не хватало отправки string и неверный бит uint , теперь это упрощенно и во все не отправляется.
  2. Убран лишний SetNWInt, тк он давно не используется (время бана игрока)

23.02.2024
gban_New (1).lua (29,3 КБ)
Изменения:

  1. Добавленна поддержка Sam 149 и выше.

28.02.2024
gban_New.lua (28,6 КБ)
Изменения:

  1. Исправлена ошибка, при выходе игрока изменялось время бана :skull:.

11.03.2024
gban_New.lua (25,7 КБ)
Изменения:

  1. Немного почистил код.
  2. Добавил в хуки проверку на игрока.

30.03.2024
gban_New.lua (25,8 КБ)

Изменения:

  1. Исправил ошибки в коде.

Планы:

  1. Заменить Set|Get NW .
    (снизит нагрузку на сеть)
    Или используйте это ТЫК

Дополнение Без названия
SH часть
Каждые 30 секунд, у игрока в бане будет писать
image
при покупке разбана
image

цена разбана расчитывается по формуле (Остаток Времени бана)/60 * Цена 1 минуты

Переменные:

PayTime – цена 1 минуты
Изначально 1

TimeMin – если у игрока время бана меньше этого значения значит ему нельзя купить разбан и не будет писать про это в чат.
Изначально 1

delete_me.lua (3,0 КБ)

чет не работает(

[sam-149] addons/sam-149/lua/sam/modules/gban_new.lua:302: attempt to call method ‘sam_getrank’ (a nil value)

  1. GiveBanPlayer - addons/sam-149/lua/sam/modules/gban_new.lua:302
  2. on_execute - addons/sam-149/lua/sam/modules/gban_new.lua:760
    3. run_command - addons/sam-149/lua/sam/command/sv_command.lua:130
    4. unknown - addons/sam-149/lua/sam/command/sv_command.lua:173
    5. unknown - lua/includes/modules/concommand.lua:54

[sam-149] addons/sam-149/lua/sam/modules/gban_new.lua:302: attempt to call method ‘sam_getrank’ (a nil value)

  1. GiveBanPlayer - addons/sam-149/lua/sam/modules/gban_new.lua:302
  2. on_execute - addons/sam-149/lua/sam/modules/gban_new.lua:760
    3. run_command - addons/sam-149/lua/sam/command/sv_command.lua:130
    4. unknown - addons/sam-149/lua/sam/command/sv_command.lua:173
    5. unknown - lua/includes/modules/concommand.lua:54

скачай последнюю версию sam-153

вот проблема хоть и установла версия sam 153
[sam-153] addons/sam-153/lua/sam/modules/gban.lua:304: attempt to call method ‘sam_getrank’ (a nil value)

  1. GiveBanPlayer - addons/sam-153/lua/sam/modules/gban.lua:304
  2. on_execute - addons/sam-153/lua/sam/modules/gban.lua:762
    3. run_command - addons/sam-153/lua/sam/command/sv_command.lua:134
    4. unknown - addons/sam-153/lua/sam/command/sv_command.lua:177
    5. unknown - lua/includes/modules/concommand.lua:54

У другого человека ранее был sam-149, а то, что у вас sam-153, и всё равно возникает ошибка, я не знаю… Возможно, вы изменили настройки администрирования sam, и что-то пошло не так, так как у меня всё в порядке.

проблема в 149+ версий
Автор резко перескочил с функции Player(1):sam_getrank()
на стандартную (переделанную) Player(1):GetUserGroup() и не только.

а я соотвественно тестировал на 143.

Обновил Gban создав нужную функцию (что бы не лишать поддержку старых sam)

Что делать если после перезахода на сервер бан слетает. Дал челу 1 день, он перезашел и бана у него нет

Ошибок в консоли нет? Проверяй логи.
Позже проверю систему бана.

Обновил.

Уже исправил, просто надо было в sv.bd добавить gban. Спасибо за обратную связь!

Происходит когда юзаю любую команду от DARKRP(darkrp setmoney):

[[adm]sam] addons/[adm]sam/lua/sam/modules/gban_new.lua:630: attempt to call method 'IsGBan' (a nil value)
  1. v - addons/[adm]sam/lua/sam/modules/gban_new.lua:630
   2. Call - lua/includes/modules/hook.lua:96
    3. callback - gamemodes/darkrp/gamemode/modules/chat/sv_chat.lua:38
     4. unknown - gamemodes/darkrp/gamemode/modules/chat/sv_chat.lua:327
      5. unknown - lua/includes/modules/concommand.lua:54

есть идеи как чинить?

Я сейчас на работе, фикс выкачу ~1.5ч

Я понял в чём проблема. Скорее в том что я юзаю команду от даркрп через консоль сервера, вот и еррорит
Если не сложно дай примерное решение сей сути проблемы, буду благодарен.
Вот строка ошибки:

hook.Add('canChatCommand', 'GBan.RestrictHook', function(pl) if pl:IsGBan() then return false end end)
    hook.Add("SAM.CanRunCommand",'GBan.RestrictHook',function(pl)
            if not IsValid(pl) then return end
            if pl:IsGBan() then return false end
        end)

обновил.

[sam-153] addons/sam-153/lua/sam/modules/gban.lua:211: attempt to call method ‘sam_getrank’ (a nil value)

  1. v - addons/sam-153/lua/sam/modules/gban.lua:211
  2. hook_Run - lua/includes/modules/hook.lua:96
    3. GiveBanPlayer - addons/sam-153/lua/sam/modules/gban.lua:342
    4. on_execute - addons/sam-153/lua/sam/modules/gban.lua:804
    5. run_command - addons/sam-153/lua/sam/command/sv_command.lua:134
    6. unknown - addons/sam-153/lua/sam/command/sv_command.lua:177
    7. unknown - lua/includes/modules/concommand.lua:54

А скачать новую версию не судьба?

У меня 153

Добавь пж забаненных гбаном в список банов от сама. Или где то в другом месте можно чекать?

Последнюю версию gban