In-Game Command Restrictions
#1

Hi everyone, I was just wondering how I can restrict this command here so that a Lower Admin level wont be able to kick higher level admins:

Код:
CMD:kick(playerid, params[])
{
        new playerb, string[128];
   	if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You need to login first before using any command.");
	if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, COLOR_GREY, "You are not authorized to use this command.");
        if(!aDuty[playerid]) return SendClientMessage(playerid, COLOR_GREY, "You are not on admin duty.");
	if(sscanf(params, "us[128]", playerb, params)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /kick [playerid] [reason]");
	if(!IsPlayerConnected(playerb)) return SendClientMessage(playerid, COLOR_GREY, "Invalid player id.");
 	if(IsPlayerNPC(playerb)) return SendClientMessage(playerid, COLOR_GREY, "You can't kick NPCs out of the server.");
	if(PlayerInfo[playerid][pAdmin] < PlayerInfo[playerb][pAdmin]) return SendClientMessage(playerid, COLOR_GREY, "Player has a higher admin level than you.");	format(string, sizeof(string), "AdmCmd: %s has been kicked by %s, reason: %s", RPN(playerb), RPN(playerid), params);
        format(string, sizeof(string), "AdmCmd: %s has been kicked by %s, reason: %s", RPN(playerb), RPN(playerid), params);
	SendClientMessageToAll(COLOR_LIGHTRED, string);
	format(string, sizeof(string), "AdmCmd: %s has been kicked by %s (%s), reason: %s", RPN(playerb), RPN(playerid), RPIP(playerid), params);
	Log("logs/kick.log", string);
	Kick(playerb);
	return 1;
}
Anyone Know? Thanks!
Reply
#2

Код:
CMD:kick(playerid,params[])
{
    new id,reason[50];
    if(sscanf(params,"us[50]",id,reason)) return SendClientMessage(playerid,-1,"Usage : /kick [playerid/name] [reason]");
    else if(!IsPlayerConnected(id))  return SendClientMessage(playerid,-1,"Player is not connected.");
    else
    {
        if(PlayerInfo[playerid][pAdmin]>0 || IsPlayerAdmin(playerid)==1)
        {
        new str[100];
        format(str,sizeof(str),"%s has kicked %s for %s.",PlayerInfo[playerid][pName],PlayerInfo[id][pName],reason);
        SendClientMessageToAll(-1,str);
        kick(id);
        } 
    }
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)