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

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

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

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

> Правила раздела

Перед созданием новой темы убедитесь, не искал ли кто-нибудь подобный плагин до вас, для этого следует воспользоваться поиском.

Все вновь созданные темы, с названием типа "Помогите найти", "А что это за плагин", "Ищу плагин", "Нужен плагин", "Подскажите пожалуйста название плагина" - будут удалены.
При создании темы постарайтесь максимально понятно сформулировать её заголовок так, чтобы он соответствовал функциям плагина который Вы ищите. В том случае, если Вам не удается сформулировать мысль и правильно расписать всё в теме, воспользуйтесь графическим редактором, к примеру Paint, что бы примерно изобразить функции нужного Вам плагина.

AFK Manager

, Кик всех игроков, кроме главного админа
semenbiysk
сообщение 17.2.2015, 7:46
Сообщение #1
Стаж: 12 лет

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

Всем привет.
Есть ли такой плагин, чтобы кикало абсолютно всех игроков, остальных адмимнов, вип-игроков, кроме главного админа?
Чтобы никто не мог вообще находиться в спектрах

Отредактировал: semenbiysk, - 17.2.2015, 7:48
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
semenbiysk
сообщение 17.2.2015, 7:57
Сообщение #2
Стаж: 12 лет

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

up

Отредактировал: XyLiGaN, - 17.2.2015, 7:58
Причина: Выдано устное предупреждение!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MiXa
сообщение 17.2.2015, 8:06
Сообщение #3


Стаж: 12 лет

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

можно просто AFK Manager подредактировать, изменить в нем флаг и все :)


Допомога з встановлення / налаштування / оновлення за $ :>>> Сервери \ Моди \ Плагіни \ Модулі
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
semenbiysk
сообщение 17.2.2015, 8:07
Сообщение #4
Стаж: 12 лет

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

Цитата(MiXa @ 17.2.2015, 12:06) *
можно просто AFK Manager подредактировать, изменить в нем флаг и все :)

ну так вот где бы взять нормальный...в исходнике да редактировать?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MiXa
сообщение 17.2.2015, 8:23
Сообщение #5


Стаж: 12 лет

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

есть такой Simple AFK Manager
такой AFK Manager v1.2
и такой AFK Manager v1.6 by Leon McVeran

или заказывай :)


Допомога з встановлення / налаштування / оновлення за $ :>>> Сервери \ Моди \ Плагіни \ Модулі
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя WarDeN4ik
сообщение 17.2.2015, 8:45
Сообщение #6


Стаж: 12 лет

Сообщений: 451
Благодарностей: 142
Полезность: 490

AFK Control
Код:
/*
neygomon created ^_^ | http://www.neugomon.ru
Original code: Freedo.m
*/

#include <amxmodx>
#include <fakemeta>
#include <colorprint>
#pragma semicolon 1

#define ACCESS_LEVEL_IMMUNITY (ADMIN_MENU|ADMIN_LEVEL_H) // Уровень доступа позволяющий беспрепятственно сидеть в зрителях
#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 NOROUND // Включает поддержку серверов с бесконечным раундом. Например CSDM, GunGame
#define BOMB_TRANSFER // Передавать ли бомбу игрокам, если игрок AFK.
// [Закомментируйте, если хотите, чтобы бомба просто выкидывалась]
// !!! Включение прибавит чутка нагрузки !!!
#if defined NOROUND
#include <hamsandwich>
#endif
#define get_bit(%1,%2) (%1 & (1 << (%2 & 31)))
#define set_bit(%1,%2) %1 |= (1 << (%2 & 31))
#define clr_bit(%1,%2) %1 &= ~(1 << (%2 & 31))

new Float:g_fOldOrigin[33][3], Float:g_fOldAngles[33][3];
new g_iBitValid, g_iWarning[33];
new g_count[33];
new name[32];
new players[32], pnum;

public plugin_init()
{
register_plugin("Afk Control", "0.5", "neygomon");
#if defined NOROUND
RegisterHam(Ham_Spawn, "player", "PlrSpwn_Post", true);
#else
register_event("HLTV", "RoundStart", "a", "1=0", "2=0");
#endif
set_task(TIME_SPECT_CHECK, "SpectatorCheck", .flags = "b");
}

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

public client_disconnect(id)
clr_bit(g_iBitValid, id);
#if defined NOROUND
public PlrSpwn_Post(id)
{
if(is_user_alive(id))
set_task(1.0, "CheckSpawn_Pos", id);
}
#else
public RoundStart()
set_task(1.0, "CheckSpawn_Pos");
#endif
public CheckSpawn_Pos(id)
{
#if defined NOROUND
g_iWarning[id] = 0;

pev(id, pev_origin, g_fOldOrigin[id]);
pev(id, pev_angles, g_fOldAngles[id]);
#else
get_players(players, pnum, "ah");
for(new i; i < pnum; i++)
{
g_iWarning[players[i]] = 0;

pev(players[i], pev_origin, g_fOldOrigin[players[i]]);
pev(players[i], pev_angles, g_fOldAngles[players[i]]);
}
if(!task_exists(87892789))
set_task(TIME_AFK_CHECK, "AfkCheck", 87892789, .flags="b");
else
change_task(87892789, TIME_AFK_CHECK);
#endif
}

public AfkCheck()
{
get_players(players, pnum, "ah");
for(new i; i < pnum; i++)
{
new Float:fNewOrigin[3], Float:fNewAngles[3];
pev(players[i], pev_origin, fNewOrigin);
pev(players[i], pev_angles, fNewAngles);
if(xs_vec_equal(g_fOldOrigin[players[i]], fNewOrigin) && xs_vec_equal(g_fOldAngles[players[i]], fNewAngles))
{
get_user_name(players[i], name, charsmax(name));

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

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

public SpectatorCheck()
{
if(get_playersnum() < MIN_PLAYERS_CHECK) return;
static players[32], pcount;
get_players(players, pcount, "h");
for(new i; i < pcount; i++)
{
if(!get_bit(g_iBitValid, players[i]) || get_user_flags(players[i]) & ACCESS_LEVEL_IMMUNITY) continue;
switch(get_pdata_int(players[i], 114))
{
case 0, 3: if(++g_count[players[i]] >= MAX_SPECT_CHECK_PL)
{
get_user_name(players[i], name, charsmax(name));
PrintChat(0, _, _, "^1[^4AFKControl^1] ^4Игрок^3 %s ^4удален за длительное нахождение в спектрах.", name);
server_cmd("kick #%d ^"Вы были кикнуты из-за длительного нахождения в зрителях.^"", get_user_userid(players[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];
}

Ставишь тут флаг главного админа и всё
Код:
#define ACCESS_LEVEL_IMMUNITY (ADMIN_MENU|ADMIN_LEVEL_H)

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
semenbiysk
сообщение 17.2.2015, 8:48
Сообщение #7
Стаж: 12 лет

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

Цитата(WarDeN4ik @ 17.2.2015, 12:45) *
AFK Control
Код:
/*
neygomon created ^_^ | http://www.neugomon.ru
Original code: Freedo.m
*/

#include <amxmodx>
#include <fakemeta>
#include <colorprint>
#pragma semicolon 1

#define ACCESS_LEVEL_IMMUNITY (ADMIN_MENU|ADMIN_LEVEL_H) // Уровень доступа позволяющий беспрепятственно сидеть в зрителях
#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 NOROUND // Включает поддержку серверов с бесконечным раундом. Например CSDM, GunGame
#define BOMB_TRANSFER // Передавать ли бомбу игрокам, если игрок AFK.
// [Закомментируйте, если хотите, чтобы бомба просто выкидывалась]
// !!! Включение прибавит чутка нагрузки !!!
#if defined NOROUND
#include <hamsandwich>
#endif
#define get_bit(%1,%2) (%1 & (1 << (%2 & 31)))
#define set_bit(%1,%2) %1 |= (1 << (%2 & 31))
#define clr_bit(%1,%2) %1 &= ~(1 << (%2 & 31))

new Float:g_fOldOrigin[33][3], Float:g_fOldAngles[33][3];
new g_iBitValid, g_iWarning[33];
new g_count[33];
new name[32];
new players[32], pnum;

public plugin_init()
{
register_plugin("Afk Control", "0.5", "neygomon");
#if defined NOROUND
RegisterHam(Ham_Spawn, "player", "PlrSpwn_Post", true);
#else
register_event("HLTV", "RoundStart", "a", "1=0", "2=0");
#endif
set_task(TIME_SPECT_CHECK, "SpectatorCheck", .flags = "b");
}

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

public client_disconnect(id)
clr_bit(g_iBitValid, id);
#if defined NOROUND
public PlrSpwn_Post(id)
{
if(is_user_alive(id))
set_task(1.0, "CheckSpawn_Pos", id);
}
#else
public RoundStart()
set_task(1.0, "CheckSpawn_Pos");
#endif
public CheckSpawn_Pos(id)
{
#if defined NOROUND
g_iWarning[id] = 0;

pev(id, pev_origin, g_fOldOrigin[id]);
pev(id, pev_angles, g_fOldAngles[id]);
#else
get_players(players, pnum, "ah");
for(new i; i < pnum; i++)
{
g_iWarning[players[i]] = 0;

pev(players[i], pev_origin, g_fOldOrigin[players[i]]);
pev(players[i], pev_angles, g_fOldAngles[players[i]]);
}
if(!task_exists(87892789))
set_task(TIME_AFK_CHECK, "AfkCheck", 87892789, .flags="b");
else
change_task(87892789, TIME_AFK_CHECK);
#endif
}

public AfkCheck()
{
get_players(players, pnum, "ah");
for(new i; i < pnum; i++)
{
new Float:fNewOrigin[3], Float:fNewAngles[3];
pev(players[i], pev_origin, fNewOrigin);
pev(players[i], pev_angles, fNewAngles);
if(xs_vec_equal(g_fOldOrigin[players[i]], fNewOrigin) && xs_vec_equal(g_fOldAngles[players[i]], fNewAngles))
{
get_user_name(players[i], name, charsmax(name));

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

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

public SpectatorCheck()
{
if(get_playersnum() < MIN_PLAYERS_CHECK) return;
static players[32], pcount;
get_players(players, pcount, "h");
for(new i; i < pcount; i++)
{
if(!get_bit(g_iBitValid, players[i]) || get_user_flags(players[i]) & ACCESS_LEVEL_IMMUNITY) continue;
switch(get_pdata_int(players[i], 114))
{
case 0, 3: if(++g_count[players[i]] >= MAX_SPECT_CHECK_PL)
{
get_user_name(players[i], name, charsmax(name));
PrintChat(0, _, _, "^1[^4AFKControl^1] ^4Игрок^3 %s ^4удален за длительное нахождение в спектрах.", name);
server_cmd("kick #%d ^"Вы были кикнуты из-за длительного нахождения в зрителях.^"", get_user_userid(players[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];
}

Ставишь тут флаг главного админа и всё
Код:
#define ACCESS_LEVEL_IMMUNITY (ADMIN_MENU|ADMIN_LEVEL_H)

это вот весь и есть плагин? никаких cfg файликов нет больше?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MiXa
сообщение 17.2.2015, 8:49
Сообщение #8


Стаж: 12 лет

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

semenbiysk, нет, все настраивается дефайнами:

Код:
#define ACCESS_LEVEL_IMMUNITY (ADMIN_MENU|ADMIN_LEVEL_H)    // Уровень доступа позволяющий беспрепятственно сидеть в зрителях
#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 NOROUND // Включает поддержку серверов с бесконечным раундом. Например CSDM, GunGame
#define BOMB_TRANSFER // Передавать ли бомбу игрокам, если игрок AFK.


Допомога з встановлення / налаштування / оновлення за $ :>>> Сервери \ Моди \ Плагіни \ Модулі
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
semenbiysk
сообщение 17.2.2015, 8:53
Сообщение #9
Стаж: 12 лет

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

Цитата(MiXa @ 17.2.2015, 12:49) *
semenbiysk, нет, все настраивается дефайнами:

Код:
#define ACCESS_LEVEL_IMMUNITY (ADMIN_MENU|ADMIN_LEVEL_H)    // Уровень доступа позволяющий беспрепятственно сидеть в зрителях
#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 NOROUND // Включает поддержку серверов с бесконечным раундом. Например CSDM, GunGame
#define BOMB_TRANSFER // Передавать ли бомбу игрокам, если игрок AFK.

попробую сегодня этот исходник скомпилировать
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя WarDeN4ik
сообщение 17.2.2015, 9:08
Сообщение #10


Стаж: 12 лет

Сообщений: 451
Благодарностей: 142
Полезность: 490

semenbiysk. Забыл, там ещё желательно инклюд колорчата использовать от неугамона, как и сам плагин, в архиве все есть
AFK_Conrtol
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
semenbiysk
сообщение 17.2.2015, 9:11
Сообщение #11
Стаж: 12 лет

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

Цитата(WarDeN4ik @ 17.2.2015, 13:08) *
semenbiysk. Забыл, там ещё желательно инклюд колорчата использовать от неугамона, как и сам плагин, в архиве все есть
AFK_Conrtol

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