Registrarse

[RH - Scripting] [ESCUELA DE SCRIPTS] Scripts de nivel

Estado
Cerrado para nuevas respuestas.

Xabier2012

Usuario mítico



¿Qué es un script de nivel?

Llamamos scripts de nivel a aquellos scripts que se ejecutan al entrar en un mapa. Los scripts de nivel se configuran en el cabezal del AM. Hay varios tipos de script de nivel y cada uno tiene una "especialidad" o función.

01 'setmaptile' script: Se utiliza para comandos setmaptile, que son aquellos que modifican tiles en el mapa. Por ejemplo, simular que una roca ya no bloquea el camino. Este script de nivel se dará con más detalle en el siguiente tutorial. Se ejecuta siempre.

02 Validates values [playback]: El más usado. Permite utilizar msgbox applymovement y todos los comandos practicamente, cosa que otros scripts de nivel no permiten y haría que la pantalla se quedara en negro. Es decir, que este lo usamos para scripts importantes o de historia.
Dependen de una condición para que se ejecuten.

03 On entering map/not on menu close: Este se utiliza para dar valores y comprobar datos, como variables y flags. Comandos que no interaccionan con el jugador, como el comando sethealingplace que se utiliza en centros pokemon e indica que el mapa es lugar de curación para cuando te derrotan. Se repite siempre.

04 Validates valus, loads handler: Este se utiliza hacer acciones en el mapa que se tienen que ejecutar antes de que el jugador lo pueda ver. Por ejemplo, cambiar de lugar un minisprite temporalmente. Si lo hacemos con el tipo 02, en los primeros frames veremos como se ejecuta el comando y se teletransporta el mini, pero con este comando no, ya que esto se ejecutará antes de que se cargue todo el mapa. Depende de una condición para ejecutarse.



Configurando nuestro script de nivel

La estructura del script en vuestro editor de scripts y su compilación es la misma que si fuera un script normal. Hacemos nuestro script y lo compilamos. En mi caso el script se guardó en el offset 0x800000.

Ahora vámonos al cabezal del mapa para configurar nuestro script, exactamente a esta parte:



Le damos a add para añadir scripts de nivel, o a remove si queréis eliminar los de nintendo y luego a add.

Entonces en script type elegimos el tipo de nuestro script de nivel y dependiendo del tipo ahoremos una cosa u otra.

Si es del tipo 02 o 04:

Estos dos tipos requieren de condiciones para que se ejecuten.

En script offset colocaremos nuestro offset principal del script ya compilado, en mi caso 0x800000. En flag pondremos una variable y en value el valor que tiene que tener dicha variable para que le script se ejecute. Recordad que dentro del script debéis de cambiar el valor de la variable para que no coincida con "value" y así no se repita el script.

Si es tipo 01 o 03

En este caso solo tenéis que poner el script compilado en script offset puesto que se ejecutan una vez siempre que se entra en un mapa. Si queréis poner condiciones las podéis poner dentro del propio script.



Dudas y problemas:

Se queda la pantalla en negro:

-Posiblemente has puesto comandos en el script que por el tipo de script de nivel que has puesto no lo puede ejecutar. Como poner un msgbox en un script de nivel tipo 03.

Mi player se queda congelado antes o después

-A veces puede ser por un release pero normalmente es un error de compilación que se soluciona siguiendo este tutorial: tutorial

Puedo poner más de un script de nivel?

-Por defecto no, pero hay un tutorial para hacerlo: tutorial
@Tervaxx @Toni @rdoble @AwesomeCS @RafaSc3 @LluviaElemental @AlexanderWWE @Axnez @ZeonElMagnífico @jfem
 
Estado
Cerrado para nuevas respuestas.
Arriba