25.03.2018, 03:43
I'm trying to make a AFK system but it wont count the seconds a player is afk it only creates the chat bubble above the persons head.
PHP код:
public OnPlayerPause(playerid)
{
foreach(new i : Player)
{
new iAFK[75];
format(iAFK, sizeof(iAFK), "%s(%d) [Paused: %s secs]", ReturnPlayerName(i), i, number_format(playerData[i][pAFK]));
SetPlayerChatBubble(i, iAFK, COLOR_SERVER, 50.0, 10000);
CountAFK(i);
}
return 1;
}
forward CountAFK(playerid);
public CountAFK(playerid)
{
// for (new i = 0; i <= MAX_PLAYERS; i++)
// {
if (IsPlayerInGame(playerid) || playerData[playerid][pd_IsLoggedIn])
{
if(!playerData[playerid][pd_IsOnDuty])
{
playerData[playerid][pAFK]++;
}
}
//}
return 1;
}
stock bool:IsPlayerAFK(playerid)
{
if(playerData[playerid][pAFK] >= 5) return true;
return false;
}
stock number_format( num )
{
new stri[16], stro[16], i, v, p, d, l, n = num < 0;
format( stri, sizeof( stri ), "%d", num * ( n ? -1 : 1 ) );
l = strlen( stri ) - 1;
d = ( l - ( l % 3 ) ) / 3;
l = l + 1;
i = l + d;
p = l;
while ( i >= 0 )
{
v = l + d - i;
if ( v && !( v % 4 ) ) stro[i + n] = ',';
else stro[i + n] = stri[p--];
i--;
}
stro[0] = n ? '-' : stro[0];
return stro;
}