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

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

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

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

Кикает админов AFK Control от trollface

Статус пользователя BornToBeFree
сообщение 23.7.2014, 13:35
Сообщение #1


Стаж: 12 лет

Сообщений: 741
Благодарностей: 287
Полезность: 602

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

Проблема заключается в том, что со спектров кикает и админов, только не с той причиной которая указана в плагине, а просто kicked

Исходник
Код:
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#if AMXX_VERSION_NUM < 183
#include <colorchat>
#endif

#define ACCESS_LEVEL_IMMUNITY ADMIN_BAN // Уровень доступа позволяющий беспрепятственно сидеть в зрителях
#define TIME_AFK_CHECK 15.0 // Интервал между проверками игроков, чем меньше значение, тем больше нагрузка на сервер.
#define MAX_AFK_WARNING 3 // Количество предупреждений после которых последует наказание.
#define TIME_SPECT_CHECK 60.0 // Интервал между проверками зрителей, чем меньше значение, тем больше нагрузка на сервер.
#define MAX_SPECT_CHECK_PL 5 // Количество проверок игрока на нахождение в зрителях, после которых его кикнет
#define MIN_PLAYERS_CHECK 18 // Минимальное количество игроков, когда включается функция проверки зрителей.
#define BOMB_TRANSFER // Передавать ли бомбу игрокам, если игрок AFK. [Закомментируйте, если хотите, чтобы бомба просто выкидывалась]
// !!! Включение прибавит чутка нагрузки !!!
#pragma semicolon 1

#define TASK_AFK_CHECK 139734

#define BIT_VALID(%1,%2) (%1 & (1 << (%2 & 31)))
#define BIT_ADD(%1,%2) %1 |= (1 << (%2 & 31))
#define BIT_SUB(%1,%2) %1 &= ~(1 << (%2 & 31))

new Float:g_fOldOrigin[33][3], Float:g_fOldAngles[33][3];
new g_iBitClientValid, g_iWarning[33];
new g_iMaxPlayers;
new g_count[33];
new name[32];

public plugin_init()
{
register_plugin("Afk Control", "0.4.1", "Freedo.m | neygomon");
RegisterHam(Ham_Spawn, "player", "Ham_PlayerSpawn_Post", 1);
RegisterHam(Ham_Killed, "player", "Ham_PlayerKilled_Post", 1);
g_iMaxPlayers = get_maxplayers();
set_task(TIME_SPECT_CHECK, "SpectatorCheck", .flags = "b");
}

public client_putinserver(id)
{
if(is_user_bot(id) || is_user_hltv(id)) return;
BIT_ADD(g_iBitClientValid, id);
g_count[id] = 0;
}

public client_disconnect(id)
{
if(task_exists(id+TASK_AFK_CHECK)) remove_task(id+TASK_AFK_CHECK);
BIT_SUB(g_iBitClientValid, id);
}

public Ham_PlayerSpawn_Post(id)
{
if(!is_user_alive(id)) return;
g_iWarning[id] = 0;

pev(id, pev_origin, g_fOldOrigin[id]);
pev(id, pev_angles, g_fOldAngles[id]);

if(task_exists(id+TASK_AFK_CHECK)) remove_task(id+TASK_AFK_CHECK);
set_task(TIME_AFK_CHECK, "AfkCheck", id+TASK_AFK_CHECK, _, _, "b");
}

public Ham_PlayerKilled_Post(id) remove_task(id+TASK_AFK_CHECK);

public AfkCheck(id)
{
id -= TASK_AFK_CHECK;
new Float:fNewOrigin[3], Float:fNewAngles[3];
pev(id, pev_origin, fNewOrigin);
pev(id, pev_angles, fNewAngles);
if(xs_vec_equal(g_fOldOrigin[id], fNewOrigin) && xs_vec_equal(g_fOldAngles[id], fNewAngles))
{
get_user_name(id, name, charsmax(name));

if(++g_iWarning[id] >= MAX_AFK_WARNING)
{
user_kill(id, 1);
engclient_cmd(id, "jointeam", "6");
client_cmd(id, "spk events/friend_died");
client_print_color(0, 0, "^4[AFK Control] ^3Игрок ^4%s ^3был перемещен в наблюдатели", name);
}
else client_cmd(id, "spk events/tutor_msg");
client_print_color(id, 0, "^4[AFK Control] ^3Вы не проявляете активность! Предупреждения: ^4%i ^3из ^4%i", g_iWarning[id], MAX_AFK_WARNING);

if(user_has_weapon(id, CSW_C4))
{
engclient_cmd(id, "drop", "weapon_c4");
client_print_color(0, 0, "^4[AFK Control] ^3Игрок ^4%s ^3передал бомбу другому игроку", name);
#if defined BOMB_TRANSFER
for(new i = 1; i <= g_iMaxPlayers; i++)
{
if(i != id && is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_T)
{
new iWeaponC4 = engfunc(EngFunc_FindEntityByString, -1, "classname", "weapon_c4");
if(pev_valid(iWeaponC4))
{
new iOwner = pev(iWeaponC4, pev_owner);
if(iOwner > g_iMaxPlayers)
{
set_pev(iOwner, pev_flags, pev(iOwner, pev_flags) | FL_ONGROUND);
dllfunc(DLLFunc_Touch, iOwner, i);
}
}
break;
}
}
#endif
}
}
else
{
if(g_iWarning[id]) g_iWarning[id] = 0;
xs_vec_copy(fNewOrigin, g_fOldOrigin[id]);
xs_vec_copy(fNewAngles, g_fOldAngles[id]);
}
}

public SpectatorCheck()
{
if(get_playersnum() < MIN_PLAYERS_CHECK) return;
static i;
for(i=1; i <= g_iMaxPlayers; i++)
{
if(BIT_VALID(g_iBitClientValid, i))
{
if(!(get_user_flags(i) & ACCESS_LEVEL_IMMUNITY))
{
switch(_:cs_get_user_team(i))
{
case 0, 3: if(++g_count[i] >= MAX_SPECT_CHECK_PL) AfkPunishment(i);
}
}
}
}
}

public AfkPunishment(i)
{
get_user_name(i, name, charsmax(name));
client_print_color(0, 0, "^4[AFK Control] ^3Игрок^4 %s ^3кикнут из-за длительного нахождения в спектрах", name);
server_cmd("kick #%d ^"Вы были кикнуты из-за длительного нахождения в спектрах^"", get_user_userid(i));
}

stock bool:xs_vec_equal(const Float:vec1[], const Float:vec2[])
return (vec1[0] == vec2[0]) && (vec1[1] == vec2[1]) && (vec1[2] == vec2[2]);

stock xs_vec_copy(const Float:vecIn[], Float:vecOut[])
{
vecOut[0] = vecIn[0];
vecOut[1] = vecIn[1];
vecOut[2] = vecIn[2];
}


Отредактировал: ExTPuMaJI, - 23.7.2014, 14:06


Скидка 5% при заказе сервера
Чтобы получить 5% скидку при заказе сервера на хостинге Serva4ok.ru
Необходимо ввести это кодовое слово gKUt-FENO-ZonE-aIaa
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Legenda
сообщение 23.7.2014, 14:05
Сообщение #2


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

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

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

и?
с чего ты взял что кикает этот плагин?
в этом плагине только один кик
Код
server_cmd("kick #%d ^"Вы были кикнуты из-за длительного нахождения в спектрах^"", get_user_userid(i));

так что кикает явно не он
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя BornToBeFree
сообщение 23.7.2014, 14:09
Сообщение #3


Стаж: 12 лет

Сообщений: 741
Благодарностей: 287
Полезность: 602

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

Цитата(Legenda @ 23.7.2014, 16:05) *
С чего ты взял что кикает этот плагин?

Потому что кикает через 5 минут, как и указано в настройках плагина

Настройки
Код:
#define TIME_SPECT_CHECK      60.0      // Интервал между проверками зрителей, чем меньше значение, тем больше нагрузка на сервер.
#define MAX_SPECT_CHECK_PL 5 // Количество проверок игрока на нахождение в зрителях, после которых его кикнет


Скидка 5% при заказе сервера
Чтобы получить 5% скидку при заказе сервера на хостинге Serva4ok.ru
Необходимо ввести это кодовое слово gKUt-FENO-ZonE-aIaa
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 23.7.2014, 14:11
Сообщение #4


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

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

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

Цитата(ExTPuMaJI @ 23.7.2014, 16:09) *
Потому что кикает через 5 минут, как и указано в настройках плагина

Настройки
Код:
#define TIME_SPECT_CHECK      60.0      // Интервал между проверками зрителей, чем меньше значение, тем больше нагрузка на сервер.
#define MAX_SPECT_CHECK_PL 5 // Количество проверок игрока на нахождение в зрителях, после которых его кикнет

это явно не этот плагин кикает
отключи его и проверь
в коде только один кик с причиной...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя firante
сообщение 23.7.2014, 14:12
Сообщение #5


Стаж: 12 лет

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

У меня тоже такая проблема всё как надо стоит с иммунитетом но всё равно админов переводит в спектры потом кикает! (Kicked)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя BornToBeFree
сообщение 23.7.2014, 14:13
Сообщение #6


Стаж: 12 лет

Сообщений: 741
Благодарностей: 287
Полезность: 602

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

Цитата(firante @ 23.7.2014, 16:12) *
Но всё равно админов переводит в спектры потом кикает

Переводить в спектры он и должен, просто кикать со спектров не должен


Скидка 5% при заказе сервера
Чтобы получить 5% скидку при заказе сервера на хостинге Serva4ok.ru
Необходимо ввести это кодовое слово gKUt-FENO-ZonE-aIaa
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя firante
сообщение 23.7.2014, 14:15
Сообщение #7


Стаж: 12 лет

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

Цитата(ExTPuMaJI @ 23.7.2014, 14:13) *
Переводить в спектры он и должен, просто кикать со спектров не должен

Ну вот у меня так же !
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя adva
сообщение 23.7.2014, 16:20
Сообщение #8


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

Стаж: 12 лет

Сообщений: 2543
Благодарностей: 1676
Полезность: 819

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

Есть такая ерунда, писал троллфейсу, сказал лень дописывать))))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 23.7.2014, 16:28
Сообщение #9


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

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

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

да с чего вы взяли что именно этот плагин кикает?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя firante
сообщение 23.7.2014, 16:31
Сообщение #10


Стаж: 12 лет

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

Цитата(Legenda @ 23.7.2014, 16:28) *
да с чего вы взяли что именно этот плагин кикает?

Мб от сборки зависит ? Все плагины по выключал всё равно кикает (kicked)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 23.7.2014, 16:43
Сообщение #11


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

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

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

Цитата(firante @ 23.7.2014, 18:31) *
Мб от сборки зависит ? Все плагины по выключал всё равно кикает (kicked)

а может быть от значения параметра mp_autokick ?
это на 99%
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя firante
сообщение 23.7.2014, 16:52
Сообщение #12


Стаж: 12 лет

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

Цитата(Legenda @ 23.7.2014, 16:43) *
а может быть от значения параметра mp_autokick ?
это на 99%

У меня его вообще нет. И это не от команды mp_autokick зависит так как у меня есть AFK от Sector он работает как надо только сразу кикает за простой а не переводит в спектры!

Отредактировал: firante, - 23.7.2014, 16:55
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Basaev
сообщение 23.7.2014, 17:03
Сообщение #13


Стаж: 12 лет

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

Legenda,
Не это от плагина, я пробыл чистая сборка от хоста и этот плагин кикает!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 23.7.2014, 17:33
Сообщение #14


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

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

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

Цитата(Basaev @ 23.7.2014, 19:03) *
Legenda,
Не это от плагина, я пробыл чистая сборка от хоста и этот плагин кикает!

а без плагина?
введи в консоли
mp_autokick
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя BornToBeFree
сообщение 23.7.2014, 17:51
Сообщение #15


Стаж: 12 лет

Сообщений: 741
Благодарностей: 287
Полезность: 602

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

Цитата(Legenda @ 23.7.2014, 19:33) *
Введи в консоли mp_autokick

У меня пишет "mp_autokick" is "1"


Скидка 5% при заказе сервера
Чтобы получить 5% скидку при заказе сервера на хостинге Serva4ok.ru
Необходимо ввести это кодовое слово gKUt-FENO-ZonE-aIaa
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 23.7.2014, 17:58
Сообщение #16
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Цитата(ExTPuMaJI @ 23.7.2014, 17:51) *
У меня пишет "mp_autokick" is "1"

Ну и причем этот плагин, если игроков кикает сам сервер?
mp_autokick 0 поставь и будет тебе счастье
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя adva
сообщение 23.7.2014, 20:00
Сообщение #17


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

Стаж: 12 лет

Сообщений: 2543
Благодарностей: 1676
Полезность: 819

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

у меня mp_autokick 0
с его плагином все равно кикает. дело в плагине.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя debars
сообщение 24.7.2014, 18:43
Сообщение #18


Стаж: 14 лет

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

У меня все нормально, он же кидал в теме отредактированный плагин.

Сам код

CODE
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#if AMXX_VERSION_NUM < 183
#include <colorchat>
#endif

#define ACCESS_LEVEL_IMMUNITY (ADMIN_MENU|ADMIN_IMMUNITY) // Уровень доступа позволяющий беспрепятственно сидеть в зрителях
#define TIME_AFK_CHECK 15.0 // Интервал между проверками игроков, чем меньше значение, тем больше нагрузка на сервер.
#define MAX_AFK_WARNING 3 // Количество предупреждений после которых последует наказание.
#define TIME_SPECT_CHECK 60.0 // Интервал между проверками зрителей, чем меньше значение, тем больше нагрузка на сервер.
#define MAX_SPECT_CHECK_PL 2 // Количество проверок игрока на нахождение в зрителях, после которых его кикнет
#define MIN_PLAYERS_CHECK 30 // Минимальное количество игроков, когда включается функция проверки зрителей.
#define BOMB_TRANSFER // Передавать ли бомбу игрокам, если игрок AFK. [Закомментируйте, если хотите, чтобы бомба просто выкидывалась]
// !!! Включение прибавит чутка нагрузки !!!
#pragma semicolon 1

#define TASK_AFK_CHECK 139734

#define BIT_VALID(%1,%2) (%1 & (1 << (%2 & 31)))
#define BIT_ADD(%1,%2) %1 |= (1 << (%2 & 31))
#define BIT_SUB(%1,%2) %1 &= ~(1 << (%2 & 31))

new Float:g_fOldOrigin[33][3], Float:g_fOldAngles[33][3];
new g_iBitClientValid, g_iWarning[33];
new g_iMaxPlayers;
new g_count[33];
new name[32];

public plugin_init()
{
register_plugin("Afk Control", "0.4.1", "Freedo.m | neygomon");
RegisterHam(Ham_Spawn, "player", "Ham_PlayerSpawn_Post", 1);
RegisterHam(Ham_Killed, "player", "Ham_PlayerKilled_Post", 1);
g_iMaxPlayers = get_maxplayers();
set_task(TIME_SPECT_CHECK, "SpectatorCheck", .flags = "b");
}

public client_putinserver(id)
{
if(is_user_bot(id) || is_user_hltv(id)) return;
BIT_ADD(g_iBitClientValid, id);
g_count[id] = 0;
}

public client_disconnect(id)
{
if(task_exists(id+TASK_AFK_CHECK)) remove_task(id+TASK_AFK_CHECK);
BIT_SUB(g_iBitClientValid, id);
}

public Ham_PlayerSpawn_Post(id)
{
if(!is_user_alive(id)) return;
g_iWarning[id] = 0;

pev(id, pev_origin, g_fOldOrigin[id]);
pev(id, pev_angles, g_fOldAngles[id]);

if(task_exists(id+TASK_AFK_CHECK)) remove_task(id+TASK_AFK_CHECK);
set_task(TIME_AFK_CHECK, "AfkCheck", id+TASK_AFK_CHECK, _, _, "b");
}

public Ham_PlayerKilled_Post(id) remove_task(id+TASK_AFK_CHECK);

public AfkCheck(id)
{
id -= TASK_AFK_CHECK;
new Float:fNewOrigin[3], Float:fNewAngles[3];
pev(id, pev_origin, fNewOrigin);
pev(id, pev_angles, fNewAngles);
if(xs_vec_equal(g_fOldOrigin[id], fNewOrigin) && xs_vec_equal(g_fOldAngles[id], fNewAngles))
{
get_user_name(id, name, charsmax(name));

if(++g_iWarning[id] >= MAX_AFK_WARNING)
{
user_kill(id, 1);
engclient_cmd(id, "jointeam", "6");
client_cmd(id, "spk events/friend_died");
client_print_color(0, 0, "^1[^4AFK^1] Игрок %s был перемещен в зрители, так как был AFK", name);
}
else client_cmd(id, "spk events/tutor_msg");
client_print_color(id, 0, "^1[^4AFK^1] Вы не проявляете активность! Предупреждения: ^4%i/%i", g_iWarning[id], MAX_AFK_WARNING);

if(user_has_weapon(id, CSW_C4))
{
engclient_cmd(id, "drop", "weapon_c4");
client_print_color(0, 0, "^1[^4AFK^1] Игрок %s выкинул бомбу, так как находится AFK", name);
#if defined BOMB_TRANSFER
for(new i = 1; i <= g_iMaxPlayers; i++)
{
if(i != id && is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_T)
{
new iWeaponC4 = engfunc(EngFunc_FindEntityByString, -1, "classname", "weapon_c4");
if(pev_valid(iWeaponC4))
{
new iOwner = pev(iWeaponC4, pev_owner);
if(iOwner > g_iMaxPlayers)
{
set_pev(iOwner, pev_flags, pev(iOwner, pev_flags) | FL_ONGROUND);
dllfunc(DLLFunc_Touch, iOwner, i);
}
}
break;
}
}
#endif
}
}
else
{
if(g_iWarning[id]) g_iWarning[id] = 0;
xs_vec_copy(fNewOrigin, g_fOldOrigin[id]);
xs_vec_copy(fNewAngles, g_fOldAngles[id]);
}
}

public SpectatorCheck()
{
if(get_playersnum() < MIN_PLAYERS_CHECK) return;
static i;
for(i=1; i <= g_iMaxPlayers; i++)
{
if(BIT_VALID(g_iBitClientValid, i))
{
if(!(get_user_flags(i) & ACCESS_LEVEL_IMMUNITY))
{
switch(_:cs_get_user_team(i))
{
case 0, 3: if(++g_count[i] >= MAX_SPECT_CHECK_PL) AfkPunishment(i);
}
}
}
}
}

public AfkPunishment(i)
{
get_user_name(i, name, charsmax(name));
client_print_color(0, 0, "^1[^4AFK^1] Игрок^3 %s ^1удален за длительное нахождение в спектрах.", name);
server_cmd("kick #%d ^"Вы были кикнуты из-за длительного нахождения в зрителях.^"", get_user_userid(i));
}

stock bool:xs_vec_equal(const Float:vec1[], const Float:vec2[])
return (vec1[0] == vec2[0]) && (vec1[1] == vec2[1]) && (vec1[2] == vec2[2]);

stock xs_vec_copy(const Float:vecIn[], Float:vecOut[])
{
vecOut[0] = vecIn[0];
vecOut[1] = vecIn[1];
vecOut[2] = vecIn[2];
}


Сам файл
Прикрепленный файл  afk_control.sma ( 5,53 килобайт ) Кол-во скачиваний: 75


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 24.7.2014, 18:58
Сообщение #19


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

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

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

Цитата(adva @ 23.7.2014, 22:00) *
у меня mp_autokick 0
с его плагином все равно кикает. дело в плагине.

дело не в этом плагине

debars
хоть смотри что пишешь, они и используют этот плагин
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя debars
сообщение 24.7.2014, 19:06
Сообщение #20


Стаж: 14 лет

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

Цитата(Legenda @ 24.7.2014, 19:58) *
дело не в этом плагине

debars
хоть смотри что пишешь, они и используют этот плагин


Может они качают плагин, из шапки темы ?


Плагин который скачанный с шапки, и у меня кикало, админов с флагом имунитета

Был скачанный данный плагин, с данного поста, сообщение : https://c-s.net.ua/forum/index.php?showtopi...mp;#entry613886 больше не кикает.

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