Comando
TEM1
Activa temporizadores.
Se utiliza para que transcurrido un tiempo dado se procesen comandos.
Sintaxis del comando:
ACCI TEM1
número_de_temporizador tiempo nombre_fichero_ini
número_de_temporizador:
Número de temporizador que se desea activar (entre 1 y 15).
Este número lo asignaremos manualmente.
Podemos utilizar hasta 15 temporizadores simultáneamente.
Este número también será el que deberemos utilizar en el comando 'TEM0'
para referirnos a un temporizador en concreto para desactivarlo.
tiempo:
Tiempo, en segundos, que ha de transcurrir para que se lance el procesamiento del fichero de comandos indicado en 'nombre_fichero_ini'.
nombre_fichero_ini:
Nombre del fichero .ini que contendrá los comandos a
procesar una vez transcurrido el tiempo establecido.
Este fichero .ini es un fichero normal como el resto de ficheros .ini que se utilizan
en Entidad 3D. Puede contener todo tipo de comandos o secuencias de IF COND ENDIF. Como es
habitual para estos ficheros, han de estar en la carpeta 'comandos'.
El comando TEM1 se puede utilizar en infinidad de situaciones. Por ejemplo, puede
servir para hacer explotar bombas retardadas, presentar un mensaje al cabo de un
tiempo, permitir abrir una puerta en un determinado tiempo, hacer aparecer o desaparecer
personajes secundarios, etc... Todo dependerá de la combinación que realices con estos
temporizadores y los comandos disponibles en Entidad 3D.
Ejemplo: Queremos crear una situación en la que el jugador, pulsando un botón, desbloquee una puerta que se encuentra
a una cierta distancia, sólo permitiremos al jugador abrir esa puerta en un determinado tiempo,
transcurrido ese tiempo la puerta ya no se podrá abrir, a menos que el jugador vuelva a repetir todo
el proceso.
Evidentemente para montar toda esta situación intervienen diversos comandos y entidades, pero para el ejemplo
que nos ocupa no me voy a centrar demasiado en los elementos que no sean del temporizador.
Lo que está claro es que tendremos que disponer de una puerta (entidad 'Door') donde le hayamos
asociado un fichero .ini para condicionar su apertura. Ese fichero .ini le llamaremos por
ejemplo 'puerta.ini', fichero que crearíamos en la carpeta 'comandos' con el siguiente contenido:
IF COND puerta_abrir=1
ACCI TEXT Abriendo puerta de seguridad
ENDIF
(Los comandos anteriores se procesarán cuando el jugador intente abrir la puerta).
Al lado de algo que represente el botón de desbloqueo situaremos una entidad 'Command' a la cual
le asociaremos un fichero .ini que por ejemplo le llamaremos 'boton.ini', fichero que crearíamos en la
carpeta 'comandos' con el siguiente contenido:
ACCI TEM1 3 10 bloquear_puerta.ini
ACCI TEXT Puerta de seguridad desbloqueada
ACCI PONE puerta_abrir=1
(Los comandos anteriores se procesarán cuando el jugador se acerque al botón).
Pues sólo nos queda crear el fichero 'bloquear_puerta.ini' que hemos puesto en el comando del
temporizador, este fichero .ini contendría lo siguiente:
ACCI TEXT Puerta de seguridad bloqueada
ACCI PONE puerta_abrir=0
(Los comandos anteriores se procesarán transcurridos 10 segundos que comienzan a contar a partir
de que el jugador 'toca' o se acerca al botón).
Fíjate que si el jugador alcanza la puerta en menos de 10 segundos la variable 'puerta_abrir' valdrá 1
porque ese es el valor que le hemos asignado en 'ACCI PONE puerta_abrir=1', por lo tanto la condición
'COND puerta_abrir=1' de la puerta se cumplirá y la puerta se abrirá.
Modificaciones posibles:
Un detalle a comentar es que si el jugador abre la puerta y la atraviesa, cuando la puerta se cierre
ya no podrá volver a abrirla ya que de todas formas el temporizador cuando alcanzó los 10 segundos puso
la variable 'puerta_abrir' a 0. Siempre hablando en el supuesto de que el jugador no tenga ninguna manera
de volver a alcanzar el punto donde se encuentra el botón de desbloqueo.
Puede que te interese que el mecanismo funcione así, pero si quieres que el jugador pueda abrir la
puerta desde cualquier lado una vez que consiga abrirla por primera vez, tendrías que variar el contenido
del fichero 'puerta.ini' y dejarlo como sigue:
IF COND puerta_abrir=1
ACCI TEM0 3
ACCI TEXT Abriendo puerta de seguridad
ENDIF
(Con 'ACCI TEM0 3' detenemos el temporizador 3, el que estamos utilizando, si el jugador
consigue abrir la puerta).
También tendremos que modificar el contenido del fichero 'boton.ini' para evitar que el jugador
pueda volver a activar el temporizador. Todo el contenido de ese fichero .ini lo dejaríamos como sigue:
IF COND puerta_abrir=0
ACCI TEM1 3 10 bloquear_puerta.ini
ACCI TEXT Puerta de seguridad desbloqueada
ACCI PONE puerta_abrir=1
ENDIF
Consulta la sección del comando 'TEM0' para desactivar
temporizadores que aún no hayan alcanzado su tiempo establecido.