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; }