[Tutorial] [TUT]DIALOG_STYLE_LIST (Menu)
#1

Bueno hola amigos samperos vengo a enseсarles a crear un menu DIALOG

les voy a explicar con autos y armas

1. arriba de todo el GM definimos el dialog

Код:
#define DIALOGID 1337
2. luego vamos a

Код:
OnPlayerCommandText
y agregamos el menu

Код:
if (strcmp("/Comando", cmdtext, true, 10) == 0)
	{
	ShowPlayerDialog(playerid, DIALOGID, DIALOG_STYLE_LIST, "Opciones", "Armas\nAutos", "Seleccionar", "Cancelar");
		return 1;

}
3. Depues tenemos que definir cada opcion para eso vamos a

Код:
OnDialogResponse
si no lo tienes agregalo asi

Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
y aqui definimos los menu osea Armas y Autos

Код:
	if(dialogid == DIALOGID)
	{
		if(response)
		{

if(listitem == 0) // Armas
			{

ShowPlayerDialog(playerid, DIALOGID+0, DIALOG_STYLE_LIST, "Selecciona la opcion", "Arma1\nArma2", "Seleccionar", "Cancelar");
			}

f(listitem == 1) // Autos
			{

ShowPlayerDialog(playerid, DIALOGID+1, DIALOG_STYLE_LIST, "Selecciona la opcion", "Auto1\nAuto2", "Seleccionar", "Cancelar");
			}

    }

			
		return 1;
	}
Bueno ya definimos ese menu

Ahora definamos el menu de armas


Код:
if(dialogid == DIALOGID+0) //Menu Arma
	{
		if(response)
		{
			if(listitem == 0) // Arma 1
			{
				GivePlayerWeapon(playerid, 26, 500);//puedes cambar eso por la funcion que quieras
			}

			if(listitem == 1) //Arma 2 
			{
				GivePlayerWeapon(playerid, 29, 500);//puedes cambar eso por la funcion que quieras
			}
   }
		return 1;
	}
Ahora definamos el menu de autos

Код:
if(dialogid == DIALOGID+1) // Menu Autos
	{
		if(response)
		{
			if(listitem == 0) //Auto 1
			{
				CreateVehicle(522,X,Y+2,Z+3,0.0,1,0,1500000); //puedes cambar eso por la funcion que quieras
			}
                 if(listitem == 1) //Auto 2
			{
				CreateVehicle(520,X,Y+2,Z+3,0.0,1,0,1500000);//puedes cambar eso por la funcion que quieras
			}
    }
		return 1;
	}
Informacion:

CreateVehicle(520,X,Y+2,Z+3,0.0,1,0,1500000);ID del vehiculo

GivePlayerWeapon(playerid, 29, 500);Cantidad de balas Numero del arma

Si falta algo, hay bugs o simplemente todo esta mal avisen!
Reply
#2

una pregunta, en el menu de autos їcomo hago para que desaparescan los autos que saco al spawnear otro?
Reply
#3

Quote:
Originally Posted by 0_o.mati.o_0
una pregunta, en el menu de autos їcomo hago para que desaparescan los autos que saco al spawnear otro?
Podrias fijarte en la funcion que tiene el ladmin
Reply
#4

Todavia no me adapto bien a estos dialogs pero cuando lo consiga te ayudaria con mucho gusto
Reply
#5

oye me keda una duda
donde agrego public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
porq lo agrego y me da error
Reply
#6

Super reviviste el tema ¬¬'

Ponlo debajo de

pawn Код:
public OnPlayerCommandText
Hasta la terminaciуn del callback :'3
Reply
#7

C:\Users\AGUS\Desktop\DM - copia.pwn(1816) : error 017: undefined symbol "X"
C:\Users\AGUS\Desktop\DM - copia.pwn(1820) : error 017: undefined symbol "X"

ami me sale esos 2 errores alguien me dise como arreglarlos??
Reply
#8

donde dice X Y Z se supone que va una coordenada.
Reply
#9

Tambiйn puede usar:
pawn Код:
new Float: X, Float: Y, Float: Z;
GetPlayerPos(playerid, X, Y, Z);
Reply
#10

Me gustarнa aсadir que esta no es la mejor forma de implementar un dialogo de lista, el cуdigo de OnDialogResponse deberнa ser algo asн:

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid){
        case DIALOGO1: { //caso de un dialogo distinto al de la lista
            if(response){
                [...];
            }
            else{
                [...];
            }
        }
        case DIALOGO2: { //caso de un dialogo tipo lista
            if(response){
                switch(listitem){
                    case 0:{ //item 0
                        [...];
                    }
                    case 1:{ //item 1
                        [...];
                    }
                    case 2:{ //item 1
                        [...];
                    }
            }
            else{
                [...];
            }
        }
    }
    return 1;
}
Cuando hay muchos dialogos y las listas son grandes el mejor cуdigo es el que he posteado.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)