qna_rh
Thread Id: 19436
Thread Name: Tengo un problema con el comando Call, no se me ejecuta.
#0
Tito Sayer301 26309
Hola Users!!!
Este es el script que he puesto en mi hack. El primero es el de la pokeball
y el segundo es el script al que le hago un "Call"
para que sea mas simple ir directamente al @inicio2 del primer code y así os intento ahorrar que penseis de más.
Las flags no son importantes y las variables tampoco hay mucho que decir porque funcionan.

Pero cuando juego todo se ejecuta perfectamente hasta el momento del Call, que mi mini se queda bloqueado pero el resto siguen moviendose.

Nose porque pasa esto. ¿Alguien sabe como arreglarlo?



#dynamic 0x800000

#org @inicio
lock
compare 0x40F7 0x1
if 0x1 goto @inicio2
compare 0x40F7 0x2
if 0x1 goto @inicio3
msgbox @frase 0x6
release
end

#org @frase
= Estas pokeball son de Oak, no\ndebería tocarlas.

#org @inicio2
showpokepic 0xF6 0x7 0x7
msgbox @frase2 0x5
hidepokepic
compare LASTRESULT 0x1
if 0x1 goto @inicio4
if 0x0 goto @inicio5
release
end

#org @inicio3
msgbox @frase3 0x6
release
end

#org @inicio4
msgbox @frase4 0x6
givepokemon 0xF6 0x5 0x0 0x0 0x0 0x0
hidesprite 0x5
applymovement 0x8 @mov
waitmovement 0x8
setflag 0x505
setflag 0x502
setflag 0x828
setvar 0x40F9 0x0
setvar 0x40F5 0x2
setvar 0x40F6 0x2
msgbox @frase5 0x6
call 0x801B20
release
end

#org @inicio5
release
end

#org @frase2
= ¿Quieres a Larvitar?

#org @frase3
= Solo quedan dos pokeball, no las\nvoy a robar.

#org @frase4
= Has recibido un Larvirtar

#org @frase5
= Esto aun no ha terminado

#org @mov
#raw 0x10'Paso Abajo
#raw 0x10'Paso Abajo
#raw 0x10'Paso Abajo
#raw 0x3'Mirar Derecha





#dynamic 0x800000

#org @inicio

applymovement 0xFF @mov
applymovement 0x8 @mov2
waitmovement 0x00
msgbox @frase 0x6
applymovement 0x8 @mov3
waitmovement 0x8
hidesprite 0x9
applymovement 0x8 @mov4
waitmovement 0x8
msgbox @frase2 0x6
setflag 0x829
setflag 0x506
return

#org @frase
= Bueno como es una prueba no me voy\na enrrollar mucho.Aquí tengo tu\lpokedex.

#org @frase2
= Toma pa ti, ahora vete a ver\nmundo.\pHas recibido la Pokédex.

#org @mov
#raw 0x12'Paso Izquierda
#raw 0x10'Paso Abajo
#raw 0x10'Paso Abajo
#raw 0x10'Paso Abajo
#raw 0x13'Paso Derecha
#raw 0x13'Paso Derecha
#raw 0x13'Paso Derecha
#raw 0x13'Paso Derecha
#raw 0x13'Paso Derecha
#raw 0x13'Paso Derecha
#raw 0x13'Paso Derecha
#raw 0x11'Paso Arriba
#raw 0x11'Paso Arriba
#raw 0x13'Paso Derecha
#raw 0x11'Paso Arriba
#raw 0x11'Paso Arriba
#raw 0x11'Paso Arriba
#raw 0x11'Paso Arriba
#raw 0xFE'Finalizar Movimientos

#org @mov2
#raw 0x10'Paso Abajo
#raw 0x10'Paso Abajo
#raw 0x10'Paso Abajo
#raw 0x13'Paso Derecha
#raw 0x13'Paso Derecha
#raw 0x13'Paso Derecha
#raw 0x13'Paso Derecha
#raw 0x13'Paso Derecha
#raw 0x13'Paso Derecha
#raw 0x13'Paso Derecha
#raw 0x11'Paso Arriba
#raw 0x11'Paso Arriba
#raw 0x13'Paso Derecha
#raw 0x11'Paso Arriba
#raw 0x11'Paso Arriba
#raw 0x11'Paso Arriba
#raw 0x11'Paso Arriba
#raw 0x11'Paso Arriba
#raw 0x0'Mirar Abajo
#raw 0xFE'Finalizar Movimientos

#org @mov3
#raw 0x1'Mirar Arriba
#raw 0xFE'Finalizar Movimientos

#org @mov4
#raw 0x0'Mirar Abajo
#raw 0xFE'Finalizar Movimientos
#1
ReoNeky 18653
¡Hey!
La cuestión es: ¿Ese call te lleva a algún lado? Es decir... Tiene su offset pero no veo ese mismo offset en el segundo script....

Además cuando pones call, el script del call debe seguir estado en el primer script.

¿No deberías poner: Call @inicio5 y poner el segundo script en el @inicio5? Así debería funcionarte.

Sorry por mi explicación... Si tienes dudas comentalas.

¡Nos vemos!
#2
Loony Boo♪ 12263
A lo mejor te parece una tontería, pero yo haría una de estas dos cosas:

1º Compila primero el segundo script, luego compilas el primero que nos mostraste (recuerda cambiar el offset que indicas en el comando call). Te puede parecer una tontería, pero por probar no pierdes nada, y es muy probable que se acabe arreglando el problema.

2º Haz lo que dice ReoNeky, compila los dos scripts a la vez (ponle una etiqueta dinámica al segundo, @Inicio2, por ejemplo).

Suerte.
#3
Tito Sayer301 26309
A ver, esque los scripts estan puestos como serían justo antes de compilarse, al compilar el CODE2 me dio ese offset y es el que puse en el call antes de compilar el CODE1 por eso no sale que el CODE2 tenga ese offset. Para comprobarlo probe a decompilar esa direccion y se descompilo y estaba todo bien.

No puedo hacer eso porque ese es un "Script comun" que tienen 3 scripts, los de las 3 pokeballs, cuando cojes la pokeball te mueves hasta el punto((6X/7Y)por ejemplo) en cada script de su pokeball de forma diferente pero en todos acabas en el ponto (6X/7) y desde esa posicion que se quedan, que es en los 3 la misma es donde pongo el call. Para asi no tener que hacer 3 call @inicio5 que me ocuparían muchisimo espacio.

Respecto a lo de compilar el segundo primero y luego el primero, es lo que hice, pero sigue igual... :(


EDITIO IMPORTANTE!!!
Otra cosa: Me he dado cuenta que en el primer CODE el msgbox@frase5 no se ejecuta tampoco, se queda pillado despues del applymovement, Probé a poner el msgbox justo despues del applymovement en vez de casi al final y tampoco lo hace, se queda pillado justo ahí. No encuentro el fallo... :(


EDITO2 PROBLEMA RESUELTO:
Pues tal y como decía el problema era el apllymovement que se me olvido ponerle el comando finalizar movimientos. Problema resuelto se puede cerrar el tema muchas gracias a todos!!