I made a slight tweak to this to put a threshold (cvar) on after how many seconds they are considered reconnecting. So if a player reconnects between 0 and 30 seconds, it's considered a reconnect, beyond 30 seconds is not.
PHP Code:
#include <amxmodx>
new Trie:g_tReconnect;
new g_szAuthID[ MAX_PLAYERS + 1 ][ 34 ];
new g_pReconnectSecs;
public plugin_init()
{
register_plugin( "Player Reconnect Reason" , "0.2" , "SmileY" );
g_pReconnectSecs = register_cvar( "pr_secondthreshold" , "30" );
g_tReconnect = TrieCreate();
}
public plugin_end()
{
TrieDestroy( g_tReconnect );
}
public client_disconnect(id)
{
TrieSetCell( g_tReconnect , g_szAuthID[ id ] , get_systime() );
}
public client_putinserver( id )
{
new iLeaveTime;
get_user_authid( id , g_szAuthID[ id ] , charsmax( g_szAuthID[] ) );
if ( TrieGetCell( g_tReconnect , g_szAuthID[ id ] , iLeaveTime ) )
{
if ( ( get_systime() - iLeaveTime ) <= get_pcvar_num( g_pReconnectSecs ) )
{
server_print( "%d" , ( get_systime() - iLeaveTime ) );
set_task( 5.0 ,"SHOW_Message" , id );
}
}
}
public SHOW_Message( id )
{
if ( is_user_connected( id ) )
{
new szName[ 32 ];
get_user_name( id , szName , charsmax( szName ) );
TrieDeleteKey( g_tReconnect , g_szAuthID[ id ] );
client_print( 0 , print_chat , "[RETRY BOT] %s reconnected to server!" , szName );
}
}
__________________