Animaciones de Entrenadores SIN EBS

Scripts
v16/BES

Enlace de descarga: pastebin.com/vvGhXgpm

CONTEXTO

Como todos sabréis, existe el script público Elite Battle System (EBS), el cual realiza una mejora gráfica en los combates Pokémon que se realizan con Pokémon Essentials. Una de estas mejoras es que permite añadir una secuencia antes de empezar el combate al puro estilo Pokémon DPP y Pokémon BW/BW2.

Desgraciadamente, para poder añadir dicha secuencia es necesario cambiar drásticamente la interfaz (que es posible que no te guste) además de afectar mucho al rendimiento del juego durante los combates.


¡Este script soluciona dicho problema! Gracias a una muy sencilla y escalable implementación podrás crear un número ilimitado de secuencias para distintos tipos de entrenadores.

¿Quiéres que dure 1 minuto la secuencia? ¡Hazlo!

¿Quiéres que aparezcan 20 frames de imagen distintos en la secuencia? ¡No hay límites!

¿La fluidez de la secuencia no te convence? ¡Modifícala cómodamante desde un archivo de texto!

¡El límite es tu imaginación!


(Esta explicación se encuentra en el LEEME que se encuentra en el comprimido descargado)

EXPLICACIÓN

PUESTA EN MARCHA DEL SCRIPT

1) Copiar todo el contenido del archivo TrainerSequenceAnimation.txt que se encuentra en la carpeta src


2) Pegar su contenido en un script entre Main y Compiler (Click derecho encima de Main > Insertar)


3) Modificar el Script "Compiler" tal y como se indica en el txt que se llama  "cambios_en_Compiler.txt" que se encuentra en la carpeta src


4) Modificar el Script "PokeBattle_Battle" tal y como se indica en el txt que se llama "cambios_en_PokeBattle_Battle.txt" que se encuentra en la carpeta src


5) Añadir a la carpeta PBS de tu juego un txt llamado sequences.txt, donde se encuentra este LEEME hay un ejemplo de sequences.txt, se recomienda copiar este y pegarlo en la carpeta indicada


COMO UTILIZAR EL SCRIPT

La forma en la que implementaremos las secuencias será de la siguiente forma:


1) Crear el gráfico. Debe ser 160px de alto y 160px * n de ancho. Siendo n el número de imágenes que se irán alternando durante la animación. 

Ej.: Si queremos que un sprite pase de tener la mano abierta a tenerla cerrada, serán necesario un gráfico de 160px x (160px * 2), siendo dos gráficos 160x160px, uno con la mano abierta y otra con la

mano cerrada. (Mirar imagen de ejemplo que hay en la carpeta example. El fondo se ha dejado a proposito para que sea más visual el como divide el script el gráfico en 5 partes, pueden haber tantas

partes como quieras)


2) Declarar el entrenador en trainerstypes.txt, tal y como se haría para crear entrenadores de ruta o líderes de gimnasio (Mirar ejemplo de declaración en la carpeta example)


3) Modificar el archivo sequences.txt tal y como se explica a continuación:


Para esta explicación se utilizará como guía el sequences.txt que está junto al LEEME.txt


En este archivo tenemos lo siguiente:

#====================================================================================================

EJEMPLO1,95,92,6,860,190,30

6

# Bajar brazo

0, 50

# Brazo normal

2, 55

# Brazo arriba

3, 57

# Pokeball gira y agarrar

4, 61

# Atrapa Pokeball

5, 64

6, 90

#====================================================================================================

Este segmento es una declaración de una SECUENCIA, contiene una serie de parámetros necesarios para poder personalizar la secuencia tanto como queramos.

Sigue la siguiente estructura:

id, duracion, flashFrame, endFrame, x, y, z

numFrames

imageFrame, frame

imageFrame, frame

...

...

... (tantas líneas como numFrames se ha puesto)

¿Qué es cada cosa?:

Primera línea

 · id      = Clave del tipo de entrendador declarada en trainertypes.txt, ej. RIVAL1

 · duracion   = Tiempo total que dura la secuencia (Recomiendo un valor entre 100-150. Aunque puede durar lo que quieras, piensa en el jugador que quiere empezar el combate)

 · flashFrame = Es el "segundo" donde aparece el flash, si se quiere una secuencia SIN FLASH hay declararlo así EJEMPLO1,95,,6,860,190,30 (hay dos comas entre 95 y 6)

 · endFrame    = Frame de la imagen que aparecerá al finalizar el combate

 · x,y,z    = Coordenadas donde se situa el sprite (z=30 debería servir para todos los sprites, pero se puede cambiar si es necesario)


Segunda línea

Se indica el número de cambios de imagen que se van a realizar durante la secuencia (De forma parecida a cuando se indica cuantos Pokémon tiene un entrenador en trainers.txt)


Resto de la declaración

Este script funciona con frames, no con segundos. A veces se le ha llamado segundos para una mejor comprensión, pero en sí se trabaja con frames que es una medida temporal mucho más rápida (20 frames = 1 segundo aprox)


El resto de líneas indican los cambios que se van a realizar a medida que pasa el tiempo medido en frames. Cada línea debe tener este formato: imageFrame,frame.

 · imageFrame  = Indica el la imagen de 160x160px que aparecerá durante una cierta cantidad de tiempo

 · frame     = Es el "segundo" hasta que dura el imageFrame que tiene asignada a su izquierda


EJ.: Si ponemos 0,50 debajo del 6 (como está en el ejemplo) estamos indicando que se va a utilizar el primer 160x160 del gráfico hasta el frame 50. Tomando como referencia la imagen ejemplo trainer900.png, estarían enumerados del 0 al 4 de izquierda a derecha.


CONSEJOS

Este script se activa desde el principio del combate, si ponemos un número menor de 50 se va a solapar con la animación de cuando aparecen las Pokéballs del rival y el jugador. El script va a seguir funcionado, pero recomiendo esperar hasta el "segundo" 50 ya que es aproximadamente cuando es animación termina. (De nuevo, si quieres puedes empezar a cambiar imágenes en el frame 20, si te apetece)


Se pueden repetir frames, si por ejemplo queremos que cierre los ojos, abra los ojos y los vuelva a cerrar, podemos reutilizar el imageFrame en el que cierra los ojos.


Estar atento al endFrame, si por lo que sea modificas el gráfico, revisa el endFrame ya que si pones un número mayor al número de imágenes no aparecerá ningún sprite al final del combate (Según el ejemplo, tenemos estas imageFrame: 0,1,2,3,4. Si ponemos endFrame = 8 entonces no mostrará nada, debe ser máximo 4, pero se puede poner por ejemplo el frame 2, si queremos)


Estar atento al numFrames cuando modifiques la secuencia, el número tiene que ser exacto para que ejecuten todas las secuencias del archivo (Al igual que con trainers.txt)


Es importante respetar el orden ascendente cuando se declaran los "imageFrame,frame".

Ej: De entrenador cerrando los ojos (imageFrame 0), abriendo los ojos (imageFrame 1) y cerrándolos otra vez (imageFrame 0).

MAL     BIEN

0,50 | 0,50

1,43 | 1,60

0,70 | 0,70


La línea 1,43 está mal porque el frame anterior dura hasta el frame 50, lo que pasará será que el imageFrame 0 durará hasta el frame 70 (El cuál sigue siendo 0,

CONTACTO

Cualquier duda que tengas contáctame enviando un mensaje a mi correo electrónico o a mi Twitter


nuevo_script.mp4