Fíjate bien en las propiedades del ascensor, si este va a ir para arriba y para abajo, como es lógico, pues deberás definirle estas alturas, para que sepa cuando esta abajo y cuando esta arriba. Estas alturas son Top Floor Position / Bottom Floor Position, así que mueve tu ascensor manualmente para saber las coordenadas de los bloques en esas posiciones y definírselas al ascensor.
Ahora pon estas otras dos entidades. info_floor_position
Una encima del suelo y otra debajo del suelo, del suelo del ascensor me refiero, a la de arriba llámala top y a la de abajo llámale bottom.
Ahora pon estas otras dos entidades, un logic_relay de nombre elevator_down_relay y un segundo logic_relay de nombre elevator_top_relay.
Ahora creamos un botón, podemos usar los modelos del left4dead, para ello, crea un prop_dynamic donde quieras el botón, dale doble clip para abrir sus propiedades y una vez allí en work model seleccionas elevator_buttons.mdl y una vez seleccionado volvemos a las propiedades y donde dice parent, ponemos elevador.
Ahora crea dos bloques con la textura nodraw, que harán de los botones de subir y bajar el ascensor, de modo que colócalos donde vas a querer que el jugador de al botón una vez jugando. Estos bloques los tenemos que convertir en entidades func_button, recuerda, con el nodraw no veremos los botones en juego, pero estarán ahí.
En la pestaña flags dentro de las propiedades del botón, marca en los dos las siguiente casillas Don't Move y Use Activates
Y en la pestaña class info donde dice parent establece en los dos botones parent = elevator
Ahora ve a las propiedades del boton de Nuevo y en la pestaña outputs dale a new…, crea los siguientes outputs, dependiendo de si es el boton top o el bottom
Boton TOP:
My Output Named: onPressed
Target Entity Named: elevator_down_relay
Via this Output: Trigger
Botón BOTTOM:
My Output Named: onPressed
Target Entity Named: elevator_top_relay
Via this Output: Trigger
Ahora ve al logic_relay que creaste anteriormente y en propiedades, en la pestaña outputs, establece el siguiente output:
elevator_down_relay:
My Output Named: onTrigger
Target Entity Named: elevator
Via this Output: MoveToFloor
With a parameter override: top
elevator_top_relay:
My Output Named: onTrigger
Target Entity Named: elevator
Via this Output: MoveToFloor
With a parameter override: bottom
Bien! Ya tenemos el jodido ascensor de los cojones, es un ascensor básico, pero funciona.