//My afk coding
CMD:afk(playerid,params[])
{
if( pInfo[playerid][Spawned] != 1)
{
ShowMessage(playerid, red, 9);
return 1;
}
if(InEvent[playerid] == 1)
{
ShowMessage(playerid, red, 11);
}
if(Afk[playerid] == 1)
{
SendClientMessage(playerid,red,"You are already /afk. Use the /back command to return to playing the game." );
}
else
{
Afk[playerid] = 1;
GetPlayerHealth(playerid, afkH[playerid]);
TogglePlayerControllable(playerid,0);
GetPlayerArmour(playerid, afkA[playerid]);
SetPlayerHealth(playerid,300000);
SetPlayerArmour(playerid,100000);
GetPlayerName(playerid, afkname, sizeof(afkname));
format(afkstring,sizeof(afkstring),"[AFK]%s",afkname);
SetPlayerName(playerid, afkstring);
SendClientMessage(playerid,red,"Your Status is now set to AFK. (You have 5mins or get kick)");
}
return 1;
}
CMD:afk(playerid,params[]) { new afkcount; if(GetTickCount() - afkcount < (60000)) return SendClientMessage(playerid, -1, "You need to wait 60 seconds before using this command again"); if( pInfo[playerid][Spawned] != 1) { ShowMessage(playerid, red, 9); return 1; } if(InEvent[playerid] == 1) { ShowMessage(playerid, red, 11); } if(Afk[playerid] == 1) { SendClientMessage(playerid,red,"You are already /afk. Use the /back command to return to playing the game." ); } else { Afk[playerid] = 1; afkcount = GetTickCount(); GetPlayerHealth(playerid, afkH[playerid]); TogglePlayerControllable(playerid,0); GetPlayerArmour(playerid, afkA[playerid]); SetPlayerHealth(playerid,300000); SetPlayerArmour(playerid,100000); GetPlayerName(playerid, afkname, sizeof(afkname)); format(afkstring,sizeof(afkstring),"[AFK]%s",afkname); SetPlayerName(playerid, afkstring); SendClientMessage(playerid,red,"Your Status is now set to AFK. (You have 5mins or get kick)"); } return 1; }
hello, below i have added you 60 seconds for a player needs to wait to go afk again.
Код:
CMD:afk(playerid,params[]) { new afkcount; if(GetTickCount() - afkcount < (60000)) return SendClientMessage(playerid, -1, "You need to wait 60 seconds before using this command again"); if( pInfo[playerid][Spawned] != 1) { ShowMessage(playerid, red, 9); return 1; } if(InEvent[playerid] == 1) { ShowMessage(playerid, red, 11); } if(Afk[playerid] == 1) { SendClientMessage(playerid,red,"You are already /afk. Use the /back command to return to playing the game." ); } else { Afk[playerid] = 1; afkcount = GetTickCount(); GetPlayerHealth(playerid, afkH[playerid]); TogglePlayerControllable(playerid,0); GetPlayerArmour(playerid, afkA[playerid]); SetPlayerHealth(playerid,300000); SetPlayerArmour(playerid,100000); GetPlayerName(playerid, afkname, sizeof(afkname)); format(afkstring,sizeof(afkstring),"[AFK]%s",afkname); SetPlayerName(playerid, afkstring); SendClientMessage(playerid,red,"Your Status is now set to AFK. (You have 5mins or get kick)"); } return 1; } |
afkcount = GetTickCount();
public OnPlayerTakeDamage(playerid, damagedid, Float:amount, weaponid)
new afkcount;
if((gettime() - variable[playerid]) < duration) // Player has not waited long enough
OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)
{
if(issuerid != INVALID_PLAYER_ID && issuerid != playerid) // The player was damaged by another player
{
SetPVarInt(playerid, "LastDamaged", gettime());
}
return 1;
}
CMD:afk(playerid, params[])
{
if((gettime() - GetPVarInt(playerid, "LastDamaged")) < 60) return SendClientMessage(playerid, -1, "You have been damaged recently, you can't use this command.");
// Rest of command...
}
Player takes damage in OnPlayerTakeDamage. You could also technically use OnPlayerGiveDamage.
If the player was damaged by another player, update their 'last damaged' variable to the current timestamp. PHP код:
PHP код:
https://sampwiki.blast.hk/wiki/OnPlayerGiveDamage https://sampwiki.blast.hk/wiki/Gettime https://sampwiki.blast.hk/wiki/GetTickCount |
// would it be
SetPVarInt(playerid, "LastDamaged", 0);