Bom Normalmente Muita Gente quer saber como se cria tempos para races, bom não é algo dificil, muita gente acha que é com SetTimer mas na verdade...
Topo GM:EXPLICAÇÃO:
new Corrida -> Esta Array irá definir que 'Corrida', é uma array especial chamada 'Array unidimensionai' que vão de 0 a 999 exemplonew string[999];
MAX_PLAYERS -> é uma constante na qual define o máximo de players p/ servidor, melhor que ficar colocando nómero de slots não? limite de 500
Então Vamos a Iniciar a Cronometrarem, Normalmente após descongelar/terminar tempo
ConvertTime -> Stock que usaremos logo abaixo, usada para converter milionésimos de segundos em Hora,Minuto,Segundoname -> Array que indica o numero maximo de nomes, ali no caso nossa constante esta MAX_PLAYER_NAME ou seja todos Maximos de Nomesstring -> Usado para definir o numero de caracteres que tera a mensagem (format) este limite no SA:MP é de 128GetPlayerName -> Pegará Nome do player para coloca-lo em %s na mensagemformat -> Formato que enviaremos a stringSendClientMessageToAll -> Enviará a mensagem formatada a todos player conectados
Agora Vamos a Stock ConvertTimer:(Final GM)
EXPLICAÇÃO:
Bom Basicamente essa stock faz alguns calculos/ Divdi* Mutiplica-se
Assim Chegando ao Resultado pois 1000 Milisegundos = 1 Segundos
Topo GM:
new Corrida[MAX_PLAYERS];
new Corrida -> Esta Array irá definir que 'Corrida', é uma array especial chamada 'Array unidimensionai' que vão de 0 a 999 exemplonew string[999];
MAX_PLAYERS -> é uma constante na qual define o máximo de players p/ servidor, melhor que ficar colocando nómero de slots não? limite de 500
Então Vamos a Iniciar a Cronometrarem, Normalmente após descongelar/terminar tempo
Corrida[playerid] = GetTickCount();
EXPLICAÇÃO:
Corrida -> é a array definida anteriormenteplayerid ->seria quem sofre a ação no caso o 'playerid' (próprio player)
Vamos Então parar a Contagem para Publicar os tempos(Normalmente ao Chegar no Ultimo Check):
Corrida -> é a array definida anteriormenteplayerid ->seria quem sofre a ação no caso o 'playerid' (próprio player)
Vamos Então parar a Contagem para Publicar os tempos(Normalmente ao Chegar no Ultimo Check):
new Min,Sec,MS;ConvertTime(Corrida[playerid],Min,Sec,MS);new name[MAX_PLAYER_NAME],string[128];GetPlayerName(playerid,name,sizeof(name));format(string,sizeof(string),"%s terminou o drift em %d:%d.%d, Parabéns \n!",name,Min,Sec,MS/100);SendClientMessageToAll(COR,string);
Agora Vamos a Stock ConvertTimer:(Final GM)
stock ConvertTime(Milliseconds,&rMin,&rS,&rMS){rMin=Milliseconds/60000;Milliseconds-=rMin*60000;rS=Milliseconds/1000;Milliseconds-=rS*1000rMS=Milliseconds;}
EXPLICAÇÃO:
Bom Basicamente essa stock faz alguns calculos/ Divdi* Mutiplica-se
Assim Chegando ao Resultado pois 1000 Milisegundos = 1 Segundos
0 comentários:
Postar um comentário