Afk & High ping Kicker v1.3
-
Unbr3akable
Извън линия - Потребител
- Мнения: 178
- Регистриран на: 21 Дек 2016, 20:50
- Получена благодарност: 6 пъти
Re: Afk & High ping Kicker v1.1a
Добра идея е да се направи някакво наказание след кика. Например да има забрана да се влиза в сървъра за 1 минута. Защото например, мен ще ме кикне за AFK/SPEC и ще си вляза пак в сървъра докато не изтече отново времето за AFK/SPEC, и така мога да продължа вечно.
-
TheRedShoko
Извън линия - Модератор
- Мнения: 1016
- Регистриран на: 06 Окт 2016, 07:42
- Местоположение: Бургас
- Се отблагодари: 5 пъти
- Получена благодарност: 84 пъти
-
d3ath2435
Извън линия - Рекламатор
- Мнения: 545
- Регистриран на: 04 Фев 2017, 19:59
- Се отблагодари: 64 пъти
- Получена благодарност: 127 пъти
- Обратна връзка:
Re: Afk & High ping Kicker v1.1a
Как да премахнем кикването на спектатори, понеже ако играч реши да спеква друг играч заради хак, докато прави демото текат минутите и при достигане на времето за кик го киква ?
-
TheRedShoko
Извън линия - Модератор
- Мнения: 1016
- Регистриран на: 06 Окт 2016, 07:42
- Местоположение: Бургас
- Се отблагодари: 5 пъти
- Получена благодарност: 84 пъти
Re: Afk & High ping Kicker v1.1a
Задай cvar-a за максимално време като спектатор на някакво голямо число. Ще добавя cvar за изключване на всяка една опция в следващата версия.
-
Unbr3akable
Извън линия - Потребител
- Мнения: 178
- Регистриран на: 21 Дек 2016, 20:50
- Получена благодарност: 6 пъти
Re: Afk & High ping Kicker v1.1a
Или може да направиш опцията за кик, ако играчът е спектатор за повече от X секунди да се изключва на играч, който записва демо.
-
TheRedShoko
Извън линия - Модератор
- Мнения: 1016
- Регистриран на: 06 Окт 2016, 07:42
- Местоположение: Бургас
- Се отблагодари: 5 пъти
- Получена благодарност: 84 пъти
Re: Afk & High ping Kicker v1.1a
Как предлагаш да проверя дали играчът записва демо? И ако сървъра има auto demo recorder, какъвто има в повечето сървъри, се обезмисля spec kick-a. Просто ще се добави cvar..
-
Goddness
Извън линия - Потребител
- Мнения: 1813
- Регистриран на: 20 Май 2017, 11:47
- Местоположение: Някъде по света
- Се отблагодари: 143 пъти
- Получена благодарност: 187 пъти
- Обратна връзка:
Re: Afk & High ping Kicker v1.1a
Здравейте, искам когато добавя плъгина в сървъра киква спек ботовете, може ли да се направи проверка дали е играча е бот и, ако е бот да не го киква?
-
JustInCase
Извън линия - Потребител
- Мнения: 582
- Регистриран на: 14 Окт 2016, 23:31
- Се отблагодари: 4 пъти
- Получена благодарност: 15 пъти
Re: Afk & High ping Kicker v1.1a
nameless. написа:Здравейте, искам когато добавя плъгина в сървъра киква спек ботовете, може ли да се направи проверка дали е играча е бот и, ако е бот да не го киква?
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <cstrike>
#include <engine>
#include <WPMGPrintChatColor>
#define VERSION "1.1a"
#define KICK_IMMUNITY ADMIN_IMMUNITY
enum _:iPunishments
{
KICK = 1,
REDIRECT
}
new p_iMaxPing, p_flMaxAfkTime, p_flMaxSpecTime, p_iPingCheckTime, p_iPunishWay,
p_szRedirectIP, g_iMaxPlayers;
new iPingChecks[33], iUserTotalPing[33], Float:flUserAfkTime[33], bool:blPrintedWarn[33];
new const g_iCheckButtons = ( IN_ATTACK | IN_JUMP | IN_DUCK | IN_FORWARD | IN_BACK | IN_USE | IN_CANCEL | IN_LEFT | IN_RIGHT | IN_MOVELEFT | IN_MOVERIGHT | IN_ATTACK2 | IN_RUN | IN_RELOAD | IN_ALT1 | IN_SCORE );
new const szCheckerClass[] = "kick_manager_checker";
public plugin_init()
{
register_plugin("Afk & High ping Kicker", VERSION, "TheRedShoko @ AMXX-BG.Info");
register_cvar("afk_hp_kicker", VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED);
p_iMaxPing = register_cvar("kick_manager_maxping", "120");
p_flMaxAfkTime = register_cvar("kick_manager_afktime", "90.0");
p_flMaxSpecTime = register_cvar("kick_manager_spectime", "30.0");
p_iPingCheckTime = register_cvar("kick_manager_pingtime", "5");
p_iPunishWay = register_cvar("kick_manager_punish", "1");
p_szRedirectIP = register_cvar("kick_manager_redirectip", "127.0.0.1:27015");
new iEnt = create_entity("info_target");
if (iEnt)
{
register_think(szCheckerClass, "CheckUsersStatus");
entity_set_string(iEnt, EV_SZ_classname, szCheckerClass);
entity_set_float(iEnt, EV_FL_nextthink, get_gametime() + 0.1);
}
g_iMaxPlayers = get_maxplayers();
}
public client_putinserver(id)
{
ClearVariables(id);
}
public CheckUsersStatus(iEnt)
{
if (!is_valid_ent(iEnt)) return;
static iUserPing, iUserLoss;
static Float:flMaxAfkTime;
flMaxAfkTime = get_pcvar_float(p_flMaxAfkTime);
static Float:flMaxSpecTime;
flMaxSpecTime = get_pcvar_float(p_flMaxSpecTime);
static iMaxPing;
iMaxPing = get_pcvar_num(p_iMaxPing);
static iPunishment;
iPunishment = get_pcvar_num(p_iPunishWay);
static szRedirectIP[16];
if (iPunishment == REDIRECT)
{
get_pcvar_string(p_szRedirectIP, szRedirectIP, charsmax(szRedirectIP));
}
static szPunishment[32];
switch (iPunishment)
{
case KICK: formatex(szPunishment, charsmax(szPunishment), "kicked");
case REDIRECT: formatex(szPunishment, charsmax(szPunishment), "redirected");
}
for (new i = 1; i <= g_iMaxPlayers; i++)
{
if (!is_user_connected(i) || get_user_flags(i) & KICK_IMMUNITY || is_user_bot(i)) continue;
if (cs_get_user_team(i) == CS_TEAM_SPECTATOR || cs_get_user_team(i) == CS_TEAM_UNASSIGNED)
{
flUserAfkTime[i] += 0.1;
if (flMaxSpecTime - flUserAfkTime[i] <= 15.0 && !blPrintedWarn[i])
{
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM, "!g[!tSpecKicker!g]!y You will get %s after!g 15!y seconds for being spectator!",
szPunishment);
blPrintedWarn[i] = true;
}
if (flUserAfkTime[i] >= flMaxSpecTime)
{
new szName[32];
get_user_name(i, szName, charsmax(szName));
PrintChatColor(0, PRINT_COLOR_PLAYERTEAM, "!g[!tSpecKicker!g]!y Player!g %s!y got %s for being!t Spectator!y for more than!t %i!y seconds!",
szName, szPunishment, floatround(flMaxSpecTime));
switch (iPunishment)
{
case KICK: server_cmd("kick #%i ^"You got kicked for being afk more than %i seconds!^"", get_user_userid(i), floatround(flMaxSpecTime));
case REDIRECT: client_cmd(i, "wait;wait;wait;wait;wait;^"connect^" %s", szRedirectIP);
}
ClearVariables(i);
}
}
else if (!(entity_get_int(i, EV_INT_button) & g_iCheckButtons) && is_user_alive(i))
{
flUserAfkTime[i] += 0.1;
if (flMaxAfkTime - flUserAfkTime[i] <= 15.0 && !blPrintedWarn[i])
{
PrintChatColor(i, PRINT_COLOR_PLAYERTEAM, "!g[!tAfkKicker!g]!y You will get %s after!g 15!y seconds for being AFK!",
szPunishment);
blPrintedWarn[i] = true;
}
if (flUserAfkTime[i] >= flMaxAfkTime)
{
new szName[32];
get_user_name(i, szName, charsmax(szName));
PrintChatColor(0, PRINT_COLOR_PLAYERTEAM, "!g[!tAfkKicker!g]!y Player!g %s!y got %s for being!t AFK!y for more than!t %i!y seconds!",
szName, szPunishment, floatround(flMaxAfkTime));
switch (iPunishment)
{
case KICK: server_cmd("kick #%i ^"You got kicked for being afk more than %i seconds!^"", get_user_userid(i), floatround(flMaxAfkTime));
case REDIRECT: client_cmd(i, "wait;wait;wait;wait;wait;^"connect^" %s", szRedirectIP);
}
ClearVariables(i);
}
}
else
{
flUserAfkTime[i] = 0.0;
blPrintedWarn[i] = false;
}
get_user_ping(i, iUserPing, iUserLoss);
iUserTotalPing[i] += iUserPing;
iPingChecks[i]++;
if (iPingChecks[i] >= get_pcvar_num(p_iPingCheckTime) && (iUserTotalPing[i] / iPingChecks[i]) >= iMaxPing)
{
new szName[32];
get_user_name(i, szName, charsmax(szName));
PrintChatColor(0, PRINT_COLOR_PLAYERTEAM, "!g[!tHighPingKicker!g]!y Player!g %s!y got %s for having more than!t AFK!y for more than!t %ims!y!",
szName, szPunishment, iMaxPing);
switch (iPunishment)
{
case KICK: server_cmd("kick #%i ^"You got kicked for having more more than %ims!^"", get_user_userid(i), iMaxPing);
case REDIRECT: client_cmd(i, "wait;wait;wait;wait;wait;^"connect^" %s", szRedirectIP);
}
ClearVariables(i);
}
}
entity_set_float(iEnt, EV_FL_nextthink, get_gametime() + 0.1);
}
ClearVariables(id)
{
flUserAfkTime[id] = 0.0;
iPingChecks[id] = 0;
iUserTotalPing[id] = 0;
blPrintedWarn[id] = false;
}
MANSION - HNS : 45.144.155.99:27026
ONLINE
ONLINE
-
Goddness
Извън линия - Потребител
- Мнения: 1813
- Регистриран на: 20 Май 2017, 11:47
- Местоположение: Някъде по света
- Се отблагодари: 143 пъти
- Получена благодарност: 187 пъти
- Обратна връзка:
Re: Afk & High ping Kicker v1.1a
Готово стана, благодаря ти.JustInCase написа:nameless. написа:Здравейте, искам когато добавя плъгина в сървъра киква спек ботовете, може ли да се направи проверка дали е играча е бот и, ако е бот да не го киква?Тествай.Код за потвърждение: Избери целия код
#include <amxmodx> #include <cstrike> #include <engine> #include <WPMGPrintChatColor> #define VERSION "1.1a" #define KICK_IMMUNITY ADMIN_IMMUNITY enum _:iPunishments { KICK = 1, REDIRECT } new p_iMaxPing, p_flMaxAfkTime, p_flMaxSpecTime, p_iPingCheckTime, p_iPunishWay, p_szRedirectIP, g_iMaxPlayers; new iPingChecks[33], iUserTotalPing[33], Float:flUserAfkTime[33], bool:blPrintedWarn[33]; new const g_iCheckButtons = ( IN_ATTACK | IN_JUMP | IN_DUCK | IN_FORWARD | IN_BACK | IN_USE | IN_CANCEL | IN_LEFT | IN_RIGHT | IN_MOVELEFT | IN_MOVERIGHT | IN_ATTACK2 | IN_RUN | IN_RELOAD | IN_ALT1 | IN_SCORE ); new const szCheckerClass[] = "kick_manager_checker"; public plugin_init() { register_plugin("Afk & High ping Kicker", VERSION, "TheRedShoko @ AMXX-BG.Info"); register_cvar("afk_hp_kicker", VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED); p_iMaxPing = register_cvar("kick_manager_maxping", "120"); p_flMaxAfkTime = register_cvar("kick_manager_afktime", "90.0"); p_flMaxSpecTime = register_cvar("kick_manager_spectime", "30.0"); p_iPingCheckTime = register_cvar("kick_manager_pingtime", "5"); p_iPunishWay = register_cvar("kick_manager_punish", "1"); p_szRedirectIP = register_cvar("kick_manager_redirectip", "127.0.0.1:27015"); new iEnt = create_entity("info_target"); if (iEnt) { register_think(szCheckerClass, "CheckUsersStatus"); entity_set_string(iEnt, EV_SZ_classname, szCheckerClass); entity_set_float(iEnt, EV_FL_nextthink, get_gametime() + 0.1); } g_iMaxPlayers = get_maxplayers(); } public client_putinserver(id) { ClearVariables(id); } public CheckUsersStatus(iEnt) { if (!is_valid_ent(iEnt)) return; static iUserPing, iUserLoss; static Float:flMaxAfkTime; flMaxAfkTime = get_pcvar_float(p_flMaxAfkTime); static Float:flMaxSpecTime; flMaxSpecTime = get_pcvar_float(p_flMaxSpecTime); static iMaxPing; iMaxPing = get_pcvar_num(p_iMaxPing); static iPunishment; iPunishment = get_pcvar_num(p_iPunishWay); static szRedirectIP[16]; if (iPunishment == REDIRECT) { get_pcvar_string(p_szRedirectIP, szRedirectIP, charsmax(szRedirectIP)); } static szPunishment[32]; switch (iPunishment) { case KICK: formatex(szPunishment, charsmax(szPunishment), "kicked"); case REDIRECT: formatex(szPunishment, charsmax(szPunishment), "redirected"); } for (new i = 1; i <= g_iMaxPlayers; i++) { if (!is_user_connected(i) || get_user_flags(i) & KICK_IMMUNITY || is_user_bot(i)) continue; if (cs_get_user_team(i) == CS_TEAM_SPECTATOR || cs_get_user_team(i) == CS_TEAM_UNASSIGNED) { flUserAfkTime[i] += 0.1; if (flMaxSpecTime - flUserAfkTime[i] <= 15.0 && !blPrintedWarn[i]) { PrintChatColor(i, PRINT_COLOR_PLAYERTEAM, "!g[!tSpecKicker!g]!y You will get %s after!g 15!y seconds for being spectator!", szPunishment); blPrintedWarn[i] = true; } if (flUserAfkTime[i] >= flMaxSpecTime) { new szName[32]; get_user_name(i, szName, charsmax(szName)); PrintChatColor(0, PRINT_COLOR_PLAYERTEAM, "!g[!tSpecKicker!g]!y Player!g %s!y got %s for being!t Spectator!y for more than!t %i!y seconds!", szName, szPunishment, floatround(flMaxSpecTime)); switch (iPunishment) { case KICK: server_cmd("kick #%i ^"You got kicked for being afk more than %i seconds!^"", get_user_userid(i), floatround(flMaxSpecTime)); case REDIRECT: client_cmd(i, "wait;wait;wait;wait;wait;^"connect^" %s", szRedirectIP); } ClearVariables(i); } } else if (!(entity_get_int(i, EV_INT_button) & g_iCheckButtons) && is_user_alive(i)) { flUserAfkTime[i] += 0.1; if (flMaxAfkTime - flUserAfkTime[i] <= 15.0 && !blPrintedWarn[i]) { PrintChatColor(i, PRINT_COLOR_PLAYERTEAM, "!g[!tAfkKicker!g]!y You will get %s after!g 15!y seconds for being AFK!", szPunishment); blPrintedWarn[i] = true; } if (flUserAfkTime[i] >= flMaxAfkTime) { new szName[32]; get_user_name(i, szName, charsmax(szName)); PrintChatColor(0, PRINT_COLOR_PLAYERTEAM, "!g[!tAfkKicker!g]!y Player!g %s!y got %s for being!t AFK!y for more than!t %i!y seconds!", szName, szPunishment, floatround(flMaxAfkTime)); switch (iPunishment) { case KICK: server_cmd("kick #%i ^"You got kicked for being afk more than %i seconds!^"", get_user_userid(i), floatround(flMaxAfkTime)); case REDIRECT: client_cmd(i, "wait;wait;wait;wait;wait;^"connect^" %s", szRedirectIP); } ClearVariables(i); } } else { flUserAfkTime[i] = 0.0; blPrintedWarn[i] = false; } get_user_ping(i, iUserPing, iUserLoss); iUserTotalPing[i] += iUserPing; iPingChecks[i]++; if (iPingChecks[i] >= get_pcvar_num(p_iPingCheckTime) && (iUserTotalPing[i] / iPingChecks[i]) >= iMaxPing) { new szName[32]; get_user_name(i, szName, charsmax(szName)); PrintChatColor(0, PRINT_COLOR_PLAYERTEAM, "!g[!tHighPingKicker!g]!y Player!g %s!y got %s for having more than!t AFK!y for more than!t %ims!y!", szName, szPunishment, iMaxPing); switch (iPunishment) { case KICK: server_cmd("kick #%i ^"You got kicked for having more more than %ims!^"", get_user_userid(i), iMaxPing); case REDIRECT: client_cmd(i, "wait;wait;wait;wait;wait;^"connect^" %s", szRedirectIP); } ClearVariables(i); } } entity_set_float(iEnt, EV_FL_nextthink, get_gametime() + 0.1); } ClearVariables(id) { flUserAfkTime[id] = 0.0; iPingChecks[id] = 0; iUserTotalPing[id] = 0; blPrintedWarn[id] = false; }
-
LoShIaA
Извън линия - Потребител
- Мнения: 323
- Регистриран на: 20 Окт 2016, 14:44
- Местоположение: Стара Загора
- Се отблагодари: 120 пъти
- Получена благодарност: 9 пъти
Re: Afk & High ping Kicker v1.1a
Здравейте. Някой може ли да добави няколко съобщения.
Съобщения при опцията за висок пинг
Първо при влизане в сървъра да съобщава Players with ping higher than %d will be kicked! - Това го няма
Съобщения при опцията за афк
Ако може предупредително съобщение, което излиза 15 секунди преди да бъдеш кикнат да излиза на 10 и 5 секунди преди да бъдеш кикнат по още веднъж.
Съобщения при пренасочване към друг сървър, ако сме активирали опцията.
Ако може предупредително съобщение, което излиза 15 секунди преди да бъдеш кикнат да излиза на 10 и 5 секунди преди да бъдеш кикнат по още веднъж.
Да се добави квар дали админите да имат имунитет или да нямат.
Съобщения при опцията за висок пинг
Първо при влизане в сървъра да съобщава Players with ping higher than %d will be kicked! - Това го няма
Съобщения при опцията за афк
Ако може предупредително съобщение, което излиза 15 секунди преди да бъдеш кикнат да излиза на 10 и 5 секунди преди да бъдеш кикнат по още веднъж.
Съобщения при пренасочване към друг сървър, ако сме активирали опцията.
Ако може предупредително съобщение, което излиза 15 секунди преди да бъдеш кикнат да излиза на 10 и 5 секунди преди да бъдеш кикнат по още веднъж.
Да се добави квар дали админите да имат имунитет или да нямат.
Последно промяна от LoShIaA на 02 Юни 2017, 11:58, променено общо 2 пъти.
-
- Подобни теми
- Отговори
- Преглеждания
- Последно мнение
-
- 1 Отговори
- 1310 Преглеждания
-
Последно мнение от illusion
-
- 0 Отговори
- 714 Преглеждания
-
Последно мнение от erra1881
-
- 1 Отговори
- 1459 Преглеждания
-
Последно мнение от impossible
-
- 4 Отговори
- 1866 Преглеждания
-
Последно мнение от OciXCrom
-
- 5 Отговори
- 2363 Преглеждания
-
Последно мнение от OciXCrom
-
- 5 Отговори
- 2031 Преглеждания
-
Последно мнение от atmax
Кой е на линия
Потребители разглеждащи този форум: 0 регистрирани и 19 госта