Need help with checking if a players been afk longer than 15 mins :D
#1

So far ive got the afk and back system inplace but need help with checking if the player has been afk longer than 15 mins help? the timers in for the check but dont know what to put >_<'

Код:
#include <a_samp>

public OnGameModeInit()
{
SetTimer("AFKCHECKER", 900000, true);
}

forward AFKCHECKER

public OnCommandText(playerid, cmdtext[])
{
if(strcmp(cmd, "/afk", true) == 0)
        {
            if(IsPlayerConnected(playerid))
            {
			new PlayerText3D:playertextid;
    		new Float:X, Float:Y, Float:Z;
            ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
			format(string, sizeof(string), "* AFK: Player %s is now AFK ", sendername);
			TogglePlayerControllable(playerid, 0)
    		GetPlayerPos( playerid, X, Y, Z );
    		playertextid = CreatePlayer3DTextLabel(playerid, "AFK: %s is afk", COLOR_GREEN, x, y, z, 30);
    		Attach3DTextLabelToPlayer(playertextid, playerid, y, x, z)
    		return 1;
    		}
		}
		
if(strcmp(cmd, "/back", true) == 0)
        {
            if(IsPlayerConnected(playerid))
            {
            Delete3DTextLabel(playertextid);
			TogglePlayerControllable(playerid, 1)
            ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
			format(string, sizeof(string), "* AFK: Player %s is now BACK from AFK ", sendername);
			return 1;
			}
		}
}

public AFKCHECKER
{
}
Reply
#2

pawn Код:
// After #includes

new
    pAFKTimer[ MAX_PLAYERS ],
    isAFK[ MAX_PLAYERS ]
;

// OnPlayerConnect

pAFKTimer[ playerid ] = SetTimerEx( "getAFK", 900000, true, "i", playerid );
isAFK[ playerid ] = 0;

// OnPlayerUpdate

if ( isAFK[ playerid ] == 1 )
{
    new
        szString[ 128 ]
    ;

    format( szString, sizeof szString, "* %s is now back on the server.", getpName( playerid ) );

    SendClientMessageToAll( 0xFFFFFFAA, szString );
}

KillTimer( pAFKTimer[ playerid ] );
pAFKTimer[ playerid ] = SetTimerEx( "getAFK", 900000, true, "i", playerid );

// Add this somewhere on your script ( not in a callback / function ).

stock getpName( playerid )
{
    new
        pName[ 24 ]
    ;

    return GetPlayerName( playerid, pName, sizeof pName ), pName;
}

forward getAFK( playerid ); public getAFK( playerid )
{
    new
        szString[ 128 ]
    ;

    format( szString, sizeof szString, "* %s is now AFK.", getpName, playerid );

    SendClientMessageToAll( 0xFFFFFFAA, szString );

    isAFK[ playerid ] = 1;

    return 1;
}
Honestly, I don't know will that works or not, but you'll need to test it.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)