SA-MP Forums Archive
[Ajuda] /DarAdmin nгo aparece o cargo correto - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] /DarAdmin nгo aparece o cargo correto (/showthread.php?tid=621395)



/DarAdmin nгo aparece o cargo correto - Psicotico - 10.11.2016

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;
}



Re: /DarAdmin nгo aparece o cargo correto - Whoo - 10.11.2016

Vocк tem que setar o cargo antes de verificar em que cargo ele esta..
PHP код:
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!");
    
    
PlayerInfo[target][pAdmin] = cargoid;
    
    switch(
PlayerInfo[target][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[target], 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(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);
    
//
    
Log("pAdmin/Logs/DarAdmin.ini", Str);
    return 
1;
} 



Re: /DarAdmin nгo aparece o cargo correto - F1N4L - 10.11.2016

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;
}



Respuesta: /DarAdmin nгo aparece o cargo correto - SammyJ - 10.11.2016

PHP код:
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(
Numero) // sу alterei aqui
    
{
        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;
} 



Re: /DarAdmin nгo aparece o cargo correto - Psicotico - 10.11.2016

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