Im Befehl nen Timer einbauen

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 ,
    Hab eine Frage ,
    Wenn ich ein Befehl habe und man soll den nicht jede Sec benutzen können z.B. nur alle 5 Min wie kann ich das machen ,
    Das man den Befehl nur alle 5 Min machne kann . ?


    Lg TIme

  • Das kannst du mit Timern machen oder mit Ticks.
    Ich benutzt dazu immer Ticks.


    new
    tickCommand1[MAX_PLAYERS];

    #define TICK_COMMAND1_BLOCK 60*5*1000


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/mycommand", cmdtext, true, 10) == 0)
    {
    new
    tickNow = GetTickCount();
    if( (tickCommand1[playerid] + (TICK_COMMAND1_BLOCK) ) < tickNow){
    return SendClientMessage(playerid,COLOR_YELLOW,"Du kannst diesen befehl nur alle 5 Minuten benutzen");
    }
    tickCommand1[playerid] = tickNow;
    // Was passieren soll ab hier.
    return 1;
    }
    return 0;
    }

    Mit GetTickCount() erhälst du eine Wert der angibt vor wievielen MS der Server gestartet wurde.Damit kannst du arbeiten und an Hand dieses Wertes berechnen ob seit dem angegeben Tick-Wert bis zum erneuten eingeben des Befehles eine bestimmte Zeit verstrichen ist.
    Ist vielleicht bisher schwer zu verstehen :wacko: .