/gmx [sekunden]

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
  • Tag,


    Ich habe eine frage, undzwar:
    ich möchte das so machen wen man /gmx macht das man dann noch die sekunden angeben muss also
    z.b. ich mache /gmx 10
    dann steht im chat "Der Server Startet in 10 Sekunden neu!" und das er dann in 10sekunden neu startet ^^ (hab ka wie man mit timern arbeitet xd)


    hier ist mein codeschnipsel
    if(strcmp(cmd, "/gmx", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if (PlayerInfo[playerid][pAdmin] >= 1337)
    {
    SendClientMessage(playerid, COLOR_GOLD, "Server Restart");
    SendClientMessage(playerid, COLOR_BLUE, "Server Restart");
    SendClientMessage(playerid, COLOR_GOLD, "Server Restart");
    SendClientMessage(playerid, COLOR_BLUE, "Server Restart");
    GameTextForPlayer(playerid, "~B~ GMX", 5000, 6);
    GameModeExit();
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Das darfst du nicht tun");
    }
    }
    return 1;
    }


    //edit Text


  • if(strcmp(cmd, "/gmx", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if (PlayerInfo[playerid][pAdmin] >= 1337)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /gmx [Zeit (Sekunden)]");
    return 1;
    }
    new time = strval(tmp);
    if(time < 1) { SendClientMessage(playerid, COLOR_GREY, " Die Sekunden dürfen nicht unter 1 liegen !"); return 1; }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /gmx [Zeit (Sekunden)]");
    return 1;
    }
    string[128];
    format(string, sizeof string, "** Der Server Startet in %d Sekunden neu! **",time);
    SendClientMessageToAll(COLOR_GOLD, string);
    new GmxTimer = SetTimer("Gmx", time*1000, 0);
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Das darfst du nicht tun");
    return 1;
    }
    }
    return 1;
    }


    forward Gmx();
    public Gmx()
    {
    GameTextForPlayer(playerid, "~B~ GMX", 5000, 6);
    GameModeExit();
    }

  • erstmal vielen Dank :)


    aber immer wen ich /gmx 10 eingebe kommt das "/gmx [Zeit (sekunden)]" und es passiert nix


    habe aber auch diese 3 warnings
    C:\Users\Test\Desktop\Server\gamemodes\TR.pwn(27265) : warning 217: loose indentation
    C:\Users\Test\Desktop\Server\gamemodes\TR.pwn(27265) : warning 215: expression has no effect
    C:\Users\Test\Desktop\Server\gamemodes\TR.pwn(27268) : warning 204: symbol is assigned a value that is never used: "GmxTimer"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    3 Warnings


    if(strcmp(cmd, "/gmx", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if (PlayerInfo[playerid][pAdmin] >= 1337)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /gmx [Zeit (Sekunden)]");
    return 1;
    }
    new time = strval(tmp);
    if(time < 1) { SendClientMessage(playerid, COLOR_GREY, " Die Sekunden dürfen nicht unter 1 liegen !"); return 1; }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /gmx [Zeit (Sekunden)]");
    return 1;
    }
    string[128];//zeile 27265
    format(string, sizeof string, "** Der Server Startet in %d Sekunden neu! **",time);
    SendClientMessageToAll(COLOR_GOLD, string);
    new GmxTimer = SetTimer("Gmx", time*1000, 0);//zeile 27268
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Das darfst du nicht tun");
    return 1;
    }
    }
    return 1;
    }


    /edit hab den Forward zu den forwards gepackt und das public blablabla bei den Publics

  • //EDIT


    if(strcmp(cmd, "/gmx", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if (SpielerInfo[playerid][pAdmin] >= 1337)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_LIGHTRED, "Fehler: /gmx [Sekunden]");
    return 1;
    }
    new time = strval(tmp);
    if(time < 1) { SendClientMessage(playerid, COLOR_GREY, "Die Sekunden dürfen nicht unter 1 liegen !"); return 1; }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Fehler: /gmx [Sekunden]");
    return 1;
    }
    format(string, sizeof string, "** Der Server Startet in %d Sekunden neu! **",time);
    SendClientMessageToAll(COLOR_RED, string);
    SetTimer("Gmx", time*1000, 0);
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Das darfst du nicht tun");
    return 1;
    }
    }
    return 1;
    }

  • habs jetz aus dem Pastebin so gemacht
    if(strcmp(cmd, "/gmx", true) == 0)
    {
    if(PlayerInfo[playerid][pAdmin] >= 1337)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) { return SendClientMessage(playerid, COLOR_WHITE, "Befehl: /gmx [Sekunden]");
    }
    new Time = strval(tmp);
    if(Time < 5) { return SendClientMessage(playerid, COLOR_WHITE, "Mindestens 5 Sekunden Wartezeit.");
    }
    ServerGMX = Time;
    }
    return 1;
    }
    if(ServerGMX != 0)
    {
    ServerGMX --;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    format(string, sizeof(string), "~r~Der Server startet in %d Sekunden neu.",ServerGMX);
    GameTextForPlayer(i, string, 1150, 6);
    }
    }
    }
    if(ServerGMX == 1)
    {
    GameModeExit();
    }


    wen ich /gmx 4 mache kommt "Mindestens 5 Sekunden Wartezeit" aber wen ich /gmx 5 oder 10 mache kommt garnix ^^
    liegt das vlt daran if(ServerGMX == 1)
    {
    GameModeExit();
    }
    (die { und } waren immer total verschoben und hinter den satz anstatt in ner neuen zeile deswegen ka wie ich das machen sollte xD)


    //edit Lol hab /fcar 482 gemacht und dann kam " Der Server Startet in 5 sekunden neu!" und ist dann neugestartet 8|

  • //edit Lol hab /fcar 482 gemacht und dann kam " Der Server Startet in 5 sekunden neu!" und ist dann neugestartet 8|

    Dann ist dein Script verbuggt bzw deine Befehle.


    Zitat

    (die { und } waren immer total verschoben und hinter den satz anstatt in ner neuen zeile deswegen ka wie ich das machen sollte xD)

    Die sind nicht verschoben.
    Die meisten schreiben diese Untereinander, was eigentlich verschwendung ist.
    So ist es viel übersichtlicher:



    public TestPublic() {
    if(EineFunktion) {
    //
    }
    }




    So soll der Befehl garnicht aussehen, du musst auch die Anleitung in den Slashs lesen

  • habs gerade nochma getestet erst /gmx 6 dann /createfcar 482 dann kam das wieder und ist nach 5 sek restartet


    hier der /createfcar cmd
    if(strcmp(cmdtext,"/createfcar",true)==0){
    if(PlayerAdministrator(playerid) >= Fraction_Need_Adminlevel){
    return ShowPlayerDialog(playerid,fDialog_Vehid,DIALOG_STYLE_INPUT,"Fraktionsfahrzeug erstellen:","Bitte gebe die Vehicle-ID des Fahrzeuges an, das du erstellen möchtest:","Weiter","Abbrechen");
    }return SendClientMessage(playerid,fColGrey,"Du bist nicht berechtigt diesen Befehl auszuführen.");
    }


    (Das ist ein FS)