9184-GBA_|_Scripting_|_Scripts_de_Gatillo,_Flags_y_Variables_\[Básico]
#0
Cheve_X 15014
Buenas... después de pensarlo mucho me he decidido por hacer este tutorial sobre scripts de gatillo que, como dijo Rey Boo :XD: parecería que les tienen miedo por aquí.... :D


Bueno empecemos...

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

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)...




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... :dodgy:

Para que no suceda, tienes que cambiar unos valores en AM:

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)




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


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. (El LASTRESULT puede ser obtenido de otro comando dentro de un mismo script)

Comparevars 0x(variable A) 0x(Variable B) 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) 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) 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)

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




Aquí finaliza mi 2º tutorial... Espero que les aya ayudado Les deseo Buena Suerte y...

Salu2 :blush: