Registrarse

[RH - Otros] Problemas de orden con multichoices

Estado
Cerrado para nuevas respuestas.

Ryurs

Usuario de oro
Buenas noches, tengo una duda relacionada a los multichoices que podemos escoger cuando nos da la opción un NPC.

El problema es el siguiente, intentaré explicarlo lo mejor posible:

Supongamos que tenemos un NPC que nos da 3 opciones a elegir:
- OPCIÓN 1 -> (Si elegimos esta opción) -> Se sucede el EVENTO 1.
- OPCIÓN 2 -> (Si elegimos esta opción) -> Se sucede el EVENTO 2.
- OPCIÓN 3 -> (Si elegimos esta opción) -> Se sucede el EVENTO 3.


Bien, pues lo que yo quiero realizar es poder quitar una de las opciones de forma que se siga asignando las OPCIONES y los EVENTOS tal y como señalé anteriormente.
Esto de quitar una de las OPCIONES lo he realizado con la herramienta "Multichoice Manager" o haciéndolo manualmente con el "HxD", pero tengo el siguiente problema, quedándome así (imaginemos que la que quiero quitar es la OPCIÓN 1):
- OPCIÓN 2 -> (Si elegimos esta opción) -> Se sucede el EVENTO 1.
- OPCIÓN 3 -> (Si elegimos esta opción) -> Se sucede el EVENTO 2.


Lo que quiero obviamente, es que me quede así:
- OPCIÓN 2 -> (Si elegimos esta opción) -> Se sucede el EVENTO 2.
- OPCIÓN 3 -> (Si elegimos esta opción) -> Se sucede el EVENTO 3.


Por mucho que borres o intercambies OPCIONES de posición entre sí, se siguen sucediendo siempre los EVENTOS de la misma forma en orden.

Les agradecería si me pueden ayudar con esto o si se les ocurre algo, gracias de antemanooo.
 

Eaas

Profesional de WaH
Xdios tio te estas liando tu solo.
Te explico a tu manera.
Los multichoise son cajas de texto.
Lo que tienen es un texto en si no funciones, las funciones se las tu.
Multichoise en este ejemplo es (M)
Por lo que M1 seria la primera opcion y asi.

M1-Yes
M2-NO
M3-info.

Supongamos que este es el multichoise.
Si damos en yes no pasa nada. El solo dice wue la caja se llama Yes.

Ahora tu le das las funciones que quieras
Revisa tutos de script.

Y si lo que quieres es cambiar lo que dice cada caja lo puedes hacer desde el MManager
 

KERBEROS

Usuario de Platino
tienes que editar el script tambien, no solo la multichoise, y dejar solo dos opciones en el.
 

Ryurs

Usuario de oro
Ok ya supuse que tendría que ver con algo del script, lo único que lo que quiero modificar yo el script es bastante complejo porque dispone de muchas opciones con otros multichoices implícitos, pero me vale como respuesta, intentaré hacerlo a ver si me sale.

Dije lo anterior y pensé que se podría hacer con el "Multichoice Manager" porque este te deja intercambiar las posiciones, incluso borrar una línea y hacer que te aparezcan menos opciones (es decir, no es que te deje un hueco en blanco, sino que te quita la línea), pero veo que para lo único que vale es para cambiar los textos, por lo que es una herramienta con bastante poco uso.

Gracias por las respuestas, editaré el post si soy capaz de hacerlo modificando el script.

EDITO: Me resulta imposible saber que es lo que tengo que cambiar en el script para simplemente cambiar el orden de la opción 1 con la opción 2, es un script con muchísimas variables y comprobaciones.
En multichoices con scripts mucho más sencillos (el npc solo te tira un texto en función de la opción que escojas) es muy sencillo, solo hay que intercambiar el número en los "snippets", pero en el caso anterior es mucho más complicado.


Código fácil para "intercambiar" las opciones de los eventos (solo hay que intercambiar el número en los "snippets"):
Código:
#dynamic 0x900000

'---------------
#org @start
lockall
msgbox @string1 MSG_KEEPOPEN '"Aquí están expuestas las reglas\nd..."
goto @snippet1

'---------------
#org @snippet1
preparemsg @string2 '"¿Qué capítulo quieres leer?"
waitmsg
multichoice 0x10 0x4 0x66 0x0
copyvar 0x8000 LASTRESULT
compare 0x8000 0x0
if 0x1 goto @snippet2
compare 0x8000 0x1
if 0x1 goto @snippet3
compare 0x8000 0x2
if 0x1 goto @snippet4
compare 0x8000 0x3
if 0x1 goto @snippet5
compare 0x8000 0x7F
if 0x1 goto @snippet5
end

'---------------
#org @snippet2
msgbox @string3 MSG_KEEPOPEN '"La MOCHILA y el POKéNAV no pueden\..."
goto @snippet1

'---------------
#org @snippet3
msgbox @string4 MSG_KEEPOPEN '"Durante la ELECCIÓN de COMBATES,\n..."
goto @snippet1

'---------------
#org @snippet4
msgbox @string5 MSG_KEEPOPEN '"Durante la ELECCIÓN de COMBATES,\n..."
goto @snippet1

'---------------
#org @snippet5
releaseall
end


'---------
' Strings
'---------
#org @string1
= Aquí están expuestas las reglas\nde la ELECCIÓN de COMBATES.

#org @string2
= ¿Qué capítulo quieres leer?

#org @string3
= La MOCHILA y el POKéNAV no pueden\nusarse en la ELECCIÓN de COMBATES.

#org @string4
= Durante la ELECCIÓN de COMBATES,\nlas BAYAS o HIERBAS que sostengan los\lPOKéMON sólo tendrán efecto una vez.

#org @string5
= Durante la ELECCIÓN de COMBATES,\nel orden de salida de tus POKéMON\lno puede cambiarse.\pEl orden debe fijarse antes de comenzar\nel desafío.

Código difícil que no sé ni que tocar para "intercambiar" las opciones de los eventos:
Código:
#dynamic 0x900000

'---------------
#org @start
lock
faceplayer
setvar 0x40CF 0x5
setvar 0x40CE 0x0
special 0x28
msgbox @string1 MSG_KEEPOPEN '"¡Aquí ponemos a prueba la suerte\n..."
preparemsg @string2 '"Dime, pues, ¿aceptas el desafío\nd..."
waitmsg
multichoice 0x11 0x6 0x17 0x0
copyvar 0x8000 LASTRESULT
compare 0x8000 0x0
if 0x1 goto @snippet1
compare 0x8000 0x1
if 0x1 goto @snippet2
compare 0x8000 0x2
if 0x1 goto @snippet3
compare 0x8000 0x7F
if 0x1 goto @snippet3
preparemsg @string3 '"El desafío se disputa en dos nivel..."
waitmsg
multichoice 0x11 0x6 0x18 0x0
copyvar 0x8000 LASTRESULT
compare 0x8000 0x2
if 0x1 goto @snippet3
compare 0x8000 0x7F
if 0x1 goto @snippet3
setvar 0x8004 0xF
special 0xEA
compare 0x8004 0x1
if 0x1 goto @snippet4
setvar 0x8004 0x2
setvar 0x8005 0x1
copyvar 0x8006 LASTRESULT
special 0xEA
msgbox @string4 MSG_KEEPOPEN '"Selecciona los tres POKéMON con lo..."
fadescreen 0x1
call @snippet5
copyvar 0x8004 LASTRESULT
setvar 0x8005 0x3
special 0xF8
waitstate
compare LASTRESULT 0x0
if 0x1 goto @snippet6
msgbox @string5 MSG_YESNO '"Antes de comenzar tu ELECCIÓN de\n..."
copyvar 0x8000 LASTRESULT
compare 0x8000 0x0
if 0x1 goto @snippet6
compare 0x8000 0x1
if 0x1 goto @snippet7
compare 0x8000 0x7F
if 0x1 goto @snippet6
setvar 0x4000 0x0
setvar 0x4001 0x0
setvar 0x8004 0x2
setvar 0x8005 0x4
special 0xEA
setvar 0x8004 0x1C
special 0xF2
setvar 0x8004 0x2
setvar 0x8005 0x0
setvar 0x8006 0x1
special 0xEA
setvar 0x8004 0x2
setvar 0x8005 0x4
setvar 0x8006 0x1
special 0xF2
setvar 0x8004 0x1A
special 0xF2
setvar 0x8004 0x2
setvar 0x8005 0x3
setvar 0x8006 0x0
special 0xEA
special 0x29
closeonkeypress
pause 0x2
call @snippet8
setvar 0x4000 0xFF
setvar 0x8004 0x1A
special 0xF2
compare LASTRESULT 0x0
if 0x1 goto @snippet9
special 0x28
setvar 0x8004 0x3
setvar 0x8005 0x3
special 0xEA
msgbox @string6 MSG_KEEPOPEN '"Pasa por aquí."
closeonkeypress
setvar 0x8004 0x5
special 0xEA
call @snippet10
special 0x0
call @snippet11
warpmuted 0x1A 0x23 0xFF 0x6 0x7
setvar 0x4000 0x0
waitstate
end

'---------------
#org @snippet1
preparemsg @string3 '"El desafío se disputa en dos nivel..."
waitmsg
multichoice 0x11 0x6 0x18 0x0
copyvar 0x8000 LASTRESULT
compare 0x8000 0x2
if 0x1 goto @snippet3
compare 0x8000 0x7F
if 0x1 goto @snippet3
setvar 0x8004 0xF
special 0xEA
compare 0x8004 0x1
if 0x1 goto @snippet4
setvar 0x8004 0x2
setvar 0x8005 0x1
copyvar 0x8006 LASTRESULT
special 0xEA
msgbox @string4 MSG_KEEPOPEN '"Selecciona los tres POKéMON con lo..."
fadescreen 0x1
call @snippet5
copyvar 0x8004 LASTRESULT
setvar 0x8005 0x3
special 0xF8
waitstate
compare LASTRESULT 0x0
if 0x1 goto @snippet6
msgbox @string5 MSG_YESNO '"Antes de comenzar tu ELECCIÓN de\n..."
copyvar 0x8000 LASTRESULT
compare 0x8000 0x0
if 0x1 goto @snippet6
compare 0x8000 0x1
if 0x1 goto @snippet7
compare 0x8000 0x7F
if 0x1 goto @snippet6
setvar 0x4000 0x0
setvar 0x4001 0x0
setvar 0x8004 0x2
setvar 0x8005 0x4
special 0xEA
setvar 0x8004 0x1C
special 0xF2
setvar 0x8004 0x2
setvar 0x8005 0x0
setvar 0x8006 0x1
special 0xEA
setvar 0x8004 0x2
setvar 0x8005 0x4
setvar 0x8006 0x1
special 0xF2
setvar 0x8004 0x1A
special 0xF2
setvar 0x8004 0x2
setvar 0x8005 0x3
setvar 0x8006 0x0
special 0xEA
special 0x29
closeonkeypress
pause 0x2
call @snippet8
setvar 0x4000 0xFF
setvar 0x8004 0x1A
special 0xF2
compare LASTRESULT 0x0
if 0x1 goto @snippet9
special 0x28
setvar 0x8004 0x3
setvar 0x8005 0x3
special 0xEA
msgbox @string6 MSG_KEEPOPEN '"Pasa por aquí."
closeonkeypress
setvar 0x8004 0x5
special 0xEA
call @snippet10
special 0x0
call @snippet11
warpmuted 0x1A 0x23 0xFF 0x6 0x7
setvar 0x4000 0x0
waitstate
end

'---------------
#org @snippet2
msgbox @string7 MSG_KEEPOPEN '"Si aceptas entrar aquí, te enfrent..."
goto @snippet12

'---------------
#org @snippet3
msgbox @string8 MSG_KEEPOPEN '"Esperamos que vuelvas\npronto por ..."
release
end

'---------------
#org @snippet4
copyvar 0x8000 LASTRESULT
compare 0x8000 0x0
if 0x1 goto @snippet13
compare 0x8000 0x1
if 0x1 goto @snippet14
msgbox @string9 MSG_KEEPOPEN '"Una lástima[.]\pNo tienes tres POK..."
goto @snippet15

'---------------
#org @snippet5
setvar 0x8004 0x1
setvar 0x8005 0x1
special 0xEA
return

'---------------
#org @snippet6
special 0x29
msgbox @string8 MSG_KEEPOPEN '"Esperamos que vuelvas\npronto por ..."
release
end

'---------------
#org @snippet7
setvar 0x4000 0x0
setvar 0x4001 0x0
setvar 0x8004 0x2
setvar 0x8005 0x4
special 0xEA
setvar 0x8004 0x1C
special 0xF2
setvar 0x8004 0x2
setvar 0x8005 0x0
setvar 0x8006 0x1
special 0xEA
setvar 0x8004 0x2
setvar 0x8005 0x4
setvar 0x8006 0x1
special 0xF2
setvar 0x8004 0x1A
special 0xF2
setvar 0x8004 0x2
setvar 0x8005 0x3
setvar 0x8006 0x0
special 0xEA
special 0x29
closeonkeypress
pause 0x2
call @snippet8
setvar 0x4000 0xFF
setvar 0x8004 0x1A
special 0xF2
compare LASTRESULT 0x0
if 0x1 goto @snippet9
special 0x28
setvar 0x8004 0x3
setvar 0x8005 0x3
special 0xEA
msgbox @string6 MSG_KEEPOPEN '"Pasa por aquí."
closeonkeypress
setvar 0x8004 0x5
special 0xEA
call @snippet10
special 0x0
call @snippet11
warpmuted 0x1A 0x23 0xFF 0x6 0x7
setvar 0x4000 0x0
waitstate
end

'---------------
#org @snippet8
special 0x60
waitstate
return

'---------------
#org @snippet9
setvar 0x8004 0x2
setvar 0x8005 0x0
setvar 0x8006 0x0
special 0xEA
goto @snippet3

'---------------
#org @snippet10
applymovement 0x1 @move1
applymovement MOVE_PLAYER @move2
waitmovement 0x0
return

'---------------
#org @snippet11
sound 0x10B
special 0x196
waitstate
checksound
return

'---------------
#org @snippet12
preparemsg @string2 '"Dime, pues, ¿aceptas el desafío\nd..."
waitmsg
multichoice 0x11 0x6 0x17 0x0
copyvar 0x8000 LASTRESULT
compare 0x8000 0x0
if 0x1 goto @snippet1
compare 0x8000 0x1
if 0x1 goto @snippet2
compare 0x8000 0x2
if 0x1 goto @snippet3
compare 0x8000 0x7F
if 0x1 goto @snippet3
preparemsg @string3 '"El desafío se disputa en dos nivel..."
waitmsg
multichoice 0x11 0x6 0x18 0x0
copyvar 0x8000 LASTRESULT
compare 0x8000 0x2
if 0x1 goto @snippet3
compare 0x8000 0x7F
if 0x1 goto @snippet3
setvar 0x8004 0xF
special 0xEA
compare 0x8004 0x1
if 0x1 goto @snippet4
setvar 0x8004 0x2
setvar 0x8005 0x1
copyvar 0x8006 LASTRESULT
special 0xEA
msgbox @string4 MSG_KEEPOPEN '"Selecciona los tres POKéMON con lo..."
fadescreen 0x1
call @snippet5
copyvar 0x8004 LASTRESULT
setvar 0x8005 0x3
special 0xF8
waitstate
compare LASTRESULT 0x0
if 0x1 goto @snippet6
msgbox @string5 MSG_YESNO '"Antes de comenzar tu ELECCIÓN de\n..."
copyvar 0x8000 LASTRESULT
compare 0x8000 0x0
if 0x1 goto @snippet6
compare 0x8000 0x1
if 0x1 goto @snippet7
compare 0x8000 0x7F
if 0x1 goto @snippet6
setvar 0x4000 0x0
setvar 0x4001 0x0
setvar 0x8004 0x2
setvar 0x8005 0x4
special 0xEA
setvar 0x8004 0x1C
special 0xF2
setvar 0x8004 0x2
setvar 0x8005 0x0
setvar 0x8006 0x1
special 0xEA
setvar 0x8004 0x2
setvar 0x8005 0x4
setvar 0x8006 0x1
special 0xF2
setvar 0x8004 0x1A
special 0xF2
setvar 0x8004 0x2
setvar 0x8005 0x3
setvar 0x8006 0x0
special 0xEA
special 0x29
closeonkeypress
pause 0x2
call @snippet8
setvar 0x4000 0xFF
setvar 0x8004 0x1A
special 0xF2
compare LASTRESULT 0x0
if 0x1 goto @snippet9
special 0x28
setvar 0x8004 0x3
setvar 0x8005 0x3
special 0xEA
msgbox @string6 MSG_KEEPOPEN '"Pasa por aquí."
closeonkeypress
setvar 0x8004 0x5
special 0xEA
call @snippet10
special 0x0
call @snippet11
warpmuted 0x1A 0x23 0xFF 0x6 0x7
setvar 0x4000 0x0
waitstate
end

'---------------
#org @snippet13
msgbox @string9 MSG_KEEPOPEN '"Una lástima[.]\pNo tienes tres POK..."
goto @snippet15

'---------------
#org @snippet14
msgbox @string10 MSG_KEEPOPEN '"Una lástima[.]\pNo tienes tres POK..."
goto @snippet15

'---------------
#org @snippet15
release
end


'---------
' Strings
'---------
#org @string1
= ¡Aquí ponemos a prueba la suerte\nde los ENTRENADORES!\p¡Te doy la bienvenida\na la SIERPE BATALLA!\pYo seré tu primera guía si aceptas\nel desafío de la ELECCIÓN de COMBATES.

#org @string2
= Dime, pues, ¿aceptas el desafío\nde la ELECCIÓN de COMBATES?

#org @string3
= El desafío se disputa en dos niveles:\nel nivel 50 y el nivel libre. ¿Cuál eliges?

#org @string4
= Selecciona los tres POKéMON con los\nque quieres combatir.

#org @string5
= Antes de comenzar tu ELECCIÓN de\nCOMBATES, debo guardar la partida.\l¿Estás de acuerdo?

#org @string6
= Pasa por aquí.

#org @string7
= Si aceptas entrar aquí, te enfrentarás\na la llamada ELECCIÓN de COMBATES.\pLas reglas de la ELECCIÓN de COMBATES\nson muy simples[.]\pElige uno de los tres caminos y llega\na la última sala de la SIERPE BATALLA.\lAsí de sencillo.\pPero recuerda: lo que te encuentres\nen el camino que elijas, dependerá\lúnicamente de tu fortuna[.]\pSi alcanzas la meta, recibirás como\nrecompensa PUNTOS de BATALLA.\pSi quieres interrumpir el desafío, habla\ncon cualquiera de mis compañeras\lque están en las salas grandes.\pSi no guardas antes de salirte\ndel juego, se te descalificará.

#org @string8
= Esperamos que vuelvas\npronto por aquí.

#org @string9
= Una lástima[.]\pNo tienes tres POKéMON que puedan\nparticipar en la ELECCIÓN de COMBATES.\pNecesitas tres POKéMON diferentes\nde nivel 50 o inferior.\pAdemás, deben sostener distintos\ntipos de objeto.\pLos HUEVOS[buffer1] participar.\pVuelve cuando cumplas las condiciones\npara aceptar el desafío.

#org @string10
= Una lástima[.]\pNo tienes tres POKéMON que puedan\nparticipar en la ELECCIÓN de COMBATES.\pNecesitas tres POKéMON diferentes\npara poder participar.\pAdemás, deben sostener distintos\ntipos de objeto.\pLos HUEVOS[buffer1] participar.\pVuelve cuando cumplas las condiciones\npara aceptar el desafío.


'-----------
' Movements
'-----------
#org @move1
#raw 0x9 'Step Up (Normal)
#raw 0x9 'Step Up (Normal)
#raw 0x54 'Hide
#raw 0xFE 'End of Movements

#org @move2
#raw 0x9 'Step Up (Normal)
#raw 0x9 'Step Up (Normal)
#raw 0x9 'Step Up (Normal)
#raw 0x54 'Hide
#raw 0xFE 'End of Movements
 
Última edición:

KERBEROS

Usuario de Platino
si tienes dos opciones en tu caja, porque el script tiene 4 opciones? eso malgasta espacio, recuerda que la multichoise es como una variable mas o menos, cuando elijes una opcion, es como setear esa variable al numero de la opcion, 1 o dos o tres, etc. son parametros a medir...estoy un poco oxidado y no entiendo del todo como va el script, pero creo que debes revisar la parte de la multichoise y compararlo con alguno que este en el foro
 

Eaas

Profesional de WaH
si tienes dos opciones en tu caja, porque el script tiene 4 opciones? eso malgasta espacio, recuerda que la multichoise es como una variable mas o menos, cuando elijes una opcion, es como setear esa variable al numero de la opcion, 1 o dos o tres, etc. son parametros a medir...estoy un poco oxidado y no entiendo del todo como va el script, pero creo que debes revisar la parte de la multichoise y compararlo con alguno que este en el foro
Por lo q veo trabajas FR, te lo dejo en tus manos
 

Ryurs

Usuario de oro
Bueno al final como cambiar ese script era demasiado complicado y por más que lo intente siempre acababa rompiendo el script, busqué otras alternativas, y comparando con otros scripts del propio juego, descubrí una manera para poder empezar seleccionando el multichoice que quisiera de la lista (si el multichoice tiene 3 opciones puedes hacer que la flecha para seleccionar una de ellas empiece en la segunda por ejemplo). Asique con eso he podido solucionar lo que en parte buscaba, pueden cerrar.
 

Eaas

Profesional de WaH
Bueno al final como cambiar ese script era demasiado complicado y por más que lo intente siempre acababa rompiendo el script, busqué otras alternativas, y comparando con otros scripts del propio juego, descubrí una manera para poder empezar seleccionando el multichoice que quisiera de la lista (si el multichoice tiene 3 opciones puedes hacer que la flecha para seleccionar una de ellas empiece en la segunda por ejemplo). Asique con eso he podido solucionar lo que en parte buscaba, pueden cerrar.
Perateeeee
Tu lo que querias era wue el multichoise
Te seleccionara una opcion que no fuera la primera?
 

Ryurs

Usuario de oro
Noo, en realidad lo que quería era poder intercambiar la opción 1 con la opción 2, pero como dije, en ese script me resultó imposible al tener tantas variables. No es como en un script más facilito, en el que intercambiando los "snippets" o el "compare 0x8000 0x0" por "compare 0x8000 0x1" era suficiente.

Pero seleccionando que la opción empezase por la segunda y cambiando los textos del evento de la primera conseguí algo muy similar en resultado.
 

Eaas

Profesional de WaH
Noo, en realidad lo que quería era poder intercambiar la opción 1 con la opción 2, pero como dije, en ese script me resultó imposible al tener tantas variables. No es como en un script más facilito, en el que intercambiando los "snippets" o el "compare 0x8000 0x0" por "compare 0x8000 0x1" era suficiente.

Pero seleccionando que la opción empezase por la segunda y cambiando los textos del evento de la primera conseguí algo muy similar en resultado.
Bro puedes camboarke el texto, escribir lo que dice en la uno para la dos y ya
 

Ryurs

Usuario de oro
Que ese no es le problema (siento que no me leen). Como ya he dicho, si fuera un npc que simplemente te tira un texto en función de la opción que eligas del multichoice, es muy sencillo hacerlo (puse los 2 ejemplos de scripts en un post anterior, si te hubieras fijado un poquito), pero el script en el que yo quiero intercambiar las opciones, realiza una serie de comprobaciones en tu equipo (nivel de los pokémon, número de pokémon, objeto que sostienen y un largo etc), por lo que es muy difícil poder cambiarlo.

Pero con eso que realicé ya me quedó bien, gracias.
 
Estado
Cerrado para nuevas respuestas.
Arriba