afkkick
Posted: 2011 Apr 15 15:49
Code: Select all
#define CHECK_FREQ 5 new const g_TextAfkTag[] = "[AFK]"; register_cvar("mp_afk_time_hud", "15")set_task(float(CHECK_FREQ),"checkPlayers",_,_,_,"b") public checkPlayers() { for (new i = 1; i <= get_maxplayers(); i++) { if (is_user_alive(i) && is_user_connected(i) && !is_user_bot(i) && !is_user_hltv(i) && g_spawned[i]) { new newangle[3] get_user_origin(i, newangle) if ( newangle[0] == g_oldangles[i][0] && newangle[1] == g_oldangles[i][1] && newangle[2] == g_oldangles[i][2] ) { g_afktime[i] += CHECK_FREQ check_afktime(i) if(!task_exists(i)) set_task(10.0, "uzdeti", i) } else { g_oldangles[i][0] = newangle[0] g_oldangles[i][1] = newangle[1] g_oldangles[i][2] = newangle[2] g_afktime[i] = 0 new name[32]; get_user_name(i, name, 31) deletei(name, g_TextAfkTag) remove_task(i) } } } return PLUGIN_HANDLED} public uzdeti(i){ new id = i if (g_afktime[id] >= get_cvar_num("mp_afk_time_hud")) { new name_p[32] get_user_name(id, name_p, 31) format(name_p, 31, "%s%s", g_TextAfkTag, name_p) set_user_name(id, name_p) }} public client_disconnect(id){ new name[32] get_user_name(id, name, 31) deletei(name, g_TextAfkTag)}
Code: Select all
deletei(text[], const what[]){ new pos = containi(text, what) new len, i; while(pos >= 0) { len = strlen(what) i = 0; while(text[pos+len+i] != 0) { text[pos+i] = text[pos+len+i] i++ } text[pos+i] = '^0' pos = containi(text, what) }}