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?
Textdraw Color per Timer Ändern!
- .:Angerfist:.
- Geschlossen
- Erledigt
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
-
-
Wenn du schon etwas angefangen hast, dann poste das hier bitte mal, dann können wir deine Fehler suchen.
-
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;
}
}
} -
Ne geht Leider immer noch Net -.- is am Anfang halt Blau und dann Grün und weiter Wechselt es nicht.
-
Hast du nun den "return" und die for-Schleife drinnen?
-
Ja habe ich Gemacht!
-
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.
-
Jo Vielen Vielen Dank an Euch Es Funktioniert jetzt Einwandfrei! Vielen Dank
-
-
breadfish.de
Hat das Thema geschlossen.