#define TEMPO_AFK 5
new AFK[MAX_PLAYERS];
enum pPos
{
Float:LastX,
Float:LastY,
Float:LastZ,
}
new PlayerLastPos[MAX_PLAYERS][pPos], PlayerAfkTicks[MAX_PLAYERS], Float:PlayerCurrentPos[3];
forward TempoAfk(playerid);
public TempoAfk(playerid)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
GetPlayerPos(i, PlayerCurrentPos[0], PlayerCurrentPos[1], PlayerCurrentPos[2]);
if(!floatcmp(PlayerCurrentPos[0], PlayerLastPos[i][LastX]) && !floatcmp(PlayerCurrentPos[1], PlayerLastPos[i][LastY]))
{
PlayerAfkTicks[i] ++;
}
else
{
PlayerAfkTicks[i] = 0;
}
PlayerLastPos[i][LastX] = PlayerCurrentPos[0];
PlayerLastPos[i][LastY] = PlayerCurrentPos[1];
PlayerLastPos[i][LastZ] = PlayerCurrentPos[2];
if(PlayerAfkTicks[i] == TEMPO_AFK*60)
{
AFK[i] = 1;
SendClientMessage(i, VERMELHO_ESCURO, "[ ANTI AFK ] Voce foi Bloqueado de upar por suspeita de Ausencia");
TextDrawShowForPlayer(i,TextAfk1);
TextDrawShowForPlayer(i,TextAfk2);
TextDrawShowForPlayer(i,TextAfk3);
}
}
return 1;
}
olha,nгo entendi a sua duvida,mais dк uma olhada em outros sitemas anti afk..
https://sampforum.blast.hk/showthread.php?tid=139081 https://sampforum.blast.hk/showthread.php?tid=320242 https://sampforum.blast.hk/showthread.php?tid=171808 https://sampforum.blast.hk/showthread.php?tid=142409 |
TEMPO_AFK * 60
// Tempo AFK = 5
#define TEMPO_AFK 5 // Em minutos
new AFK[MAX_PLAYERS];
enum pPos
{
Float:LastX,
Float:LastY,
Float:LastZ,
}
new PlayerLastPos[MAX_PLAYERS][pPos], PlayerAfkTicks[MAX_PLAYERS], Float:PlayerCurrentPos[3];
forward TempoAfk();
public TempoAfk()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
GetPlayerPos(i, PlayerCurrentPos[0], PlayerCurrentPos[1], PlayerCurrentPos[2]);
if(!floatcmp(PlayerCurrentPos[0], PlayerLastPos[i][LastX]) && !floatcmp(PlayerCurrentPos[1], PlayerLastPos[i][LastY]))
{
PlayerAfkTicks[i] ++; // Passado 1 segundo aumenta o contador
}
else
{
PlayerAfkTicks[i] = 0;
}
PlayerLastPos[i][LastX] = PlayerCurrentPos[0];
PlayerLastPos[i][LastY] = PlayerCurrentPos[1];
PlayerLastPos[i][LastZ] = PlayerCurrentPos[2];
if(PlayerAfkTicks[i] == TEMPO_AFK * 60000) // assim fica 5 minutos
{
AFK[i] = 1;
SendClientMessage(i, VERMELHO_ESCURO, "[ ANTI AFK ] Voce foi Bloqueado de upar por suspeita de Ausencia");
TextDrawShowForPlayer(i,TextAfk1);
TextDrawShowForPlayer(i,TextAfk2);
TextDrawShowForPlayer(i,TextAfk3);
}
}
return 1;
}
// OnGameModeInit
SetTimer("TempoAfk", 1000, true);
Tente:
pawn Код:
|
forward TempoAfk();
public TempoAfk()
forward TempoAfk(playerid);
public TempoAfk(playerid)
pawn Код:
pawn Код:
|
Nгo hб necessidade de usar o argumento " playerid " jб que se trata de um loop na funзгo que verifica todos os ids, alйm de " playerid " nгo ser usado na funзгo.
Agora se vocк estб fazendo com argumentos, use SetTimerEx. |