Registrarse

[Scripting] Scripts de Gatillo, Flags y Variables

Bugrhak

A long time ago I used to call myself "Subzero".
Respuesta: GBA | Scripting | Scripts de Gatillo, Flags y Variables [Básico]

Hola te quiero agradecer por hacer este tipo de tutoriales ya que me confunden un poco me gustaria que me explicaras mejor sobre las variables por ejemplo si quiero hacer que no puedas entrar a un lugar hasta que hables con cierta persona.
Espero tu respuesta
No he leído el tuto de cheve, pero te lo explico a mi modo.

Las variables son como un "contenedor" o como les dicen por ahí, una "alcancía" o valla uno a saber como le llaman.

El caso es que las variables "almacenan" un valor que puede ir desde 0x0 hasta 0xFFFF hexadecimalmente hablando, que traducido a decimal y a español diríamos que el valor de una variable puede ir desde 0 hasta 65535 (0xFFFF en hexadecimal, 65535 en decimal). Para concluir, si tomamos el valor 0 como unidad mínima, podemos decir que en realidad la variable goza de un valor máximo de 65536 valores.

Así damos por sentado el valor mínimo y máximo de una variable

Hablamos de valores, ¿no?

Pues tomemos los siguientes datos:

0x40FF 0x1

ahí, 0x40FF es nuestro contenedor/alcancía, es decir, nuestra variable.

Esto se aplica a todas las variables.
Y 0x1 es el valor.

En los scripts que se ejecutan cuando se cumple determinada condición, se usan las variables, como por ejemplo, en los scripts de gatillo. Donde la condición para que el script se ejecute es que una variable determinada (determinada por quien hace el script, claro) tenga un valor específico.

Eso se aplica también para lo que tú mencionas.

Usemos eso como ejemplo.

Primero, determinamos el primer script, correspondiente. Será el de la persona con la que tienes que hablar.

Código:
////Este es un script MUY MUY BÁSICO y a modo de demostración y explicación, nada mas////

#dynamic 0x800000
#org @inicio
lock 'relleno y decorativo del script
faceplayer 'relleno y decorativo del script
msgbox @texto 0x6
setvar 0x40FF 0x1 'esto de aquí es lo que nos interesa en este script. Usaremos el valor 0x1 en la variable para "determinar" que hablamos con la persona y con esto ya podríamos pasar por el lugar al que tanto queremos ir
release
end
Luego, faltaría hacer un segundo script, esta vez de gatillo donde la condición para que se ejecutase fuera que la variable anterior (la 0x40FF) tuviera el valor 0x0.

De esa forma, el segundo script (el que nos impide el paso) se ejecutará cuando la variable tenga el valor 0x0, porque como ya vimos, los scripts de gatillo se ejecutan cuando se cumple una determinada condición (acá, cuando la variable tenga el valor 0x0, claro).

Por eso al script de la persona le metimos un setvar para cambiar el valor de la variable a 1 con el fin de que no se cumpla la condición del otro script y así podamos pasar.


Luego vasta creatividad e ingenio para plasmar lo que quieras.

Espero haberte ayudado un poco.
Un saludo.


PD: Perdón si no se entiende de primeras algo de lo que expliqué, me explico como el c*lo XD.
PD2: En mi explicación doy por sentado de que conoces los comandos relacionados a las variables
 
Respuesta: GBA | Scripting | Scripts de Gatillo, Flags y Variables [Básico]

♠subzero♠;385667 dijo:
no he leído el tuto de cheve, pero te lo explico a mi modo.

Las variables son como un "contenedor" o como les dicen por ahí, una "alcancía" o valla uno a saber como le llaman.

El caso es que las variables "almacenan" un valor que puede ir desde 0x0 hasta 0xffff hexadecimalmente hablando, que traducido a decimal y a español diríamos que el valor de una variable puede ir desde 0 hasta 65535 (0xffff en hexadecimal, 65535 en decimal). Para concluir, si tomamos el valor 0 como unidad mínima, podemos decir que en realidad la variable goza de un valor máximo de 65536 valores.

Así damos por sentado el valor mínimo y máximo de una variable

hablamos de valores, ¿no?

Pues tomemos los siguientes datos:

0x40ff 0x1

ahí, 0x40ff es nuestro contenedor/alcancía, es decir, nuestra variable.

Esto se aplica a todas las variables.
Y 0x1 es el valor.

En los scripts que se ejecutan cuando se cumple determinada condición, se usan las variables, como por ejemplo, en los scripts de gatillo. Donde la condición para que el script se ejecute es que una variable determinada (determinada por quien hace el script, claro) tenga un valor específico.

Eso se aplica también para lo que tú mencionas.

Usemos eso como ejemplo.

Primero, determinamos el primer script, correspondiente. Será el de la persona con la que tienes que hablar.

Código:
////este es un script muy muy básico y a modo de demostración y explicación, nada mas////

#dynamic 0x800000
#org @inicio
lock 'relleno y decorativo del script
faceplayer 'relleno y decorativo del script
msgbox @texto 0x6
setvar 0x40ff 0x1 'esto de aquí es lo que nos interesa en este script. Usaremos el valor 0x1 en la variable para "determinar" que hablamos con la persona y con esto ya podríamos pasar por el lugar al que tanto queremos ir
release
end
luego, faltaría hacer un segundo script, esta vez de gatillo donde la condición para que se ejecutase fuera que la variable anterior (la 0x40ff) tuviera el valor 0x0.

De esa forma, el segundo script (el que nos impide el paso) se ejecutará cuando la variable tenga el valor 0x0, porque como ya vimos, los scripts de gatillo se ejecutan cuando se cumple una determinada condición (acá, cuando la variable tenga el valor 0x0, claro).

Por eso al script de la persona le metimos un setvar para cambiar el valor de la variable a 1 con el fin de que no se cumpla la condición del otro script y así podamos pasar.


Luego vasta creatividad e ingenio para plasmar lo que quieras.

Espero haberte ayudado un poco.
Un saludo.


Pd: Perdón si no se entiende de primeras algo de lo que expliqué, me explico como el c*lo xd.
Pd2: En mi explicación doy por sentado de que conoces los comandos relacionados a las variables
muchas gracias por tu respuesta he entendido mas o menos se que una variable almacena un valor pero lo que no entiendo y que si me explicaste pero no entendi muy bien es que como el script se da cuenta que ya hable con una persona para que ya no se ejecute el otro script que lo impedia.
Espero tu respuesta
 

Bugrhak

A long time ago I used to call myself "Subzero".
Respuesta: GBA | Scripting | Scripts de Gatillo, Flags y Variables [Básico]

muchas gracias por tu respuesta he entendido mas o menos se que una variable almacena un valor pero lo que no entiendo y que si me explicaste pero no entendi muy bien es que como el script se da cuenta que ya hable con una persona para que ya no se ejecute el otro script que lo impedia.
Espero tu respuesta
AH, pues sencillo, hay que comparar el valor de la variable, y determinar lo que pase si se cumple la condición establecida en la fase del comparado.
No es que el script "se de cuenta de que hablaste con la persona", solo son instrucciones que nosotros interpretamos de una forma, y el sistema, de otra :V

Aquí te dejo un un tutorial que lo explica todo, y muy bien ;)

https://whackahack.com/foro/t-42542/megatutorial-scripting-desde-cero-finalizado
 
Respuesta: GBA | Scripting | Scripts de Gatillo, Flags y Variables [Básico]

♠Subzero♠;385672 dijo:
AH, pues sencillo, hay que comparar el valor de la variable, y determinar lo que pase si se cumple la condición establecida en la fase del comparado.
No es que el script "se de cuenta de que hablaste con la persona", solo son instrucciones que nosotros interpretamos de una forma, y el sistema, de otra :V

Aquí te dejo un un tutorial que lo explica todo, y muy bien ;)

https://whackahack.com/foro/t-42542/megatutorial-scripting-desde-cero-finalizado
Gracias por seguir explicandome pero solo una duda mas.
Todo va en un solo script o van separados. ME LA PASO LEYENDO ESE TUTORIAL TODOS LOS DIAS Y ESO ES LO QUE NO ME CUADRA ME ENCANTARIA QUE ME SIGUIERAS AYUDANDO YA QUE VEO QUE SABES MUCHO SOBRE ESTE TEMA GRACIAS.
 

Saisar

Hago lo que puedo para ayudar a los demás ;)
Respuesta: GBA | Scripting | Scripts de Gatillo, Flags y Variables [Básico]

No hay un script de ejemplo por aca? es que me enrede un poco :v
 
Arriba