[ajuda] comando /daradmin
#1

na hora q eu vo da o admin pra pessoa o level sempre vai pra 0

Код:
COMMAND:daradmin(playerid, params[])
{
	new OtherPlayer, Level, Msg[128], Name[24], AdminName[24], OldLevel;
	SendAdminText(playerid, "/daradmin", params);
	if (APlayerData[playerid][LoggedIn] == true)
	{
		if (APlayerData[playerid][PlayerLevel] >= 5)
		{
			SendClientMessage(playerid, 0xFF0000AA, "Use: /daradmin [id] [nivel]");
			{
				if (IsPlayerConnected(OtherPlayer))
				{
				    OldLevel = APlayerData[OtherPlayer][PlayerLevel];
					GetPlayerName(playerid, AdminName, sizeof(AdminName));
					GetPlayerName(OtherPlayer, Name, sizeof(Name));
					APlayerData[OtherPlayer][PlayerLevel] = Level;
					if (OldLevel != Level)
					{
						if (OldLevel < Level)
							format(Msg, 128, "[BC] O jogador %s foi promovido a %s por %s", Name, AdminLevelName[Level], AdminName);
						if (OldLevel > Level)
							format(Msg, 128, "[BC] O jogador %s foi rebaixado a %s por %s", Name, AdminLevelName[Level], AdminName);
						SendClientMessageToAll(0x00FF00FF, Msg);
					}
					else
						SendClientMessage(playerid, 0xFF0000FF, "[BC] Nivel dos outros jogadores nгo foram alterados,");
				}
				else
				    SendClientMessage(playerid, 0xFF0000FF, "[BC] Esse jogador nгo estб online.");
			}
		}
		else
		    return 0;
	}
	else
	    return 0;
	return 1;
}
Reply
#2

Como o comando tem mais de um parвmetro, vocк teria que utilizar um cуdigo como strtok ou sscanf para obter o ID e o nнvel indicados .



Espero ter ajudado .
Reply
#3

tem como passar para sscanf pra mim ? to tentando aki + n consigo :S
Reply
#4

Quote:
Originally Posted by caio.oakey
Посмотреть сообщение
tem como passar para sscanf pra mim ? to tentando aki + n consigo :S
Edita ae
pawn Код:
CMD:daradmin(playerid, params[])
{
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,"Vocк nгo pode usar esse comando.");
    new OtherPlayer, nivel;
    if(sscanf(params,"u", OtherPlayer, nivel)) return SendClientMessage(playerid,-1,"Use: /daradmin [ID] [Nivel]");
    if(!IsPlayerConnected(OtherPlayer)) return SendClientMessage(playerid,-1,"Player nгo conectado.");
    APlayerData[OtherPlayer][PlayerLevel] = Level;
    SendClientMessage(playerid,-1,"Admin setado com sucesso!");
    SendClientMessage(OtherPlayer, -1,"Vocк recebeu admin :D");
    return 1;
}
Reply
#5

Quote:
Originally Posted by humildadeforever
Посмотреть сообщение
Edita ae
pawn Код:
CMD:daradmin(playerid, params[])
{
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,"Vocк nгo pode usar esse comando.");
    new OtherPlayer, nivel;
    if(sscanf(params,"u", OtherPlayer, nivel)) return SendClientMessage(playerid,-1,"Use: /daradmin [ID] [Nivel]");
    if(!IsPlayerConnected(OtherPlayer)) return SendClientMessage(playerid,-1,"Player nгo conectado.");
    APlayerData[OtherPlayer][PlayerLevel] = Level;
    SendClientMessage(playerid,-1,"Admin setado com sucesso!");
    SendClientMessage(OtherPlayer, -1,"Vocк recebeu admin :D");
    return 1;
}
Deu certo obrigado +rep
Reply
#6

Nada
Reply
#7

Gosto mais assim:
pawn Код:
if(strcmp(cmd,"/nadmin", true)==0)
{
   new aname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
    format(file, sizeof(file), psContas, aname);
 if(PlayerInfo[playerid][pAdmin] == 5){
   new tmp[256];
   new plid, nadmin;
   tmp = strtok(cmdtext, idx);
 if(!strlen(tmp)){
    SendClientMessage(playerid, VERMELHO_TD, "** [INFO] /nadmin [ID] [1 -- 5]");
    return 1;
}
   plid = strval(tmp);
   tmp = strtok(cmdtext, idx);
 if(!strlen(tmp)) {
    SendClientMessage(playerid, VERMELHO_TD, "** [INFO] /nadmin [ID] [1 -- 5]");
    return 1;
}
   nadmin = strval(tmp);
 if(IsPlayerConnected(plid)){
    PlayerInfo[playerid][pAdmin] = nadmin;
   new pname[MAX_PLAYER_NAME];
   GetPlayerName(plid, pname, MAX_PLAYER_NAME);
   format(string, sizeof(string), "** [INFO] O Administrador %s (%d) setou o seu nнvel Administrativo para: %s", aname, playerid, NivelAdmin(nadmin));
   SendClientMessage(plid,tcadm, string);
   SendClientMessage(playerid, Verde, "** [INFO] Comando efetuado com sucesso!");
   return 1;
   }else{
   SendClientMessage(playerid, VERMELHO_TD, "*** [ERRO] Jogador nгo conectado.");
   return 1;
}
}
}
pawn Код:
stock NivelAdmin(nivel)
{
  new str[30];
 if(nivel == 0)
{
    str = "Nгo Administrador";
}
 else if(nivel == 1)
{
    str = "Moderador";
}
 else if(nivel == 2)
{
    str = "Auxiliar";
}
 else if(nivel == 3)
{
    str = "Administrador";
}
 else if(nivel == 4)
{
    str = "Sub-Dono";
}
 else if(nivel == 5)
{
    str = "Dono";
}
    return str;
}
Reply
#8

Quote:
Originally Posted by Djair_Black
Посмотреть сообщение
Gosto mais assim:
pawn Код:
if(strcmp(cmd,"/nadmin", true)==0)
{
   new aname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
    format(file, sizeof(file), psContas, aname);
 if(PlayerInfo[playerid][pAdmin] == 5){
   new tmp[256];
   new plid, nadmin;
   tmp = strtok(cmdtext, idx);
 if(!strlen(tmp)){
    SendClientMessage(playerid, VERMELHO_TD, "** [INFO] /nadmin [ID] [1 -- 5]");
    return 1;
}
   plid = strval(tmp);
   tmp = strtok(cmdtext, idx);
 if(!strlen(tmp)) {
    SendClientMessage(playerid, VERMELHO_TD, "** [INFO] /nadmin [ID] [1 -- 5]");
    return 1;
}
   nadmin = strval(tmp);
 if(IsPlayerConnected(plid)){
    PlayerInfo[playerid][pAdmin] = nadmin;
   new pname[MAX_PLAYER_NAME];
   GetPlayerName(plid, pname, MAX_PLAYER_NAME);
   format(string, sizeof(string), "** [INFO] O Administrador %s (%d) setou o seu nнvel Administrativo para: %s", aname, playerid, NivelAdmin(nadmin));
   SendClientMessage(plid,tcadm, string);
   SendClientMessage(playerid, Verde, "** [INFO] Comando efetuado com sucesso!");
   return 1;
   }else{
   SendClientMessage(playerid, VERMELHO_TD, "*** [ERRO] Jogador nгo conectado.");
   return 1;
}
}
}
pawn Код:
stock NivelAdmin(nivel)
{
  new str[30];
 if(nivel == 0)
{
    str = "Nгo Administrador";
}
 else if(nivel == 1)
{
    str = "Moderador";
}
 else if(nivel == 2)
{
    str = "Auxiliar";
}
 else if(nivel == 3)
{
    str = "Administrador";
}
 else if(nivel == 4)
{
    str = "Sub-Dono";
}
 else if(nivel == 5)
{
    str = "Dono";
}
    return str;
}
NOSSA! Que code lindo

Sente sу a diferenзa (organizaзгo):

pawn Код:
if(strcmp(cmd,"/nadmin", true) == 0)
{
    new aname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
    format(file, sizeof(file), psContas, aname);
    if(PlayerInfo[playerid][pAdmin] == 5)
    {
        new tmp[156],plid, nadmin;
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp)) return SendClientMessage(playerid, VERMELHO_TD, "** [INFO] /nadmin [ID] [1 -- 5]");
        plid = strval(tmp);
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp)) return SendClientMessage(playerid, VERMELHO_TD, "** [INFO] /nadmin [ID] [1 -- 5]");
        nadmin = strval(tmp);
        if(!IsPlayerConnected(plid)) return SendClientMessage(playerid, VERMELHO_TD, "*** [ERRO] Jogador nгo conectado.");
        PlayerInfo[playerid][pAdmin] = nadmin;
        new pname[MAX_PLAYER_NAME];
        GetPlayerName(plid, pname, MAX_PLAYER_NAME);
        format(string, sizeof(string), "** [INFO] O Administrador %s (%d) setou o seu nнvel Administrativo para: %s", aname, playerid, NivelAdmin(nadmin));
        SendClientMessage(plid,tcadm, string);
        SendClientMessage(playerid, Verde, "** [INFO] Comando efetuado com sucesso!");
        return 1;
   }
   return 1;
}
E zcmd + sscanf й bem melhor
Reply
#9

Quote:
Originally Posted by Djair_Black
Посмотреть сообщение
Gosto mais assim:
pawn Код:
if(strcmp(cmd,"/nadmin", true)==0)
{
   new aname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
    format(file, sizeof(file), psContas, aname);
 if(PlayerInfo[playerid][pAdmin] == 5){
   new tmp[256];
   new plid, nadmin;
   tmp = strtok(cmdtext, idx);
 if(!strlen(tmp)){
    SendClientMessage(playerid, VERMELHO_TD, "** [INFO] /nadmin [ID] [1 -- 5]");
    return 1;
}
   plid = strval(tmp);
   tmp = strtok(cmdtext, idx);
 if(!strlen(tmp)) {
    SendClientMessage(playerid, VERMELHO_TD, "** [INFO] /nadmin [ID] [1 -- 5]");
    return 1;
}
   nadmin = strval(tmp);
 if(IsPlayerConnected(plid)){
    PlayerInfo[playerid][pAdmin] = nadmin;
   new pname[MAX_PLAYER_NAME];
   GetPlayerName(plid, pname, MAX_PLAYER_NAME);
   format(string, sizeof(string), "** [INFO] O Administrador %s (%d) setou o seu nнvel Administrativo para: %s", aname, playerid, NivelAdmin(nadmin));
   SendClientMessage(plid,tcadm, string);
   SendClientMessage(playerid, Verde, "** [INFO] Comando efetuado com sucesso!");
   return 1;
   }else{
   SendClientMessage(playerid, VERMELHO_TD, "*** [ERRO] Jogador nгo conectado.");
   return 1;
}
}
}
pawn Код:
stock NivelAdmin(nivel)
{
  new str[30];
 if(nivel == 0)
{
    str = "Nгo Administrador";
}
 else if(nivel == 1)
{
    str = "Moderador";
}
 else if(nivel == 2)
{
    str = "Auxiliar";
}
 else if(nivel == 3)
{
    str = "Administrador";
}
 else if(nivel == 4)
{
    str = "Sub-Dono";
}
 else if(nivel == 5)
{
    str = "Dono";
}
    return str;
}
Amigo nгo e questao de gostar ou nгo, zcmd e sscanf sao muito mais rapidos doq isso ai '-'
Reply
#10

Isso й Bug dos ID's
HaHa
Que versгo o server ta 0.3c ou 0.3d
se tiver no 0.3d й Bug dos ID
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)