User:Dr. Orange/Victory lift
This tutorial will show how to create the complimentory victory lift seen in the Portal test chambers. The lift usually starts in its raised position, and lowers when a certain object is activated, such as an energy pellet catcher or a switch. The lift then raises when the player steps on it.
Contents
Construction
Step 1
Create a 16w*16l*128h
brush textured with tools/toolsinvisible
. Tie this brush to a func_door
entity and make sure all of its flags are unchecked. Next, set the following keyvalues on it:
Property Name | Value |
---|---|
Name | lift |
Speed | 20 |
Start Sound | apc_engine_start |
Stop Sound | apc_engine_stop |
Delay Before Reset | -1 |
Move Direction | 90 0 0 |
Step 2
Create a 24w*24l*136h
12-sided cylinder and position it so it's in the same place as the lift
brush. Tie it to a func_brush
and set its Name to brush_lift
and its Parent to lift
.
Finally, texture the sides of the cylinder with metal/metal_lift001
.
Step 3
Create a prop_dynamic
entity and set its Name to model_lift_platform
, its Parent to lift
and its World Model to models/props/lift_platform.mdl
. Position it on top of the brush_lift
brush so its origin is 2 units below the top of the brush.
Step 4
Create a 120w*120l*1h
brush. Texture the top and bottom sides of the brush with glass/glasswindow_frosted_003
, and texture all of the sides with [[Tool textures#nodraw|tools/toolsnodraw
. Position the brush so its in the middle of the model_lift_platform
entity, with its bottom side being 6 units above the origin of model_lift_platform
.
Next, create a 128w*128l*4h
brush textured with tools/toolsplayerclip. Position it so it surrounds the
model_lift_platform entity
with its bottom side being 4 units above the origin of model_lift_platform
.
Now, select both the glass brush and the playerclip brush and tie them to a single
func_brush
entity. Set its Name to lift_brush_2
and set its Parent to lift
.
Step 5
Create a 112w*128l*92h
brush textured with [[Tool textures#trigger|tools/toolstrigger
. Tie it to a trigger_multiple
entity and set its Name to lift_up_trigger
, its Parent to lift
and Start Disabled to Yes
. Next, add the following outputs to it:
My Output
Target Entity
Target Input
Parameter
Delay
Only Once
OnTrigger
lift
Close
0.00
No
OnEndTouch
lift
Open
0.00
No
The victory lift is now completed and ready to be implemente in a map.
Implementation
Step 1
Place the lift where it should be in the map. The top of the lift_brush_2
playerclip brush should be 2 units below the floor level of the upper floor. If the lift needs to travel more than 128 units, stretch the brush_lift
and lift
brushes down to the lower floor level. The length of the lift
brush determines how far the victory lift travels.
Step 2
Add an output to the entity that will activate the lift that sends the Open input to lift
and the Enable input to lift_up_trigger
.
See Also
- Piston Platform - Portal 2 counterpart