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'.