Portal SAMP
[Ajuda] Problema com resposta do dialog - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Problema com resposta do dialog (/showthread.php?tid=1061)



Problema com resposta do dialog - SvCross. - 10/04/2021

Código:
CMD:creditos(playerid, params[])
{
        new string[700];
        strins(string, "{FFFFFF}  a\n", strlen(string));
        strins(string, " \n", strlen(string));
        strins(string, "{104E8B}» a\", strlen(string));
        strins(string, "{FFFFFF}  a\n", strlen(string));
        strins(string, " \n", strlen(string));
        strins(string, "{104E8B}» a\n", strlen(string));
        strins(string, "{FFFFFF}  * \n", strlen(string));
        strins(string, "{FFFFFF}  * \n", strlen(string));
        strins(string, "{FFFFFF}  * \n", strlen(string));
        strins(string, "{FFFFFF}  * \n", strlen(string));
        strins(string, "  \n", strlen(string));
        strins(string, "{104E8B}» \n", strlen(string));
        strins(string, "{FFFFFF}  a\n", strlen(string));
        strins(string, "\n", strlen(string));
        strins(string, "{FFFFFF} a\n", strlen(string));
        strins(string, "{FFFFFF}  a®", strlen(string));
        return ShowPlayerDialog(playerid, DIALOG_CREDITOS, DIALOG_STYLE_MSGBOX, "{104E8B}# {FFFFFF}Créditos do servidor:", string, "Ok", "");
}

Estou com um problema, meu dialog DIALOG_CREDITOS está retornando errado, ao clicar no botão 1(Ok), ele saí normalmente, porém, ao pressionar ESC, ele está retornando outro dialog, o DIALOG_MCOMANDOS, help. 

Código:
    if (dialogid == DIALOG_MCOMANDOS) // DIALOG 4
    {
           if(response)
         {
            switch(listitem)
            {
                case 0:
                {
                    ShowPlayerDialog(playerid, DIALOG_CMDGERAIS, DIALOG_STYLE_TABLIST, "# Comandos gerais do servidor:",
                    "/creditos\t \tMostra os créditos do servidor\n\
                    /hud\t \tManejo das textdraws do servidor\n\
                    /clima\t \tAltera o clima próprio do servidor",
                    "Cancelar", "Voltar");
                }
                case 1:
                {
                    ShowPlayerDialog(playerid, DIALOG_CMDPROF, DIALOG_STYLE_TABLIST, "# Comandos da profissão:",
                    "/trabalhar\t \tInicia um trabalho\n\
                    /comboio\t \tInicia um comboio\n\
                    /resgate\t \tRetorna à base da profissão",
                    "Cancelar", "Voltar");
                }
                case 2:
                {
                    ShowPlayerDialog(playerid, DIALOG_CMDVIP, DIALOG_STYLE_TABLIST, "# Comandos VIPS:",
                    "/reparar\t \tRepara um veículo\n\
                    /nos\t \tAdiciona nitro em um veículo\n\
                    /savepos\t \tSalva sua posição em um local",
                    "Cancelar", "Voltar");
                }     
            }
         }
        return 0;
    }

    if (dialogid == DIALOG_CMDGERAIS || DIALOG_CMDPROF || DIALOG_CMDVIP) // RESPONSE DIALOGS 5, 6 E 7
    {
        if(!response)
        {
            ShowPlayerDialog(playerid, DIALOG_MCOMANDOS, DIALOG_STYLE_LIST, "Comandos do servidor:", "Comandos gerais\nComandos da profissão\nComandos VIPS", "Ok", "Cancelar");
        }
        else
            return 0;
    }

    return 0;
}

Separo os dialogs por um enum, não há interferência entre eles.


RE: Problema com resposta do dialog - k2bi_YT - 10/04/2021

Teste ae amigo. apenas corrigi uns return e o uso do dialogid.

Código PHP:
if (dialogid == DIALOG_MCOMANDOS// DIALOG 4
    
{
           if(
response)
         {
            switch(
listitem)
            {
                case 
0:
                {
                    
ShowPlayerDialog(playeridDIALOG_CMDGERAISDIALOG_STYLE_TABLIST"# Comandos gerais do servidor:",
                    
"/creditos\t \tMostra os créditos do servidor\n\
                    /hud\t \tManejo das textdraws do servidor\n\
                    /clima\t \tAltera o clima próprio do servidor"
,
                    
"Cancelar""Voltar");
                    return 
1;
                }
                case 
1:
                {
                    
ShowPlayerDialog(playeridDIALOG_CMDPROFDIALOG_STYLE_TABLIST"# Comandos da profissão:",
                    
"/trabalhar\t \tInicia um trabalho\n\
                    /comboio\t \tInicia um comboio\n\
                    /resgate\t \tRetorna à base da profissão"
,
                    
"Cancelar""Voltar");
                    return 
1;
                }
                case 
2:
                {
                    
ShowPlayerDialog(playeridDIALOG_CMDVIPDIALOG_STYLE_TABLIST"# Comandos VIPS:",
                    
"/reparar\t \tRepara um veículo\n\
                    /nos\t \tAdiciona nitro em um veículo\n\
                    /savepos\t \tSalva sua posição em um local"
,
                    
"Cancelar""Voltar");
                    return 
1;
                }     
            }
         }
        return 
1;
    }

    if (
dialogid == DIALOG_CMDGERAIS || dialogid == DIALOG_CMDPROF || dialogid == DIALOG_CMDVIP// RESPONSE DIALOGS 5, 6 E 7
    
{
        if(!
response)
        {
            
ShowPlayerDialog(playeridDIALOG_MCOMANDOSDIALOG_STYLE_LIST"Comandos do servidor:""Comandos gerais\nComandos da profissão\nComandos VIPS""Ok""Cancelar");
        }
        else
            return 
1;
    }

    return 
1;




RE: Problema com resposta do dialog - SvCross. - 10/04/2021

Tudo certo agora, valeu!