Registrarse

Problema con script para el mote

Estado
Cerrado para nuevas respuestas.

Famidox

Rom Hacker principiante
hola amigos, tengo una duda.
quisiera saber cual es el script para activar la opción de mote para ponerle a un pokemon después que te lo da una persona, ademas quiero saber como hace que funcione y que siga el flujo del script
Si tienen alguna idea sobre la solución del problema díganlo por favor
 

Inferno

Miembro insignia
Miembro insignia
hola amigos, tengo una duda.
quisiera saber cual es el script para activar la opción de mote para ponerle a un pokemon después que te lo da una persona, ademas quiero saber como hace que funcione y que siga el flujo del script
Si tienen alguna idea sobre la solución del problema díganlo por favor
Vale, aquí tienes hay dos tipos de casos:
Que sea tu primer Pokémon.
Un Pokémon recibido una vez ya tienes el inicial.


El primer caso sería el más fácil, pues solo necesitarías dos cosas, un special y un waitstate, es decir, la siguiente estructura:

Código:
special 0x9E (Este especial lo que hace es abrir el menú para poner el mote)
waitstate (este comando lo que hace es evitar que se siga ejecutando el script, muy necesario en special que te lleven a una pantalla)
En cuanto al segundo caso ya se complica un poco más, pero es fácil una vez lo entiendes. Para ello voy a dar por hecho que tienes un mínimo de conocimiento de algunos comandos básicos, por esto te explicaré los que te pueden causar más problemas.

APUNTES NECESARIOS:

Comando countpokemon: este comando, como su nombre indica, nos cuenta los Pokémon que tenemos en el equipo y lo guarda en la variable lastresult. Esto nos dará un valor del 1 al 6. No tiene parámetros.

Comando subvar: lo que hace es restar un valor indicado a una variable indicada. 2 parámetros 0xVariable 0xValor.

Comando copy var: copia el valor de una variable a otra. 2 parámetros 0xVariable a la que se le quiere dar el valor 0xVariable con el valor.

Dicho esto la estructura en si sería la siguiente:
Código:
countpokemon
subvar LASTRESULT 0x1
copyvar 0x8004 LASTRESULT
fadescreen 0x1
special 0x9E
waitstate

  1. Contamos la cantidad de Pokémon de nuestro equipo
  2. Le restamos a la variable lastresult (800D) un valor. Como en este caso nuestro lastresult es el countpokemon restará un valor del obtenido en ese comando.
  3. Copia el valor de lastresult (en este caso lastresult es la resta arriba mencionada, no confundir con el anterior) en la variable 8004, esto tenemos que hacerlo así puesto que el special 0x9E trabaja únicamente por los valores de esta variable.
  4. Un fadescreen normal, que por decirlo de algún modo hace la entrada al special.
  5. Se ejecuta el special del mote.

Ahora voy a explicarte un poco como va todo para que lo entiendas bien.

El special 0x9E, como te dije, trabaja sobre el valor de la variable 8004, esto lo hace para saber en que slot de tu equipo se encuentra el último Pokémon recibido por este motivo no es necesario todo esto cuando te dan tu primer Pokémon, ya que estará si o si en el primer lugar.
El orden que sigue es:
Si el valor de la variable es 0 se le asignara el mote al primer Pokémon de tu equipo, si el valor es 1 se asignara el mote al Pokémon del segundo slot, y así hasta llegar al valor 5 que sería el último slot.
Vale, ya hemos entendido el porque del copyvar y el funcionamiento del special a causa de la variable, pero te preguntarás ¿Y el subvar a que viene entonces?
Pues es muy sencillo si has entendido todo lo anterior mencionado.
El countpokemon guarda en 800D un valor del 1 al 6 y el special trabaja sobre unos valores del 0 al 5, ¿Algo no cuadra bien no? He aquí el motivo del subvar, restar un valor de lo obtenido en el countpokemon para que pueda ser utilizado por el special de forma correcta.


Sobre lo que mencionas de como hacer seguir el script es sencillo, sigue poniendo código, este no parará hasta que tu se lo ordenes por medio del end :D

Te recomiendo muchísimo verte tutoriales sobre scripting, por la comunidad hay variedad, busca y encontrarás.
Y sobre lo de buscar (esto no va solo por ti), si usáis el buscador del foro o mismo Google especificando lo que buscáis + Whack a hack, seguramente encontrareis muchas dudas resueltas sobre gente que tuvo el mismo problema y alguien le ayudó ya.

Usando esto último me encontré con algo que no conocía:
Dicho por @Cheve_X
Para los amantes de ahorrar espacio, en FR, el offset 0x1A74EB es un offset comodín hecho para cada vez que se va a poner un mote
Lo dejó por si alguien no lo sabía tampoco.

Quizás me haya extendido demasiado xD
Me gusta dejar las cosas lo más claras posibles e intentándolo explicar fácil aún así si no te ha quedado algo claro no dudes en preguntar.
Suerte!! :D
 
Estado
Cerrado para nuevas respuestas.
Arriba