Jugando Pokémon Rubí presté atención al wildbattle contra poochyena/zigzagoon en el intro del juego.
¿Por qué no se puede escapar?
Quiero saber si alguno tiene idea como revisar ese script, al completo, o simplemente saber como hacer wildbattles así...
Me serviría mucho manipular el wildbattle y no poder escapar en esas situaciones (como con los trainerbattle).
Claro, ¿como lo abro con xse? precisamente esa parte, la del wildbattle.
Lo más cercano en ese mapa es la mochila -> escoger el pkmn inicial -> wildbattle.
Pero no aparece nada sobre eso:
Si fuera tan sencillo no habría hecho la pregunta, no encuentro el script inicial para tomarlo como ejemplo, y así aprovechar de ese método.
A mi ese warp me extrana bastante asi de gratis yo creo que tiene que estar relacionado, aunque nunca he usao Ruby, prueba a ir al mapa que menciona el warp y mirar si tiene algún script de nivel a ver si así hay suerte de ver algo
El warp que finaliza el script es el que te lleva al laboratorio del profesor birch, lo que me da a entender la situación es que el script se encuentra en la imagen del medio, luego de escoger el Pokémon inicial, es decir... ¿como hago para revisar esa rutina?
"Do choose this Pokémon?" es lo anterior al wild-battle, es un solo script parece.
¿Alguno que tenga conocimientos en asm como para entender lo que pasa ahí?
jajaja me estoy comiendo la cabeza.
Jugando Pokémon Rubí presté atención al wildbattle contra poochyena/zigzagoon en el intro del juego.
¿Por qué no se puede escapar?
Quiero saber si alguno tiene idea como revisar ese script, al completo, o simplemente saber como hacer wildbattles así...
Me serviría mucho manipular el wildbattle y no poder escapar en esas situaciones (como con los trainerbattle).
No es un script de nivel, es un special que se activa al hablarle a la mochila.
Pero claro si usas ese special saldra lo de la mochila también!
Para hacer ese tipo de batallas (es el que uso yo en el einglocke por default) has de setear la variable de batalla a la del profesor birch en concreto.
pd. Si tuviese internet en casa postearia el ejemplo de rutina pero no tengo xd
No es un script de nivel, es un special que se activa al hablarle a la mochila.
Pero claro si usas ese special saldra lo de la mochila también!
Para hacer ese tipo de batallas (es el que uso yo en el einglocke por default) has de setear la variable de batalla a la del profesor birch en concreto.
pd. Si tuviese internet en casa postearia el ejemplo de rutina pero no tengo xd
¡Hey! ¿Que te parece si lo movemos a Investigación GBA? Cualquier cosa me avisas
____________________________________
La tabla de Specials de Ruby está en 0x14B194, por lo que el puntero al special 0x9C (156) debería estar en 0x14B194 + (4*0x9C bytes) = 0x14B404
Ahí tenemos 69 21 08 08 lo que nos indica que la rutina del Special está en 082169
ahora no ando con tiempo para usar el Ida o buscar una base de datos, pero voy dejando ésto por aquí por si alguien tiene tiempo x3
eing dijo:
Para hacer ese tipo de batallas (es el que uso yo en el einglocke por default) has de setear la variable de batalla a la del profesor birch en concreto.
Porque lo es, una vez hechas un par de rutinas ya es coser y cantar! @MoonLover aka cheve, la tabla de specials esta guay, pero no es mas que una expansion de comandos/rutinas "ocultas" con tal de no ir haciendo continuamente callasm 0x..
Y sí, estan las siguientes posibilidades:
(No hagas caso a valores, son simplemente para ordenarlos xD)
1-batalla normal
2-batalla doble
3-BN sin huir
4- BD sin huir
5- safari normal
6- safari doble
7-batalla 2vs1 (se bugea..)
8-batalla 2vs2 (se bugea)
9-batalla trainer
10-batalla trainer vs 2
11- batalla trainer 2vs2
Esas son las q encontre en su dia.
Y no vale con hacer wbto a esa var ni setearla via xse, ha de ser via asm.
Puesto que la carga la var a cada encuentro sea cual sea.
Entonces, si yo quiero hacer un wildbattle de ese tipo tiene que ser vía asm siempre?
Ya me estoy haciendo un lío en la cabeza, pero algo entendí de lo que pusieron ambos, realizarlo por mi cuenta no está entre las posibilidades aún, de todas formas, gracias a ambos
PD: Estaría bueno insertar una rutina que te de la libertad de usar las specials cada que quieras hacer un wildbattle así =p
Como dije anteriormente, cada funcion coloca el valor de la variable que está definido segun el tipo que sea.
Por ejemplo todos los wildbattle (comando) son por default valor de 1vs1.
Y los trainerbattle por default es single battle, pero si esta configurada como doble, sera doble. (Compara el bute de ese trainer, y si es doble pone la var a doble).
Cambiando solo el valor fijo de esa variable mediante hex, lo que harias seria joder la rutina. Puesto que siempre serian 2vs2, u el tipo que definieses.
Por eso es obligatorio hacerles un hook hacia tu rutina y en ella hacer lo que te venga en gana.
En mi caso, para las wildbattle normal, chequeo el valor de una variable y dependiendo el valor de esta es un tipo de batalla u otro. (Y un check previo de si tienes minimo dos pokes vivos, de lo comtrario sera single battle)
Además en el engine le puse más cosas como configurar ataques del pokemon, estados alterados y mas detalles que hacen que puedas configurar realmente un wildbattle en condiciones hehe
Entonces, si yo quiero hacer un wildbattle de ese tipo tiene que ser vía asm siempre?
Ya me estoy haciendo un lío en la cabeza, pero algo entendí de lo que pusieron ambos, realizarlo por mi cuenta no está entre las posibilidades aún, de todas formas, gracias a ambos
PD: Estaría bueno insertar una rutina que te de la libertad de usar las specials cada que quieras hacer un wildbattle así =p
Eres novato, no te metas en camisas de once varas..
Si ves rutinas utiles, y faciles de insertar (de hecho todas lo son, solo es repuntear, pegar rutina y cambiar los pointers por tus pointers.) insertalas y ya!
Pero aprender a realizarlas es una ardua tarea, que no te recomiendo.. Y menos si no sabes programar en general.. (C, php, python.. ) ya que no encontrarás sentido alguno a lo que ves.
Como dije anteriormente, cada funcion coloca el valor de la variable que está definido segun el tipo que sea.
Por ejemplo todos los wildbattle (comando) son por default valor de 1vs1.
Y los trainerbattle por default es single battle, pero si esta configurada como doble, sera doble. (Compara el bute de ese trainer, y si es doble pone la var a doble).
Cambiando solo el valor fijo de esa variable mediante hex, lo que harias seria joder la rutina. Puesto que siempre serian 2vs2, u el tipo que definieses.
Por eso es obligatorio hacerles un hook hacia tu rutina y en ella hacer lo que te venga en gana.
En mi caso, para las wildbattle normal, chequeo el valor de una variable y dependiendo el valor de esta es un tipo de batalla u otro. (Y un check previo de si tienes minimo dos pokes vivos, de lo comtrario sera single battle)
Además en el engine le puse más cosas como configurar ataques del pokemon, estados alterados y mas detalles que hacen que puedas configurar realmente un wildbattle en condiciones hehe
Eres novato, no te metas en camisas de once varas..
Si ves rutinas utiles, y faciles de insertar (de hecho todas lo son, solo es repuntear, pegar rutina y cambiar los pointers por tus pointers.) insertalas y ya!
Pero aprender a realizarlas es una ardua tarea, que no te recomiendo.. Y menos si no sabes programar en general.. (C, php, python.. ) ya que no encontrarás sentido alguno a lo que ves.
Aclaré: "realizarlo por mi cuenta no está entre las posibilidades aún".
Se qué es difícil, y directamente desconozco sobre el tema, desde que empecé de hecho, es por eso que inicie este post, si alguien me podía dar una mano con eso, y sacarme la duda.
¡Es más fácil en nuestro Discord! Actualmente la comunidad está más activa en nuestro Discord oficial. Todavía puedes crear tu duda aquí si lo prefieres, pero recuerda que estamos en Discord para poder ayudarte de una forma más ágil.