Textdraw Color Update

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
  • Hey,
    habe mir ein Textdraw erstellt, besser gesagt 5. Es basiert auf der Z Achse. Zum Beispiel wenn ich höher als 10 bin wird das Textdraw 'ILS3' rot gefärbt. Und wenn ich danach dann tiefer als 10 bin, wird ILS4 rot.
    Aber ich will es machen, dass wenn sich ein Textdraw zu rot färbt, soll sich das, das vorher rot war, weiß werden. Wie mache ich das ? Hier mein Code :
    public ILS(playerid)
    {
    PlayerTextDrawShow(playerid,ILS1[playerid]);
    PlayerTextDrawShow(playerid,ILS2[playerid]);
    PlayerTextDrawShow(playerid,ILS3[playerid]);
    PlayerTextDrawShow(playerid,ILS4[playerid]);
    PlayerTextDrawShow(playerid,ILS5[playerid]);
    new Float:ilsX,Float:ilsY,Float:ilsZ;
    GetPlayerPos(playerid,ilsX,ilsY,ilsZ);
    if(ilsZ < 30.8203)
    {
    PlayerTextDrawColor(playerid, ILS5[playerid], COLOR_RED);
    return 1;
    }
    else if(ilsZ < 20.8203)
    {
    PlayerTextDrawColor(playerid, ILS4[playerid], COLOR_RED);
    return 1;
    }
    else if(ilsZ < 10.8203)
    {
    PlayerTextDrawColor(playerid, ILS3[playerid], COLOR_RED);
    return 1;
    }
    else if(ilsZ > 9.8203)
    {
    PlayerTextDrawColor(playerid, ILS2[playerid], COLOR_RED);
    return 1;
    }
    else if(ilsZ > 8.8203)
    {
    PlayerTextDrawColor(playerid, ILS1[playerid], COLOR_RED);
    return 1;
    }
    return 1;
    }
    CMD:ils(playerid, params)
    {
    SetTimer("ILS",500,1);
    return 1;
    }

  • Du setzt einfach das vorherige und das nachkommende Textdraw zu weiß.


    Angenommen Textdraw 3 wird rot, dann setzt du Textdraw 2 und 4 zu weiß.


    Wird 5 rot, dann wird eben nur 4 weiß, 6 gibt es ja nicht.


    Ist mir nur klar, aber wie mache ich es ? Also ich meine , dass es automatisch wechselt. Nur zum Verständniss es soll immer nur eins rot sein, also immer wenn die höhe wechselt, wechselt die Farbe auch.

  • Na so:


    else if(ilsZ > 9.8203)
    {
    PlayerTextDrawColor(playerid, ILS2[playerid], COLOR_RED);
    PlayerTextDrawColor(playerid, ILS1[playerid], COLOR_WHITE);
    PlayerTextDrawColor(playerid, ILS3[playerid], COLOR_WHITE);
    return 1;
    }


    Das wäre wenn 2 rot wird. Die anderen sind dementsprechend.

  • public ILS(playerid)
    {
    PlayerTextDrawShow(playerid,ILS1[playerid]);
    PlayerTextDrawShow(playerid,ILS2[playerid]);
    PlayerTextDrawShow(playerid,ILS3[playerid]);
    PlayerTextDrawShow(playerid,ILS4[playerid]);
    PlayerTextDrawShow(playerid,ILS5[playerid]);
    new Float:ilsX,Float:ilsY,Float:ilsZ;
    GetPlayerPos(playerid,ilsX,ilsY,ilsZ);
    if(ilsZ < 30.8203)
    {
    PlayerTextDrawColor(playerid, ILS5[playerid], COLOR_RED);
    PlayerTextDrawColor(playerid, ILS4[playerid], COLOR_WHITE);
    return 1;
    }
    else if(ilsZ < 20.8203)
    {
    PlayerTextDrawColor(playerid, ILS5[playerid], COLOR_WHITE);
    PlayerTextDrawColor(playerid, ILS4[playerid], COLOR_RED);
    PlayerTextDrawColor(playerid, ILS3[playerid], COLOR_WHITE);
    return 1;
    }
    else if(ilsZ < 10.8203)
    {
    PlayerTextDrawColor(playerid, ILS4[playerid], COLOR_WHITE);
    PlayerTextDrawColor(playerid, ILS3[playerid], COLOR_RED);
    PlayerTextDrawColor(playerid, ILS2[playerid], COLOR_WHITE);
    return 1;
    }
    else if(ilsZ > 9.8203)
    {
    PlayerTextDrawColor(playerid, ILS3[playerid], COLOR_WHITE);
    PlayerTextDrawColor(playerid, ILS2[playerid], COLOR_RED);
    PlayerTextDrawColor(playerid, ILS1[playerid], COLOR_WHITE);
    return 1;
    }
    else if(ilsZ > 8.8203)
    {
    PlayerTextDrawColor(playerid, ILS2[playerid], COLOR_WHITE);
    PlayerTextDrawColor(playerid, ILS1[playerid], COLOR_RED);
    return 1;
    }
    return 1;
    }


    Hast du es überhaupt probiert...?