Countdown-->Max. Sekunden

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
Dieses Thema wurde als Erledigt markiert.

  • Hi,


    Ich hab mir vorhin nen Countdown gescriptet.


    Wie mache ich aber, dass die höchste Zahl 60 Sekunden ist? Weil ich kann auch 99999999999999999999 eingeben und der zählt dann runter^^.


    Dann noch, dass wenn einer n Countdown gestartet hat, dass man dann warten muss, bis der Countdown zu Ende ist..


    Also wenn einer /countdown 60 macht und einer grad nachher /countdown ... machen willst, dass bei ihm dann steht, dass er warten muss, weil bereits ein Countdown läuft...




    Hier der Teil vom Countdown:


    dcmd_countdown(playerid,params[]) { new sekunden;
    if(sscanf(params, "d",sekunden)) { return SendClientMessage(playerid,0xFF0000FF,"Benutzung: /countdown [sekunden]"); } countdown = sekunden; SetTimer("checkcountdown",1000,0); return 1; }


    Edit: ka was mit dem pwn code is^^





    Mfg Vince

  • mit einer if-Abfrage :
    if(sekunden>60) sekunden=60;


    // edit :
    da countdown ja ne globale Variable ist kannst du einfach vor der sscanf funktion folgende Zeile einfügen :
    if(countdown != 0) return SendClientMessage(playerid, COLOR, "Es läuft bereits ein Countdown.");


    Nicht jeder, der sich für super hält, ist ein Superheld. :love:
    ------------------------------------------------------------------------------------------------

  • An den Vorposter, nein. Ohne die Variablenumstellung am Ende:if(sekunden>60)return SendClientMessage(playerid,farbe,"Dein Countdown wurde auf 60 Sekunden gesetzt");

    Why do programmers always mix up Halloween and Christmas?
    Oct 31 == Dec 25

  • So habs getestet.
    Das mit dem "Es läuft bereits ein Countdown", das funktioniert:


    Aber ich hab 61 Sekunden eingegeben.


    Geht immer noch.


    Hier der Teil:


    dcmd_countdown(playerid,params[]) { new sekunden; if(countdown != 0) return SendClientMessage(playerid, 0xFF0000FF, "Es läuft bereits ein Countdown."); { if(sekunden>60)return SendClientMessage(playerid,0xFF0000FF,"Du kannst höchstens 60 Sekunden eingeben. Dein Countdown wurde auf 60 Sekunden gesetzt!"); { if(sscanf(params, "d",sekunden)) { return SendClientMessage(playerid,0xFF0000FF,"Benutzung: /countdown [sekunden]"); } countdown = sekunden; SetTimer("checkcountdown",1000,0); return 1; } } }

  • if(sekunden>60)
    {
    SendClientMessage(playerid,0xFF0000FF,"Du kannst höchstens 60 Sekunden eingeben. Dein Countdown wurde auf 60 Sekunden gesetzt!");
    sekunden=60;
    }

    Es darf kein return kommen, da sonst der Code beendet wird.


    Nicht jeder, der sich für super hält, ist ein Superheld. :love:
    ------------------------------------------------------------------------------------------------

  • Habe vergessen den Text zu ändern, ich meinte gelesen zu haben (kann mich auch irren) das er meinte er möchte wenn man mehr als 60 als Parameter eingibt, das die Aktion abgebrochen wird mit dem Text "zu hohe Zahl" (in der Art). Ansonsten Methode von Snail oder meine mit Textänderung.

    Why do programmers always mix up Halloween and Christmas?
    Oct 31 == Dec 25

  • ja versuch mal mit meinem und wenn error oder so kommt musst du mal versuchen anstatt sekunden=60; sekunden==60;


    ehmm eine Frage ich sehe denn ganzen Tag schon das du nur Müll schreibst!
    Wo hast du scripten gelernt?
    NUR in eienr If-Abfrage wird == gemacht um eine Variable zusetzten legendlich =


    mfg

  • Du fragst ab ob die variable sekunden über 60 ist bevor die variable den inhalt aus den parametern des Commands bekommen hat, so kann es nicht gehen.

  • Habs jetz so:


    dcmd_countdown(playerid,params[]) { new sekunden; if(countdown != 0) return SendClientMessage(playerid, 0xFF0000FF, "Es läuft bereits ein Countdown."); { if(sekunden==60)return SendClientMessage(playerid,0xFF0000FF,"Du kannst höchstens 60 Sekunden eingeben. Dein Countdown wurde auf 60 Sekunden gesetzt!"); { if(sscanf(params, "d",sekunden)) { return SendClientMessage(playerid,0xFF0000FF,"Benutzung: /countdown [sekunden]"); } countdown = sekunden; SetTimer("checkcountdown",1000,0); return 1; } } }



    Kann immer noch 61 Sek

  • dcmd_countdown(playerid,params[])
    {
    if(countdown != 0) return SendClientMessage(playerid, 0xFF0000FF, "Es läuft bereits ein Countdown.");
    new sekunden;
    if(sscanf(params, "d",sekunden)) return SendClientMessage(playerid,0xFF0000FF,"Benutzung: /countdown [sekunden]");
    if(sekunden > 60) return SendClientMessage(playerid,0xFF0000FF,"Du kannst höchstens 60 Sekunden eingeben.");
    countdown = sekunden;
    SetTimer("checkcountdown",1000,0);
    }

    The fact is, I am right. And if you think I'm wrong, you are wrong.