Crusher: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (otherlang2)
No edit summary
Line 145: Line 145:
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
|-
| [[Image:Io11.png]] || OnProxyRelay1 || crusher1_logic_relay_crush || Trigger || || 0.00 || No
| [[Image:Io11.png]] || OnProxyRelay || crusher1_logic_relay_crush || Trigger || || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnProxyRelay2 || crusher1_logic_relay_uncrush || Trigger || || 0.00 || No
| [[Image:Io11.png]] || OnProxyRelay || crusher1_logic_relay_uncrush || Trigger || || 0.00 || No
|-
|-
| [[Image:Io11.png]] || OnProxyRelay3 || crusher1_logic_compare || Compare || || 0.00 || No
| [[Image:Io11.png]] || OnProxyRelay || crusher1_logic_compare || Compare || || 0.00 || No
|}
|}


11. Create a [[logic_relay]] entity with the following settings:
11. Set up triggers to open or close the crusher by triggering the proxy relays on '''crusher1_proxy_crush'''. Use '''crusher1_logic_compare'''  to get the state of the crusher.
::{| class=standard-table
!  Property Name || Value
|-
| Name || crusher1_proxy_crush
|}
and the following outputs:
::{| class=standard-table
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
| [[Image:Io11.png]] || OnProxyRelay1 || crusher1_logic_relay_crush || Trigger || || 0.00 || No
|-
| [[Image:Io11.png]] || OnProxyRelay2 || crusher1_logic_relay_uncrush || Trigger || || 0.00 || No
|-
| [[Image:Io11.png]] || OnProxyRelay3 || crusher1_logic_compare || Compare || || 0.00 || No
|}
 
12. Set up triggers to open or close the crusher by triggering the proxy relays on '''crusher1_proxy_crush'''. Use '''crusher1_logic_compare'''  to get the state of the crusher.


[[Category:Portal 2 Level Design]]
[[Category:Portal 2 Level Design]]
[[Category:Portal 2 Tutorials]]
[[Category:Portal 2 Tutorials]]

Revision as of 13:26, 1 August 2011

Template:Otherlang2 In Portal 2, Crushers are Panels with spikes. Like panels, they are attached to robotic arms. However, directly behind the robotic arm is a massive piston which drives the crusher.

Creating Crushers

1. Create a prop_dynamic entity with the following settings:

Property Name Value
World Model models/anim_wp/cursher/crusher.mdl
Name crusher1
Collision Not Solid
Hold animation? Yes

2. Create a 128x64x192 block brush around the spikes on the model. Tie it to a func_brush entity with the following settings:

Property Name Value
Name crusher1_brush
Parent crusher1

3. Create a 200x112x192 block brush around the previous brush. Tie it to a trigger_hurt entity with the following settings:

Property Name Value
Name crusher1_trigger_hurt
Parent crusher1
Damage 1000
Damage Cap 1000
Damage Type CRUSH

4. Create a 200x96x192 block brush around the trigger_hurt brush. Tie it to a trigger_portal_cleanser entity with the following settings:

Property Name Value
Name crusher1_trigger_hurt
Parent crusher1
Visible No

and the following outputs:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnDissolve (your dropper's trigger's name) Trigger 0.00 No

5. Create a logic_auto entity and set up the outputs as follows:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnMapSpawn crusher1_brush SetParentAttachmentMaintainOffset base_attach 0.05 No
Io11.png OnMapSpawn crusher1_trigger_hurt SetParentAttachmentMaintainOffset base_attach 0.05 No

6. Create a logic_relay with the following settings:

Property Name Value
Name crusher1_logic_relay_crush

with the following outputs:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger crusher1 SetAnimation smash_in 0.00 No
Io11.png OnTrigger crusher1_trigger_hurt Enable 0.00 No
Io11.png OnTrigger crusher1_math_counter SetValue 0 0.00 No

7. Create a logic_relay with the following settings:

Property Name Value
Name crusher1_logic_relay_uncrush

with the following outputs:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger crusher1 SetAnimation smash_out 0.00 No
Io11.png OnTrigger crusher1_trigger_hurt Disable 0.00 No
Io11.png OnTrigger crusher1_math_counter SetValue 1 0.00 No

8. Create a logic_compare with the following settings:

Property Name Value
Name crusher1_logic_compare
Initial Value 0
Compare Value 1

and the following outputs:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnLessThan crusher1_logic_relay_crush CancelPending 0.00 No
Io11.png OnLessThan crusher1_logic_relay_crush Disable 0.00 No

9. Create a math_counter with the following settings:

Property Name Value
Name crusher1_math_counter
Maximum Legal Value 1

and the following outputs:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OutValue crusher1_logic_compare SetValue 0.00 No

10. Create a func_instance_io_proxy entity with the following settings:[Why?]

Property Name Value
Name crusher1_proxy_crush

and the following outputs:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnProxyRelay crusher1_logic_relay_crush Trigger 0.00 No
Io11.png OnProxyRelay crusher1_logic_relay_uncrush Trigger 0.00 No
Io11.png OnProxyRelay crusher1_logic_compare Compare 0.00 No

11. Set up triggers to open or close the crusher by triggering the proxy relays on crusher1_proxy_crush. Use crusher1_logic_compare to get the state of the crusher.