Jump to content

Speedometer


Recommended Posts

Geplaatst: (bewerkt)

Hey,

Heb nu dit scriptje gemaakt voor mijn speedometer.

//test script for speedometer

#include <a_samp>

#define speedupdate 1000
new Text:textdraw[MAX_PLAYERS];

public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Speedometer by [RTA]Alex LOADED.......");
print("--------------------------------------\n");


SetTimer("speedupdate",speedupdate,1);
for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
{
	textdraw[playerid] = TextDrawCreate(505.000000,419.000000,"TEST");
}

return 1;
}

public OnPlayerConnect(playerid)
{

return 1;
}


public OnPlayerUpdate(playerid)
{
if(GetPlayerSpeed(playerid) > 300)
{

}

	if(IsPlayerInAnyVehicle(playerid))
{
	TextDrawShowForPlayer(playerid,textdraw[playerid]);
}

return 1;
}

public OnFilterScriptExit()
{

return 1;
}

stock GetPlayerSpeed(playerid)
{
       new Float:X, Float:Y, Float:Z;
       if(IsPlayerInAnyVehicle(playerid))
       {
               GetVehicleVelocity(GetPlayerVehicleID(playerid), X, Y, Z);
               return floatround(floatmul(floatmul(floatsqroot(floatpower(floatabs(X), 2) + floatpower(floatabs(Y), 2) + floatpower(floatabs(Z), 2)), 100), 1.621371192), floatround_round);
       }
       else
       {
               GetPlayerVelocity(playerid, X, Y, Z);
               return floatround(floatmul(floatmul(floatsqroot(floatpower(floatabs(X), 2) + floatpower(floatabs(Y), 2) + floatpower(floatabs(Z), 2)), 100), 1.621371192), floatround_round);
       }
}

Hoe moet ik er nou voor zorgen dat de GetPlayerSpeed output word weergeven in die Textdraw.

Liefst met uitleg, moet er ook wat van leren natuurlijk :).

Gr, Alex

Bewerkt: door alex.naoumov
Geplaatst:

Ik zou om te beginnen iets anders gebruiken dan OnPlayerUpdate om de tekst op het scherm te zetten.

Persoonlijk zou ik het zo doen:

public OnPlayerStateChange(playerid, newstate, oldstate)
{
   if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
   {
       TextDrawShowForPlayer(playerid,textdraw[playerid]);
   }
   else
   {
       TextDrawHideForPlayer(playerid, textdraw[playerid]);
   }
   return 1;
}

Dan, om de snelheid te krijgen:

new speed[32];
format(speed, sizeof(speed), "%d Km/h", GetPlayerSpeed(playerid));
TextDrawSetString(textdraw[playerid], speed);

Geplaatst:

Ik zou om te beginnen iets anders gebruiken dan OnPlayerUpdate om de tekst op het scherm te zetten.

Persoonlijk zou ik het zo doen:

public OnPlayerStateChange(playerid, newstate, oldstate)
{
   if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
   {
       TextDrawShowForPlayer(playerid,textdraw[playerid]);
   }
   else
   {
       TextDrawHideForPlayer(playerid, textdraw[playerid]);
   }
   return 1;
}

Dan, om de snelheid te krijgen:

new speed[32];
format(speed, sizeof(speed), "%d Km/h", GetPlayerSpeed(playerid));
TextDrawSetString(textdraw[playerid], speed);

Maar dan zou je Speed op een snelheid blijven hangen en niet veranderen.. als je harder of langzamer gaat

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.
×
×
  • Create New...