PDA

View Full Version : Innactive players


kalanerik99
25/06/2015, 08:52 PM
Hello
I have one question
How to get if player is in inactive state (look attachment)

Shall I do it:
-with timers and if player pos. is the same for like 1.5 mins (BAD WAY)
-or if player press (ESC....)button?
-IS THERE ANY FUNCTION TO GET IF PLAYER IS IN THAT STATE (look attachment)

Regards kalanerik99 (DARKBO$$)

Alex Magaņa
25/06/2015, 08:58 PM
http://forum.sa-mp.com/showthread.php?t=281590
http://forum.sa-mp.com/showthread.php?t=479616

kalanerik99
25/06/2015, 09:04 PM
Any other posibility?

Jefff
25/06/2015, 09:13 PM
new PlayaTick[MAX_PLAYERS];

bool:IsPlayerAFK(playerid)
{
return ( (GetTickCount() - PlayaTick[playerid] ) > 650);
}

public OnPlayerUpdate(playerid)
{
PlayaTick[playerid] = GetTickCount();
return 1;
}

kalanerik99
25/06/2015, 09:33 PM
How this should work what doest it do??????

I made this but nothing pls help

THIS IS REALLY SIMPLE DESIGN (2 SECONDS OF MAKING =) )

new PlayaTick[MAX_PLAYERS];

bool:IsPlayerAFK(playerid)
{
return ( (GetTickCount() - PlayaTick[playerid] ) > 650);
}

public OnPlayerUpdate(playerid)
{
new string[512],name[512];
PlayaTick[playerid] = GetTickCount();
foreach(new i : Player)
{
if(IsPlayerAFK(i))
{
GetPlayerName(i,name,sizeof(name));
format(string,sizeof(string),"%s is inactive",name);
SendClientMessageToAll(-1,string);
}
}
return 1;
}

Jefff
25/06/2015, 10:01 PM
new PlayaTick[MAX_PLAYERS], bool:PlayerAFK[MAX_PLAYERS char];

// OnGameModeInit
SetTimer("ScanPlayers",1000,true);

// OnPlayerConnect
PlayerAFK{playerid} = false;

// somewhere in GameMode
forward ScanPlayers();
public ScanPlayers()
{
static string[40], name[MAX_PLAYER_NAME], Tick;
Tick = GetTickCount();
foreach(new i : Player)
{
if(((Tick - PlayaTick[i)) > 750))
{
if(!PlayerAFK{i})
{
PlayerAFK{i} = true;
GetPlayerName(i,name,sizeof(name));
format(string,sizeof(string),"%s is inactive",name);
SendClientMessageToAll(-1,string);
}
}
else
{
if(PlayerAFK{i})
{
PlayerAFK{i} = false; // player is back from AFK
}
}
}
}

public OnPlayerUpdate(playerid)
{
PlayaTick[playerid] = GetTickCount();
return 1;
}

kalanerik99
25/06/2015, 10:03 PM
How would you do it without timer

Like me???

Jefff
25/06/2015, 10:05 PM
You can't show info without timer

kalanerik99
25/06/2015, 10:08 PM
Why not?