Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

5 страниц V   1 2 3 4 »

Ping Control 0.1.5. Обновлённая версия от 01.04.2014 от trollface (Оптимизированный Ping Control ожил)

, Закачик: intercs. Автор: Freedo.m. Обновление от trollface.
Safety1st
сообщение 15.12.2013, 22:49
Сообщение #21
Стаж: 12 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Цитата(intercs @ 16.12.2013, 0:25) *
Это в этой версии с баном на 5 мин.?
Если да, то прикреплю и версию с баном+логи в первый пост.

Только лог, что ты)

А насчёт бана - мысли интересные!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя intercs
сообщение 15.12.2013, 22:53
Сообщение #22


Стаж: 11 лет

Сообщений: 727
Благодарностей: 408
Полезность: 504

Цитата(Safety1st @ 16.12.2013, 0:49) *
Только лог, что ты)

А насчёт бана - мысли интересные!



Я хз, ты меня запутал как девченку из 7Б-)))
Делай с плагином, что хочешь, прикреплю выше-)
Главное его ещё можно пооптимизировать наверное-)))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
kreat1ff
сообщение 8.2.2014, 2:45
Сообщение #23
Стаж: 13 лет

Сообщений: 1780
Благодарностей: 640
Полезность: 0

с редиректом я бы взял) у меня на серверах локация фиговая...пусть кидало бы где получше)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 8.2.2014, 8:44
Сообщение #24
Стаж: 10 лет

Сообщений: 4755
Благодарностей: 3837
Полезность: 693

посмотрел я исходник, честно говоря я бы не стал так писать, во первых начало проверок начинаются в plugin init
это глупо потому что пинг проверяется на игроках а не на обьектах карты, соответственно если игроков нет, то проверки тоже будут происходить, а тебе ведь нужна максимальная оптимизация.
стоило бы как и у всех делать проверку именно по ID игрока, а не делать по ВСЕМ игрокам цикл. и начинать проверку нужно только после 10 секунд игрока входа на сервер. так как сами знаете - мотд окна и повышение пинга в начале входа на серв. во вторых
зачем делать цикл по всем игрокам а потом проверять валид или нет, когда лучше взять get players и получить сразу живых игроков и сделать цикл по ним
зачем юзать уникальный идентификатор задачи, ...не выключая ее



Скрытый текст
#define BIT_VALID(%1,%2) ((%1) & (1 << ((%2) - 1)))
#define BIT_ADD(%1,%2) ((%1) |= (1 << ((%2) - 1)))
#define BIT_SUB(%1,%2) ((%1) &= ~(1 << ((%2) - 1)))
#define BIT_NOT_VALID(%1,%2) (~(%1) & (1 << ((%2) - 1)))

#define _BIT_VALID(%1,%2) ((%1) & (1 << (%2)))
#define _BIT_ADD(%1,%2) ((%1) |= (1 << (%2)))
#define _BIT_SUB(%1,%2) ((%1) &= ~(1 << (%2)))
#define _BIT_NOT_VALID(%1,%2) (~(%1) & (1 << (%2)))



человек тупо скопировал макросы из которых используется 1-2 остальные вообще мертвым грузом лежат.

Отредактировал: csnet, - 8.2.2014, 9:01


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя intercs
сообщение 22.3.2014, 22:57
Сообщение #25


Стаж: 11 лет

Сообщений: 727
Благодарностей: 408
Полезность: 504

Скачать версию можно в 1 сообщении данной темы (там ссылка на новую версию, не нагружающую сервер проверками на пинг ежесекундно), спасибо csnet за его идеи и помощь:
Ping Check 1.0. Обновлённая версия от 23.03.2014 от csnet (Бывший Ping_Control), Закачик: intercs. Бывший автор: Freedo.m. Новая версия от сsnet.


Ping Check
Версия: 1.0

О заказчике, авторе и тд.
Закачик плагина: intercs.
Автор: csnet
Идея оптимизации бывшего Ping_Control = Сообщение #24 от csnet

Сcылка на заказы от intercs, где можно отследить ход заказов и ссылку на готовые заказы: https://c-s.net.ua/forum/topic52524s0.html

ОПИСАНИЕ Ping Check:

1) Проверяет глобально пинг+пакеты loss за счет get_user_ping.
2) Автоматически в зависимости от настроек за количество предупреждений кикает или перенаправляет на свой другой сервер игрока с высоким пингом.
3) Присутствует наличие иммунитета по флагу (флаг по умолчанию: b) от проверки пинга.
4) Данный плагин уникален тем, что выбрана простейшая проверка на пинг, тем самым мы разгружаем сервер от ежесекундных проверок всех игроков на высокие пинги.
5) Уникальность заключается в простоте, за счет настроек в исходнике, а именно есть 2 режима (одновременно использовать не советуем):
- Для PUBLIC проверка и наказание за высокий пинг производится в конце раунда, что максимально снижает нагрузку на сервер.
- Для DM проверка и наказание за высокий пинг производится в момент убийства/захода в спектр/слея админом игрока у которого высокий пинг, что максимально снижает нагрузку на сервер.
Примечание: но оба режима использовать одновременно не советуем... Или раскоментировать для паблика с концами раундов или же раскоментировать только для ДМ с убийствами, т.к. на ДМ бесконечный раунд...


Настройка (внутри исходника):

#define ACCESS_LEVEL_IMMUNITY ADMIN_RESERVATION // Уровень доступа позволяющий пропускать проверку на пинг (флаг по умолчанию: b) .
#define MAX_ALLOWED_PING 150 // Максимально допустимый пинг и за превышение этого значения игрока в зависимости от настроек выкинет или перенаправит.
#define MAX_WARNING_CHECK 1 // Количество концов раунда или убийства/захода в спектр/слея админом игрока у которого высокий пинг, за которое последует кик или перенаправление. Советуем выставить 1, чтоб особо не мучать игрока временем игры с его нестабильным соединением.
#define use_public // Для PUBLIC проверка и наказание за высокий пинг производится в конце раунда, что максимально снимает нагрузку на сервер. Режим по умолчанию раскомнтирован = активирован.
//#define use_dm // Для DM проверка и наказание за высокий пинг производится в момент убийства/захода в спектр/слея админом игрока у которого высокий пинг, что максимально снимает нагрузку на сервер. По умолчанию закоментирован = не активен.
//#define IP_REDIRECT "127.0.0.1:27015" // Ип-адрес и порт сервера на который будет происходить перенаправление. По умолчанию выключенно, за счет закоментированности //, т.к. напоминаем, что многие мониторинги не любят сервера с перенаправлением и могут забанить ваш серв за такие хитрости, поэтому данная функция по умолчанию выключенна и производится просто кик с оповещением о кике за высокий пинг.


Дополнительно: плагин, по возможности, будет ещё максимальнее оптимизироваться, хотя куда уж дальше, но будем стараться ещё максимальнее.

Просьба по оплате (пожертвования): Я не из бедных, но т.к. обещал, что если никто не хочет скидываться и я без проблем сам оплачу полную сумму за заказ, то данные приватные плагины будут только тогда для себя. Но совесть поборола жадность и ради форумчан я готов делиться, но и от вас жду вместо 1 спасибо, копеечку и за счет этих копеечек будет стимул и дальше развивать нужные и максимально снижающие нагрузку на сервер заказы для всех. sos.gif А именно:

Номер кошелька Яндекс-деньги: 410011718322439
WebMoney Кошелек в Российских Рублях: R301235329004
WebMoney Кошелек в Украинских Гривнах: U278467755263
WebMoney Кошелек в Белорусских руб.: B189503728199
WebMoney Кошелек в Долларах США: Z499502426847
WebMoney Кошелек в Евро: E691436607738

Данное пожертвование будет идти на ещё более супероптимизационные идеи (плагины) с выдачей процента авторам (исполнителям) заказа с целью их стимулирования к выполнению увлекательных заказов!
Не жадничайте... В планах уйма заказов.

Отредактировал: intercs, - 8.7.2014, 17:56
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 4 раз
   + Цитировать сообщение
Статус пользователя csnet
сообщение 22.3.2014, 23:02
Сообщение #26
Стаж: 10 лет

Сообщений: 4755
Благодарностей: 3837
Полезность: 693

проверка в дм производится только в момент смерти, что на дм серверах примерно равняется частоте проверки в старом плагине от freedom ( 1 раз в 5 сек )
на дм серверах ты умираешь с частотой от 5 до 15 секунд в среднем
спектры проверяются только в public режиме

Отредактировал: csnet, - 22.3.2014, 23:06


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя intercs
сообщение 22.3.2014, 23:03
Сообщение #27


Стаж: 11 лет

Сообщений: 727
Благодарностей: 408
Полезность: 504

Цитата(csnet @ 23.3.2014, 1:02) *
проверка в дм производится только в момент смерти, что на дм серверах примерно равняется частоте проверки в старом плагине от freedom ( 1 раз в 5 сек )
на дм серверах ты умираешь с частотой от 5 до 15 секунд в среднем
спектры проверяются только в public режиме


Угу подправил описание. Пусть люди наслаждаются теперь уникальным разгрузочным кик/редирект пингером и я тоже, т.к. нет смысла мучать сервер каждыми 5-ти секундными проверками пробежкой по всем игрокам-) Спасибо тебе csnet. fly.gif

Кстати, чет упустили воплощение о блокировке от реконнекта игрока, ну там сек. 10 войти не может и ему пишет, мол нельзя вот так просто взять и перезайти на сервер...

Отредактировал: intercs, - 22.3.2014, 23:17
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя csnet
сообщение 22.3.2014, 23:18
Сообщение #28
Стаж: 10 лет

Сообщений: 4755
Благодарностей: 3837
Полезность: 693

Цитата
Кстати, чет упустили воплощение о блокировки от реконнекта игрока...




пусть ставят antireconnect другим плагином .... их навалом в инете


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя intercs
сообщение 22.3.2014, 23:20
Сообщение #29


Стаж: 11 лет

Сообщений: 727
Благодарностей: 408
Полезность: 504

Цитата(csnet @ 23.3.2014, 1:18) *
пусть ставят antireconnect другим плагином .... их навалом в инете


Да я к тому, что мне бы тоже не помешало, т.к. влом ставить каждый раз одни и теже плагины, если можно засунуть эти функции в один-)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя stop4ik
сообщение 23.3.2014, 11:25
Сообщение #30
Стаж: 11 лет

Сообщений: 252
Благодарностей: 11
Полезность: < 0

server_cmd("kick #%d Р’С‹ были кикнуты РёР·-Р В·Р В° плохого соединения", get_user_userid(i)) можно эту строчку на русском ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя intercs
сообщение 23.3.2014, 13:23
Сообщение #31


Стаж: 11 лет

Сообщений: 727
Благодарностей: 408
Полезность: 504

Цитата(stop4ik @ 23.3.2014, 13:25) *
server_cmd("kick #%d Р’С‹ были кикнѺты РёР·-Р В·Р В° плохого соединения", get_user_userid(i)) можно эту строчку на русском ?


Нужно... Прошлую версию сохранили без УТФ-8 без Бом.

Скрытый текст
Список изменений, исправленийСписок изменений, исправлений = v1.1 от 23.03.2014:
1) Добавлена блокировка реконнекта игроков и по дефолту выставлено значение в 10 сек.
#define MAX_SECONDS 10.0 // Анти-реконнект секунд для захода на сервер.
Прикрепленное изображение

Скачать новую версию можно с 1 поста данной темы.


Пока не качайте, мы дофиксим, т.к. обнаружены недочеты, связанные с ложным обнаружением реконнета...

Отредактировал: intercs, - 23.3.2014, 13:55
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя stop4ik
сообщение 23.3.2014, 16:28
Сообщение #32
Стаж: 11 лет

Сообщений: 252
Благодарностей: 11
Полезность: < 0

Цитата(intercs @ 23.3.2014, 14:23) *
Нужно... Прошлую версию сохранили без УТФ-8 без Бом.

Скрытый текст
Список изменений, исправленийСписок изменений, исправлений = v1.1 от 23.03.2014:
1) Добавлена блокировка реконнекта игроков и по дефолту выставлено значение в 10 сек.
#define MAX_SECONDS 10.0 // Анти-реконнект секунд для захода на сервер.
Прикрепленное изображение

Скачать новую версию можно с 1 поста данной темы.


Пока не качайте, мы дофиксим, т.к. обнаружены недочеты, связанные с ложным обнаружением реконнета...


нет как раз без bom, у меня в браузере такая фигня, я код скопировал и вставил, все равно такая ерунда
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
urpok
сообщение 23.3.2014, 17:39
Сообщение #33
Стаж: 11 лет

Сообщений: 890
Благодарностей: 164
Полезность: 0

Цитата(intercs @ 23.3.2014, 15:23) *
Пока не качайте, мы дофиксим, т.к. обнаружены недочеты, связанные с ложным обнаружением реконнета...


Сообщите когда допилите... ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя BURZUM001
сообщение 26.3.2014, 22:23
Сообщение #34
Стаж: 11 лет

Сообщений: 144
Благодарностей: 5
Полезность: < 0

intercs,
Можно добавить строку в чат всем, что игрока "НИКНЕЙМ" кикнуло за высокий пинг?
ато непонятно - толи сам вышел, толи кикнуло за пинг, инфы то нет...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 26.3.2014, 22:59
Сообщение #35
Стаж: 10 лет

Сообщений: 4755
Благодарностей: 3837
Полезность: 693

Код:

new name[32]

public check_ping(i)
{

get_user_ping(i, Ping, Loss)

if(Ping > MAX_ALLOWED_PING)
{
if(warns[i]++ >= MAX_WARNING_CHECK)
{
get_user_name( i, name , charsmax(name))
#if defined REDIRECT
client_cmd(i, "^"CoNnEcT^" %s", IP_REDIRECT);
client_print( 0, 3, "Client %s was redirected because of high ping" , name )
#endif
client_print( 0, 3, "Client %s was kicked because of high ping" , name )
server_cmd("kick #%d Вы были кикнуты из-за плохого соединения", get_user_userid(i))
}
}
}


кодировки и перевод сами исправите

Отредактировал: csnet, - 26.3.2014, 23:03


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Mikasa
сообщение 29.3.2014, 20:41
Сообщение #36
Стаж: 10 лет

Сообщений: 612
Благодарностей: 260
Полезность: 0

Меценат Меценат

Цитата
#define MAX_WARNING_CHECK 1 // Количество концов раунда или убийства/захода в спектр/слея админом игрока у которого высокий пинг, за которое последует кик или перенаправление. Советуем выставить 1, чтоб особо не мучать игрока временем игры с его нестабильным соединением.

Объясните по другому значение макроса.

Цитата
#define MAX_SECONDS 10.0 // Анти-реконнект секунд для захода на сервер.

Вообще в исходнике не нашёл.

Цитата
#define CHECK(%0) (get_user_flags(%0) & ACCESS_LEVEL_IMMUNITY || is_user_bot(%0))

Зачем? Вот только не говорите, что это быстрее работает.

Отредактировал: TouchDev1l, - 29.3.2014, 20:41
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
trollface
сообщение 29.3.2014, 22:11
Сообщение #37
Стаж: 10 лет

Сообщений: 1970
Благодарностей: 2423
Полезность: 0

TouchDev1l,
#define MAX_WARNING_CHECK 1
как я понял игрока кикнет как только закончится кол-во раундов, указанное в дефайне либо кол-во переходов в спектр...

если не так, то поправьте, пожалуйста

intercs,
ай не ври...
Цитата
Проверяет глобально пинг+пакеты loss за счет get_user_ping.

LOSS данный плагин не проверяет....
беспонтовая переделка.
проверка в конце раунда. ыыы

вы серьезно думаете что task сильно нагружает сервер?
таск не несет нагрузки... то что он тратит десяток тактов у проца это не нагрузка. ваши циклы в разы больше тратят...
не занимайтесь фигней.


Цитата
поэтому данная функция по умолчанию выключенна и производится просто кик с оповещением о кике за высокий пинг.

а если включить редирект то появятся ошибки, что вы пытаетесь кикнуть того, кого нет на сервере
или юзать Код:
#else
в условия дефайна не судьба?:)

Отредактировал: trollface, - 29.3.2014, 22:18
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 9iky6
сообщение 30.3.2014, 0:20
Сообщение #38


Стаж: 12 лет

Сообщений: 143
Благодарностей: 47
Полезность: 260

Максимально снизить нагрузку... LOL....

Код:
#define MAX_ALLOWED_PING 5

public check_ping(i)
{
if(is_user_alive(i)) return;
get_user_ping(i, Ping, Loss)
if(Ping > MAX_ALLOWED_PING)
{
if(warns[i]++ >= MAX_WARNING_CHECK)
{
#if defined REDIRECT
client_cmd(i, "^"\n^";^"connect^" %s", IP_REDIRECT);
#else
server_cmd("kick #%d Вы были кикнуты из-за плохого соединения", get_user_userid(i))
#endif
}
}
check_ping(i);
}


Да и хуже не будет, если сделать 1 таск который быстро прочекает всех игроков, чем для каждого запускать функцию. 32 функции либо 1 таск.

P.S. В этой гонке победой будет усиление нагрузки на сервер. Смотрите, когда всё будет крашиться - будет поздно ворочать потраченные на всё это деньги. Если интерисует => могу дать хорошый вариант, который я делал на основе прошлой версии. В общем счете делает 15 проверок (MAX_WARNING_CHECK*3), полторы минуты. Больше плагин игрока не трогает (если он нормальный, тут же чекается всю игру!!! LOL). Редирект работать будет на стим и нон-стим (не хакинг. Просто руки прямые). Никогда не будет проблем никаких.

Отредактировал: 9iky6, - 30.3.2014, 0:41
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя csnet
сообщение 30.3.2014, 1:11
Сообщение #39
Стаж: 10 лет

Сообщений: 4755
Благодарностей: 3837
Полезность: 693

часть была взята просто с предыдущего исходника. я лишь предложил другой вариант проверки


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 30.3.2014, 2:17
Сообщение #40
Стаж: 10 лет

Сообщений: 4755
Благодарностей: 3837
Полезность: 693

тогда все верно
делаем какой нибудь
putinserver и чекаем игрока первые 2 минуты дальше не трогаем
ты прав
ps.gif одна голова хорошо а две лучше

Отредактировал: csnet, - 30.3.2014, 2:18


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
5 страниц V   1 2 3 4 »
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: