Shredder: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(fixed a typo and added some missing steps)
Line 2: Line 2:
'''Shredders''' are spinning blades in [[Portal 2]] that destroy objects and players dropped into them. They function just like [[pit (Portal 2)|pits]] and [[slime]], but are [[Factory (Portal 2 theme)|factory themed]].
'''Shredders''' are spinning blades in [[Portal 2]] that destroy objects and players dropped into them. They function just like [[pit (Portal 2)|pits]] and [[slime]], but are [[Factory (Portal 2 theme)|factory themed]].


==Creating Shredders==
==Creation==
0. Create a new map file to hold the shredder instance.
1. Create a new map file to hold the shredder instance.


1. Create a long, thin brush. Tie it to a [[func_rotating]] entity with the following settings:
2. Create a long, thin brush. Tie it to a [[func_rotating]] entity with the following settings:


::{| class=standard-table
::{| class=standard-table
Line 15: Line 15:
|}
|}


2. Create another long, thin brush. Tie it to a [[func_rotating]] entity with the following settings:
3. Create another long, thin brush. Tie it to a [[func_rotating]] entity with the following settings:


::{| class=standard-table
::{| class=standard-table
Line 25: Line 25:
|}
|}


3. Create a [[prop_dynamic_override]] entity with the following settings:
4. Create a [[prop_dynamic_override]] entity with the following settings:
::{| class=standard-table
::{| class=standard-table
!  Property Name || Value
!  Property Name || Value
Line 37: Line 37:




4. Create a [[prop_dynamic_override]] entity with the following settings:
5. Create a [[prop_dynamic_override]] entity with the following settings:
::{| class=standard-table
::{| class=standard-table
!  Property Name || Value
!  Property Name || Value
Line 48: Line 48:
|}
|}


5. Position the props so that the teeth interlock and the brush entities are in the center of their respective props.
6. Position the props so that the teeth interlock and the brush entities are in the center of their respective props.


6. Create a <code>256x1024x128</code> brush where things would fall into it. Tie the brush to a [[trigger_hurt]] entity with the following settings:
7. Create a <code>256x1024x128</code> brush where things would fall into it. Tie the brush to a [[trigger_hurt]] entity with the following settings:
::{| class=standard-table
::{| class=standard-table
!  Property Name || Value
!  Property Name || Value
Line 63: Line 63:
|}
|}


7. Create a brush in front of that brush and tie it to a [[trigger_multiple]] entity with the following settings:
8. Create a brush in front of that brush and tie it to a [[trigger_multiple]] entity with the following settings:
::{| class=standard-table
::{| class=standard-table
!  Property Name || Value
!  Property Name || Value
Line 78: Line 78:
|}
|}


8. Create ''another'' brush in front of that brush and tie it to a [[trigger_multiple]] entity with the following settings:
9. Create ''another'' brush in front of that brush and tie it to a [[trigger_multiple]] entity with the following settings:
::{| class=standard-table
::{| class=standard-table
!  Property Name || Value
!  Property Name || Value
Line 93: Line 93:
|}
|}


9. Create a [[logic_relay]] with the following settings:
10. Create a [[logic_relay]] with the following settings:
::{| class=standard-table
::{| class=standard-table
!  Property Name || Value
!  Property Name || Value
Line 113: Line 113:
| [[Image:Io11.png]] || OnTrigger || shredder1_axle_right || StartForward || || 0.25 || No
| [[Image:Io11.png]] || OnTrigger || shredder1_axle_right || StartForward || || 0.25 || No
|}
|}
10. Create a [[logic_relay]] with the following settings:
11. Create a [[logic_relay]] with the following settings:
::{| class=standard-table
::{| class=standard-table
!  Property Name || Value
!  Property Name || Value
Line 133: Line 133:
| [[Image:Io11.png]] || OnTrigger || shredder1_axle_right || Stop || || 0.25 || No
| [[Image:Io11.png]] || OnTrigger || shredder1_axle_right || Stop || || 0.25 || No
|}
|}
11. Create a [[func_instance_io_proxy]] with the following settings:
12. Create a [[func_instance_io_proxy]] with the following settings:
::{| class=standard-table
::{| class=standard-table
!  Property Name || Value
!  Property Name || Value
Line 148: Line 148:
|}
|}


12. Save and close the file.
13. Save and close the file.


13. To use, create a func_instance in your map and set the VMF file to the name of the file you saved your shredder in.
14. To use, create a func_instance in your map and set the VMF file to the name of the file you saved your shredder in.


14. Use the following outputs to turn the shredder on or off:
15. Use the following outputs to turn the shredder on or off:


::{| class=standard-table
::{| class=standard-table

Revision as of 15:27, 25 May 2012

Spinnybladesicon.png

Shredders are spinning blades in Portal 2 that destroy objects and players dropped into them. They function just like pits and slime, but are factory themed.

Creation

1. Create a new map file to hold the shredder instance.

2. Create a long, thin brush. Tie it to a func_rotating entity with the following settings:

Property Name Value
Name shredder1_left_axle
Blocking Damage 500

3. Create another long, thin brush. Tie it to a func_rotating entity with the following settings:

Property Name Value
Name shredder1_right_axle
Blocking Damage 500

4. Create a prop_dynamic_override entity with the following settings:

Property Name Value
Name shredder1_left
Parent shredder1_left_axle
World Model models/props_gameplay/shredder_left_b.mdl


5. Create a prop_dynamic_override entity with the following settings:

Property Name Value
Name shredder1_right
Parent shredder1_right_axle
World Model models/props_gameplay/shredder_right_b.mdl

6. Position the props so that the teeth interlock and the brush entities are in the center of their respective props.

7. Create a 256x1024x128 brush where things would fall into it. Tie the brush to a trigger_hurt entity with the following settings:

Property Name Value
Name shredder1_trigger_hurt
Damage 500
Damage Cap 500
Damage Type CRUSH

8. Create a brush in front of that brush and tie it to a trigger_multiple entity with the following settings:

Property Name Value
Name shredder1_dissolver
Delay Before Reset 5

Tick the "Physics Objects" flag and add the following output:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger !activator Dissolve 0.00 No

9. Create another brush in front of that brush and tie it to a trigger_multiple entity with the following settings:

Property Name Value
Name shredder1_destructor
Delay Before Reset 5

Tick the "Physics Objects" flag and add the following output:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger !activator SelfDestructImmediately 0.00 No

10. Create a logic_relay with the following settings:

Property Name Value
Name shredder1_relay_on

and the following outputs:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger shredder1_trigger_hurt Enable 0.00 No
Io11.png OnTrigger shredder1_dissolver Enable 0.00 No
Io11.png OnTrigger shredder1_destructor Enable 0.00 No
Io11.png OnTrigger shredder1_axle_left StartForward 0.00 No
Io11.png OnTrigger shredder1_axle_right StartForward 0.25 No

11. Create a logic_relay with the following settings:

Property Name Value
Name shredder1_relay_off

and the following outputs:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger shredder1_trigger_hurt Disable 0.25 No
Io11.png OnTrigger shredder1_dissolver Disable 0.00 No
Io11.png OnTrigger shredder1_destructor Disable 0.00 No
Io11.png OnTrigger shredder1_axle_left Stop 0.00 No
Io11.png OnTrigger shredder1_axle_right Stop 0.25 No

12. Create a func_instance_io_proxy with the following settings:

Property Name Value
Name shredder1_proxy

and the following outputs:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnProxyRelay shredder1_relay_on Trigger 0.00 No
Io11.png OnProxyRelay shredder1_relay_off Trigger 0.00 No

13. Save and close the file.

14. To use, create a func_instance in your map and set the VMF file to the name of the file you saved your shredder in.

15. Use the following outputs to turn the shredder on or off:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png (on condition) (Fix-up Name of the func_instance) instance:shredder1_relay_on;Trigger 0.00 No
Io11.png (off condition) (Fix-up Name of the func_instance) instance:shredder1_relay_off;Trigger 0.00 No