qna_rh
Thread Id: 11391
Thread Name: Script de nivel [RUBY ENG]
#0
ReoNeky 18653
¡Hola!
Tremenda duda inunda mi alma y conciencia. ¿:.
Veamos, me explico:
En un mapa en concreto, quiero poner 2 script de nivel, cuando ocurra el primero, luego al entrar que ocurra el segundo.
El problema es: Cuando creo otro script de nivel me sale con el mismo offset que el primero, y si pongo otro offset, el otro se me borra.
¿Cómo se hace para que pueda poner 2 scripts de nivel en un mapa sin problemas?
Es que el primero funciona bien, pero el segundo no se ejecuta. y luego miro advance map y el segundo desaparece...
¡Ayuda!
Os lo agradecería mucho :D

Saludos
#1
Hackun 12904
Simple.

Solo crea un script de nivel en el que pondrás que pase tal o tal cosa.



Si quieres que se siga repitiendo tu segundo script de nivel, entonces déjalo así como este, pero si quieres desactivar ambos, tendrás que darle un valor distinto a la variable que activa el script de nivel.
Saludos.
#2
ReoNeky 18653
¡Hola!
No sé si he entendido bien, pero he probado lo siguiente:
He puesto lo mismo que me has dicho, usar las flags, pero cuando acaba el primer script directamente pasa al segundo script y se me activan los 2 script en 1 vez que entro y se me Bugea.
Yo lo que quiero es:
Entro en el mapa, se activa el primero. Luego sales a otro mapa, hay un script, ocurre ese script y luego al entrar en el mapa dónde ya se activó el primer script, que se active el segundo.
Eso es todo
¡Ayuda!
x:(
Saludos
#3
Cheve_X 15014
Hola! Haber si te ayudo: :D

Lo que yo te recomiendo es que hagas dos scripts de nivel individuales de 0x2 load handler etc, etc.

Verás que en el cabezal de Mapa en el A-map, puedes ver que dice "Flag" y "Value" (O valor) en realidad ahí van Variables y no flags.

Aclarado ésto vayamos al grano:

Haces el primer script de nivel, en "Flag" pones una variable, por ejemplo, la 4050, con valor 0 (No sé si ésta variable es funcional)

En ese primer Script, al final, antes del end, agregas Setvar 0x4050 0x1

Luego, devuelta en el cabezal de mapa Creas otro script de nivel pulsando en add y ahora en Flag pones 4050 y value 1

De esta forma se ejecutará el segundo script y no el primero.
Para que ya no se ejecuten ni uno ni otro, al final del segundo pones un "Setvar 0x4050 0x3" y listo :D


*Nota importante: Si hackeas Esmeralda (No sé en otras Roms) los script de nivel de la habitación del Héroe son los mismos que los de el piso de más abajo

Salu2!
#4
ReoNeky 18653
¡Hola!
Vale aclaro, hackeo en Ruby.
Es que cuando le doy a add para crear otro más. El nuevo se acaba borrando, es como si no me dejara poner los 2 seguidos. Y cuando lo "creo" este me sale con el mismo offset que el primero. Por lo tanto, cuando le pongo un nuevo offset, el primero se me borra.
Nesesito ayuda x:(
Os agradezco vuestro esfuerzo :D

Saludos
#5
Hackun 12904
Sorry man, tienes razón... no sé en que estaba pensando.
Debes hacer esto:
- Seguiremos en plan de 1 solo script.

En vez de activar la flag cuando acaba el primer script, la activaremos cuando estés en la otra habitación.
Entonces ya pasarías a tu segundo script dentro de uno... ya solo sería cambiar la variable.
Saludos.
#6
ReoNeky 18653
¡Hola!
Bien, lo he echo pero no estoy seguro de 1 cosa. Si pongo el setvar en el primer script, luego al entrar por segunda vez no se activa. Pero si lo pongo en el segundo, Se repite el primero contanstemente...
¡Ayuda!
Muchas gracias por el esfuerzo :D

Saludos
#7
eing 12479
¿Que advance map utilizas?
Igualmente, tu en el cabezal del mapa pones la condicion para que se ejecute.
Por ejemplo si pones en "Flag" 40FF y en value 0000.
Siempre que la variable 40FF sea 0 se ejecutará tu script de nivel.

Una vez se ejecuta tu script de nivel, puedes hacer lo siguiente.

#org 0x
checkflag 0xmismo_evento
if 0x1 goto 0xnada_temporal
loquesea
setflag 0xmismo evento
end

#org 0xnada_temporal
checkflag 0xflag_otroevento
if 0x1 goto 0xevento2
end

#org 0xevento2
loquesea
setvar 0x40FF 0x1
end


(Luego ya solo queda poner en el otro evento, que tenga que pasar, para quer se ejecute el "evento2" del script de nivel, activar la flag que pusiste...)

Saludos!
#8
ReoNeky 18653
¡Hola!

Bien, lo que has dicho ha cambiado bastante la cosa Eing.
El problema es:
Pasa el script y luego pasa a la "nada temporal" y se queda pillado, los tios del mapa se mueven y todo, pero el protagonista no se mueve. Es como si hiciera bucle de un script sin nada....

De verdad gracias por vuestro esfuerzo.
¡Ayuda!

Saludos
#9
Hackun 12904
Mira compañero, no quiero que te confundas ni nada... pero acabo de hacer un script que hace eso:




Saludos.
#10
eing 12479
Zas, me olvidé de eso, que se crea un bucle, cierto como la vida misma.
Lo correcto sería tal y como te dije pero de la siguiente manera..


#org 0x
checkflag 0xmismo_evento
if 0x1 goto 0xevento2
loquesea
setflag 0xmismo evento
setvar 0x40FE 0x1
end

#org 0xevento2
loquesea
setvar 0x40FF 0x1
end

(En el evento de la otra persona, la que le hables para que se active el segundo evento del script de nivel, deberias poner tambien un "setvar 0x40FE 0x0" , para que el scritp de nivel se vuelva a ejecutar, pero esta vez desde la segunda zona, ya que la flag está echa ^^.
Por cierto, en el evento de ESTA persona, antes del setvar pon un checkflag 0xflag o algo para que no vuelva a poner la variable 40FE a 1, cada vez que hables)

@Hackun: Como bien ha puesto él, tambien puedes hacerlo, no solo hay un camino que lleve a Roma, pues unos prefieren unos y otros otros, es lo que nos diferencia... Bien explicado e.e
l
#11
ReoNeky 18653
¡Hola!
Vale Gracias a todos =D me habeis ayudado bastante.
El problema era que al otro script de la otra habitacion le ponía 40FE 0x2, y a los otros setvar 0x40FE 0x1 y setvar 0x40FE 0x3, cosas raras... xDD.
Ya pueden cerrar el tema. ~~

Muchisimas gracias

Saludos