[HILFE]Speedometer Textdraw

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 zusammen..
    Ich habe folgendes Problem, ich habe heute ein neues Speedometer/Tachometer gemacht.
    Nun möchte ich, das die Variablen von dem Standart Speedometer dort angezeigt werden, wo ich zB


    Textdraw6 = TextDrawCreate(170.000000,366.000000,"100 Benzin"); //Tankanzeige
    Textdraw7 = TextDrawCreate(209.000000,375.000000,"100.00"); //Schaden des Fahrzeuges
    Textdraw8 = TextDrawCreate(139.000000,399.000000,"100Km/h"); //Km Pro Std


    stehen habe. Nur ich weiß nicht, wie ich ganz die Coordinaten von den Textdraws mit denen im Script austausche.
    Im Script sieht das Tacho so aus(werden manche kennen):


    public VehStateCheck()
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i) && GetPlayerState(i) == PLAYER_STATE_DRIVER && !IsANoTachoVehicle(GetPlayerVehicleID(i)))
    {
    if(M_Bot[i][PAFK] == 0)
    {
    new Float:health,vehicleid = GetPlayerVehicleID(i),string[256],Float:value,Float:distance,Float:x,Float:y,Float:z;
    GetPlayerPos(i, x, y, z);
    distance = floatsqroot(floatpower(floatabs(floatsub(x,PCarPos[i][PCarX])),2)+floatpower(floatabs(floatsub(y,PCarPos[i][PCarY])),2)+floatpower(floatabs(floatsub(z,PCarPos[i][PCarZ])),2));
    value = floatround(distance * 11000);
    GetVehicleHealth(vehicleid,health);
    if (health >= 900 && health <= 1000)
    {
    format(string, sizeof(string), "~n~~n~~n~~n~~n~~n~~n~~n~~w~%d~g~ KM/H~n~~w~%d ~b~/~w~ %d~r~ Benzin~n~~g~~h~%s",floatround(value/1400),Gas[vehicleid],GetGasMax(GetVehicleModel(vehicleid)),VehicleName[GetVehicleModel(vehicleid)-400]);
    GameTextForPlayer(i,string,850,3);
    }
    else if (health >= 600 && health < 900)
    {
    format(string, sizeof(string), "~n~~n~~n~~n~~n~~n~~n~~n~~w~%d~g~ KM/H~n~~w~%d ~b~/~w~ %d~r~ Benzin~n~~g~%s",floatround(value/1400),Gas[vehicleid],GetGasMax(GetVehicleModel(vehicleid)),VehicleName[GetVehicleModel(vehicleid)-400]);
    GameTextForPlayer(i,string,850,3);
    }
    else if (health >= 380 && health < 600)
    {
    format(string, sizeof(string), "~n~~n~~n~~n~~n~~n~~n~~n~~w~%d~g~ KM/H~n~~w~%d ~b~/~w~ %d~r~ Benzin~n~~y~%s",floatround(value/1400),Gas[vehicleid],GetGasMax(GetVehicleModel(vehicleid)),VehicleName[GetVehicleModel(vehicleid)-400]);
    GameTextForPlayer(i,string,850,3);
    }
    else if (health >= 0 && health < 380)
    {
    format(string, sizeof(string), "~n~~n~~n~~n~~n~~n~~n~~n~~w~%d~g~ KM/H~n~~w~%d ~b~/~w~ %d~r~ Benzin~n~~r~%s",floatround(value/1400),Gas[vehicleid],GetGasMax(GetVehicleModel(vehicleid)),VehicleName[GetVehicleModel(vehicleid)-400]);
    GameTextForPlayer(i,string,850,3);
    }
    PCarPos[i][PCarX] = x;
    PCarPos[i][PCarY] = y;
    PCarPos[i][PCarZ] = z;
    }
    }
    }
    return 1;
    }


    Wo kann ich denn dort bestimmen, wo die Textdraw Koordinaten hin sollen?
    Und wenn dies möglich ist, wäre es möglich das die Anzeige auch das Design von dem Textdraw hat?
    Die Stayles habe ich bereits
    //
    Jetzt bin ich soweit das es schon in etwa so ausschaut


    if(!IsAPlane(vehicle) && !IsABoat(vehicle) && !IsAFun(vehicle) && !IsASailingTest(vehicle) && !IsABike(vehicle))
    {
    if(distancenew > 80)
    {
    if(distancenew > 120)
    {
    format(newtext, sizeof(newtext), "%d / %d Benzin", Gas[vehicle],GetGasMax(GetVehicleModel(vehicle)));
    TextDrawSetString(Textdraw6, newtext);
    TextDrawShowForPlayer(playerid, Textdraw6);
    }
    else
    {
    format(newtext, sizeof(newtext), "%.0f Km/h", distancenew);
    TextDrawSetString(Textdraw8, newtext);
    TextDrawShowForPlayer(playerid, Textdraw8);
    }
    }
    format(newtext, sizeof(newtext), "%s", PlayerCarName[playerid]);
    TextDrawSetString(Textdraw9, newtext);
    TextDrawShowForPlayer(playerid, Textdraw9);
    }
    else
    {
    if(distancenew > 80)
    {
    if(distancenew > 120)
    {
    format(newtext, sizeof(newtext), "%d / %d Benzin", Gas[vehicle],GetGasMax(GetVehicleModel(vehicle)));
    TextDrawSetString(Textdraw6, newtext);
    TextDrawShowForPlayer(playerid, Textdraw6);
    }
    else
    {
    format(newtext, sizeof(newtext), "%.0f Km/h", distancenew);
    TextDrawSetString(Textdraw8, newtext);
    TextDrawShowForPlayer(playerid, Textdraw8);
    }
    }
    else
    {
    format(newtext, sizeof(newtext), "%s", PlayerCarName[playerid]);
    TextDrawSetString(Textdraw9, newtext);
    TextDrawShowForPlayer(playerid, Textdraw9);
    }
    }


    Aber funktionieren tut nur der Name. Die Anzeige der Km/h startet nur ab 80 und endet bei 120 wie es oben steht.
    Vorher ging es auch ab 0 . Die Benzin anzeige geht auch nur wenn ich zB mit einem Sultan 98/100 Benzin habe. Steige ich in einen
    Turismo ein steht dort auch 98/100 Benzin und wird erst beim nächsten Anzeigen aktuallisiert.


    //Edit Editierung von Verbesserung
    //Edit Editierungen eingetragen =)

    KleineHilfe 2.0

    Einmal editiert, zuletzt von YaBroo ()