Jaos Dawn

jaosdawn

Script de nivel - 02 Validates Values

Script de nivel - 02 Validates Values
 
 
 
Tutorial para hacer scripts de nivel del tipo 02 Validates Values
Base R/S/E/FR/LG
Idioma es

Un script de nivel de tipo 02 Validates Values es un script que se ejecuta nada más entrar en un mapa siempre y cuando la variable elegida tenga el valor que nosotros deseemos y que le hayamos asignado previamente en otro script (si requiere una condición).

Las variables que se pueden usar son relativas, algunos dicen unas y otros dicen otras. Yo, personalmente, prefiero utilizar desde la 40FF hacia abajo. De todas formas, no es necesario preocuparse mucho por la cantidad de variables, ya que estas son reutilizables y podéis usarlas muchísimas veces.

 

Contenido

 [ocultar]
  • 1 ¿Qué necesito?
  • 2 ¿Cómo lo hago?
    • 2.1 Hagamos el script
    • 2.2 Vamos a convertir este script en un script de nivel
    • 2.3 El script se repite indefinidamente
  • 3 ¿Cómo pongo una condición?
  • 4 ¿Eso es todo?
  • 5 Dudas

¿Qué necesito?

Pues únicamente necesitas Adevance map y XSE (si utilizas pokéscript, lo podrás hacer también, pero necesitas XSE de cualquier forma). Eso es lo único que necesitas.

De todas formas, recomiendo también utilizar algún programa de edición de texto (notepad/bloc de notas, por ejemplo) para apuntar las variables utilizadas y sus detalles, así podremos saber siempre qué varibles hemos utilizado y para qué evitando posibles errores.

¿Cómo lo hago?

Hagamos el script

Bien, vamos a empezar. Lo primero que haremos será escribir nuestro script. No explicaré cómo hacerlo porque este tutorial no tiene ese objetivo, así que tan sólo pondré un ejemplo y explicaré su función para evitar confusiones. Por supuesto, vosotros siempre podréis hacer el script que queráis como si fuera de gatillo, es prácticamente igual.

Bueno, aquí está el script:

#dynamic 0x800000

#org @comienzo
lock
applymovement 0x1 @mov
waitmovement 0x0
pause 0x20
msgbox @1 0x6
release
end

#org @1
= ¡[player]!n¡Has llegado justo a tiempo!lVen, excoge tu pokémon.

#org @mov
#raw 0x00
#raw 0x62
#raw 0xFE

Lo he hecho sobre la marcha, así que puede tener algún error, pero bueno, el script básicamente lo que hará será aplicarle un movimiento a un personaje (mirar abajo, exclamación) y aparecer un mensaje.

En realidad, la explicación de este paso (escribir el script) no es fundamental para que entendáis correctamente el manual, pero bueno, prefiero hacer todo el proceso paso por paso poniendo ejemplo para asegurarme de que surgirán el menor número de dudas posibles.

Vamos a convertir este script en un script de nivel

Lo que haremos ahora es poner un script de gatillo en un lugar que no podamos pisar de ninguna manera, así evitaremos que el script de nivel se ejecute como script de gatillo.

Nivel 1.jpg

Una vez hecho esto, seleccionamos el script de gatillo. Ahora vamos a configurarlo para que todo salga bien. Así que deberemos ver (al pinchar sobre él) algo así en Advance map:

Nivel 2.jpg

Bien, donde pone "desconocido" (el primero), tendremos que poner "0003", la verdad es que no sé por qué es esto, pero de igual forma, es así. Después, vamos a poner una variable donde dice "Var Number", en mi caso, por ejemplo, utilizaré la 40FB. Cabe decir que siempre es necesario utilizar una variable, si no, el script quizás no funcione. "Var value" lo dejamos en "0000", ya que esto lo explicaré después. Y, por último, tendremos que poner el offset de nuestro script en "Script offset", como en cualquier otro tipo de script.

Bien, ahora vamos al cabezal del mapa, vamos a convertir nuestro script en un script de nivel. Cuando vayamos al cabezal, tendremos que dirigirnos a "Map script", ahí configuraremos nuestro script:

Nivel 3.jpg

Ahora miramos si ya hay un script de nivel de tipo 02 Validates Values (si lo hay, tendremos que reemplazarlo, ya que sólo puede haber uno en cada mapa) y, si no lo hay, tendremos que crear uno nuevo dándole a "Add" y seleccionando el tipo de script. Cuando lo hayamos hecho, lo rellenamos si como de un script de gatillo se tratara. En "Flag" ponemos la variable y en value le ponemos "0000" por el momento. Luego nada más que ponemos el offset de nuestro script en "Script offset 2" y darle a Save map scripts. Bueno, hecho todo esto, sólo queda un último paso para que nuestro script sea un script de nivel.

Siguiendo en el cabezal del mapa pulsamos Ctrl+H y cambiará la vista del cabezal. Tenemos que irnos a donde dice opciones del mapa y veremos algo así:

Nivel 4.jpg

Ahora sólo tenemos que ir a "Map script offset" y copiar ese offset. Abrimos XSE, cargamos nuestro rom, marcamos la opción "script de nivel" (icono de una llave inglesa), decompilamos y compilamos de nuevo. Ahora ya tendremos un script de nivel perfectamente funcional.

El script se repite indefinidamente

Claro que se repite. Esto sucede porque se comprueba el valor de la variable y, si es correcto, se ejecuta el script. Si recordamos, en "Var value" en el gatillo pusimos "0000", exactamente igual que en "Value" en el cabezal. Puesto que el valor siempre será "0000", el script no dejará de ejecutarse nunca (nunca o hasta que de error). Por ello, tendremos que hacerle un arreglo a nuestro script. Lo que vamos a hacer es añadir un comando: "setvar". Este comando sirve para cambiar el valor de una variable (para más detalles, mirar un tutorial sobre variables). Así que lo añadiremos a nuestro script, con lo que nos quedaría así:

#dynamic 0x800000

#org @comienzo
lock
applymovement 0x1 @mov
waitmovement 0x0
pause 0x20
msgbox @1 0x6
setvar 0x40FB 0x1
release
end

#org @1
= ¡[player]!n¡Has llegado justo a tiempo!lVen, excoge tu pokémon.

#org @mov
#raw 0x00
#raw 0x62
#raw 0xFE

Lo que haremos será darle a la variable (en mi caso 0x40FB) otro valor para que cuando se compruebe, no se repite. Es decir, nosotros cuando pusimos la variable y su valor pusimos que el script se ejecutaría cuando la variable 0x40FB tuviera el valor 0x0000, entonces, si le asignamos el valor 0x0001 (como se indica en el script) el script no se repetirá.

¿Cómo pongo una condición?

Bueno, con lo que ya hemos aprendido hasta aquí, esto nos resultará más sencillo, incluso puede que ya hayas deducido cómo hacerlo. Pero bueno, antes de seguir, vamos a aclarar algunas cosas. Con poner una condición me refiero a hacer que el script se ejecute cuando queramos y no la primera vez que entremos en el mapa.

Si recordamos, para que un script de nivel se ejecute, la variable 0x(la variable que sea) tiene que tener el valor definido en la configuración del script. Es decir, si antes pusimo que el script se ejecutara cuando la variable 0x40FB se ejecutara cuando tuviera el valor 0x0000, ahora haremos que se ejecute cuando tenga el valor 0x0001. Esto hará posible que podamos entrar en el mapa sin que se ejecute el script.

Para ejecutarlo, debemos hacer un script algo en el que le demos el valor 0x0001 a la variable 0x40FB. Esto lo haremos mediante el comando "setvar" de esta manera: "setvar 0x40FB 0x1". Ahora que la variable tiene el valor 0x0001, se ejecutará el script al entrar en el mapa. Y, para que no se repita, simplemente le damos otro valor a la variable distinto a 0x0001, como en el ejemplo de arriba (sólo que antes el valor era 0x0000).

Por último, quiero recordar que el valor que queramos tenemos que ponerlo tanto en "Var value" en el script de gatillo como en "Value" en el cabezal del mapa.

¿Eso es todo?

Efectivamente, eso es todo. No hay nada más que saber sobre este tipo de script. De cualquier forma, siempre puedes preguntar cualquier duda en el foro o reportar cualquier error en mi perfil. Y, por supuesto, siempre puedes leer algún tutorial sobre variables para aprender más sobre ellas.


Javi4315 18:52 28 mar 2011 (EDT)

Hoy habia 1 visitantes (1 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