[HELP]: /makeadmin
#1

Hello SA-MP !

I have another problem. Well, i made a /makeadmin command, which basicly sets the player's admin level. But the problem is, message that a player has been promoted/demoted don't show :/

Code:

pawn Код:
CMD:makeadmin(playerid, params[])
{
    new string[200];
    new str[200];
    new targetid;
    new level;
    if(pInfo[playerid][Adminlevel] < 10)return SendClientMessage(playerid, RED, "[SERVER]: {FFFFFF}You need to be {FF0000}Admin Level 10{FFFFFF}, to use this command !");
    if(sscanf(params, "ui", targetid, level))return SendClientMessage(playerid, GREY, "[USAGE]: /makeadmin {FF0000}[PlayerID] [Level]");
    if(!IsPlayerConnected(targetid))return SendClientMessage(playerid, RED, "[SERVER]: {FFFFFF}This player is {FF0000}NOT {FFFFFF}connected !");
    if(level < 0 || level > 10)return SendClientMessage(playerid, RED, "[SERVER]: {FFFFFF}Invalid Admin Level {FF0000}(0 - 10) {FFFFFF}!");
    if(pInfo[targetid][Adminlevel] == level)return SendClientMessage(playerid, RED, "[SERVER]: {FFFFFF}This player {FF0000}already {FFFFFF}has this Admin Level !");
    if(pInfo[targetid][Adminlevel] < level)
    {
    format(string, sizeof(string), "[SERVER]: {FFFFFF}Player {FF8000}%s(ID:%d) {FFFFFF}has been {FF8000}promoted {FFFFFF}by an Admin {FF8000}%s(ID:%d) {FFFFFF}to level {FF0000}%d {FFFFFF}!", GetName(targetid), targetid, GetName(playerid), playerid, level);
    GameTextForPlayer(targetid, "~g~ PROMOTED !", 3000, 6);
    SendClientMessageToAll(GREEN, string);
    pInfo[targetid][Adminlevel] = level;
    new INI:file = INI_Open(Path(playerid));
    INI_SetTag(file, "Player's Data");
    INI_WriteInt(file, "AdminLevel", pInfo[targetid][Adminlevel]);
    }
    if(pInfo[targetid][Adminlevel] > level)
    {
    format(str, sizeof(str), "[SERVER]: {FFFFFF}Player {FF8000}%s(ID:%d) {FFFFFF}has been {FF8000}demoted {FFFFFF}by an Admin {FF8000}%s(ID:%d) {FFFFFF}to level {FF0000}%d {FFFFFF}!", GetName(targetid), targetid, GetName(playerid), playerid, level);
    GameTextForPlayer(targetid, "~g~ DEMOTED !", 3000, 6);
    SendClientMessageToAll(GREEN, str);
    pInfo[targetid][Adminlevel] = level;
    new INI:file = INI_Open(Path(playerid));
    INI_SetTag(file, "Player's Data");
    INI_WriteInt(file, "AdminLevel", pInfo[targetid][Adminlevel]);
    }
    return 1;
}
Thanks
Reply
#2

Does it make the player an admin, though?
Reply
#3

it is, it also send a Game Text. btw, it doesn't send a client message.
Reply
#4

Try this:
pawn Код:
CMD:makeadmin(playerid, params[])
{
    new string[256];
    new str[256];
    new targetid;
    new level;
    if(pInfo[playerid][Adminlevel] < 10)return SendClientMessage(playerid, RED, "[SERVER]: {FFFFFF}You need to be {FF0000}Admin Level 10{FFFFFF}, to use this command !");
    if(sscanf(params, "ui", targetid, level))return SendClientMessage(playerid, GREY, "[USAGE]: /makeadmin {FF0000}[PlayerID] [Level]");
    if(!IsPlayerConnected(targetid))return SendClientMessage(playerid, RED, "[SERVER]: {FFFFFF}This player is {FF0000}NOT {FFFFFF}connected !");
    if(level < 0 || level > 10)return SendClientMessage(playerid, RED, "[SERVER]: {FFFFFF}Invalid Admin Level {FF0000}(0 - 10) {FFFFFF}!");
    if(pInfo[targetid][Adminlevel] == level)return SendClientMessage(playerid, RED, "[SERVER]: {FFFFFF}This player {FF0000}already {FFFFFF}has this Admin Level !");
    if(pInfo[targetid][Adminlevel] < level)
    {
    format(string, sizeof(string), "[SERVER]: {FFFFFF}Player {FF8000}%s(ID:%d) {FFFFFF}has been {FF8000}promoted {FFFFFF}by an Admin {FF8000}%s(ID:%d) {FFFFFF}to level {FF0000}%d {FFFFFF}!", GetName(targetid), targetid, GetName(playerid), playerid, level);
    SendClientMessageToAll(GREEN, string);
    GameTextForPlayer(targetid, "~g~ PROMOTED !", 3000, 6);
    pInfo[targetid][Adminlevel] = level;
    new INI:file = INI_Open(Path(playerid));
    INI_SetTag(file, "Player's Data");
    INI_WriteInt(file, "AdminLevel", pInfo[targetid][Adminlevel]);
    return 1;
    }
    if(pInfo[targetid][Adminlevel] > level)
    {
    format(str, sizeof(str), "[SERVER]: {FFFFFF}Player {FF8000}%s(ID:%d) {FFFFFF}has been {FF8000}demoted {FFFFFF}by an Admin {FF8000}%s(ID:%d) {FFFFFF}to level {FF0000}%d {FFFFFF}!", GetName(targetid), targetid, GetName(playerid), playerid, level);
    SendClientMessageToAll(GREEN, str);
    GameTextForPlayer(targetid, "~g~ DEMOTED !", 3000, 6);
    pInfo[targetid][Adminlevel] = level;
    new INI:file = INI_Open(Path(playerid));
    INI_SetTag(file, "Player's Data");
    INI_WriteInt(file, "AdminLevel", pInfo[targetid][Adminlevel]);
    return 1;
    }
    return 1;
}
EDIT: Sorry, forgot the returns.
Reply
#5

Try this
Код:
CMD:makeadmin(playerid,params[])
{
    if(pInfo[playerid][AdminLevel] < 6 || IsPlayerAdmin(playerid))
	{
	    new targetid,level,string[180];
		if(sscanf(params, "ud", targetid, level)) return  SendClientMessage(playerid,-1,""chat" /setadmin [playerid] [level]");
		if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid,-1,""chat" Player is not online");
		if(level < 0 || level > 6) return SendClientMessage(playerid,-1,""chat"  Admin levels are ONLY between 1-6");

        pInfo[targetid][AdminLevel] = level;

		format(string, sizeof(string), "*"COL_RED" %s %s have given admin status of %d to %s",GetAdminName(playerid),PlayerName(playerid),level,PlayerName(targetid));
		SendClientMessageToAll(-1,string);
	}
	else {
		SendClientMessage(playerid,-1,"*"COL_RED" You do not have the right admin permissions for this command!");
	}
	return 1;
}
or
Код:
CMD:makeadmin(playerid,params[])
{
    if(pInfo[playerid][AdminLevel] >= 6 || IsPlayerAdmin(playerid))
	{
	    new targetid,level,string[180];
		if(sscanf(params, "ud", targetid, level)) return  SendClientMessage(playerid,-1,""chat" /setadmin [playerid] [level]");
		if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid,-1,""chat" Player is not online");
		if(level < 0 || level > 6) return SendClientMessage(playerid,-1,""chat"  Admin levels are ONLY between 1-6");

        pInfo[targetid][AdminLevel] = level;

		format(string, sizeof(string), "*"COL_RED" %s %s have given admin status of %d to %s",GetAdminName(playerid),PlayerName(playerid),level,PlayerName(targetid));
		SendClientMessageToAll(-1,string);
	}
	else {
		SendClientMessage(playerid,-1,"*"COL_RED" You do not have the right admin permissions for this command!");
	}
	return 1;
}
Reply
#6

Don't work still.
Reply
#7

Did you see my new edit? Because SendClientMessageToAll always returns 1.
Reply
#8

Are you getting any errors?
I have also re-edited my cmds
Reply
#9

Still don't work and no errors.
Reply
#10

Do you have any example of a Message that is sent to All?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)