Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- -------------------------------------------------------------------------------------
- * Include made by * aka Dayrion.
- public OnPlayerUnPause(playerid, time);
- - When a player return in game after being AFK. Return the time which he were AFK in seconds.
- public OnPlayerPause(playerid);
- - When a player back to the desktop or press ESC.
- bool:IsPlayerPaused(playerid);
- - Return if, or not, a player is in pause.
- -------------------------------------------------------------------------------------
- */
- // ===================================================================================================================================================
- #tryinclude <a_samp>
- #tryinclude <YSI\y_hooks>
- #if defined _included_ji_afkdetect
- #endinput
- #endif
- #if !defined MAX_PLAYERS
- #error "You must have the lastest version of SAMP (0.3.7) or include it (a_samp) before this one."
- #endif
- #if !defined hook
- #error "You must have latest version of y_hooks."
- #endif
- #define _included_ji_afkdetect
- #if !defined MAX_TIME_ALLOWED
- #define MAX_TIME_ALLOWED 5 // sec
- #endif
- #if !defined INTERVAL_AFK_DETECT
- #define INTERVAL_AFK_DETECT 800 // ms
- #endif
- // ===================================================================================================================================================
- forward OnPlayerUnPause(playerid, time);
- forward OnPlayerPause(playerid);
- //bool:IsPlayerPaused(playerid);
- // ===================================================================================================================================================
- static
- PlayerAFK[MAX_PLAYERS],
- AFKDetect[MAX_PLAYERS],
- v_Ji_TAFK;
- // ===================================================================================================================================================
- #if defined FILTERSCRIPT
- hook OnFilterScriptInit()
- {
- v_Ji_TAFK = SetTimer("Ji_TAFK", INTERVAL_AFK_DETECT, true);
- }
- hook OnFilterScriptExit()
- {
- KillTimer(v_Ji_TAFK);
- }
- #else
- hook OnGameModeInit()
- {
- v_Ji_TAFK = SetTimer("Ji_TAFK", INTERVAL_AFK_DETECT, true);
- }
- hook OnGameModeExit()
- {
- KillTimer(v_Ji_TAFK);
- }
- #endif
- // ===================================================================================================================================================
- hook OnPlayerUpdate(playerid)
- {
- AFKDetect[playerid] = gettime();
- }
- stock
- bool:IsPlayerPaused(playerid)
- return PlayerAFK[playerid] > 0 ? true : false;
- forward Ji_TAFK();
- public Ji_TAFK()
- {
- for(new j = GetPlayerPoolSize(); j > 0; j--)
- {
- if(!IsPlayerConnected(j))
- continue;
- if(gettime() - AFKDetect[j] > MAX_TIME_ALLOWED && PlayerAFK[j] == 0)
- {
- PlayerAFK[j] = AFKDetect[j];
- CallRemoteFunction("OnPlayerPause", "i", j);
- }
- else if(gettime() - AFKDetect[j] < MAX_TIME_ALLOWED && PlayerAFK[j] > 0)
- {
- CallRemoteFunction("OnPlayerUnPause", "ii", j, (gettime() - PlayerAFK[j]) + MAX_TIME_ALLOWED);
- PlayerAFK[j] = 0;
- }
- }
- return 1;
- }
Add Comment
Please, Sign In to add comment