Script Update mit befehl

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
  • Nabend Community,


    Wie die Überschrift schon sagt, möchte ich gerne einen Befehl haben, der wenn ich /restart eingebe
    einen Countown erstellt, der dann von 1 Minute runterzählt, und die ganzen ini´s noch sichert und dann einen Restart macht.


    Hoffe ihr könnt mir helfen


    Grüße


    DerSpielerGTA :)

  • oben
    forward restartsaver();


    if(strcmp(cmd,"/restart",true)==0)
    {
    SetTimer("restartserver", 1000, 1);
    SendClientMessageToAll(COLOR_RED, "Achtung! Serverneustart in 1 Minute!");
    return true;
    }


    ganz unten


    public restartserver()
    {
    OnPlayerUpdate();
    //stimmt denkfehler
    SendRconCommand("gmx");
    return 1;
    }
    hoffe das geht
    //edit welche updatefunktion hast du?
    normal OnPlayerUpdate();

    hunt.png

    3 Mal editiert, zuletzt von Fischer ()

  • Hab alles eingefügt bekomme aber ein warning:


    warning 235: public function lacks forward declaration (symbol "restartserver")


    dies ist die zeile:


    public restartserver()


    //Edit: Okay passt du hast ein Schtreibfehler gemacht =)
    hab ihn gefunden und geändert danke dir :)


    mfg DerGTASpieler

  • Nein das wird so nicht gehen:
    1.) Dein forward und public sind nicht gleich
    2.) Du sendest eine Nachricht an alle nach dem Rcon befehl


    Man müsste bei /restart eine Nachricht senden und die Daten der Spieler sichern


    // bei /restart


    // Timer
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    //Daten sichern, Nachricht an den Spieler senden
    }
    }


    Und man müsste den public gleich nennen wie es beim forward und beim Timer steht


    public restartsaver()
    {
    //... Rcon Command
    }

  • Nein, tut es nicht !
    Alles kann so bleiben, nur muss die Funktion angepasst werden !
    (Fehler von Fischer: Nachricht & GMX gleichzeitig, keine Wartezeit)


    if(strcmp(cmd,"/restart",true)==0)
    {
    SetTimer("restartsaver", 60000, 1);
    SendClientMessageToAll(COLOR_RED, "Achtung! Serverneustart in 1 Minute!");
    return true;
    }


    public restartserver()
    {
    SendRconCommand("gmx");
    return 1;
    }

  • Zitat

    das ist doch nur ein schreibfehler und eineleere klammer steht doch für alle spieler oder nicht?


    Nicht umbedingt, um eine for-schleife kommt man nicht herum (wenn man die Daten sichern will).
    Übrigens, solange du GF hast, brauchste auch nix zu sichern, das wird automatisch bei wichtigen Ereignissen getan !

  • Hm, das komsiche ist jetzt, das wenn ich /restart ein gebe nichts kommt, weder eine Meldung noch ein restart nach einer Minute.
    Bin mir sicher das ich alles genau so eingefügt habe wie fischer es mir gesagt hat.


    :)

  • Ja, die beiden Sachen habe ich natürlich gemacht ^^
    Aber muss da nicht noch definiert werden wer diesen befehl mache darf ?
    Dies ist mir jetzt nur eben auf gefallen weiß nicht ob es bedeuten ist.


    mfg


    DerSpielerGTA

  • So das geht jetzt 100%ig:
    #define COLOR_RED 0xAA3333AA


    forward restartserver();


    if (strcmp("/restartserver", cmdtext, true, 14) == 0 && IsAdmin(playerid))
    {
    SetTimer("restartserver", 60000, 1);
    SendClientMessageToAll(COLOR_RED, "Achtung! Serverneustart in 1 Minute!");
    return 1;
    }


    public restartserver()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {


    OnPlayerUpdate(i);


    SendRconCommand("gmx");
    }

    return 1;
    }
    das muss jetzt aber gehn^^

  • Das ist doch Quatsch ?( .


    MitSetTimer("restartserver", 60000, 1);machst du doch eine Endlisschleife (Server wird jede Minute neu gestartet)
    Also:SetTimer("restartserver", 60000, 0); ^^


    UndIsAdmin(playerid)heißt das nichtIsPlayerRconAdmin(playerid)?



    MFG
    freund17

  • if (!strcmp(cmdtext,"/serverrestart")) && IsPlayerAdmin(playerid)
    {
    SetTimer("restartserver", 60000, 0);
    SendClientMessageToAll(COLOR_RED, "Achtung! Serverneustart in 1 Minute!");
    return 1;
    }