Kmh funktion ins tacho einbauen?

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
  • Laos hier ist die funktion:
    stock getPlayerSpeed(playerid)
    {
    new Float:x, Float:y, Float:z,
    if(IsPlayerInAnyVehicle(playerid))
    {
    GetVehicleVelocity(GetPlayerVehicleId(playerid), x, y ,z);
    }
    else
    {
    GetPlayerVelocity(palyerid, x, y, z);
    }
    //rtn = wurzel(x*x + y*y+ z*z);
    rtn = floatsqroot(x*x + y*y+ z*z);
    return floatround(rtn * 100 * 1.61);
    }


    Und das ist das tacho:
    Textdraw7 = TextDrawCreate(140.000000, 373.000000, "Geschwindigkeit: 100km/h");
    TextDrawBackgroundColor(Textdraw7, 255);
    TextDrawFont(Textdraw7, 3);
    TextDrawLetterSize(Textdraw7, 0.230000, 1.000000);
    TextDrawColor(Textdraw7, -1);
    TextDrawSetOutline(Textdraw7, 0);
    TextDrawSetProportional(Textdraw7, 1);
    TextDrawSetShadow(Textdraw7, 1);
    TextDrawSetSelectable(Textdraw7, 0);


    Das ist das 1.
    Und 2.
    Wie mache ich es das wenn ich aus dem fahrzeug raus bin das tacho auch wieder weg ist?

  • Ganz oben bei den defines


    #define SPEED_KOEFF 1.3


    //Unter Ongamemodeinit
    //Tacho
    for(new playerid=0; playerid < MAX_PLAYERS; playerid++)
    {
    //Textdraw7 [playerid] = TextDrawCreate(140.000000, 373.000000, "Geschwindigkeit: 100km/h");
    Textdraw7 [playerid] = TextDrawCreate(545.000000, 398.000000, "Geschw.: --- Km/h");//MACH ES SO SRY DAS OBERE IST FALSCH
    TextDrawBackgroundColor(Textdraw7 [playerid], 255);
    TextDrawFont(Textdraw7 [playerid], 3);
    TextDrawLetterSize(Textdraw7 [playerid], 0.230000, 1.000000);
    TextDrawColor(Textdraw7 [playerid], -1);
    TextDrawSetOutline(Textdraw7 [playerid], 0);
    TextDrawSetProportional(Textdraw7 [playerid], 1);
    TextDrawSetShadow(Textdraw7 [playerid], 1);
    TextDrawSetSelectable(Textdraw7 [playerid], 0);
    }
    //EndTacho


    Und mach das mal bei Public OnplayerUpdate(playerid);


    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    new vehicleid = GetPlayerVehicleID(playerid), Float:h, string[1500], Float:speed;
    GetVehicleSpeed(vehicleid, speed);
    format(string, 32, "Geschw.: %f Km/h", speed/SPEED_KOEFF);
    if(speed/SPEED_KOEFF<100) strdel(string, 10, 17);
    else strdel(string, 11, 18);
    TextDrawSetString(Textdraw7[playerid], string);
    }



    //Ganz unten im Script


    stock GetVehicleSpeed(vehicleid, &Float:Speed)
    {
    new
    Float:X,
    Float:Y,
    Float:Z;
    GetVehicleVelocity(vehicleid, X, Y, Z);
    Speed = floatsqroot(X*X + Y*Y + Z*Z)*200;
    }



    Mfg. Büttii<3 :)



    //edit etwas hinzugefügt ++ / Fehler behoben

  • Büttii<3:


    Ok aber jz bekomm ich error meesages:


    for(new playerid=0; playerid < MAX_PLAYERS; playerid++)
    {
    Textdraw7 [playerid] = TextDrawCreate(545.000000, 398.000000, "Geschw.: --- Km/h"); //Das ist die linie 888
    TextDrawBackgroundColor(Textdraw7 [playerid], 255);
    TextDrawFont(Textdraw7 [playerid], 3);
    TextDrawLetterSize(Textdraw7 [playerid], 0.230000, 1.000000);
    TextDrawColor(Textdraw7 [playerid], -1);
    TextDrawSetOutline(Textdraw7 [playerid], 0);
    TextDrawSetProportional(Textdraw7 [playerid], 1);
    TextDrawSetShadow(Textdraw7 [playerid], 1);
    TextDrawSetSelectable(Textdraw7 [playerid], 0);
    }


    Die Errors:
    C:\Users\Spiele\Desktop\Server Ordner\Server Projekt\gamemodes\ServerProjekt.pwn(888) : error 028: invalid subscript (not an array or too many subscripts): "Textdraw7"
    C:\Users\Spiele\Desktop\Server Ordner\Server Projekt\gamemodes\ServerProjekt.pwn(888) : warning 215: expression has no effect
    C:\Users\Spiele\Desktop\Server Ordner\Server Projekt\gamemodes\ServerProjekt.pwn(888) : error 001: expected token: ";", but found "]"
    C:\Users\Spiele\Desktop\Server Ordner\Server Projekt\gamemodes\ServerProjekt.pwn(888) : error 029: invalid expression, assumed zero
    C:\Users\Spiele\Desktop\Server Ordner\Server Projekt\gamemodes\ServerProjekt.pwn(888) : fatal error 107: too many error messages on one line

  • new Text:Textdraw7;
    zu:
    new Text:Textdraw7[MAX_PLAYERS];


    und:
    Textdraw7 [playerid]
    zu:
    Textdraw7[playerid]



    Außerdem wäre es besser das ganze mit PlayerTextDraws zu machen.
    Zudem musst du das Textdraw bei OnPlayerDisconnect wieder löschen, sonst bist du irgendwann am Limit.

  • Jz sind es folgende Errors:


    if(newstate == PLAYER_STATE_DRIVER)
    {
    //tacho textdraw
    TextDrawShowForPlayer(playerid, Textdraw6);
    TextDrawShowForPlayer(playerid, Textdraw7); //Linie 2951
    TextDrawShowForPlayer(playerid, Textdraw8);
    return 1;
    }


    public OnPlayerUpdate(playerid)
    {
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    new vehicleid = GetPlayerVehicleID(playerid), Float:h, string[1500], Float:speed; //Linie 3135
    GetVehicleSpeed(vehicleid, speed);
    format(string, 32, "Geschw.: %f Km/h", speed/SPEED_KOEFF);
    if(speed/SPEED_KOEFF<100) strdel(string, 10, 17);
    else strdel(string, 11, 18);
    TextDrawSetString(Textdraw7[playerid], string);
    }
    return 1;
    }


    errors:
    C:\Users\Spiele\Desktop\Server Ordner\Server Projekt\gamemodes\ServerProjekt.pwn(2951) : error 035: argument type mismatch (argument 2)
    C:\Users\Spiele\Desktop\Server Ordner\Server Projekt\gamemodes\ServerProjekt.pwn(3135) : warning 203: symbol is never used: "h"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase

  • TextDrawShowForPlayer(playerid, Textdraw7);
    zu:
    TextDrawShowForPlayer(playerid, Textdraw7[playerid]);


    new vehicleid = GetPlayerVehicleID(playerid), Float:h, string[1500], Float:speed; //Linie 3135
    zu:
    new vehicleid = GetPlayerVehicleID(playerid), string[1500], Float:speed; //Linie 3135

  • Ok Super es klappt Danke!:D
    Aber jz zu meiner 2. Frage die ich gestellt habe, wie mache ich es das das textdraw weg ist wenn ich aussteige?


    WIe schon in deinem Anderem Thread beschrieben :


    bei public OnPlayerStateChange(playerid,newstate,oldstate)


    machst du einfach die ABfrage rein


    if(oldstate == PLAYER_STATE_DRIVER)
    {
    TextDrawHideForPlayer(playerid, Textdraw7[playerid]);
    }

  • Beitrag von Büttii<3 ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.