Para el tema flags, te diré una descripcion bien sencilla que siempre ayuda.
Una flag es una "bandera" que puede estar levantada o bajada.
Levantada = valor "1" (Se pone valor uno una flag, cuando se pone "setflag 0xflag")
Bajada = valor "0" (Por defecto la mayoria de flags estan bajadas..)
Entonces, luego todo eso está muy bien, pero como hacemos para que hasta que no hayas hecho "X" cosa, no puedas hacer "Y" cosa?
Bien sencillo, es con los condicionales.
Un condicional es el famoso "IF".
El if se usa asi..
"IF 0x1 goto 0xscript"
Lo que quiere decir eso es, "Si la flag está activada ir a script".
(Si no estubiese activada, seguiria ejecutandose el script, es decir lo que haya debajo del if)
Un ejemplo rapido.
#org 0xscript1
faceplayer
checkflag 0x800
if 0x1 goto 0xscript2
msgbox 0x8mensaje1
callstd 0x3
givepokemon 0x1 0x5 0x0 0x0 0x0
setflag 0x800
end
#org 0xscript2
faceplayer
msgbox 0x8mensaje2
callstd 0x3
end
#org 0xmensaje1
= Toma tu primer pokémon.
#org 0xmensaje2
= Ya tienes un pokémon.
¿Ves? ahí has usado un condicional.
Y ahora en una ruta para que no pases hasta que tengas tu pokemon seria asi..
#org 0xscript1
checkflag 0x800
if 0x1 goto 0xscript2
msgbox 0x8mensaje1
callstd 0x3
applymovement 0xFF 0x8movimiento1
waitmovement 0x0
end
#org 0xscript2
end
#org 0xmensaje1
= No puedo salir del pueblo sin un pokemon.
#org 0xmovimiento1
#binary movimientos FE