Problem mit /gmx

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 mir ein kleines /gmx system schreiben was den server nah 30 sekunden automatich neu startet, leider Funktioniert der Timer nicht wirklich:
    //CMD:gmx
    dcmd_gmx(playerid) {
    if(PlayerInfo[playerid][AdminLevel] >= 9)
    {
    return SendClientMessage(playerid,COLOR_LIGHTRED,"[SYSTEM]: Du du hast einen GMX ausgelöst.");
    SetTimer("gmxtimer",1000,true);
    gmxab = 1;
    }
    else
    {
    return SendClientMessage(playerid,COLOR_LIGHTRED,"[SYSTEM]: Du bist kein Server Scripter.");
    }
    return 1;
    }
    der Befehl


    public gmxtimer()
    {
    new string[50], number, i;
    number = 31-gmxab;
    gmxab++;
    format(string, sizeof(string), "GMX: %s", number);
    for(i=0;i<MAX_PLAYERS;i++)
    {
    GameTextForPlayer(i, string, 1000, 6);
    }
    if(number == 0)
    {
    SendRconCommand("gmx");
    }
    return 1;
    }


    Das Timerscript selbst.


    Das Problem ist, das der Timer nicht startet, die Tim erzeile bringt auch einen Warning:
    warning 225: unreachable code


    ich habe leider keine ahnung was man da machen kann, hoffe iohr könnt mir weiterhelfen ^^


    mfg, Abi

    Ich helfe gerne, aber nur wenn die andere Person wenigstens versucht es zu schaffen.
    Solange sie nicht so dreist sind und mich beim Zocken zuspammen.

  • Warum so schwer wenn es auch einfach geht ??
    dcmd_gmx(playerid) {
    if(PlayerInfo[playerid][AdminLevel] >= 9)
    {
    return SendClientMessage(playerid,COLOR_LIGHTRED,"[SYSTEM]: Du du hast einen GMX ausgelöst.");
    SetTimer("gmxtimer",1000,true);
    }
    else
    {
    return SendClientMessage(playerid,COLOR_LIGHTRED,"[SYSTEM]: Du bist kein Server Scripter.");
    }
    return 1;
    }


    dann das public


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

  • Der sinn dabei ist darin das die User sich darauf vorbereiten können. Auf einigen Servern gibt es auch um 4 einen Automatichen neustart mit 60 Sekunden countdown. so in etwa wollt ich das auch, nur halt zu jeder zwit ausführbar.

    Ich helfe gerne, aber nur wenn die andere Person wenigstens versucht es zu schaffen.
    Solange sie nicht so dreist sind und mich beim Zocken zuspammen.

  • Hier habe mal schnell was gemacht.
    oben im Script ...
    forward Countdown();
    new Time;
    new TimerName;
    if (strcmp("/gmx", cmdtext, true, 10) == 0)
    {
    TimerName = SetTimer("Countdown",1000,1);
    Time = 10; // wie lange es dauern soll bis gmx ist
    return 1;
    }Musst du halt in dcmd machen ...
    und hier das public
    public Countdown()
    {
    if(Time > 0)
    {
    new string[20];
    format(string,sizeof(string),"In %d ist Restart",Time);
    GameTextForAll(string,1000,3);
    Time --;
    }
    else
    {
    GameTextForAll("Restart",2000,3);
    KillTimer(TimerName);
    SendRconCommand("gmx");
    }
    return 1;
    }