8621-GBA_|_Scripting_|_Script_de_nivel_-_02_Validates_Values_(fácilmente)
#0
Javi4315♪ 13374
Bueno, esta vez os traigo un tutorial sobre cómo hacer un script de nivel fácilmente (o por lo menos, a mí me parece este método mucho más fácil que el del tutorial de Baro en la web). Este es el método mediante el que he hecho todos mis scripts de nivel y me funciona a la perfección. Así que lo compartiré con todos vosotros con el objetivo de facilitaros las cosas. Espero que este tutorial os sirva.

Pequeña explicación:

Un script de nivel es un script que se ejecuta justo al entrar en un mapa. La sintaxis del script podría decirse que es igual a la del script de gatillo haciendo uso de variables. No hay nada más que decir al respecto xD.

¿Qué necesito?

Sólo necesitas dos herramientas (tres si utilizas pokescript), Advance map y XSE. Si haces los script con pokescript, pues obviamente necesitarás también pokescript xD.

¿Cómo lo hago?

Esta es la parte larga e interesante. Iré mostrando imágenes para su perfecta comprensión.

En primer lugar, vamos al mapa en el que queremos que se ejecute nuestro script de nivel y ponemos un script (la S con fondo verde en advance map). Este script lo debemos poner en un lugar donde no lo podamos pisar, ya que si lo pisamos, actuará como un script de gatillo. De cualquier forma, eso sólo es necesario hacerlo si vamos a ponerle una condición a nuestro script, es decir, si no queremos que ese script no se ejecute hasta que no haya sucedido algo. Así que deberíamos tener algo así:



Ya debemos tener nuestro script, pero si no lo tenemos, pues lo hacemos xD. Es necesario que pongamos una variable. Es recomendable empezar desde la 40FF e ir bajando. Así que haremos uso del comando "setvar". Lo que debemos hacer es poner en el script (justo antes del release) "setvar 0x(variable) 0x(valor)". En este caso, pondremos "setvar 0x40FF 0x1". 40FF es la variable que hemos utilizado para el script y el 0x1 es para sumarle un valor a la variable para que no se vuelva a ejecutar. Esto se comprenderá mejor más adelante cuando explique las condiciones.

Bien, cuando ya tengamos nuestro script compilado, se lo asignamos al script de advance map. Debería quedar algo así:



Como en un script de gatillo, es necesario poner 0003 en "Desconocido". En "Var number" debéis poner la variable. Cómo ya tenía utilizadas en ese rom las variables 40FF, 40FE, 40FD y 40FC, utilizo la 40FB, pero si no habéis utilizado ninguna, empezad por la 40FF. "Var value" lo dejáis así, porque se ejecutará la primera vez que entréis en el mapa. Ya explicaré como hacer que no sea la primera vez que entras en el mapa. El segundo "Desconocido" no lo toquéis, lo dejáis como está. Y en "Script offset" ponéis el offset que os ha dado al compilar el script.

Bien, ahora váis a "Ver cabezal" y váis a "Map script". Tenéis que poner algo así:



En primer lugar, debéis borrar todos los scripts (o como mínimo los de tipo 02, que será el tipo de script de nivel que haremos) dándole a "remove". Después, pulsamos en "Add" y añadimos un script de tipo 02. Cuando lo tengamos, ponemos el offset de nuestro script en "Script offset 2" y la variable utilizada en "Flag". Cuando lo hayamos hecho, le damos a "Save map scripts" y nos aparecerá otro offset distinto en "Script offset".

Ahora lo que debemos hacer es pulsar ctrl+H para la vista profesional del cabezal y vamos a "Opciones del mapa". Tendremos que ver algo así:



Ya simplemente copiamos el offset que hay donde dice "Map script offset". Como podéis ver, en mi caso es "71DD68". Ahora abrimos el XSE y cargamos el rom. Ponemos el offset y le damos a "decompilar" (icono del destornillador y la llave inglesa). Después, marcamos script de nivel (icono de la llave inglesa) y le damos a "compilar" (icono del engranaje).

Y ya está, tenemos nuestro script de nivel.

¿Cómo pongo una condición?

Con poner una condición me refiero a hacer que nuestro script de nivel se ejecute cuando haya sucedido una cosa. Para eso simplemente tenemos que jugar con el valor de nuestra variable. Por ejemplo, si utilizamos la variable "40FF" en vez de poner "0" como valor en el script (de advance map) y en el cabezal (esto cuando estamos configurando nuestro script) ponemos "1".

Ahora lo que debemos hacer es ir al otro script. El otro script es el que hará que después de ejecutarse, se ejecute el script de nivel al entrar en el mapa (en el que hayamos puesto el script de nivel). En este otro script, debemos utilizar el comando "setvar" de nuevo. Lo que tenemos que hacer es sumarle un valor a nuestra variable. Es decir, ponemos "setvar 0x40FF 0x1". Así, el valor de la variable "40FF" es el mismo que el que pusimos en el script (de advance map) y en el cabezal cuando configuramos nuestro script. Al coincidir el valor de la variables, se ejecutará el script.

Pero recordad que para que no se repita el script de nivel, tendremos que poner "setvar 0x40FF 0x2". El 0x2 porque ya utilizamos el 0x1.
_____________________

Eso es todo. Si al principio no os sale o no lo entendéis bien, practicando seguro que os sale.

Bueno, espero que esta forma de hacer scripts de nivel os guste y os resulte más fácil hacerlo así. Espero haber ayudado.

Cualquier duda o problema que tengáis posteadla e intentaré ayudaros en todo lo que pueda.

Saludos!!

PD: El tutorial ha sido totalmente redactado por mí y las imágenes son todas mías. Lo digo por si acaso xD.

PD2: Si queréis un video demostrando que el script funciona, decídmelo y lo subo ;D.