[HELP]: /makeadmin -
Areax - 24.10.2013
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
Re: [HELP]: /makeadmin -
damian123 - 24.10.2013
Does it make the player an admin, though?
Re: [HELP]: /makeadmin -
Areax - 24.10.2013
it is, it also send a Game Text. btw, it doesn't send a client message.
Re: [HELP]: /makeadmin -
damian123 - 24.10.2013
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.
Re: [HELP]: /makeadmin -
Tomix - 24.10.2013
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;
}
Re: [HELP]: /makeadmin -
Areax - 24.10.2013
Don't work still.
Re: [HELP]: /makeadmin -
damian123 - 24.10.2013
Did you see my new edit? Because SendClientMessageToAll always returns 1.
Re: [HELP]: /makeadmin -
Tomix - 24.10.2013
Are you getting any errors?
I have also re-edited my cmds
Re: [HELP]: /makeadmin -
Areax - 24.10.2013
Still don't work and no errors.
Re: [HELP]: /makeadmin -
damian123 - 24.10.2013
Do you have any example of a Message that is sent to All?