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

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

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

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

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

Помогите сделать цветным bhpk

Статус пользователя MiIIer
сообщение 12.11.2016, 7:07
Сообщение #1


Стаж: 10 лет
Город: Волгоград

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

bhpk изначально обычный желтого цвета,пробовал прописать принт колор но ничего не меняется он просто дописывает ^1^3^4 пробовал и ^x01 в комплекте нету txt файла.
Код:
/*	AMX Mod script

Better High Ping Kicker
This file is provided as is (no warranties).

This is mainly a modification of HPK by DynAstY.
Thanks to all other HPK authors (OLO, DynAstY, shadow, EKS) - your plugins provided the base.

Features:
Players with immunity and slot reservations won't be checked.
At night max ping defined by different CVAR (so usually it will be higher).
By default keeps min 3 players (bots and hltv are not included) at server if they are not exceed night max ping twice.
Player is banned for 1 minute, not just simply kicked.

CVARs (Supplied values are defaults):
hpk_ping_max 175; maximim ping to check for at day time
hpk_ping_max_night 300; maximim ping to check for at night time
hpk_ping_time 10; interval at which ping will be checked
hpk_ping_tests 5; number of violations of maximum ping at which to kick
hpk_min_players 3; don't kick player if there is this count or less players (bots and hltv are not included) at server and player's ping doesn't exceed night ping twice.
hpk_night_start_hour 3; night period start hour (hour included)
hpk_night_end_hour 9; night period end hour (hour excluded)

How it is different from other HPK plugins:
using pointers to CVARs;
code flow is optimized;
there is night period when ping defined by different CVAR, period also defined by CVARs;
changes to max pings applies immediately;
immunity for admins and slot reservations players;
keeps min players at server (count defined by CVAR) if their ping is not too high (double night max ping);

ChangeLog:
v2.4 [2009.03.01]
Initial release.
v2.5 [2009.10.02]
! Change: bots and hltv are now excluded from players count for comparision with hpk_min_players.
v2.6 [2009.10.10]
! Change: changed from ban ID to ban IP.
*/

#pragma semicolon 1
#pragma ctrlchar '\'

#include <amxmodx>
#include <amxmisc>
#include <colorchat>

#define AUTHOR "Lev"
#define PLUGIN "Better High Ping Kicker"
#define VERSION "2.6"
#define VERSION_CVAR "bhpk_version"

#define ALWAYS_KICK_MULTIPLIER 2 // Player will be kicked even there is less then or equal min_players if player's ping exceed night max ping by this factor.
#define DELAY_BEFORE_START_TESTING 20.0 // Delay before showing warning and start ping checking. Real testing starts after hpk_ping_time also passed.

const TASK_ID_BASE = 52635; // random number

const min_hpk_ping_max = 10;
const min_hpk_ping_time = 10;
const min_hpk_ping_tests = 4;

new pcvar_hpk_ping_max;
new pcvar_hpk_ping_max_night;
new pcvar_hpk_ping_time;
new pcvar_hpk_ping_tests;
new pcvar_hpk_min_players;
new pcvar_hpk_night_start_hour;
new pcvar_hpk_night_end_hour;

new ping_violations[33];

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_cvar(VERSION_CVAR, VERSION, FCVAR_SERVER);

pcvar_hpk_ping_max = register_cvar("hpk_ping_max", "175");
pcvar_hpk_ping_max_night = register_cvar("hpk_ping_max_night", "300");
pcvar_hpk_ping_time = register_cvar("hpk_ping_time", "10");
pcvar_hpk_ping_tests = register_cvar("hpk_ping_tests", "5");
pcvar_hpk_min_players = register_cvar("hpk_min_players", "3");
pcvar_hpk_night_start_hour = register_cvar("hpk_night_start_hour", "3");
pcvar_hpk_night_end_hour = register_cvar("hpk_night_end_hour", "9");
}

public client_putinserver(plrid)
{
ping_violations[plrid] = 0;
if (!is_user_bot(plrid) && !is_user_hltv(plrid))
set_task(DELAY_BEFORE_START_TESTING, "showInfo", TASK_ID_BASE + plrid);
return PLUGIN_CONTINUE;
}

public client_infochanged(plrid)
{
remove_task(TASK_ID_BASE + plrid);
if (!is_user_bot(plrid) && !is_user_hltv(plrid))
set_task(DELAY_BEFORE_START_TESTING, "showInfo", TASK_ID_BASE + plrid);
return PLUGIN_CONTINUE;
}

public client_disconnect(plrid)
{
remove_task(TASK_ID_BASE + plrid);
return PLUGIN_CONTINUE;
}

public showInfo(taskid)
{
new plrid = taskid - TASK_ID_BASE;
if (access(plrid, ADMIN_IMMUNITY) || access(plrid, ADMIN_RESERVATION))
client_print_color(plrid, Blue, "^x01[^x04CSDM^x01] Проверка пинга отключена благодаря ^4иммунитету ^1...");
else
{
client_print_color(plrid, Blue, "^x01[^x04CSDM^x01] Игроки с пингом выше чем ^4%d ед. будут кикнуты!", get_hpk_ping_max());
set_task(float(get_hpk_ping_time()), "checkPing", TASK_ID_BASE + plrid, _, _, "b");
}
return PLUGIN_CONTINUE;
}

public checkPing(taskid)
{
new plrid = taskid - TASK_ID_BASE;
new ping, loss;

get_user_ping(plrid, ping, loss);

if (ping > get_hpk_ping_max()) ping_violations[plrid]++;
else if (ping_violations[plrid] > 0) ping_violations[plrid]--;

new hpk_ping_tests = get_hpk_ping_tests();
if (ping_violations[plrid] >= hpk_ping_tests)
{
static players[32];
new playerCount;
get_players(players, playerCount, "ch");
// Allow player to stay if there is less or equal than 'min_players' players and player ping is not too high.
if (playerCount <= get_pcvar_num(pcvar_hpk_min_players) &&
ping < get_pcvar_num(pcvar_hpk_ping_max_night) * ALWAYS_KICK_MULTIPLIER)
{
ping_violations[plrid] = hpk_ping_tests;
return PLUGIN_CONTINUE;
}
kickPlayer(plrid);
}

return PLUGIN_CONTINUE;
}

kickPlayer(plrid)
{
new name[33], ip[15];
get_user_name(plrid, name, sizeof(name) - 1);
get_user_ip(plrid, ip, charsmax(ip), 1);

client_cmd(plrid, "echo \"[CSDM] Извините но у вас слишком большой пинг, попробуйте зайти позже...\"; disconnect");
server_cmd("addip 1 %s", ip);
client_print_color(plrid, Blue, "^x01[^x04CSDM^x01] ^x04%s ^1был отсоединен из за большого пинга!", name);
return PLUGIN_CONTINUE;
}

get_hpk_ping_max()
{
new ping_max;
new hour, minute, second;

time(hour, minute, second);

// At night we use different CVAR
if (hour >= get_pcvar_num(pcvar_hpk_night_start_hour) &&
hour < get_pcvar_num(pcvar_hpk_night_end_hour))
ping_max = get_pcvar_num(pcvar_hpk_ping_max_night);
else
ping_max = get_pcvar_num(pcvar_hpk_ping_max);
// Check to be no less then minimum value
if (ping_max < min_hpk_ping_max) return min_hpk_ping_max;
return ping_max;
}
get_hpk_ping_time()
{
new time = get_pcvar_num(pcvar_hpk_ping_time);
// Check to be no less then minimum value
if (time < min_hpk_ping_time) return min_hpk_ping_time;
return time;
}
get_hpk_ping_tests()
{
new tests = get_pcvar_num(pcvar_hpk_ping_tests);
// Check to be no less then minimum value
if (tests < min_hpk_ping_tests) return min_hpk_ping_tests;
return tests;
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Bloo
сообщение 12.11.2016, 7:15
Сообщение #2


Стаж: 12 лет

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

MiIIer, пробуй, инклуд приложил.
Код:
/*   AMX Mod script
 
   Better High Ping Kicker
   This file is provided as is (no warranties).
 
   This is mainly a modification of HPK by DynAstY.
   Thanks to all other HPK authors (OLO, DynAstY, shadow, EKS) - your plugins provided the base.
 
   Features:
      Players with immunity and slot reservations won't be checked.
      At night max ping defined by different CVAR (so usually it will be higher).
      By default keeps min 3 players (bots and hltv are not included) at server if they are not exceed night max ping twice.
      Player is banned for 1 minute, not just simply kicked.
 
   CVARs (Supplied values are defaults):
      hpk_ping_max 175; maximim ping to check for at day time
      hpk_ping_max_night 300; maximim ping to check for at night time
      hpk_ping_time 10; interval at which ping will be checked
      hpk_ping_tests 5; number of violations of maximum ping at which to kick
      hpk_min_players 3; don't kick player if there is this count or less players (bots and hltv are not included) at server and player's ping doesn't exceed night ping twice.
      hpk_night_start_hour 3; night period start hour (hour included)
      hpk_night_end_hour 9; night period end hour (hour excluded)
 
   How it is different from other HPK plugins:
      using pointers to CVARs;
      code flow is optimized;
      there is night period when ping defined by different CVAR, period also defined by CVARs;
      changes to max pings applies immediately;
      immunity for admins and slot reservations players;
      keeps min players at server (count defined by CVAR) if their ping is not too high (double night max ping);
 
   ChangeLog:
      v2.4 [2009.03.01]
         Initial release.
      v2.5 [2009.10.02]
         ! Change: bots and hltv are now excluded from players count for comparision with hpk_min_players.
      v2.6 [2009.10.10]
         ! Change: changed from ban ID to ban IP.
*/
 
#pragma semicolon 1
#pragma ctrlchar '\'
 
#include <amxmodx>
#include <amxmisc>
#include <colorchat>
 
#define AUTHOR "Lev"
#define PLUGIN "Better High Ping Kicker"
#define VERSION "2.6"
#define VERSION_CVAR "bhpk_version"
 
#define ALWAYS_KICK_MULTIPLIER 2      // Player will be kicked even there is less then or equal min_players if player's ping exceed night max ping by this factor.
#define DELAY_BEFORE_START_TESTING 20.0   // Delay before showing warning and start ping checking. Real testing starts after hpk_ping_time also passed.
 
const TASK_ID_BASE = 52635;   // random number
 
const min_hpk_ping_max = 10;
const min_hpk_ping_time = 10;
const min_hpk_ping_tests = 4;
 
new pcvar_hpk_ping_max;
new pcvar_hpk_ping_max_night;
new pcvar_hpk_ping_time;
new pcvar_hpk_ping_tests;
new pcvar_hpk_min_players;
new pcvar_hpk_night_start_hour;
new pcvar_hpk_night_end_hour;
 
new ping_violations[33];
 
public plugin_init()
{
   register_plugin(PLUGIN, VERSION, AUTHOR);
   register_cvar(VERSION_CVAR, VERSION, FCVAR_SERVER);
 
   pcvar_hpk_ping_max = register_cvar("hpk_ping_max", "175");
   pcvar_hpk_ping_max_night = register_cvar("hpk_ping_max_night", "300");
   pcvar_hpk_ping_time = register_cvar("hpk_ping_time", "10");
   pcvar_hpk_ping_tests = register_cvar("hpk_ping_tests", "5");
   pcvar_hpk_min_players = register_cvar("hpk_min_players", "3");
   pcvar_hpk_night_start_hour = register_cvar("hpk_night_start_hour", "3");
   pcvar_hpk_night_end_hour = register_cvar("hpk_night_end_hour", "9");
}
    
public client_putinserver(plrid)
{
   ping_violations[plrid] = 0;
   if (!is_user_bot(plrid) && !is_user_hltv(plrid))
      set_task(DELAY_BEFORE_START_TESTING, "showInfo", TASK_ID_BASE + plrid);
   return PLUGIN_CONTINUE;
}
 
public client_infochanged(plrid)
{
   remove_task(TASK_ID_BASE + plrid);
   if (!is_user_bot(plrid) && !is_user_hltv(plrid))
      set_task(DELAY_BEFORE_START_TESTING, "showInfo", TASK_ID_BASE + plrid);
   return PLUGIN_CONTINUE;
}
 
public client_disconnect(plrid)
{
   remove_task(TASK_ID_BASE + plrid);
   return PLUGIN_CONTINUE;
}
 
public showInfo(taskid)
{
   new plrid = taskid - TASK_ID_BASE;
   if (access(plrid, ADMIN_IMMUNITY) || access(plrid, ADMIN_RESERVATION))
      client_print_color(plrid, DontChange, "^1[^4CSDM^1] Проверка пинга отключена благодаря ^4иммунитету ^1...");
   else
   {
      client_print_color(plrid, DontChange, "^1[^4CSDM^1] Игроки с пингом выше чем ^4%d ед. будут кикнуты!", get_hpk_ping_max());
      set_task(float(get_hpk_ping_time()), "checkPing", TASK_ID_BASE + plrid, _, _, "b");
   }
   return PLUGIN_CONTINUE;
}
 
public checkPing(taskid)
{
   new plrid = taskid - TASK_ID_BASE;
   new ping, loss;
 
   get_user_ping(plrid, ping, loss);
 
   if (ping > get_hpk_ping_max()) ping_violations[plrid]++;
   else if (ping_violations[plrid] > 0) ping_violations[plrid]--;
 
   new hpk_ping_tests = get_hpk_ping_tests();
   if (ping_violations[plrid] >= hpk_ping_tests)
   {
      static players[32];
      new playerCount;
      get_players(players, playerCount, "ch");
      // Allow player to stay if there is less or equal than 'min_players' players and player ping is not too high.
      if (playerCount <= get_pcvar_num(pcvar_hpk_min_players) &&
         ping < get_pcvar_num(pcvar_hpk_ping_max_night) * ALWAYS_KICK_MULTIPLIER)
      {
         ping_violations[plrid] = hpk_ping_tests;
         return PLUGIN_CONTINUE;
      }
      kickPlayer(plrid);
   }
 
   return PLUGIN_CONTINUE;
}
 
kickPlayer(plrid)
{
   new name[33], ip[15];
   get_user_name(plrid, name, sizeof(name) - 1);
   get_user_ip(plrid, ip, charsmax(ip), 1);
 
   client_cmd(plrid, "echo \"[CSDM] Извините но у вас слишком большой пинг, попробуйте зайти позже...\"; disconnect");
   server_cmd("addip 1 %s", ip);
   client_print_color(plrid, DontChange, "^1[^4CSDM^1] ^4%s ^1был отсоединен из за большого пинга!", name);
   return PLUGIN_CONTINUE;
}
 
get_hpk_ping_max()
{
   new ping_max;
   new hour, minute, second;
 
   time(hour, minute, second);
 
   // At night we use different CVAR
   if (hour >= get_pcvar_num(pcvar_hpk_night_start_hour) &&
      hour < get_pcvar_num(pcvar_hpk_night_end_hour))
      ping_max = get_pcvar_num(pcvar_hpk_ping_max_night);
   else
      ping_max = get_pcvar_num(pcvar_hpk_ping_max);
   // Check to be no less then minimum value
   if (ping_max < min_hpk_ping_max) return min_hpk_ping_max;
   return ping_max;
}
get_hpk_ping_time()
{
   new time = get_pcvar_num(pcvar_hpk_ping_time);
   // Check to be no less then minimum value
   if (time < min_hpk_ping_time) return min_hpk_ping_time;
   return time;
}
get_hpk_ping_tests()
{
   new tests = get_pcvar_num(pcvar_hpk_ping_tests);
   // Check to be no less then minimum value
   if (tests < min_hpk_ping_tests) return min_hpk_ping_tests;
   return tests;
}

Прикрепленные файлы:
Прикрепленный файл  colorchat.inc.zip ( 2,18 килобайт ) Кол-во скачиваний: 5
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MiIIer
сообщение 12.11.2016, 8:32
Сообщение #3


Стаж: 10 лет
Город: Волгоград

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

Bloo, Не пошло заменил colorchat скомпилировал всё тоже самое.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 12.11.2016, 8:47
Сообщение #4


Стаж: 12 лет

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

MiIIer, amxx какой?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MiIIer
сообщение 12.11.2016, 9:08
Сообщение #5


Стаж: 10 лет
Город: Волгоград

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

Цитата(Bloo @ 12.11.2016, 9:47) *
MiIIer, amxx какой?


1.8.2 bild 5787
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 12.11.2016, 9:13
Сообщение #6


Стаж: 12 лет

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

MiIIer, MiIIer, Как выводит сообщения? Не обрабатывает ^4?
Замените ^4 => ^3, я не помню точно соответствие указателей.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MiIIer
сообщение 12.11.2016, 9:25
Сообщение #7


Стаж: 10 лет
Город: Волгоград

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

Bloo,

Так мне как раз и нужно разукрасить.
^4, ^3, ^1
Зеленый, Цвет команды, Обычный

Только почему то сервер не может определить
На данный момент в чат выдаёт такое : ^x01[^x04CSDM^x01] Проверка пинга отключена благодаря ^x04иммунитету ^x01... Не может определить цвета colorchat и Ваш ставил и на своём пробовал почему то пишет так.
Ну всё ровно спасибо!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 12.11.2016, 9:41
Сообщение #8


Стаж: 12 лет

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

MiIIer, ну не знаю тогда, никогда с такой проблемой не сталкивался. На ум приходит только не верный colorchat или использование на 1.8.3.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MiIIer
сообщение 12.11.2016, 9:55
Сообщение #9


Стаж: 10 лет
Город: Волгоград

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

Цитата(Bloo @ 12.11.2016, 10:41) *
MiIIer, ну не знаю тогда, никогда с такой проблемой не сталкивался. На ум приходит только не верный colorchat или использование на 1.8.3.

Всё ровно спасибо попробую на заказ отдать может сделают что нибудь!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя r0no^
сообщение 12.11.2016, 10:49
Сообщение #10


Стаж: 14 лет
Город: Vilnius

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

Попробуйте замените client_print_color на ColorChat


Лишь утратив всё до конца, человек обретает свободу!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MiIIer
сообщение 15.11.2016, 7:26
Сообщение #11


Стаж: 10 лет
Город: Волгоград

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

Цитата(r0no^ @ 12.11.2016, 11:49) *
Попробуйте замените client_print_color на ColorChat


Без изменений!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 15.11.2016, 17:50
Сообщение #12


Стаж: 12 лет

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

MiIIer, проблема видимо в чем то другом. Нет никаких плагинов на сервере типа ColorChat? Вообще есть другие плагины использующие данные инклуд?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MiIIer
сообщение 1.12.2016, 9:00
Сообщение #13


Стаж: 10 лет
Город: Волгоград

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

Цитата(Bloo @ 15.11.2016, 18:50) *
MiIIer, проблема видимо в чем то другом. Нет никаких плагинов на сервере типа ColorChat? Вообще есть другие плагины использующие данные инклуд?


Спасибо можно закрыть тему.Обратился к человеку мучился мучился но сделал.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: