[HELP] Höhenmeter

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 Probiert ein Höhenmeter zu erstellen das mit einem Textdraw angezeigt wird, aber leider geht es nicht. Wäre sehr hilfreich wenn ihr mir helfen würdet. Hier ist der Code:


    public FlyHigh(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    new Text:anzeige;
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    new string[256];
    format(string, sizeof(string),"High: %", z );
    TextDrawDestroy(anzeige);
    anzeige = TextDrawCreate(450.0, 420.0, string);
    TextDrawLetterSize(anzeige, 0.5, 2.5);
    TextDrawShowForPlayer(playerid,anzeige);
    }
    return 1;
    }

  • Kleiner Tipp noch :
    Du musst das TextDraw nicht immer löschen und neu erstellen. Es reicht wenn du TextDrawSetString(...) machst.


    Nicht jeder, der sich für super hält, ist ein Superheld. :love:
    ------------------------------------------------------------------------------------------------

  • Wie kann ich es machen, das es für alle Spieler geht? Weil so geht es nur für die ID 0.
    Hier sind die ganzen Codes dazu:


    new PlayerTimer[MAX_PLAYERS];
    if(strcmp("/highon",cmdtext,true) == 0)
    {
    SendClientMessage(playerid,COLOR_LIGHTRED,"Server: You have switched the High Meter to ON");
    PlayerTimer[playerid] = SetTimer("FlyHigh",1000,1);
    return 1;
    }
    if(strcmp("/highoff",cmdtext,true) == 0)
    {
    SendClientMessage(playerid,COLOR_LIGHTRED,"Server: You have switched the High Meter to OFF");
    KillTimer(PlayerTimer[playerid]);
    return 1;
    }
    public FlyHigh(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    new Text:anzeige;
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    new string[256];
    format(string, sizeof(string),"High: %", z );
    TextDrawDestroy(anzeige);
    anzeige = TextDrawCreate(450.0, 420.0, string);
    TextDrawLetterSize(anzeige, 0.5, 2.5);
    TextDrawShowForPlayer(playerid,anzeige);
    }
    return 1;
    }


    Wäre super wenn ihr mir helfen würdet.

  • Dann zeigt es aber für alle Spieler an. Aber es soll nur für den Spieler anzeigen, der auch /highon gemacht hat

  • new PlayerTimer[MAX_PLAYERS];
    new Text:anzeige[MAX_PLAYERS];


    public FlyHigh(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    new string[256];
    format(string, sizeof(string),"High: %0.2f", z);
    TextDrawDestroy(anzeige[playerid]);
    anzeige[playerid] = TextDrawCreate(450.0, 420.0, string);
    TextDrawLetterSize(anzeige[playerid], 0.5, 2.5);
    TextDrawShowForPlayer(playerid,anzeige[playerid]);
    }
    return 1;
    }


    if(strcmp("/high",cmdtext,true) == 0)
    {
    if(GetPVarInt(playerid,"highmeter")== 0)
    {
    SendClientMessage(playerid,COLOR_LIGHTRED,"Server: You have switched the High Meter to ON");
    PlayerTimer[playerid] = SetTimerEx("FlyHigh",1000,1,"d",playerid);
    SetPVarInt(playeridm,"highmeter",1);
    } else {
    SendClientMessage(playerid,COLOR_LIGHTRED,"Server: You have switched the High Meter to OFF");
    KillTimer(PlayerTimer[playerid]);
    SetPVarInt(playeridm,"highmeter",0);
    }
    return 1;
    }

  • Danke, es geht alles.


    Aber 1 Bug gibt es noch.


    Sobal es 2 Personen an haben, fängt es bei beiden an zu "blinken". Wenn es 1 Person anhat, "blinkt" es nicht.