03.10.2016, 23:56
Hello guys, so I was making an admin command, and while doing so I found this really annoying problem,
in which a whole line of code gets egnored of something like that,
in other words, I'm making a /setlevel cmd to promote/demote players(admin status), but whatever the ID I enter is, the command works on me, not on the targetid, and when I do like /setlevel 5006454 3 It doesn't execute the ClientMessage that says "INVALID ID",
here is the code
in which a whole line of code gets egnored of something like that,
in other words, I'm making a /setlevel cmd to promote/demote players(admin status), but whatever the ID I enter is, the command works on me, not on the targetid, and when I do like /setlevel 5006454 3 It doesn't execute the ClientMessage that says "INVALID ID",
here is the code
Код:
CMD:setlevel(playerid, params[]) {
new
string[MAX_PLAYER_NAME+64],
pname[MAX_PLAYER_NAME],
tname[MAX_PLAYER_NAME],
targetid,
level;
if((IsPlayerAdmin(playerid)) || PlayerInfo[playerid][AdminLevel] >= 3) {
if(sscanf(params, "ui", targetid, level)) return SendClientMessage(playerid, -1, "USAGE: /makeadmin (playerid) (level)");
for(new i; i <= MAX_PLAYERS; i++) {
if((!IsPlayerConnected(targetid)) || (targetid == INVALID_PLAYER_ID)) SendClientMessage(playerid, 0xFF0000, "Player Is Not Connected!");
else {
if(level < 1 || level > 4) return SendClientMessage( playerid, 0xFF0000, "available levels (1-4)");
GetPlayerName(playerid, pname, sizeof(pname));
GetPlayerName(targetid, tname, sizeof(tname));
format(string, sizeof(string), "Administrator %s has promoted %s to level %i admin", pname, tname, level);
SendClientMessageToAll(-1, string);
PlayerInfo[targetid][AdminLevel] = level;
new INI:File = INI_Open(AdminPath(targetid));
INI_SetTag(File, "AdminData");
INI_WriteInt(File, "AdminLevel", PlayerInfo[targetid][AdminLevel]);
INI_Close(File);
return 1;
}
}
}
else {
SendClientMessage( playerid, 0xFF0000, "you can't use this command!");
return 1;
}
return 1;
}


