Timer & Textdraw

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,


    Ich wollte en Textdraw machen indem 60 Sekunden runtergezählt werden, jedoch weiß ich nicht ganz wie, kann mir jemand das machen? :)


    TD:


    Textdraw1 = TextDrawCreate(526.000000, 134.000000, "60");
    TextDrawBackgroundColor(Textdraw1, 255);
    TextDrawFont(Textdraw1, 1);
    TextDrawLetterSize(Textdraw1, 0.500000, 1.000000);
    TextDrawColor(Textdraw1, -16776961);
    TextDrawSetOutline(Textdraw1, 0);
    TextDrawSetProportional(Textdraw1, 1);
    TextDrawSetShadow(Textdraw1, 1);


    Also en Public und dann soll er 60 Sekunden runterzählen bevor z.B. der Server restartet

  • Neue <Variable> die aktuelle Sekundenzahl festhält.
    Textdraw erstellen


    Timer der Funktion jede Sekunde aufruft.


    In der Funktion <Variable> - 1 rechnen
    Textdraw Text ändern durch aktuellen Wert von <Variable>
    Falls <Variable> = 0 ist,Server neustartet


    Wenn du nicht weiter kommst, erklär wo es hapert.

  • Ok,


    Danke soweit bin ich jetzt, nur ich komm grad nicht weiter :D


    public timer()
    {
    sekunden++;
    new string[50];
    format(string, sizeof(string), "%i",sekunden);
    //Hier soll der TD angezeit werden, und wenn 60 sek. vorbei sind soll jetzt z.B. die Message kommen
    if(sekunden== 60)
    {
    SendClientMessageToAll(ROT,"Test");
    }
    }


    So, wie mache ich jetzt das die Zeit im Textdraw runter läuft ? :D


    //edit


    verbessert

  • mach doch so beim string :D



    format(string,sizeof(string),"%i",60-sekunden);


    TextDrawSetString(dein textdraw name,string);

  • Ok.. :D


    irgendwas muss ich übersehen haben weil jetzt vor der Zeit beim Textdraw ingame ein - steht aber er trotztem noch vorwärts zählt..


    public timer()
    {
    TextDrawShowForAll(TextdrawWarn0);
    TextDrawShowForAll(TextdrawWarn1);
    TextDrawShowForAll(TextdrawWarn2);
    sekunden--;
    new string[50];
    format(string, sizeof(string), "%i",sekunden);
    TextDrawSetString(TextdrawWarn1,string);
    if(sekunden== 60)
    {
    SendClientMessageToAll(ROT,"Test");
    }
    }

  • wenn du das mit -- machen wilst muss der wert auch erstmal i.wo auf 60 gesetzt werden das er runterzählen kan :D

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • omg... das mein ich doch was ich mein -.-




    @ ja das würde aber theoretisch auch gehen er zählt hoch nur das im formatierten string wird minus gezählt und auch so gezeigt


    fazit wäre gleich :D



    weil er ja nehmen wir an das die var ++ rechnet und im string rechnet er das so um das er mir die zahlen rückwärts zählt
    und wenn er auf 60 wäre (im string wäre es dann 0 wegen der rechnung) würde er die message absenden den timer stoppen und die var wieder auf 0 setzen


    rechnung beispielsweise im string :


    60-43=17 diese 17 würde dann im textdraw stehen @ 43 halt für die var die hochzählt würde ebenso gehen

    3 Mal editiert, zuletzt von [NeR]Fernandez_ ()