9439-GBA_|_Scripting_|_Uso_correcto_del_waitmovement,_perfeccionando_hacks
#0
Rogy 12282
Bueno, esto es un pequeño tutorial, o más bien una aclaración, de una duda que me ha surgido en mi vuelta como RomHacker (sí, estoy intentando volver)

Siempre que nos han enseñado a usar un applymovement nos han dicho que podemos usar un comando después para esperar a que el movimiento termine. Y bien, nosotros hacíamos lo siguiente:

applymovement 0xNºMini @direccióndelmovimiento
waitmovement 0x0

El problema, que aquí no sucede, es cuando intentas usar ese mismo comando en un MOVE_PLAYER o en un MOVE_CAMERA.

Os mostraré un ejemplo de un script que presenté a un concurso y que contenía ese error, solucionado hoy mismo, al darme cuenta:
YouTube Video

Código original de la parte del error(que no se ve en el video, pero es para que comparéis y situéis el error)
special 0x113
applymovement MOVE_CAMERA 0x8900020
applymovement 0xB 0x8900180
waitmovement 0x0
msgbox 0x88003A0 MSG_NORMAL '"Rocket: Venga, danos la pasta ya,\..."
msgbox 0x8800620 MSG_NORMAL '"Comprador: Pero es que me da pena\..."

Con ese código, cuando el MOVE_CAMERA se estaba efectuando, el diálogo aparecía, y si pulsabas A, el MOVE_CAMERA se paraba, dejándote en una situación estúpida.

El problema viene del waitmovement, que tiene como parámetro 0x0 y debería tener como parámetro 0x7F.

Explico:


En la descripción del parámetro pone, traducido:
Bytes necesarios: 3
Parámetros:
> Número de persona(movimiento) a la que esperar.

Así que de ahí el error, no debería aparecer 0x0, sino 0x7F (7F es el número Hex que corresponde a la cámara).

Así que para cuando pongáis un waitmovement, recordad que el parámetro no es 0x0, sino el número de la persona que realiza el movimiento.

applymovement 0xNºMini @direccióndelmovimiento
waitmovement 0xNºMini

Y ahora diréis: "¡Qué estupidez de tutorial", y tendréis razón, si no sois cuidadosos con vuestra obra o si no os ha ocurrido ese error nunca, pero estaría bien que revisaseis vuestros scripts y comprobaseis errores, ¿no creéis?