23.07.2011, 03:18
Hola, bueno tengo el FS de Anti-Afk de GROVE4L (muy bueno) y anda perfecto. Pero yo tengo como 10 bots en el server que estan quietos y otros moviendose. A los que no estan quietos no les pasa nada, pero a los que estan quietos los kickea este FS.. mi pregunta es.. que agrego para "no kickear" a los bots? xD
Aca el FS:
IsPlayerNPC(playerid)
Saludos
Aca el FS:
pawn Код:
#include <a_samp>
#define COLOR_ROJO 0xAA3333AA
#define TIEMPO 240000 // 4 Minutos en Milisegundos
forward AFK(playerid);
forward Fuera(playerid);
new Float:Posiciones[MAX_PLAYERS][6];
new TAFK[MAX_PLAYERS];
new TFuera[MAX_PLAYERS];
new EstaAFK[MAX_PLAYERS] = 0;
public OnPlayerDisconnect(playerid, reason)
{
KillTimer(TAFK[playerid]);
KillTimer(TFuera[playerid]);
return 1;
}
public OnPlayerSpawn(playerid)
{
KillTimer(TAFK[playerid]);
KillTimer(TFuera[playerid]);
TAFK[playerid] = SetTimerEx("AFK", TIEMPO, 1, "i", playerid);
return 1;
}
public AFK(playerid)
{
GetPlayerPos(playerid, Posiciones[playerid][0], Posiciones[playerid][1], Posiciones[playerid][2]);
if(Posiciones[playerid][0] == Posiciones[playerid][3] && Posiciones[playerid][1] == Posiciones[playerid][4] && Posiciones[playerid][2] == Posiciones[playerid][5])
{
if(EstaAFK[playerid] == 0)
{
new string[256];
new nombre[MAX_PLAYER_NAME];
GetPlayerName(playerid, nombre, sizeof(nombre));
format(string, sizeof(string), "[LS-RP] %s fue expulsado del servidor. Razon: AFK", nombre);
SendClientMessageToAll(COLOR_ROJO, string);
Kick(playerid);
return 1;
}
else
{
Posiciones[playerid][3] = Posiciones[playerid][0];
Posiciones[playerid][4] = Posiciones[playerid][1];
Posiciones[playerid][5] = Posiciones[playerid][2];
KillTimer(TAFK[playerid]);
TAFK[playerid] = SetTimerEx("AFK", TIEMPO, 1, "i", playerid);
return 1;
}
}
else
{
Posiciones[playerid][3] = Posiciones[playerid][0];
Posiciones[playerid][4] = Posiciones[playerid][1];
Posiciones[playerid][5] = Posiciones[playerid][2];
KillTimer(TAFK[playerid]);
TAFK[playerid] = SetTimerEx("AFK", TIEMPO, 1, "i", playerid);
return 1;
}
}
public Fuera(playerid)
{
EstaAFK[playerid] = 0;
return 1;
}
public OnPlayerText(playerid, text[])
{
if(EstaAFK[playerid] == 0)
{
TFuera[playerid] = SetTimerEx("Fuera", 60000, 1, "i", playerid);
EstaAFK[playerid] = 1;
return 1;
}
else if(EstaAFK[playerid] == 1)
{
KillTimer(TFuera[playerid]);
TFuera[playerid] = SetTimerEx("Fuera", 60000, 1, "i", playerid);
EstaAFK[playerid] = 1;
return 1;
}
return 0;
}
// By GROVE4L
Saludos