SA-MP Forums Archive
[Ajuda] Erros depois de um tempo. - 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: [Ajuda] Erros depois de um tempo. (/showthread.php?tid=676312)



Erros depois de um tempo. - ReturnZero - 05.06.2020

Olб pessoal, meu servidor assim que iniciado, tudo funciona, passado algumas horas, alguns sistemas que funcionavam perfeitamente, dгo erros, killtimer, que funcionava antes, para de funcioar, alguйm jб viu algo parecido? Tenho um timer, na tela de carregamento, depois de umas horas com o servidor ligado, ele para de funcionar...

Cod: expecifico...

No topo
Code:
new TimerLogin[MAX_PLAYERS];
OnplayerRequestClass
Code:
TimerLogin[playerid] = SetTimerEx("mostrarTelaLogin", 50, true, "d", playerid);
Callback mostrarTelaLogin (parte do killtimer, e pucha a tela de login normal.)
Code:
if(CarregandoTelaLogin[playerid] >= 101)
	{
	    KillTimer(TimerLogin[playerid]);
		for( new text; text != 15; text++) TextDrawHideForPlayer(playerid, loadtela[text]);
		ShowLogin(playerid);
		return 1;
  	}



Re: Erros depois de um tempo. - Khivory - 05.06.2020

Diminua o intervalo dele, nгo hб necessidade de 50ms para isso, com 500ms ou 1000ms estб bom, este й um tempo em que mal percebemos passar.

Tambйm deixe o com a repetiзгo desativada, jб ouvi falar de alguns casos em que o timer bugava quando estava com ela ligada.
PHP Code:
SetTimerEx("mostrarTelaLogin", 1000, false, "d", playerid); 
PHP Code:
if(CarregandoTelaLogin[playerid] >= 101)
{
    for( new 
text; text != 15; text++) TextDrawHideForPlayer(playerid, loadtela[text]);    
    
ShowLogin(playerid);
    return 
1;
}
SetTimerEx("mostrarTelaLogin", 1000, false, "d", playerid); 
Fazendo isso vocк nгo irб de precisar de um identificador para o timer, o prуprio return da condiзгo irб quebrб-lo pois impedira a chamada do mesmo.

Se vocк precisa matб-lo em outro lugar entгo pode deixar o identificador.


Re: Erros depois de um tempo. - caiolelis1 - 05.06.2020

Tenho um problema semelhante.


Re: Erros depois de um tempo. - Khivory - 05.06.2020

Quote:
Originally Posted by caiolelis1
View Post
Eu preciso que ele repita, para aumentar o valor da variavel CarregandoTelaLogin, fazendo com que ela chegue a 101

Eu preciso que ele se repita eu mudei o intervalo, pra 1000
Ele ira repetir, preste atenзгo no cуdigo.

O timer й chamado novamente dentro da prуpria callback


* Conta errada nй? kkk


Re: Erros depois de um tempo. - ReturnZero - 05.06.2020

Quote:
Originally Posted by Khivory
View Post
Ele ira repetir, preste atenзгo no cуdigo.

O timer й chamado novamente dentro da prуpria callback


* Conta errada nй? kkk
SIm kk'


Re: Erros depois de um tempo. - ReturnZero - 05.06.2020

Quote:
Originally Posted by Khivory
View Post
Ele ira repetir, preste atenзгo no cуdigo.

O timer й chamado novamente dentro da prуpria callback

Mais o timer, nгo estб sendo chamado novamente dentro da callback


Re: Erros depois de um tempo. - Khivory - 05.06.2020

Quote:
Originally Posted by ReturnZero
View Post
Mais o timer, nгo estб sendo chamado novamente dentro da callback
Amigo, eu te passei o cуdigo com tudo certo.



PHP Code:
SetTimerEx("mostrarTelaLogin", 1000, false, "d", playerid); // Timer й chamado pela primeira vez 
Funзхes dentro do timer:

PHP Code:
if(CarregandoTelaLogin[playerid] >= 101)
{
    for( new 
text; text != 15; text++) TextDrawHideForPlayer(playerid, loadtela[text]);    
    
ShowLogin(playerid);
    return 
1;
}
SetTimerEx("mostrarTelaLogin", 1000, false, "d", playerid); // Timer serб chamado novamente, criando um "loop" 



Re: Erros depois de um tempo. - ipsLuan - 05.06.2020

Vocк estб usando o CarregandoTelaLogin[playerid]++?

Faзa tambйm uma verificaзгo pra definir um valor mбximo.
pawn Code:
if(CarregandoTelaLogin[playerid] > 101) CarregandoTelaLogin[playerid] = 101;



Re: Erros depois de um tempo. - ReturnZero - 05.06.2020

Quote:
Originally Posted by ipsLuan
View Post
Vocк estб usando o CarregandoTelaLogin[playerid]++?

Faзa tambйm uma verificaзгo pra definir um valor mбximo.
pawn Code:
if(CarregandoTelaLogin[playerid] > 101) CarregandoTelaLogin[playerid] = 101;
Sim, entendi, eu estava moscando, o negуcio obvio... Obrigado pessoal.