[Ajuda] /DarAdmin nгo aparece o cargo correto
#1

Bom dia.

Gostaria de saber onde eu estou errando no comando abaixo, pois jб revisei com outros comandos e nгo consegui encontrar o erro.
Seguinte, eu dou /DarAdmin a um jogador, e independente do nнvel administrativo que ele receba (1 a 3, ajudante a administrador), na mensagem in-game sempre aparece que foi promovido a Desenvolvedor(a).
Entenderam? Se nгo, avisem que explico melhor, com prints ou nгo.

O que posso alterar no comando para que apareзa o cargo correto que o mesmo recebeu?

pawn Код:
CMD:daradmin(playerid, params[])
{
    new Cargo[256];
    if(PlayerInfo[playerid][pAdmin] < 4)        return SendClientMessage(playerid, CorErro, "| ERRO | Comando invбlido.");
    if(sscanf(params, "ii", ID, Numero))        return SendClientMessage(playerid, Amarelo, "| ATENЗГO | USE: /daradmin [ID] [NIVEL]");
    if(!IsPlayerConnected(ID))                  return SendClientMessage(playerid, CorErro, "| ERRO | O jogador nгo estб conectado");
    if(Numero > 4 || Numero == 0)               return SendClientMessage(playerid, CorErro, "| ERRO | O nнvel deve estar entre 1 e 4!");
    switch(PlayerInfo[ID][pAdmin])
    {
        case 1: Cargo = "Ajudante";
        case 2: Cargo = "Moderador(a)";
        case 3: Cargo = "Administrador(a)";
        case 4: Cargo = "Desenvolvedor(a)";
    }
    format(Str, 256, "| INFO | Vocк promoveu %s para %s.", pNomeOriginal[ID], Cargo);
    SendClientMessage(playerid, Azul, Str);
    //
    format(Str, 256, "| INFO | %s promoveu vocк para %s. Parabйns! Digite {00FF00}/acmds{1E90FF} para visualizar seus comandos.", pNomeOriginal[playerid], Cargo);
    SendClientMessage(ID, AzulClaro, Str);
    //
    format(Str, sizeof(Str), "AdmCmd: O administrador %s definiu o nнvel de administraзгo de %s para %i.", pNomeOriginal[playerid], pNomeOriginal[ID], Numero);
    PlayerInfo[ID][pAdmin] = Numero;
    //
    Log("pAdmin/Logs/DarAdmin.ini", Str);
    return 1;
}
Reply
#2

Vocк tem que setar o cargo antes de verificar em que cargo ele esta..
PHP код:
CMD:daradmin(playeridparams[])
{
    new 
targetcargoidCargo[20];
    if(
PlayerInfo[playerid][pAdmin] < 4) return SendClientMessage(playeridCorErro"| ERRO | Comando invбlido.");
    if(
sscanf(params"ui"targetcargoid)) return SendClientMessage(playeridAmarelo"| ATENЗГO | USE: /daradmin [ID/NOME] [NIVEL]");
    if(!
IsPlayerConnected(target)) return SendClientMessage(playeridCorErro"| ERRO | O jogador nгo estб conectado");
    if(
cargoid || cargoid 4) return SendClientMessage(playeridCorErro"| ERRO | O nнvel deve estar entre 1 e 4!");
    
    
PlayerInfo[target][pAdmin] = cargoid;
    
    switch(
PlayerInfo[target][pAdmin])
    {
        case 
1Cargo "Ajudante";
        case 
2Cargo "Moderador(a)";
        case 
3Cargo "Administrador(a)";
        case 
4Cargo "Desenvolvedor(a)";
    }
    
     
format(Str256"| INFO | Vocк promoveu %s para %s."pNomeOriginal[target], Cargo);
    
SendClientMessage(playeridAzulStr);
    
//
    
format(Str256"| INFO | %s promoveu vocк para %s. Parabйns! Digite {00FF00}/acmds{1E90FF} para visualizar seus comandos."pNomeOriginal[playerid], Cargo);
    
SendClientMessage(targetAzulClaroStr);
    
//
    
format(Strsizeof(Str), "AdmCmd: O administrador %s definiu o nнvel de administraзгo de %s para %i."pNomeOriginal[playerid], pNomeOriginal[target], cargoid);
    
//
    
Log("pAdmin/Logs/DarAdmin.ini"Str);
    return 
1;

Reply
#3

Cуdigo de @Whoo, porйm modificado como vc pediu.

Код:
CMD:daradmin(playerid, params[])
{
    new target, cargoid, Cargo[20];
    if(PlayerInfo[playerid][pAdmin] < 4) return SendClientMessage(playerid, CorErro, "| ERRO | Comando invбlido.");
    if(sscanf(params, "ui", target, cargoid)) return SendClientMessage(playerid, Amarelo, "| ATENЗГO | USE: /daradmin [ID/NOME] [NIVEL]");
    if(!IsPlayerConnected(target)) return SendClientMessage(playerid, CorErro, "| ERRO | O jogador nгo estб conectado");
    if(cargoid < 1 || cargoid > 4) return SendClientMessage(playerid, CorErro, "| ERRO | O nнvel deve estar entre 1 e 4!");
    if(PlayerInfo[target][pAdmin] == cargoid) return SendClientMessage(playerid, CorErro, "| ERRO | O jogador jб estб nesse nivel!");
	
    switch(cargoid)
    {
        case 1: Cargo = "Ajudante";
        case 2: Cargo = "Moderador(a)";
        case 3: Cargo = "Administrador(a)";
        case 4: Cargo = "Desenvolvedor(a)";
    }
    
    format(Str, 256, "| INFO | Vocк %s %s para %s.", (cargoid > PlayerInfo[target][pAdmin] ? ("promoveu") : ("rebaixou")), pNomeOriginal[target], Cargo);
    SendClientMessage(playerid, Azul, Str);
	
    format(Str, 256, "| INFO | %s %s vocк para %s. Digite {00FF00}/acmds{1E90FF} para visualizar seus comandos.", (cargoid > PlayerInfo[target][pAdmin] ? ("promoveu") : ("rebaixou")), pNomeOriginal[playerid], Cargo);
    SendClientMessage(target, AzulClaro, Str);
	
    format(Str, sizeof(Str), "AdmCmd: O administrador %s definiu o nнvel de administraзгo de %s para %i.", pNomeOriginal[playerid], pNomeOriginal[target], cargoid);
	
	PlayerInfo[target][pAdmin] = cargoid;
	
    Log("pAdmin/Logs/DarAdmin.ini", Str);
    return 1;
}
Reply
#4

PHP код:
CMD:daradmin(playeridparams[])
{
    new 
Cargo[256];
    if(
PlayerInfo[playerid][pAdmin] < 4)        return SendClientMessage(playeridCorErro"| ERRO | Comando invбlido.");
    if(
sscanf(params"ii"IDNumero))        return SendClientMessage(playeridAmarelo"| ATENЗГO | USE: /daradmin [ID] [NIVEL]");
    if(!
IsPlayerConnected(ID))                    return SendClientMessage(playeridCorErro"| ERRO | O jogador nгo estб conectado");
    if(
Numero || Numero == 0)                return SendClientMessage(playeridCorErro"| ERRO | O nнvel deve estar entre 1 e 4!");
    
    switch(
Numero// sу alterei aqui
    
{
        case 
1Cargo "Ajudante";
        case 
2Cargo "Moderador(a)";
        case 
3Cargo "Administrador(a)";
        case 
4Cargo "Desenvolvedor(a)";
    }
    
format(Str256"| INFO | Vocк promoveu %s para %s."pNomeOriginal[ID], Cargo);
    
SendClientMessage(playeridAzulStr);
    
//
    
format(Str256"| INFO | %s promoveu vocк para %s. Parabйns! Digite {00FF00}/acmds{1E90FF} para visualizar seus comandos."pNomeOriginal[playerid], Cargo);
    
SendClientMessage(IDAzulClaroStr);
    
//
    
format(Strsizeof(Str), "AdmCmd: O administrador %s definiu o nнvel de administraзгo de %s para %i."pNomeOriginal[playerid], pNomeOriginal[ID], Numero);
    
PlayerInfo[ID][pAdmin] = Numero;
    
//
    
Log("pAdmin/Logs/DarAdmin.ini"Str);
    return 
1;

Reply
#5

Obrigado a todos. Apenas troquei o "ui", para "ii". Pois, no meu GM, comandos setados pelo Nick, fica repetindo mensagem.
Obrigado!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)