Mein Kick befehl geht nicht ich werde nicht gekickt

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
  • Mein kick Befehl ist verbugggt.
    ocmd:kick(playerid,params[])
    {
    new pID,grund,string[128];
    if(sscanf(params,"us",pID,grund))return SendClientMessage(playerid,rot,"Benutzung: /kick [ID] [Grund]");
    if(GetPVarInt(playerid,"Adminlevel") >= 1)
    {
    if(IsPlayerConnected(pID))
    {
    format(string,128,"Der Spieler %s wurde vom Admin %s gekickt Grund: %s",SpielerName(pID),SpielerName(playerid),grund);
    SendClientMessageToAll(rot,string);
    FreezePlayer(pID);
    Kick(pID);
    }
    else
    {
    SendClientMessage(playerid,rot,"Dieser Spieler ist nicht Online");
    }
    }
    else
    {
    SendClientMessage(playerid,rot,"Sie sind kein Admin level 1");
    }
    return 1;
    }


    Scripter von LoE

  • Hier mal verkürzt ^^


    ocmd:kick(playerid,params[])
    {
    new pID,grund,string[128];
    if(sscanf(params,"us",pID,grund))return SendClientMessage(playerid,rot,"Benutzung: /kick [ID] [Grund]");
    if(GetPVarInt(playerid,"Adminlevel") == 0)return SendClientMessage(playerid,rot,"Sie sind kein Admin level 1");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,rot,"Dieser Spieler ist nicht Online");
    format(string,128,"Der Spieler %s wurde vom Admin %s gekickt Grund: %s",SpielerName(pID),SpielerName(playerid),grund);
    SendClientMessageToAll(rot,string);
    FreezePlayer(pID);
    Kick(pID);
    return 1;
    }


    @Fragende wegen Freeze ^^


    Er will den Spieler freezen, damit er nicht weiter rumlaufen kann ^^

  • Hier mal mein Befehl:


    ocmd:kick(playerid,params[])
    {
    new pID,string[128],grund[128];
    if(GetPVarInt(playerid,"Eingeloggt") <= 0)return SendClientMessage(playerid,COLOR_RED,"Fehler: Du bist nicht eingeloggt und kannst daher diesen Befehl nicht verwenden!");
    if(GetPVarInt(playerid,"pAdmin") <= 0)return SendClientMessage(playerid,COLOR_RED,"- Du bist kein Administrator");
    if(sscanf(params,"us",pID,grund))return SendClientMessage(playerid,COLOR_SILVER,"Hinweis: /kick [ID] [Grund]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,COLOR_RED,"Hinweis: Der Spieler ist offline");
    //if(pID == playerid)return SendClientMessage(playerid,0xF0F0F0FF,"Du kannst dich nicht selbst kicken!");
    format(string,sizeof string,"AdmCmd: %s wurde von %s gekickt. Grund: %s.",PlayerName(pID),PlayerName(playerid),grund);
    SendClientMessageToAll(0xFF0000FF,string);
    TogglePlayerControllable(pID,0);
    Kick(pID);
    return 1;
    }


  • bei mir wird der spieler nicht gekickt. hilfe

    Einmal editiert, zuletzt von Shut_Out08 ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Also erstmal solltest du dashier machen:


    if(sscanf(params,"us[128]",pID,reason))return SendClientMessage(playerid,ROT,"Benutzung: /kick [ID] [Grund]");
    Seit dem neusten SSCANF Update muss man die Größe des Strings dort immer angeben.
    ##edit
    Kommt denn irgendeine Meldung oder passiert nichts ?

  • Ah klar du hast return SendClientMessageToAll....


    Mach das so:
    ocmd:kick(playerid, params[])
    {
    new pID,reason[128];
    new s1[180];
    if(sscanf(params,"us[128]",pID,reason))return SendClientMessage(playerid,ROT,"Benutzung: /kick [ID] [Grund]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"Der angegebene Spieler ist nicht verbunden!");
    if(isPlayerDirectAdmin(playerid, 4)) { format(s1,sizeof(s1),"{FF0000}Projektleiter {FFFFFF}%s hat %s gekickt! [Grund: %s]", SpielerName(playerid), SpielerName(pID),reason) && SendClientMessageToAll(WEISS,s1); }
    if(isPlayerDirectAdmin(playerid, 3)) { format(s1,sizeof(s1),"{F05956}Administrator {FFFFFF}%s hat %s gekickt! [Grund: %s]", SpielerName(playerid), SpielerName(pID),reason) && SendClientMessageToAll(WEISS,s1); }
    if(isPlayerDirectAdmin(playerid, 1)) { format(s1,sizeof(s1),"{1E52FC}Supporter {FFFFFF}%s hat %s gekickt! [Grund: %s]", SpielerName(playerid), SpielerName(pID),reason) && SendClientMessageToAll(WEISS,s1); }
    if(isPlayerDirectAdmin(playerid, 2)) { format(s1,sizeof(s1),"{E1FF21}Moderator {FFFFFF}%s hat %s gekickt! [Grund: %s]", SpielerName(playerid), SpielerName(pID),reason) && SendClientMessageToAll(WEISS,s1); }
    Kick(pID);
    return 1;
    }

    2 Mal editiert, zuletzt von IntelligenT () aus folgendem Grund: Ups SSCANF vergessen Und IsPlayerConnected auch ;D

  • Zuerst wird ein Public erstellt, indem der Spieler dann gekickt wird.


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


    Dann im Befehl den Timer
    SetTimerEx("KickTimer",200,false,"i",playerid);
    Und dann sollte das klappen.