Jump to content
  • 0

pomoc Rychlost :)


mourison

Dotaz

Dobrý den :)

 

stock GetPlayerSpeed(playerid, bool:kmh) // by misco
{
  new Float:Vx,Float:Vy,Float:Vz,Float:rtn;
  if(IsPlayerInAnyVehicle(playerid)) GetVehicleVelocity(GetPlayerVehicleID(playerid),Vx,Vy,Vz); else GetPlayerVelocity(playerid,Vx,Vy,Vz);
  rtn = floatsqroot(floatabs(floatpower(Vx + Vy + Vz,2)));
  return kmh?floatround(rtn * 100 * 1.61):floatround(rtn * 100);
}

Používám tento stock, jenže problém je že když zatočím Doleva..Rychlost to odčítá a když zatčím Doprava..Rychost to přičítá :d
Prosím neví někdo co s tím nebo jak to nahradit ? :), Moc děkuji

Edited by mourison
Link to comment
Share on other sites

7 odpovědí na tuto otázku

Recommended Posts

  • 0
  • Globální moderátor
return kmh?floatabs(floatround(rtn * 100 * 1.61)):floatabs(floatround(rtn * 100));

jestliže to jde jen do minusu, tak by toto mělo pomoct.

  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

  • 0

Nefunguje :/ ,

Zobrazuje to místo rychlosti 10ti tisíce a pořád to odečítá při zatočení doleva :d,

Jinak mohl bych poprosit o podrobnější vysvětlení kódu ? :(, Moc Děkuji :)

A kód hlásí na vašem řádku Tag mismatch :)

Edited by mourison
Link to comment
Share on other sites

  • 0
  • Globální moderátor

new Float:Vx,Float:Vy,Float:Vz,Float:rtn; //deklarace
if(IsPlayerInAnyVehicle(playerid))
GetVehicleVelocity(GetPlayerVehicleID(playerid),Vx,Vy,Vz); else GetPlayerVelocity(playerid,Vx,Vy,Vz); //uložení hodnot (je v autě/není)
 
rtn = floatsqroot(floatabs(floatpower(Vx + Vy + Vz,2))); //je výpočet podle vzorce:

 

vysledek = odmocnina { absolutní_hodnota [ ( Vx + Vy + Vz ) ^2 ] }

 

return kmh?floatround(rtn * 100 * 1.61):floatround(rtn * 100); //vrací kmh nebo mph a násobí 100, protože vychází stokrát menší číslo

 

GetPlayerVelocity a GetVehicleVelocity vracejí rychlost po jednotlivých osách za nějaký čas (daný samp)

 

bohužel nevím, co přesně má vycházet u těchto fcí za hodnoty a tak nevím, zda to tvoje je špatně čí správně. Doporučuji vyzkoušet nějaký jiný, nebo si vytvořit svůj vlastní. Posun na souřadné ose o jedna, by měl být posun o jeden metr, pokud se pohybuje o 1 za jednu sekundu, pohybuje se jeden metr za sekundu. Už to jen hodit do desetiných míst a timeru jednou za cca 50ms a máš svou vlastní.

 

výpočet mezi 2 body o 3 hodnotách:

 

bod1(x,y,z)

bod2(x,y,z)

 

odmocnina((x1 - x2)^2 + (y1 - y2)^2 + (z1 - z2)^2) = vzdálenost mezi body.

  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

  • 0
  • Globální moderátor

popravdě to by mě taky zajímalo, ukaž jak tu fci máš použitou? Protože sama o sobě vrátit záporné číslo nemůže

 

A pokud chápu, tak ti vyhází i záporná čísla?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...