Respuesta: Re: [Fire Red] Función de la variable LASTRESULT
¡Cuántos conceptos erróneos!
El LASTRESULT es una sintaxis del XSE para referirse a la variable 0x800D.
Lo utiliza así ya que hay ciertos comandos que tienen una salida en dicha variable, por ejemplo:
El countpokemon, cuenta cuántos pokémons tienes en la party y guarda automáticamente ese valor en LASTRESULT (En la variable 0x800D) para que luego lo uses como quieras (Como cualquier variable).
El random, elije un numero al azar y lo guarda en LASTRESULT.
El callstd 0x5 (el 0x5 despues del msgbox) guarda 0 o 1 en LASTRESULT dependiendo de lo que contestes.
Y así con varios comandos.
Recuerda que los comandos no son más que rutinas ASM que están prediseñadas para ser combinadas, algunas de ellas devuelven valores (Como las anteriores), y otras simplemente ejecutan acciones (Applymovement) o terminan algún ciclo (closeonkeypress)
Entonces con el compare se suele poner LASTRESULT normalmente?
No, el compare es para comparar dos variables cualesquiera.
Se usa el compare LASTRESULT 0xY dependiendo de lo que estés haciendo en tu script. (Un condicional que depende del valor que te dió un comando anterior y te lo devolvió en el LASTRESULT)
Por ejemplo si quiero hacer que pase por un lugar solo teniendo un pokémon:
.
.
.
countpokemon
compare LASTRESULT 0x1
if 0x1 call @pasa
msgbox @nopasas 0x6
.
.
.
Pero si quiero que pase por ese lugar luego de completar X evento de la historia, cuando ese X evento pase, seteo la variable 0x40FF a 1
.
.
.
compare 0x40FF 0x1
if 0x1 call @pasa
msgbox @nopasas 0x6
.
.
.