30.12.2012, 13:15
Hey, my setlevel command works good, but I found a bug ingame, I wasnt Admin level 5/6 but I tried /setlevel 0 6. And I was promoted.. But Only admin level 5/6 can promote peoples..
But, I have already a check if a player is level 5 or 6..
Can anyone found any problem?
But, I have already a check if a player is level 5 or 6..
Can anyone found any problem?
pawn Код:
CMD:setlevel(playerid, params[])
{
new str[128], id, alevel;
if(PlayerAcc[playerid][Log] == 0) return SendClientMessage(playerid, COLOR_ORANGE, "You are not logged in, please login first.");
if(PlayerAcc[playerid][Admin] >= 5,6 || IsPlayerAdmin(playerid))
{
if(sscanf(params, "ui", id, alevel)) return SendClientMessage(playerid, COLOR_ORANGE, "You must be type /setlevel <playerid> <level>");
if(alevel > 6 || alevel < 0) return SendClientMessage(playerid, COLOR_ORANGE, "There are 6 admin levels avabaile.");
if(alevel == PlayerAcc[id][Admin]) return SendClientMessage(playerid, COLOR_RED, "That player is already in that admin level!");
if(id == INVALID_PLAYER_ID) return ErrorMessages(playerid, 2);
if(PlayerAcc[id][Admin] > alevel) GameTextForPlayer(id, "~r~Demoted!", 3000, 3);
if(PlayerAcc[id][Admin] < alevel) GameTextForPlayer(id, "~g~Promoted!", 3000, 3);
switch(alevel)
{
case 0: AdminRank = "Trusted Player";
case 1: AdminRank = "Co-Mod";
case 2: AdminRank = "Mod";
case 3: AdminRank = "Trial Admin";
case 4: AdminRank = "Admin";
case 5: AdminRank = "Manager";
case 6: AdminRank = "Owner";
}
PlayerAcc[id][Admin] = alevel;
format(str, sizeof(str), "You set %s(ID:%d) Admin Level to %d - %s", GetName(id), id, alevel, AdminRank);
SendClientMessage(playerid, 0xFFF700FF, str);
format(str, sizeof(str), "Admin %s(ID:%d) has set your Admin Level to %d - %s", GetName(playerid), playerid, alevel, AdminRank);
SendClientMessage(id, 0x00FF00FF, str);
}
else return ErrorMessages(playerid, 9);
return 1;
}