qna_rh
Thread Id: 26019
Thread Name: ¿Parar un Script pulsando una tecla?
#0
Pacodelopio 26193
Bueno, mi duda es... ¿Puedo hacer un script, en que en un momento se tenga que pulsar una tecla, y si no se pulsa la correcta o no se pulsa ninguna, pase X cosa. Y si se pulsa la correcta pase Y cosa, un comando que compare la útlima tecla que usé, otra duda que tengo es si puedo usarla en medio dl script o tengo que usar otro comando que me "desbloquee" el teclado, es decir que me permita pulsar teclas y las detecte ( aun que sea en una parte dl script)
para los k no me entienden pongo un ejemplo....
Un malo pone una bomba, cuenta 3, 2, 1, cuando haga la cuenta atras, si pulsas B, o ->, o A+<- lo que sea solo es un ejemplo, pos el mini cancele la bomba, pero si no pos que explote...
Mis dudas serían 2...
¿Comando que detecte que tecla he pulsado?
¿El mini del prota puede moverse, en medio de un script, con algún comando?
#1
BLAx/Atlas 26580
Si, por poder se puede, investiga un poco las rutinas de JPAM de detección de botones y de tiempo y puede que funcione xD
#2
JolouRocsas 26275
Para que te detecte la tecla podrías usar un comparefarbytetobyte te pongo un script mio de ejemplo.

#dynamic 0x800000
'------------------------
#org @inicio
checkflag 0x201
if 0x1 goto @repeat
checkflag 0x202
if 0x1 goto @repeat2
msgbox @frase 0x5
compare LASTRESULT 0x1
if 0x1 goto @si
msgbox @no 0x6
end

#org @si
msgbox @frase2 0x6
comparefarbytetobyte 0x4000130 0xDF
if 0x1 goto @izq
comparefarbytetobyte 0x4000130 0xEF
if 0x1 goto @der
end

#org @izq
fanfare 0x13E
msgbox @espeon 0x6
waitfanfare
setflag 0x828
givepokemon 0xC4 0x5 0x0 0x0 0x0 0x0
bufferpokemon 0x00 0xC4
setflag 0x201
end

#org @der
fanfare 0x13E
msgbox @umbreon 0x6
waitfanfare
setflag 0x828
givepokemon 0xC5 0x5 0x0 0x0 0x0 0x0
bufferpokemon 0x01 0xC5
setflag 0x202
end

#org @repeat
msgbox @cuidalo 0x6
end

#org @repeat2
msgbox @cuidalo2 0x6
end

#org @frase
= Tengo dos POKéMON pero yo solo\nno me puedo ocupar de los dos.\l¿Quieres a uno de ellos?

#org @no
= Bueno, tendre que ocuparme yo.

#org @frase2
= Pulsa \hF8\h08 para espeon.\nPulsa \hF8\h09 para umbreon.\lPulsa A para cancelar.

#org @espeon
= ¡[PLAYER] recibió a espeon de manos\nde el chico!

#org @umbreon
= ¡[PLAYER] recibió a umbreon de manos\nde el chico!

#org @cuídalo
= Cuida bien de mi

#org @cuídalo2
= Cuida bien de mi

40001304000131Tecla Pulsada
FF00AS
FF01A
FF02S
FE03Z
FD03X
FC03ZX
FB03<-
F703Enter
7F03Abajo
BF03Arriba
DF03Izquierda
EF03Derecha


en el primer 0x pondrias la dirección de las teclas en este caso seria 40100130 y en el segundo 0x los 2 bytes del movimiento a dar.
Por ejemplo derecha en este caso seria EF, luego con un if 0x1 goto saltarías a lo que pase tras pulsar la tecla.
#3
Pacodelopio 26193
Muchas gracias, ya he hecho el Script que queria! y me ha salido lo que queria! :D
Me ha quedado una duda para que sirve el: 4000131 ?¿?¿
#4
JolouRocsas 26275
Iniciado por Pacodelopio
Muchas gracias, ya he hecho el Script que queria! y me ha salido lo que queria! :D
Me ha quedado una duda para que sirve el: 4000131 ?¿?¿

Con este comando no he probado así que no puedo responderte a eso.
Pero aprovecho para decirte que en una dirección no se pueden guardar mas de 2 bytes y pues 2 bytes están guardados en una dirección y los otros dos en la siguiente por ejemplo dos en 4000130 y los otros dos en 4000131.
Deberías leerte un tutorial de I/O para enterarte y de paso aprender mas sobre todo esto.
#5
Tito Sayer301 26309
uhh que tema mas guay no lo habia visto jaja, como esta solucionado, cierro!