Door
Esta entidad se utiliza básicamente para definir puertas que pueda abrir el jugador, personajes Bot o incluso
por el impactos de proyectiles de armas.
También se puede usar para crear bloques, trampillas o compuertas que se abran o se cierren en función de diferentes eventos que no se produzcan
necesariamente por la intervención directa del jugador.
Parámetros de esta entidad:
CommandsFile
Introduciremos el nombre del fichero de comandos .ini que contiene los comandos que deseamos procesar cuando el jugador toque la puerta o el
bloque 'model' asociado a esta entidad. Si este fichero .ini contiene alguna condición 'IF', el resultado de la primera condición que se encuentre
en el fichero .ini se tomará para decidir abrir la puerta o no.
Si sólo quieres que la puerta se abra sin más y no quieres asociar ficheros de comandos, deja en blanco la casilla de este parámetro y a 'True'
el parámetro JugadorAbre.
Repetir_comandos_zona
Con valor True se procesará, repetidas veces y cada pocos segundos, el fichero
de comandos indicado en 'CommandsFile' mientras el jugador permanezca en la zona de influencia de esta entidad.
Con valor False se procesará el fichero de comandos indicado en 'CommandsFile' una
sola vez mientras el jugador permanezca en la zona de influencia de esta entidad. Pero si el jugador abandona la zona y
vuelve de nuevo a la zona, si que se volverá a procesar el fichero de comandos.
JugadorAbre
Con valor 'True', el jugador podrá abrir la puerta, aunque si has definido un fichero de comandos .ini en el parámetro CommandsFile, se
deberá cumplir la primera condición del fichero .ini para que el jugador finalmente abra la puerta.
Con valor 'False', el jugador no podrá abrir la puerta.
Model
Selecciona aquí el 'model' que representa la puerta.
Recuerda que estos 'models' son los que tenemos definidos en la siguiente pestaña de 'World Editor'.
Es imprescindible que este parámetro no se quede 'null', de lo contrario tu juego dejará de funcionar de forma brusca.
EnemigoAbre
Con valor 'True', la puerta la podrá abrir un Bot enemigo (o personaje definido con una entidad 'BotActorStart').
Con valor 'False', la puerta no la podrá abrir un Bot enemigo (o personaje definido con una entidad 'BotActorStart').
CommandsFileE
Introduciremos el nombre del fichero de comandos .ini que contiene los comandos que deseamos procesar cuando
un enemigo Bot (o personaje definido con una entidad 'BotActorStart') toque la puerta.
Para que se comience a procesar este fichero .ini, el parámetro 'EnemigoAbre' debe estar a 'True'.
Si este fichero .ini contiene alguna condición 'IF COND', el resultado de la primera condición que se encuentre en el fichero .ini se tomará para decidir abrir la puerta o no.
Si sólo quieres que la puerta se abra sin más y no quieres asociar ficheros de comandos, deja en blanco la casilla de este parámetro y a 'True' el parámetro 'EnemigoAbre'.
Si quieres que la puerta se abra con las mismas condiciones que el jugador, indica el mismo fichero .ini en los parámetros 'CommandsFileE' y 'CommandsFile'
, y pon a 'True' el parámetro 'EnemigoAbre'.
Ten en cuenta que si un enemigo o personaje abre una puerta que debería estar cerrada para el jugador hasta que éste complete alguna misión, puede alterar el
normal desarrollo de los acontecimientos de tu juego.
AbrirPorImpacto
Con valor 'True', la puerta se podrá abrir si el jugador dispara sobre la puerta.
Con valor 'False', la puerta no se podrá abrir si el jugador dispara sobre la puerta.
CommandsFile2
Introduciremos el nombre del fichero de comandos .ini que contiene los comandos que deseamos procesar cuando
el jugador dispare sobre la puerta. Este fichero .ini debe existir en la carpeta 'Comandos' de Entidad 3D.
Para que se comience a procesar este fichero .ini, el parámetro 'AbrirPorImpacto' debe estar a 'True'.
Si este fichero .ini contiene alguna condición 'IF COND', el resultado de la primera condición que se encuentre en el fichero .ini se
tomará para decidir abrir la puerta o no.
Sólo funciona con las armas del jugador, no de los enemigos.
Puedes averiguar el tipo de proyectil que ha impactado si consultas la variable del
sistema PROYECTIL_IMPACTA_MODEL.
Origin
Son tres cifras (X Y Z) que determinan la posición de esta
entidad en el escenario. Estos 3 datos que normalmente no se modifican aquí y se deja que se modifiquen
según movemos esta entidad (con el ratón) desde 'World Editor'.
Boton_accion
Con valor True, los comandos contenidos en el fichero especificado en 'CommandsFile' se procesarán
si el jugador toca la puerta y al mismo tiempo pulsa el botón o tecla 'Acción'.
Con valor False, sólo será necesario que el jugador toque la puerta para
procesar los comandos que contiene el fichero .ini que hemos especificado en 'CommandsFile'.
Boton_Accion_indicador
Con valor True se mostrará en pantalla un símbolo animado que indicará al jugador
que puede usar el botón o tecla 'Acción' en este punto del nivel. Para que
funcione, el parámetro 'Boton_accion' debe estar a 'True'.
Con valor False no se mostrará ningún símbolo.
Ciclico
Con valor 'True', la puerta se abrirá y se cerrará sin parar.
Con valor 'False', la puerta se abrirá y luego se cerrará.
En_movimiento
Con valor 'True' la puerta se moverá desde que dé comienzo el nivel.
Con valor 'False' la puerta no comenzará a moverse al dar comienzo el nivel.
Evento_con_movimiento
Con valor 'False' no se tendrán en cuenta las colisiones del jugador, Bots o proyectiles de armas sobre la puerta hasta que la animación de
la puerta se haya detenido por completo.
Con valor 'True' se procesarán todas las colisiones independientemente de si la puerta está en movimiento o no.
Si se procesan las colisiones se lanzarán los ficheros de comandos asociados a dichas colisiones, es decir, los ficheros indicados en los
parámetros 'CommandsFile...' para abrir o no la puerta.
Para una puerta normal es conveniente establecer este valor a 'False', ya que no nos interesa volver a procesar los mismos comandos una y
otra vez si el jugador sigue tocando la puerta que se está abriendo.
Pero ponlo a 'True' si te interesa procesar comandos cada vez que el jugador toca este 'model' en movimiento. Por ejemplo para restarle salud
cada vez que toque una bola roja móvil o entregarle un objeto cada vez que dispare contra una bola verde, también en movimiento.
También se puede usar para crear paredes móviles con pinchos que el jugador debe sortear.
Atención: No es lo mismo que un jugador colisione con un bloque 'model' en movimiento que un bloque 'model' en
movimiento colisione con un jugador. El evento sólo se procesará en el primer caso, es decir, cuando un jugador avanza hacia un bloque 'model'
en movimiento, sea éste sólido o no.
Estas colisiones sólo son a nivel de detección de eventos, no tienen nada que ver con las colisiones que se procesan para no dejar pasar al
jugador, Bots o proyectiles a través de bloques 'model' sólidos. Esas colisiones seguirán funcionando igual, independientemente del estado del
parámetro 'Evento_con_movimiento'.
Sonidos_puerta
Con valor 'True' la puerta hará un sonido al abrirse y otro diferente si no se puede abrir. Estos sonidos son:
'wav/puerta_abrir.wav' y 'wav/puerta_cerrada.wav'
Con valor 'False' la puerta no hará ningún sonido de forma automática, pero puedes usar los parámetros que permiten asignar ficheros de
comandos .ini que contengan comandos SONI para reproducir los sonidos que quieras para la puerta y bajo las
condiciones que desees.
- Consulta la sección 'Abriendo puertas' para ver ejemplos de como usar esta entidad conjuntamente con ficheros
de comandos.
- Usa el comando PLATAFORMA_ANIM para controlar estas puertas mediante comandos durante el transcurso de
tu juego sin necesidad de que algo o alguien colisione con la puerta para abrirla o cerrarla.
- Para evitar repeticiones muy seguidas en el procesamiento de los ficheros de comandos, esta entidad activa automáticamente un pequeño retardo
antes de poder volver a actuar.
- Si usas la entidad 'Door' para mover bloques 'model' que no son realmente puertas, cuando se habla de 'abrir puerta' en esta sección, se
refiere a que se iniciará la animación que hayas definido en 'World Editor' del bloque 'model' asociado a esa entidad 'Door'.