Jaos Dawn

jaosdawn

Scripts de Gatillo Flags y Variables

Scripts de Gatillo Flags y Variables
 
 

Tutorial dedicado a Rey Boo

Empecemos...

Quizás algunos no sepan que son los Script de Gatillo así que aquí mi definición:

Contenido

 [ocultar]
  • 1 Script de Gatillo:
  • 2 Flags y Variables
    • 2.1 Flags
    • 2.2 Variables

Script de Gatillo:

Son esos eventos que son una "S" verde (imagen) que nos encontramos en AMap y que se activan al pisarlos (si se cumple una determinada función)...

tutosverdfe.png

Si crean uno de estos Script sin ponerle ningún offset, cuando lo pisen pasará exactamente lo mismo que cuando dejas una persona sin offset y le hablas (con personas me refiero a los scripts que son una "P" o que tienen el sprite)es decir, se congelará el juego...

Si creas un Script común (es decir de "P" o "S" NARANJA) y se lo asignas a un Script de Gatillo seguirá sucediendo lo mismo...

Para que no suceda, tienes que cambiar unos valores en A-Map: (Ver Imágen)

1. Donde dice "Desconocido" SIEMPRE pones eso (0003)

2.Aquí hay que poner un nº de variable para asignarle al SG (SG = Script de Gatillo)

3. Aquí el Valor que tiene que tener la variable para que el SG Funcione (entre 0000 y FFFF)

tuto2q.png


Bueno al poner en Amap estos números, nuestro SG debería andar bien...

 

Flags y Variables

Flags

Las Flags: tienen solo dos valores 0 (o desactivada) y 1 (o activada)son como el interruptor de la luz... para un lado apaga y para el otro enciende. Se activan mediante 1 comando, setflag... así, si la flag estaba desactivada al usar el setflag se activa, en cambio si ya estaba activa debemos usar un clearflag para desactivarla (es como nuestro dedo intentando quemar el foco de la luz prendiendo y apagándola)

También está el comando checkflag que se fijará si X flag está activada o no

Ejemplo

 '---------------
#org 0xE3D9F4
lock 'Bloquea el personaje
checkflag 0x4050 se fija si la flag 4050 está o no activada (si se a usado previamente setflag, estará  activada y si se a usado clearflag, desactivada)
if 0x1 call 0x8E3DA44 si esta en 0x1(activada), osea si se a usado setflag previamente, irá a la  dirección E3DA44 y si no seguirá con el script.
msgbox 0x8E3DA94 MSG_FACE "Hola [player] cuanto tiempo sin ve..."un msgbox común y corriente (dialogo para el que no lo sabe)
giveitem 0x44 0x1 MSG_OBTAIN Este comando hace que te den un caramelo raro
setflag 0x4050 ESTO ACTIVA LA FLAG 4050
release para sacar el efecto del "lock" es decir permitir que el personaje se mueva de nuevo
end Termina el script

'---------------
#org 0xE3DA44
msgbox 0x8E3DD04 MSG_FACE "Hola ... n¿que? no, no tengo nada..." 'un msgbox común y corriente (dialogo para  el que no lo sabe)
release  para sacar el efecto del "lock" es decir permitir que el personaje se mueva de nuevo
end 'Termina el Script



'---------
' Strings
'---------
#org 0xE3DA94
= Hola [player] cuanto tiempo sin vertentengo un Carameloraro para tilten te lo envía tu madre

#org 0xE3DD04
= Hola ... n¿que? no, no tengo nada mas para ti

  Lo que hacemos con este ejemplo es que: una vez que hablamos con quien nos dé el carameloraro luego de dárnoslo se activará la flag 4050 con lo que al chequearla al principio saltará a otro script evitándonos un molesto loop en el script... (en otras palabras,sin el uso de las flags, nos daría un caramelo cada vez que le hablemos)

 

Variables

Las variables son como alcancías con candado (no como esas que se rompen) (?), puedes abrirlas y ponerle dinero o puedes sacarle el dinero que ya le pusiste... pero no podrás sacarle dinero si nunca le has puesto y nunca podrás ponerle mas dinero si ya no tienes lugar

Las variables no están activadas o desactivadas, sino que tienen un valor (entre 0000 y FFFF) para cambiar ese valor usamos los comandos:addvar 0x(variable) 0x(valor a añadir) y subvar 0x(variable) 0x(valor a substraer) Los comandos addvar y subvar no ponen un valor determinado, sino que suman o restan, respectivamente, al valor que ya teníamos antes

Por ejemplo:

Tenemos la variable A3E5 con el valor 3 y en un comando usamos addvar 0xA3E5 0x2 esto hará que la variable tenga valor 5 (3 + 2) y si en otro comando queremos que pase a tener el valor 1 pues subvar 0xA3E5 0x4

Luego tenemos los comandos: Compare (Compare 0x(Variable A) 0x(valor a comparar con el de A) que compara el valor de una variable con un determinado valor o con un LASTRESULT (ultimo resultado) de algún valor anterior, si es igual almacena 0x1, y si no es igual almacena 0x0. (El LASTRESULT puede ser obtenido de otro comando dentro de un mismo script)

Comparevars 0x(variable A) 0x(Variable B)[/color] compara los valores entre la variable A y la variable B por lo general siempre sigue un comando "if" luego del if se usan los siguientes valores:

0x0 el valor de A es menor que B
0x1 el valor de A es igual que B
0x2 el valor de A es mayor que B
0x3 el valor de A es menor o igual que B
0x4 el valor de A es mayor o igual que B
0x5 el valor de A es distinto que B

También tenemos:

Copyvar 0x(Variable A) 0x(Variable B)[/color] Lo que hará este comando será copiar el valor que tiene la variable A y asignárselo a la Variable B

Copyvarifnotzero 0x(Variable A) 0x (Variable B)[/color] Este comando hará exactamente lo mismo que el anterior con una excepción: no funcionará si el valor de la variable A es 0

'setvar' 0x(variable) 0x(valor a asignar)[/color]

Este comando hace que una variable X tenga un valor Y. Aunque tenga que sumar o restar valores, la variable quedará con el valor asignado


Recordar... cada SG,al tener una variable con un valor asignado es como si al principio del script tuviese un "Checkvar", este comando no existe, pero es como si existiera ya que esta chequeando que la Variable "Y" tenga el valor "X" (en mi caso que la variable 4051 tenga el valor 0) si tiene mas de ese valor el script dejara de ejecutarse, y si tiene menos también

  • nota: mi script no puede tener menos ya que está en 0

Variables Disponibles Ruby: 5000 - 6FFF (Créditos Garfiuld)

Rojo Fuego: 40FF hacia abajo (Según Mew2)

Esmeralda: 5000 - 7FFF (Créditos Garfiuld)

  • nota: Rom bases en ingles
  • nota2: No eh comprobado que estas variables estén libres

Fin del Tutorial, Salu2!

  • Porfavor, Alguien que se lleve bien con "Wikicodes" que edite ésto para que quede más presentable ^^
Hoy habia 8 visitantes (56 clics a subpáginas) ¡Aqui en esta página!

48.858309 2.294533 Eiffel Tower, Paris, France Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis