Countdown funktioniert nicht richtig

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,



    habe mir ein Countdown erstell der soweit auch funktioniert jedoch ist ein kleiner Fehler drin.



    new countdown = 5;


    forward countmedown();


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/starten", cmdtext, true, 10) == 0)
    {
    SetTimer("countmedown",1000,0);
    }
    return 0;
    }


    public countmedown()
    {
    if(countdown > 0)
    {
    new string[128];
    format(string,sizeof(string),"%d",countdown);
    GameTextForAll(string,1000,5);
    SetTimer("countmedown",1000,0);
    countdown --;
    }
    else
    {
    GameTextForAll("~g~GO GO GO",1000,5);
    countdown = 0;
    }
    }



    jedoch funktioniert der countdown nur beim ersten mal. wenn ich erneut /starten eingeben kommt gleich GO GO GO...kann mir einer sagen warum?



    thx im vorraus


  • if(Hirnan[playerid] != 1)
    {
    Hirnan[playerid] = 1;
    SendClientMessage(playerid,COLOR_RED,"Hirn anschalten!");
    }

    Versuchs mal ;)


    Schaumal da:

    public countmedown() { if(countdown > 0) { new string[128]; format(string,sizeof(string),"%d",countdown); GameTextForAll(string,1000,5); SetTimer("countmedown",1000,0); countdown --; } else { GameTextForAll("~g~GO GO GO",1000,5); countdown = 0; } }



    Schaumal, Countdown wird auf 0 gesetzt, dabei muss es auf 5

  • forward countmedown(Float:StartX, Float:StartY, Float:StartZ);


    new countdown = 5;
    new countdowntimer;


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/starten", cmdtext, true, 10) == 0)
    {
    new Float:PlayerPos[3]; GetPlayerPos(playerid, PlayerPos[0], PlayerPos[1], PlayerPos[2]);
    countdowntimer = SetTimerEx("countmedown",1000,1,"fff", PlayerPos[0], PlayerPos[1], PlayerPos[2]);
    }
    return 0;
    }


    public countmedown(Float:StartX, Float:StartY, Float:StartZ)
    {
    if(countdown > 0)
    {
    new string[128];
    format(string,sizeof(string),"%d",countdown);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerInRangeOfPoint(i, 20.0, StartX, StartY, StartZ)) continue;
    GameTextForPlayer(i,string,1000,5);
    }
    countdown --;
    }
    else
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerInRangeOfPoint(i, 20.0, StartX, StartY, StartZ)) continue;
    GameTextForPlayer(i,"~g~GO GO GO",1000,5);
    }
    KillTimer(countdowntimer);
    countdown = 5;
    }
    }

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • Schaumal da:

    public countmedown() { if(countdown > 0) { new string[128]; format(string,sizeof(string),"%d",countdown); GameTextForAll(string,1000,5); SetTimer("countmedown",1000,0); countdown --; } else { GameTextForAll("~g~GO GO GO",1000,5); countdown = 0; } }



    Schaumal, Countdown wird auf 0 gesetzt, dabei muss es auf 5

    Ich habe das selbe Problem wie littleandre, nur weiß ich nicht, wo ich die 0 zu einer 5 ändern soll. Irgendwie klappt es nicht.
    (Ich wollte jetzt nicht extra ein neues Thema dazu aufmachen^^)


    mfG,
    TS_7622