/setlevel command Problem [HELP]
#1

Hi
Im still learning how to script so im not all good yet but Im having a problem with my /setlevel command,
every time I type /setlevel my id and the level to lets say 4, it sends me a message telling me I have set my own admin level to 0 and I cant figure out what I have done wrong.
heres my script


if(!strcmp(cmdtext, "/setlevel", true, 9))
{
new giveplayerid, level, string[128];
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "You are not allowed to use this command.");
if(!cmdtext[9]) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /setlevel [playerid] [level]");
if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, COLOR_RED, "Player is not connected.");
format(string, sizeof(string), "Admin %s (%d) has set your level to %d.", GetPlayerName(playerid), playerid, level);
SendClientMessage(giveplayerid, COLOR_BLUE, string);
SetPlayerAdminLevel(giveplayerid, level);
return 1;
}

Thanks
Reply
#2

Where do you define giveplayerid?
Reply
#3

use zcmd and ssancf.
Reply
#4

use sscanf plugin its best for command like mine
pawn Код:
dcmd_setlevel(playerid, params[])
{
    new levels,Nam[MAX_PLAYER_NAME],pname[MAX_PLAYER_NAME],str[500],ID,mode[128];
    if(PlayerInfo[playerid][AdminLevel] == 5 || IsPlayerAdmin(playerid))
    {
    if(sscanf(params,"ui",ID,levels)) return SendClientMessage(playerid,COLOR_GREY, "USAGE: /setlevel [ID] [Level 1-5]");
    if(levels > 5) return SendClientMessage(playerid,COLOR_GREY,"LEVELS AVAILABLE 1-5!");
    if(!IsPlayerConnected(ID))return SendClientMessage(playerid,red,"That user is not connected.");
    if(PlayerInfo[ID][AdminLevel] == levels) return SendClientMessage(playerid,0xFF0000FF, "ERROR: That person is already this admin level!");
    GetPlayerName(playerid,Nam, MAX_PLAYER_NAME);
    GetPlayerName(ID,pname,MAX_PLAYER_NAME);
    if(levels==1)
    {mode = "{FFFF00}Server Moderator {FFFFFF}(Level 1)";}
    if(levels==2)
    {mode = "{0000BB}Global Moderator {FFFFFF}(Level 2)";}
    if(levels==3)
    {mode = "{ADFF2F}Administrator {FFFFFF}(Level 3)";}
    if(levels==4)
    {mode = "{ADFF2F}Administrator {FFFFFF}(Level 3+)";}
    if(levels==5)
    {mode = "{FF0000}Head Administrator {FFFFFF}(Level 4)";}
    if(levels < PlayerInfo[ID][AdminLevel])
    {
        format(str, sizeof(str),"%s has set your Admin level to %s",Nam,mode);
        GameTextForPlayer(ID,"~b~Demoted", 2000, 3);
        SendClientMessage(ID,COLOR_GREY,str);
        format(str, sizeof(str),"You had set %s Admin level to %s!",pname,mode);
        SendClientMessage(playerid,COLOR_GREY,str);
        PlayerInfo[ID][AdminLevel] = levels;
        return 1;
    }
    format(str, sizeof(str),"%s has set your Admin level to %s.",Nam,mode);
    SendClientMessage(ID,COLOR_GREY,str);
    GameTextForPlayer(ID,"~b~Promoted", 2000, 3);
    format(str, sizeof(str),"You had set %s Admin level to %s!",pname,mode);
    SendClientMessage(playerid,COLOR_GREY,str);
    PlayerInfo[ID][AdminLevel] = levels;
    }else return 0;
    return 1;
}
Reply
#5

I Havent defined giveplayerid
but ill give your script a try iceblizzard
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)