KillTimer -
RafaelOsio - 21.07.2015
Olб amigos. Eu tenho um timer que diminui o valor de uma variбvel em 1, de 1 em 1 segundo. Quando essa variбvel chegar a 0, quero que esse timer pare.
Fiz desta forma:
Player conecta ao servidor e inicia o timer.
Код:
V_TimerSono[playerid] = SetTimerEx("TimerSono", 1000, 1, "i", playerid);
O timer atualiza esta callback:
Код:
forward TimerSono(playerid);
public TimerSono(playerid)
{
if(V_Sono[playerid] <= 0)
{
KillTimer(V_TimerSono[playerid]);
//AQUI SE COLOCAR UMA MENSAGEM, POR EXEMPLO, A MENSAGEM Й ENVIADA, MAS O TIMER NГO Й "MORTO"
return 1;
}
V_Sono[playerid] = V_Sono[playerid] - 1;
return 1;
}
Fiz um teste para verificar se o problema estava no KillTimer, mas nгo estava. Coloquei o KillTimer em um comando e o executei. Resultado: O Timer parou normalmente. Com isso, cheguei na conclusгo que o problema estб na minha callback.
Aguardo respostas.
Re: KillTimer -
Duun - 21.07.2015
nгo entendi, qual o problema ?
a mensagem nгo estб sendo enviada ?
Re: KillTimer -
NegoEnsina - 21.07.2015
Tira o return 1; de dentro da condiзгo.
Re: KillTimer -
RafaelOsio - 21.07.2015
A mensagem envia, apenas o KillTimer que nгo funciona.
Re: KillTimer -
RafaelOsio - 21.07.2015
Quote:
Originally Posted by NegoEnsina
Tira o return 1; de dentro da condiзгo.
|
Timer continua sendo executado.
Re: KillTimer -
MarcusTakeshi - 21.07.2015
Sla, sou iniciante ainda mas tenta assim:
Код:
public TimerSono(playerid)
{
if(V_Sono[playerid] > 0)
{
V_Sono[playerid] = V_Sono[playerid] - 1;
}
else{
//Sua menssagem
return KillTimer(V_TimerSono[playerid]);
}
return 1;
}
Re: KillTimer -
NegoEnsina - 21.07.2015
PHP код:
forward TimerSono(playerid);
public TimerSono(playerid)
{
if(V_Sono[playerid] <= 0)
{
KillTimer(V_TimerSono[playerid]);
}
else
{
V_Sono[playerid] --;
}
return 1;
}
Re: KillTimer -
bruxo00 - 21.07.2015
Claro que a mensagem й enviada, porque nгo havia de ser? O timer й parado, mas a funзгo continua atй chegar ao fim, que neste caso й no
return 1;
Re: KillTimer -
RafaelOsio - 21.07.2015
Nenhuma das alternativas funcionaram. E brux00, nгo quero enviar uma mensagem, quero parar o timer quando a variбvel chegar a 0. Mas isso nгo estб acontecendo.
Re: KillTimer -
MarcusTakeshi - 21.07.2015
Quote:
Originally Posted by RafaelOsio
Nenhuma das alternativas funcionaram. E brux00, nгo quero enviar uma mensagem, quero parar o timer quando a variбvel chegar a 0. Mas isso nгo estб acontecendo.
|
Nunca testei recursividade no PAWNO, mas tenta isso:
Quando o Player se conectar:
Код:
V_TimerSono[playerid] = SetTimerEx("TimerSono", 1000, false, "i", playerid);
Callback:
Код:
forward TimerSono(playerid);
public TimerSono(playerid)
{
if(V_Sono[playerid] > 0)
{
V_Sono[playerid]--;
V_TimerSono[playerid] = SetTimerEx("TimerSono", 1000, false, "i", playerid);
}
return 1;
}