[Ayuda] Error usando DIALOG [Novato]
#1

Hola!
Es la primera vez que intento usar los dialog's, y me topй con un error.
Un comando para elegir autos/motos

El compilador no lo muestra, pero al probar el cуdigo en el juego, no puedo elegir motos, y al elegir entre autos o motos, cualquiera que elija me saca un auto.

Aquн el cуdigo:
Код:
#define DIALOG 1  //defino DIALOG
//este es el comando:
 if (strcmp("/vehiculos" , cmdtext, true, 10) == 0)
  {
    ShowPlayerDialog(playerid, DIALOG, DIALOG_STYLE_LIST, "VEHICULOS:", "Autos\nMotos", "Seleccionar", "Cancelar");

  }

Y aquн el DialogResponse, aquн debe estar el bug, pero no sй cual es :S

Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
  if(response)
  {
     new vehicle, Float:x, Float:y, Float:z, Float:angle;
     GetPlayerPos( playerid, x, y, z );
     GetPlayerFacingAngle( playerid, angle );

    
	switch(dialogid)
   	{
     case 1:
           {
             ShowPlayerDialog(playerid,DIALOG, DIALOG_STYLE_LIST, "Autos", "Infernus\nTurismo", "Seleccionar", "Cancelar");
             if(response)
             {
			  switch(listitem)
		      {
		        case 0:
		        {
                  vehicle = CreateVehicle( 411, x, y, z, angle, -1, -1, -1);
                  LinkVehicleToInterior( vehicle, GetPlayerInterior( playerid ) );
                  SetVehicleVirtualWorld( vehicle, GetPlayerVirtualWorld( playerid ) );
                  PutPlayerInVehicle(playerid,vehicle,0);
		        }
		       
		        case 1:
		        {
                  vehicle = CreateVehicle( 451, x, y, z, angle, -1, -1, -1);
                  LinkVehicleToInterior( vehicle, GetPlayerInterior( playerid ) );
                  SetVehicleVirtualWorld( vehicle, GetPlayerVirtualWorld( playerid ) );
                  PutPlayerInVehicle(playerid,vehicle,0);
		        }
			   }
             }
		   }
	 case 2:
		   {
             ShowPlayerDialog(playerid, DIALOG+1, DIALOG_STYLE_LIST, "Motos", "FCR-900\nNRG-500", "Seleccionar", "Cancelar");
			 if(response)
			 {
			   switch(listitem)
			   {
			     case 0:
                 {
                   vehicle = CreateVehicle( 521, x, y, z, angle, -1, -1, -1);
                   LinkVehicleToInterior( vehicle, GetPlayerInterior( playerid ) );
                   SetVehicleVirtualWorld( vehicle, GetPlayerVirtualWorld( playerid ) );
                   PutPlayerInVehicle(playerid,vehicle,0);
			     }
			     case 1:
			     {
                   vehicle = CreateVehicle( 522, x, y, z, angle, -1, -1, -1);
                   LinkVehicleToInterior( vehicle, GetPlayerInterior( playerid ) );
                   SetVehicleVirtualWorld( vehicle, GetPlayerVirtualWorld( playerid ) );
                   PutPlayerInVehicle(playerid,vehicle,0);
			     }
			    }
			  }
			}
	}
  }

 return 1;
}
Quй es lo que hice mal?
Es la primera vez que pruebo usar esto -.-"

Gracias de antemano.
Reply
#2

Segъn tu cуdigo siempre te mostrara el mismo dialog.

Dentro del case 1 del switch tienes este cуdigo:

pawn Код:
ShowPlayerDialog(playerid,DIALOG, DIALOG_STYLE_LIST, "Autos", "Infernus\nTurismo", "Seleccionar", "Cancelar");
Eso hace que siempre salga el mismo dialog, si lo retiras dejaras ejecutar correctamente el dialog.
Reply
#3

Quote:
Originally Posted by Tirael
Посмотреть сообщение
Segъn tu cуdigo siempre te mostrara el mismo dialog.

Dentro del case 1 del switch tienes este cуdigo:

pawn Код:
ShowPlayerDialog(playerid,DIALOG, DIALOG_STYLE_LIST, "Autos", "Infernus\nTurismo", "Seleccionar", "Cancelar");
Eso hace que siempre salga el mismo dialog, si lo retiras dejaras ejecutar correctamente el dialog.
Y cуmo debo cambiarlo o quй?

Gracias por responder
Reply
#4

pawn Код:
ShowPlayerDialog(playerid,ID_DIALOG, DIALOG_STYLE_LIST, "Autos", "coche1\coche2\ncoche3\ncoche4", "Seleccionar", "Cancelar");
pawn Код:
#define ID_DIALOG (1)
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){

    new vehicle, Float:x, Float:y, Float:z, Float:angle;
    GetPlayerPos( playerid, x, y, z );
    GetPlayerFacingAngle( playerid, angle );

    switch(dialogid){
        case ID_DIALOG:{
            if(response){
                switch(listitem){
                    case 0:{
                      vehicle = CreateVehicle( 411, x, y, z, angle, -1, -1, -1);
                      LinkVehicleToInterior( vehicle, GetPlayerInterior( playerid ) );
                      SetVehicleVirtualWorld( vehicle, GetPlayerVirtualWorld( playerid ) );
                      PutPlayerInVehicle(playerid,vehicle,0);
                    }
                    case 1:{
                      vehicle = CreateVehicle( 451, x, y, z, angle, -1, -1, -1);
                      LinkVehicleToInterior( vehicle, GetPlayerInterior( playerid ) );
                      SetVehicleVirtualWorld( vehicle, GetPlayerVirtualWorld( playerid ) );
                      PutPlayerInVehicle(playerid,vehicle,0);
                    }
                    case 2:{
                       vehicle = CreateVehicle( 521, x, y, z, angle, -1, -1, -1);
                       LinkVehicleToInterior( vehicle, GetPlayerInterior( playerid ) );
                       SetVehicleVirtualWorld( vehicle, GetPlayerVirtualWorld( playerid ) );
                       PutPlayerInVehicle(playerid,vehicle,0);
                    }
                    case 3:{
                       vehicle = CreateVehicle( 522, x, y, z, angle, -1, -1, -1);
                       LinkVehicleToInterior( vehicle, GetPlayerInterior( playerid ) );
                       SetVehicleVirtualWorld( vehicle, GetPlayerVirtualWorld( playerid ) );
                       PutPlayerInVehicle(playerid,vehicle,0);
                    }
                    //ETC...
                }
            }
        }
    }

    return false;
}
Reply
#5

Quote:
Originally Posted by OTACON
Посмотреть сообщение
pawn Код:
ShowPlayerDialog(playerid,ID_DIALOG, DIALOG_STYLE_LIST, "Autos", "coche1\coche2\ncoche3\ncoche4", "Seleccionar", "Cancelar");
pawn Код:
#define ID_DIALOG (1)
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){

    new vehicle, Float:x, Float:y, Float:z, Float:angle;
    GetPlayerPos( playerid, x, y, z );
    GetPlayerFacingAngle( playerid, angle );

    switch(dialogid){
        case ID_DIALOG:{
            if(response){
                switch(listitem){
                    case 0:{
                      vehicle = CreateVehicle( 411, x, y, z, angle, -1, -1, -1);
                      LinkVehicleToInterior( vehicle, GetPlayerInterior( playerid ) );
                      SetVehicleVirtualWorld( vehicle, GetPlayerVirtualWorld( playerid ) );
                      PutPlayerInVehicle(playerid,vehicle,0);
                    }
                    case 1:{
                      vehicle = CreateVehicle( 451, x, y, z, angle, -1, -1, -1);
                      LinkVehicleToInterior( vehicle, GetPlayerInterior( playerid ) );
                      SetVehicleVirtualWorld( vehicle, GetPlayerVirtualWorld( playerid ) );
                      PutPlayerInVehicle(playerid,vehicle,0);
                    }
                    case 2:{
                       vehicle = CreateVehicle( 521, x, y, z, angle, -1, -1, -1);
                       LinkVehicleToInterior( vehicle, GetPlayerInterior( playerid ) );
                       SetVehicleVirtualWorld( vehicle, GetPlayerVirtualWorld( playerid ) );
                       PutPlayerInVehicle(playerid,vehicle,0);
                    }
                    case 3:{
                       vehicle = CreateVehicle( 522, x, y, z, angle, -1, -1, -1);
                       LinkVehicleToInterior( vehicle, GetPlayerInterior( playerid ) );
                       SetVehicleVirtualWorld( vehicle, GetPlayerVirtualWorld( playerid ) );
                       PutPlayerInVehicle(playerid,vehicle,0);
                    }
                    //ETC...
                }
            }
        }
    }

    return false;
}
Pero cуmo hago para que, si elige ejemplo coche1 entonces saque otro dialog mostrando la lista de coches guardada en coche 1.

Como en el cуdigo que puse, si elige autos muestra una lista de autos y los puede escoger, si elige motos muestra una lista de motos y las puede escoger.

Gracias por responder, como siempre seco en tus respuestas xD
Reply
#6

pawn Код:
switch(dialogid){
        case ID_DIALOG+0:{
            if(response){
                switch(listitem){
                    case 0:{
                        ShowPlayerDialog(playerid,ID_DIALOG+1, DIALOG_STYLE_LIST, "MMenu Autos 1", "coche1\coche2\ncoche3\ncoche4", "Seleccionar", "Cancelar");
                    }
                    //ETC...
                }
            }
        }
    }

    switch(dialogid){ //menu 1
        case ID_DIALOG+1:{
            if(response){
                switch(listitem){
                    case 0:{{
                    //ACA TU FUNCION
                        ShowPlayerDialog(playerid,ID_DIALOG+1, DIALOG_STYLE_LIST, "MMenu Autos 1", "coche1\coche2\ncoche3\ncoche4", "Seleccionar", "Cancelar");
                    }
                    case 1:{{
                    //ACA TU FUNCION
                        ShowPlayerDialog(playerid,ID_DIALOG+1, DIALOG_STYLE_LIST, "MMenu Autos 1", "coche1\coche2\ncoche3\ncoche4", "Seleccionar", "Cancelar");
                    }
                    case 2:{{
                    //ACA TU FUNCION
                        ShowPlayerDialog(playerid,ID_DIALOG+1, DIALOG_STYLE_LIST, "MMenu Autos 1", "coche1\coche2\ncoche3\ncoche4", "Seleccionar", "Cancelar");
                    }
                    case 3:{{
                    //ACA TU FUNCION
                        ShowPlayerDialog(playerid,ID_DIALOG+1, DIALOG_STYLE_LIST, "MMenu Autos 1", "coche1\coche2\ncoche3\ncoche4", "Seleccionar", "Cancelar");
                    }
                    //ETC...
                }
            }else{ //cuando cancelas el menu vuelve al principal
                ShowPlayerDialog(playerid,ID_DIALOG+1, DIALOG_STYLE_LIST, "MMenu Autos 1", "coche1\coche2\ncoche3\ncoche4", "Seleccionar", "Cancelar");
            }
        }
   }
Reply
#7

mira tambien las ids de los dialogos que no se te mezclen
Reply
#8

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
  if(response)
  {
     new vehicle, Float:x, Float:y, Float:z, Float:angle;
     GetPlayerPos( playerid, x, y, z );
     GetPlayerFacingAngle( playerid, angle );


    switch(dialogid)
    {
     case 1:
           {
             //Aquн tu error ====> ShowPlayerDialog(playerid,DIALOG, DIALOG_STYLE_LIST, "Autos", "Infernus\nTurismo", "Seleccionar", "Cancelar");
            // Eso se ejecutaba antes del switch y por eso no funcionaba
             if(response)
             {
              switch(listitem)
              {
                case 0:
                {
                  vehicle = CreateVehicle( 411, x, y, z, angle, -1, -1, -1);
                  LinkVehicleToInterior( vehicle, GetPlayerInterior( playerid ) );
                  SetVehicleVirtualWorld( vehicle, GetPlayerVirtualWorld( playerid ) );
                  PutPlayerInVehicle(playerid,vehicle,0);
                }

                case 1:
                {
                  vehicle = CreateVehicle( 451, x, y, z, angle, -1, -1, -1);
                  LinkVehicleToInterior( vehicle, GetPlayerInterior( playerid ) );
                  SetVehicleVirtualWorld( vehicle, GetPlayerVirtualWorld( playerid ) );
                  PutPlayerInVehicle(playerid,vehicle,0);
                }
               }
             }
           }
     case 2:
           {
             ShowPlayerDialog(playerid, DIALOG+1, DIALOG_STYLE_LIST, "Motos", "FCR-900\nNRG-500", "Seleccionar", "Cancelar");
             if(response)
             {
               switch(listitem)
               {
                 case 0:
                 {
                   vehicle = CreateVehicle( 521, x, y, z, angle, -1, -1, -1);
                   LinkVehicleToInterior( vehicle, GetPlayerInterior( playerid ) );
                   SetVehicleVirtualWorld( vehicle, GetPlayerVirtualWorld( playerid ) );
                   PutPlayerInVehicle(playerid,vehicle,0);
                 }
                 case 1:
                 {
                   vehicle = CreateVehicle( 522, x, y, z, angle, -1, -1, -1);
                   LinkVehicleToInterior( vehicle, GetPlayerInterior( playerid ) );
                   SetVehicleVirtualWorld( vehicle, GetPlayerVirtualWorld( playerid ) );
                   PutPlayerInVehicle(playerid,vehicle,0);
                 }
                }
              }
            }
    }
  }

 return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)