O carro estб indo a 90 KM/H
Logo, estarб indo 90 mil metros por horas, certo?
Isto significa que ele irб fazer 90 quilфmetros em uma hora ou 90 mil metros em uma hora.
Entгo me sistema converte essas horas para segundos, fazendo o seguinte:
90000 / 3600 = 25 Metros por Segundos
O que sгo esses 90 mil? Sгo a quantidade de metros por hora
O que sгo esses 3600? Й a taxa de conversгo de horas para segundos, й a mesma coisa que (60 * 60) (Horas para Minutos e Minutos para Segundos)
Porque utilizar segundos? Porque o tempo do SetTimer estб em 1 segundo, logo ele irб atualizar a distancia percorrida do player em 1 segundo com base na velocidade atual.
#define GetPlayerMeters(%0) (IsPlayerInAnyVehicle(i)) ? disJogador[%0] : 0xFFFFFFFF
#define SetPlayerMeters(%0, %1) disJogador[%0] = %1
#define ResetPlayerMeters(%0) disJogador[%0] = 0xFFFFFFFF
new disJogador[MAX_PLAYERS];
public OnFilterScriptInit()
{
print("Calculo de Distancia");
return SetTimer("OnUpdateKM", 1000, true);
}
forward OnUpdateKM();
public OnUpdateKM()
{
for(new i; i != MAX_PLAYERS; i++) if(IsPlayerInAnyVehicle(i))
{
static Float:PosX,Float:PosY,Float:PosZ;
GetVehicleVelocity(GetPlayerVehicleID(playerid), PosX, PosY, PosZ);
disJogador[i] += (floatround(floatmul(((floatmul(floatsqroot(floatadd(floatadd(floatpower(PosX, 2), floatpower(PosY, 2)), floatpower(PosZ, 2))), 170.0) * 1)),1000)) / 3600);
}
return true;
}
/*
Projeto:
Calculador de Distвncia Percorrida
Lуgica:
Sistema pega os metros do jogador percorridos por hora (m/h)
A Cada um segundo adiciona na variбvel disJogador a quantidade de metros percorrida
Dividido por (60 * 60) (para retornar metros por segundo e adicionar na variбvel a distancia percorrida)
Uso:
Usar GetPlayerMeters(playerid) para retornar a quantidade percorrida pelo player
Criador
Bruno da Silva
www.ips-team.blogspot.com
*/
- Note que em OnFilterScriptInit() se localiza o SetTimer("OnUpdateKM", 1000, true); que estб configurado para repetir e atualizar em cada 1 segundo. Mais eu acabei descobrindo esse erro quando eu fui mudar esses 1000 centйsimos para 100 centйsimos, para que nгo demore para mostrar a kilometragem. Ex: em 1 segundo ficaria de 400 metros irб direto para 436 por exemplo estбria completamente fora de sн o cуdico."Tambem vemos isso nos cуdicos de velocimetro" |
#define GetPlayerMeters(%0) (IsPlayerInAnyVehicle(i)) ? disJogador[%0] : 0xFFFFFFFF
#define GetPlayerMeters(%0) (IsPlayerInAnyVehicle(%0)) ? disJogador[%0] : 0xFFFFFFFF
"Nгo quero ser ruim nгo quero reclamar sу apenas quero avisar!" Meu nome й Mr.Hardy ou seja Sr.Destemido e eu jб fui Ips. |