[Tutorial] Como fazer um Countdown - 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)
+----- Forum: Lançamentos/Releases (
https://sampforum.blast.hk/forumdisplay.php?fid=56)
+----- Thread: [Tutorial] Como fazer um Countdown (
/showthread.php?tid=461135)
Como fazer um Countdown -
bruxo00 - 31.08.2013
Includes necessбrias
pawn Код:
#include < a_samp > // Obrigatуria
#include < ZCMD > // Opcional
Cуdigo e Explicaзгo
pawn Код:
#include < a_samp >
#include < ZCMD >
forward Countdown();
new CounterCountdown;
CMD:countdown(playerid, params[])
{
SendClientMessage(playerid, -1, "Comeзaste um countdown!");
CounterCountdown = 11;
SetTimer("Countdown", 1000, true);
return 1;
}
public Countdown()
{
new string[3];
if(CounterCountdown != 0)
{
CounterCountdown--;
format(string, sizeof(string), "%i", CounterCountdown);
GameTextForAll(string, 999, 4);
}
else if(CounterCountdown == 0)
{
KillTimer(CounterCountdown);
}
return 1;
}
forward Countdown(); - estamos a permitir a chamada da callback Countdown
new CounterCountdown; - criamos uma variбvel global para poder ser chamada em qualquer callback
CMD:countdown(playerid, params[]) - permite, atravйz da include ZCMD criar um comando chamado
SendClientMessage(playerid, -1, "Comeзaste um countdown!"); - Envia uma mensagem ao jogador que executou o comando countdown
CounterCountdown = 11; - Setamos o valor da variбvel CounterCountdown para 11. O nosso countdown vai ser de 10 atй 0, portanto, coloquem SEMPRE 1 valor acima do que querem
SetTimer("Countdown", 1000, true); - Chamamos a callback Countdown de segundo a segundo, atй desligarmos o Timer
public Countdown() - Abrimos a callback Countdown
new string[3]; - Cria uma variбvel local com o nome string, de 3 cйlulas
if(CounterCountdown != 0) - Se a variбvel CounterCountdown for diferente de 0...
CounterCountdown--; - Retira um valor а variбvel CounterCountdown, cada vez que a callback for chamada
format(string, sizeof(string), "%i", CounterCountdown); - Formata a variбvel string, para o countdown aparecer
GameTextForAll(string, 999, 4); - Aperece o valor da variбvel CounterCountdown, como foi formatada antes, e fica na tela 0.99 segundos. Isto vai dar melhor efeito ao countdown
else if(CounterCountdown == 0) - Se a variбvel CounterCountdown for igual a 0, vai...
KillTimer(CounterCountdown); - Acaba com o Timer CounterCountdown, iniciado no comando.
[/FONT]
Re: Como fazer um Countdown -
darkxdll - 01.09.2013
Ficou bom , mais poderia ter explicado mais parte dos parвmetros , mais ficou bom.
#QueIsso. Eu que upei o tutorial do cara , ninguйm gostou ?
Re: Como fazer um Countdown -
Falcon. - 01.09.2013
imagina o que aconteceria, se vбrias pessoas executassem o comando dentro destes 11 segundos...
Crie uma variбvel booleana para bloquear o uso do comando enquanto a contagem estб em andamento.
Re: Como fazer um Countdown -
bruxo00 - 02.09.2013
Quote:
Originally Posted by Falcon.
imagina o que aconteceria, se vбrias pessoas executassem o comando dentro destes 11 segundos...
Crie uma variбvel booleana para bloquear o uso do comando enquanto a contagem estб em andamento.
|
Obrigado pelo feedback, nгo tinha reparado que tinham respondido :P
Falcon, esse countdown й mais para admins executarem ele.
Re: Como fazer um Countdown -
Falcon. - 02.09.2013
Mas de qualquer forma й sempre bom tem um sistema com o mнnimo de chances de dar erro. Pois imagina o que aconteceria, se vбrios
admins executassem o comando dentro destes 11 segundos...
Re: Como fazer um Countdown -
darkxdll - 02.09.2013
Falcon. acho que o tutorial foi para explicar um pouco sobre "cronometragem" e nгo como bloquear algo com uma variбvel .
Concordo que bloqueando o comando seria melhor pois ai nгo teria o perigo de alguйm ferrar o servidor