Timer einstellen

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
  • Ich frag mich, wieso hier in dem Thread 3 gleiche (zumindest von der Funktionsweise und Richtigkeit) Scripts zum C&P sind, aber es trotzdem Errors gibt :D

    Ich bin
    .. seit etwa 2007 in der Webentwicklung tätig, seit 2013 professionell
    .. Erfahrener Entwickler in PHP, Swift, Javascript, Typescript und Ruby. Zusätzlich habe ich Erfahrung in Python, Java, C#, C++, Prolog und einigen esoterischen Programmiersprachen
    .. Luftfahrtenthusiast und Segelflieger

  • Da man nicht nur meckern sollte, hier mal ein funktionsfähiges Script:


    Oben bei deinen Variablen:
    forward ReStartTimer();
    new count;
    new rrTimer;


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/restart", cmdtext, true, 8) == 0)
    {
    if(IsPlayerAdmin(playerid))
    {
    SendClientMessageToAll(0xFB0000FF, "Serverneustart in drei Minuten!");
    rrTimer = SetTimer("ReStartTimer", 60000, true);
    }
    else
    {
    SendClientMessage(playerid, 0xFB0000FF, "Du bist kein Admin !");
    }
    return 1;
    }
    return 0;
    }


    Am besten unten im Script:
    public ReStartTimer()
    {
    count++;
    printf("Count: %d", count);
    if(count == 1)
    {
    SendClientMessageToAll(0xFB0000FF, "Serverneustart in zwei Minuten!");
    }
    else if(count == 2)
    {
    SendClientMessageToAll(0xFB0000FF, "Serverneustart in einer Minuten!");


    }
    else if(count == 3)
    {
    SendClientMessageToAll(0xFB0000FF, "!Serverneustart!");
    SendClientMessageToAll(0xFB0000FF, "!Serverneustart!");
    SendClientMessageToAll(0xFB0000FF, "!Serverneustart!");
    SendRconCommand("gmx");
    }
    else
    {
    KillTimer(rrTimer);
    }
    }


    Kannst du natürlich noch anpassen.


    MfG
    eXchange


    Edit: Etwas verbessert


    Bitte keine Script/Supportanfragen via PN!!!
    (Ausnahme: Scripten gegen Bezahlung!)

    Einmal editiert, zuletzt von eXchange ()

  • n0skillg3t: Bei deinem Script startet der Server aber nicht neu ^^ Da hat wer das wichtigste beim RESTARTEN vergessen :P


    SendRconCommand("gmx");


    Er soll ja garnicht neustarten, es ist ein Befehl für die Admins damit sie ingame nicht immer /o Serverrestart in 3 minuten /o serverneustart 2 minuten schreiben müssen sondern es automatisch passiert, also ich probiere es mal eben aus..


    Restarten ist über /gmx inGame nicht gut, soweit ich weiß, gibt es dort doch einige Bugs, damit zum Beispiel Tore aufeinmal Doppelt sind oder gespawnte Straßensperren vom LSPD etc. imemrnoch da stehen

  • Ich weiß ja nicht ob ich immer den Befehl falsch einfüge, jedenfalls bekomme ich immer diese Errors:


    C:\Dokumente und Einstellungen\Administrator\Desktop\SA-MP Server\gamemodes\GPR.pwn(7564) : error 010: invalid function or declaration

  • Okay ich gebs auf, kein Bock mich 2 Tage lang mit sowas zu qüälen immer die gleichen Errors egal wo ich es einfüge, die forwards oben bei den includes, der Befehl bei den OnPlayerCommandTExten und den rest ganz unten, 3-7 Errors


    gut wenn du nicht die zeilen postet in dennen die Errors kommen, dann können wir dir leider auch nicht helfen.
    Post einfache die Betroffenen Zeilen und poste dahinter den error.


    MfG
    eXchnage


    Bitte keine Script/Supportanfragen via PN!!!
    (Ausnahme: Scripten gegen Bezahlung!)

  • da ist ein fehler bei settimer das müsste doch so oder nicht ?


    SetTimer("timer1",60000,0);

  • Nein, der letzte Parameter steht für die Repeatfunktion. Ob man dort 0, false, 1 oder true hinschreibt- Ist alles richtig. In dem Fall soll er ja repeated werden, bis count auf 3 ist.

    Ich bin
    .. seit etwa 2007 in der Webentwicklung tätig, seit 2013 professionell
    .. Erfahrener Entwickler in PHP, Swift, Javascript, Typescript und Ruby. Zusätzlich habe ich Erfahrung in Python, Java, C#, C++, Prolog und einigen esoterischen Programmiersprachen
    .. Luftfahrtenthusiast und Segelflieger

  • Wollte ich auch gerade machen.
    Ist viel einfach.


    If(strcmp(cmdtext,"/restart",true)==0)
    {
    SendRconCommand("gmx")
    Return 1;
    }


    Und Rest = überflüssig. Da steht auch Server Rester . Kannst auch nen Admin Chat ( Server ) machen dinden du dann schreibst Kurzer Server restart und dann nächste /restart

    Projektleiter

    Cleared to Land ist in der Script Werkstatt ;)



  • naja ich glaube genau das wollte er eben nicht.


    Padarom: danke das wenigstens es einer verstanden hat ;)


    btt: Habe mein Scriptcode etwas verbessert. Normal sollte es gehen, habe es auch in einen neue FS getestet und es geht 1A.


    Bitte keine Script/Supportanfragen via PN!!!
    (Ausnahme: Scripten gegen Bezahlung!)

  • 3 Timer, die einem nach dem anderen laufen, und nicht gleichzeitig. Deswegen ist es nicht soo viel ressourcenfressend.
    Aber ausnahmsweise hat ForDolt zum teil recht, den Code finde ich wirkich nicht sinnvoll.


    stock GmxTimer(mode=0)
    {
    if(!mode) {
    SetTimerEx("GmxTimer", 60000, 0,"d",1);
    SendClientMessageToAll(COLOR_ORANGE,"Serverneustart in 3 Minuten"); }
    else if(mode==1) {
    SetTimerEx("GmxTimer", 6000, 0,"d",2);
    SendClientMessageToAll(COLOR_ORANGE,"Serverneustart in 2 Minuten"); }
    else if(mode==2) {
    SetTimerEx("GmxTimer", 6000, 0,"d",3);
    SendClientMessageToAll(COLOR_ORANGE,"Serverneustart in 1 Minute"); }
    else {
    SendClientMessageToAll(COLOR_ORANGE,"Server startet neu.");
    SendRconCommand("gmx"); }
    return 1;
    }


    Benutzen mit "GmxTimer();"