Timerzeitpunkt abfragen

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
  • Guten Morgen,


    Ich komme gerade nicht weiter.
    Ich will über einen Befehl abfragen wie der derzetige Standpunkt eines Timer ist


    Nochmal verdeutlicht:


    Timer startet
    Ich gebe ein Befehl ein
    Dadurch zeigt er mir an wo der Timer gerade ist.


    Meine einzige Idee wäre jetzt das so zu machen


    Ongamemodeinit
    SetTimer("TestTimer", 1000, 1);


    Public

    public TestTimer()
    {
    zähler++;
    }



    if(strcmp(cmd,"/zeigetimer",true)==0)
    {
    format(string, sizeof(string), "*Es sind jetzt %d Sekunden vergangen",zähler);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    }


    Ich weiß das da jetzt einige sachen fehlen aber das soll ja jetzt nur Theorie sein. (foward , new etc.)
    Also gibt es eine möglichkeit den stand direkt abzufragen? Ohne halt ein Zähler
    Ich hoffe ihr versteht meine Frage :D ist noch früh am morgen :D


    Ich bedanke mich schonmal für jede Antwort

  • Ganz einfach und vielleicht etwas mehr Arbeit ist einfach für jeden Timer von dem du die Zeit wissen willst eine Variable zu erstellen, hier das Beispiel mit GlobalTimer und OneUseTimer:



    forward GlobalTimer();
    forward OneUseTimer();
    new gGlobalTimerCounter;
    new gOneUseTimerCounter;
    public OnGameModeInit()
    {
    SetTimer("GlobalTimer", 5000, true); //Alle 5 Sekunden.
    gGlobalTimerCounter = gettime() + 5; //Ab derzeitigem Sekundenzähler noch 5 dazu.


    SetTimer("OneUseTimer", 10000, false); //Einmalig nach 10 Sekunden.
    gOneUseTimerCounter = gettime() + 5; //Ab derzeitigem Sekundenzähler noch 10 dazu.
    }
    public GlobalTimer()
    {
    //Es wurde gerade ausgeführt und da er sich wiederholt, nochmal 5 Sekunden zum derzeitgen Sekundenzähler
    gGlobalTimerCounter = gettime() + 5;


    //restlicher Code


    return 1;
    }
    public OneUseTimer()
    {
    //Da OneUseTimer nur einmal aufgerufen wird, reicht es die Variable 'gOneUseTimerCounter'
    //nur bei Auruf von SetTimer zu setzen.


    //restlicher Code


    return 1;
    }
    //Um nun herauszufinden, wann GlobalTimer und OneUseTimer aufgerufen wird einfach:
    new string[128];
    format(string, sizeof(string), "'GlobalTimer' wird in %d Sekunden ausgeführt.", gGlobalTimerCounter - gettime());
    SendClientMessage(playerid, COLOR_GREY, string);


    format(string, sizeof(string), "'OneUseTimer' wird in %d Sekunden ausgeführt.", gOneUseTimerCounter - gettime());
    SendClientMessage(playerid, COLOR_GREY, string);


    //Natürlich kann es nun sein, da 'OneUseTimer' nur einmal aufgerufen wird, dass dann negative Sekunden angezeigt werden,
    //weil der Sekundenzähler von 'gettime()' nun größer ist als die Variable von 'gOneUseTimerCounter', daher
    //hier ein kleiner Fix


    new oneusetime = gOneUseTimerCounter - gettime();
    format(string, sizeof(string), "'OneUseTimer' wird in %d Sekunden ausgeführt.", (oneusetime >= 0 ? oneusetime : 0));
    SendClientMessage(playerid, COLOR_GREY, string);


    //oder anders


    new oneusetime = gOneUseTimerCounter - gettime();
    if(oneusetime >= 0) format(string, sizeof(string), "'OneUseTimer' wird in %d Sekunden ausgeführt.", oneusetime);
    else format(string, sizeof(string), "'OneUseTimer' wird nicht mehr ausgeführt.");
    SendClientMessage(playerid, COLOR_GREY, string);


    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!