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

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

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

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

ColorChat

Статус пользователя Nickk
сообщение 3.4.2013, 18:02
Сообщение #1
Стаж: 13 лет

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

Здравствуйте.
Понадобилось добавить колорчат в плагин bhpk.
При замене с client_print на ColorChat ( в любом месте плагина ) 5 ошибок, ссылаются на инк.
Инклюд подключен.
Плагин прикрепил ( измененный ).

Прикрепленный файл  bhpk.sma ( 6,42 килобайт ) Кол-во скачиваний: 15

Инклюд


Скрытый текст
scripting\include\colorchat.inc(31) : error 001: expected token: ";", but found "-identifier-"
scripting\include\colorchat.inc(54) : error 027: invalid character constant
scripting\include\colorchat.inc(54) : error 027: invalid character constant
scripting\include\colorchat.inc(54 -- 56) : warning 215: expression has no effect
scripting\include\colorchat.inc(56) : error 001: expected token: ";", but found "new"
scripting\include\colorchat.inc(56) : fatal error 107: too many error messages on one line


Отредактировал: Nickk, - 3.4.2013, 18:22
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Safety1st
сообщение 3.4.2013, 18:17
Сообщение #2
Стаж: 14 лет
Город: Moscow

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

inc-файл тоже нужен. Ну и сам текст ошибок до кучи)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Nickk
сообщение 3.4.2013, 18:22
Сообщение #3
Стаж: 13 лет

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

Обновил 1-ый пост.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 3.4.2013, 19:27
Сообщение #4
Стаж: 14 лет
Город: Moscow

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

Inc-файл не ахти, с ошибками. 2 рекомендуемых мной варианта тут.
А прежде чем встраивать цветной чат в плагин, возьмите последнюю версию.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя HoHoL
сообщение 25.5.2013, 20:22
Сообщение #5


Иконка группы

Стаж: 14 лет

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

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

Inc-файл может и не ахти , но ваши предложения так же не работают (тема создавалась по моей просьбе).
Я думаю , что из за того , что в client_print используется какой то plrid - что это значит так и не понял ...
client_print(plrid, print_chat, "[ПИНГ] Проверка пинга отключена благодаря иммунитету...")

Вот плагин
Код:
#pragma semicolon 1
#pragma ctrlchar '\'

#include <amxmodx>
#include <amxmisc>
#include <colorprint>

#define AUTHOR "Lev"
#define PLUGIN "Better High Ping Kicker"
#define VERSION "2.7"
#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", "150");
pcvar_hpk_ping_max_night = register_cvar("hpk_ping_max_night", "130");
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))
ColorPrint(plrid, "[^4ПИНГ^1] Проверка пинга отключена благодаря иммунитету...");
else
{
ColorPrint(plrid, "[^4ПИНГ^1] Игроки с пингом выше чем ^3%d ^1будут кикнуты!", 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, ping);
}

return PLUGIN_CONTINUE;
}

kickPlayer(plrid, ping)
{
new name[33], ip[15];
new userid = get_user_userid(plrid);
get_user_ip(plrid, ip, charsmax(ip), 1);
get_user_name(plrid, name, charsmax(name));

server_cmd("kick #%d \"[ПИНГ] Извините но у вас слишком большой пинг, попробуйте зайти позже...\"; addip 1 \"%s\"", userid, ip);
ColorPrint(0, "[^4ПИНГ^1] ^3%s ^1был отсоединен из за большого пинга!", name);
log_amx("\"%s\" was kicked due to high ping (%dms).", name, ping);
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;
}




Отредактировал: HoHoL, - 25.5.2013, 20:28
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: