No, the above only covers when he spawns and does not move.
This will slay when a player spawns and does not move, or stops moving for 30 seconds anywhere on the map.
PHP Code:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
new const Version[] = "0.2";
const TaskID = 324123;
new Float:g_fPrevOrigin[ MAX_PLAYERS + 1 ][ 3 ];
new g_pSlayTime;
public plugin_init()
{
register_plugin( "AFK Slay" , Version , "bugsy" );
register_logevent( "RoundStart" , 2 , "1=Round_Start" );
register_logevent( "RoundEnd" , 2 , "1=Round_End" );
g_pSlayTime = register_cvar( "as_slaytime" , "30" );
}
public client_connect( id )
{
g_fPrevOrigin[ id ][ 0 ] = 0.0;
}
public RoundStart()
{
new iPlayers[ 32 ] , iNum , iPlayer;
get_players( iPlayers , iNum , "ae" , "CT" );
for ( new i = 0 ; i < iNum ; i++ )
{
iPlayer = iPlayers[ i ];
pev( iPlayer , pev_origin , g_fPrevOrigin[ iPlayer ] );
}
set_task( get_pcvar_float( g_pSlayTime ) , "CheckAFK" , TaskID , .flags="b" );
}
public RoundEnd()
{
remove_task( TaskID );
}
public CheckAFK()
{
new iPlayers[ 32 ] , iNum , iPlayer , Float:fOrigin[ 3 ];
get_players( iPlayers , iNum , "ae" , "CT" );
for ( new i = 0 ; i < iNum ; i++ )
{
iPlayer = iPlayers[ i ];
pev( iPlayer , pev_origin , fOrigin );
if ( g_fPrevOrigin[ iPlayer ][ 0 ] && ( get_distance_f( fOrigin , g_fPrevOrigin[ iPlayer ] ) <= 25.0 ) )
{
user_kill( iPlayer )
}
g_fPrevOrigin[ iPlayer ][ 0 ] = fOrigin[ 0 ];
g_fPrevOrigin[ iPlayer ][ 1 ] = fOrigin[ 1 ];
g_fPrevOrigin[ iPlayer ][ 2 ] = fOrigin[ 2 ];
}
}
__________________