Probleme mit Speedometer

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
  • Hi Leute, ich habe mir ein Speedometer scrpipt downgeloadet und es ein bisschen umgeschreiben. Es funkioniert auch soweit, aber nur direkt nach dem Server Start. Da wird mir die korrekte Geschwindigkeit angezeigt. Wenn ich dann allerdings relogge und der Server weiterläuft und ich dann wieder in ein Fahrzeug steige, und fahre, werden plötzlich 2 verschiedene Geschwindigkeiten angezeigt. Die richtige nur ganz kurz und die Falsche fast die ganze Zeit. Ich hoffe ihr könnt mir weiterhelfen.


    Mein Script:
    public OnPlayerConnect(playerid)
    {
    TT_0[playerid] = TextDrawCreate(142.000000,365.000000,"100");
    TextDrawUseBox(TT_0[playerid],1);
    TextDrawBoxColor(TT_0[playerid],0x00000099);
    TextDrawTextSize(TT_0[playerid],250.000000,0.000000);
    TextDrawAlignment(TT_0[playerid],0);
    TextDrawBackgroundColor(TT_0[playerid],0x000000ff);
    TextDrawFont(TT_0[playerid],3);
    TextDrawLetterSize(TT_0[playerid],0.499999,1.000000);
    TextDrawColor(TT_0[playerid],0xffffffff);
    TextDrawSetOutline(TT_0[playerid],1);
    TextDrawSetProportional(TT_0[playerid],1);
    TextDrawSetShadow(TT_0[playerid],1);
    TextDrawHideForAll(TT_0[playerid]);
    }
    public Updating(playerid)//Ist ein Timer mit dem Intervall 1000
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new speed[128];
    new Float:xg,Float:yg,Float:zg;
    new Float:distance,value;
    GetPlayerPos(playerid, xg, yg, zg);
    distance = floatsqroot(floatpower(floatabs(floatsub(xg,SavedPOSx[playerid])),2)+floatpower(floatabs(floatsub(yg,SavedPOSy[playerid])),2)+floatpower(floatabs(floatsub(zg,SavedPOSz[playerid])),2));
    value = floatround(distance * 11000);
    SavedPOSx[playerid] = xg;
    SavedPOSy[playerid] = yg;
    SavedPOSz[playerid] = zg;
    format(speed,sizeof(speed),"%d km/h",floatround(value/3200));
    TextDrawSetString(TT_0[playerid],speed);
    }
    }


    OnPlayerStateChange(playerid,...,...)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    TextDrawShowForPlayer(playerid,TT_0[playerid]);
    }
    if(newstate == PLAYER_STATE_ONFOOT)
    {
    TextDrawHideForPlayer(playerid,TT_0[playerid]);
    }
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    TextDrawDestroy(TT_0[playerid]);
    TextDrawHideForAll(TT_0[playerid]);
    }

  • Was soll ich machen, eig ist das ja Grundkenntnis und sollte von jedem begriffen sein, Aber ich bin ja nicht so.


    Fast peinlich ^^



    public Updating()//Ist ein Timer mit dem Intervall 1000


    {
    for(new playerid;playerid<MAX_PLAYERS;playerid++)if(IsPlayerInAnyVehicle(playerid))
    {
    new speed[128];
    new Float:xg,Float:yg,Float:zg;
    new Float:distance,value;
    GetPlayerPos(playerid, xg, yg, zg);
    distance = floatsqroot(floatpower(floatabs(floatsub(xg,SavedPOSx[playerid])),2)+floatpower(floatabs(floatsub(yg,SavedPOSy[playerid])),2)+floatpower(floatabs(floatsub(zg,SavedPOSz[playerid])),2));
    value = floatround(distance * 11000);
    SavedPOSx[playerid] = xg;
    SavedPOSy[playerid] = yg;
    SavedPOSz[playerid] = zg;
    format(speed,sizeof(speed),"%d km/h",floatround(value/3200));
    TextDrawSetString(TT_0[playerid],speed);
    }
    }



    //dann folgendermaßen den timer setzen:
    public OnGameModeInit()
    {
    SetTimer("Updating",1000,1);
    }



    und den timer unter onplayerconnect wegmachen

    Deine Werbung hier?
    Niemals!
    Denn hier steht GTA:Westcoast
    gtawc.de