[AYUDA]Dialogos
#1

Hola, Bueno, estoy viendo tutos y manuales para aprender muy bien de pawno...

Bueno, pasa de que estaba practicando creando diбlogos, lo hice bien, pero me quedo una duda

Como hago para cuando le de en cancelar, se cierre el cuadro y no seleccione una opciуn

Aquн les dejo el cуdigo de lo que hice:

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])

if(strcmp(cmd, "/traje", true) == 0) {
      ShowPlayerDialog(playerid, 0, DIALOG_STYLE_LIST, "Traje de trabajo", "Traje I\nTraje II\nTraje III\nTraje VI", "Colocar", "Cancelar");
      return 1;
   }
   return 0;
   }
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

{

if(dialogid == 0)
{
   
   switch(listitem)
   {
   case 0:{
   SendClientMessage(playerid, COLOR_YELLOW, "Te Has Colocado el Traje I");
   SetPlayerSkin(playerid, 61);
   }

   case 1:{
   SendClientMessage(playerid, COLOR_YELLOW, "Te Has Colocado el Traje II");
   SetPlayerSkin(playerid, 34);
   }
   
   case 2:{
   SendClientMessage(playerid, COLOR_YELLOW, "Te Has Colocado el Traje III");
   SetPlayerSkin(playerid, 32);
   }
   
   case 3:{
   SendClientMessage(playerid, COLOR_YELLOW, "Te Has Colocado el Traje IV");
   SetPlayerSkin(playerid, 202);
   
   }
   }
   }
return 1;
}

Bueno, como les decia, quiero que cuando le de en cancelar se cierre el cuandro, espero haberme hecho entender, agradesco cualquier ayuda

Saludos
Reply
#2

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

{

if(dialogid == 0)
{

if(response)
       {
   switch(listitem)
   {
   case 0:{
   SendClientMessage(playerid, COLOR_YELLOW, "Te Has Colocado el Traje I");
   SetPlayerSkin(playerid, 61);
   }

   case 1:{
   SendClientMessage(playerid, COLOR_YELLOW, "Te Has Colocado el Traje II");
   SetPlayerSkin(playerid, 34);
   }
   
   case 2:{
   SendClientMessage(playerid, COLOR_YELLOW, "Te Has Colocado el Traje III");
   SetPlayerSkin(playerid, 32);
   }
   
   case 3:{
   SendClientMessage(playerid, COLOR_YELLOW, "Te Has Colocado el Traje IV");
   SetPlayerSkin(playerid, 202);
   }
   }
   }
   } else {
            SendClientMessage(playerid, 0xFFFFFFFF, "Has cancelado !");
        }
        return 1;
    }
Ni lo probe y tengo sueсo jaja
Reply
#3

cuando colocas
pawn Код:
if(response)
Es cuando le dan al cuadro de la izquierda (comunmente llamado 'Aceptar')
y si quieres que haga algo cuando le de al cuadro de la derecha. usas
pawn Код:
if(!response)
Reply
#4

Listo

Solo le coloce el:

pawn Код:
if(response)
Gracias a todos
Reply
#5

la variable response toma el valor 1 si hacen click en el 1є boton, y toma el valor 0 si se hace click en el segundo boton (en caso de q este este habilitado)

por eso los codigos:
pawn Код:
if(response)//= que if(response == 1)
if(!response)//= que if(response == 0)
Reply
#6

En vez de meter otra sentencia if, tambiйn puede ser una opciуn que primero pongas el if(response) y luego un else diciendo que cancelo.

pawn Код:
if(response){
blablabla
}else{
cancelaste!
}
Reply
#7

@the_chaoz Gracias por la explicacion

@FunFuckFeel Gracias, pero lo arregle solo colocando el if(response) sin el else, Gracias de todas maneras
Reply
#8

Quote:
Originally Posted by FunFuckFeel
Посмотреть сообщение
En vez de meter otra sentencia if, tambiйn puede ser una opciуn que primero pongas el if(response) y luego un else diciendo que cancelo.

pawn Код:
if(response){
blablabla
}else{
cancelaste!
}
Disculpa por revivir tema pero esa Opsion que tu pones no es para usar el segundo boton en caso de poner Info, Me explico; Si doy aceptar que me de lo que elegi pero si pongo el segundo boton con (Volver) no funciona el ( else ) que tu dices. hay que hacer otra sentencia
if(dialogid == 101) //Si en el Dialogo "ID 101"
{
if (!response) //Reponde con el Boto derecho
{
ShowPlayerDefaultDialog2( playerid );//Ir al Dialogo "ShowPlayerDefaultDialog2" de vuelta
}

me explico?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)