Thread Id: 28605
Thread Name: [Duda Scripting] Elegir pokémon con Multichoice.
Iniciado por Manual del Rom Hacker
•Multichoice:
Vamos a hacer un ejercicio de memoria y vamos a recordar el Yes/No. En aquel script, nos aparecía una caja donde podíamos escoger entre dos opciones: Sí o No. Y dependiendo de lo que escogiéramos, pasaría una cosa u otra. En este caso es lo mismo, la diferencia es que la caja contendrá hasta 6 opciones. Un ejemplo de esto es cuando vamos al PC en un Centro Pokémon y nos aparecen las opciones (pokémons, objetos…). Eso sería un multichoice. La lista de multichoices se puede encontrar en la guía de XSE para cada una de las ediciones. Los diferentes multichoices se pueden editar, existen herramientas para ello como Multichoice Editor (desarrollada por mí) o Multichoice Manager (desarrollada por Gut_Bro).
En esta ocasión tenemos 3 comandos que hacen lo mismo, es decir, muestran una caja con diferentes opciones entre las que elegir, pero nos brindan ciertas variaciones. Estos son los tres comandos:
Multichoice 0x(coordenada x) 0x(coordenada y) 0x(multichoice) 0x(B)
Multichoice2 0x(coordenada x) 0x(coordenada y) 0x(multichoice) 0x(opción seleccionada) 0x(B)
Multichoice3 0x(coordenada x) 0x(coordenada y) 0x(multichoice) 0x(opciones por columna) 0x(B)
•Coordenada x: Coordenadas en el eje x donde aparecerá la caja.
•Coordenada y: Coordenadas en el eje y donde aparecerá la caja.
•Multichoice: Número del multichoice que se mostrará.
•B: Determina si se puede pulsar el botón B para salir. 0x0 determina que se puede usar, 0x1 determina que no.
•Opción seleccionada: En el caso del multichoice2, se puede determinar qué opción saldrá marcada por defecto. Es decir, si ponemos 0x1, por ejemplo, el multichoice aparecerá con la opción número 2 seleccionada por defecto. Ojo, seleccionada no quiere decir elegida, sino que es la opción desde la que se parte.
•Opciones por columna: Por defecto, aparecen todas las opciones en una misma columna, pero se puede hacer en el caso del multichoice3, que aparezca un determinado número de opciones por cada columna. Por ejemplo, si ponemos un multichoice con 4 opciones y en este parámetro ponemos que haya 0x2 opciones por columna, aparecerán dos opciones en la primera columna y las otras dos en la segunda columna.
Recuerdo que los multichoices se pueden editar, pero en este caso, vamos a hacer el ejemplo con uno original. En Fire Red, el multichoice 0x12 tiene las opciones Yes, No e Info. Si queremos que pase una cosa u otra dependiendo de la opción elegida, pondríamos algo así:
(…)
Multichoice 0x0 0x0 0x12 0x1 ‘Muestra el multichoice
Compare LASTRESULT 0x0 ‘Comprueba si elegimos la opción 1
If 0x1 goto @yes ‘Si lo hicimos, va a @yes
Compare LASTRESULT 0x1 ‘Comprueba si elegimos la opción 2
If 0x1 goto @no ‘Si lo hicimos, va a @no
Compare LASTRESULT 0x2 ‘Comprueba si elegimos la opción 3
If 0x1 goto @info ‘Si lo hicimos, va a @info
(…)
La opción seleccionada se guarda en la variable LASTRESULT. Es importante tener en cuenta que la primera opción es representada por 0x0, no por 0x1. La 0x0 es la primera, la 0x1 es la segunda, la 0x2 es la tercera… Y así sucesivamente.
Iniciado por Javi4315♪
A ver si esto te sirve: