Как работают?

Сообщения
72
Реакции
10
Привет.
Как работают разбаны, размуты и подобные вещи?
Тоесть: у меня есть дата:время бана, добавляем к ней срок бана получается дата:время разбана.
Как работает разбан?

Варианты:

  • Когда нужно сверяем текущую дата:время с дата:время разбана и разбаниваем/не разбаниваем(например при входе игрока на сервер)
  • Таймер который каждую секунду сверяет текущую дата:время с дата:время разбана для каждого забаненого игрока. (это какая-то "ебала", но все же вариант :D)

Или поведайте мне пожалуйста как это еще может работать?
 
Сообщения
14
Реакции
9
Наверное так:
Подключение - запись в бд - выдача бана - запись в бд ток в отдельную таблицу - сверяешь время разбана из таблицы в бд с датой или временем - коннект игрока если время разбана совпадает или дата и время больше времени разбана
Ну или не коннект игрока, а там размут и т.д
 
Сообщения
8
Реакции
10
В случае с баном, то при входе обращаться к бд (один из вариантов) и получать время разбана в unix и через get_systime() сравнить
Если мут, то таском и пробегаться по игрокам
 
Сообщения
197
Реакции
16
Помог
1 раз(а)
бан - проверять при коннекте, если время бана меньше чем get_gametime(), то разбаниваем (можно исключить 0 для перманентного бана)
мут - в плагининит запускать таймер, при входе игрока выгружать секунды мута (если использовать unixtime, то немного иначе всё) и таймером отнимать, если <= 0 - снимать мут и удалять запись из базы. после выхода игрока, если мут ещё остался, то обновлять время в базе.
p.s mysql взял для примера
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу