[Урок] Anti-Lagger или что-то похожее
|
|
Princess__ |
Дата: Среда, 04.05.2016, 14:43 | Сообщение # 1
|
Новичок
Сообщений: 21
Статус: Offline
|
Данная система кикает игрока если его PacketLoss > 1 (вы можете настроить сами) Начнем. К #define добавляем
Код #define MAX_PL 1.0 /* Максимальное значение, меняйте под себя */
#define COLOR_LAGGER 0x75F0ACAA /* Цвет который будет использоваться */ Ко всем forward's добавим
В 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
|
Спасибо автор молодец )
|
|
|
|