Guten Morgen Community!
Brauche bissl Hilfe, und zwar wenn ich ein Countdown erstelle Dialog weise halt das klappt alles aber wenn
der zählen tut soll er das alles runter zählen Minuten und Sekunden.
Aber wenn er die Sekunden vorbei hat hört er auf zu Zählen, er soll aber weiter runter rechnen bis 0 Minuten und 0 Sekunden..
Hilfe beim CountDown
- Pascal.
- 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
-
-
Die Aufbau ist komisch aber ja ...
Ersetze es mal mit folgendes :
if(Event[Minute] >0)
{
Event[Minute] =-1;
Event[Sekunde] = 60; // Hast das vergessen
}
else Event[Sekunde] --;
if(Event[Minute] == 0 && Event[Sekunde] == 0) // Statt || (oder) sollst du && (und) verwenden
{
ocmd_devent(i,"");
}- Handy
-
Die komplette Logik dahinter war falsch. So sollte es klappen:
forward CountDown();
public CountDown()
{
Event[Sekunde]--;
new string[128];
format(string,128,"%02d:%02d",Event[Minute],Event[Sekunde]);
TextDrawSetString(EUHR1,string);
for(new i=0; i<MAX_PLAYERS; i++)
{
if(OnEvent[i] != 0)
{
TextDrawShowForPlayer(i,EUHR0);
TextDrawShowForPlayer(i,EUHR1);
}
}
if(Event[Sekunde] == 0)
{
if(Event[Minute] >0)
{
Event[Minute]--;
Event[Sekunde] = 60;
}
else
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(OnEvent[i] != 0)
{
ocmd_devent(i,"");
}
}
return 1;
}
}
cd = SetTimer("CountDown",1000,0);
return 1;
}Edit: Die Einrückung hat es zerlegt. Kann es am Handy grade nicht besser einrücken. Aber das bekommst sicher selbst hin, einfach Tabs setzen.
-
Die komplette Logik dahinter war falsch. So sollte es klappen:
forward CountDown();
public CountDown()
{
Event[Sekunde]--;
new string[128];
format(string,128,"%02d:%02d",Event[Minute],Event[Sekunde]);
TextDrawSetString(EUHR1,string);
for(new i=0; i<max_players; i++)=""
{
if(OnEvent[i] != 0)
{
TextDrawShowForPlayer(i,EUHR0);
TextDrawShowForPlayer(i,EUHR1);
}
}
if(Event[Sekunde] == 0)
{
if(Event[Minute] >0)
{
Event[Minute]--;
Event[Sekunde] = 60;
}
else
{
for(new i=0; i<max_players; i++)=""
{
if(OnEvent[i] != 0)
{
ocmd_devent(i,"");
}
}
return 1;
}
}
cd = SetTimer("CountDown",1000,0);
return 1;
}Edit: Die Einrückung hat es zerlegt. Kann es am Handy grade nicht besser einrücken. Aber das bekommst sicher selbst hin, einfach Tabs setzen.
Danke dir für den Code, gehe aber gleich Schlafen und probiere es Später aus.
Aber eine Frage die ich noch habe... Warum soll ich abfragen ob der Spieler nicht im Event ist, und ihn dann die Textdraws zeigen? -
Es wird abgefragt ob OnEvent nicht 0 ist. Also ob er nicht nicht im Event ist.
-
Es wird abgefragt ob OnEvent nicht 0 ist. Also ob er nicht nicht im Event ist.
Sorry mein Fehler!
Passiert halt mal wenn man ein harten Tag hatte & dazu noch 25 Std wach ist.
Danke für deine HilfeJeffrey, der Countdown bleibt bei 1 min stehen.
Und Wenn der Countdown auf 0 min 0 sek ist soll das Event beendet werden.
-
Also bei mir funktioniert es ohne Probleme.
Hier nochmal richtig eingerückt:
Spoiler anzeigen forward CountDown();
public CountDown()
{
Event[Sekunde]--;
new string[128];
format(string,128,"%02d:%02d",Event[Minute],Event[Sekunde]);
TextDrawSetString(EUHR1,string);
for(new i=0; i<MAX_PLAYERS; i++)
{
if(OnEvent[i] != 0)
{
TextDrawShowForPlayer(i,EUHR0);
TextDrawShowForPlayer(i,EUHR1);
}
}
if(Event[Sekunde] == 0)
{
if(Event[Minute] >0)
{
Event[Minute]--;
Event[Sekunde] = 60;
}
else
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(OnEvent[i] != 0)
{
ocmd_devent(i,"");
}
}
return 1;
}
}
cd = SetTimer("CountDown",1000,0);
return 1;
}
-
Vielen Dank, hatte es gestern falsch eingerückt.
Naja was will man machen zu lange wach gewesen
-
breadfish.de
Hat das Thema geschlossen.