#pragma semicolon 1

#include <amxmodx>
#include <reapi>

new bool:cvar_afkslay,
Float:cvar_afkslay_time,
Float:player_origin[MAX_CLIENTS + 1][3];

public plugin_init() {
	register_plugin("ReAFK Slay", "1.3", "PurposeLess,suriyelikene");

	RegisterHookChain(RG_CBasePlayer_Spawn, "@CBasePlayer_Spawn", .post=false);
	RegisterHookChain(RG_CBasePlayer_Killed, "@CBasePlayer_Killed", .post=false);

	bind_pcvar_num(create_cvar("afk_slay", "1", _, _, true, 0.0, true, 1.0), cvar_afkslay);
	bind_pcvar_float(create_cvar("afk_slay_sure", "30", _, _, true, 15.0, true, 120.0), cvar_afkslay_time);
}

public client_disconnected(id)
{
	remove_task(id);
}

@CBasePlayer_Spawn(const id)
{
	remove_task(id);

	if(cvar_afkslay)
	{
		set_task(3.0, "@get_spawn", id);
	}
}

@CBasePlayer_Killed(const victim, const attacker)
{
	#pragma unused attacker
	remove_task(victim);
}

@get_spawn(const id)
{
	get_entvar(id, var_origin, player_origin[id]);
	set_task(cvar_afkslay_time, "@check_afk", id);
}

@check_afk(const id)
{
	if(is_user_connected(id) && is_user_alive(id) && same_origin(id))
	{
		user_silentkill(id);
		set_member(id,m_iDeaths, get_member(id, m_iDeaths) - 1 );
	}
}

bool:same_origin(const id)
{
	new Float:origin[3];
	get_entvar(id, var_origin, origin);

	for(new i; i < 3; i++)
	{
		if(origin[i] != player_origin[id][i])
		{
			return false;
		}
	}

	return true;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par }
*/
