Kick Befehl funkt nicht richtig.

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
  • i
    f(strcmp(cmd, "/kick", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /kick [playerid] [Grund]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if (PlayerInfo[playerid][pAdmin] >= 1 || PlayerInfo[playerid][pSupporter] >= 1)
    {
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[64];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "FEHLER: /kick [playerid] [Grund]");
    return 1;
    }
    if(PlayerInfo[giveplayerid][pAdmin] > PlayerInfo[playerid][pAdmin])
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Du kannst diesen Spieler nicht kicken, da er ein höheres Adminlevel hat als du!");
    return 1;
    }
    new year, month,day;
    getdate(year, month, day);
    format(string, sizeof(string), "AdmCmd: %s wurde von %s gekickt, Grund: %s (%d-%d-%d)", giveplayer, sendername, (result),month,day,year);
    KickLog(string);
    format(string, sizeof(string), "AdmCmd: %s wurde von %s gekickt, Grund: %s", giveplayer, sendername, (result));
    SendClientMessageToAll(COLOR_LIGHTRED, string);
    SetPlayerPos(giveplayerid,279.7885,1867.9598,8.7578);
    SetPlayerInterior(giveplayerid,0);
    ResetPlayerWeapons(giveplayerid);
    SendClientMessage(giveplayerid,COLOR_YELLOW,"Du wurdes gekickt überlege warum gehe unter www.gbcl-city-live.tk beschwerde über Admins wen es ein problem gibt!");
    TogglePlayerControllable(giveplayerid,0);
    Kick(giveplayerid);
    return 1;
    }
    }
    }
    else
    {
    format(string, sizeof(string), " %d ist kein aktiver Spieler.", giveplayerid);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    }
    }
    return 1;
    }

  • DAs kannst du nicht mit strcmp machen, das geht nur mit ocmd, dcmd ect.
    weil du ja eine ID angeben musst.


    Mach es so:ocmd:kick(playerid,params[])
    {
    new pID;
    if (IsPlayerAnAdmin(pID,1)) return SendClientMessage(playerid,0xE10000FF,"Du kannst keine Admins kicken!");
    if (!IsPlayerAnAdmin(playerid,1)) return SendClientMessage(playerid,0xE10000FF,"Du bist kein Admin/Rang zu niedrig!");
    new reason[128], string[128];
    if(sscanf(params,"us",pID,reason)) return SendClientMessage(playerid,ROT,"Nutze /kick [Playerid] [Grund]");
    format(string,sizeof(string),"AdmCmd: %s wurde von %s gekickt. Grund: %s.",SpielerName(pID),SpielerName(playerid),reason);
    SendClientMessageToAll(ROT,string);
    Kick(pID);
    return 1;
    }