Registrarse

[RH - Scripting] obciones para responder...

Estado
Cerrado para nuevas respuestas.

Asmodeo Leviatan

¿La Iglesia inventó el Infierno? O es lo contrario
Me estoy jugando POKEMÒN TRIANGULO ORIGEN! y note que se puede responder utilizando izquierda o derecha, como puedo implementarlo?

ayuda!!!:awesome::awesome::awesome:
 

Bugrhak

A long time ago I used to call myself "Subzero".
Responderé "a la ligera" porque estoy desde el movil y no me puedo esplayar mucho.
Si mal no recuerdo, en el engine de jpan, hay un método que creo se acopla a lo que pides, fíjate en el documento que viene con la herramienta, ahí explica todo (en inglés).
Sino, puedes usar otro método, comprobar via ram que botón pulsas.

Aquí hay info de eso: https://problemkaputt.de/gbatek.htm

Sé que es como si yo te lanzara a la guerra sin armas, porque tecnicamente no te explico nada, pero es cuanto puedo hacer por el momento...
 

MetalKaktus

A la luz del quinto día, mira al este
Miembro insignia
Estoy trabajando en una rutina para hacer lo que estas pidiendo. Sabemos el offset donde se encuentra la tecla que has pulsado. Simplemente se trata de copiar eso a una variable para poder usarla en un script. Aunque claro, hay errores, te avisaré cuando lo consiga.
 

Rubire4

Usuario mítico
@axel jose guerra, yo te voy a decir lo que quieres oír: Se puede hacer ahora mismo perfectamente con scripting.
Yo lo he utilizado alguna que otra vez. Para mi a estas alturas me parece algo sencillo, pero a lo mejor si eres algo nuevo te puede rayar un poco.

El comando "comparefarbytetobyte 0xOffset 0xByte" se utiliza para mirar en un offset concreto de la RAM qué byte contiene.
Si utilizas el Offset 0x4000130 podrás saber qué tecla está pulsando el jugador en ese preciso momento.

El Byte que quieras mirar en este caso depende de qué tecla quieres que pulse el jugador.
Aquí te dejo una lista:
Arriba: 0xBF
Abajo: 0x7F
Izquierda: 0xDF
Derecha: 0xEF
A: 0xFE
B: 0xFD
Select: 0xF7
Start: 0xFB
En tu caso, por ejemplo, quieres utilizar las teclas izquierda y derecha por lo que deberas utilizar los comandos comparefarbytetobyte 0x4000130 0xDF y comparefarbytetobyte 0x4000130 0xEF.

¿Cómo funcionan?
Este script comprueba en un segundo si ese offset cumple con esa condición, al igual que un compare, por lo tanto, al hacerlo tan rápido, el script se terminaría antes de darle tiempo al jugador a hacer nada, por lo que este script debe utilizarse en bucle. Así te aseguras de que se vaya a leer el botón:
Código:
#org @comparar
comparefarbytetobyte 0x4000130 0xDF
if 0x1 goto @izquierda
comparefarbytetobyte 0x4000130 0xEF
if 0x1 goto @derecha
goto @comparar

#org @izquierda
etc

#org @derecha
etc
Ya tienes hecho la parte del script en la que compruebas qué botón se va a pulsar. Sin embargo, si quieres mostrar un mensaje al mismo tiempo no puedes usar un msg normal, pues este se iría y no se podrían hacer ambas cosas a la vez.
Por ello, hay que hacer un "preparemsg" júntandolo con "waitmsg". Este comando funciona igual que un msgbox normal, solo que mantiene en pantalla hasta que pongas un "closeonkeypress".

Sumando todo esto, tu script quedaría algo así:
Código:
#dynamic 0x800000

#org @inicio
preparemsg @texto
waitmsg
goto @comparar

#org @comparar
comparefarbytetobyte 0x4000130 0xDF
if 0x1 goto @izquierda
comparefarbytetobyte 0x4000130 0xEF
if 0x1 goto @derecha
goto @comparar

#org @izquierda
closeonkeypress
etc

#org @derecha
closeonkeypress
etc
Sé que funciona porque yo ya lo he prbado, (y tengo pensado utilizado en el reto contra @Metal Kaktus). Por lo que si tienes alguna duda preguntame.

PD: El único fallo que le he visto es que las animaciones de los tiles se detienen hasta que pulsas alguna de las teclas, pero se podría disimular sin poner tiles con animación en esa parte concreta del mapa o poniendo un fadescreen hasta que el jugador decida ;)
 
Última edición:
Estado
Cerrado para nuevas respuestas.
Arriba