how to not check player afk - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (
https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (
https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: how to not check player afk (
/showthread.php?tid=648566)
how to not check player afk -
wallen - 24.01.2018
Made a simple AFK detection code, that everytime the players will be detected afk in a total of few minutes, it will get him into a interior with a text "type /lobby everytime you want to go afk blablabal", but once on /lobby how to make the AFK not detect there?
Код:
forward AFKCheck();
public AFKCheck()
{
new Float:Pos[3]; // creating an array variable of 3 values whose datatype is Float.
for(new i = 0; i < MAX_PLAYERS; i++) // Looping through the players.
{
GetPlayerPos(i,Pos[0],Pos[1],Pos[2]); // Gets the player position and saves into their variables.
if(IsPlayerInRangeOfPoint(i,2,Pos[0],Pos[1],Pos[2])) // If player is around the position (if player is at the same place)
{
AFK[i]++; // Increment the AFK variable (for every second if player is at same location, increase the AFK variable by 1)
}
if(AFK[i] == 60) // If it has been a minute for the player being at the same place
{
SetPlayerPos(i, -975.975708,1060.983032,1345.671875);
SetPlayerInterior(i, 10);
SetPlayerVirtualWorld(i, 10);
SetPlayerHealth(i, 9999);
ResetPlayerWeapons(i);
SendClientMessage(i, -1, "{EFB509}(INFO) Looks like you was afk.. next time type /lobby everytime you go afk.");
}
}
return 1;
}
Код:
CMD:lobby(playerid,params[])
{
new Float:health;
new interiorID = GetPlayerInterior(playerid);
GetPlayerHealth(playerid, health);
if(health > 90)
{
SetPlayerPos(playerid, -975.975708,1060.983032,1345.671875);
SetPlayerInterior(playerid,10);
SetPlayerVirtualWorld(playerid,10);
SetPlayerHealth(playerid, 9999);
ResetPlayerWeapons(playerid);
SendClientMessage(playerid, -1, "{EFB509}(INFO) You have teleported to the lobby! In order to go back use /back.");
}
else
{
if(interiorID == 0) return SendClientMessage(playerid, -1, "{c3c3c3}(INFO) Atleast 90hp is required in order to go to lobby.");
}
{
if(interiorID == 10) return SendClientMessage(playerid, -1, "{c3c3c3}You are already in the lobby! Use /back to return playing.");
}
return 1;
}
Re: how to not check player afk -
RogueDrifter - 24.01.2018
Set a bool: check true once player is afk and false once he's out or use IsPlayerInRangeOfPoint
Re: how to not check player afk -
wallen - 24.01.2018
Ohh right! , thanks solved XD
Re: how to not check player afk -
edyun - 24.01.2018
IsPlayerInRangeOfPoint , easiest way.
Re: how to not check player afk -
Sew_Sumi - 24.01.2018
Or if you are using Incognitos streamer, you could use OnPlayerEnterDynamicArea/OnPlayerExitDynamicArea, or IsPlayerInDynamicArea.