07/07/2024 03:12
(Esta mensagem foi modificada pela última vez a: 07/07/2024 03:14 por xbruno1000x.)
(06/07/2024 10:52)Alfarr Heimrik Escreveu: Bom dia.
Perdão, mas eu fiz a postagem em um local indevido? Esta não é a área de suporte sa-mp? Foi criado uma área especifica para mobile?
Sobre o código, o seu funcionou. Poderia me explicar o porquê? Seria por eu não ter verificado se há player admin ou foi outra coisa?
Antes mostrava meu nome como admin, só não mostrava qual cargo eu ocupava, agora está OK.
É que nós temos uma área de suporte mobile, que é especifica para problemas exclusivos do client mobile. Fica mais organizado para quem busca soluções para problemas que estão ocorrendo apenas no celular. Mas não tem problema, já movi para a área de suporte geral e está tudo certo.
Sobre o seu problema:
Você criou um looping que passava por todos os jogadores do servidor e colocou um switch para pegar o nome cargo do admin. Porém, sem a verificação se esses jogadores do looping eram admins, você estaria listando o servidor todo dentro da dialog. Por ter colocado um switch com case 0, provavelmente todos os jogadores que não eram admins seriam mostrados como "Ajudante".
Inseri a documentação e a explicação de cada ponto do que eu fiz no código, segue abaixo:
Código:
/*
* CMD:admins(playerid)
*
* Exibe uma lista de administradores atualmente online, mostrando seus nomes e cargos.
* Se nenhum administrador estiver online, uma mensagem informando isso será exibida.
*
* Parameters:
* playerid - O ID do jogador que chamou o comando.
*
* Returns:
* true - Indica que o comando foi executado com sucesso.
*/
CMD:admins(playerid)
{
// Declaração de variáveis
new AdminClass[32], Message[4096];
// Loop através de todos os jogadores online
foreach(new i: Player)
{
// Verifica se o jogador é administrador
if (Player[i][pAdmin] > 0) // Verifica se o jogador é admin
{
// Determina o cargo do administrador baseado no nível
switch(Player[i][pAdmin])
{
case 1: { AdminClass = "Ajudante"; } // Nível 1 - Ajudante
case 2: { AdminClass = "Moderador"; } // Nível 2 - Moderador
case 3: { AdminClass = "Administrador"; } // Nível 3 - Administrador
case 4: { AdminClass = "Gerente"; } // Nível 4 - Gerente
case 5: { AdminClass = "Diretor"; } // Nível 5 - Diretor
case 6: { AdminClass = "Fundador"; } // Nível 6 - Fundador
default: { AdminClass = "Desconhecido"; } // Qualquer outro nível - Desconhecido
}
// Formata a mensagem com o nome do administrador e seu cargo
format(Message, sizeof(Message), "Admin: %s | Cargo: %s \n", pName(i), AdminClass);
}
}
// Se não houver nenhum administrador online, adiciona uma mensagem informando isso
if (strlen(Message) == 0)
{
strcat(Message, "Nenhum administrador online.");
}
// Exibe o diálogo para o jogador
ShowPlayerDialog(playerid, 5000, DIALOG_STYLE_TABLIST_HEADERS, "Admins online", Message, "Visto", "");
return true;
}
Discente de Sistemas de Informação no Centro Federal de Ensino Tecnológico(CEFET/RJ)
Programador SA-MP desde 2012
Programador SA-MP desde 2012
Não envie dúvidas por inbox, crie um tópico. Sua dúvida pode ser a dúvida de outro alguém, e seu tópico ajudará outras pessoas no futuro.