Registrarse

Scripts rebeldes

Estado
Cerrado para nuevas respuestas.

Monchis

Héroe de WaH
Hola a todos, tengo una pequeña duda que me ha estado volviendo loco durante horas:

Tengo 2 scripts de gatillo en el laboratorio del profesor oak, ambos funcionan a la perfección, no se repiten pero...

cuando salgo y entro del laboratorio los eventos vuelven a activarse a pesar de tener una variable diferente a la establecida.

Aquí están ambos scripts, perdonen si son muy primitivos estoy aprendiendo:

Código:
#dynamic 0x800000

'---------------
#org @start
lockall
compare 0x400A 0x0
if 0x2 goto @"snippet1"
msgbox @"String1" MSG_NORMAL '"Bienvenido [player]!!!"
applymovement 0x0 @move1
waitmovement 0x0
msgbox @"String2" MSG_NORMAL '"Recibí el mensaje de tu madre,\nqu..."
applymovement 0x0 @move2
applymovement MOVE_PLAYER @move3
waitmovement 0x0
msgbox  @"String3" MSG_NORMAL '"Adelante, puedes escoger entre\nes..."
releaseall
end

'---------------
#org @snippet1
end
Notas: La "Var number" es 400A y el "Var value" es 0000

Después de ese script se escoge al pokemon inicial y en una casilla "S" se activa el siguiente Script:

Código:
#dynamic 0x800000

'---------------
#org @start
checkflag 0x205
if 0x1 goto @snippet1
release
end

'---------------
#org @snippet1
showsprite 0x8
compare 0x4009 0x1
if 0x4 goto @snippet2
release
end

'---------------
#org @snippet2
msgbox  @"String1" MSG_NORMAL '"Espera!"
applymovement 0x8 @move1
waitmovement 0x8
msgbox  @"String2" MSG_NORMAL '"[rival]:\nLamento llegar tarde, es..."
msgbox  @"String3" MSG_NORMAL '"...\pAdelante [rival] escoje el tu..."
msgbox  @"String4" MSG_NORMAL '"[rival]: Muchas gracias profesor."
compare 0x4003 0x3
if 0x0 goto @snippet3
if 0x2 goto @snippet4
applymovement 0x8 @move2
waitmovement 0x8
msgbox @"String5" MSG_NORMAL '"[rival]: Escojo este."
hidesprite 0x7
msgbox @"String6" MSG_NORMAL '"[rival] ha recibido a Mudkip"
waitmsg
fanfare 0x13E
waitfanfare
applymovement 0x8 @move3
applymovement MOVE_PLAYER @move4
waitmovement 0x8
msgbox  @"String7" MSG_NORMAL '"[rival]: Hola [player], que tal si..."
trainerbattle 0x9 0x146 0x3  @"String8"  @"String9"
applymovement 0x0 @move5
waitmovement 0x0
msgbox  @"String10" MSG_NORMAL '"profesor: Recuerden que lo escenci..."
setvar 0x4009 0x2
setvar 0x400A 0x1
end

'---------------
#org @snippet3
applymovement 0x8 @move6
waitmovement 0x8
msgbox  @"String5"  '"[rival]: Escojo este."
hidesprite 0x5
msgbox  @"String11" MSG_NORMAL '"[rival] ha recibido a Treecko."
waitmsg
fanfare 0x13E
waitfanfare
setvar 0x4009 0x0
applymovement 0x8 @move7
applymovement MOVE_PLAYER @move4
waitmovement 0x8
msgbox  @"String7" MSG_NORMAL '"[rival]: Hola [player], que tal si..."
trainerbattle 0x9 0x147 0x3  @"String8"  @"String9"
applymovement 0x0 @move5
waitmovement 0x0
msgbox  @"String10" MSG_NORMAL '"profesor: Recuerden que lo escenci..."
setvar 0x4009 0x0
setvar 0x400A 0x1
end

'---------------
#org @snippet4
applymovement 0x8 @move8
waitmovement 0x8
msgbox  @"String5" MSG_NORMAL '"[rival]: Escojo este."
hidesprite 0x6
msgbox @"String12" MSG_NORMAL '"[rival] ha recibido a Torchic."
waitmsg
fanfare 0x13E
waitfanfare
applymovement 0x8 @move9
applymovement MOVE_PLAYER @move4
waitmovement 0x8
msgbox  @"String7" MSG_NORMAL '"[rival]: Hola [player], que tal si..."
trainerbattle 0x9 0x148 0x3  @"String8" @"String9"
applymovement 0x0 @move5
waitmovement 0x0
msgbox @"String"10 MSG_NORMAL '"profesor: Recuerden que lo escenci..."
setvar 0x4009 0x0
setvar 0x400A 0x1
end
Notas:
-La flag que se checa es la de gary, su flag se activa en un script fuera del laboratorio.
- "Var number" es 4009 y "Var value" es 1.

Cuando acaban ambos eventos camino por ambas casillas y NO se activan pero se reinician al salir y entrar al laboratorio.

Espero que puedan ayudarme.

PD: Por alguna razón los comandos de msgbox se enlazan a un usuario, por eso los separe con comillas.
 
Última edición:

BandeDollio

Extintor-Sama
Por lo que veo estás haciendo condiciones al principio del script, pero un script de gatillo ya lleva incorporado una condición de activación así que esa parte sobraría.
Como en el segundo script no haces ningún lock no hace falta hacer release.
Si tienes puesto un flag en vez de una variable en var number te aconsejo que lo cambies por una variable.
Lo de msgbox no entiendo lo que quieres decir.
 

Monchis

Héroe de WaH
Por lo que veo estás haciendo condiciones al principio del script, pero un script de gatillo ya lleva incorporado una condición de activación así que esa parte sobraría.
las tengo porque he estado probando comandos para resolver el problema, pero los scripts siguen activándose, así es como tengo los scripts actualmente.

Como en el segundo script no haces ningún lock no hace falta hacer release.
Esos release se me escaparon, tenia otro script planeado pero lo deseché, aún sigo puliendo el código.

Si tienes puesto un flag en vez de una variable en var number te aconsejo que lo cambies por una variable.
No, la flag es para hacer visible al mini.

Lo de msgbox no entiendo lo que quieres decir.
Copypaste mi código y al crear el tema este salia alterado y era inentendible además de que la palabra "string" se enlazaba a la cuenta de un usuario baneado.
 

BandeDollio

Extintor-Sama
las tengo porque he estado probando comandos para resolver el problema, pero los scripts siguen activándose, así es como tengo los scripts actualmente.


Esos release se me escaparon, tenia otro script planeado pero lo deseché, aún sigo puliendo el código.


No, la flag es para hacer visible al mini.


Copypaste mi código y al crear el tema este salia alterado y era inentendible además de que la palabra "string" se enlazaba a la cuenta de un usuario baneado.
Tras mirar un poco más detenidamente veo que en @snippet3 y en @snippet4 haces 2 setvar de las variables de los scripts de gatillo con los valores que los activan, 0 y 1.
Supongo que ahí esté el error porque si no no lo veo.
Puede que solo hayas probado los casos en los que no le dan a mudkip a tu rival, que creo que es el único que dejaría las cosas bien.
Espero haberte ayudado.
Suerte.
 

Sayer301!

UnityLord!
Miembro de honor
Pues voy a intentar ayudar aunque estoy muy oxidado, me ha gustado la pregunta.
Tienes una complicacion enorme aqui montada.

De primeras, cuando coges a Mudkip la variable 4009 pasa a ser 2, mientras que si coges a treecko o torchic pasa a ser 0. NO entiendo porque lo has hecho asi pero bueno.

Por otro lado en el @snippet3 despues del waitfanfare has colocoado un comando para cambiar la variable 4009 a 0, cosa que acabas haciendo 8 líneas mas abajo.

Tampoco entiendo muy bien el porque de la comprobación de la flag de Gary pero bueno, tampoco es que lo vea muy mal XD

Por otra parte mas, me da la impresion de que mientras cojas a mudkip, puedes coger infinitos mudkip, ya que en el Snippet1 pones lo siguiente:
#org @snippet1
showsprite 0x8
compare 0x4009 0x1
if 0x4 goto @snippet2

Este if 0x4 lo que esta diciendo es, si 4009 es mayor o igual a 1, entonces Snippet2. y en snipped2 si coges a mudkip la variable 4009 se queda en valor 2, por lo cual es mayor que 0 y que 1 por lo que la condicion se podrá volver a hacer y por lo cual podrñia volver a coger otro mudkip.

Bueno despues de estás pequeñas correcciones, he de decirte que no veo que el script se tenga porque repetir. No debería vamos. Lo unico que se me ocurre es que fuera de ese mapa, o en ese mismo mapa, haya un script de nivel que le este cambiando el valor a alguna de las variables que usas.
 

Monchis

Héroe de WaH
Gracias a los 2 por responder, arreglé los errores que me marcaron, quite los scripts de nivel pero aún así los eventos se repiten al salir y entrar al laboratorio, la verdad no sé que estoy haciendo mal, de hecho, probé otra rom pero con un script muy sencillo que al pasar salté un mensaje y active la pokedex y el resultado es exactamente el mismo, el evento vuelve a activarse al salir y entrar de la habitación, intenté cambiar de advance map y XSE pero el problema sigue igual no hay otra cosa que altere o reinicie las variables al cambiar de habitación?
 

BandeDollio

Extintor-Sama
Lo único que me queda es que uses variables del 7000 al 7FFF porque puede que las que estás usando las usa el juego para algo.
 

Monchis

Héroe de WaH
Lo único que me queda es que uses variables del 7000 al 7FFF porque puede que las que estás usando las usa el juego para algo.
Pues al final esa fue la solución, cambie las variables 400A y 4009 por 7000 y 7001 y ahora los eventos ya no se vuelven a activar, ahora puedo continuar con mi hack en paz, muchas gracias a los 2, pueden cerrar el tema.
 
Estado
Cerrado para nuevas respuestas.
Arriba