qna_rh
Thread Id: 23949
Thread Name: No se ejecuta el applymovement
#0
MonsterCat! 26022
Os explico:
He intentado hacer un applymovement, ayudado por este tuto http://wahackforo.com/t-12807/tutorial-sobre-scripts.
Lo que me pasa es lo siguiente: al ponerle el applymovement y waitmovement etc, tambien le añadí flags para que no se repitiera (los movimientos los puse gracias a Move It! 1.3), pero cuando tengo que hablar con quien se supone que pasa el script, solo me dice la frase y ya esta, es mas, cuando vuelvo a hablar con él me vuelve a decir la frase. ¿Alguien me puede ayudar?. Aqui el script:

#dynamic 0x800000

#org @inicio
lock
checkflag 0x2100
msgbox @frase 0x6
applymovement 0x1 @mov1
waitmovement 0x1
setflag 0x2100
release
end

#org @frase
= Team Rocket: ...y si vuelve a\nmeterse por en medio sabrá lo que\les bueno.

#org @mov1
#raw 0x4 'Mirar Abajo (Rápido)
#raw 0x10 'Paso Abajo
#raw 0x10 'Paso Abajo
#raw 0x12 'Paso Izquierda
#raw 0x12 'Paso Izquierda
#raw 0x10 'Paso Abajo
#raw 0x10 'Paso Abajo
#raw 0x10 'Paso Abajo
#raw 0x10 'Paso Abajo
#raw 0x12 'Paso Izquierda
#raw 0x12 'Paso Izquierda
#raw 0x12 'Paso Izquierda
#raw 0xFE

Gracias de antemano :).
#1
Javi4315♪ 13374
Debes utilizar una de estas flags:

[QUOTE="Manual del rom hacker"]Desde la 0x200 hasta la 0x29F
Desde la 0x500 hasta la 0x79F
Desde la 0x1000 hasta la 0x109F[/QUOTE]

De todas formas, cuando tú pones un checkflag es para poner una condición. Tienes que poner un if 0x(condición) goto @(pointer). Que quiere decir que comprueba si la flag está activada y dependiendo de si lo está o no lo está, te mandará a otro lugar o seguirá leyendo el script desde ese punto.

Es bastante complicado de explicar así en unas lineas, te recomiendo que mires la séptima entrega de este manual donde explico las flags:

http://wahackforo.com/t-16885/macrotutorial-hacking-desde-0-7-entrega

El movimiento en principio creo que está bien.
#2
ReoNeky 18653
Yo lo veo correcto, así que deduzco que puede que sea el "número de persona" que esté mal. Míralo bien y lo cambias el applymovement 0x1 (Por el que sea)
O, cabe la posibilidad de que hayan el el mismo mapa 2 minis con el mismo número de persona, y por eso falle. Así que te aconsejaría (Si es que es esto) cambiar el número en AM del minisprite que quieres mover por otro que no esté en el mapa.

Por lo demás lo veo correcto.

¿No querías que se repitiese? Deberías poner la condición.

If 0x1 goto 0x(Dirección vacía y luego le pones un end en esta dirección)

¡Espero que sea eso! ¡Saludos!
#3
MonsterCat! 26022
Al final gracias a los 2 porque creo que me faltaban todo lo que deciais ;), os dejo como me quedó:

#dynamic 0x800000

#org @inicio
lock
checkflag 0x200
if 0x1 goto 0x800000
msgbox @frase 0x6
applymovement 0x6 @mov1
waitmovement 0x13
setflag 0x200

#org @frase
= Team Rocket: ...y si vuelve a\nmeterse por en medio sabrá lo que\les bueno.

#org @mov1
#raw 0x4 'Mirar Abajo (Rápido)
#raw 0x10 'Paso Abajo
#raw 0x10 'Paso Abajo
#raw 0x12 'Paso Izquierda
#raw 0x12 'Paso Izquierda
#raw 0x10 'Paso Abajo
#raw 0x10 'Paso Abajo
#raw 0x10 'Paso Abajo
#raw 0x10 'Paso Abajo
#raw 0x12 'Paso Izquierda
#raw 0x12 'Paso Izquierda
#raw 0x12 'Paso Izquierda
#raw 0xFE

release
end

Ya pueden cerrar :D
#4
Tito Sayer301 26309
Bueno, no era así exactamente pero ya lo hemos arreglado por perfil, así que duda solucionada y tema cerrado, hoy no suelto rima porque hace nada que me he despertado.