27.10.2015, 20:08
Na primeira verificaзгo vocк eta vendo se o jogador clicou no botгo 1.
Caso o jogador clicar no botгo 1, vai verificar qual dialogo esta mostrando para ele, caso o jogador esteja vendo o dialogo id 1, vocк fez um verificaзгo em qual item da lista ele escolheu. Caso ele tenha escolhido o item 0, vocк mandou mostrar um dialogo do estilo INPUT com o id 11 e logo abaixo verificou se o id do dialogo 11.
Nesse caso ao vocк mandar mostrar o dialog com o id 11 a callback OnDialogResponse vai ser chamada novamente.
Agora que entra uma parte do seu problema, como a variavel dialogid vai estar com o valor 11 se vocк verificou anteriormente se ele estava com o valor 1?
Sу iria ser executado essa parte do cуdigo se o valor da variбvel dialogid estiver com o valor 1 e nгo 11.
E ainda dentro da verificaзгo que vocк fez se o dialogid for igual a 11, vocк verificou se o jogador clicou no botгo 2, e caso ele tenha clicado no botгo 2 ele mostra o dialogo do registro. Como ele vai executar o dialogo do registro se sу vai chegar nessa parte do cуdigo caso ele tenha clicado no botгo 1 que vocк fez a verificaзгo anteriormente?
O seu cуdigo estб errado nas verificaзхes, verifique primeiramente o id do dialogo, depois o response ou o listitem depende do que estiver fazendo.
Exemplo:
Caso o jogador clicar no botгo 1, vai verificar qual dialogo esta mostrando para ele, caso o jogador esteja vendo o dialogo id 1, vocк fez um verificaзгo em qual item da lista ele escolheu. Caso ele tenha escolhido o item 0, vocк mandou mostrar um dialogo do estilo INPUT com o id 11 e logo abaixo verificou se o id do dialogo 11.
Nesse caso ao vocк mandar mostrar o dialog com o id 11 a callback OnDialogResponse vai ser chamada novamente.
Agora que entra uma parte do seu problema, como a variavel dialogid vai estar com o valor 11 se vocк verificou anteriormente se ele estava com o valor 1?
Sу iria ser executado essa parte do cуdigo se o valor da variбvel dialogid estiver com o valor 1 e nгo 11.
E ainda dentro da verificaзгo que vocк fez se o dialogid for igual a 11, vocк verificou se o jogador clicou no botгo 2, e caso ele tenha clicado no botгo 2 ele mostra o dialogo do registro. Como ele vai executar o dialogo do registro se sу vai chegar nessa parte do cуdigo caso ele tenha clicado no botгo 1 que vocк fez a verificaзгo anteriormente?
PHP код:
if(response) // caso tenha clicado no botгo 1
{
switch(dialogid)
{
case 1: // caso o dialogid for igual a 1
{
switch(listitem)
{
case 0: caso ele tenha escolhido o item id 0 da lista
{
ShowPlayerDialog(playerid, 11, DIALOG_STYLE_INPUT, "Login","Bem Vindo ao Servidor\nDigite sua senha para poder continuar","Confirmar","Cancelar");
if(dialogid == 11) // caso o dialogid for igual a 11
{
if(!response) // caso ele tenha clicado no botгo 2
{
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_LIST, "Bem Vindo ao Servidor", "Login\nRegistro\nSair", "Abrir", "Fechar");
return 1;
}
if(response) // caso ele tenha clicado no botгo 1
{
SpawnPlayer(Playerid);
}
}
}
}
}
}
}
Exemplo:
PHP код:
switch(dialogid)
{
case 1: //caso esteja vendo o dialogid 1
{
if(response) // caso tenha clicado no botгo 1
{
switch(listitem)
{
case 0: // caso esteja escolhido a primeira opзгo da lista
{
// cуdigo
}
}
}
}
}