Shredder

From Valve Developer Community
Revision as of 00:38, 7 April 2016 by P0rtalmaster (talk | contribs)

Jump to: navigation, search
Русский
Spinnybladesicon.png

Shredders (a.k.a. grinders) are spinning blades in Portal 2 that destroy objects and players dropped into them. They function just like bottomless pits and deadly goo, but are factory themed.

Creation

Note:Although the shredder model has rotating animations, there is a "pop" every time the animation is about to loop. For this reason, the method below is recommended.

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 256×1024×128 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 1000
Damage Cap 1000
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.

To use, create a func_instance in your map and set the VMF filename to the name of the file you saved your shredder instance in. Then 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