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

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

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

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

high_ping_ban

, помощь
nastia777
сообщение 26.7.2014, 15:55
Сообщение #1
Стаж: 13 лет

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

Прошу немного переделать плагин
именно добавить цветной чат (что бы сообщения были цветные типо Игроки с пингом выше чем [150] будут забанены! )
и сделать префик [Ping Control]
по возможности добавить сообщение в чат через 15 секунд как зашол игрок
[Ping Control] Игроки с пингом выше чем 150 будут забанены!
и убрать пинг бан не действует на игрока с имунететом...

думаю многим будет полезен + с меня спасибо

Код:
#include <amxmodx>

new HIGHPING_MAX = 150 // set maximal acceptable ping
new HIGHPING_TIME = 15 // set in seconds frequency of ping checking
new HIGHPING_TESTS = 4 // minimal number of checks before doing anything

new iNumTests[33]

public plugin_init() {
register_plugin("high ping ban","0.1","blacksmith")
if (HIGHPING_TIME < 15) HIGHPING_TIME = 15
if (HIGHPING_TESTS < 4) HIGHPING_TESTS = 4
return PLUGIN_CONTINUE
}

public client_disconnect(id) {
remove_task(id)
return PLUGIN_CONTINUE
}

public client_putinserver(id) {
iNumTests[id] = 0
if (!is_user_bot(id)) {
new param[1]
param[0] = id
set_task(30.0, "showWarn", id, param, 1)
}
return PLUGIN_CONTINUE
}

kickPlayer(id) {
new name[32]
get_user_name(id, name, 31)
new uID = get_user_userid(id)
server_cmd("amx_ban 5 #%d слишком высокий пинг", uID)
client_cmd(id, "echo ^"Извините, у вас слишком высокий пинг!^"; отключен от сервера")
client_print(0, print_chat, "%s забанен на 5 минут из-за высокого пинга!", name)
return PLUGIN_CONTINUE
}

public checkPing(param[]) {
new id = param[0]
if ((get_user_flags(id) & ADMIN_IMMUNITY) || (get_user_flags(id) & ADMIN_RESERVATION)) {
remove_task(id)
client_print(id, print_chat, "пинг бан не действует на игрока с имунететом...")
return PLUGIN_CONTINUE
}
new p, l
get_user_ping(id, p, l)
if (p > HIGHPING_MAX)
++iNumTests[id]
else
if (iNumTests[id] > 0) --iNumTests[id]
if (iNumTests[id] > HIGHPING_TESTS)
kickPlayer(id)
return PLUGIN_CONTINUE
}

public showWarn(param[]) {
client_print(param[0], print_chat, "игрок с пингом выше чем %dms будет забанен на 5 минут!", HIGHPING_MAX)
set_task(float(HIGHPING_TIME), "checkPing", param[0], param, 1, "b")
return PLUGIN_CONTINUE
}


Отредактировал: nastia777, - 26.7.2014, 15:58
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя tyne
сообщение 26.7.2014, 15:58
Сообщение #2


Стаж: 13 лет

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

Тут ведь ничего сверхъестественного нету, добавить цветной чат..
Бесполезные темы..=))
Посмотрите туторы или по образцам плагинов..
Много однотипных тем за последнее время уже..
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
nastia777
сообщение 26.7.2014, 16:01
Сообщение #3
Стаж: 13 лет

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

ну может для тебя бесполезный!
а мне нужен этот, что бы банил :)

в этом не разбираюсь !


Отредактировал: nastia777, - 26.7.2014, 16:03
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя tyne
сообщение 26.7.2014, 16:03
Сообщение #4


Стаж: 13 лет

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

Цитата(nastia777 @ 26.7.2014, 17:01) *
ну может для тебя бесполезный!
а мне нужен этот, что бы банил :)


Вырежи то, где идет проверка на имунитет и добавь колор
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
nastia777
сообщение 26.7.2014, 16:04
Сообщение #5
Стаж: 13 лет

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

Цитата(tyne @ 26.7.2014, 16:03) *
Вырежи то, где идет проверка на имунитет и добавь колор

ну для тебя может это легко
а для меня все сложно (
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
andreiwiz
сообщение 26.7.2014, 16:21
Сообщение #6
Стаж: 11 лет

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

nastia777,
ну colorchat вот
ColorChat(id, BLUE, "^01[^04Зелёная приставка^01] ^03цвет команды Сообщение")
Код:
/* Fun functions
*
* by Numb
*
* This file is provided as is (no warranties).
*/

#if defined _colorchat_included
#endinput
#endif
#define _colorchat_included

enum Color
{
NORMAL = 1, // clients scr_concolor cvar color
GREEN, // Green Color
TEAM_COLOR, // Red, grey, blue
GREY, // grey
RED, // Red
BLUE, // Blue
}

new TeamName[][] =
{
"",
"TERRORIST",
"CT",
"SPECTATOR"
}

ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...)
{
if( !get_playersnum() ) return;

new message[256];

switch(type)
{
case NORMAL: // clients scr_concolor cvar color
{
message[0] = 0x01;
}
case GREEN: // Green
{
message[0] = 0x04;
}
default: // White, Red, Blue
{
message[0] = 0x03;
}
}

vformat(message[1], 251, msg, 4);

// Make sure message is not longer than 192 character. Will crash the server.
message[192] = '^0';

new team, ColorChange, index, MSG_Type;

if(id)
{
MSG_Type = MSG_ONE;
index = id;
} else {
index = FindPlayer();
MSG_Type = MSG_ALL;
}

team = get_user_team(index);
ColorChange = ColorSelection(index, MSG_Type, type);

ShowColorMessage(index, MSG_Type, message);

if(ColorChange)
{
Team_Info(index, MSG_Type, TeamName[team]);
}
}

ShowColorMessage(id, type, message[])
{
static bool:saytext_used;
static get_user_msgid_saytext;
if(!saytext_used)
{
get_user_msgid_saytext = get_user_msgid("SayText");
saytext_used = true;
}
message_begin(type, get_user_msgid_saytext, _, id);
write_byte(id)
write_string(message);
message_end();
}

Team_Info(id, type, team[])
{
static bool:teaminfo_used;
static get_user_msgid_teaminfo;
if(!teaminfo_used)
{
get_user_msgid_teaminfo = get_user_msgid("TeamInfo");
teaminfo_used = true;
}
message_begin(type, get_user_msgid_teaminfo, _, id);
write_byte(id);
write_string(team);
message_end();

return 1;
}

ColorSelection(index, type, Color:Type)
{
switch(Type)
{
case RED:
{
return Team_Info(index, type, TeamName[1]);
}
case BLUE:
{
return Team_Info(index, type, TeamName[2]);
}
case GREY:
{
return Team_Info(index, type, TeamName[0]);
}
}

return 0;
}

FindPlayer()
{
new i = -1;

while(i <= get_maxplayers())
{
if(is_user_connected(++i))
return i;
}

return -1;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/


Отредактировал: andreiwiz, - 26.7.2014, 16:24
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя tyne
сообщение 26.7.2014, 16:26
Сообщение #7


Стаж: 13 лет

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

Цитата(andreiwiz @ 26.7.2014, 17:21) *
nastia777,
ну colorchat вот
ColorChat(id, BLUE, "^01[^04Зелёная приставка^01] ^03цвет команды Сообщение")
Код:
/* Fun functions
*
* by Numb
*
* This file is provided as is (no warranties).
*/

#if defined _colorchat_included
#endinput
#endif
#define _colorchat_included

enum Color
{
NORMAL = 1, // clients scr_concolor cvar color
GREEN, // Green Color
TEAM_COLOR, // Red, grey, blue
GREY, // grey
RED, // Red
BLUE, // Blue
}

new TeamName[][] =
{
"",
"TERRORIST",
"CT",
"SPECTATOR"
}

ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...)
{
if( !get_playersnum() ) return;

new message[256];

switch(type)
{
case NORMAL: // clients scr_concolor cvar color
{
message[0] = 0x01;
}
case GREEN: // Green
{
message[0] = 0x04;
}
default: // White, Red, Blue
{
message[0] = 0x03;
}
}

vformat(message[1], 251, msg, 4);

// Make sure message is not longer than 192 character. Will crash the server.
message[192] = '^0';

new team, ColorChange, index, MSG_Type;

if(id)
{
MSG_Type = MSG_ONE;
index = id;
} else {
index = FindPlayer();
MSG_Type = MSG_ALL;
}

team = get_user_team(index);
ColorChange = ColorSelection(index, MSG_Type, type);

ShowColorMessage(index, MSG_Type, message);

if(ColorChange)
{
Team_Info(index, MSG_Type, TeamName[team]);
}
}

ShowColorMessage(id, type, message[])
{
static bool:saytext_used;
static get_user_msgid_saytext;
if(!saytext_used)
{
get_user_msgid_saytext = get_user_msgid("SayText");
saytext_used = true;
}
message_begin(type, get_user_msgid_saytext, _, id);
write_byte(id)
write_string(message);
message_end();
}

Team_Info(id, type, team[])
{
static bool:teaminfo_used;
static get_user_msgid_teaminfo;
if(!teaminfo_used)
{
get_user_msgid_teaminfo = get_user_msgid("TeamInfo");
teaminfo_used = true;
}
message_begin(type, get_user_msgid_teaminfo, _, id);
write_byte(id);
write_string(team);
message_end();

return 1;
}

ColorSelection(index, type, Color:Type)
{
switch(Type)
{
case RED:
{
return Team_Info(index, type, TeamName[1]);
}
case BLUE:
{
return Team_Info(index, type, TeamName[2]);
}
case GREY:
{
return Team_Info(index, type, TeamName[0]);
}
}

return 0;
}

FindPlayer()
{
new i = -1;

while(i <= get_maxplayers())
{
if(is_user_connected(++i))
return i;
}

return -1;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/

Она же написала,что не понимает..
Я с планшета не могу плагин изменить, ну а вы то..
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
nastia777
сообщение 26.7.2014, 16:39
Сообщение #8
Стаж: 13 лет

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

пробовала вставлять код, что делать пробывать, итог не получилось !
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
andreiwiz
сообщение 26.7.2014, 16:41
Сообщение #9
Стаж: 11 лет

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

пробуй
Прикрепленные файлы:
Прикрепленный файл  hpb.rar ( 3,8 килобайт ) Кол-во скачиваний: 18
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Trovel
сообщение 26.7.2014, 16:44
Сообщение #10
Стаж: 12 лет

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

Код:
#include <amxmodx>

#if AMXX_VERSION_NUM < 183
#include colorchat
#define print_team_default DontChange
#define print_team_grey Grey
#define print_team_red Red
#define print_team_blue Blue
#endif

enum _:cvars
{
MAX, TIME, TESTS
}

new cvar[cvars], iNumTests[33]

public plugin_init() {
register_plugin("High Ping Checker", "0.1", "blacksmith/LeeVaillante")

cvar[MAX] = register_cvar("amx_ping_max", "150")
cvar[TIME] = register_cvar("amx_ping_time", "15")
cvar[TESTS] = register_cvar("amx_ping_tests", "4")

if(get_pcvar_num(cvar[TIME]) < 15) set_pcvar_num(cvar[TIME], 15)
if(get_pcvar_num(cvar[TESTS]) < 4) set_pcvar_num(cvar[TESTS], 4)
}

public client_disconnect(id) remove_task(id)

public client_putinserver(id) {
iNumTests[id] = 0
if (!is_user_bot(id)) {
new param[1]
param[0] = id
set_task(30.0, "showWarn", id, param, 1)
}
return PLUGIN_CONTINUE
}

kickPlayer(id) {
new name[32]
get_user_name(id, name, 31)
new uID = get_user_userid(id)
server_cmd("amx_ban 5 #%d слишком высокий пинг", uID)
client_cmd(id, "echo ^"Извините, у вас слишком высокий пинг!^"; отключен от сервера")
client_print_color(0, print_team_blue, "^1[^3Ping Control^1] ^4%s^3 забанен^1 на^4 5 минут^1 за высокий пинг.", name)
return PLUGIN_CONTINUE
}

public checkPing(param[]) {
new id = param[0]
if ((get_user_flags(id) & ADMIN_IMMUNITY) || (get_user_flags(id) & ADMIN_RESERVATION)) {
remove_task(id)
client_print_color(id, print_team_blue, "^1[^3Ping Control^1] Для игроков с имуннитетом ^4проверка пинга^3 отключена!")
return PLUGIN_CONTINUE
}
new p, l
get_user_ping(id, p, l)
if (p > get_pcvar_num(cvar[MAX]))
++iNumTests[id]
else
if (iNumTests[id] > 0) --iNumTests[id]
if (iNumTests[id] > get_pcvar_num(cvar[TESTS]))
kickPlayer(id)
return PLUGIN_CONTINUE
}

public showWarn(param[]) {
client_print_color(param[0], print_team_blue, "^1[^3Ping Control^1] Игроки с пингом выше^4 ^"%d^"^1 будут ^3забанены на5 минут!", get_pcvar_num(cvar[MAX]))
set_task(get_pcvar_float(cvar[TIME]), "checkPing", param[0], param, 1, "b")
return PLUGIN_CONTINUE
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
nastia777
сообщение 26.7.2014, 19:50
Сообщение #11
Стаж: 13 лет

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

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