Registrarse

Flag special con la cual se registran los Pokémon en la Pokédex.

Estado
Cerrado para nuevas respuestas.

Cronocato

Profesional de WaH
Hola! Mi duda es si alguien sabe cual es la flag special con la que se registra un Pokémon en la Pokédex para la ROM de Pokémon Esmeralda.
En Pokémon Rojo Fuego encontré que está flag a la que me refiero es la special 0x163. Entonces por medio de un script

#org 0xAlgo
setvar 0x8004 0x85
special 0x163
end

se puede hacer que Eevee se registre como visto en la Pokédex. El personaje debe pasar por donde está ubicado el script. Mi intención es verificar si este mismo script, pero con la variable y flag special adecuada para esmeralda, funciona igualmente. De antemano, gracias.
 

Bugrhak

A long time ago I used to call myself "Subzero".
La verdad no tengo ni idea ya que no trabajo con esmeralda, pero de entrada te digo, que estás confundiendo las cosas.
No se registraría con una flag, una flag es como un botón, solo tiene "off/on".

A lo que tu te refieres es a variables, véase en el fragmento de script que adjuntaste, no hay comando relacionado con alguna flag.

Bueno, para no dejarte con las manos vacías, voy a buscar por ahí a ver que se encuentra ;).

PD: Creo que Javi4315 hizo una rutina para hacer esto, pero solo es para FR (o eso me temo).
 

Cronocato

Profesional de WaH
Gracias. Si confundí el special con una flag. Bien escribó algo más que puede ser de ayuda y que además puede usarse. Utilice el script que menciono antes,

#org 0xAlgo
setvar 0x8004 0x85
special 0x163
end

,como script de nivel en el mapa del laboratorio del profesor Oak (en Advanced Map es el mapa Pueblo paleta (4,3)), con tipo de script 01 setmaptile script. El script se activa antes de recibír la Pokédex, cuando entras a entregarle el correo al profesor Oak. Una vez que te dan la pokédex, Eevee ya aparece como visto y se puede ver la zona donde encontrarlo, aunque en este caso es desconocida. Decidí extender el script agregando el par de líneas

setvar 0x8004 0xN
special 0x163

para cada número N considerado (diferentes Pokémon), el script quedo como

#org 0xAlgo
setvar 0x8004 0x01
special 0x163
setvar 0x8004 0x02
special 0x163
setvar 0x8004 0x03
special 0x163
setvar 0x8004 0x04
special 0x163
setvar 0x8004 0x85
special 0x163
end

y todos aparecían en la Pokédex una vez entregada. En este caso aparecen también los primeros cuatro Pokémon de la Pokédex como vistos. No se si alguien ya lo había hecho, pero esto se puede usar para hacer un script de nivel, aunque algo largo, que active como vistos a todos los Pokémon desde el principio en Pokémon Rojo Fuego.
 

.Areku_Sama

Old school ROM-Hacker EST. 2006
Es posible hacer el script más corto si deseas repetir el efecto en toda los POKéMON disponibles en la POKéDEX, no he probado si lo que dicen de los special funcione, pero en caso que sea así y desees registrar los pokémon puedes hacer lo siguiente:

#dynamic 0x<Espacio que quieras usar de la ROM>

#org @inicio
setvar 0x8004 0x1
call @ciclo
<resto de tu script>
end

#org @ciclo
compare 0x6100 386 '(Compara si la variable 6100 tiene el valor de 386 en DECIMAL)
special 0x163 '(Especial para registrar los POKéMON (en caso que funcione))
addvar 0x6100 0x1 '(Agrega 1 al variable 6100)
copyvar 0x800d 0x6100 '(Copia el valor de 6100 a la variable 800D)
if 0x0 goto @ciclo '(Si no se han registrado todos los pokémon, se repite hasta que se repitan los 386 existentes, creo que eran 386 xD)
return '(Regresa al script anterior para terminar de ejecutarse.)



Si me equivoqué en algo, pido me corrijan.
 

Cronocato

Profesional de WaH
Gracias .Areku_Sama utilice el script que propones, pero le hice algunos cambios. Quedó así:

#dynamic @EspacioLibre

'---------------
#org @inicio
special 0x16F 'Este especial activa la Pokédex nacional desde el principio'
setvar 0x8004 0x1 'Se da el valor inicial de 0x1 a la variable 8004'
special 0x163 'Este especial utiliza 8004 = 0x1 para registrar a bulbasaur como visto'
call @ciclo 'Se activa el ciclo'
end

'---------------
#org @ciclo
addvar 0x8004 0x1 'Se agrega 1 a la variable 8004'
special 0x163 'Se registra el Pokémon 8004 + 0x1 como visto en la Pokédex'
compare 0x8004 0x182 'Se compara el nuevo valor de la variable con 0x182 (en decimal 386)'
if 0x0 goto 0x871A250 'El ciclo se repite hasta que 8004 menos 0x182 = 0x0, según entiendo yo'
return 'Regresa a @inicio y términa el script con end'


Este script funciona, pero ocurre algo que no puedo explicar. La Pokédex nacional solo llega hasta el Pokémon 370 (Luvdisc) y ocho Pokémon por abajo de luvdisc no se ven, todavía aparecen las líneas punteadas y no el nombre.
Todavía me gustaría saber si este script o una variente del mismo se puede usar en Pokémon Esmeralda.
 

Bugrhak

A long time ago I used to call myself "Subzero".
Gracias .Areku_Sama utilice el script que propones, pero le hice algunos cambios. Quedó así:

#dynamic @EspacioLibre

'---------------
#org @inicio
special 0x16F 'Este especial activa la Pokédex nacional desde el principio'
setvar 0x8004 0x1 'Se da el valor inicial de 0x1 a la variable 8004'
special 0x163 'Este especial utiliza 8004 = 0x1 para registrar a bulbasaur como visto'
call @ciclo 'Se activa el ciclo'
end

'---------------
#org @ciclo
addvar 0x8004 0x1 'Se agrega 1 a la variable 8004'
special 0x163 'Se registra el Pokémon 8004 + 0x1 como visto en la Pokédex'
compare 0x8004 0x182 'Se compara el nuevo valor de la variable con 0x182 (en decimal 386)'
if 0x0 goto 0x871A250 'El ciclo se repite hasta que 8004 menos 0x182 = 0x0, según entiendo yo'
return 'Regresa a @inicio y términa el script con end'


Este script funciona, pero ocurre algo que no puedo explicar. La Pokédex nacional solo llega hasta el Pokémon 370 (Luvdisc) y ocho Pokémon por abajo de luvdisc no se ven, todavía aparecen las líneas punteadas y no el nombre.
Todavía me gustaría saber si este script o una variente del mismo se puede usar en Pokémon Esmeralda.
Prueba a registrar solo el siguiente pokémon a luvidic a ver que pasa.

PD: Te recomiendo usar la etiqueta "code" para cuando muestres un script, así se diferencia de entre el demás texto de tu post.

La etiqueta (o como se llame) code se usa mas o menos así:

PHP:
 [code]script[/code]
 

.Areku_Sama

Old school ROM-Hacker EST. 2006
¡Es cierto! Hay espacios entre celebi y treecko.
Lo correcto es hacer el compare hasta 0x19B que es Chimecho, el último pokemon de la dex nacional de Hoenn. Lo olvidaba.
 

H.B.P

Emperador Kaktiácero
Miembro de honor
¿Emerald o Esmeralda? Si es lo segundo, Dios nos coja confesados... Si sigues teniendo problemas con el script, asegúrate de que esa variable la puedas utilizar, pues podría servir para algún tipo de función importante, como ocurre con diversas variables en Fire Red (utilizarlas corrompe a los Pokémon del PC, por ejemplo). Mira en este tema, a ver si encuentras alguna un poco más "segura": >>accede aquí<<
 
Estado
Cerrado para nuevas respuestas.
Arriba