[Ajuda]Dialog Bugado
#1

й o seguinte o bug й assim: todos os comandos existem mais nгo ta equipando se tiver algo errado й no dialog:

pawn Код:
if(dialogid == 17)
    {
        if(response == 1)
        {
            if(listitem == 1)
            {
                OnPlayerCommandText(playerid,"/equipar");
                return true;
            }
            if(listitem == 2)
            {
                OnPlayerCommandText(playerid,"/equipar2");
                return true;
            }
            if(listitem == 3)
            {
                OnPlayerCommandText(playerid,"/equipar3");
                return true;
            }
            if(listitem == 4)
            {
                OnPlayerCommandText(playerid,"/equipar4");
                return true;
            }
            if(listitem == 5)
            {
                OnPlayerCommandText(playerid,"/equipar5");
                return true;
            }
            if(listitem == 6)
            {
                OnPlayerCommandText(playerid,"/equipar6");
                return true;
            }
            if(listitem == 7)
            {
                ShowPlayerDialog(playerid, 12, DIALOG_STYLE_LIST, "Info HQ", "Lista de Membros\nAdministrar Membros\nAdministrar Gang/Org\nInformaзхes\nArmas e Drogas\nEquipar", "Confirmar", "Cancelar");
                return true;
            }
        }
        return 1;
    }
Reply
#2

pawn Код:
if(dialogid == 17)
    {
            if(listitem == 1)
            {
                OnPlayerCommandText(playerid,"/equipar");
                return true;
            }
            if(listitem == 2)
            {
                OnPlayerCommandText(playerid,"/equipar2");
                return true;
            }
            if(listitem == 3)
            {
                OnPlayerCommandText(playerid,"/equipar3");
                return true;
            }
            if(listitem == 4)
            {
                OnPlayerCommandText(playerid,"/equipar4");
                return true;
            }
            if(listitem == 5)
            {
                OnPlayerCommandText(playerid,"/equipar5");
                return true;
            }
            if(listitem == 6)
            {
                OnPlayerCommandText(playerid,"/equipar6");
                return true;
            }
            if(listitem == 7)
            {
                ShowPlayerDialog(playerid, 12, DIALOG_STYLE_LIST, "Info HQ", "Lista de Membros\nAdministrar Membros\nAdministrar Gang/Org\nInformaзхes\nArmas e Drogas\nEquipar", "Confirmar", "Cancelar");
                return true;
            }
        return 1;
    }
Reply
#3

Nгo sei se foi intencional, mas a variбvel listitem adquire valor 0 quando o primeiro item de um dialog do tipo DIALOG_STYLE_LIST й escolhido, nгo 1 .



Levando em conta que isso foi um erro, troque seu cуdigo por este :


pawn Код:
if(dialogid == 17)
    {
        if(response)
        {
            if(listitem >= 0 && listitem <= 5)
            {
                new Equipar[10] = "/equipar", Qual[2];
                valstr(Qual, listitem + 1);
                listitem && strcat(Equipar, Qual);
                CallRemoteFunction("OnPlayerCommandText", "ds", playerid, Equipar);
            }
            if(listitem == 6)
            {
                ShowPlayerDialog(playerid, 12, DIALOG_STYLE_LIST, "Info HQ", "Lista de Membros\nAdministrar Membros\nAdministrar Gang/Org\nInformaзхes\nArmas e Drogas\nEquipar", "Confirmar", "Cancelar");
            }
        }
        return 0;
    }


Espero ter ajudado .
Reply
#4

rj eu n antendi esse codigo acima.
Reply
#5

Quote:
Originally Posted by Matheus_Ecko
Посмотреть сообщение
rj eu n antendi esse codigo acima.
Leia estas explicaзхes :


pawn Код:
if(dialogid == 17) //Se o dialog no qual o jogador escolheu um item tiver ID igual a 17, o cуdigo dentro do prуximo par de chaves й lido.
    {
        if(response) //Se o jogador tiver clicado no botгo esquerdo do dialog, o cуdigo dentro do prуximo par de chaves й lido.
        {
            if(listitem >= 0 && listitem <= 5) //Se o jogador tiver escolhido um item do primeiro ao sexto, o cуdigo dentro do prуximo par de chaves й lido.
            {
                new Equipar[10] = "/equipar", Qual[2]; //Cria a variбvel array "Equipar", contendo a string "/equipar", e a array "Qual".
                valstr(Qual, listitem + 1); //Transforma o valor de (listitem + 1) em string e armazena o resultado em "Qual". O valor dentro dela valeria "2" por exemplo, se o jogador tiver escolhido o segundo item do dialog (que tem listitem igual a 1).
                listitem && strcat(Equipar, Qual); //Se listitem for diferente de 0 (pois nгo existe /equipar1), une-se o conteъdo das variбveis "Equipar" e "Qual", ficando o resultado dentro de "Equipar". Isso geraria /equipar2 se listitem fosse igual a 1, /equipar3 se listitem fosse igual a 2, etc.
                CallRemoteFunction("OnPlayerCommandText", "ds", playerid, Equipar); //Chama a callback OnPlayerCommandText passando ao primeiro e segundo parвmetro da mesma, as variбveis "playerid" e "Equipar", respectivamente.
            }
            if(listitem == 6) //Se o jogador tiver escolhido o sйtimo item do dialog.
            {
                ShowPlayerDialog(playerid, 12, DIALOG_STYLE_LIST, "Info HQ", "Lista de Membros\nAdministrar Membros\nAdministrar Gang/Org\nInformaзхes\nArmas e Drogas\nEquipar", "Confirmar", "Cancelar"); //Um dialog й mostrado a ele.
            }
        }
        return 0; //Para a execuзгo do OnDialogResponse.
    }


Espero ter ajudado .
Reply
#6

VLW Rjj +rep para tu meu camarada.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)