Portal SAMP
[Ajuda] dialog fechando - 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] dialog fechando (/showthread.php?tid=4959)



dialog fechando - fear - 21/01/2025

boa tarde eu estou tentando colocar com que quando eu seleciono a dialog para escolher a profissao ex: policial ou bandido e clica no VOLTAR da dialog e ela retorne para o dialog principal de esocolhas

tentei fazer assim e nao foi.

Código PHP:
        if(response)
        {

            switch(
listitem)
            {
                

                case 
0:
                {
                    
ShowPlayerDialog(playerid,DIALOG_PMVSLADRAO,DIALOG_STYLE_LIST,"{FFF000}ESCOLHA A OPCAO DESEJADA:","Quero ser: {1E90FF}Policial\n{FFFFFF}Quero ser: {FF0000}Bandido\n","Selecionar","Voltar");
                    }else{
                    new 
string[300];
                    
ShowPlayerDialog(playerid,DIALOG_MODOS,DIALOG_STYLE_TABLIST_HEADERS,"{DCDCDC}ZonePerfect {FFFFFF}- Mundos",string,"Selecionar","-");

                } 



RE: dialog fechando - BitSain - 21/01/2025

Preste atenção na abertura e fechamento de chaves!

Inclusive, isso é um erro:
Código PHP:
// Erro
switch(...) {
    case 
0: {
    }
    else { 
// aqui seria default, não else. (Explicação abaixo)
    
}
}

// Nenhum Erro
switch(...) {
    case 
0: {
    }
    default: { 
// O default é executado somente se nenhuma das condições nos case for satisfeita.
    
}

-- default é exclusivo do switch, o else é exclusivo do if.

* Código corrigido:
Código PHP:
if(response) {
    switch(
listitem) {
        case 
0: {
            
ShowPlayerDialog(playeridDIALOG_PMVSLADRAODIALOG_STYLE_LIST"{FFF000}ESCOLHA A OPÇÃO DESEJADA:""Quero ser: {1E90FF}Policial\n{FFFFFF}Quero ser: {FF0000}Bandido\n""Selecionar""Voltar");
        }
    }
} else {
    new 
string[300];
    
ShowPlayerDialog(playeridDIALOG_MODOSDIALOG_STYLE_TABLIST_HEADERS"{DCDCDC}ZonePerfect {FFFFFF}- Mundos"string"Selecionar""-");




RE: dialog fechando - fear - 21/01/2025

(8 horas atrás)BitSain Escreveu: Preste atenção na abertura e fechamento de chaves!

Inclusive, isso é um erro:
Código PHP:
// Erro
switch(...) {
    case 
0: {
    }
    else { 
// aqui seria default, não else. (Explicação abaixo)
    
}
}

// Nenhum Erro
switch(...) {
    case 
0: {
    }
    default: { 
// O default é executado somente se nenhuma das condições nos case for satisfeita.
    
}

-- default é exclusivo do switch, o else é exclusivo do if.

* Código corrigido:
Código PHP:
if(response) {
    switch(
listitem) {
        case 
0: {
            
ShowPlayerDialog(playeridDIALOG_PMVSLADRAODIALOG_STYLE_LIST"{FFF000}ESCOLHA A OPÇÃO DESEJADA:""Quero ser: {1E90FF}Policial\n{FFFFFF}Quero ser: {FF0000}Bandido\n""Selecionar""Voltar");
        }
    }
} else {
    new 
string[300];
    
ShowPlayerDialog(playeridDIALOG_MODOSDIALOG_STYLE_TABLIST_HEADERS"{DCDCDC}ZonePerfect {FFFFFF}- Mundos"string"Selecionar""-");


nnao entendi.. tu usou else no codigo corrigido.. da um monte de erro.. nao seria o default como tu falo?


RE: dialog fechando - BitSain - 21/01/2025

No código que você mencionou no início do tópico, a utilização de else está incorreta no contexto de um switch.. O else é usado com if, enquanto o switch deve usar default para o caso em que nenhuma das opções dos case é satisfeita, como eu disse anteriormente.
No código corrigido, o switch está utilizando corretamente o default. O else é utilizado apenas com if, não com switch.
Não se põe else abaixo do case, do jeito que você fez originalmente.

Edit:
Mas, se deu erros.. Quais erros? Como você está implementando este código?