Registrarse

[Ruby] ¿1 Flag en 2 scripts?

Estado
Cerrado para nuevas respuestas.
Desde que empeze no tuve la necesidad de ocupar 2 scripts en linea (como el del prof. oak al comienzo de FR) y bueno, de ejemplo digamos que quisiera pasar a otra ruta y me paro en un script, luego alguien me da algo o yo que se y te deja ir.
Aqui esta mi duda ¿Debo de ocupar la misma flag en el otro script para que se active(el tipo ese no nos hable)?¿y como seria?
Aclaro que ya lei los tutoriales de scripts de gatillo, de flags y de variables pero o no entendi nada o solo se aplica en un script
¿Me darian un ejemplo?
 

kakarotto

Leyenda de WaH
Un script de gatillo no es tan dificil de entender pero eso sí debes leer tutoriales y hacer mucho "prueba-error" para dominarlo.

Supongamos que en ruby ( que no lo se ) uma de sus variables libres es la 0x40FF. Un script de gatillo no se usa las flags para activarlas, si no cambiarle el valor de la variable para que ocurra un comportamiento u otro. Realmente es mas practico asi, ya que puedes jugar que cuando tenga un valor haga una cosa, cuando tenga otro valor otro y así.

Tambien tienes que tener en cuenta que al establecer el condicional no es if 0x0 o 0x1 como en las flags, si no ke puede ir desde 0x0 a 0x5.

1°) crea una casilla script en advanced map, añade el id de la variable 0x40FF y el valor 0 ( desactivado por defecto )
2°) crea un mini , ponlo en el mapa
Código:
 #dynamic 0x800000
lock
faceplayer
msgbox @texto 0x6
setvar 0x40FF 0x1
release
end

#org @texto
= Activando var..
Un sencillo script que pone el valor 1 a la variable 40FF

3°) Vamos al script del suelo (gatillo)
Código:
#dynamic 0x800000
lock
faceplayer
compare 0x40FF 0x1
if 0x1 goto @activado
release
end


#org @activado
msgbox @si 0x6
end

#org @si
= activado por npc.
Si pisas antes el script del suelo como comprobaras, no se ejecuta puesto que tiene el valor 0. Ahora, si hablas con el npc se pondra valor 1 y entonces como en el script del suelo el condicional para que funcione comprueba si tiene el mismo valor y así es, se te ejecutaria siempre.

Espero que lo hayas entendido ( puede que tenga alguna errata, disculpas x ello)

Saludos.
 

Fran Agustín

Si el sol besa tus ojos, ni cuenta te das.
Miembro insignia
Buenas, buenas.
Cuando kakarotto te habla de añadir un script de gatillo, hablamos de esos cuadritos verdes con una s encima, como este:
Y al configurarlo con el número de variable y el valor que tenga para que se ejecute sería esto (aparece al seleccionar el cuadro verde):
En Var Number pones el número de la variable (en el ejemplo de kakarotto sería 40FF) y en Var Value el valor que tiene que tener la variable para que se ejecute el script (01).
Generalmente no queremos que un script de gatillo se repita para siempre. Entonces, lo que hacemos es agregar o en el mismo script o en otro (depende de si quieres que se ejecute 1 sola vez o hasta que pase otra cosa) un addvar Var_Number 1.

Tambien tienes que tener en cuenta que al establecer el condicional no es if 0x0 o 0x1 como en las flags, si no ke puede ir desde 0x0 a 0x5.
Ahí tenemos un error en los conceptos. El comando if SIEMPRE lleva como primer parámetro un número entre 0 y 5, tanto al usarse luego de un compare (variables) como de un checkflag.
Lógicamente podemos pensarlo así: un checkflag compara si el valor de la variable es 1 (o sea, está activada). Al hacer el if, el parámetro 1 significa igual que, es decir que está activada; el 0, por otro lado, es menor que, es decir que la variable vale menos de 1.
Pero podríamos usar cualquier tipo de comparación que querramos. Dicho sea de paso:

Comparaciones dijo:
0 = Menor que
1 = Igual que
2 = Mayor que
3 = Menor o igual que
4 = Mayor o igual que
5 = Distinto que
Bueno, espero haberme explicado. Cualquier duda, no teman consultarme ;)
 
Estado
Cerrado para nuevas respuestas.
Arriba