Textdraw Color per Timer Ändern!

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
  • Guten tag Liebe Breadfishe! Folgendes ich wollte mal Fragen es Müsste ja Möglich sein das wenn man Aufem Server Ein Textdraw z.b der Server in meinem Fall GFR die Farbe zu ändern per Timer also das sich die Textdraw Color Farbe nach Bestimter Zeit Ändert,Habe selbst schon nen Paar Sachen Ausprobiert aber es Spinnt Immer... Weis einer Zufällig wie ich das Richtig mache?

  • Okay! Viele denken das ist Scheiße aber Sry bin nicht so gut in Scripten so hier was ich Angefang habe:


    So oben halt Forward und New und Timer:
    forward GamemodeColorAender(playerid);
    new ColorChanger = 1;
    SetTimer("GamemodeColorAender",8000,1);


    Und hier das Eigendlich was die Farbe Ändern soll:
    public GamemodeColorAender(playerid)
    {
    if(ColorChanger == 1)
    {
    TextDrawHideForPlayer(playerid,ModeName);
    TextDrawShowForPlayer(playerid,ModeName);
    TextDrawColor(ModeName, COLOR_GFR_BLUE);
    ColorChanger = 2;
    }
    else if(ColorChanger == 2)
    {
    TextDrawHideForPlayer(playerid,ModeName);
    TextDrawShowForPlayer(playerid,ModeName);
    TextDrawColor(ModeName, COLOR_GREEN);
    ColorChanger = 1;
    }
    }


    PS: Die Farbe Ändert sich Quasi von Blau in Grün aber nicht Zurück!

  • Versuch mal folgendes:

    public GamemodeColorAender(playerid)
    {
    if(ColorChanger == 1)
    {
    TextDrawHideForPlayer(playerid,ModeName);
    TextDrawShowForPlayer(playerid,ModeName);
    TextDrawColor(ModeName, COLOR_GFR_BLUE);
    ColorChanger = 2;
    return;
    }
    else if(ColorChanger == 2)
    {
    TextDrawHideForPlayer(playerid,ModeName);
    TextDrawShowForPlayer(playerid,ModeName);
    TextDrawColor(ModeName, COLOR_GREEN);
    ColorChanger = 1;
    return;
    }
    }

  • Nebenbei wird die Farbe nur bei Spieler playerid=0 geändert, da du die Funktion nicht über einen Befehl sondern über einen Timer aufrufst. Ergo den Parameter playerid entfernen und dafür eine


    for-Loop laufen lassen.


    public GamemodeColorAender()
    {
    for(new i = 0;i<MAX_PLAYERS;i++)
    {
    if(ColorChanger == 1)
    {
    TextDrawHideForPlayer(i,ModeName);
    TextDrawShowForPlayer(i,ModeName);
    TextDrawColor(ModeName, COLOR_GFR_BLUE);
    ColorChanger = 2;
    }
    else if(ColorChanger == 2)
    {
    TextDrawHideForPlayer(i,ModeName);
    TextDrawShowForPlayer(i,ModeName);
    TextDrawColor(ModeName, COLOR_GREEN);
    ColorChanger = 1;
    }
    }
    }

  • War ja auch bescheuert, was ich dir da reingeschrieben hab. Machs mal so


    public GamemodeColorAender()
    {


    if(ColorChanger == 1)
    {
    for(new i = 0;i<MAX_PLAYERS;i++)
    {
    TextDrawHideForPlayer(i,ModeName);
    TextDrawShowForPlayer(i,ModeName);
    TextDrawColor(ModeName, COLOR_GFR_BLUE);
    }
    ColorChanger = 2;
    }
    else if(ColorChanger == 2)
    {
    for(new i = 0;i<MAX_PLAYERS;i++)
    {
    TextDrawHideForPlayer(i,ModeName);
    TextDrawShowForPlayer(i,ModeName);
    TextDrawColor(ModeName, COLOR_GREEN);
    }
    ColorChanger = 1;
    }
    }


    edit: Ansonsten Stell die Var mal mit ColorChanger ++; und ColorChanger --; um bzw benutz booleans.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen