En muchos juegos es bastante común encontrarse con ascensores o plataformas dentro de los niveles para poder viajar de un piso a otro. En Left 4 Dead también existen los ascensores y dentro de sus campañas podemos encontrar algunos ejemplos como en No Merci. En este tutorial vamos a ver cómo crear un ascensor.
Os dejo un mapa de ejemplo que se puede usar para hacer el tutorial, puedes descargarlo de éste enlace.
Crear un ascensor.
Crear un ascensor no es demasiado complicado, sólo se debe de tener muy en cuenta las coordenadas del ascensor y configurar correctamente las entidades necesarias.
En la imagen anterior podemos ver una captura del mapa de ejemplo, en éste mapa tenemos dos pisos y una zona de cinco muros simulando el elevador.
Los pasos son los siguientes:
- Selecciona los cinco muros y transfórmalos en entidades con Control+T.
- Asígnale la clase func_elevator
- Modifica las siguientes propiedades:
Name: Elevator
Top Floor Position: 0 328 80
Bottom Floor Position: 0 328 -64
Estas dos propiedades significan las posiciones del ascensor arriba y abajo.
- Crear una entidad de la clase info_elevator_floor en el suelo del ascensor, en la propiedad "Name" pon el nombre "Bottom".
- Duplica la entidad y colócala justo encima del techo del ascensor, en la propiedad "Name" pon el nombre "Top".
- Crea una entidad de la clase logic_relay y en la propiedad "Name" pon el nombre "elevator_top_relay".
- Crea otra entidad de la clase logic_relay y en la propiedad "Name" pon el nombre "elevator_down_relay".
- Crea una entidad prop_dynamic y modifica las siguientes propiedades:
Parent: Elevator.
World Model: elevator_buttons.mdl (esto se elige pulsando el botón "Browse...").
Ubica el prop_dynamic en una de las paredes del ascensor.
- Crea un muro del tamaño de la mitad del prop_dynamic y ubícalo en la mitad superior.
- Duplícalo y ponlo en la mitad inferior.
- Asígnale la textura "toolsinvisible" a los dos.
- Conviértelos en entidad con Control+T y asígnale la clase func_button.
- En las propiedades de los dos func_button debemos modificar:
Parent: Elevator.
- En la pestaña Flags debemos tener activados las siguientes marcas:
Don't Move.
Use Activates.
A estas alturas debemos tener algo así:
- Abrimos las propiedades del func_buton situado en la mitad superior del prop_dynamic, en la pestaña Outputs pulsamos "Add..." y añadimos lo siguiente:
My Output Named: onPressed
Target Entity Named: elevator_down_relay
Via this Output: Trigger
- Abrimos las propiedades del func_buton inferior y en la pestaña Outputs añadimos lo siguiente:
My Output Named: onPressed
Target Entity Named: elevator_top_relay
Via this Output: Trigger
- Abrimos las propiedades del logic_relay llamado elevator_down_relay y en Outputs añadimos lo siguiente:
My Output Named: onTrigger
Target Entity Named: elevator
Via this Output: MoveToFloor
With a parameter override: top
- Abrimos las propiedades del logic_relay llamado elevator_top_relay y en Outputs añadimos lo siguiente:
Target Entity Named: elevator
Via this Output: MoveToFloor
With a parameter override: bottom
Pulsamos F9 para testear el mapa.
El mapa completo puedes descargarlo de éste enlace.
¿Con qué clase de mapas implementarías un ascensor?