/kick und /ban und /timeban 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
  • Hallo Community,
    ich habe ein /kick Befehl gescripter klappt einwandfrei. Nur wenn ich mich z.B selber kicke steht bei mir nicht:
    Du wurdest von Administrator %s vom Server gekickt. Grund: %s.
    Ich werde direkt gekickt, und wird kein Grund genannt.


    Genu das selbe Problem bei /ban. Alles klappt nur der User bekommt keine Nachricht da steht nur.
    Server closed the connecture.


    Bei Timeban wird der User gekickt jedoch kann er wieder auf Server joinen d.h er kann immer wieder auf Server
    joinen obwohl die Zeit noch nicht vorbei ist. :S


    ocmd:kick(playerid,params[])
    {
    new pID,reason[64],string[256];
    if(!isPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,HELLROT,"AdmCmd: Du besitzt keine Rechte, um diesen Befehl zu benutzen!");
    if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,HELLROT,"AdmCmd: /kick [SPIELER/ID][GRUND]");
    format(string,sizeof(string),"AdmCmd: %s wurde vom Administrator %s vom Server gekickt. Grund: %s",SpielerName(pID),SpielerName(playerid),reason);
    SendClientMessageToAll(HELLROT,string);
    Kick(pID);
    return 1;
    }


    ocmd:ban(playerid,params[])
    {
    new pID,reason[64],string[256];
    if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,HELLROT,"AdmCmd: Du besitzt keine Rechte, um diesen Befehl zu benutzen!");
    if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,HELLROT,"AdmCmd: /ban [SPIELER/ID][GRUND]");
    format(string,sizeof(string),"AdmCmd: %s wurde vom Administrator %s vom Server gekickt. Grund: %s",SpielerName(pID),SpielerName(playerid),reason);
    SendClientMessageToAll(HELLROT,string);
    SetPVarInt(pID,"Gebant",1);
    Kick(pID);
    return 1;
    }


    ocmd:timeban(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,HELLROT,"AdmCmd: Du besitzt keine Rechte, um diesen Befehl zu benutzen!");
    new pID, time, grund[256];
    if(sscanf(params,"uis",pID,time,grund))return SendClientMessage(playerid,HELLROT,"AdmCmd: /timeban [SPIELER/ID] [ZEIT] [GRUND]");
    if(IsPlayerConnected(pID))
    {
    if(time>0||time<1000)
    {
    new string[128];
    format(string,sizeof(string),"AdmCmd: %s wurde vom Administrator %s für %i Minuten gebannt. Grund: %s",SpielerName(pID),SpielerName(playerid),time,grund);
    SendClientMessageToAll(HELLROT,string);
    new wert;


    wert=gettime()+(60*time);


    SetPVarInt(pID,"Timeban",wert);


    Kick(pID);
    return 1;
    }
    SendClientMessage(playerid,HELLROT,"AdmCmd: Bitte gültige Zeit angeben!");
    return 1;
    }
    SendClientMessage(playerid,HELLROT,"AdmCmd: Der Spieler befindet sich zurzeit nicht auf dem Server!");
    return 1;
    }


    Hoffe ihr könnt mir schnellst möglich helfen. :)


    mfG,
    Ien_Levin

    :) SWAGETTI & YOLONAISE!

  • In deinem Kick/Ban CMD einfach das folgende anstatt Kick(playerid);
    SetTimerEx("TimerName",500,0,"i",pID);


    dann entweder am Ende des Scriptes oder irgendwo anders (hauptsache außerhalb eines Callbacks dass hier:


    forward TimerName(playerid);
    public TimerName(playerid)
    {
    Kick(playerid);
    return 1;
    }