Me ajudem a estudar essa linha! -
vitinhosamp - 31.08.2018
PHP код:
stock GetPlayerSpeed(playerid, bool:kmh = true)
{
new
Float:xx,
Float:yy,
Float:zz,
Float:pSpeed;
if(IsPlayerInAnyVehicle(playerid))
{
GetVehicleVelocity(GetPlayerVehicleID(playerid), xx, yy, zz);
}
else
{
GetPlayerVelocity(playerid, xx, yy, zz);
}
pSpeed = floatsqroot((xx * xx) + (yy * yy) + (zz * zz)); // preciso estudar essa linha
return kmh ? floatround((pSpeed * 165.12)) : floatround((pSpeed * 103.9)); // e essa
}
ambas linhas eu nгo compreendo e desejava aprender, essa parte foi tirada do sistema de radar de uma antiga GM!
Poderiam ajudar?
Re: Me ajudem a estudar essa linha! -
ipsLuan - 31.08.2018
Isso sгo cбlculos trigonomйtricos.
https://sampwiki.blast.hk/wiki/Floatsqroot
https://sampwiki.blast.hk/wiki/Floatround
https://en.wikipedia.org/wiki/Trigonometry
Na wikipйdia do samp, vocк encontra as respostas.
Re: Me ajudem a estudar essa linha! -
vitinhosamp - 31.08.2018
Obrigado, mas pq 165.12, 103.9? Pq esses valores?
Re: Me ajudem a estudar essa linha! -
ipsLuan - 31.08.2018
Quote:
Originally Posted by vitinhosamp
Obrigado, mas pq 165.12, 103.9? Pq esses valores?
|
Sгo os cбlculos para obter a velocidade, em
km/h.
Olhe
este tуpico.
Como nгo criei esta funзгo, nгo posso responder quais os cбlculos que o autor fez para se chegar ao resultado e nem o mйtodo.
Re: Me ajudem a estudar essa linha! -
GSantana - 31.08.2018
floatpower tira a raiz quadrada, no primeiro floatpower tira a raiz quadrada de x, logo depois y, e depois do Z, em seguida junta tudo e multiplica por 103.9, so estiver usando isso para um velocimetro estб "errado", digo, tem outro modo melhor de fazer e mais preciso
Re: Me ajudem a estudar essa linha! -
ipsLuan - 31.08.2018
Quote:
Originally Posted by GSantana
* floatpower * tira a raiz quadrada, no primeiro floatpower tira a raiz quadrada de x, logo depois y, e depois do Z, em seguida junta tudo e multiplica por 103.9, so estiver usando isso para um velocimetro estб "errado", digo, tem outro modo melhor de fazer e mais preciso
|
Sу uma correзгo: Й
floatsqroot.
Re: Me ajudem a estudar essa linha! -
GSantana - 31.08.2018
Quote:
Originally Posted by ipsLuan
Sу uma correзгo: Й floatsqroot.
|
erro meu kkk, geralmente para velocimetros se usa floatpower, acabei nem vendo muito bem, apenas vi o comeзo a jб entendi para oque servia, um equivoco meu
Re: Me ajudem a estudar essa linha! -
vitinhosamp - 31.08.2018
Poderiam me passar a forma mais precisa de fazer, estou usando para um sistema de radar que estou fazendo, mas estou implementando o sistema de velocнmetro tbm, poderiam me passar?
Re: Me ajudem a estudar essa linha! -
GSantana - 31.08.2018
Quote:
Originally Posted by vitinhosamp
Poderiam me passar a forma mais precisa de fazer, estou usando para um sistema de radar que estou fazendo, mas estou implementando o sistema de velocнmetro tbm, poderiam me passar?
|
PHP код:
stock GetPlayerSpeed(playerid)
{
new Float:ST[4];
if(IsPlayerInAnyVehicle(playerid))
GetVehicleVelocity(GetPlayerVehicleID(playerid),ST[0],ST[1],ST[2]);
else GetPlayerVelocity(playerid,ST[0],ST[1],ST[2]);
ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 118.3;
return floatround(ST[3]);
}
ai й sу tu usar um timer para verificar a velocidade do player tipo
PHP код:
if(ST[3] >= 110)
{
//oque vai acontecer aqui
}
Re: Me ajudem a estudar essa linha! -
vitinhosamp - 01.09.2018
Quote:
Originally Posted by GSantana
PHP код:
stock GetPlayerSpeed(playerid)
{
new Float:ST[4];
if(IsPlayerInAnyVehicle(playerid))
GetVehicleVelocity(GetPlayerVehicleID(playerid),ST[0],ST[1],ST[2]);
else GetPlayerVelocity(playerid,ST[0],ST[1],ST[2]);
ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 118.3;
return floatround(ST[3]);
}
ai й sу tu usar um timer para verificar a velocidade do player tipo
PHP код:
if(ST[3] >= 110)
{
//oque vai acontecer aqui
}
|
Eu so nгo entendo pq *118,3, alguem me explica?