Registrarse

[Duda FR] Comprobando la Pokédex

Estado
Cerrado para nuevas respuestas.
Hola y muy buenas.
Ahora que ya estoy empezando con los scripts "fuertes" de mi hack, se me ha planteado la duda de saber como en Fire Red se hace para comprobar la cantidad de Pokémon vistos (y si se puede, capturados), incluso (como hace Oak) diferenciando las "zonas" (si no me equivoco, era capaz de aconsejar
donde atrapar cierto tipo de Pokémon) a las que pertenecen los Pokémon.

Esta duda me surge por dos motivos:
  1. He empezado a hacer el script de Oak desde cero, y quiero que despues de "X FLAG", cuando hables con él te revise la Pokédex y te dé cierto objeto si tienes tantos Pokémon.
  2. De paso, tambien quiero "programar" a los ayudantes desperdigados por la región para que, de igual manera, te den "X objeto" si tienes "X pokémon".

Entonces la pregunta es sencilla (la respuesta lo dudo):
¿Como puedo "programar" la comprobación del numero (y si se puede, tipo) de Pokémon avistados (y si se puede, capturados) de la Pokédex?

Voy a dejar el script de uno de los ayudantes para que lo tengais más a mano (no soy muy bueno con las variables y los comandos complejos... por ello me cuesta saber como funciona):
Código:
'---------------
#org 0x17037E
lock
faceplayer
call 0x817040A
checkflag 0x2FD
if 0x1 goto 0x8170400
msgbox 0x819F7A1 MSG_YESNO '"¡Hola! ¿Te acuerdas de mí?\n¡Soy A..."
compare LASTRESULT 0x0
if 0x1 goto 0x81A759A
setvar 0x8004 0x0
special2 LASTRESULT 0xD4
buffernumber 0x2 0x8006
call 0x817040A
compare 0x8006 0x28
if 0x0 goto 0x81A7586
msgbox 0x819F859 MSG_KEEPOPEN '"¡Bien! ¡Has logrado [buffer3] tipo..."
checkitemroom 0xBD 0x1
compare LASTRESULT 0x0
if 0x1 goto 0x81A7590
additem 0xBD 0x1
loadpointer 0x0 0x819F89E '"¡[player] obtuvo MON. AMULETO\nde ..."
giveitem2 0xBD 0x1 0x101
setflag 0x2FD
msgbox 0x819F8CD MSG_KEEPOPEN '"Una MONEDA AMULETO es un objeto\nq..."
release
end

'---------------
#org 0x17040A
buffernumber 0x0 0x28
bufferitem 0x1 0xBD
return

'---------------
#org 0x170400
msgbox 0x819F8CD MSG_KEEPOPEN '"Una MONEDA AMULETO es un objeto\nq..."
release
end

'---------------
#org 0x1A759A
msgbox 0x81A5488 MSG_KEEPOPEN '"¡Ah! Ya veo.\pCuando tengas [buffe..."
release
end

'---------------
#org 0x1A7586
msgbox 0x81A542D MSG_KEEPOPEN '"Veamos...\n¡Oh! ¡Atrapaste solamen..."
release
end

'---------------
#org 0x1A7590
msgbox 0x81A54BE MSG_KEEPOPEN '"¡Oh! Ya veo que no tienes sitio\np..."
release
end


'---------
' Strings
'---------
#org 0x19F7A1
= ¡Hola! ¿Te acuerdas de mí?\n¡Soy AYUDANTE del PROF. OAK!\p¡Si atrapaste 40 tipos de POKéMON,\nse supone que debería darte\lMON. AMULETO!\pDime, [player]. ¿Tienes ya al menos\n40 tipos de POKéMON?

#org 0x19F859
= ¡Bien! ¡Has logrado [buffer3] tipos\nde POKéMON!\p¡Enhorabuena!\n¡Aquí tienes!

#org 0x19F89E
= ¡[player] obtuvo MON. AMULETO\nde manos del AYUDANTE!

#org 0x19F8CD
= Una MONEDA AMULETO es un objeto\nque puede llevar un POKéMON.\pSi gana el POKéMON que la tenga,\nconseguirás más dinero.

#org 0x1A5488
= ¡Ah! Ya veo.\pCuando tengas [buffer1] tipos, vuelve\na por [buffer2].

#org 0x1A542D
= Veamos...\n¡Oh! ¡Atrapaste solamente [buffer3] tipos\lde POKéMON!\pNecesitas [buffer1] tipos si quieres\n[buffer2].

#org 0x1A54BE
= ¡Oh! Ya veo que no tienes sitio\npara [buffer2].

¡Muchas gracias y espero vuestra respuesta!
 
compare 0x8006 0x28

Este es el comando.
¿Y como hago para que sea "correcto" o no el valor que devuelve...
¿Podrías explicarme como va un poco el script?
Imagino que ese es el que detecta el numero de Pokémon pero, ¿como lo comparo por ejemplo con el numero "20" para que, si tienes más de "20" te de X objeto y si no tienes más de "20" te dice que te faltan pokémon?
 
Estado
Cerrado para nuevas respuestas.
Arriba