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

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

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

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

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

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

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

Ищу простенький АФК-кикер

Статус пользователя g0ldenman
сообщение 9.2.2016, 12:40
Сообщение #1


Стаж: 10 лет

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

Ищу простенький АФК-кикер - стоит игрок на респе больше 20 секунд недвижимый - кик его с сервера.
И что-бы:
1) никаких дополнительных предупреждений
2) никаких звуков
3) чтобы не кикало в других местах карты, только на респе
4) максимально короткий код и безглючная работа. Чтобы не лагал сервер.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Danjkeee^
сообщение 9.2.2016, 14:57
Сообщение #2
Стаж: 14 лет
Город: Волгоград

Сообщений: 628
Благодарностей: 215
Полезность: 508

1) Берешь обычный афк кикер
2) Вырезаешь звуки\оповещения в чат
3) Делаешь проверку на зону покупки
Все, готово.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя g0ldenman
сообщение 9.2.2016, 15:03
Сообщение #3


Стаж: 10 лет

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

Цитата(Danjkeee^ @ 9.2.2016, 14:57) *
1) Берешь обычный афк кикер
2) Вырезаешь звуки\оповещения в чат
3) Делаешь проверку на зону покупки
Все, готово.


И оставляешь лаги, глюки и всё что было в нём.

Плагин изначально должен быть маленьким и простым.
Неужели такого до сих пор не придумали???
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Danjkeee^
сообщение 9.2.2016, 15:20
Сообщение #4
Стаж: 14 лет
Город: Волгоград

Сообщений: 628
Благодарностей: 215
Полезность: 508

g0ldenman,
Найди нормальный без лагов и глюков, и сделай эти 3 действия сам. В чем проблема? Не устраивают плагины из интернета, составляй ТЗ, оплачивай и тебе напишут все что захочешь.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя g0ldenman
сообщение 9.2.2016, 15:55
Сообщение #5


Стаж: 10 лет

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

Цитата(Danjkeee^ @ 9.2.2016, 15:20) *
g0ldenman,
Найди нормальный без лагов и глюков, и сделай эти 3 действия сам. В чем проблема? Не устраивают плагины из интернета, составляй ТЗ, оплачивай и тебе напишут все что захочешь.


подросло поколение школьников, раздающие ценные советы.
если ты не знаешь ответ - то лучше молчать, чем раздавать бесценные советы гуглить, разбираться что кого устраивает или предлагать платные услуги.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Solo
сообщение 9.2.2016, 16:00
Сообщение #6


Стаж: 10 лет
Город: Україна

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

Учитесь пользоваться поиском AFK Control. Измененный от Freedo.m - самый норм плагин который есть по афк

Отредактировал: Solo, - 9.2.2016, 16:02
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя g0ldenman
сообщение 10.2.2016, 11:21
Сообщение #7


Стаж: 10 лет

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

Код:

#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <colorchat>

#define TIME_AFK_CHECK 15.0 // Интервал между проверками игроков, чем меньше значение, тем больше нагрузка на сервер.
#define MAX_AFK_WARNING 3 // Количество предупреждений после которых последует наказание.

#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.2", "Freedo.m | neygomon");
RegisterHam(Ham_Spawn, "player", "Ham_PlayerSpawn_Post", 1);
RegisterHam(Ham_Killed, "player", "Ham_PlayerKilled_Post", 1);
g_iMaxPlayers = get_maxplayers();
}

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);

server_cmd("amx_kick %s ^"Вы были кикнуты из-за длительного нахождения AFK^"", name);
ColorChat(0,NORMAL,"^04[AFK] ^01Игрок ^03%s ^01был кикнут с сервера, так как был AFK", name);
}
}
else
{
if(g_iWarning[id]) g_iWarning[id] = 0;
xs_vec_copy(fNewOrigin, g_fOldOrigin[id]);
xs_vec_copy(fNewAngles, g_fOldAngles[id]);
}
}

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];
}


Вот сам переделал, выкинул лишнее.
Есть сомнения правильно ли я реализовал строчки с киком
Так оно будет работать????
server_cmd("amx_kick %s ^"Вы были кикнуты из-за длительного нахождения AFK^"", name);
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Danjkeee^
сообщение 10.2.2016, 13:51
Сообщение #8
Стаж: 14 лет
Город: Волгоград

Сообщений: 628
Благодарностей: 215
Полезность: 508

g0ldenman, кик делай лучше через userid
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя [WPMG]PRoSToTeM@
сообщение 10.2.2016, 13:58
Сообщение #9
Стаж: 13 лет

Сообщений: 1514
Благодарностей: 1025
Полезность: 725

Этого в принципе будет достаточно:
Цитата
mp_autokick 1
mp_autokick_timeout 20
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя g0ldenman
сообщение 10.2.2016, 16:02
Сообщение #10


Стаж: 10 лет

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

Цитата(Danjkeee^ @ 10.2.2016, 13:51) *
g0ldenman, кик делай лучше через userid

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