#5

You don't need to make one.

Add this to an .inc file and include it in your script:

Код:
/*______________________________________________________________________________
						Auto AFK detector!
							By Lordz.
							 2013!
______________________________________________________________________________*/



#if defined _included_autoafk
 #endinput
#endif

#define _included_autoafk

#tryinclude <a_samp>

/*
native bool:IsPlayerPaused(playerid);
*/

new L_pTicks[MAX_PLAYERS],
	L_pAFK[MAX_PLAYERS],
	L_pisSpawned[MAX_PLAYERS];


stock ExecuteLAFK()
{
 SetTimer("L_AFKDETECT", 500, true);
 return 1;
}
forward L_AFKDETECT();

#if defined FILTERSCRIPT
public OnFilterScriptInit() { ExecuteLAFK(); CallLocalFunction("L_AFK_OnFS", ""); return 1; }
forward L_AFK_OnFS();
 #if defined _ALS_OnFilterScriptInit
  #undef OnFilterScriptInit
 #else
  #define _ALS_OnFilterScriptInit
 #endif

#define OnFilterScriptInit L_AFK_OnFS

#else
public OnGameModeInit() { ExecuteLAFK(); CallLocalFunction("L_AFK_OnGM", ""); return 1; }
forward L_AFK_OnGM();
 #if defined _ALS_OnGameModeInit
  #undef OnGameModeInit
 #else
  #define _ALS_OnGameModeInit
 #endif

#define OnGameModeInit L_AFK_OnGM
#endif

public OnPlayerUpdate(playerid)
{
 L_pTicks[playerid] = GetTickCount();
 if(L_pAFK[playerid] == 1)
 {
  L_pAFK[playerid] = 0;
  CallLocalFunction("OnPlayerResume", "i", playerid);
 }
 CallLocalFunction("L_AFK_OPU", "i", playerid);
 return 1;
}

forward L_AFK_OPU(playerid);

#if defined _ALS_OnPlayerUpdate
 #undef OnPlayerUpdate
#else
 #define _ALS_OnPlayerUpdate
#endif

#define OnPlayerUpdate L_AFK_OPU

public OnPlayerConnect(playerid)
{
 L_pAFK[playerid] = 0;
 L_pTicks[playerid] = 0;
 L_pisSpawned[playerid] = 0;
 CallLocalFunction("L_AFK_OPC", "i", playerid);
 return 1;
}

forward L_AFK_OPC(playerid);

#if defined _ALS_OnPlayerConnect
 #undef OnPlayerConnect
#else
 #define _ALS_OnPlayerConnect
#endif

#define OnPlayerConnect L_AFK_OPC

public OnPlayerSpawn(playerid)
{
 L_pisSpawned[playerid] = 1;
 CallLocalFunction("L_AFK_OPS", "i", playerid);
 return 1;
}

forward L_AFK_OPS(playerid);

#if defined _ALS_OnPlayerSpawn
 #undef OnPlayerSpawn
#else
 #define _ALS_OnPlayerSpawn
#endif

#define OnPlayerSpawn L_AFK_OPS

public OnPlayerDeath(playerid, killerid, reason)
{
 L_pisSpawned[playerid] = 0;
 CallLocalFunction("L_AFK_OPD", "iii", playerid, killerid, reason);
 return 1;
}

forward L_AFK_OPD(playerid, killerid, reason);

#if defined _ALS_OnPlayerDeath
 #undef OnPlayerDeath
#else
 #define _ALS_OnPlayerDeath
#endif

#define OnPlayerDeath L_AFK_OPD

public L_AFKDETECT()
{
 new tick = GetTickCount();
 for(new i; i< GetMaxPlayers(); i++)
 {
  if(!IsPlayerConnected(i)) continue;
  if(L_pAFK[i] != 0) continue;
  if(L_pisSpawned[i] != 1) continue;
  if((tick - L_pTicks[i]) >= 4500)
  {
   if(GetPlayerState(i) >= 1 && GetPlayerState(i) <= 3)
   {
	L_pAFK[i] = 1;
	CallLocalFunction("OnPlayerPause", "i", i);
   }
  }
 }
 return 1;
}

forward OnPlayerPause(playerid);
forward OnPlayerResume(playerid);

stock bool:IsPlayerPaused(playerid)
{
 if(L_pAFK[playerid] == 1) return true;
 else return false;
}
Credits go to Lordz.
Now after you included this, just use IsPlayerPaused(playerid).
I hope I helped!
Reply


Messages In This Thread
Idea - by Shaheen - 20.11.2016, 19:14
Re: Idea - by sampkinq - 20.11.2016, 19:27
Re: Idea - by Kaliber - 20.11.2016, 19:34
Re: Idea - by TwinkiDaBoss - 20.11.2016, 21:11
Re: Idea - by iamjems - 21.11.2016, 09:06
Re: Idea - by IceBilizard - 21.11.2016, 09:17
Re: Idea - by Shaheen - 26.11.2016, 19:05

Forum Jump:


Users browsing this thread: 2 Guest(s)