SA-MP Forums Archive
[Ajuda]Uma ajudinha aki - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda]Uma ajudinha aki (/showthread.php?tid=249022)



[Ajuda]Uma ajudinha aki - Vinicius DarK - 16.04.2011

Ola Galera.

Eu queria saber Como Faz pra Chamar Uma Funзгo quando O Player Fica Certo Tempo sem se mecher.

Vlw.


Re: [Ajuda]Uma ajudinha aki - Diogo_Bras - 16.04.2011

Topo do gamemode:
pawn Код:
#include <a_samp>

#define COLOR_ROXO 0xAA3333AA
#define TEMPO 240000 // 4 Minutos em milisegundos

forward AFK(playerid);
forward Fora(playerid);

new Float:Posicoes[MAX_PLAYERS][6];
new TAFK[MAX_PLAYERS];
new TFora[MAX_PLAYERS];
new EstaAFK[MAX_PLAYERS] = 0;
OnPlayerDisconnect:
pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
   KillTimer(TAFK[playerid]);
   KillTimer(TFora[playerid]);
   return true;
}
OnPlayerSpawn:
pawn Код:
public OnPlayerSpawn(playerid)
{
   KillTimer(TAFK[playerid]);
   KillTimer(TFora[playerid]);
   TAFK[playerid] = SetTimerEx("AFK", TEMPO, 1, "i", playerid);
   return true;
}
Public AFK:
pawn Код:
public AFK(playerid)
{
   GetPlayerPos(playerid, Posicoes[playerid][0], Posicoes[playerid][1], Posicoes[playerid][2]);
   if(Posicoes[playerid][0] == Posicoes[playerid][3] && Posicoes[playerid][1] == Posicoes[playerid][4] && Posicoes[playerid][2] == Posicoes[playerid][5])
   {
      if(EstaAFK[playerid] == 0)
      {
         new string[256];
         new nome[MAX_PLAYER_NAME];
         GetPlayerName(playerid, nome, sizeof(nome));
         format(string, sizeof(string), "[SERVER] %s foi kikado do servidor. Razгo: AFK", nome);
         SendClientMessageToAll(COLOR_ROXO, string);
         Kick(playerid);
         return true;
      }
      else
      {
         Posicoes[playerid][3] = Posicoes[playerid][0];
         Posicoes[playerid][4] = Posicoes[playerid][1];
         Posicoes[playerid][5] = Posicoes[playerid][2];
         KillTimer(TAFK[playerid]);
         TAFK[playerid] = SetTimerEx("AFK", TEMPO, 1, "i", playerid);
         return true;
      }
   }
   else
   {
      Posicoes[playerid][3] = Posicoes[playerid][0];
      Posicoes[playerid][4] = Posicoes[playerid][1];
      Posicoes[playerid][5] = Posicoes[playerid][2];
      KillTimer(TAFK[playerid]);
      TAFK[playerid] = SetTimerEx("AFK", TEMPO, 1, "i", playerid);
      return true;
   }
}
Public Fora:
pawn Код:
public Fora(playerid)
{
   EstaAFK[playerid] = 0;
   return true;
}
OnPlayerText:
pawn Код:
public OnPlayerText(playerid, text[])
{
   if(EstaAFK[playerid] == 0)
   {
      TFora[playerid] = SetTimerEx("Fora", 60000, 1, "i", playerid);
      EstaAFK[playerid] = 1;
      return true;
   }
   else if(EstaAFK[playerid] == 1)
   {
      KillTimer(TFora[playerid]);
      TFora[playerid] = SetTimerEx("Fora", 60000, 1, "i", playerid);
      EstaAFK[playerid] = 1;
      return true;
   }
   return false;
}
Crйditos:
Lucas_Nicolas - Criador do sistema
GROVE4L - Base do sistema

Apenas identei o cуdigo, mais nada.


Re: [Ajuda]Uma ajudinha aki - Vinicius DarK - 16.04.2011

Vlw mano