[Pedido] Kill SetTimer.
#1

Bom dia.
Estou com uma pequena dъvida em relaзгo ao meu sistema de ausкncia, quando fico em modo "AFK" й cancelada a contagem de level etc...
Porйm o salбrio continua vindo... Irei postar um pedaзo do cуdigo;
pawn Код:
...
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 o SetTimer do salбrio й;
pawn Код:
SetTimer("Salario", 2400000, 1);
E a forma de ganhar 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);
                }
Alguйm poderia me dar uma pequena ajuda nesse problema?
Reply
#2

https://sampwiki.blast.hk/wiki/KillTimer

Use isso!
Reply
#3

Quote:
Originally Posted by Douglas_prt
Посмотреть сообщение
Sim, mas ai quando o player voltar do modo "AFK", ele irб ter que digitar o seguinte comando;
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;
    }
Como fazer para o settimer voltar a contar?
Reply
#4

Tem que colocar o settimer de novo sim.
Reply
#5

Quote:
Originally Posted by Douglas_prt
Посмотреть сообщение
Tem que colocar o settimer de novo sim.
Й que eu estou em dъvida que se eu colocar o settimer novamente poderб contar 2 vezes na public ...
Irei tentar

Quando compilo, apresenta um warning;
pawn Код:
number of arguments does not match definition
A linha foi a que eu puis o KillTimer;
pawn Код:
KillTimer(Salario(i));
Jб tentei por "playerid" no lugar do ( id ), mas da erro...

Pensei em fazer assim;
pawn Код:
SetTimerEx("KillTimerSalario", 1000, false, "i", i);
Funcionarб?
Reply
#6

Voce tem que definir primeiro o salбrio para MAX_PLAYERS, de forma a poder parar o timer para um jogador individualmente e nгo para todos, tpo:

pawn Код:
new Salario[MAX_PLAYERS]
Depois criar o timer:

pawn Код:
Salario[playerid] = SetTimer...
para depois

pawn Код:
KillTimer(Salario[playerid]);
Quando ao timer do KillTimer... isso voce teria que criar outro timer...

https://sampwiki.blast.hk/wiki/SetTimer
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)