Textdraw Minuten - Sekunden Timer

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 zusammen,
    hat jemand eine Ahnung wie man einen Timer macht der die Minuten & Sekunden abließt und Rückwärts zählt?
    Habe mich schon sämtlich Tut angeschaut aber ich habe keines gefunden wo man ordentlich sieht wie es funktioniert.
    Nur Timer die hoch laufen sprich Uhren o.ä
    Ich würde es gerne so haben, das oben am Rand des Spieles der Timer läuft sprich:
    10:00
    09:59
    09:58etc -> 00:00.


    Die Textdraw's habe ich schon erstellt nur ich habe Probleme den Timer aufzubauen.
    Wenn jemand sich damit auskennt, wäre es nett wenn er mir Hilfe geben könnte.


    Mit freundlichen Grüßen,
    Chenko

    KleineHilfe 2.0

  • new countdown, minusct, updatect;
    new time;


    countdown = SetTimer("ct",600000,false);
    minusct = SetTimer("ctm",1000,true);
    time = 600000;


    forward ct();
    public ct()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    TextDrawHideForPlayer(i,DeinTextDraw);
    //Weitere aktionen hier hin..
    }
    }
    }


    forward ctm();
    public ctm()
    {
    new string[64];
    new nexttime;
    time -= 1000;
    format(string,sizeof(string),"Countdown: %d Sekunden",time);
    TextDrawSetString(DeinTextDraw,string);
    if(time == 0)return KillTimer(minusct);
    return 1;
    }

    Einmal editiert, zuletzt von n0skillg3t ()

  • Danke für deine überaus schnelle und hilfreiche Antwort.
    Ich werde es sofort ausprobieren.


    countdown = SetTimer("ct",600000,false);
    minusct = SetTimer("ctm",1000,true);
    time = 600000;


    Unter OnGameModeInit?
    //Edit

    KleineHilfe 2.0

  • Also doch Ongamemodeinit =D ..
    Ab da wo der Gamemode startet soll der Timer laufen .


    forward ct();
    public ct()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    TextDrawHideForPlayer(i,DeinTextDraw);
    //Weitere aktionen hier hin..
    }
    }
    }


    Wofür steht das?

    KleineHilfe 2.0


  • Wenn der Timer/Der Count Down zu ende ist denke ich mal da er den Textdraw "versteckt"

  • Ah mir ist jetzt erst aufgefallen das es ein 2. Timer ist ..
    Schon logisch.
    Ich habe es mal nun so getestet und für den Test
    TextDrawSetString(DeinTextDraw,string); mit
    SendClientMessageToAll(hblau,string); ausgetauscht nun ist das Ding jedoch das es Ingame so angezeigt wird.

    Sprich:
    000:000


    //Edit .
    Funktioniert es wenn ich 600000 durch 10:00 austausche?

    KleineHilfe 2.0

  • Hm ja musst halt in Sekunden umwandeln, hier:

    forward ctm();
    public ctm()
    {
    new string[64];
    new nexttime;
    time -= 1000;
    format(string,sizeof(string),"Countdown: %d Sekunden",time/1000);
    TextDrawSetString(DeinTextDraw,string);
    if(time == 0)return KillTimer(minusct);
    return 1;
    }

  • Möchte ja so das es so ausschaut 10:10 . das ":" Müsste wohl ein TDW werden aber dann müsste ich doch thoretisch Timer haben die beide bei ongamemodeinit starten.
    Der eine aktuallisiert sich jede Sekunde und der andere alle 60 Sekunden .Somit wird es doch möglich sein aus 10:00 // 10 : 60 zu machen oder?

    Zitat

    Only HOW


    Ich meine, so wie du es mir freundlicher Weise gezeigt hast ist es ja ein Standart Timer der sich jede Sekunde um eines runter schraubt


    //Edit


    Ich mache es jetzt so das man 2 Timer macht für Minuten und Sekunde.
    Sekunden Timer kann ich bereits auch die Folgen. Wie kann ich unter den Folgen schreiben das bei Minuten immer eine Zahl weniger wird?
    Sprich wenn mein 60Sek Timer vorbei ist soll beim Minuten Timer einer weniger werden mit einem 3. Timer nur wie man das schreibt weiß ich nicht.
    Sekunden Timer habe ich nur der Minuten Timer ist kritisch.


    //Edit2


    Textdraw für alle Anzeigen lassen mit
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    ALLE TEXTDRAWS
    }


    oder?
    Oder muss ich bei new Text:...[MAX_PLAYER]; o.ä machen?


    push
    //PUsh .. Wollte wieder anfangen keiner eine Antwort

    KleineHilfe 2.0

    4 Mal editiert, zuletzt von YaBroo ()