Este post de PokeCommunity contiene lo que necesitás.Se puede crear un script en Pokémon Fire Red, que al iniciarlo, Cause un estado (Ya sea envenenarlo, paralizarlo, etc), igual que en el Rom Hack de Esmeralda "Pokémon Glazed"?
Y como lo haría?
writebytetooffset 0xNumero 0x20242D4
puedes inflingir un estado alterado al primer Pokémon del equipo, donde 0xNumero representa el estado alterado en cuestión.#define STATUS1_NONE 0x0
#define STATUS1_SLEEP 0x7
#define STATUS1_POISON 0x8
#define STATUS1_BURN 0x10
#define STATUS1_FREEZE 0x20
#define STATUS1_PARALYSIS 0x40
#define STATUS1_TOXIC_POISON 0x80
Creo que no se podrá, ya que el script va a leer el primer Pokémon ( o dependiendo de cuál coloques ), que YO SEPA no hay forma de evitarlo.Oye, una duda, ¿como evito que un huevo se envenene?
Creo que no se podrá, ya que el script va a leer el primer Pokémon ( o dependiendo de cuál coloques ), que YO SEPA no hay forma de evitarlo.
No. Naturalmente, si utilizas el comando de scripting¿Siempre leera el 1er pokemon aunque el script elija uno al azar?
random
, vos podés hacer que cualquiera de los 6 Pokémon en el equipo sufra un estado alterado.writebytetooffset
.special 0x9F
, pero como hace uso de la pantalla de equipo Pokémon para elegir un Pokémon, podria no ajustarse a tus necesidades.Ese es el punto, no hay una forma sencilla de comprobar si una especie es un huevo mediante scripting sin utilizar elYyy no podria, (solo es suposicion...) agregarse la condicion de chequear si es un huevo antes delwritebytetooffset
en cada espacio?
special 0x9F
como lo mencioné ahi arriba, al menos hasta donde yo sé.Ok, seguiré probando...Ese es el punto, no hay una forma sencilla de comprobar si una especie es un huevo mediante scripting, sin utilizar elspecial 0x9F
como lo mencioné ahi arriba. Al menos hasta donde yo sé.
special2 0x800d 0x(y el pokemon)
compare
y un if
.... Ese es un uso incorrecto delOk, seguiré probando...
De hecho he investigado y encontre varias cosas de como hacer un "checkpokemon"...
Creo que va algo asi...
special2 0x800d 0x(y el pokemon)
Y luego uncompare
y unif
....
Pero no mencionan mucho sobre comonusarlo....
special2
.special
, y guardar dicho resultado en una variable a tu elección.special2 0x800d 0x147
invocaria el special 0x147
y guardaria su resultado en la variable 0x800D (tambien conocida como LASTRESULT).special 0x9F // Abre la pantalla de Equipo Pokémon para elegir uno, y guarda el slot del equipo en el que está en la var 0x8004
waitstate
compare 0x8004 0x6 // Comprueba si el Jugador cerró la pantalla sin elegir a un Pokémon
if 0x4 goto @end
special2 0x800d 0x147 // Llama al special 0x147 que obtiene la especie del Pokémon en la var 0x8004, y guarda el resultado en la var 0x800D
compare 0x800d 0x19c // Comprueba si dicha especie es un huevo
if 0x1 goto @nope
special 0x9F
quizá no sea lo que tú quieras hacer. No lo sé.See, por que el evento seria... Pues eso, como en Pokémon Glazed, pasar por un lugar peligroso, o algo por el estilo y que se se le ponga un estado a un Pokémon... pero ya es muy raro que un huevo se envenene... Y que gane exp... Arruinando la magia de no saber que huevo es el que cargas...Ese es un uso incorrecto delspecial2
.
Lo que esa función hace es tomar el resultado de una función de codigo llamada mediante la funciónspecial
, y guardar dicho resultado en una variable a tu elección.
Por ejemplo,special2 0x800d 0x147
invocaria elspecial 0x147
y guardaria su resultado en la variable 0x800D (tambien conocida como LASTRESULT).
Como mencioné antes, una forma de comprobar si una especie es un huevo Pokémon involucra el special 0x9F, pero tambien involucra a este special (el 0x147).
Una persona podria hacer lo siguiente:
Pero bueno, ahi ya me vuelvo a repetir. Comprobar una especie usando elCódigo:special 0x9F // Abre la pantalla de Equipo Pokémon para elegir uno, y guarda el slot del equipo en el que está en la var 0x8004 waitstate compare 0x8004 0x6 // Comprueba si el Jugador cerró la pantalla sin elegir a un Pokémon if 0x4 goto @end special2 0x800d 0x147 // Llama al special 0x147 que obtiene la especie del Pokémon en la var 0x8004, y guarda el resultado en la var 0x800D compare 0x800d 0x19c // Comprueba si dicha especie es un huevo if 0x1 goto @nope
special 0x9F
quizá no sea lo que tú quieras hacer. No lo sé.
Yo seguramente preferiria un chequeo silencioso, que no requiera que el Jugador tenga que elegir un pokémon manualmente.
Seguramente sí. Yo no sé mucho al respecto, pero me imagino que deberia ser posible escribir una rutina que haga un loop chequeando los 6 slots del Equipo Pokémon en busqueda de un Huevo Pokémon, y si hay uno hacer que dicha rutina ponga a la var 0x800D en 1 o 0 (TRUE o FALSE).Yaa quee.... Muchas gracias con el script de los estados, y una ultima pregunta.... No se puede hacer una rutina en ASM para eso?...
random
deberia permitirte saltar Huevos Pokémon a la hora de infligir estados alterados.Oye, un usuario llamado Acimut pudo proporcionarme información de lo que le hacia falta a mi Script para checar el huevo dentro del equipo y así evitar que se envenene, lo dejare aquí por si te sirve en el futuro a ti.... o por si alguien más lo necesita....Seguramente sí. Yo no sé mucho al respecto, pero me imagino que deberia ser posible escribir una rutina que haga un loop chequeando los 6 slots del Equipo Pokémon en busqueda de un Huevo Pokémon, y si hay uno hacer que dicha rutina ponga a la var 0x800D en 1 o 0 (TRUE o FALSE).
Una rutina tal, en conjunto conrandom
deberia permitirte saltar Huevos Pokémon a la hora de infligir estados alterados.
'---------------
#dynamic 0x800000
#org @inicio
countpokemon
random LASTRESULT
copyvar 0x8004 LASTRESULT 'ahora 0x8004 guarda la posición del pokémon.
special 0x148
compare LASTRESULT 0x1
if 0x1 goto @huevo
bufferpartypokemon 0x0 0x8004 'usamos 0x8004 en vez de LASTRESULT
msgbox @buffer1was MSG_NORMAL '"[buffer1] was poisoned."
compare 0x8004 0x0
if 0x1 goto @poke0
compare 0x8004 0x1
if 0x1 goto @poke1
compare 0x8004 0x2
if 0x1 goto @poke2
compare 0x8004 0x3
if 0x1 goto @poke3
compare 0x8004 0x4
if 0x1 goto @poke4
compare 0x8004 0x5
if 0x1 goto @poke5
end
'---------------
#org @poke0
writebytetooffset 0x8 0x20242D4
release
end
'---------------
#org @poke1
writebytetooffset 0x8 0x2024338
release
end
'---------------
#org @poke2
writebytetooffset 0x8 0x202439C
release
end
'---------------
#org @poke3
writebytetooffset 0x8 0x2024400
release
end
'---------------
#org @poke4
writebytetooffset 0x8 0x2024464
release
end
'---------------
#org @poke5
writebytetooffset 0x8 0x20244C8
release
end
'---------------
#org @huevo
msgbox @eggwasnt MSG_NORMAL '"The Egg wasn't poisoned."
end
'---------
' Strings
'---------
#org @buffer1was
= [buffer1] was poisoned.
#org @eggwasnt
= The Egg wasn't poisoned.