Como hacer esto...
#1

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:

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
IsPlayerNPC(playerid)


Saludos
Reply
#2

pawn Код:
public OnPlayerSpawn(playerid)
{
    if(IsPlayerNPC(playerid))return 1;
    KillTimer(TAFK[playerid]);
    KillTimer(TFuera[playerid]);
    TAFK[playerid] = SetTimerEx("AFK", TIEMPO, 1, "i", playerid);
    return 1;
}
PD: si ya tenes la respuesta xq no "jugas" con el codigo, aprendes mucho mas.
Reply
#3

Gracias xD
Lo voy a probar
Saludos
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)