Registrarse

[RH - Scripting] Pregunta/respuesta rápida

Estado
Cerrado para nuevas respuestas.

hacanoca

Héroe de WaH
Respuesta: [Scripting] Pregunta/respuesta rápida

@hacanoca
Me parece muy raro lo que te sucede, por lo que general agrandar un mapa original puede llegar a dar algún que otro error como es el que te está pasando a ti, pero si dices que no lo has hecho más grande y que no tienes ningún script de nivel asignado en el mapa, lo único que se me ocurre es que sea por culpa de algún script de gatillo o de algún de los scripts de habla. El error te sucede después de hacer determinado evento o te sucede según entras al mapa?


@Tia Piolin
Que se te congele la pantalla pienso que puede ser por dos cosas, una que bien sea un script de gatillo y lo tengas mal configurado en el propio AM o bien que el orden de los comandos no sea el adecuado, yo recomiendo siempre poner el lock seguido del faceplayer, y estos dos comandos si tienes claro que se van a usar, ponerlos al principio del script, aunque siempre hay excepciones claro.
No entiendo muy bien lo que tratas de hacer con esos fadescreen, pero si la pantalla sigue en negro aún después del haber hecho el de 0x0, y el script se ejecuta correctamente hasta ese punto, entonces seguramente el fallo sea de lo que tengas entre ambos fadescreen, que en este caso me decantaría por algún posible fallo de la rutina que llamas con el callasm.
No me sucede tras hacer ningún evento en particular.
Me sucede cuando entro al mapa desde la ruta 02.
Incluso eliminé los scripts de gatillo.
Aunque soy muy novato entonces pregunto para aclarar: ¿Los scripts de nivel son los que se visualizan en el cabezal del mapa, llamados "map scripts", no? Si es así, efectivamente los he eliminado.
 

ANT0N9

Algun Sprite?
Re: [Scripting] Pregunta/respuesta rápida

Hola Hola vengo con una pequeña duda (que tal vez sea absurda para algunos), ¿existe algún script o script de nivel que se active sin tu pisar una casilla de script "S", que al entrar o al aparecer en el mapa se active y tal?
Ya que quiero que al aparecer después de la intro se active un script si tener que moverse ni nada.

un saludo.
 

FelixTheCat

Profesional de WaH
Respuesta: Re: [Scripting] Pregunta/respuesta rápida

Hola Hola vengo con una pequeña duda (que tal vez sea absurda para algunos), ¿existe algún script o script de nivel que se active sin tu pisar una casilla de script "S", que al entrar o al aparecer en el mapa se active y tal?
Ya que quiero que al aparecer después de la intro se active un script si tener que moverse ni nada.

un saludo.
Si, un script de nivel :dodgy:
Los scripts de nivel se activan al entrar a un mapa, puedes buscar algun tutorial que te explique como funciona. Como >>este<<.



~ FelixTheCat
 

Inferno

Miembro insignia
Miembro insignia
Re: [Scripting] Pregunta/respuesta rápida

Hola Hola vengo con una pequeña duda (que tal vez sea absurda para algunos), ¿existe algún script o script de nivel que se active sin tu pisar una casilla de script "S", que al entrar o al aparecer en el mapa se active y tal?
Ya que quiero que al aparecer después de la intro se active un script si tener que moverse ni nada.

un saludo.
Sí, se llaman scripts de nivel y hay diferentes tipos, los podrás ver todos aquí:https://whackahack.com/foro/t-16885/macrotutorial-gba-hacking-desde-0-8-9-entrega
En la sección scripts de nivel y de gatillo.

Según lo que quieras hacer tendrás que usar uno u otro, pero tienes que tener cuidado, porque no todos aceptan todos los comandos, algunos no sé pueden utilizar según el tipo que elijas.
Se configuran en el AM y en la pestaña "Ver cabezal", algunos necesitaran de una condición y una variable para activarse y otros no, pero eso ya lo ves mejor en el tutorial, también cabe mencionar que "no podrás" poner dos scripts de nivel del tipo 02 (el más parecido a los scripts de gatillo) y, como es el que seguramente más vayas a utilizar, te dejo aquí el tutorial para poder poner más de uno de este tipo: https://whackahack.com/foro/t-25151/gba-scripting-tutorial-pon-varios-scripts-nivel

Si necesitas más ayuda con alguno en específico no dudes en comentarlo :D
 

ANT0N9

Algun Sprite?
Re: [Scripting] Pregunta/respuesta rápida

FelixTheCat▲;407555 dijo:
Si, un script de nivel :dodgy:
Los scripts de nivel se activan al entrar a un mapa, puedes buscar algun tutorial que te explique como funciona. Como >>este<<.



~ FelixTheCat
Gracias :heart: ajajjaaj la verdad es que nunca uso script de nivel solo una vez y salio mal jajajaja por eso no sabia muy bien :D(eso y me daba flojera buscar así que gracias)

Sí, se llaman scripts de nivel y hay diferentes tipos, los podrás ver todos aquí:https://whackahack.com/foro/t-16885/macrotutorial-gba-hacking-desde-0-8-9-entrega
En la sección scripts de nivel y de gatillo.

Según lo que quieras hacer tendrás que usar uno u otro, pero tienes que tener cuidado, porque no todos aceptan todos los comandos, algunos no sé pueden utilizar según el tipo que elijas.
Se configuran en el AM y en la pestaña "Ver cabezal", algunos necesitaran de una condición y una variable para activarse y otros no, pero eso ya lo ves mejor en el tutorial.

Si necesitas más ayuda con alguno en específico no dudes en comentarlo :D
Gracias Inferno tu siempre atento ;) jajaajja por eso puse que tal vez seria una duda absurda porque una parte de mi sabia que era un script de nivel jejeje :D
 

Cheve

MoonLover~
Miembro de honor
Respuesta: Re: Respuesta: Re: [Scripting] Pregunta/respuesta rápida

@hacanoca ,

El callasm sirve para llamar una rutina ASM equis que tengas insertada, es como llamar un script normalmente pero este es como especial (?

writebytetoffset aun no comprendo muy bien todos sus usos, puesto que he visto que lo usan para muchas cosas lol, pero el que yo estaba usando en el script es para mantener centrado el textbox



PS: Mi problema persiste, help 8(
La dirección a la que llamas la rutina se me hace muy muy (extremadamente muy) rara, ahí debe haber datos originales de la Rom.
¿La insertaste ahí? ¿O estás haciendo algo "loco"? xD
 

Tia Piolin

el mangacue e ma canon que tu mama x tu papa
Re: [Scripting] Pregunta/respuesta rápida

No, no, aún no me he atrevido a insertar rutinas :'D.
Esa rutina viene de un parche

No me ha causado problemas desde ese que tuve con el script que comenté aquí, así que dudo que tenga algún problema...A no ser que esté matando mi ROM de a poco, ah (?
 
Hola, hay alguna mate para hacer que un entrenador tenga varios equipos y dependiendo de tus objetos aparezca un equipo u otro? Gracias de adelanto
 

MetalKaktus

A la luz del quinto día, mira al este
Miembro insignia
Hola, hay alguna mate para hacer que un entrenador tenga varios equipos y dependiendo de tus objetos aparezca un equipo u otro? Gracias de adelanto
Debes usar el comando checkitem y dependiendo del resultado comprobar el valor de la variable LASTRESULT o 0x8000D (que es lo mismo) saltar a un pointer u otro. Te explico:

Código:
#dynamic 0x800000
#org @start
lock
faceplayer
checkitem 0x"Objeto" 0x"Cantidad de objeto"
compare LASTRESULT  0x1
if 0x1 goto @true
trainerbattle 0x0 0xID(del primer entrenador que quieras) @frase @frase2
release
end

#org @true
trainerbattle 0x0 0xID(segundo entrenador) @frase_1 @frase2_1
release
end
Bueno, de los textos te encargas tú. Te recomiendo mirarte tutos sobre scripting. Además, para mirar la ID de cada trainer usa el PET o el Advance Trainer.

Espero haberte ayudo, si tienes algún error o alguna duda pregunta sin miedo.
 

Yainish

Usuario de platino
Tengo una duda. Puse un mini en la puerta de mi casa para que al empezar el juego tengas que hablarle, te diga un texto 1, se mueva, te diga un texto 2 y ya siempre dice el segundo texto. Vale, hasta ahí bien. Pero al cambiar de mapa y volver a entrar ha vuelto a su posición inicial y vuelve a repetir el primer texto. ¿Cómo hago para que eso no ocurra?
 

MetalKaktus

A la luz del quinto día, mira al este
Miembro insignia
Tengo una duda. Puse un mini en la puerta de mi casa para que al empezar el juego tengas que hablarle, te diga un texto 1, se mueva, te diga un texto 2 y ya siempre dice el segundo texto. Vale, hasta ahí bien. Pero al cambiar de mapa y volver a entrar ha vuelto a su posición inicial y vuelve a repetir el primer texto. ¿Cómo hago para que eso no ocurra?
Usando un script de nivel, para no complicar más las cosas. La idea se trata de que el script se ejecute una sola vez, para eso usa cualquier variable y haz que se ejecute el script solo si la variable tenga un determinado valor, y al final del script añádele un valor para que la próxima vez no se vuelva a repetir.

Pasanos el script para que te ayudemos mejor.
 

Yainish

Usuario de platino
Usando un script de nivel, para no complicar más las cosas. La idea se trata de que el script se ejecute una sola vez, para eso usa cualquier variable y haz que se ejecute el script solo si la variable tenga un determinado valor, y al final del script añádele un valor para que la próxima vez no se vuelva a repetir.

Pasanos el script para que te ayudemos mejor.
Ahora mismo no puedo pasar el script, pero ya le puse una variable y añadí al final un valor diferente a esa variable.
 

MetalKaktus

A la luz del quinto día, mira al este
Miembro insignia
Ahora mismo no puedo pasar el script, pero ya le puse una variable y añadí al final un valor diferente a esa variable.
Ahora que lo pienso puedes usar un script de nivel o un script de gatillo, aunque si lo que quieres es que se ejecute al instante de cargar el mapa usa el primero. Te advierto de que el script de nivel debes de hacerlo de una forma especial. Te paso un tuto de javi4315 que lo explica muy bien.

https://whackahack.com/foro/t-8621/gba-scripting-script-nivel-02-validates-values-facilmente
 

Alvarez G

Experimentado
Hola :D necesito ayuda, Como hago para que cuando pise un script de gatillo solo se active una sola vez ? así como cuando no te deja pasar por que no tienes un Pokemon pero luego cuando lo obtienes ya si te deja pasar, o como cuando lo pisas y Oak aparece para darte un Pokemon y ya el Script no se activa mas
 

Inferno

Miembro insignia
Miembro insignia
Re: Respuesta: Pregunta/respuesta rápida

Hola :D necesito ayuda, Como hago para que cuando pise un script de gatillo solo se active una sola vez ? así como cuando no te deja pasar por que no tienes un Pokemon pero luego cuando lo obtienes ya si te deja pasar, o como cuando lo pisas y Oak aparece para darte un Pokemon y ya el Script no se activa mas
Te comento, para que el script de gatillo se ejecute, la variable que configures, en "var number", para ese script de gatillo tiene que tener el valor que pongas en "value".
Por lo tanto, en el propio script de gatillo, con hacer un setvar 0x(variable) 0x(valor) o con un addvar/subvar 0x(variable) 0x(valor a sumar/restar), ya estarías cambiando ese valor establecido y el script no se volvería a ejecutar.

Por ejemplo, si en var number pones 4FFF y en value pones 3, eso indicará que el script de gatillo se ejecutará cuando la var 4FFF tenga el valor 3, por lo tanto tu en el script de gatillo puedes poner por ejemplo un setvar 0x4FFF 0x4, pasando así a tener el valor 4.
 

Blackjack69

Sigue adelante, sin olvidar de donde vienes
Hola gente, vengo a hacerles un pedido... como es obvio estoy empezando a hacer lo mismo que todos por aqui mi propio hack rom... pero estoy probando dos posible historias (si ya se es un poco ambicioso) pero solo estoy viendo cual se acomoda a lo que busco hacer...

aqui el pedido hasta ahora he utilizado A-map y en una de las historias cree dos nuevos mapas (a los cuales se accede por warp de una casa desde la cuidad inicial) pero llegue a la parte en que para entrar a un sector determinado del mapa ( hierba alta) un mini me diga que si no tengo 5 medallas no me deja pasar ... y el scripting no se me da mucho todavia... al segundo mini le haria lo mismo pero que no me deje pasar hasta haber ganado la liga...

habra por ahi algun alma generosa que pueda explicarme como hacer ese tipo de script... se que es algo avanzado y con muchas variables ( eso creo) ...

y si se puede los script para cortar arboles y romper rocas... (si ya lo se estoy pidiendo mucho) pero se que alguien me va a poder ayudar...

gracias gente ...

creditos a @Javi4315 por su tutorial en pdf de A-Map que le autorizo a @Oscarbrock para utilizarlo en uno de sus videos... y a @Xabier2012 por su tutorial...
 

Inferno

Miembro insignia
Miembro insignia
Re: Respuesta: Pregunta/respuesta rápida

Hola gente, vengo a hacerles un pedido... como es obvio estoy empezando a hacer lo mismo que todos por aqui mi propio hack rom... pero estoy probando dos posible historias (si ya se es un poco ambicioso) pero solo estoy viendo cual se acomoda a lo que busco hacer...

aqui el pedido hasta ahora he utilizado A-map y en una de las historias cree dos nuevos mapas (a los cuales se accede por warp de una casa desde la cuidad inicial) pero llegue a la parte en que para entrar a un sector determinado del mapa ( hierba alta) un mini me diga que si no tengo 5 medallas no me deja pasar ... y el scripting no se me da mucho todavia... al segundo mini le haria lo mismo pero que no me deje pasar hasta haber ganado la liga...

habra por ahi algun alma generosa que pueda explicarme como hacer ese tipo de script... se que es algo avanzado y con muchas variables ( eso creo) ...

y si se puede los script para cortar arboles y romper rocas... (si ya lo se estoy pidiendo mucho) pero se que alguien me va a poder ayudar...

gracias gente ...

creditos a @Javi4315 por su tutorial en pdf de A-Map que le autorizo a @Oscarbrock para utilizarlo en uno de sus videos... y a @Xabier2012 por su tutorial...

Sobre lo de las medallas, existen una serie de flags especiales las cuales están ligadas a las medallas, lo que sucede es que, cuando estas flags se activan, la medalla se muestran en la trainer card y los efectos de la medalla se activan también.
No te tienes por que complicar, siendo para Fire Red las flag de las medallas:
Código:
#define FRBADGE_1 0x820
#define FRBADGE_2 [B][U]0x821[/U][/B]
#define FRBADGE_3 [U][B]0x822[/B][/U]
#define FRBADGE_4 [U][B]0x823[/B][/U]
#define FRBADGE_5 [U][B]0x824[/B][/U]
#define FRBADGE_6 [U][B]0x825[/B][/U]
#define FRBADGE_7 [U][B]0x826[/B][/U]
#define FRBADGE_8 [B][U]0x827[/U][/B]
Con hacer un script donde compruebes si la flag 0x824 (la que corresponde a la quinta medalla) está activa ya serviría:
Código:
#dynamic 0x800000

#org @start
lock
faceplayer
checkflag 0x824
if 0x1 goto @pasar
goto @nopasar

#org @pasar
msgbox @msg1 0x6
release
end

#org @nopasar
msgbox @msg2 0x6
release
end

#org @msg1
= Puedes pasar.

#org @msg2
= No puedes pasar.

Ahora también está la posibilidad de que el orden de entrega de medallas no sea lineal, es decir, que no te vayan entregado las medallas en orden, si se da el caso lo que puedes hacer es comprobar el estado de todas las flags y llevar un contador a través de una variable, luego haces la condición de que, si el contador (la variable) es mayor o igual a 5 (equivale a tener 5 o más medallas) que haga determinada cosa y si es menor (equivalente a tener menos de 5 medallas) que haga otra.

Código:
#dynamic 0x800000

#org @start
lock
faceplayer
setvar 0x4FFF 0x0
checkflag 0x820
if 0x1 call @contador
checkflag 0x821
if 0x1 call @contador
checkflag 0x822
if 0x1 call @contador
checkflag 0x823
if 0x1 call @contador
checkflag 0x824
if 0x1 call @contador
checkflag 0x825
if 0x1 call @contador
checkflag 0x826
if 0x1 call @contador
checkflag 0x827
if 0x1 call @contador
compare 0x4FFF 0x5
if 0x4 goto @requisito_cumplido
goto @no_cumplido

#org @contador
addvar 0x4FFF 0x1
return

#org @requisito_cumplido
msgbox @msg1 0x6
release
end

#org @no_cumplido
msgbox @msg2 0x6
release
end

#org @msg1
= Ya puedes pasar.

#org @msg2
= No puedes pasar. igual a 5 (equivale a tener 5 o más medallas) que puedas pasar:

----------------
----------------

Para comprobar si se ha pasado la liga también se puede hacer por flags o por variables, por defecto, la flag que controla si nos hemos pasado la liga Pokémon es la 0x844 creo recordar, pero vamos eso es algo indiferente, porque tú si en el script del final de la liga activas por ejemplo la flag 0x2FF o le das a la variable 0x40FF el valor 8, luego para comprobar si nos hemos pasado la liga bastaría con usar o bien un checkflag o un compare var, de modo que, si la flag está activa o la var corresponde con el valor (indicación de que nos hemos pasado la liga) haga la acción que tenga que hacer si la condición de pasarse la liga se cumple.

----------------
----------------

Para lo de corte y golpe roca lo recomendable es que utilices el script que viene ya por defecto, mejor dicho el offset, porque si te fijas todos los árboles de corte por ejemplo comparten el mismo offset y eso se debe a que se aprovecha el mismo script para todos.
Para hacer el efecto de que el objeto vuelva a aparecer una vez cambies de mapa debes asignarle una flag, para asignar flags a minis se hace en la casilla "People ID" ahí debes poner la flag que asignes, pero no sirve cualquier flag, hay una serie de flags especiales que se usan en estos casos, puesto que se refrescan solas, sin tener que estar usando clearflags ni nada, sayer las dejó hace un rato en otro tema:

Dicho por Sayer:
Esas flags son de la 0x011 a la 0x01F
 
Última edición:

Blackjack69

Sigue adelante, sin olvidar de donde vienes
Respuesta: Re: Respuesta: Pregunta/respuesta rápida

inferno gracias por tu ayuda ... lo de los arboles y rocas tenia la duda de usar los mismos script pero me lo acabas de simplificar ... respecto a la flag de la liga (0x844) la voy a insertar en el mini y si es esa me dira que no la he pasado y bueno que continue el juego...

Sobre lo de las medallas, existen una serie de flags especiales las cuales están ligadas a las medallas, lo que sucede es que, cuando estas flags se activan, la medalla se muestran en la trainer card y los efectos de la medalla se activan también.
No te tienes por que complicar, siendo para Fire Red las flag de las medallas:
Código:
#define FRBADGE_1 0x820
#define FRBADGE_2 [B][U]0x821[/U][/B]
#define FRBADGE_3 [U][B]0x822[/B][/U]
#define FRBADGE_4 [U][B]0x823[/B][/U]
#define FRBADGE_5 [U][B]0x824[/B][/U]
#define FRBADGE_6 [U][B]0x825[/B][/U]
#define FRBADGE_7 [U][B]0x826[/B][/U]
#define FRBADGE_8 [B][U]0x827[/U][/B]
Con hacer un script donde compruebes si la flag 0x824 (la que corresponde a la quinta medalla) está activa ya serviría:
Código:
#dynamic 0x800000

#org @start
lock
faceplayer
checkflag 0x824
if 0x1 goto @pasar
goto @nopasar

#org @pasar
msgbox @msg1 0x6
release
end

#org @nopasar
msgbox @msg2 0x6
release
end

#org @msg1
= Puedes pasar.

#org @msg2
= No puedes pasar.

Ahora también está la posibilidad de que el orden de entrega de medallas no sea lineal, es decir, que no te vayan entregado las medallas en orden, si se da el caso lo que puedes hacer es comprobar el estado de todas las flags y llevar un contador a través de una variable, luego haces la condición de que, si el contador (la variable) es mayor o igual a 5 (equivale a tener 5 o más medallas) que haga determinada cosa y si es menor (equivalente a tener menos de 5 medallas) que haga otra.

Código:
#dynamic 0x800000

#org @start
lock
faceplayer
setvar 0x4FFF 0x0
checkflag 0x820
if 0x1 call @contador
checkflag 0x821
if 0x1 call @contador
checkflag 0x822
if 0x1 call @contador
checkflag 0x823
if 0x1 call @contador
checkflag 0x824
if 0x1 call @contador
checkflag 0x825
if 0x1 call @contador
checkflag 0x826
if 0x1 call @contador
checkflag 0x827
if 0x1 call @contador
compare 0x4FFF 0x5
if 0x4 goto @requisito_cumplido
goto @no_cumplido

#org @contador
addvar 0x4FFF 0x1
return

#org @requisito_cumplido
msgbox @msg1 0x6
release
end

#org @no_cumplido
msgbox @msg2 0x6
release
end

#org @msg1
= Ya puedes pasar.

#org @msg2
= No puedes pasar. igual a 5 (equivale a tener 5 o más medallas) que puedas pasar:

----------------
----------------

Para comprobar si se ha pasado la liga también se puede hacer por flags o por variables, por defecto, la flag que controla si nos hemos pasado la liga Pokémon es la 0x844 creo recordar, pero vamos eso es algo indiferente, porque tú si en el script del final de la liga activas por ejemplo la flag 0x2FF o le das a la variable 0x40FF el valor 8, luego para comprobar si nos hemos pasado la liga bastaría con usar o bien un checkflag o un compare var, de modo que, si la flag está activa o la var corresponde con el valor (indicación de que nos hemos pasado la liga) haga la acción que tenga que hacer si la condición de pasarse la liga se cumple.

----------------
----------------

Para lo de corte y golpe roca lo recomendable es que utilices el script que viene ya por defecto, mejor dicho el offset, porque si te fijas todos los árboles de corte por ejemplo comparten el mismo offset y eso se debe a que se aprovecha el mismo script para todos.
Para hacer el efecto de que el objeto vuelva a aparecer una vez cambies de mapa debes asignarle una flag, para asignar flags a minis se hace en la casilla "People ID" ahí debes poner la flag que asignes, pero no sirve cualquier flag, hay una serie de flags especiales que se usan en estos casos, puesto que se refrescan solas, sin tener que estar usando clearflags ni nada, sayer las dejó hace un rato en otro tema:
@Inferno gracias por tu ayuda... ahora se que no me voy a cargar la rom por usar los mismos script de los arboles y rocas... lo de la liga probare el checkflag en el mini a ver que pasa ...
 
Última edición:

Blackjack69

Sigue adelante, sin olvidar de donde vienes
Respuesta: Re: Respuesta: Pregunta/respuesta rápida

tengo una pequeño inconveniente con mi script ... me reconoce que no he obtenido la medalla y quedo bien ... pero no me bloquea el paso , es decir puedo pasar por delante del mini y no me detiene ... y tendria que hacerlo... como lo soluciono?? y de paso donde tendria que insertar el applymovement (en el script) y las raw para que se mueva despues de confirmar que obtuve la medalla... se como insertarlo pero no encuentro el lugar exacto donde ponerlo ... probe ponerlo despues del (if goto) y despues del msg1 (el que te dice al confirmar) y no hace nada...
@Inferno ... gracias por tu tiempo... espero me puedas ayudar con esto... ya que si logro hacerlo puedo continuar con los otros mapas...

de paso te adelanto que pienso poner todos los iniciales y legendarios de las 7 generaciones ... por eso las condiciones que le estoy colocando a los minis...
 

FelixTheCat

Profesional de WaH
Respuesta: Re: Respuesta: Pregunta/respuesta rápida

tengo una pequeño inconveniente con mi script ... me reconoce que no he obtenido la medalla y quedo bien ... pero no me bloquea el paso , es decir puedo pasar por delante del mini y no me detiene ... y tendria que hacerlo... como lo soluciono?? y de paso donde tendria que insertar el applymovement (en el script) y las raw para que se mueva despues de confirmar que obtuve la medalla... se como insertarlo pero no encuentro el lugar exacto donde ponerlo ... probe ponerlo despues del (if goto) y despues del msg1 (el que te dice al confirmar) y no hace nada...
@Inferno ... gracias por tu tiempo... espero me puedas ayudar con esto... ya que si logro hacerlo puedo continuar con los otros mapas...

de paso te adelanto que pienso poner todos los iniciales y legendarios de las 7 generaciones ... por eso las condiciones que le estoy colocando a los minis...
No soy Inferno, pero bueno. Tampoco tendrías que comprometer a alguien a que te ayude x'D

Advertencia: según tus peticiones, lo ideal seria poner el script en uno de gatillo, pero podes ponerlo en cualquiera. También estoy contando con que tienes cierto conocimiento básico sobre algunas cosas.

Bueno, las medallas se activan con flags, entonces lo que hay que hacer es comparar si esta activada o no. Se puede hacer fácilmente de esta forma:


Código:
checkflag 0x(flag de la medalla)
if 0x1 goto @activada
Entonces lo que haría esto seria verificar si esta activada la flag, si no lo esta, seguirá de largo. Pero si lo esta, se ira a la dirección offset en cuestión; @activada
Para lo segundo amplio un poco el script...


Código:
checkflag 0x(flag de la medalla)
if 0x1 goto @activada
end

#org @activada
applymovement 0x1 @moves
end

#org @moves
#raw 0x9
#raw 0x9
#raw 0x9
#raw 0xFE
Cuando ponemos el appymovement, el primer parámetro corresponde al "Person event N°". Vendria a ser el numero del mini que quieres que se mueva. Cito a Xabier2012:

El person event nº corresponderá al número del mini al cual queremos mover. Es importante no confundir el número de evento con el número de evento de la persona. El número en el cual nos fijamos nosotros es este:

Ahora una explicación breve de lo que hicimos...
Comparamos si estaba activa la flag, si lo estaba va directamente a "@activada". En esa dirección se ejecuta el applymovement que va a la dirección "@moves", luego en esa dirección offset pones los raw correspondientes.


Uff, espero que te haya servido, cualquier duda la puedes decir :blush:


Arrivederci~
 
Estado
Cerrado para nuevas respuestas.
Arriba