IsPlayerAdmin(playerid) help

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
  • Hallöschen,


    Bei meinem script edit funktioniert der /kick Befehl nicht:


    /kick : You are not an admin


    Den grund habe ich gefunden, waurm auch immer benutzt der server die base.amx X(

    if(strcmp("/kick", cmd, true) == 0)
    {
    if(IsPlayerAdmin(playerid)) {
    tmp = strtok(cmdtext,idx);
    if(!strlen(tmp) || strlen(tmp) > 5) {
    return SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,"Usage: /kick (id) [reason]");
    }

    new id = strval(tmp);


    if(!IsPlayerConnected(id)) {
    SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,"/kick : Bad player ID");
    return 1;
    }

    gMessage = strrest(cmdtext,idx);

    GetPlayerName(id,iName,sizeof(iName));
    SendClientMessage(id,ADMINFS_MESSAGE_COLOR,"-- You have been kicked from the server.");


    if(strlen(gMessage) > 0) {
    format(Message,sizeof(Message),"Reason: %s",gMessage);
    SendClientMessage(id,ADMINFS_MESSAGE_COLOR,Message);
    }

    format(Message,sizeof(Message),">> %s(%d) has been kicked.",iName,id);
    SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,Message);

    Kick(id);
    return 1;
    } else {
    SendClientMessage(playerid,ADMINFS_MESSAGE_COLOR,"/kick : You are not an admin");
    return 1;
    }
    }


    Kann mir jemand sagen wie ich das problem weg bekomme?
    der /makeadmin Befehl:


    if(strcmp(cmd, "/makeadmin", true) == 0)
    {
    if(PlayerInfo[playerid][pAdmin] >= 1339)
    {
    //if(strcmp("[FoD]Fabio",GetName(playerid),false) && strcmp("[FoD][FoD]Suppenhuhn",GetName(playerid),false))
    if(PlayerInfo[playerid][pAdmin] < 1339)
    {
    SendClientMessage(playerid,COLOR_GRAD2," Das Vergeben und Entziehen von Adminrechten ist nur für die ServerOwner möglich!");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /makeadmin [ID] [Level]");
    return 1;
    }
    new para1 = ReturnUser(tmp);
    tmp = strtok(cmdtext, idx);
    new level = strval(tmp);
    if(IsPlayerConnected(para1))
    {
    if(para1 != INVALID_PLAYER_ID)
    {
    GetPlayerName(para1, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    if(PlayerInfo[para1][pAdmin] < level)
    {
    printf("AdmCmd: %s hat %s zu einem Level %d Admin befördert.", sendername, giveplayer, level);
    format(string, sizeof(string), " Du wurdest durch %s zu einem Level %d Admin befördert", sendername, level);
    SendClientMessage(para1, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), " Du hast %s zu einem Level %d Admin befördert.", giveplayer,level);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    }
    else
    {
    printf("AdmCmd: %s hat %s zu einem Level %d Admin degradiert.", sendername, giveplayer, level);
    format(string, sizeof(string), " Du wurdest durch %s zu einem Level %d Admin degradiert", sendername, level);
    SendClientMessage(para1, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), " Du hast %s zu einem Level %d Admin degradiert.", giveplayer,level);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    }
    PlayerInfo[para1][pAdmin] = level;
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, " Du bist nicht befugt diesen Befehl zu nutzen! ");
    }
    return 1;
    }


    Der eigendliche /kick befehl, wie er sein soll:


    if(strcmp(cmd, "/kick", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "FEHLER: /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);
    Kick(giveplayerid);
    return 1;
    }
    }
    }
    else
    {
    format(string, sizeof(string), " %d ist kein aktiver Spieler.", giveplayerid);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    }
    }
    return 1;
    }