Tacho Problem

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo Breadfish Community,


    ich haette da mal ein Frage und zwar hab ich ein Tacho gescriptet von "[SCRIPTING]Tacho erstellen" aber die Zahlen werden nicht aktualisiert also ich fahre über "100" und wenn ihc anhalten steht da "000" oder "018". Wüsste einer wie ich das wegmache ?
    Screens:



    danke im vorraus..


    MfG
    DarkSoldier



    //Edit by Haube Überschrift.
    Beim nächsten mal gibt es Ärger!

    Einmal editiert, zuletzt von Haubitze ()

  • ich hab nen SetTimer drinne...


    HIer Script auschnitte:
    #define TACHOTIMER 1000


    forward TachoTimer();


    new Text:Tacho[MAX_PLAYERS];


    SetTimer("TachoTimer",TACHOTIMER,1);


    public TachoTimer()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i))
    {
    new Float:Entfernung, Float:Geschwindigkeit; // Die definierten Floats die mit den Werten gefüttert werden
    GetVehiclePos(GetPlayerVehicleID(i), X1[i], Y1[i], Z1[i]); //Erste Koordinate wird genommen
    Entfernung = 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)); //Berechnung der Entfernung
    Geschwindigkeit = (Entfernung / (TACHOTIMER/1000)) * 3.6; //Meter/Sekunde in Kilometer/Stunde
    new Tachostring[20]; // definiert den String
    format(Tachostring, sizeof(Tachostring), "Km/h: %d", floatround(Geschwindigkeit)); //Hier das format, was es macht siehe oben im Wiki-Link. floatround rundet die Kommerzahl (Float:Geschwindigkeit) zu einer normalen ganzzahligen zahl, damit wir den Integer %d der für ganze zahlen ist, verwenden können.
    Tacho[i] = TextDrawCreate(550.0, 370, Tachostring);
    TextDrawSetString(Tacho[i], Tachostring); //Setzt den String für das Textdraw für den Spieler mit der ID "i"
    GetVehiclePos(GetPlayerVehicleID(i), X2[i], Y2[i], Z2[i]); //Zweite Koordinate wird genommen
    TextDrawShowForPlayer(i, Tacho[i]);
    TextDrawLetterSize(Tacho[i], 0.4, 1.1);
    TextDrawFont(Tacho[i], 3);
    TextDrawSetShadow(Tacho[i], 2);
    TextDrawSetOutline(Tacho[i],2);
    }
    else
    {
    TextDrawHideForPlayer(i, Tacho[i]);
    }
    }
    return 1;
    }

    sry für verschiebung
    MfG
    DarkSoldier

  • versuchs mal so:


    #define TACHOTIME 1000


    forward TachoTimer();


    new Text:Tacho[MAX_PLAYERS];


    public OnGameModeInit()
    {
    SetTimer("TachoTimer",TACHOTIME,1);
    }


    public TachoTimer()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i))
    {
    new Float:Entfernung, Float:Geschwindigkeit; // Die definierten Floats die mit den Werten gefüttert werden
    GetVehiclePos(GetPlayerVehicleID(i), X1[i], Y1[i], Z1[i]); //Erste Koordinate wird genommen
    Entfernung = 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)); //Berechnung der Entfernung
    Geschwindigkeit = (Entfernung / (TACHOTIMER/1000)) * 3.6; //Meter/Sekunde in Kilometer/Stunde
    new Tachostring[20]; // definiert den String
    format(Tachostring, sizeof(Tachostring), "Km/h: %d", floatround(Geschwindigkeit)); //Hier das format, was es macht siehe oben im Wiki-Link. floatround rundet die Kommerzahl (Float:Geschwindigkeit) zu einer normalen ganzzahligen zahl, damit wir den Integer %d der für ganze zahlen ist, verwenden können.
    TextDrawSetString(Tacho[i], Tachostring); //Setzt den String für das Textdraw für den Spieler mit der ID "i"
    GetVehiclePos(GetPlayerVehicleID(i), X2[i], Y2[i], Z2[i]); //Zweite Koordinate wird genommen
    }
    }
    }
    return 1;
    }
    public OnPlayerConnect(playerid)
    {
    Tacho[playerid] = TextDrawCreate(550.0, 370, Tachostring);
    TextDrawLetterSize(Tacho[playerid], 0.4, 1.1);
    TextDrawFont(Tacho[playerid], 3);
    TextDrawSetShadow(Tacho[playerid], 2);
    TextDrawSetOutline(Tacho[playerid],2);
    return 1;
    }
    public OnPlayerDisconnect(playerid, reason)
    {
    TextDrawDestroy(textdraw[playerid]);
    return 1;
    }
    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
    {
    TextDrawShowForPlayer(playerid,Tacho[playerid]);
    }
    else if(oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER)
    {
    TextDrawHideForPlayer(playerid,Tacho[playerid]);
    }
    return 1;
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • habs verändert und getestet jetzt klapps:
    #include <a_samp>


    #define TACHOTIME 200
    new Float:X1[MAX_PLAYERS];
    new Float:Y1[MAX_PLAYERS];
    new Float:Z1[MAX_PLAYERS];
    new Float:X2[MAX_PLAYERS];
    new Float:Y2[MAX_PLAYERS];
    new Float:Z2[MAX_PLAYERS];
    forward TachoTimer();


    new Text:Tacho[MAX_PLAYERS];


    public OnGameModeInit()
    {
    SetTimer("TachoTimer",TACHOTIME,1);
    }


    public TachoTimer()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i))
    {
    new Float:Entfernung, Float:Geschwindigkeit; // Die definierten Floats die mit den Werten gefüttert werden
    GetVehiclePos(GetPlayerVehicleID(i), X1[i], Y1[i], Z1[i]); //Erste Koordinate wird genommen
    Entfernung = 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)); //Berechnung der Entfernung
    Geschwindigkeit = (Entfernung / (TACHOTIME/1000)) * 3.6; //Meter/Sekunde in Kilometer/Stunde
    new Tachostring[20]; // definiert den String
    format(Tachostring, sizeof(Tachostring), "Km/h: %d", floatround(Geschwindigkeit)); //Hier das format, was es macht siehe oben im Wiki-Link. floatround rundet die Kommerzahl (Float:Geschwindigkeit) zu einer normalen ganzzahligen zahl, damit wir den Integer %d der für ganze zahlen ist, verwenden können.
    TextDrawSetString(Tacho[i], Tachostring); //Setzt den String für das Textdraw für den Spieler mit der ID "i"
    GetVehiclePos(GetPlayerVehicleID(i), X2[i], Y2[i], Z2[i]); //Zweite Koordinate wird genommen
    }
    }
    return 1;
    }
    public OnPlayerConnect(playerid)
    {
    Tacho[playerid] = TextDrawCreate(550.0, 370, " ");
    TextDrawLetterSize(Tacho[playerid], 0.4, 1.1);
    TextDrawFont(Tacho[playerid], 3);
    TextDrawSetShadow(Tacho[playerid], 2);
    TextDrawSetOutline(Tacho[playerid],2);
    return 1;
    }
    public OnPlayerDisconnect(playerid, reason)
    {
    TextDrawDestroy(Tacho[playerid]);
    return 1;
    }
    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
    {
    TextDrawShowForPlayer(playerid,Tacho[playerid]);
    }
    else if(oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER)
    {
    TextDrawHideForPlayer(playerid,Tacho[playerid]);
    }
    return 1;
    }


    //e hab was am code verändert

  • Hi


    Jo genau. Der rest der die daten/aussehen des textdraws bestimmt, unteranderem auch CreateTextDraw, muss in OnGameModeInit, oder einen anderen Public der EIN mal aufgerufen wird. Bei mir im Tutorial habe ich das aber glaube ich auch geschrieben, dass das mit dem Textdraw-define kram in OnGameModeInit kommt ;)


    MFG, Robdeflop®

  • öhm sry wenn ich jetz dumme fragen stelle aber irgendwie bin ich nun verwirrt


    also ich hab die textdraws in gamemodeinit aber trotzdem wird mir nur 0km/h beim fahren angezeigt 8|


    könnt ihr vllt ein pawncode senden?


    MfG
    DarkSoldier

  • Hi


    Hmm, ich weiß im moment ja auch nicht genau was du alles gemacht hast, aber ich kann dir nur raten, dir nochmal mein Tutorial durchzulesen und alles danach zu scripten/neu zumachen. Sollte ja eigendlich nicht lange dauern^^
    Fragen kannst du außerdem auch direkt in das Tut schreiben ;)


    MFG, Robdeflop®

  • Hi


    Das sind die Car-Models^^


    Also die Typen von den cars. Wenn du z.B. 100 Infernus´ im server hast, ist es trotzdem nur 1 Vehicle Model im server. Sind also nicht die cars, sondern wie viele verschiedene Vehicle Models drinne sind ;) Das steht darum da, weil die Vehicle-Model anzahl früher begrenzt war, man konnte also nicht alle verschiedenen cars auf einmal im server haben.


    MFG, Robdeflop®

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen