Höhenstand in Tankanzeige umtauschen...

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,


    ich habe einen Speedometer mir gedownlaodet nun möchte in den Höhenstand in eine Tachoanzeige umtauschen, wie kann ich das machen?


    Hier die Codes...
    public SpeedoUpdate()
    {
    new Float:Speedo_X,Float:Speedo_Y,Float:Speedo_Z;
    new Float:PlayerSpeedDistance,value;
    new Float:Speedo_HP;


    for(new i=0; i<SLOTS; i++)
    {
    if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i))
    {
    GetPlayerPos(i, Speedo_X, Speedo_Y, Speedo_Z);
    GetPlayerVehicleID(i);
    GetVehicleHealth(GetPlayerVehicleID(i), Speedo_HP);
    PlayerSpeedDistance = floatsqroot(floatpower(floatabs(floatsub(Speedo_X,SavePlayerPos[i][sX])),2)+floatpower(floatabs(floatsub(Speedo_Y,SavePlayerPos[i][sY])),2)+floatpower(floatabs(floatsub(Speedo_Z,SavePlayerPos[i][sZ])),2));
    value = floatround(PlayerSpeedDistance * 5000);


    new str1[256],str2[256],str3[256],str4[256];
    if(SpeedoON[i] == 0)
    {
    TextDrawShowForPlayer(i, box[i]); TextDrawShowForPlayer(i, tacho[i]); TextDrawShowForPlayer(i, fahrzeug[i]); TextDrawShowForPlayer(i, kmh[i]);
    TextDrawShowForPlayer(i, hoehe[i]); TextDrawShowForPlayer(i, zustand[i]); TextDrawShowForPlayer(i, url[i]);
    SpeedoON[i] = 1;
    }
    new kmh_anzahl = floatround(value/1600);


    format(str1,sizeof(str1),"Fahrzeug: ~y~%s",VehicleNames[GetVehicleModel(GetPlayerVehicleID(i))-400]);
    TextDrawSetString(fahrzeug[i], str1);


    if(kmh_anzahl >= 150)
    {
    format(str2,sizeof(str2),"KM/H: ~r~%d",kmh_anzahl);
    TextDrawSetString(kmh[i], str2);
    }
    else if(kmh_anzahl >= 100)
    {
    format(str2,sizeof(str2),"KM/H: ~y~%d",kmh_anzahl);
    TextDrawSetString(kmh[i], str2);
    }
    else if(kmh_anzahl >= 50)
    {
    format(str2,sizeof(str2),"KM/H: ~g~%d",kmh_anzahl);
    TextDrawSetString(kmh[i], str2);
    }
    else
    {
    format(str2,sizeof(str2),"KM/H: ~b~%d",kmh_anzahl);
    TextDrawSetString(kmh[i], str2);
    }


    format(str3,sizeof(str3),"Hoehenlage: ~g~%.1f", Speedo_Z); // <---------------------------------- Hier soll die Tanganzeige hin ;)
    TextDrawSetString(hoehe[i], str3);


    if(Speedo_HP >= 551)
    {
    format(str4,sizeof(str4),"Zustand: ~g~%.2f", Speedo_HP);
    TextDrawSetString(zustand[i], str4);
    }
    else if(Speedo_HP >= 361)
    {
    format(str4,sizeof(str4),"Zustand: ~y~%.2f", Speedo_HP);
    TextDrawSetString(zustand[i], str4);
    }
    else
    {
    format(str4,sizeof(str4),"Zustand: ~r~%.2f", Speedo_HP);
    TextDrawSetString(zustand[i], str4);
    }
    TextDrawSetString(url[i], URL);
    }
    SavePlayerPos[i][sX] = Speedo_X, SavePlayerPos[i][sY] = Speedo_Y, SavePlayerPos[i][sZ] = Speedo_Z;
    }
    for(new i=0; i<SLOTS; i++)
    {
    if(!IsPlayerInAnyVehicle(i))
    {
    TextDrawHideForPlayer(i, box[i]); TextDrawHideForPlayer(i, tacho[i]); TextDrawHideForPlayer(i, fahrzeug[i]); TextDrawHideForPlayer(i, kmh[i]);
    TextDrawHideForPlayer(i, hoehe[i]); TextDrawHideForPlayer(i, zustand[i]); TextDrawHideForPlayer(i, url[i]);
    SpeedoON[i] = 0;
    }
    }
    }


    hoehe[i] = TextDrawCreate(199.000000,408.000000," ");
    TextDrawAlignment(hoehe[i],0);
    TextDrawBackgroundColor(hoehe[i],0x000000ff);
    TextDrawFont(hoehe[i],1);
    TextDrawLetterSize(hoehe[i],0.299999,1.000000);
    TextDrawColor(hoehe[i],0xffffffff);
    TextDrawSetOutline(hoehe[i],1);
    TextDrawSetProportional(hoehe[i],1);
    TextDrawSetShadow(hoehe[i],1);



    public CheckGas()
    {
    new string[256];
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPlayerState(i) == PLAYER_STATE_DRIVER)
    {
    new vehicle = GetPlayerVehicleID(i);
    if(Gas[vehicle] >= 1)
    {
    if(Gas[vehicle] <= 10) { PlayerPlaySound(i, 1085, 0.0, 0.0, 0.0); }
    if(gGas[i] == 1) {
    format(string, sizeof(string), "Treibstoff: %d%",Gas[vehicle]);
    SendClientMessage(i,COLOR_GREEN,string); }
    if(IsAPlane(vehicle) || IsABoat(vehicle)) { Gas[vehicle]++; }
    Gas[vehicle]--;
    }
    else
    {
    NoFuel[i] = 1;
    TogglePlayerControllable(i, 0);
    GameTextForPlayer(i,"~w~~n~~n~~n~~n~~n~~n~~n~~n~Der Tank ist leer~n~Benutze /exit um das Fahrzeug zu verlassen",1500,3);
    }
    }
    }
    }
    return 1;
    }


    Hier ist der Tank public ;)


    LG

  • Höhenstand ist die Z-Achse des Spielers das heißt einfach nur:

    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    new Hoehenstand = Float:z;


    Nun kannste Hoehenstand in dein Textdraw einbinden per %f und hinten beim format ein ,Hoehenstand dazu nehmen. Das wars..

    Why do programmers always mix up Halloween and Christmas?
    Oct 31 == Dec 25

  • ich möchte die tankanzeige an der stelle von dem Höhenstand ;)

  • Sorry nicht gut genug gelesen, liegt an der Müdigkeit. Doch wie meinst du das willst du wo nun der Tacho ist die Höhenanzeige und wo die Höhenanzeige ist den Tacho haben oder wie?

    Why do programmers always mix up Halloween and Christmas?
    Oct 31 == Dec 25

  • ich möchte da wo die Höhenanzeige ist möchte in sehen wieviel Liter im tank ist ;) weil ich das nur brauche und keine Höhenanzeige

  • Anstatt von:
    format(str3,sizeof(str3),"Hoehenlage: ~g~%.1f", Speedo_Z);
    TextDrawSetString(hoehe[i], str3);


    Nimmste:
    format(str3,sizeof(str3),"Tank: ~g~%d/100", gGas[i]);
    TextDrawSetString(hoehe, str3);Musst halt schauen ob du 100 max. Tankvolumen hast oder ob es varriert zwischen den Fahrzeugtypen.

    Why do programmers always mix up Halloween and Christmas?
    Oct 31 == Dec 25

  • da kommt dieser Error


    C:\Users\Nils Schäfer\Desktop\deskop\backup31.10.pwn(7198) : error 035: argument type mismatch (argument 1)


    format(str3,sizeof(str3),"Tank: ~g~%d/100", gGas[i]);
    TextDrawSetString(hoehe, str3); <---- da

  • Hallo,


    nun habe ich das problem das permanent 1 da steht....


    Der Code:



    else
    {
    format(str2,sizeof(str2),"KM/H: ~b~%d",kmh_anzahl);
    TextDrawSetString(kmh[i], str2);
    }


    format(str3,sizeof(str3),"Tank: ~g~%d/100 L", gGas[i]); <------ das isser
    TextDrawSetString(hoehe[i], str3);


    if(Speedo_HP >= 551)
    {
    format(str4,sizeof(str4),"Zustand: ~g~%.2f", Speedo_HP);
    TextDrawSetString(zustand[i], str4);
    }





    Der CheckGas public


    public CheckGas()
    {
    new string[256];
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPlayerState(i) == PLAYER_STATE_DRIVER)
    {
    new vehicle = GetPlayerVehicleID(i);
    if(Gas[vehicle] >= 1)
    {
    if(Gas[vehicle] <= 10) { PlayerPlaySound(i, 1085, 0.0, 0.0, 0.0); }
    if(gGas[i] == 1) {
    format(string, sizeof(string), "",Gas[vehicle]);
    SendClientMessage(i,COLOR_GREEN,string); }
    if(IsAPlane(vehicle) || IsABoat(vehicle)) { Gas[vehicle]++; }
    Gas[vehicle]--;
    }
    else
    {
    NoFuel[i] = 1;
    TogglePlayerControllable(i, 0);
    GameTextForPlayer(i,"~w~~n~~n~~n~~n~~n~~n~~n~~n~Der Tank ist leer~n~Benutze /exit um das Fahrzeug zu verlassen",1500,3);
    }
    }
    }
    }
    return 1;
    }



    LG



    //edit Doch noch ein BUG gefunden

    Einmal editiert, zuletzt von Catman ()