Разработчик
Скриптер
Проверенный
- Сообщения
- 2,751
- Реакции
- 3,014
- Помог
- 61 раз(а)
Накатал приблизительный код для проверки на AFK игрока с бомбой. Не проверял, но терзают сомнения, что можно сделать лучше.
Каковы ваши предложения по улучшению?
p.s: даже не знаю, работает ли этот код
Каковы ваши предложения по улучшению?
p.s: даже не знаю, работает ли этот код
Код:
#include <amxmodx>
#include <reapi>
new g_iBombGuy;
enum { TASKID_CheckBomberAFK = 1337 };
const Float:CHECK_INTERVAL = 5.0;
public plugin_init()
{
RegisterHookChain(RG_CBasePlayer_MakeBomber, "CBasePlayer_MakeBomber", .post = true);
register_event_ex("BombDrop", "hEvent_BombDrop", RegisterEvent_Single, "4=1");
}
public CBasePlayer_MakeBomber(id)
{
g_iBombGuy = id;
server_print(" ::::::::::::::> CBasePlayer_MakeBomber(%i)", id);
set_task(CHECK_INTERVAL, "TASK_CheckBomberAFK", .id = id + TASKID_CheckBomberAFK, .flags = "b");
}
public hEvent_BombDrop()
{
enum { arg_X = 1, arg_Y, arg_Z, arg_flag };
remove_task(g_iBombGuy + TASKID_CheckBomberAFK);
g_iBombGuy = 0;
server_print(" <:::::::::::::: hEvent_BombDrop(%i,%i,%i,%i)",
read_data(arg_X), read_data(arg_Y), read_data(arg_Z), read_data(arg_flag)
);
}
public TASK_CheckBomberAFK(id)
{
id -= TASKID_CheckBomberAFK;
if(g_iBombGuy != id)
{
remove_task(id + TASKID_CheckBomberAFK);
}
if(get_gametime() - get_member(id, m_fLastMovement) >= 15.0)
{
rg_drop_item(id, "weapon_c4");
server_print(" =>>>>>>>>>>> TASK_CheckBomberAFK(%i) DROP BOMB FROM AFK.", id);
}
}
Последнее редактирование: