Guten Tag,
Kann man das Tacho auch flüssig laufen lassen?
Ich weiß, dass es viel an Ressourcen zieht, aber ich will es mal testen.
Grüße,
TheBester
Guten Tag,
Kann man das Tacho auch flüssig laufen lassen?
Ich weiß, dass es viel an Ressourcen zieht, aber ich will es mal testen.
Grüße,
TheBester
Den Tacho anstatt alle 1000, alle 100 Milisekunden updaten (timer umstellen)
Ja, das habe ich schon gemacht, aber dann zeigt der mir nur bis 10 km/h an
Du musst die Berechnung des Timers natürlich dann auch umstellen..
Also nicht nur oben bei deinem Tacho Define sondern auch unter UpdateTacho..
Wenn du es alle 33 Millisekunden updatest dann läuft es flüssig. Zieht aber stark an den Ressourcen.
Hab es nun so:
public UpdateTacho() //Tacho Public
{
for(new i = 0;i<MAX_PLAYERS;i++) //Forschleife
{
if(IsPlayerConnected(i) && GetPlayerState(i) == PLAYER_STATE_DRIVER && !IsPlayerNPC(i)) //Abfrgae ob Spieler in Car sitzt
{
new Float:Strecke,Float:Geschwindigkeit,Float:health;//Neue Variablen
GetVehicleHealth(GetPlayerVehicleID(i),health);
GetVehiclePos(GetPlayerVehicleID(i),X1[i],Y1[i],Z1[i]); //Geben dem Auto die erste Position
Strecke = floatsqroot(floatpower(floatabs(floatsub(X1[i],X2[i])),2)+floatpower(floatabs(floatsub(Y1[i],Y2[i])),2)+floatpower(floatabs(floatsub(Z1[i],Z2[i])),2));//Rechnen die Geschwindigkeit aus
Geschwindigkeit = (Strecke / (TACHOTIMER /100)) * 3.6; //Teilen das durch unseren TACHOTIMER define. Danach durch 1000 und dann mal 3,6. Damit es in Killometer ausgegeben wird.
new string[750]; //definen unseren String
format(string,750," ~b~%s~n~~r~Geschw. ~w~%d km/h~n~~r~Tank: ~w~%i Liter~n~~r~Zustand: ~w~%.2f%",Fahrzeugname[GetVehicleModel(GetPlayerVehicleID(i))-400],floatround(Geschwindigkeit),Tank[GetPlayerVehicleID(i)],health); //Geben unseren TextDraw aus
TextDrawSetString(Tacho[i],string); //Updaten unseren Tacho
GetVehiclePos(GetPlayerVehicleID(i),X2[i],Y2[i],Z2[i]); //Geben dem Auto die zweite Position
TextDrawShowForPlayer(i,Tacho[i]); //Zeigen unserem Player den Tacho
}
else //Wenn er kein Fahrer ist oder in keinem Auto sitzt oder er NPC ist, passiert folgendes
{
TextDrawHideForPlayer(i,Tacho[i]); //TextDraw wird nicht angezeigt
}
}
return 1;
}
#define TACHOTIMER 100
timer = SetTimer("UpdateTacho",100,true);
Aber er zeigt nur bis 10km/h an
Unter OnPlayerUpdate läuft es noch flüssiger, kannst mal in meinem NaMe oF LiFe Script kucken da ist es so gemacht.
unter OnPlayerUpdate ist sinnlos
wird 1000 mal in der Sekunde aufgerufen(weiß nicht obs stimmt, wird aber oft aufgerufen)
zieht zu stark an den Ressouren
unter OnPlayerUpdate ist sinnlos
wird 1000 mal in der Sekunde aufgerufen(weiß nicht obs stimmt, wird aber oft aufgerufen)
zieht zu stark an den Ressouren
Er sagte ist egal. Er wills Testen -_- lies dir doch den first Beitrag durch.
Ja testen will ich es wohl, aber wenn es klappt, will ich das auch wohl so lassen. Sollten dann später Probleme damit aufkommen, werde ich das sofort wieder rückgängig machen
Also, weiß nun einer, außer OnPlayerUpdate, da ich dies gerne meiden möchte
Timer, 500 ms.
Reicht völlig aus.
Timer, 500 ms.
Reicht völlig aus.
Das ist dann aber alles andere als flüssig.