Search
Username:
Password:
Register or Reset Password
Remove the ads!
  
Buttons & doors pt.1
Difficulty: Beginner
Category: PRTL > Other/MiscAuthor(s): Hikura

First thing is to make the door which will open on activation of the button.

Door frame

Create a prop_static in your door way. The World Model should be set to "models/props/door_01_frame_reference.mdl" or "models/props/door_01_frame_wide_reference.mdl" (either one works).
Doors

How to align the func_door.

1. Create a prop_dynamic with the following settings:
|Property Name |Value
|World Model |models/props/door_01_lftdoor_reference.mdl
|Name |door_left_model


Align it to the left, inside of the door frame.

2. Create a 56Lx8Wx104H block brush with texture nodraw centered and inside the door model.
Tie it to a func_door entity with the following settings:
|Property Name |Value
|Name |door_left
|Speed |250
|Stop Sound |Doors.FullClose8
|Delay before Reset |-1
|Lip |12
|Move Direction |(This will be different for which way your door is facing)


Also make sure that you un-check Touch opens under Flags.

The best way to ensure you have the correct Move Direction is to first mark the direction on the circular indicator, then round to the nearest 90 degrees (so long as your doors are intended to be square with the Hammer coordinate system).
Note: You can also put a blocking damage if you don't want the player to get stuck inside it. Also, you can turn on Forced Closed for it to close even if the player tried to jam it open with a camera or cube.

Final door.

3. Repeat steps 1-3 but change the following: For the prop_dynamic: Property Name Value
World Model models/props/door_01_rtdoor_reference.mdl
Name door_right_model


And for the func_door:
|Property Name |Value
|Name |door_right


4. Set the parent of door_left_model (the prop_dynamic) to "door_left". Also set the parent of door_right_model to "door_right".

The button

Models

How to align the button models.

1. Create a prop_static with a World Model of "models/props/button_base_reference.mdl".

2. Create a prop_dynamic aligned on top of the prop_static with the following settings:
|Property Name |Value
|World Model |models/props/button_top_reference.mdl
|Name |button_top_model


Movement

1. Next create a 58Wx59Lx9H cylinder brush with 8 sides and textured with nodraw. Move this brush right underneath your prop_dynamic. Tie the cylinder to a func_door with the following settings:
|Property Name |Value
|Name |button_top_door
|Speed |25
|Delay before Reset |-1
|Move Direction |90 0 0 (or Down)


Also make sure nothing is checked under Flags.

2. Set the Parent of button_top_model to be "button_top_door".

Triggers

The larger trigger_multiple.

1. Create a 48Wx48Lx1H block brush with trigger texture applied. Place it right on top of the button_top_model. Tie this brush to a trigger_multiple with the following settings:

|Property Name |Value
|Name |button_trigger_player


We will set up the Output later. Also make sure to only have the flag: Client set.

The smaller trigger_multiple.

2. Next create a 7Wx7Lx1H cylinder brush with 8 sides and textured with trigger texture applied. Put this brush directly on top and in the center of the button_top_model and tie it to a trigger_multiple with the following settings:
|Property Name |Value
|Name |button_trigger_box


And only the following Flags are checked:
Physics Objects

We will set up the Output later.

3. Create a filter_activator_name nearby your button with the following settings:
|Property Name |Value
|Name |button_filter_boxes
|Filter Name |(The name your box entity has)


4. Select your button_trigger_box trigger and set the Filter Name to "button_filter_boxes".

5. Create two ambient_generic entities and give one the following settings:
|Property Name |Value
|Name |button_down
|Sound Name |Portal.button_down
Source Entity Name |button_top_model


and the other with
|Property Name |Value
|Name |button_up
|Sound Name |Portal.button_up
|Source Entity Name |button_top_model


6. Now go back and select the cylinder func_door brush under the button, "button_top_door" and setup the Outputs as below:

Free Image Hosting at www.ImageShack.us
(click for larger pic)

7. Select the larger trigger_multiple, "button_trigger_player" and setup the Output as below:

Free Image Hosting at www.ImageShack.us
(click for larger pic)

8. Select the smaller, cylinder trigger_multiple, "button_trigger_box" and setup the Output as below:

Free Image Hosting at www.ImageShack.us
(click for larger pic)

9. Finally, create a light entity underneath the top of the button but still inside the base. Give it the following properties:
|Property Name |Value
|Brightness |251 159 57 30
|BrightnessHDR |251 159 57 20

-----------------------------------------------------------------------

The theory

-----------------------------------------------------------------------

This is the most basic button and door setup. You can also have the triggers turn off or on other things in the map, have them trigger a logic_choreographed_scene or just about anything. For the Portal feel you can have them trigger Indicator Lights based on the button up or down status.

If you do decide to use Indicator Lights, then make sure to have the func_door (The Nodraw cylinder) Set Outputs when it closes, and opens. When it opens, set the texture Index to 1, and when it closes, set the texture index to 0, via a env_texturetoggle that controls the lights.
Added: 9 months agoTags: doors, portal, button
Feedback (4)
Alle.a12 .
xDY2M
Posted 4 months ago
Can you make a tutorial that show how to build the Indicator lights?? I canīt get it right...

/Help!
- xD
.
NoobY2M
Posted 5 months ago
Help one of the pics dont work!
- Noob
.
Holiday Uberstyle soon.Y2M
Posted 8 months ago
Could you move this tutorial to the Portal > Mapping section please?
- Holiday Uberstyle soon.
.
Visit belowsilence.ath.cxY2M
Posted 9 months ago
Thanks man
Add Feedback
Provide constructive feedback. What is "constructive"?
You cannot post yet!
Get involved on FPSB by posting your thoughts. Give authors your feedback to help them develop.

To post in this submission register or login.
Assessment
The community's verdict.
No assessments made... please vote!
You cannot assess yet!
Moderating FPSB is in your hands - when you assess a submission your vote determines its success or failure.

To vote on this submission register or login.
Stamps
This Tutorial in a nutshell...
No stamps recorded
You cannot stamp yet!
Stamps let you apply characteristics to submissions to help others understand them.

To stamp this submission register or login.

Added by...
Hikura .
Bananite
Ranked 6073rd ( 9) with 205 points.

[+] Donate
Related Tutorials