tuts_gba
Thread Id: 28764
Thread Name: Barcos Controlables en Juegos de la 3ª Generacion [AHORA EN ESPAÑOL]
#0
Dark Sneasel 28274
En mi hack, yo necesitaba una escena en la que el jugador tiene que montarse en varios barcos. Pero, no quieria hacer lo mismo que hicieron en RSE, donde alguien conduce el barco para usted, me decidí a hacer un par de scripts en que el jugador controla los barcos! Voy a compartir aquí, y lo explico para que otros lo usen. Ahora, usualmente yo no pido crédito, pero si usted decide usar esto, por favor dame crédito, me tome un tiempo para hacer esto.

De todas formas, aquí hay algunas cosas a tener en cuenta antes de empezar:


Bien, ahora vamos a empezar. Esto es lo que quiero decir con barcos controlables:

YouTube Video

(No se puede ver en el video, por que es un video, pero el jugador controla después de que se sube)

Bueno, vamos a empezar. Aquí está mi mapa y los eventos de el:



No te preocupes por los events de persona y deformaciones en la parte superior izquierda del mapa, y el desastre por todas partes, me falta hacer unas cosas en el mapa.

Yo también voy a admitir que algunos scripts en el piso fueron agregados más tarde debido a los errores de mi parte, después de todo, esta era mi primera vez haciendo los scripts en barco.

Solamente voy a indicarles como hacer dos; si quieres más, vas a tener que hacerlo tú mismo.



Esas cosas son necesarias para que el primer barco.

Bueno, vamos a ver el script para el evento con la esquema negra. Aquí está el script:

'---------------
#org 0xE5FAE1
lock
faceplayer
checkflag 0x8BB
if 0x1 goto 0x8E5FBCC
msgbox 0x8E5FB6A MSG_YESNO '"Sometimes people need to get to\nt..."
compare LASTRESULT 0x1
if 0x1 goto 0x8E64A82
msgbox 0x8E5FB53 MSG_NORMAL '"Arr[.] That's a shame!"
release
end

'---------------
#org 0xE5FBCC
msgbox 0x8E5FBD7 MSG_NORMAL '"Arr[.] I love me boat!"
release
end

'---------------
#org 0xE64A82
clearflag 0x8C0
setvar 0x4060 0x1
hidesprite 0x6
hidesprite 0x3
hidesprite 0x5
setflag 0x1233
setflag 0x1234
setflag 0x1235
setflag 0x1236
applymovement 0x1 0x8E5FB50
waitmovement 0x0
applymovement 0x1 0x8E5FB50
hidesprite 0x1
applymovement MOVE_PLAYER 0x8E5FB50
waitmovement 0x0
applymovement MOVE_PLAYER 0x8E5FB50
waitmovement 0x0
applymovement MOVE_PLAYER 0x8E5FB50
waitmovement 0x0
hidesprite 0xFF
hidesprite 0x4
showsprite 0x4
release
end


'---------
' Strings
'---------
#org 0xE5FB6A
= Sometimes people need to get to\nthe other parts of the islands.\lWanna use me boat to get there?

#org 0xE5FB53
= Arr[.] That's a shame!

#org 0xE5FBD7
= Arr[.] I love me boat!


'-----------
' Movements
'-----------
#org 0xE5FB50
#raw 0x8 'Step Down (Normal)
#raw 0xFE 'End of Movements

0x1 = El anciano
0xFF = Jugador
0x4 = Barco

Probalmente notaste que hay una gran cantidad de hidesprites y setflags. No te preocupes por algunos de ellos, que es porque hice más barcos que haré en este tutorial. Ahora voy a explicar el script en detalle.

'---------------
#org 0xE5FAE1
lock
faceplayer
checkflag 0x86A //la flag de el quinto gym. Si el/ella ya la tiene, no hay punto de el script.
if 0x1 goto 0x8E5FBCC
msgbox 0x8E5FB6A MSG_YESNO '"Sometimes people need to get to\nt..."
compare LASTRESULT 0x1
if 0x1 goto 0x8E64A82 //Donde te subes al barco.
msgbox 0x8E5FB53 MSG_NORMAL '"Arr[.] That's a shame!"
release
end

Ahora vamos a ver esta parte:

'---------------
#org 0xE64A82
clearflag 0x8C0 //Flag para los zapatos. Se activa de nuevo cuando se baje.
setvar 0x4060 0x1 //Habrá scripts en el agua que se activan si el var es esta en 1.
hidesprite 0x6 //Otro barco
hidesprite 0x3 //Otro barco
hidesprite 0x5 //Otro barco
setflag 0x1233 //flag para otro barco
setflag 0x1234 //flag para otro barco
setflag 0x1235 //flag para otro barco
setflag 0x1236 //flag para otro barco
applymovement 0x1 0x8E5FB50
waitmovement 0x0
applymovement 0x1 0x8E5FB50
hidesprite 0x1
applymovement MOVE_PLAYER 0x8E5FB50
waitmovement 0x0
applymovement MOVE_PLAYER 0x8E5FB50
waitmovement 0x0
applymovement MOVE_PLAYER 0x8E5FB50
waitmovement 0x0
hidesprite 0xFF
hidesprite 0x4
showsprite 0x4
release
end

(La flag de el barco y de el viejo es 1232)

Ahora. vamos a ver la baldosa de script en el agua. Ten en cuenta que el script sólo ocurra si var 0x4060 = 0x1.

'---------------
#org 0xE63302
lock
msgbox 0x8E63323 MSG_YESNO '"Do you wanna get off the boat?"
compare LASTRESULT 0x1
if 0x1 goto 0x8E63344
release
end

'---------------
#org 0xE63344
msgbox 0x8E63378 MSG_KEEPOPEN '"See ya, matey!"
setflag 0x8C0 //Zapatos
setvar 0x4060 0x0
showsprite 0xFF
fadescreen 0x1
clearflag 0x1232 //La flag de person event de el viejo y el barco
showsprite 0x1 //Viejo
showsprite 0x4 //Barco
closeonkeypress
warpmuted 0x0 0x2 0x7 0xF 0x11 //Esto TIENE que estar ahí. Lo explicaré ahorita.
fadescreen 0x0
release
end


'---------
' Strings
'---------
#org 0xE63323
= Do you wanna get off the boat?

#org 0xE63378
= See ya, matey!

Ahora vamos a ver el warp de allí. (warp # 7 en mi mapa)
Pon una baldosa de warp en el lugar donde desea que el jugador vaya despues que se baje de el barco. Asegúrese de ponerlo en una tile que no tiene el byte comportamiento de warp.

Ahora, en el script anterior vieron esto:

warpmuted 0x0 0x2 0x7 0xF 0x11

Warp muted es asi:

warpmuted 0x(bank) 0x(bank) 0x(warp #) 0x(X) 0x(Y)

Yo no creo que tengo que explicar mucho allí.

Ahora, si tu pones los scripts en una ROM, y los pruebas, ellos trabajarian perfectamente. Pero eso es sólo para un barco, ahora tenemos que hacer otro barco!



Ahora, vamos a centrarnos en los dos más fáciles, los que están en el agua.

Hice que tengan el mismo script offset. (Solo pasan cuando 0x4060 = 1)

'---------------
#org 0xE63DAD
lock
msgbox 0x8E63323 MSG_YESNO '"Do you wanna get off the boat?"
compare LASTRESULT 0x1
if 0x1 goto 0x8E63DD4
release
end

'---------------
#org 0xE63DD4
msgbox 0x8E63378 MSG_KEEPOPEN '"See ya, matey!"
setflag 0x8C0
setvar 0x4060 0x0
showsprite 0xFF
fadescreen 0x1
clearflag 0x1232
showsprite 0x4
showsprite 0x1
setflag 0x1233
hidesprite 0x6
closeonkeypress
warpmuted 0x0 0x2 0x8 0x1D 0x19
fadescreen 0x0
release
end


'---------
' Strings
'---------
#org 0xE63323
= Do you wanna get off the boat?

#org 0xE63378
= See ya, matey!

Yo no creo que tengo que explicar eso. (Hay una warpmuted en esa zona, mi mal por no mostrarlo, oops)

Ahora vamos a ver las otras script tiles. (Pasan cuando var 0x4060 = 0.)

'---------------
#org 0xE5FEEB
lock
msgbox 0x8E5FD01 MSG_YESNO '"[green_em]Hmm[.] I need to find a ..."
compare LASTRESULT 0x1
if 0x1 goto 0x8E5FFB6
release
end

'---------------
#org 0xE5FFB6
pokenavcall 0x8E5FD50 '"Arr[.] Ye need a ride? I'll be\nth..."
waitmsg
goto 0x8E63477

'---------------
#org 0xE63477
clearflag 0x8C0 //Zapatos
setvar 0x4060 0x1
special 0x116 //0x113 para FR/RF
applymovement MOVE_CAMERA 0x8E5FD7F
waitmovement 0x0
applymovement 0x1 0x8E5FB50
waitmovement 0x0
applymovement 0x1 0x8E5FB50
hidesprite 0x1 //Anciano
applymovement MOVE_CAMERA 0x8E5FCF3
applymovement 0x4 0x8E5FCF3
waitmovement 0x0
special 0x117 //0x114 para FR/RF
msgbox 0x8E5FCD0 MSG_NORMAL '"Get on, ye kid!"
applymovement MOVE_PLAYER 0x8E5FCCD
waitmovement 0x0
applymovement MOVE_PLAYER 0x8E5FCCD
fadescreen 0x1
hidesprite 0xFF
setflag 0x1232 //flag para el anciano y barco #1
hidesprite 0x4 //barco #1
clearflag 0x1233 //flag para barco #2
hidesprite 0x6 //barco #2
showsprite 0x6
fadescreen 0x0
release
end


'---------
' Strings
'---------
#org 0xE5FD01
= [green_em]Hmm[.] I need to find a way\nthere. Should I call the old man\lwith the boat?

#org 0xE5FD50
= Arr[.] Ye need a ride? I'll be\nthere in a sec!

#org 0xE5FCD0
= Get on, ye kid!


'-----------
' Movements
'-----------
#org 0xE5FD7F
#raw 0x9 'Step Up (Normal)
#raw 0x9 'Step Up (Normal)
#raw 0x9 'Step Up (Normal)
#raw 0x9 'Step Up (Normal)
#raw 0xA 'Step Left (Normal)
#raw 0xA 'Step Left (Normal)
#raw 0xA 'Step Left (Normal)
#raw 0xA 'Step Left (Normal)
#raw 0xA 'Step Left (Normal)
#raw 0xA 'Step Left (Normal)
#raw 0xA 'Step Left (Normal)
#raw 0xA 'Step Left (Normal)
#raw 0xFE 'End of Movements

#org 0xE5FB50
#raw 0x8 'Step Down (Normal)
#raw 0xFE 'End of Movements

#org 0xE5FCF3
#raw 0x8 'Step Down (Normal)
#raw 0x8 'Step Down (Normal)
#raw 0x8 'Step Down (Normal)
#raw 0x8 'Step Down (Normal)
#raw 0xB 'Step Right (Normal)
#raw 0xB 'Step Right (Normal)
#raw 0xB 'Step Right (Normal)
#raw 0xB 'Step Right (Normal)
#raw 0xB 'Step Right (Normal)
#raw 0xB 'Step Right (Normal)
#raw 0xB 'Step Right (Normal)
#raw 0xB 'Step Right (Normal)
#raw 0xFE 'End of Movements

#org 0xE5FCCD
#raw 0xA 'Step Left (Normal)
#raw 0xFE 'End of Movements

Así que creo que eso es todo. Estaré encantado de responder a cualquier pregunta :)


#1
Brock 25910
Genial que esté en español.
Gracias, seria ponerse a intentarlo, por que todo está bien explicado.

Sigue así bro.
#2
Megascep_9 Kuchiki 28187
La verdad que la traducción no la entiendo...parace traducido por
Google. No se comprende muy bien, pero se agradece el esfuerzo.
#3
Dark Sneasel 28274
Iniciado por Megasceptile9
La verdad que la traducción no la entiendo...parace traducido por
Google. No se comprende muy bien, pero se agradece el esfuerzo.


Jaja, perdon, lo que hice fue traducir con google sección por sección y arreglar, o tratar, mientras.
#4
Aguiar Kuchiki 29119
Al fin me has hecho caso!!! Así me gusta! Un español un tanto Google traductor XD pero está bien. Gracias!