Rcon Admin Problem...
#1

Hey!

Now I have another problem...

How can I make that Admin level 5 and Rcon Admin can use the same command?

I have a command /makeadmin...

Code:

PHP код:
CMD:makeadmin(playeridparams[])
{
    new 
id,
        
level;
    if(
gPlayerInfo[playerid][PLAYER_LEVEL] < 5)
        return 
SendClientMessage(playeridCOLOR_RED"You are Not Allowed To Use This Command!");
    if(
sscanf(params"ui"idlevel))
        return 
SendClientMessage(playeridCOLOR_ORANGE"Usage: /makeadmin [playerid] [level]");
    if(!
IsPlayerConnected(id))
        return 
SendClientMessage(playeridCOLOR_RED"ERROR: This Player is Not Connected!");
    if ( 
level || level )
        return 
SendClientMessage(playeridCOLOR_RED"ERROR: Invalid Admin Level (0-5)!");
    
gPlayerInfo[id][PLAYER_LEVEL] = level;
    new 
pName[MAX_PLAYER_NAME], str[128], pName1[MAX_PLAYER_NAME];
    
GetPlayerName(playeridpNamesizeof(pName));
    
GetPlayerName(idpName1sizeof(pName1));
    
format(strsizeof(str), "[SYSTEM]: Administrator %s Has Changed %s's Admin Level to %i",pNamepName1level);
    
SendClientMessageToAll(COLOR_BLUEstr);
    new 
file[100];
    
format(filesizeof(file), PlayerFilegPlayerInfo[playerid][PLAYER_NAME]);
    
dini_Set(file"Name"gPlayerInfo[playerid][PLAYER_NAME]);
    
dini_Set(file"Ip"gPlayerInfo[playerid][PLAYER_IP]);
    
dini_IntSet(file"Registered"gPlayerInfo[playerid][PLAYER_REGGED]);
    
dini_IntSet(file"Password"gPlayerInfo[playerid][PLAYER_PASS]);
    
dini_IntSet(file"Level"gPlayerInfo[playerid][PLAYER_LEVEL]);
    
dini_IntSet(file"Money"GetPlayerMoney(playerid));
    
gPlayerLogged[playerid] = 0;
    return 
1;

Reply
#2

Anyone?
Reply
#3

Check out this function https://sampwiki.blast.hk/wiki/IsPlayerAdmin it may help you.
Reply
#4

pawn Код:
CMD:makeadmin(playerid, params[])
{
    new id,
        level;

    if(gPlayerInfo[playerid][PLAYER_LEVEL] < 5 || !IsPlayerAdmin(playerid)) // If the player is an admin, or logged on as RCON
        return SendClientMessage(playerid, COLOR_RED, "You are Not Allowed To Use This Command!");

    if(sscanf(params, "ui", id, level))
        return SendClientMessage(playerid, COLOR_ORANGE, "Usage: /makeadmin [playerid] [level]");

    if(!IsPlayerConnected(id))
        return SendClientMessage(playerid, COLOR_RED, "ERROR: This Player is Not Connected!");

    if ( level < 0 || level > 5 )
        return SendClientMessage(playerid, COLOR_RED, "ERROR: Invalid Admin Level (0-5)!");

    gPlayerInfo[id][PLAYER_LEVEL] = level;
    new pName[MAX_PLAYER_NAME], str[128], pName1[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pName, sizeof(pName));
    GetPlayerName(id, pName1, sizeof(pName1));
    format(str, sizeof(str), "[SYSTEM]: Administrator %s Has Changed %s's Admin Level to %i",pName, pName1, level);
    SendClientMessageToAll(COLOR_BLUE, str);
    new file[100];
    format(file, sizeof(file), PlayerFile, gPlayerInfo[playerid][PLAYER_NAME]);
    dini_Set(file, "Name", gPlayerInfo[playerid][PLAYER_NAME]);
    dini_Set(file, "Ip", gPlayerInfo[playerid][PLAYER_IP]);
    dini_IntSet(file, "Registered", gPlayerInfo[playerid][PLAYER_REGGED]);
    dini_IntSet(file, "Password", gPlayerInfo[playerid][PLAYER_PASS]);
    dini_IntSet(file, "Level", gPlayerInfo[playerid][PLAYER_LEVEL]);
    dini_IntSet(file, "Money", GetPlayerMoney(playerid));
    gPlayerLogged[playerid] = 0;
    return 1;
}
Reply
#5

Quote:
Originally Posted by Isolated
Посмотреть сообщение
pawn Код:
CMD:makeadmin(playerid, params[])
{
    new id,
        level;

    if(gPlayerInfo[playerid][PLAYER_LEVEL] < 5 || !IsPlayerAdmin(playerid)) // If the player is an admin, or logged on as RCON
        return SendClientMessage(playerid, COLOR_RED, "You are Not Allowed To Use This Command!");

    if(sscanf(params, "ui", id, level))
        return SendClientMessage(playerid, COLOR_ORANGE, "Usage: /makeadmin [playerid] [level]");

    if(!IsPlayerConnected(id))
        return SendClientMessage(playerid, COLOR_RED, "ERROR: This Player is Not Connected!");

    if ( level < 0 || level > 5 )
        return SendClientMessage(playerid, COLOR_RED, "ERROR: Invalid Admin Level (0-5)!");

    gPlayerInfo[id][PLAYER_LEVEL] = level;
    new pName[MAX_PLAYER_NAME], str[128], pName1[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pName, sizeof(pName));
    GetPlayerName(id, pName1, sizeof(pName1));
    format(str, sizeof(str), "[SYSTEM]: Administrator %s Has Changed %s's Admin Level to %i",pName, pName1, level);
    SendClientMessageToAll(COLOR_BLUE, str);
    new file[100];
    format(file, sizeof(file), PlayerFile, gPlayerInfo[playerid][PLAYER_NAME]);
    dini_Set(file, "Name", gPlayerInfo[playerid][PLAYER_NAME]);
    dini_Set(file, "Ip", gPlayerInfo[playerid][PLAYER_IP]);
    dini_IntSet(file, "Registered", gPlayerInfo[playerid][PLAYER_REGGED]);
    dini_IntSet(file, "Password", gPlayerInfo[playerid][PLAYER_PASS]);
    dini_IntSet(file, "Level", gPlayerInfo[playerid][PLAYER_LEVEL]);
    dini_IntSet(file, "Money", GetPlayerMoney(playerid));
    gPlayerLogged[playerid] = 0;
    return 1;
}
Wrong, it should be && instead of ||
pawn Код:
if(gPlayerInfo[playerid][PLAYER_LEVEL] < 5 && !IsPlayerAdmin(playerid)) // If the player is an admin, or logged on as RCON
        return SendClientMessage(playerid, COLOR_RED, "You are Not Allowed To Use This Command!");
Reply
#6

Both wrong.
Add if(IsPlayerAdmin(playerid)) infront of the command, put the return message on bottom at the brackets.
Reply
#7

PHP код:
CMD:makeadmin(playeridparams[])
{
    new 
id,
        
level;
    if(
gPlayerInfo[playerid][PLAYER_LEVEL] < || !IsPlayerAdmin(playerid))
        return 
SendClientMessage(playeridCOLOR_RED"You are Not Allowed To Use This Command!");
    if(
sscanf(params"ui"idlevel))
        return 
SendClientMessage(playeridCOLOR_ORANGE"Usage: /makeadmin [playerid] [level]");
    if(!
IsPlayerConnected(id))
        return 
SendClientMessage(playeridCOLOR_RED"ERROR: This Player is Not Connected!");
    if ( 
level || level )
        return 
SendClientMessage(playeridCOLOR_RED"ERROR: Invalid Admin Level (0-5)!");
    
gPlayerInfo[id][PLAYER_LEVEL] = level;
    new 
pName[MAX_PLAYER_NAME], str[128], pName1[MAX_PLAYER_NAME];
    
GetPlayerName(playeridpNamesizeof(pName));
    
GetPlayerName(idpName1sizeof(pName1));
    
format(strsizeof(str), "[SYSTEM]: Administrator %s Has Changed %s's Admin Level to %i",pNamepName1level);
    
SendClientMessageToAll(COLOR_BLUEstr);
    new 
file[100];
    
format(filesizeof(file), PlayerFilegPlayerInfo[playerid][PLAYER_NAME]);
    
dini_Set(file"Name"gPlayerInfo[playerid][PLAYER_NAME]);
    
dini_Set(file"Ip"gPlayerInfo[playerid][PLAYER_IP]);
    
dini_IntSet(file"Registered"gPlayerInfo[playerid][PLAYER_REGGED]);
    
dini_IntSet(file"Password"gPlayerInfo[playerid][PLAYER_PASS]);
    
dini_IntSet(file"Level"gPlayerInfo[playerid][PLAYER_LEVEL]);
    
dini_IntSet(file"Money"GetPlayerMoney(playerid));
    
gPlayerLogged[playerid] = 0;
    return 
1;

Reply
#8

Quote:
Originally Posted by judothijs
Посмотреть сообщение
Both wrong.
Add if(IsPlayerAdmin(playerid)) infront of the command, put the return message on bottom at the brackets.
I don't see how my code is wrong? Explain in detail which parts of it are incorrect and would not work as expected.
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)