/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!