Pokémon Essentials tiene una función muy curiosa, permite que podamos activar y desactivar interruptores según si se cumple cierta condición via scripting.
Antes de seguir este tutorial doy por hecho de que sabes crear y utilizar los interruptores, si no es el caso puedes aprender a usarlos en este otro tutorial.
Creando el interruptor
Cuando el nombre de un interruptor en Essentials comienza con "s:" el propio sistema activará o desactivará el interruptor según si el script que sigue al "s:" se cumple.
Voy a poner un ejemplo muy simple: un interruptor que se active únicamente si el nombre del jugador es "Klein", la variable que guarda el nombre del jugador es $Trainer.name por lo que simplemente habría que hacer una comparación en Ruby ($Trainer.name=='Klein').
Si creo un interruptor y lo llamo "s:$Trainer.name=='Klein'" este solo se activará si el nombre de mi jugador es Klein.
Y así quedaría el evento con la condición de aparición:
Por supuesto casi nadie va a querer crear un evento que se ejecute solo cuando el jugador se llame de cierta forma, pero es solo un ejemplo, ahora veremos ejemplos útiles donde podemos usar esta función de Essentials.
Ejemplos útiles
Uno de los ejemplos más útiles que puede tener esto es hacer por ejemplo que un evento se ejecute solo si tienes más de un cierto número de Pokémon.
La variable que guarda el equipo es $Trainer.party, esta es un array por lo que para obtener la longitud (o sea, el número de objetos, en este caso Pokémon, que hay en el array) usaríamos $Trainer.party.length.
Si creamos un interruptor y lo llamamos "s:$Trainer.party.length > 0" solo se ejecutaría cuando tengamos más de un Pokémon, muy útil para eventos que queramos que aparezcan solo cuando tengamos al fin un Pokémon.
También podemos hacer eventos que aparezcan según el año, mes, día o hora a la que juguemos. Estos son los scripts que devuelven la fecha.
Devuelve el año, por ejemplo ahora mismo me devuelve 2017.
Devuelve el mes, por ejemplo ahora mismo me devuelve 9 (septiembre)
Devuelve la hora
Devuelve el minuto
Podemos comprobar también los segundos con Time.now.sec pero no creo que sea de mucha utilidad.
Gracias al tiempo podemos hacer por ejemplo que un interruptor solo esté activo desde las 9 de la noche hasta la 10 fácilmente llamando al interruptor "s:Time.now.hour >= 21 and Time.now.hour < 22".
También podemos hacer que haya eventos que solo aparezcan cuando tengamos cierto tipo de Pokémon en la Pokédex utilizando $Trainer.pokedexOwned para Pokémon capturados o $Trainer.pokedexSeen, como véis las posibilidades son muchísimas
Antes de seguir este tutorial doy por hecho de que sabes crear y utilizar los interruptores, si no es el caso puedes aprender a usarlos en este otro tutorial.
Creando el interruptor
Cuando el nombre de un interruptor en Essentials comienza con "s:" el propio sistema activará o desactivará el interruptor según si el script que sigue al "s:" se cumple.
Voy a poner un ejemplo muy simple: un interruptor que se active únicamente si el nombre del jugador es "Klein", la variable que guarda el nombre del jugador es $Trainer.name por lo que simplemente habría que hacer una comparación en Ruby ($Trainer.name=='Klein').
Si creo un interruptor y lo llamo "s:$Trainer.name=='Klein'" este solo se activará si el nombre de mi jugador es Klein.

Y así quedaría el evento con la condición de aparición:

Por supuesto casi nadie va a querer crear un evento que se ejecute solo cuando el jugador se llame de cierta forma, pero es solo un ejemplo, ahora veremos ejemplos útiles donde podemos usar esta función de Essentials.
Ejemplos útiles
Uno de los ejemplos más útiles que puede tener esto es hacer por ejemplo que un evento se ejecute solo si tienes más de un cierto número de Pokémon.
La variable que guarda el equipo es $Trainer.party, esta es un array por lo que para obtener la longitud (o sea, el número de objetos, en este caso Pokémon, que hay en el array) usaríamos $Trainer.party.length.
Si creamos un interruptor y lo llamamos "s:$Trainer.party.length > 0" solo se ejecutaría cuando tengamos más de un Pokémon, muy útil para eventos que queramos que aparezcan solo cuando tengamos al fin un Pokémon.
También podemos hacer eventos que aparezcan según el año, mes, día o hora a la que juguemos. Estos son los scripts que devuelven la fecha.
Devuelve el año, por ejemplo ahora mismo me devuelve 2017.
Código:
Time.now.year
Código:
Time.now.mon
Código:
Time.now.hour
Código:
Time.now.min
Gracias al tiempo podemos hacer por ejemplo que un interruptor solo esté activo desde las 9 de la noche hasta la 10 fácilmente llamando al interruptor "s:Time.now.hour >= 21 and Time.now.hour < 22".
También podemos hacer que haya eventos que solo aparezcan cuando tengamos cierto tipo de Pokémon en la Pokédex utilizando $Trainer.pokedexOwned para Pokémon capturados o $Trainer.pokedexSeen, como véis las posibilidades son muchísimas