Möglichkeit Timerzeit in Minuten anzugeben?

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 Community!
    Ich wollte mal fragen wie das ist ich möchte ein Timeban gerade machen aber ich möchte nicht immer Sekunden angeben,
    kann ich das so machen zb /timeban [playerid/name] [minuten] [grund]....
    Also das ist nicht bei minuten zb 60 = Sekunden = 1Minute machen muss sondern zb 10 = 10Minuten?

  • Ja udn wie schreibe ich es für ein Timeban? Die Sekunden/Minuten sollen nicht vorgeschrieben sein sondern frei wählbar.
    Habe das bis jetzt so.


    ocmd:timeban(playerid,params[])
    {
    if(IsAdmin(playerid, 1))
    {
    new zeit, grund[64], string[128];
    if(sscanf(params,"uis",zeit,grund))return SendClientMessage(playerid,GRAU,"Verwendung: /timeban [playerid/name] [zeit (Minute)] [grund]");
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    SetTimer("Timeban",zeit,false);
    format(string,sizeof(string),"AmdCmd: %s wurde von %s für %d Minuten Gebannt. Grund: %s",SpielerName(i),SpielerName(playerid),zeit,grund);
    SendClientMessageToAll(CROT,string);
    Ban(i);
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,GRAU,"Fehler: Du bist nicht befugt diesen Befehl zu nutzen!");
    }
    return 1;
    }

  • Habe das bis jetzt so:
    ocmd:timeban(playerid,params[])
    {
    if(IsAdmin(playerid, 1))
    {
    new pID, zeit, grund[64], string[128];
    if(sscanf(params,"uis",pID,zeit,grund))return SendClientMessage(playerid,GRAU,"Verwendung: /timeban [playerid/name] [zeit (Minute)] [grund]");
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    zeit = SetTimer("Timeban",zeit*60000,false);
    format(string,sizeof(string),"AmdCmd: %s wurde von %s für %d Minuten gebannt. Grund: %s",SpielerName(i),SpielerName(playerid),zeit,grund);
    SendClientMessageToAll(CROT,string);
    Ban(i);
    SetPVarInt(i,"Timeban",zeit);
    SetPVarInt(i,"Banned",1);
    SaveSpieler(i);
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,GRAU,"Fehler: Du bist nicht befugt diesen Befehl zu nutzen!");
    }
    return 1;
    }


  • Damit gehst du alle Spieler durch -> Es werden alle Spieler auf dem Server gebannt.

  • ups :D


    //EDIT: Ich rechne einfach mal zeit*1 zb ich gebe 2Minuten ein dann kommt das auch ;)
    Und ich habe nun in der for schleife MAX_PLAYER_NAME rein geschrieben.
    Müsste so gehen.


    Und wie wird er automatisch wieder entbannt?

    Einmal editiert, zuletzt von Pascal1998 ()

  • //EDIT: Ich rechne einfach mal zeit*1 zb ich gebe 2Minuten ein dann kommt das auch
    Und ich habe nun in der for schleife MAX_PLAYER_NAME rein geschrieben.
    Müsste so gehen.


    Und wie wird er automatisch wieder entbannt?


    Bei einem normalen Timeban, der einen bestimmten Spieler bannen soll, bist du mit einer Schleife falsch am Start.
    Du brauchst dazu lediglich eine Variable für den Spieler, der gebannt werden soll, und eine sscanf Abfrage.
    Dann setzt du eben die SpielerVarible für Ban auf 1, z.b


    SpielerInfo[pID -> Je nachdem, wie du die Variable deklariert hast][Banned] = 1;