[Tutorial] [TUT] Tempo em Race (GetTickCount)
#1

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:
pawn Код:
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 exemplo
new 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
pawn Код:
Corrida[playerid] = GetTickCount();
EXPLICAЗГO:
Corrida -> й a array definida anteriormente
playerid ->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):
pawn Код:
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,Segundo
name -> Array que indica o numero maximo de nomes, ali no caso nossa constante esta MAX_PLAYER_NAME ou seja todos Maximos de Nomes
string -> Usado para definir o numero de caracteres que tera a mensagem (format) este limite no SA:MP й de 128
GetPlayerName -> Pegarб Nome do player para coloca-lo em %s na mensagem
format -> Formato que enviaremos a string
SendClientMessageToAll -> Enviarб a mensagem formatada a todos player conectados

Agora Vamos a Stock ConvertTimerFinal GM)
pawn Код:
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



Links Importantes:
Caso queiram converter em um APP
Conversor Millisegundos
Caso queiram salvar recordes em arquivos
Salvar String em Arquivos


Crйditos a:
DraKoN
Joe Staff -> Criador (Acho) da Stock ConvertTime

Nгo Pretendo ver em outros Blog's fуrums sem minha autorizaзгo

" E Isso й Tudo Pessoal "
Criticas Elogios Serгo aceitos
Reply
#2

Muito bom DraKon, parabйns!
Tirou as dъvidas de muita gente :P
Reply
#3

muito bom =)

oq tava Procurano
Reply
#4

THIS ISSS NIIIIIIIIIIIIIIIIIIIIIIIIIIIICE.

(masvcaindaйgay)
Reply
#5

naєo testei,.... mas muit bom...
Reply
#6

Sim, Funciona Andmeida eu jб testei, inclusive coloquei um sistema de recordes salvaveis

quem quiser eu passo, mas em troca ,de secзo
/zoaa

so me add no msn drakonsamp@hotmail.com
Reply
#7

pra mim nao mostra minutosegundos:milesimos =/
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)