Bug en Dialog
#1

Bug en dialog
Bueno, pues tengo un bug extraсo en un dialog al responderlo.

Son un par de preguntas en un dialog, y va cambiando las preguntas y las respuestas al ir contestando, pero al momento de contestar uno de ellos, solo cambia la pregunta y las respuestas (List Item) quedan igual al anterior.

CODIGO
Код:
case (VUELO2):
	    {
	        if(!response) return ShowPlayerDialog(playerid, VUELO2, DIALOG_STYLE_LIST, "їSe puede utilizar telefonos moviles durante un vuelo?", "Claro, no pasa nada\nNo interfiere con los equipos del avion\nSi, pero debe ser mediante satelite", "Siguiente", "");
	        if(response)
	        {
	            if(listitem == 0 || 2)
	            {
	                ShowPlayerDialog(playerid, VUELO3, DIALOG_STYLE_LIST, "їPuede un rayo destruir tu avion?", "No, la electricidad se diluye\nSi, KA-BOOM\nSi, nada como el poder de Zeus", "Siguiente", "");
	            }
	            if(listitem == 1)
	            {
	                ShowPlayerDialog(playerid, VUELO3, DIALOG_STYLE_LIST, "їPuede un rayo destruir tu avion?", "No, la electricidad se diluye\nSi, KA-BOOM\nSi, nada como el poder de Zeus", "Siguiente", "");
	                RespuestasCorrectas[playerid] += 1;
				}
	        }
	    }
	    
	    case (VUELO3):
	    {
	        if(!response) return ShowPlayerDialog(playerid, VUELO3, DIALOG_STYLE_LIST, "їPuede un rayo destruir tu avion?", "No, la electricidad se diluye\nSi, KA-BOOM\nSi, nada como el poder de Zeus", "Siguiente", "");
	        if(response)
	        {
	            if(listitem == 0)
	            {
	                ShowPlayerDialog(playerid, DIALOG_STYLE_LIST, VUELO4, "їCuantos motores como maximo tiene un avion?", "Test\nTest\nTest", "Siguiente", "");
	                RespuestasCorrectas[playerid] += 1;
	            }
	            if(listitem == 1 || 2)
	            {
	                ShowPlayerDialog(playerid, DIALOG_STYLE_LIST, VUELO4, "їCuantos motores como maximo tiene un avion?", "Test\nTest\nTest", "Siguiente", "");
	            }
	        }
	    }
	    
	    case (VUELO4):
	    {
	        if(!response) return ShowPlayerDialog(playerid, DIALOG_STYLE_LIST, VUELO4,"їCuantos motores como maximo tiene un avion?", "2\n8\n1", "Siguiente", "");
	        if(response)
	        {
	            if(listitem == 0)
	            {
	                ShowPlayerDialog(playerid, DIALOG_STYLE_LIST, VUELO5, "їPara que es la caja negra?", "Para registrar lo ocurrido en caso de un accidente\nPara guardar cervezas y licores\nPara decorar", "Siguiente", "");
	                RespuestasCorrectas[playerid] += 1;
	            }
	            if(listitem == 1 || 2)
	            {
	                ShowPlayerDialog(playerid, DIALOG_STYLE_LIST, VUELO5, "їPara que es la caja negra?", "Para registrar lo ocurrido en caso de un accidente\nPara guardar cervezas y licores\nPara decorar", "Siguiente", "");
	            }
	        }
	    }
Cuando estoy en el Dialog que pregunta: "їPuede un rayo destruir tu avion?", cualquier opcion que eligo, hace que pase al otro dialog, pero solo cambia la Respuesta o.O

IMAGEN
http://i.imgur.com/cwEcPbt.png

He intentado varias cosas, pensй que podнan ser algun filterscript que estй confundiendo las ID's de los dialogs, pero eso no es, tambien he probado como 3 o 4 veces a cambiar los ID's por si acaso, y nada.

Alguna idea? Gracias.
Reply
#2

Creo que usas mal listitem:

pawn Код:
case (VUELO2):
{
    if(!response) return ShowPlayerDialog(playerid, VUELO2, DIALOG_STYLE_LIST, "їSe puede utilizar telefonos moviles durante un vuelo?", "Claro, no pasa nada\nNo interfiere con los equipos del avion\nSi, pero debe ser mediante satelite", "Siguiente", "");
    switch(listitem)
    {
        case 0,2:       {   ShowPlayerDialog(playerid, VUELO3, DIALOG_STYLE_LIST, "їPuede un rayo destruir tu avion?", "No, la electricidad se diluye\nSi, KA-BOOM\nSi, nada como el poder de Zeus", "Siguiente", "");}
        case 1:         {   ShowPlayerDialog(playerid, VUELO3, DIALOG_STYLE_LIST, "їPuede un rayo destruir tu avion?", "No, la electricidad se diluye\nSi, KA-BOOM\nSi, nada como el poder de Zeus", "Siguiente", "");  RespuestasCorrectas[playerid] += 1;        }
    }
}

case (VUELO3):
{
    if(!response) return ShowPlayerDialog(playerid, VUELO3, DIALOG_STYLE_LIST, "їPuede un rayo destruir tu avion?", "No, la electricidad se diluye\nSi, KA-BOOM\nSi, nada como el poder de Zeus", "Siguiente", "");
    switch(listitem)
    {
        case 0:     {   ShowPlayerDialog(playerid, DIALOG_STYLE_LIST, VUELO4, "їCuantos motores como maximo tiene un avion?", "Test\nTest\nTest", "Siguiente", "");RespuestasCorrectas[playerid] += 1;          }
        case 1,2:   {   ShowPlayerDialog(playerid, DIALOG_STYLE_LIST, VUELO4, "їCuantos motores como maximo tiene un avion?", "Test\nTest\nTest", "Siguiente", "");     }
    }
}

case (VUELO4):
{
    if(!response) return ShowPlayerDialog(playerid, DIALOG_STYLE_LIST, VUELO4,"їCuantos motores como maximo tiene un avion?", "2\n8\n1", "Siguiente", "");
    switch(listitem)
    {
    case 0:
    {
        ShowPlayerDialog(playerid, DIALOG_STYLE_LIST, VUELO5, "їPara que es la caja negra?", "Para registrar lo ocurrido en caso de un accidente\nPara guardar cervezas y licores\nPara decorar", "Siguiente", "");
        RespuestasCorrectas[playerid] += 1;
    }
    case 1,2:       {     ShowPlayerDialog(playerid, DIALOG_STYLE_LIST, VUELO5, "їPara que es la caja negra?", "Para registrar lo ocurrido en caso de un accidente\nPara guardar cervezas y licores\nPara decorar", "Siguiente", "");   }
    }
}
Prueba asн, si te funciona busca tu error.
Reply
#3

Hmm, sigue dando el mismo resultado.
Reply
#4

LOL. Encontrй el error.

Los parбmetros del Estilo del Dialog y el Dialog ID, estбn al revйs.

LOL LOL

[ame]http://www.youtube.com/watch?v=sTSA_sWGM44[/ame]
Reply
#5

LoL jajajajajaja LoL LoL

[ame="http://www.youtube.com/watch?v=YUBAiMV_lX8"]*******:[/ame]
Reply
#6

pawn Код:
if(listitem == 0 || 2)
Esa condiciуn siempre se cumpliria...
Reply
#7

no es un bug, lo estas usando mal. xD

https://sampwiki.blast.hk/wiki/OnDialogResponse_ES
pawn Код:
case ID_DIALOG:{ //id del dialog
    if(response){ //si presionas el primer boton
        switch(listitem){//los items del dialog
            case 5..10: //item del 5 al 10
            {//tu funcion}
            case 5,10: //item del 5 o 10
            {//tu funcion}
            case 5: //unicamente el item 5
            {//tu funcion}
            default: //ningun item
            {//tu funcion}
        }
    }else{//si presionas el segundo boton o ESC
    //tu funcion
    }
}
Reply
#8

Quote:
Originally Posted by OTACON
Посмотреть сообщение
no es un bug, lo estas usando mal. xD

https://sampwiki.blast.hk/wiki/OnDialogResponse_ES
pawn Код:
case ID_DIALOG:{ //id del dialog
    if(response){ //si presionas el primer boton
        switch(listitem){//los items del dialog
            case 5..10: //item del 5 al 10
            {//tu funcion}
            case 5,10: //item del 5 o 10
            {//tu funcion}
            case 5: //unicamente el item 5
            {//tu funcion}
            default: //ningun item
            {//tu funcion}
        }
    }else{//si presionas el segundo boton o ESC
    //tu funcion
    }
}
Por favor otacon, la sentencia de los listitem estaba bien puesta, usar switch es solo para optimizar. El error ya lo encontrй y era demasiado tonto xD.

Pero, para que no se confundan los nuevos, usar switch no es necesario.

La misma wiki de SA:MP usa la misma sentencia que yo: https://sampwiki.blast.hk/wiki/OnDialogResponse_ES
Reply
#9

Quote:
Originally Posted by CrossOv3r
Посмотреть сообщение
Por favor otacon, la sentencia de los listitem estaba bien puesta, usar switch es solo para optimizar. El error ya lo encontrй y era demasiado tonto xD.

Pero, para que no se confundan los nuevos, usar switch no es necesario.

La misma wiki de SA:MP usa la misma sentencia que yo: https://sampwiki.blast.hk/wiki/OnDialogResponse_ES
¬¬, la wiki usa el mismo metodo ke tu? O_O mira otra vez y mira el mio, el mio es el segundo ejemplo LOL XD.

y cual fue tu error...
puede servirle a otro la solucion.
Reply
#10

Quote:
Originally Posted by CrossOv3r
Посмотреть сообщение
Por favor otacon, la sentencia de los listitem estaba bien puesta
No esta bien, un if se cumple si la condiciуn es verdadera y una condiciуn verdadera es cualquier valor diferente de 0 por lo tanto poner if(listitem == 1 || 2) siempre se cumpliria, es mбs el pawno te deberia de dar una advertencia por colocar un valor constante.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)