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

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

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

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

5 страниц V  « 4 5

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

, Закачик: intercs. Автор: Freedo.m. Обновление от trollface.
Статус пользователя ThePhoenix
сообщение 14.8.2015, 15:35
Сообщение #81


Стаж: 11 лет

Сообщений: 2723
Благодарностей: 533
Полезность: 40

Может кто-то выпилить с исходника весь колорчат и имунку от кика?
исходник:
Cкрытый текст
Код
[pawn]#include <amxmodx>

#define ACCESS_LEVEL_IMMUNITY ADMIN_RESERVATION // Уровень доступа позволяющий пропускать проверку на пинг.
#define MAX_ALLOWED_PING 150 // Максимально допустимый пинг, превышение этого значения выкидывает игрока с сервера.
#define MAX_ALLOWED_LOSS 101 // Максимально допустимая потеря пакетов loss, превышение этого значения выкидывает игрока с сервера (101 = отключено по умолчанию, т.к. потеря пакетов не может быть больше 100).
#define MAX_WARNING_CHECK 3 // Количество предупреждений после которых последует наказание.
#define INTERVAL_CHECK 10.0 // Интервал между проверками, чем меньше значение, тем больше нагрузка на сервер.
#define CHECK_COUNT 3 // Количество проверок определенного игрока, после 3-х проверок игрока не будет проверять (снижаем еще максимальнее и без того итак маленькую нагрузку xD )

#pragma semicolon 1

#define MAX_PLAYERS 32
#define TASK_PING_CHECK 242984

#define BIT_VALID(%1,%2) (%1 & (1 << (%2 & 31)))
#define BIT_ADD(%1,%2) %1 |= (1 << (%2 & 31))
#define BIT_SUB(%1,%2) %1 &= ~(1 << (%2 & 31))

new g_iBitClientValid, g_iWarning[MAX_PLAYERS + 1];
new g_iMaxPlayers, g_iCountCheck[MAX_PLAYERS + 1];

public plugin_init()
{
   register_plugin("Ping Control", "0.1.5", "Freedo.m | neygomon");
   g_iMaxPlayers = get_maxplayers();
   set_task(INTERVAL_CHECK, "PingCheck", TASK_PING_CHECK, _, _, "b");
}

public client_putinserver(id)
{
   if(get_user_flags(id) & ACCESS_LEVEL_IMMUNITY || is_user_bot(id) || is_user_hltv(id)) return;
   g_iWarning[id] = 0;
   g_iCountCheck[id] = 0;
   BIT_ADD(g_iBitClientValid, id);
}

public client_disconnect(id) BIT_SUB(g_iBitClientValid, id);

public PingCheck()
{
   static i, iPing, iLoss;
   for(i=1; i <= g_iMaxPlayers; i++)
   {
      if(BIT_VALID(g_iBitClientValid, i) && get_user_ping(i, iPing, iLoss))
      {
         if(g_iCountCheck[i] < CHECK_COUNT)
         {
            if(iPing > MAX_ALLOWED_PING || iLoss > MAX_ALLOWED_LOSS)
            {
               if(++g_iWarning[i] >= MAX_WARNING_CHECK)
               {
                  //log_to_file("ping_control.log", "Ping: %d | Loss: %d", iPing, iLoss);
                  static name[32];
                  get_user_name(i, name, charsmax(name));
                  #if AMXX_VERSION_NUM < 183
                     client_print(0, print_chat, "[PingControl] %s был удален с сервера за плохое соединение!", name);
                  #else
                     client_print_color(0, 0, "^1[^4PingControl^1] ^3%s ^1был удален с сервера за плохое соединение!", name);
                  #endif
                  server_cmd("kick #%d ^"Вы были кикнуты из-за плохого соединения^"", get_user_userid(i));            
                
               }
            }  
            else if(g_iWarning[i]) g_iWarning[i]--;
            g_iCountCheck[i]++;
         }  
      }
   }
}[/pawn]

Буду благодарен :)

Отредактировал: ThePhoenix, - 14.8.2015, 15:36
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Norman111
сообщение 14.8.2015, 16:16
Сообщение #82


Стаж: 13 лет

Сообщений: 328
Благодарностей: 230
Полезность: 403

Не понимаю таких людей. Попросить помощи на форуме автора плагина вообще никак?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ThePhoenix
сообщение 14.8.2015, 16:22
Сообщение #83


Стаж: 11 лет

Сообщений: 2723
Благодарностей: 533
Полезность: 40

Как бы автор Freedo.m :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Norman111
сообщение 14.8.2015, 16:23
Сообщение #84


Стаж: 13 лет

Сообщений: 328
Благодарностей: 230
Полезность: 403

Как бы обновление от Неугомона :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Norman111
сообщение 14.8.2015, 16:29
Сообщение #85


Стаж: 13 лет

Сообщений: 328
Благодарностей: 230
Полезность: 403

На Код:
#include <amxmodx>

#define MAX_ALLOWED_PING 150 // Максимально допустимый пинг, превышение этого значения выкидывает игрока с сервера.
#define MAX_ALLOWED_LOSS 101 // Максимально допустимая потеря пакетов loss, превышение этого значения выкидывает игрока с сервера (101 = отключено по умолчанию, т.к. потеря пакетов не может быть больше 100).
#define MAX_WARNING_CHECK 3 // Количество предупреждений после которых последует наказание.
#define INTERVAL_CHECK 10.0 // Интервал между проверками, чем меньше значение, тем больше нагрузка на сервер.
#define CHECK_COUNT 3 // Количество проверок определенного игрока, после 3-х проверок игрока не будет проверять (снижаем еще максимальнее и без того итак маленькую нагрузку xD )

#pragma semicolon 1

#define MAX_PLAYERS 32
#define TASK_PING_CHECK 242984

#define BIT_VALID(%1,%2) (%1 & (1 << (%2 & 31)))
#define BIT_ADD(%1,%2) %1 |= (1 << (%2 & 31))
#define BIT_SUB(%1,%2) %1 &= ~(1 << (%2 & 31))

new g_iBitClientValid, g_iWarning[MAX_PLAYERS + 1];
new g_iMaxPlayers, g_iCountCheck[MAX_PLAYERS + 1];

public plugin_init()
{
register_plugin("Ping Control", "0.1.5", "Freedo.m | neygomon");
g_iMaxPlayers = get_maxplayers();
set_task(INTERVAL_CHECK, "PingCheck", TASK_PING_CHECK, _, _, "b");
}

public client_putinserver(id)
{
if(is_user_bot(id) || is_user_hltv(id)) return;
g_iWarning[id] = 0;
g_iCountCheck[id] = 0;
BIT_ADD(g_iBitClientValid, id);
}

public client_disconnect(id) BIT_SUB(g_iBitClientValid, id);

public PingCheck()
{
static i, iPing, iLoss;
for(i=1; i <= g_iMaxPlayers; i++)
{
if(BIT_VALID(g_iBitClientValid, i) && get_user_ping(i, iPing, iLoss))
{
if(g_iCountCheck[i] < CHECK_COUNT)
{
if(iPing > MAX_ALLOWED_PING || iLoss > MAX_ALLOWED_LOSS)
{
if(++g_iWarning[i] >= MAX_WARNING_CHECK)
{
//log_to_file("ping_control.log", "Ping: %d | Loss: %d", iPing, iLoss);
static name[32];
get_user_name(i, name, charsmax(name));
client_print(0, print_chat, "[PingControl] %s был удален с сервера за плохое соединение!", name);
server_cmd("kick #%d ^"Вы были кикнуты из-за плохого соединения^"", get_user_userid(i));
}
}
else if(g_iWarning[i]) g_iWarning[i]--;
g_iCountCheck[i]++;
}
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 3 раз
   + Цитировать сообщение
Статус пользователя ThePhoenix
сообщение 14.8.2015, 16:43
Сообщение #86


Стаж: 11 лет

Сообщений: 2723
Благодарностей: 533
Полезность: 40

Norman111,твой вариант работает.Благодарю!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Castiel
сообщение 29.1.2016, 17:27
Сообщение #87


Стаж: 12 лет
Город: Херсон

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

Norman111,
Привет)
Можешь пожалуйста дать этот плагин без иммунитета к Администраторам
И что в чате не было уведомления о кике только в консоле игроку
заранее спасибо)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Tuman
сообщение 10.6.2016, 23:46
Сообщение #88


Стаж: 10 лет

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

Что за строки в плагине ??
//#define REDIRECT
#if defined REDIRECT
#define IP_REDIRECT "127.0.0.1:27015"
#endif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
XyLiGaN
сообщение 11.6.2016, 9:56
Сообщение #89
Стаж: 13 лет
Город: Югорск

Сообщений: 11668
Благодарностей: 6450
Полезность: 1052

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

Tuman, описание есть в 1 посте.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя FecTep2
сообщение 28.1.2019, 14:19
Сообщение #90
Стаж: 12 лет

Сообщений: 160
Благодарностей: 12
Полезность: 68

Привет всем, Можете пожалуйста дать этот плагин без иммунитета к Администраторам
И что бы в чате не было уведомления о кике только в консоле игроку
заранее огромное спасибо)

Cкрытый текст
#include <amxmodx>

#define MAX_ALLOWED_PING 150 // Максимально допустимый пинг, превышение этого значения выкидывает игрока с сервера.
#define MAX_ALLOWED_LOSS 101 // Максимально допустимая потеря пакетов loss, превышение этого значения выкидывает игрока с сервера (101 = отключено по умолчанию, т.к. потеря пакетов не может быть больше 100).
#define MAX_WARNING_CHECK 3 // Количество предупреждений после которых последует наказание.
#define INTERVAL_CHECK 10.0 // Интервал между проверками, чем меньше значение, тем больше нагрузка на сервер.
#define CHECK_COUNT 3 // Количество проверок определенного игрока, после 3-х проверок игрока не будет проверять (снижаем еще максимальнее и без того итак маленькую нагрузку xD )

#pragma semicolon 1

#define MAX_PLAYERS 32
#define TASK_PING_CHECK 242984

#define BIT_VALID(%1,%2) (%1 & (1 << (%2 & 31)))
#define BIT_ADD(%1,%2) %1 |= (1 << (%2 & 31))
#define BIT_SUB(%1,%2) %1 &= ~(1 << (%2 & 31))

new g_iBitClientValid, g_iWarning[MAX_PLAYERS + 1];
new g_iMaxPlayers, g_iCountCheck[MAX_PLAYERS + 1];

public plugin_init()
{
register_plugin("Ping Control", "0.1.5", "Freedo.m | neygomon");
g_iMaxPlayers = get_maxplayers();
set_task(INTERVAL_CHECK, "PingCheck", TASK_PING_CHECK, _, _, "b");
}

public client_putinserver(id)
{
if(is_user_bot(id) || is_user_hltv(id)) return;
g_iWarning[id] = 0;
g_iCountCheck[id] = 0;
BIT_ADD(g_iBitClientValid, id);
}

public client_disconnect(id) BIT_SUB(g_iBitClientValid, id);

public PingCheck()
{
static i, iPing, iLoss;
for(i=1; i <= g_iMaxPlayers; i++)
{
if(BIT_VALID(g_iBitClientValid, i) && get_user_ping(i, iPing, iLoss))
{
if(g_iCountCheck[i] < CHECK_COUNT)
{
if(iPing > MAX_ALLOWED_PING || iLoss > MAX_ALLOWED_LOSS)
{
if(++g_iWarning[i] >= MAX_WARNING_CHECK)
{
//log_to_file("ping_control.log", "Ping: %d | Loss: %d", iPing, iLoss);
static name[32];
get_user_name(i, name, charsmax(name));
client_print(0, print_chat, "[PingControl] %s был удален с сервера за плохое соединение!", name);
server_cmd("kick #%d ^"Вы были кикнуты из-за плохого соединения^"", get_user_userid(i));
}
}
else if(g_iWarning[i]) g_iWarning[i]--;
g_iCountCheck[i]++;
}
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
5 страниц V  « 4 5
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: