Kod:
#include <amxmodx>
#include <reapi>
#include <fakemeta>
#include <dynamic_time>
new const tag[] = "CSDURAGI"
new slay_time;
new Float:origin[MAX_CLIENTS+1][3];
new afk_sayisi[MAX_CLIENTS+1];
new afk_kick
new bool:sure_kontrol[MAX_CLIENTS+1];
new bool:kontrolden_gecti[MAX_CLIENTS+1];
new Float:sure[MAX_CLIENTS+1];
new afk_maxplayer;
new afk_tuskontrol;
public plugin_init()
{
register_plugin("Afk Kicker [UPGRADE]","0.1","Leeyé");
RegisterHookChain(RG_CSGameRules_PlayerSpawn,"oyuncudogunca",1);
RegisterHookChain(RG_CSGameRules_PlayerKilled,"oyuncuolunce",1);
bind_pcvar_num(create_cvar("afk_slaytime","15"),slay_time)
bind_pcvar_num(create_cvar("afk_kick","1"),afk_kick)
bind_pcvar_num(create_cvar("afk_maxplayer","20"),afk_maxplayer)
bind_pcvar_num(create_cvar("afk_tuskontrol","1"),afk_tuskontrol)
register_forward(FM_CmdStart, "kontrol");
register_clcmd("say /afkkick","bilgi");
register_clcmd("say","kgec");
register_clcmd("say_team","kgec");
//set_task(30.0,"zamankontrol");
}
public kgec(const id)
{
if(!kontrolden_gecti[id])
{
kontrolden_gecti[id] = true;
}
}
public client_putinserver(id)
{
afk_sayisi[id] = 0;
}
public bilgi(const id)
{
client_print_color(id,id,"^4[%s] - ^3AFK Kicker: ^4[^1%s^4]",tag,afk_kick ? "ACIK":"KAPALI");
}
public oyuncuolunce(const olen, const olduren)
{
remove_task(olen);
}/*
public zamankontrol()
{
new saat = get_dynamic_time(Time_Hour);
if(saat >= 22 || saat < 11)
{
if(afk_kick)
{
set_cvar_num("afk_kick",0);
client_print_color(0,0,"^4[%s - ^1DUYURU^4] - ^3AFK Kicker Otomatik Olarak Kapatildi.",tag);
client_print_color(0,0,"^4[%s - ^1DUYURU^4] - ^3AFK Kicker Otomatik Olarak Kapatildi.",tag);
client_print_color(0,0,"^4[%s - ^1DUYURU^4] - ^3AFK Kicker Otomatik Olarak Kapatildi.",tag);
client_print_color(0,0,"^4[%s - ^1DUYURU^4] - ^3AFK Kicker Otomatik Olarak Kapatildi.",tag);
}
}
else
{
if(!afk_kick)
{
set_cvar_num("afk_kick",1);
client_print_color(0,0,"^4[%s - ^1DUYURU^4] - ^3AFK Kicker Otomatik Olarak Acildi.",tag);
client_print_color(0,0,"^4[%s - ^1DUYURU^4] - ^3AFK Kicker Otomatik Olarak Acildi.",tag);
client_print_color(0,0,"^4[%s - ^1DUYURU^4] - ^3AFK Kicker Otomatik Olarak Acildi.",tag);
client_print_color(0,0,"^4[%s - ^1DUYURU^4] - ^3AFK Kicker Otomatik Olarak Acildi.",tag);
}
}
set_task(30.0,"zamankontrol");
}*/
public kontrol(id,handle)
{
if(!is_user_alive(id) || !sure_kontrol[id] || kontrolden_gecti[id] || get_entvar(id,var_flags) & FL_FROZEN || !afk_tuskontrol)
{
return FMRES_IGNORED
}
static iButton;iButton = get_uc(handle, UC_Buttons);
if(!(iButton & IN_FORWARD) && !(iButton & IN_BACK) && !(iButton & IN_MOVELEFT) && !(iButton & IN_MOVERIGHT) && !(iButton & IN_DUCK) && !(iButton & IN_JUMP))
{
kontrolden_gecti[id] = true;
}
if(iButton & IN_FORWARD && sure[id] <= get_gametime() || iButton & IN_BACK && sure[id] <= get_gametime() || iButton & IN_MOVELEFT && sure[id] <= get_gametime() || iButton & IN_MOVERIGHT && sure[id] <= get_gametime() || iButton & IN_DUCK && sure[id] <= get_gametime() || iButton & IN_JUMP && sure[id] <= get_gametime())
{
user_kill(id);
client_print_color(id,id,"^4[%s] - ^3AFK Oldugunuz icin slaylandiniz.",tag);
afk_sayisi[id]++;
new players[32],inum;
get_players(players,inum);
new pPlayerName[32]
get_user_name(id, pPlayerName, 31)
if(afk_sayisi[id] >= 3 && afk_kick && inum > afk_maxplayer)
{
if(get_user_flags(id) & ADMIN_LEVEL_B)
{
rg_set_user_team(id, TEAM_SPECTATOR)
client_print_color(0, print_team_red, "%d adli yetkili 3 el afk kaldigi icin spec atildi", pPlayerName)
}
else
{
server_cmd("kick #%d ^"AFK OLDUGUNUZ ICIN KICKLENDINIZ^"",get_user_userid(id));
client_print_color(0, print_team_red, "%d adli oyuncu 3 el afk kaldigi icin kicklendi!", pPlayerName)
}
afk_sayisi[id] = 0
}
sure[id] = get_gametime() + float(slay_time);
}
return FMRES_IGNORED
}
public oyuncudogunca(const id)
{
sure[id] = get_gametime() + float(slay_time);
kontrolden_gecti[id] = false;
sure_kontrol[id] = false;
set_task(0.1,"suretrue",id);
set_task(2.0,"vericek",id);
}
public suretrue(const id)
{
sure_kontrol[id] = true;
}
public vericek(const id)
{
if(is_user_connected(id))
{
new Float:origin_s[3];
get_entvar(id,var_origin,origin_s);
origin[id][0] = origin_s[0];
origin[id][1] = origin_s[1];
origin[id][2] = origin_s[2];
set_task(float(slay_time),"oldur",id);
}
}
public oldur(const id)
{
if(is_user_connected(id))
{
new Float:origin1[3];
get_entvar(id,var_origin,origin1);
if(origin[id][0] == origin1[0] && origin[id][1] == origin1[1] && origin[id][2] == origin1[2] && is_user_alive(id) && !(get_entvar(id,var_flags) & FL_FROZEN))
{
afk_sayisi[id]++;
client_print_color(id,id,"^4[%s] - ^3AFK Oldugunuz icin slaylandiniz.",tag);
new players[32],inum;
get_players(players,inum);
new pPlayerName[32]
get_user_name(id, pPlayerName, 31)
if(afk_sayisi[id] >= 3 && afk_kick && inum > afk_maxplayer)
{
if(get_user_flags(id) & ADMIN_LEVEL_B)
{
rg_set_user_team(id, TEAM_SPECTATOR)
client_print_color(0, print_team_red, "%d adli yetkili 3 el afk kaldigi icin spec atildi", pPlayerName)
}
else
{
server_cmd("kick #%d ^"AFK OLDUGUNUZ ICIN KICKLENDINIZ^"",get_user_userid(id));
client_print_color(0, print_team_red, "%d adli oyuncu 3 el afk kaldigi icin kicklendi!", pPlayerName)
}
afk_sayisi[id] = 0;
}
user_kill(id);
}
}
})

