[Урок] Anti-Lagger или что-то похожее - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Phoenixxx_Czar, Getbackthere, [CM]OlegEhtler  
[Урок] Anti-Lagger или что-то похожее
Princess__ Дата: Среда, 04.05.2016, 14:43 | Сообщение # 1
Новичок
Сообщений: 21
Статус: Offline
Автор - Eth / Редактировал - Princess__
Original - CLICK HERE


Данная система кикает игрока если его PacketLoss > 1 (вы можете настроить сами)
Начнем.
К #define добавляем
Код
#define MAX_PL   1.0  /* Максимальное значение, меняйте под себя */

#define     COLOR_LAGGER        0x75F0ACAA /* Цвет который будет использоваться */

Ко всем forward's добавим
Код
forward CheckStats();


В OnGameModeInit добавим таймер

Код
SetTimer("CheckStats", 1000, true);


Теперь в конец мода вставим паблик CheckStats

Код
public CheckStats()
{
    for (new i = 0; i != MAX_PLAYERS; ++ i)
    {
  if (IsPlayerConnected(i))
  {
   if(GetPlayerPacketLoss(i) > MAX_PL)
   {
    new string[257];
    format(string,sizeof(string),"[WARNING]: %s был отсоединен от сервера. Причина: High Packet Loss",GetName(i));
    ABroadCast(COLOR_LIGHTRED,string,1);
    ShowPlayerDialog(i,0,DIALOG_STYLE_MSGBOX,"Анти-Лаггер","{FFFFFF}- Вы были кикнуты из-за большого процента потери пакетов\n\t{ff0000}Возможные причины:{ffffff}\n\t1. Маленькая скорость интернет-соединения.\n\t2. Ошибка на игровом хостинге/DDoS аттака на сервер\n\t3. 'Грязная' версия GTA:SA\n\t{2E9E1F}Решение проблемы:{ffffff}\n\t1. Перезагрузить роутер/ожидать когда связь наладиться\n\t2. Ожидать новостей в группе VK\n\t3. Переустановить GTA:SA","X","");
    Kick(i);
   }
  }
    }
    return 1;
}


И stock функции GetPlayerPacketLoss
Код
forward Float:GetPlayerPacketLoss(playerid);
stock Float:GetPlayerPacketLoss(playerid) {

    new stats[401], stringstats[70];
    GetPlayerNetworkStats(playerid, stats, sizeof(stats));
    new len = strfind(stats, "Packetloss: ");
    new Float:packetloss = 0.0;
    if(len != -1) {
  strmid(stringstats, stats, len, strlen(stats));
  new len2 = strfind(stringstats, "%");
  if(len != -1) {
   strdel(stats, 0, strlen(stats));
   strmid(stats, stringstats, len2-3, len2);
   packetloss = floatstr(stats);
  }
    }
    return packetloss;
}




Сообщение отредактировал Princess__ - Среда, 04.05.2016, 14:51
●Black_Day● Дата: Суббота, 07.05.2016, 14:53 | Сообщение # 2
Боец
Сообщений: 83
Статус: Offline
Полезный урок,спасибо автору темы )

© 2009-2016 CM для всех
MILLIGAN4Ik Дата: Суббота, 07.05.2016, 14:56 | Сообщение # 3
Новичок
Сообщений: 12
Статус: Offline
Спасибо все норм !

10 дней на CM [✖] 10 репутации на CM [✖] Новичок [✓]
25 дней на CM [✖] 25 репутации на CM [✖] Любитель [✖]
50 дней на CM [✖] 50 репутации на CM [✖] Боец [✖]
100 дней на CM [✖] 100 репутации на CM [✖] Боец(х2) [✖]
250 дней на CM [✖] 250 репутации на CM [✖] Бывалый [✖]
500 дней на CM [✖] 500 репутации на CM [✓] Знаток [✓]
600 дней на CM [✖] 600 репутации на CM [✓] Советник [✖]
800 дней на CM [✖] 800 репутации на CM [✖]] Авторитет [✖]
900 дней на CM [✖] 900 репутации на CM [✖] Легенда [✖]
1000+ дней на CM [✖] 1000+ репутации на CM [✖] Cheat-master [✖]
Princess__ Дата: Среда, 11.05.2016, 10:30 | Сообщение # 4
Новичок
Сообщений: 21
Статус: Offline
Пользуйтесь
LgorBro Дата: Пятница, 13.05.2016, 21:56 | Сообщение # 5
Боец
Сообщений: 61
Статус: Offline
Cпасибо,урок очень полезный


HeavenMasteR Дата: Воскресенье, 05.06.2016, 16:51 | Сообщение # 6
Боец
Сообщений: 64
Статус: Offline
Спасибо автор молодец )
  • Страница 1 из 1
  • 1
Поиск: