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í....
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...
[align=center]Flags y Variables[/align]
[align=center]Flags[/align]
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)
[align=center]Variables[/align]
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:
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...
[align=center]Flags y Variables[/align]
[align=center]Flags[/align]
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
'---------------
#org 0xE3D9F4
lock 'Bloquea el personaje
checkflag 0x4050 'se fija si la flag 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 verte\ntengo un Carameloraro para ti\lten te lo envía tu madre
#org 0xE3DD04
= Hola ... \n¿que? no, no tengo nada mas para ti
#org 0xE3D9F4
lock 'Bloquea el personaje
checkflag 0x4050 'se fija si la flag 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 verte\ntengo un Carameloraro para ti\lten 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)
[align=center]Variables[/align]
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
Ruby: 5000 - 6FFF (Créditos Garfiuld)
Rojo Fuego: 40FF hacia abajo (Según javi4315) 5000 - 7FFF (Según Garfiuld)
Esmeralda: 5000 - 7FFF (Créditos Garfiuld)
*nota: Rom bases en ingles
*nota2: No eh comprobado que estas variables estén libres
*nota3: Si alguien las sabe mejor porfa un Pm editare y pondré créditos
Rojo Fuego: 40FF hacia abajo (Según javi4315) 5000 - 7FFF (Según Garfiuld)
Esmeralda: 5000 - 7FFF (Créditos Garfiuld)
*nota: Rom bases en ingles
*nota2: No eh comprobado que estas variables estén libres
*nota3: Si alguien las sabe mejor porfa un Pm editare y pondré créditos
Aquí finaliza mi 2º tutorial... Espero que les aya ayudado Les deseo Buena Suerte y...
Salu2 :blush: