SA-MP Forums Archive
How to make my system skip AFK players? So it doesn't put them in game. - 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 make my system skip AFK players? So it doesn't put them in game. (/showthread.php?tid=498716)



How to make my system skip AFK players? So it doesn't put them in game. - rangerxxll - 04.03.2014

I'm trying to make it so if a player is in the lobby and is afk, (paused) my system will bypass them and only teleport non-paused players into the round.

Here's some relevant code.

pawn Код:
CMD:ready(playerid, params[])
{
    if(IsPlayerReady[playerid] == 1)
    {
        return SendClientMessage(playerid,COLOR_GREY, "Error: You're already ready.");
    }
    if(GameProgress == 1)
    {
        return SendClientMessage(playerid,COLOR_GREY, "Error: You can't /ready when a game is in progress.");
    }
    if(intro[playerid] == 1)
    {
        return SendClientMessage(playerid,COLOR_GREY, "Error: You can't /ready when in the introduction.");
    }
    IsPlayerReady[playerid] = 1;
    LobbyCount++;
    new name[MAX_PLAYER_NAME+1];
    GetPlayerName(playerid, name, sizeof(name));
    new string[128];
    format(string,sizeof(string), "%s is ready to enter the Hunger Games Tournament.",name);
    SendClientMessageToAll(COLOR_GREEN, string);
    return 1;
}



Re: How to make my system skip AFK players? So it doesn't put them in game. - jakejohnsonusa - 04.03.2014

Do you have a system that checks to see if a player is AFK yet or do you need this as well?

SA-MP has not integrated the pause-check they use for the gamer-tag icon into code... so one has to be created instead.


Re: How to make my system skip AFK players? So it doesn't put them in game. - rangerxxll - 04.03.2014

Could you recommend a include for me? Thank you.


Re: How to make my system skip AFK players? So it doesn't put them in game. - TheFlyer - 05.03.2014

Check this

then it would work smth like this :P

pawn Код:
CMD:ready(playerid, params[])
{
    if(IsPlayerReady[playerid] == 1)
    {
        return SendClientMessage(playerid,COLOR_GREY, "Error: You're already ready.");
    }
    if(GameProgress == 1)
    {
        return SendClientMessage(playerid,COLOR_GREY, "Error: You can't /ready when a game is in progress.");
    }
    if(intro[playerid] == 1)
    {
        return SendClientMessage(playerid,COLOR_GREY, "Error: You can't /ready when in the introduction.");
    }
    if(!IsPlayerPause(playerid))
    {
        IsPlayerReady[playerid] = 1;
        LobbyCount++;
    }
    new name[MAX_PLAYER_NAME+1];
    GetPlayerName(playerid, name, sizeof(name));
    new string[128];
    format(string,sizeof(string), "%s is ready to enter the Hunger Games Tournament.",name);
    SendClientMessageToAll(COLOR_GREEN, string);
    return 1;
}
I added the ! on the IsPlayerPause to check that the player isn't paused

Test it to see if it works


Re: How to make my system skip AFK players? So it doesn't put them in game. - Kyance - 05.03.2014

https://sampforum.blast.hk/showthread.php?tid=490436

Download it, rename the include to "callbacks.inc" or w.e you want it
Then #include it

And "OnPlayerPause", add a variable which will set the player on pausing, and on "OnPlayerResume", it will disable it
For an example:

pawn Код:
public OnPlayerPause(playerid)
{
    AFK{ playerid } = true;
    return 1;
}

public OnPlayerResume(playerid, time)
{
    AFK{ playerid } = false;
    return 1;
}