Ajuda com dialog (response) - Alfarr Heimrik - 09/07/2024
Código PHP: case DIALOG_COMANDOS: { if(response) { if(listitem == 0) { new Message[5000]; strcat(Message, "Comandos Gerais\n"); strcat(Message, "Comandos Casa\n"); strcat(Message, "Comandos Empresa\n"); strcat(Message, "Comandos Veiculo\n"); strcat(Message, "Procedimentos Roleplay"); ShowPlayerDialog(playerid, DIALOG_COMANDOSPLAYER, DIALOG_STYLE_LIST, "Comandos Player", Message, "Selecionar", "Voltar"); } } return 1; }
case DIALOG_COMANDOSPLAYER: { if(listitem == 0) { if(response) { new Message[5000]; strcat(Message, "Os comandos gerais ainda nao foram definidos"); ShowPlayerDialog(playerid, 5000, DIALOG_STYLE_MSGBOX, "Comandos Gerais", Message, "Visto", "Voltar"); } else { ShowPlayerDialog(playerid, DIALOG_COMANDOS, DIALOG_STYLE_LIST, "Comandos disponiveis para a sua conta", DialogCMDS, "Selecionar", "Fechar"); } return 1; } }
Boa noite. Se possível me ajudem, por favor.
Não estou conseguindo retornar a DIALOG_COMANDOS quando o player clica em "Voltar" na DIALOG_COMANDOSPLAYER. Ao invés de
mostrar a dialog, a função apenas é encerrada.
RE: Ajuda com dialog (response) - Aranha - 09/07/2024
(09/07/2024 00:17)Alfarr Heimrik Escreveu: Código PHP: case DIALOG_COMANDOS: { if(response) { if(listitem == 0) { new Message[5000]; strcat(Message, "Comandos Gerais\n"); strcat(Message, "Comandos Casa\n"); strcat(Message, "Comandos Empresa\n"); strcat(Message, "Comandos Veiculo\n"); strcat(Message, "Procedimentos Roleplay"); ShowPlayerDialog(playerid, DIALOG_COMANDOSPLAYER, DIALOG_STYLE_LIST, "Comandos Player", Message, "Selecionar", "Voltar"); } } return 1; }
case DIALOG_COMANDOSPLAYER: { if(listitem == 0) { if(response) { new Message[5000]; strcat(Message, "Os comandos gerais ainda nao foram definidos"); ShowPlayerDialog(playerid, 5000, DIALOG_STYLE_MSGBOX, "Comandos Gerais", Message, "Visto", "Voltar"); } else { ShowPlayerDialog(playerid, DIALOG_COMANDOS, DIALOG_STYLE_LIST, "Comandos disponiveis para a sua conta", DialogCMDS, "Selecionar", "Fechar"); } return 1; } }
Boa noite. Se possível me ajudem, por favor.
Não estou conseguindo retornar a DIALOG_COMANDOS quando o player clica em "Voltar" na DIALOG_COMANDOSPLAYER. Ao invés de
mostrar a dialog, a função apenas é encerrada. Se eu entendi era isso que precisava?
Código: case DIALOG_COMANDOS:
{
if(response)
{
if(listitem == 0)
{
new Message[5000];
strcat(Message, "Comandos Gerais\n");
strcat(Message, "Comandos Casa\n");
strcat(Message, "Comandos Empresa\n");
strcat(Message, "Comandos Veiculo\n");
strcat(Message, "Procedimentos Roleplay");
ShowPlayerDialog(playerid, DIALOG_COMANDOSPLAYER, DIALOG_STYLE_LIST, "Comandos Player", Message, "Selecionar", "Voltar");
}
}
else
{
ShowPlayerDialog(playerid, DIALOG_COMANDOS, DIALOG_STYLE_LIST, "Comandos disponiveis para a sua conta", DialogCMDS, "Selecionar", "Fechar");
}
return 1;
}
RE: Ajuda com dialog (response) - Alfarr Heimrik - 09/07/2024
(09/07/2024 10:22)Aranha Escreveu: Se eu entendi era isso que precisava?
Código: case DIALOG_COMANDOS:
{
if(response)
{
if(listitem == 0)
{
new Message[5000];
strcat(Message, "Comandos Gerais\n");
strcat(Message, "Comandos Casa\n");
strcat(Message, "Comandos Empresa\n");
strcat(Message, "Comandos Veiculo\n");
strcat(Message, "Procedimentos Roleplay");
ShowPlayerDialog(playerid, DIALOG_COMANDOSPLAYER, DIALOG_STYLE_LIST, "Comandos Player", Message, "Selecionar", "Voltar");
}
}
else
{
ShowPlayerDialog(playerid, DIALOG_COMANDOS, DIALOG_STYLE_LIST, "Comandos disponiveis para a sua conta", DialogCMDS, "Selecionar", "Fechar");
}
return 1;
}
O que estou precisando entender é o seguinte:
Segue o código abaixo com o comentario ( // )
Código PHP: case DIALOG_COMANDOSPLAYER: { if(listitem == 0) { if(response) { new Message[5000]; strcat(Message, "Os comandos gerais ainda nao foram definidos"); ShowPlayerDialog(playerid, 5000, DIALOG_STYLE_MSGBOX, "Comandos Gerais", Message, "Visto", "Voltar"); } else // Aqui não deveria retornar a dialog abaixo, caso o player escolhesse o botão 2? Bem, não está funcionando. O que eu deveria fazer? { ShowPlayerDialog(playerid, DIALOG_COMANDOS, DIALOG_STYLE_LIST, "Comandos disponiveis para a sua conta", DialogCMDS, "Selecionar", "Fechar"); } return 1; } }
No caso, deveria retornar essa dialog aqui:
Código PHP: case DIALOG_COMANDOS: { if(response) { if(listitem == 0) { new Message[5000]; strcat(Message, "Comandos Gerais\n"); strcat(Message, "Comandos Casa\n"); strcat(Message, "Comandos Empresa\n"); strcat(Message, "Comandos Veiculo\n"); strcat(Message, "Procedimentos Roleplay"); ShowPlayerDialog(playerid, DIALOG_COMANDOSPLAYER, DIALOG_STYLE_LIST, "Comandos Player", Message, "Selecionar", "Voltar"); } if(listitem == 1) { new Message[5000]; strcat(Message, "Auxiliar\n"); strcat(Message, "Moderador\n"); strcat(Message, "Administrandor\n"); strcat(Message, "Gerente\n"); strcat(Message, "Diretor\n"); strcat(Message, "Fundador\n"); strcat(Message, "Todos os comandos disponiveis"); ShowPlayerDialog(playerid, DIALOG_COMANDOSADMIN, DIALOG_STYLE_LIST, "Selecione o cargo", Message, "Selecionar", "Voltar"); } if(listitem == 2) { new Message[5000]; strcat(Message, "Nivel 1\n"); strcat(Message, "Nivel 2"); ShowPlayerDialog(playerid, DIALOG_COMANDOSPREMIUM, DIALOG_STYLE_LIST, "Selecione o nivel de seu status premium", Message, "Selecionar", "Voltar"); } } return 1; }
Comando:
Código PHP: CMD:comandos(playerid, params[]) return I-HRP:cmds(playerid,params); CMD:cmds(playerid, params[]) { DialogCMDS[0] = EOS; strcat(DialogCMDS, "Comandos Player\n"); if(Player[playerid][pAdmin] > 0) strcat(DialogCMDS, "Comandos Admin\n"); if(Player[playerid][pPremium] > 0) strcat(DialogCMDS, "Comandos Premium"); ShowPlayerDialog(playerid, DIALOG_COMANDOS, DIALOG_STYLE_LIST, "Comandos disponiveis para a sua conta", DialogCMDS, "Selecionar", "Fechar"); return 1; }
RE: Ajuda com dialog (response) - xbruno1000x - 09/07/2024
Só pra você entender a estrutura de uma dialog:
Código: case DIALOG_COMANDOSPLAYER:
{
if(response)
{
if(listitem == 0)
{
new Message[5000];
strcat(Message, "Os comandos gerais ainda nao foram definidos");
ShowPlayerDialog(playerid, 5000, DIALOG_STYLE_MSGBOX, "Comandos Gerais", Message, "Visto", "Voltar");
}
} else {
return ShowPlayerDialog(playerid, DIALOG_COMANDOS, DIALOG_STYLE_LIST, "Comandos disponiveis para a sua conta", DialogCMDS, "Selecionar", "Fechar");
}
}
Primeiro você precisa testar se houve resposta, para depois verificar o listitem. Se não houve resposta, não vai ter nenhum listitem selecionado.
Segundo que a else precisaria ser uma alternativa para resposta. Senão houver resposta, acontecerá coisa x. Você havia colocado uma else para o listitem.
E por último, é provável que a dialog não retorne nada se a variavel DialogCMDS estiver vazia. Pelo menos nesse trecho de código você não fez nada para preenche-la.
RE: Ajuda com dialog (response) - Alfarr Heimrik - 11/07/2024
(09/07/2024 21:57)xbruno1000x Escreveu: Só pra você entender a estrutura de uma dialog:
Código: case DIALOG_COMANDOSPLAYER:
{
if(response)
{
if(listitem == 0)
{
new Message[5000];
strcat(Message, "Os comandos gerais ainda nao foram definidos");
ShowPlayerDialog(playerid, 5000, DIALOG_STYLE_MSGBOX, "Comandos Gerais", Message, "Visto", "Voltar");
}
} else {
return ShowPlayerDialog(playerid, DIALOG_COMANDOS, DIALOG_STYLE_LIST, "Comandos disponiveis para a sua conta", DialogCMDS, "Selecionar", "Fechar");
}
}
Primeiro você precisa testar se houve resposta, para depois verificar o listitem. Se não houve resposta, não vai ter nenhum listitem selecionado.
Segundo que a else precisaria ser uma alternativa para resposta. Senão houver resposta, acontecerá coisa x. Você havia colocado uma else para o listitem.
E por último, é provável que a dialog não retorne nada se a variavel DialogCMDS estiver vazia. Pelo menos nesse trecho de código você não fez nada para preenche-la.
Consegui entender onde eu estava errando e consegui resolver.
Obrigado
|