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

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

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

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

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

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

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

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

[Help] Colorchat

Статус пользователя firante
сообщение 7.6.2014, 21:33
Сообщение #1


Стаж: 12 лет

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

Подскажите что я делаю неправильного ? Пытаюсь добавить в bhpk добавить colorchat вроде всё правильно сделал компилируется без проблем но в игре не цветные сообщения!
Скрин

bhpk.sma
Код:
#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", "100");
pcvar_hpk_ping_max_night = register_cvar("hpk_ping_max_night", "100");
pcvar_hpk_ping_time = register_cvar("hpk_ping_time", "10");
pcvar_hpk_ping_tests = register_cvar("hpk_ping_tests", "3");
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(0, RED, "^4[^3Ping^4] Проверка пинга отключена у вас ^3имуннитет!", plrid);
else
{
client_print_color(0, RED, "^4[^3Ping^4] Игроки с пингом ^3%d ^4и выше будут ^3кикнуты!", get_hpk_ping_max(), plrid);
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 \"[Ping] Извините вы кикнуты из-за большего пинга!\"; disconnect");
server_cmd("addip 1 %s", ip);
client_print_color(0, RED, "^4[^3Ping^4] Игрок ^3%s ^4кикнут из-за большего ^3пинга!", 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;
}

Пользуюсь данным инклюдом
Код:
#if defined WPMGPrintChatColorIncluded
#endinput
#endif

#define WPMGPrintChatColorIncluded

#include <cstrike>

// Максимальное количество %L в сообщении
#define MAX_LANG_ARGS 5

// Цвета сообщений
enum
{
GREY, // Серый
RED, // Красный
BLUE, // Синий
TEAM // Цвет команды игрока которому мы отсылаем или цвет команды определённого игрока (если TEAM + id)
};

// Имена команд
static const g_aszTeamNames[][] =
{
"UNASSIGNED",
"TERRORIST",
"CT",
"SPECTATOR"
};

stock client_print_color(pReceiver, iColor = TEAM, const szMessage[], any:...)
{
// Сообщение
new szBuffer[256];

// Количество аргументов
new iArgs = numargs();

// Отсылаем одному игроку
if (pReceiver)
{
// Заменяем все LANG_PLAYER, на ID получателя
for (new iArg = 3; iArg < iArgs; iArg++)
{
// Если аргумент не равен LANG_PLAYER идём дальше
if (getarg(iArg) != LANG_PLAYER)
continue;

// Меняем численное значение аргумента
setarg(iArg, _, pReceiver);
}

// Форматируем сообщение
vformat(szBuffer, 255, szMessage, 4);

// Заменяем !y, !t, !g на цвета
while (replace(szBuffer, 255, "!y", "^1")) {}
while (replace(szBuffer, 255, "!t", "^3")) {}
while (replace(szBuffer, 255, "!g", "^4")) {}

// Если цвет PLAYERTEAM
if (iColor >= TEAM)
// Отсылаем сообщение игроку, за отправителя берём либо получателя, либо указанного игрока
UTIL_SayText(MSG_ONE, _, pReceiver, (iColor > TEAM) ? iColor - TEAM : pReceiver, szBuffer);
else
{
// Получаем команду получателя
new iTeam = _:cs_get_user_team(pReceiver);

// Если команда равна цвету сразу отслылаем сообщение
if (iTeam % 3 == iColor)
UTIL_SayText(MSG_ONE, _, pReceiver, pReceiver, szBuffer);
else
{
// Меняем команду (для цвета)
UTIL_TeamInfo(MSG_ONE, _, pReceiver, pReceiver, g_aszTeamNames[iColor]);
// Отсылаем сообщение
UTIL_SayText(MSG_ONE, _, pReceiver, pReceiver, szBuffer);
// Возвращаем команду
UTIL_TeamInfo(MSG_ONE, _, pReceiver, pReceiver, g_aszTeamNames[iTeam]);
}
}
}
// Отсылаем всем
else
{
// Массив для аргументов
new aiChangeArgs[MAX_LANG_ARGS];
// Количество аргументов, текущий аргумент
new iChangeArgs, iArg;

// Записываем все аргументы содержащие LANG_PLAYER
for (iArg = 3; iArg < iArgs; iArg++)
{
// Если аргумент не равен LANG_PLAYER идём дальше
if (getarg(iArg) != LANG_PLAYER)
continue;

// Записываем в массив
aiChangeArgs[iChangeArgs++] = iArg;

// Если достигнут максимум выходим из цикла
if (iChangeArgs == MAX_LANG_ARGS)
break;
}

// Массив из игроков
new apPlayers[32];
// Всего игроков
new iPlayers;
// Последний игрок
new pPlayer;

// Получаем игроков
get_players(apPlayers, iPlayers);

// Делаем цикл из игроков
for (new i = 0; i < iPlayers; i++)
{
// Сохраняем последнего игрока
pPlayer = apPlayers[i];

// Меняем аргументы LANG_PLAYER на ID игрока
for (iArg = 0; iArg < iChangeArgs; iArg++)
setarg(aiChangeArgs[iArg], _, pPlayer);

// Форматируем сообщение
vformat(szBuffer, 255, szMessage, 4);

// Заменяем !y, !t, !g на цвета
while (replace(szBuffer, 255, "!y", "^1")) {}
while (replace(szBuffer, 255, "!t", "^3")) {}
while (replace(szBuffer, 255, "!g", "^4")) {}

// Если цвет PLAYERTEAM
if (iColor >= TEAM)
// Отсылаем сообщение игроку, за отправителя берём либо получателя, либо указанного игрока
UTIL_SayText(MSG_ONE, _, pPlayer, (iColor > TEAM) ? iColor - TEAM : pPlayer, szBuffer);
else
{
// Получаем команду получателя
new iTeam = _:cs_get_user_team(pPlayer);

// Если команда равна цвету сразу отслылаем сообщение
if (iTeam % 3 == iColor)
UTIL_SayText(MSG_ONE, _, pPlayer, pPlayer, szBuffer);
else
{
// Меняем команду (для цвета)
UTIL_TeamInfo(MSG_ONE, _, pPlayer, pPlayer, g_aszTeamNames[iColor]);
// Отсылаем сообщение
UTIL_SayText(MSG_ONE, _, pPlayer, pPlayer, szBuffer);
// Возвращаем команду
UTIL_TeamInfo(MSG_ONE, _, pPlayer, pPlayer, g_aszTeamNames[iTeam]);
}
}
}
}
}

// Утилита отсылки SayText
stock UTIL_SayText(iDest, const vecOrigin[3] = {0, 0, 0}, pEntity, pSender, const szMessage[], const szArg1[] = "", const szArg2[] = "")
{
// Получаем ID сообщения SayText
static msgSayText;

if (!msgSayText)
msgSayText = get_user_msgid("SayText");

// Отсылаем SayText
message_begin(iDest, msgSayText, vecOrigin, pEntity);
write_byte(pSender);
write_string(szMessage);
if (szArg1[0])
{
write_string(szArg1);

if (szArg2[0])
write_string(szArg2);
}
message_end();
}

// Утилита отсылки TeamInfo
stock UTIL_TeamInfo(iDest, const vecOrigin[3] = {0, 0, 0}, pEntity, pPlayer, const szTeamName[])
{
// Получаем ID сообщения TeamInfo
static msgTeamInfo;

if (!msgTeamInfo)
msgTeamInfo = get_user_msgid("TeamInfo");

// Отсылаем TeamInfo
message_begin(iDest, msgTeamInfo, vecOrigin, pEntity);
write_byte(pPlayer);
write_string(szTeamName);
message_end();
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 7.6.2014, 21:41
Сообщение #2


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

Стаж: 13 лет

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

используй не ^1, ^3, ^4
а !t, !y, !g
так как в инклуде ^1, ^3, ^4 заменяется на то, что я выше дал

Отредактировал: GOOD FELLOW, - 7.6.2014, 21:43
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя firante
сообщение 7.6.2014, 21:46
Сообщение #3


Стаж: 12 лет

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

Цитата(GOOD FELLOW @ 7.6.2014, 21:41) *
используй не ^1, ^3, ^4
а !t, !y, !g
так как в инклуде ^1, ^3, ^4 заменяется на то, что я выше дал

Не получилось всё так же
bhpk.sma
Код:
#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", "100");
pcvar_hpk_ping_max_night = register_cvar("hpk_ping_max_night", "100");
pcvar_hpk_ping_time = register_cvar("hpk_ping_time", "10");
pcvar_hpk_ping_tests = register_cvar("hpk_ping_tests", "3");
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(0, RED, "!g[!tPing!g] Проверка пинга отключена у вас !tимуннитет!", plrid);
else
{
client_print_color(0, RED, "!g[!tPing!g] Игроки с пингом !t%d !gи выше будут !tкикнуты!", get_hpk_ping_max(), plrid);
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 \"[Ping] Извините вы кикнуты из-за большего пинга!\"; disconnect");
server_cmd("addip 1 %s", ip);
client_print_color(0, RED, "!g[!tPing!g] Игрок !t%s !gкикнут из-за большего !tпинга!", 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;
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 7.6.2014, 21:53
Сообщение #4


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

Стаж: 13 лет

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

выключи инклуд

в конец добавь

Код:
client_print_color(const id, const szMessage[], ...)
{
new szMsg[191], iPlayers[32], iPlayersNum = 1;
vformat(szMsg, charsmax(szMsg), szMessage, 3);
while(replace(szMsg, charsmax(szMsg), "!y", "^1")) {}
while(replace(szMsg, charsmax(szMsg), "!t", "^3")) {}
while(replace(szMsg, charsmax(szMsg), "!g", "^4")) {}
switch(id)
{
case 0: get_players(iPlayers, iPlayersNum, "ch");
default: iPlayers[0] = id;
}
for(new i; i < iPlayersNum; i++)
{
if(!is_user_connected(iPlayers[i])) continue;
message_begin(MSG_ONE_UNRELIABLE, MSG_TEXT_MSG, _, iPlayers[i]);
write_byte(iPlayers[i]);
write_string(szMsg);
message_end();
}
}


под инклудами добавь

Код:
#define MSG_TEXT_MSG 76


и там, где у тебя вывод сообщений, убери 2 аргумент (RED)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя firante
сообщение 7.6.2014, 22:01
Сообщение #5


Стаж: 12 лет

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

GOOD FELLOW,
НЕ получилось!
Хотя компилится всё как надо
Код:
#pragma semicolon 1
#pragma ctrlchar '\'

#include <amxmodx>
#include <amxmisc>

#define MSG_TEXT_MSG 76

#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", "100");
pcvar_hpk_ping_max_night = register_cvar("hpk_ping_max_night", "100");
pcvar_hpk_ping_time = register_cvar("hpk_ping_time", "10");
pcvar_hpk_ping_tests = register_cvar("hpk_ping_tests", "3");
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(0, "!g[!tPing!g] Проверка пинга отключена у вас !tимуннитет!", plrid);
else
{
client_print_color(0, "!g[!tPing!g] Игроки с пингом !t%d !gи выше будут !tкикнуты!", get_hpk_ping_max(), plrid);
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 \"[Ping] Извините вы кикнуты из-за большего пинга!\"; disconnect");
server_cmd("addip 1 %s", ip);
client_print_color(0, "!g[!tPing!g] Игрок !t%s !gкикнут из-за большего !tпинга!", 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;
}
client_print_color(const id, const szMessage[], ...)
{
new szMsg[191], iPlayers[32], iPlayersNum = 1;
vformat(szMsg, charsmax(szMsg), szMessage, 3);
while(replace(szMsg, charsmax(szMsg), "!y", "^1")) {}
while(replace(szMsg, charsmax(szMsg), "!t", "^3")) {}
while(replace(szMsg, charsmax(szMsg), "!g", "^4")) {}
switch(id)
{
case 0: get_players(iPlayers, iPlayersNum, "ch");
default: iPlayers[0] = id;
}
for(new i; i < iPlayersNum; i++)
{
if(!is_user_connected(iPlayers[i])) continue;
message_begin(MSG_ONE_UNRELIABLE, MSG_TEXT_MSG, _, iPlayers[i]);
write_byte(iPlayers[i]);
write_string(szMsg);
message_end();
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя firante
сообщение 7.6.2014, 22:15
Сообщение #6


Стаж: 12 лет

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

Мб с инклюдом какая нибудь херня?)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 7.6.2014, 22:44
Сообщение #7


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

Стаж: 13 лет

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

щас скину колорчат инклуд, попробуй

http://rghost.ru/56230790
вот
синтаксис такой
ColorChat(0, GREEN, "text")
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя firante
сообщение 7.6.2014, 22:45
Сообщение #8


Стаж: 12 лет

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

GOOD FELLOW,
Сейчас проверим...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя firante
сообщение 7.6.2014, 22:52
Сообщение #9


Стаж: 12 лет

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

GOOD FELLOW,
bhpk.sma
Код:
#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", "100");
pcvar_hpk_ping_max_night = register_cvar("hpk_ping_max_night", "100");
pcvar_hpk_ping_time = register_cvar("hpk_ping_time", "10");
pcvar_hpk_ping_tests = register_cvar("hpk_ping_tests", "3");
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))
ColorChat(0, GREEN, "!g[!tPing!g] Проверка пинга отключена у вас !tимуннитет!", plrid);
else
{
ColorChat(0, GREEN, "!g[!tPing!g] Игроки с пингом !t%d !gи выше будут !tкикнуты!", get_hpk_ping_max(), plrid);
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 \"[Ping] Извините вы кикнуты из-за большего пинга!\"; disconnect");
server_cmd("addip 1 %s", ip);
ColorChat(0, GREEN, "!g[!tPing!g] Игрок !t%s !gкикнут из-за большего !tпинга!", 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;
}

Скрин
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя panikajo
сообщение 7.6.2014, 23:01
Сообщение #10
Стаж: 12 лет

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

Цитата(firante @ 7.6.2014, 22:52) *
GOOD FELLOW,
bhpk.sma
Код:
#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", "100");
pcvar_hpk_ping_max_night = register_cvar("hpk_ping_max_night", "100");
pcvar_hpk_ping_time = register_cvar("hpk_ping_time", "10");
pcvar_hpk_ping_tests = register_cvar("hpk_ping_tests", "3");
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))
ColorChat(0, GREEN, "!g[!tPing!g] Проверка пинга отключена у вас !tимуннитет!", plrid);
else
{
ColorChat(0, GREEN, "!g[!tPing!g] Игроки с пингом !t%d !gи выше будут !tкикнуты!", get_hpk_ping_max(), plrid);
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 \"[Ping] Извините вы кикнуты из-за большего пинга!\"; disconnect");
server_cmd("addip 1 %s", ip);
ColorChat(0, GREEN, "!g[!tPing!g] Игрок !t%s !gкикнут из-за большего !tпинга!", 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;
}

Скрин


Инклюд в компилятор закинул?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя firante
сообщение 7.6.2014, 23:04
Сообщение #11


Стаж: 12 лет

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

panikajo,
Конечно )
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 7.6.2014, 23:06
Сообщение #12


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

Стаж: 13 лет

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

С утра проверю, если дождетесь.
Вообще ошибок вроде как нет, так что странно
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя firante
сообщение 7.6.2014, 23:07
Сообщение #13


Стаж: 12 лет

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

GOOD FELLOW,
Хорошо без проблем)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 7.6.2014, 23:07
Сообщение #14


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

Стаж: 13 лет

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

Да кстати
Какой амхх?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя firante
сообщение 7.6.2014, 23:11
Сообщение #15


Стаж: 12 лет

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

GOOD FELLOW,
1.82
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 8.6.2014, 10:39
Сообщение #16


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

Стаж: 13 лет

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

проверил я короче:)
плагин для амх 1.8.3
пробовал компилить своим - не шло
компилем 1.8.3 - все норм

Код:
#pragma semicolon 1
#pragma ctrlchar '\'

#include <amxmodx>
#include <amxmisc>
#if AMXX_VERSION_NUM < 183
#include <colorchat>
#endif

#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", "100");
pcvar_hpk_ping_max_night = register_cvar("hpk_ping_max_night", "100");
pcvar_hpk_ping_time = register_cvar("hpk_ping_time", "10");
pcvar_hpk_ping_tests = register_cvar("hpk_ping_tests", "3");
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(0, 0, "^4[^3Ping^4] Проверка пинга отключена у вас ^3имуннитет!", plrid);
else
{
client_print_color(0, 0, "^4[^3Ping^4] Игроки с пингом ^3%d ^4и выше будут ^3кикнуты!", get_hpk_ping_max(), plrid);
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 \"[Ping] Извините вы кикнуты из-за большего пинга!\"; disconnect");
server_cmd("addip 1 %s", ip);
client_print_color(0, 0, "^4[^3Ping^4] Игрок ^3%s ^4кикнут из-за большего ^3пинга!", 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;
}


держи код, скомпль компилем 1.8.3 и постав попробуй
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя firante
сообщение 8.6.2014, 14:40
Сообщение #17


Стаж: 12 лет

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

GOOD FELLOW,
Спасибо за проделанную работу ) нашёл приват от UFPS Team плаг сделал всё как надо он мне больше понравился и функционал большой чёткий )
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: