[Include] Система блокировки - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Phoenixxx_Czar, Getbackthere, [CM]OlegEhtler  
[Include] Система блокировки
Herro[CM] Дата: Среда, 09.09.2015, 21:29 | Сообщение # 1
Бывалый
Сообщений: 425
Статус: Offline

Функции:
Код

GetDotDecimalIP (IP: IP) - Возвращает строку, содержащую IP
IP: GetIntegerIP (IP []) - Преобразование IP строку в десятичное в целое IP.
GetStringFromDuration - Преобразование секунд в дни, часы, минуты.
GetUnixTimestamp () - Возвращает текущую метку времени.
BanIP(IP:ip, duration = DURATION_PERMANENT) - Запрет IP, продолжительность в секундах.
BanIPRange(IPRange:range, duration = DURATION_PERMANENT) - тоже самое но для диапазона IP.
BanPlayer  (iPlayer, iDuration = DURATION_PERMANENT) - Бан игроков по их IP.
LiftBan (ban_index) - Удалить бан.
GetIPBanIndex(IP:ip)
GetIPBanIndex(ip[]) - Показывает информацию о блокировках по IP.
GetPlayerBanIndex(playerid) - Тоже самое но по ID
GetIPRange(ip[], ip[]) - вроде ищет блокировки между диапазоном IP.
IsIPInRange(IP:ip, IPRange:range) - Возвращает истину, если IP-(1-й аргумент) находится внутри диапазона IP (2-й аргумент).
SetBanInfoInt(ban_index, key[], value)
SetBanInfoFloat(ban_index, key[], Float:value) - Можно задать значения, связанные с индексами запрета (например, причине, идентификатор пользователя и т.д.).
SetBanInfoString(ban_index, key[], value[])
GetBanInfoInt(ban_index, key[])  - Считываю информацию с SetBanInfo
GetBanInfoFloat(ban_index, key[])
GetBanInfoString(ban_index, key[])
GetBanInfoStringCopy(ban_index, key[], destination[])



Пример: Проверка игрока на блокировку ip.

Код
public OnPlayerConnect(playerid) {
  new ban = GetPlayerBanIndex(playerid);
   
  if (ban) {
   new message[128];
    
   if (GetBanType(ban) == BAN_TYPE_RANGE)
    format(message, 128, "Ваш IP находится в диапазоне запрещенных IP адресов, Причина:  %s", GetBanInfoString(ban, "reason"));
   else
    format(message, 128, "*Вы забанены по причине: %s", GetBanInfoString(ban, "reason"));
    
   SendClientMessage(playerid, 0xCC0000FF, message);
    
   format(message, 128, "Доступ будет разблокирован через:  %s.", GetStringFromDuration(GetBanInfoInt(ban, "time_left")));
   SendClientMessage(playerid, 0xCC0000FF, message);
    
   Kick(playerid);
    
   return 0;
  }
   
  return 1;
}


Include:
Код

Макросы:
Код

IP(x.x.x.x) - Дает целое IP.
IP_RANGE - Дает диапазон IP адресов.
IP_OCTET (IP (127.0.0.1),  - Выдаст 127
DURATION - Срок блокировки
LOOP_IP_BANS(ban_index : IP:ip)
LOOP_IP_BANS(ban_index : ip[])
LOOP_IP_BANS(new ban_index : IP:ip)
LOOP_IP_BANS(new ban_index : ip[])
LOOP_PLAYER_BANS(ban_index : playerid)
LOOP_PLAYER_BANS(new_ban_index_:_playerid)


Автор: Slice


Когда нет знания, есть мнение.
Surex Дата: Суббота, 02.07.2016, 14:03 | Сообщение # 2
Боец
Сообщений: 137
Статус: Offline
полезно

Плисс Дата: Вторник, 19.07.2016, 20:42 | Сообщение # 3
Боец
Сообщений: 70
Статус: Offline
Кросс
  • Страница 1 из 1
  • 1
Поиск: