Registrarse

Como fijar un movimiento?

Estado
Cerrado para nuevas respuestas.

Tyjet

Artista
Buenas! Sigo haciendo mis pruebas con el script, y me ha surgido otra duda.

Tengo este script:

Código:
'---------------
#org 0x800000
faceplayer
checkflag 0x500
if 0x1 goto 0x8800015
msgbox 0x880006F MSG_NORMAL '"Ying: La hierba alta es peligrosa...."
release
end

'---------------
#org 0x800015
checkflag 0x501
if 0x1 goto 0x8800027
if 0x0 goto 0x8800032
release
end

'---------------
#org 0x800027
msgbox 0x88000DA MSG_NORMAL '"Ying: La líder de gimnasio Terra,\..."
release
end

'---------------
#org 0x800032
checkflag 0x503
if 0x1 goto 0x8800051
msgbox 0x8800139 MSG_YESNO '"Ying: ¡Ya tienes tu primer\nPokémo..."
compare LASTRESULT 0x1
if 0x1 goto 0x880005C
release
end

'---------------
#org 0x800051
msgbox 0x8800186 MSG_NORMAL '"Ying: Debes vencer antes al\nlíder..."
release
end

'---------------
#org 0x80005C
applymovement 0x4 0x88001D0
waitmovement 0x4
setflag 0x501
setflag 0x502
release
end


'---------
' Strings
'---------
#org 0x80006F
= Ying: La hierba alta es peligrosa.\nNo puedo dejarte pasar hasta que\lel profesor te dé tu primer\lPokémon.

#org 0x8000DA
= Ying: La líder de gimnasio Terra,\nen pueblo Tello, se especializa en\lPokémon de tipo tierra.

#org 0x800139
= Ying: ¡Ya tienes tu primer\nPokémon! ¿Quieres continuar hacia\lpueblo Tello?

#org 0x800186
= Ying: Debes vencer antes al\nlíder de ciudad Pétra para poder\lcontinuar.


'-----------
' Movements
'-----------
#org 0x8001D0
#raw 0x8 'Step Down (Very Slow)
#raw 0x12 'Step Left (Normal)
#raw 0xFE 'End of Movements

Funciona todo bien, hasta que hace el movimiento. No se como hacer para que se quede el mini en el sitio cambiado, ya que a la que me alejo o cambio de mapa, este vuelve a la ubicación inicial.

Alguna sugerencia?

Aparte, quería saber porqué cuando juntas dos checkflag en un mismo #org, éste se modifica cómo le da la gana xD

Gracias!

Ty.
 
M

Miembro eliminado 28262

Invitado
Numero 1
O pones el mini donde debe y mediante script haces que aparezca en escena
O pones dos minis y luego juegas con los setflag y los personID para que uno se oculte y el otro quede
O pones un script de nivel, pero no creo que eso sirva de mucho sinceramente

NUMERO2
Al hacer un checkflag no sirve compararlo si si o no, simplemente compara el si
y sigue el script como si fuera el no

Ejemplo:

Código:
checkflag 0x230
compare 0x800d 0x1
if 0x1 goto @yes
[...resto del script..]
end

#org @yes
[resto del script]
end/return (dependiendo de lo que quieras)
Espero que te sirva de ayuda amigo,
si tienes más dudas no te cortas y pregunta.
Suerte y Buenas vibras!

#ÉliteSeich
 

Wistons7

¡¡CASI EXPERTO!!
Bueno, si quieres que el mini se mueve a una posición en especifico, cuando se active una flag simplemente as esto.

En el mapa donde quieres que se mueva el mini, y creas un escrip algo así.

#dynamic 0x900000
#org @ini
checkflag 0x N° de la flag que va a chequear para mover el scrip.
if 0x1 goto @ini1
end

#org @ini1
checkflag 0xotra flag, si quieres que al chequear cierta flag el mini valla a otra posición.
if 0x1 got @ini2
movesprit2 0xposición donde se va mover 0xla otra posición 0xN° de sprite.
end

#org @ini2
releasea
end
Después Te vas a Ver Cabezal

Y aqui.



Luego pegas el N° donde compilaste el scrip y listo.

PD: Para que se mueva activa la flag.
 

Tyjet

Artista
SAGE, si me hacía falta poner el checkflag con if 0x1 y if 0x0, porque lo probé primero así:

Código:
'---------------
#org 0x800015
checkflag 0x501
if 0x1 goto 0x8800027
checkflag 0x503
if 0x1 goto 0x8800051
msgbox 0x88000DA MSG_NORMAL '"Ying: La líder de gimnasio Terra,\..."
release
end
Y me borraba parte del script, quedando así:
Código:
'---------------
#org 0x800000
faceplayer
checkflag 0x500
if 0x1 goto 0x8800015
msgbox 0x880006F MSG_NORMAL '"Ying: La hierba alta es peligrosa...."
release
end

'---------------
#org 0x800015
checkflag 0x501
if 0x1 goto 0x8800027
checkflag 0x503
if 0x1 goto 0x8800051
msgbox 0x88000DA MSG_NORMAL '"Ying: La líder de gimnasio Terra,\..."
release
end

'---------------
#org 0x800027
msgbox 0x88000DA MSG_NORMAL '"Ying: La líder de gimnasio Terra,\..."
release
end

'---------------
#org 0x800051
msgbox 0x8800186 MSG_NORMAL '"Ying: Debes vencer antes al\nlíder..."
release
end


'---------
' Strings
'---------
#org 0x80006F
= Ying: La hierba alta es peligrosa.\nNo puedo dejarte pasar hasta que\lel profesor te dé tu primer\lPokémon.

#org 0x8000DA
= Ying: La líder de gimnasio Terra,\nen pueblo Tello, se especializa en\lPokémon de tipo tierra.

#org 0x800186
= Ying: Debes vencer antes al\nlíder de ciudad Pétra para poder\lcontinuar.

Por otra parte, mi primera intención era hacer tu primera sugerencia, pero no entiendo como se hace. He estado mirando el script de la chica de pueblo paleta, que en advance map está ubicada entre la casa del player y una valla, pero en el juego empieza mirando el cartel de más abajo, y hasta que no hablas con ella, no se va a su posición original.
Su script tiene un par de call de por medio, pero no se si será eso..
 

Inferno

Miembro insignia
Miembro insignia
Respuesta: Re: Como fijar un movimiento?

SAGE, si me hacía falta poner el checkflag con if 0x1 y if 0x0, porque lo probé primero así:

Código:
'---------------
#org 0x800015
checkflag 0x501
if 0x1 goto 0x8800027
checkflag 0x503
if 0x1 goto 0x8800051
msgbox 0x88000DA MSG_NORMAL '"Ying: La líder de gimnasio Terra,\..."
release
end
Y me borraba parte del script, quedando así:
Código:
'---------------
#org 0x800000
faceplayer
checkflag 0x500
if 0x1 goto 0x8800015
msgbox 0x880006F MSG_NORMAL '"Ying: La hierba alta es peligrosa...."
release
end

'---------------
#org 0x800015
checkflag 0x501
if 0x1 goto 0x8800027
checkflag 0x503
if 0x1 goto 0x8800051
msgbox 0x88000DA MSG_NORMAL '"Ying: La líder de gimnasio Terra,\..."
release
end

'---------------
#org 0x800027
msgbox 0x88000DA MSG_NORMAL '"Ying: La líder de gimnasio Terra,\..."
release
end

'---------------
#org 0x800051
msgbox 0x8800186 MSG_NORMAL '"Ying: Debes vencer antes al\nlíder..."
release
end


'---------
' Strings
'---------
#org 0x80006F
= Ying: La hierba alta es peligrosa.\nNo puedo dejarte pasar hasta que\lel profesor te dé tu primer\lPokémon.

#org 0x8000DA
= Ying: La líder de gimnasio Terra,\nen pueblo Tello, se especializa en\lPokémon de tipo tierra.

#org 0x800186
= Ying: Debes vencer antes al\nlíder de ciudad Pétra para poder\lcontinuar.

Por otra parte, mi primera intención era hacer tu primera sugerencia, pero no entiendo como se hace. He estado mirando el script de la chica de pueblo paleta, que en advance map está ubicada entre la casa del player y una valla, pero en el juego empieza mirando el cartel de más abajo, y hasta que no hablas con ella, no se va a su posición original.
Su script tiene un par de call de por medio, pero no se si será eso..
Voy a recalcar una cosita, if 0x0 no te hace falta como dice Seich (si, yo pensaba que se decía saje o sage tal cual xD), pues solo iría a ese punto si no se cumplió lo anterior, con poner un:
Código:
checkflag 0x503
if 0x1 goto 0x8800051
goto @loquesea
Ya serviría así. Otra cosa a destacar es el release, pues lo usas en vano si previamente no has bloqueado nada con un lock.
 

Tyjet

Artista
Infernape, gracias! Así he podido pulir un poco el script (aunque he tenido que dejar el release después del msgbox de yes/no, y después del applymovement, o se me quedaba el texto en pantalla hasta que abría un nuevo texto).


Por otra parte, Wistons, he intentado con lo de cabezal y nada, ni con flags ni con var.. no se que debo estar haciendo mal TT.

Código:
'---------------
#org 0x8001EE
compare 0x40FF 0x0
if 0x1 call 0x88001FB
end

'---------------
#org 0x8001FB
movesprite2 0x4 0xE 0x13
return
Así es como lo he puesto intentado hacer script de nivel (creo que es de nivel, vaya xD), imitando el como tiene puesto la posición inicial del mini de la chica:

Código:
'---------------
#org 0x165465
setworldmapflag 0x890
checkflag 0x291
if 0x1 call 0x8165488
compare 0x4070 0x0
if 0x1 call 0x81654A8
compare 0x4070 0x1
if 0x1 call 0x81654A2
end

'---------------
#org 0x1654A8
checkflag 0x291
if 0x1 goto 0x81654BD
movesprite2 0x1 0x5 0xF
spritebehave 0x1 0x7
return
Pero nada U.u Creo que solo me queda probar lo de poner 2 minis y ir ocultando (aunque tiene pinta de ser lo que más espacio utiliza no? ><).
 
M

Miembro eliminado 28262

Invitado
Infernape, gracias! Así he podido pulir un poco el script (aunque he tenido que dejar el release después del msgbox de yes/no, y después del applymovement, o se me quedaba el texto en pantalla hasta que abría un nuevo texto).


Por otra parte, Wistons, he intentado con lo de cabezal y nada, ni con flags ni con var.. no se que debo estar haciendo mal TT.

Código:
'---------------
#org 0x8001EE
compare 0x40FF 0x0
if 0x1 call 0x88001FB
end

'---------------
#org 0x8001FB
movesprite2 0x4 0xE 0x13
return
Así es como lo he puesto intentado hacer script de nivel (creo que es de nivel, vaya xD), imitando el como tiene puesto la posición inicial del mini de la chica:

Código:
'---------------
#org 0x165465
setworldmapflag 0x890
checkflag 0x291
if 0x1 call 0x8165488
compare 0x4070 0x0
if 0x1 call 0x81654A8
compare 0x4070 0x1
if 0x1 call 0x81654A2
end

'---------------
#org 0x1654A8
checkflag 0x291
if 0x1 goto 0x81654BD
movesprite2 0x1 0x5 0xF
spritebehave 0x1 0x7
return
Pero nada U.u Creo que solo me queda probar lo de poner 2 minis y ir ocultando (aunque tiene pinta de ser lo que más espacio utiliza no? ><).
Na, no te ralles, es lo mejor
Y teniendo a tu disposición mas de 8millones de bytes no creo que eso suponga un problema para nada.

Recuerda que para que la msgbox se cierre tienes o que hacer un msgbox 0x4 o poner el comando closeonkeypress

Saludos homie!
Buenas vibras!

#EliteSeich
 

Tyjet

Artista
Vale, después de varias vueltas , por fin tengo solucionado este tema (acabé usando hide/showsprite), así que pueden cerrarlo ^^.

Ty.
 
Estado
Cerrado para nuevas respuestas.
Arriba