Destaque - SVR 10 - Montagens
Chat do Game Dicas


Novidades

[TUTO] Tempo em Race

Por # Victor Martins em
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:
new Corrida[MAX_PLAYERS];
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
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):

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);
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)
stock ConvertTime(Milliseconds,&rMin,&rS,&rMS)
{
rMin=Milliseconds/60000;
Milliseconds-=rMin*60000;
rS=Milliseconds/1000;
Milliseconds-=rS*1000
rMS=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