Registrarse

[RH - Scripting] Pequeña duda al finalizar Script con applymovement

Estado
Cerrado para nuevas respuestas.

Kevin RD

Héroe de WaH
Buenas, tengo esta pequeña duda con el applymovement, por ejemplo, supongamos que quiero que en una habitación cuando le hables a una persona ésta camine 2 pasos a la derecha. Sin embargo al salir de la habitación y volver a entrar la persona vuelve a su posición inicial.
¿Cómo puedo hacer para que dicha persona no regrese a su posición inicial sino que ya se quede en los 2 pasos que avanzó? ¿:.
 

NateRiver

Succesor de L a tiempo parcial.
¿No has probado a utilizar las flags o los variables?
Con eso ajudaria con tu problema
 

Kevin RD

Héroe de WaH
He probado usar una flag en el Script y ponerla también en la persona donde dice People ID, pero solo consigo que la persona desaparezca para siempre luego del Script :/
 

ANT0N9

Algun Sprite?
Mmm porque no colocas 2 NPS en el mapa?
1.el primero es el que se va a mover dos pasos a la derecha y luego desaparezca para siempre.

2.el segundo lo colocas donde supuesta mente quieres que se quede el NPS. Pero este tiene que ser invisible antes de que pase lo de mover 2 pasos ,con el comando hidesprite en un script de nivel usando flags.

un ejemplo del script de nivel que necesitas seria este (el script debe de ser de nivel 3)
#dynamic 0x800000

#org @inicio
checkflag 0x200(una flag que tengas activada para que el segundo NPS no se vea)
if 0x1 goto @2
end

#org @2
setflag 0x200
hidesprite 0xnumero de sprite
end
ese script lo que hará, sera mantener invisible al NPS que este donde quieres que se quede el otro (recuerda ponerle a ese NPS la flag donde dice people ID) , y cuando tu desactives la flag, este script no se activara y ese NPS se vera en el mapa.

#dynamic 0x800000

#org @inicio
applymovement 0xNumero de NPS @mov
waitmovement 0x" "
clearflag 0x200
end

colocas en el script del personaje que se mueve dos pasos a la derecha el clearflag para que se desactive y el otro aparezca.
 

Inferno

Miembro insignia
Miembro insignia
O haces algo similar a lo que te mencionó ya @anton09 o usas un script de nivel del tipo 03/05 o incluso 07 para poder aplicar el comando movesprite2 a ese mini y hacer que se mueva a la posición que quieras.

El comando movesprite2 (solo válido en scripts de nivel) lo que hace es ejecutar un movesprite normal (cambiar la posición de un mini a una que tu le indicas) y, los tres tipos de script de nivel que te mecioné, aceptan este comando.

Código:
Movesprite2 0x(nº gente del mini) 0x(coordenada x) 0x(coordenada y)
Un script de nivel es similar a los típicos scripts de gatillo, pero, a diferencia de estos, existen varios tipos de scripts de nivel, algunos son más limitados y solo pueden hacer ciertas cosas y aceptar ciertos comandos únicamente, otros son más flexibles y se pueden asemejar de mayor forma a los de gatillo.

La diferencia entre unos y otros son la manera de activarse, para los de gatillo necesitabas pisar en la casilla determinada, pero los scripts de nivel, dependiendo del tipo, se accionan al entrar directamente al mapa, luego de un combate...
También se diferencian en las condiciones de activación, un script de gatillo trabajaba en función del valor de una variable, pues aquí se dan varios casos, algunos scripts de nivel funcionan de la misma manera, a partir del valor de una variable, pero otros no, otros se activarán siempre que entres al mapa o de la manera que se tengan que activar según el tipo que tú elijas.

Te los he explicado así muy por encima pero para que tengas una mínima idea, lo recomendable es que te pasases por este tutorial y te mirases la última entrega y la anterior: https://whackahack.com/foro/t-16885/macrotutorial-gba-hacking-desde-0-8-9-entrega
 

Markuzz Kaizuka

Usuario de platino
Como dijo Inferno, también puedes fijarte del script de nivel de ciudad celeste.
Usando un scritp de nivel pones el movesprite2 mientras la flag este desactivada el mini se moverá cada vez que entres al mapa de su posición original y luego cuando se active
lo pones para que no pase nada y el mini se quede en su lugar.
 
Estado
Cerrado para nuevas respuestas.
Arriba