Quote:
Originally Posted by bigdaddy424
Can you explain the use of using a task instead of subtracting @disonnected get_systime() with the one from @putinserver
|
Code:
It is check when the user connecting to the server
public client_putinserver( id )
{
Load the data from nvault
UseNvault( id, false )
after loading the data check if this user has joined before or not and if he is not then read the current time
if( !g_iPlayer[ id ][ First_Seen ] ) g_iPlayer[ id ][ First_Seen ] = get_systime( );
I see this way is better than saves get_user_time so if i used that way it gonna be like this g_iPlayer[ id ][ Time_Played ] += get_user_time( id ) / 60 and i need to use this way everytime when return it
But using task for check the time every second when connected to the server is faster and better
set_task( 1.0, "DisplayTimePlayed", id + TASK_TIME_PLAYED, .flags = "b" ); // Faster than get_user_time
}
}
public client_disconnected( id )
{
if( !g_iPlayer[ id ][ bBot_HLTV ] )
{
Read the current time every time when the user left the server
g_iPlayer[ id ][ Last_Seen ] = get_systime( );
UseNvault( id, true ); // save the data
Clear the data
arrayset( g_iPlayer[ id ][ Name ], 0, sizeof( g_iPlayer[ ][ Name ] ) );
arrayset( g_iPlayer[ id ][ AuthID ], 0, sizeof( g_iPlayer[ ][ AuthID ] ) );
arrayset( g_iPlayer[ id ][ IP ], 0, sizeof( g_iPlayer[ ][ IP ] ) );
arrayset( g_iPlayer[ id ][ Time_Played ], 0, sizeof( g_iPlayer[ ][ Time_Played ] ) );
arrayset( g_iPlayer[ id ][ First_Seen ], 0, sizeof( g_iPlayer[ ][ First_Seen ] ) );
arrayset( g_iPlayer[ id ][ Last_Seen ], 0, sizeof( g_iPlayer[ ][ Last_Seen ] ) );
arrayset( g_iPlayer[ id ][ bBot_HLTV ], false, sizeof( g_iPlayer[ ][ bBot_HLTV ] ) );
remove_task( id + TASK_TIME_PLAYED );
}
}
__________________