SA-MP Forums Archive
[Pedido] Suplemento no ANTI-AFK - 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: [Pedido] Suplemento no ANTI-AFK (/showthread.php?tid=374128)



Suplemento no ANTI-AFK - Ley - 01.09.2012

Olб, estou aqui pois percebi em meu servidor que quando o player fica em modo ausente ( AFK ) ele continua a ganhar salбrio...
E eu queria saber como arrumar isso.

SetTimer do salбrio
pawn Код:
SetTimer("Salario", 2400000, 1);
quando ganha o salбrio
pawn Код:
...if(Profissao[i] == PROF_DESEMPREGADO)
                {
                    quantia = dini_Int(banco, "Saldo");
                    SendClientMessage(i, 0xFFD39BAA, "(Salбrio) Seu salбrio foi pago de acordo com sua profissгo.");
                    SendClientMessage(i, 0xFFD39BAA, "(Salбrio) Vocк recebeu o seu seguro desemprego, R$110");
                    dini_IntSet(banco, "Saldo", quantia + 110);
                }
                else if(Profissao[i] == PROF_CAMINHONEIRO)
                {
                    quantia = dini_Int(banco, "Saldo");
                    format(str, sizeof(str), "(Salбrio) Vocк recebeu seu salбrio de R$520");
                    SendClientMessage(i, 0xFFD39BAA, str);
                    SendClientMessage(i, 0xFFD39BAA, "(Salбrio) Seu salбrio foi pago de acordo com sua profissгo.");
                    SendClientMessage(i, 0xFFD39BAA, "(Salбrio) O seu salбrio foi depositado automбticamente em sua conta bancбria!");
                    dini_IntSet(banco, "Saldo", quantia + 520);
                }
Oque devo por no if do AFK para bloquear que o player ausente ganhe salario?
E quando ele digitar o comando /online, que funзгo utilizar para que o settimer volte a contar?
Para por uma else com a mensagem "Vocк estб ausente, por tanto nгo recebeu seu salбrio."

Alguem ajuda?


Re: Suplemento no ANTI-AFK - Sky™ - 01.09.2012

pawn Код:
if(AFK[i] == 0)
{
    if(Profissao[i] == PROF_DESEMPREGADO)
    {
        quantia = dini_Int(banco, "Saldo");
        SendClientMessage(i, 0xFFD39BAA, "(Salбrio) Seu salбrio foi pago de acordo com sua profissгo.");
        SendClientMessage(i, 0xFFD39BAA, "(Salбrio) Vocк recebeu o seu seguro desemprego, R$110");
        dini_IntSet(banco, "Saldo", quantia + 110);
    }
    else if(Profissao[i] == PROF_CAMINHONEIRO)
    {
        quantia = dini_Int(banco, "Saldo");
        format(str, sizeof(str), "(Salбrio) Vocк recebeu seu salбrio de R$520");
        SendClientMessage(i, 0xFFD39BAA, str);
        SendClientMessage(i, 0xFFD39BAA, "(Salбrio) Seu salбrio foi pago de acordo com sua profissгo.");
        SendClientMessage(i, 0xFFD39BAA, "(Salбrio) O seu salбrio foi depositado automбticamente em sua conta bancбria!");
        dini_IntSet(banco, "Saldo", quantia + 520);
    }
}
else
{
    SendClientMessage(i, 0xFFD39BAA, "Vocк estб ausente e foi bloqueado de receber salario!");
    return 1;
}


Mano Ponhe assim Pois e ++ Seguro e se o cara voltar antes de receber o salario ele receberб normalmente manin pode usar esse tipo aki que й 10x melhor


Re: Suplemento no ANTI-AFK - VenoN - 01.09.2012

ai й so vc por o resto das profissхes ai na lista e colocar o else como o Sky disse no fim das profissгo que nem mostra no exemplo do Sky


Re: Suplemento no ANTI-AFK - Ley - 01.09.2012

Ta... Mas eu queria quebrar o settimer do salario para playerid, quando essa public for chamada...

pawn Код:
public AntiAfk()
{
    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] == MAX_TIME_AFK * 60)
        {
            if(IsPlayerConnected(i))
            {
                if(!IsPlayerNPC(i))
                {
                    AFK[i] = 1;
                    new string[128];
                    format(string, sizeof(string), "{1E90FF}( AFK ){FFFFFF} %s foi bloqueado de evoluir, por ficar ausente muito tempo.", nome(i));
                    SendClientMessageToAll(0xFFFFFFAA, string);
                    SetPlayerVirtualWorld(i, 1);
                    SetCameraBehindPlayer(i);
                    TogglePlayerControllable(i, 0);
                    TextDrawShowForPlayer(i, afk1[i]);
                    TextDrawShowForPlayer(i, afk2[i]);
                }
            }
        }
    }
    return 1;
}
E voltasse o settimer do salario nessa funзгo
pawn Код:
if(strcmp(cmd, "/online", true) == 0)
    {
        if(AFK[playerid] == 1)
        {
            new str[128];
            AFK[playerid] = 0;
            format(str, sizeof(str), "{1E90FF}( AFK ){FFFFFF} %s foi desbloqueado de upar, agora ele estб online!", nome(playerid));
            SendClientMessageToAll(0xFFFFFFAA, str);
            SetPlayerVirtualWorld(playerid, 0);
            TogglePlayerControllable(playerid, 1);
            TextDrawHideForPlayer(playerid, afk1[playerid]);
            TextDrawHideForPlayer(playerid, afk2[playerid]);
        }
        else
        {
            SendClientMessage(playerid, -1, "{FF0000}( ERRO ){FFFFFF} Vocк nгo estб AFK.");
        }
        return 1;
    }
Help?


Re: Suplemento no ANTI-AFK - Ley - 01.09.2012

UP...


Re: Suplemento no ANTI-AFK - Sky™ - 02.09.2012

pawn Код:
KillTimer(Salario[playerid]);
Isso desligaria o timer do salario..

Mais quando dar /on nгo tem uma funзгo que vai fazer voltar o Settimer do salario a nгo ser que ele tenha que esperar o tempo tudo novamente e melhor fazer o que eu disse antes ;....

Creio que seja isso mano *-* teste


Re: Suplemento no ANTI-AFK - Ley - 02.09.2012

Mas quando eu coloco KillTimer(Salario[playerid]); da erros...
Jб tentei por [i] mas os erros percistem.

pawn Код:
error 028: invalid subscript (not an array or too many subscripts): "Salario"
warning 215: expression has no effect
error 001: expected token: ";", but found "]"
error 029: invalid expression, assumed zero
fatal error 107: too many error messages on one line



Re: Suplemento no ANTI-AFK - Sky™ - 02.09.2012

pawn Код:
if(AFK[i] == 0)
{
    if(Profissao[i] == PROF_DESEMPREGADO)
    {
        quantia = dini_Int(banco, "Saldo");
        SendClientMessage(i, 0xFFD39BAA, "(Salбrio) Seu salбrio foi pago de acordo com sua profissгo.");
        SendClientMessage(i, 0xFFD39BAA, "(Salбrio) Vocк recebeu o seu seguro desemprego, R$110");
        dini_IntSet(banco, "Saldo", quantia + 110);
    }
    else if(Profissao[i] == PROF_CAMINHONEIRO)
    {
        quantia = dini_Int(banco, "Saldo");
        format(str, sizeof(str), "(Salбrio) Vocк recebeu seu salбrio de R$520");
        SendClientMessage(i, 0xFFD39BAA, str);
        SendClientMessage(i, 0xFFD39BAA, "(Salбrio) Seu salбrio foi pago de acordo com sua profissгo.");
        SendClientMessage(i, 0xFFD39BAA, "(Salбrio) O seu salбrio foi depositado automбticamente em sua conta bancбria!");
        dini_IntSet(banco, "Saldo", quantia + 520);
    }
}
else
{
    SendClientMessage(i, 0xFFD39BAA, "Vocк estб ausente e foi bloqueado de receber salario!");
    return 1;
}


Mano Ponhe assim Pois e ++ Seguro e se o cara voltar antes de receber o salario ele receberб normalmente manin pode usar esse tipo aki que й 10x melhor e Outra se n fosse melhor vc por assim os Scripters mais antigos que viu esse topico iriam me corrigir *-*


Re: Suplemento no ANTI-AFK - VenoN - 02.09.2012

Quote:
Originally Posted by Sky_.
Посмотреть сообщение
pawn Код:
if(AFK[i] == 0)
{
    if(Profissao[i] == PROF_DESEMPREGADO)
    {
        quantia = dini_Int(banco, "Saldo");
        SendClientMessage(i, 0xFFD39BAA, "(Salбrio) Seu salбrio foi pago de acordo com sua profissгo.");
        SendClientMessage(i, 0xFFD39BAA, "(Salбrio) Vocк recebeu o seu seguro desemprego, R$110");
        dini_IntSet(banco, "Saldo", quantia + 110);
    }
    else if(Profissao[i] == PROF_CAMINHONEIRO)
    {
        quantia = dini_Int(banco, "Saldo");
        format(str, sizeof(str), "(Salбrio) Vocк recebeu seu salбrio de R$520");
        SendClientMessage(i, 0xFFD39BAA, str);
        SendClientMessage(i, 0xFFD39BAA, "(Salбrio) Seu salбrio foi pago de acordo com sua profissгo.");
        SendClientMessage(i, 0xFFD39BAA, "(Salбrio) O seu salбrio foi depositado automбticamente em sua conta bancбria!");
        dini_IntSet(banco, "Saldo", quantia + 520);
    }
}
else
{
    SendClientMessage(i, 0xFFD39BAA, "Vocк estб ausente e foi bloqueado de receber salario!");
    return 1;
}



Mano Ponhe assim Pois e ++ Seguro e se o cara voltar antes de receber o salario ele receberб normalmente manin pode usar esse tipo aki que й 10x melhor e Outra se n fosse melhor vc por assim os Scripters mais antigos que viu esse topico iriam me corrigir *-*





Vixi mano essa e o unica geito de faze que ira fica sem bugs veio
]


Re: Suplemento no ANTI-AFK - Ghost_ - 02.09.2012

SUPLEMENTO KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK KKKKKKKKKKKKKKKKKKKKKKKKKKKKK