Coop Door (Portal 2): Difference between revisions
Subject15837 (talk | contribs) |
Thunder4ik (talk | contribs) m (Unicodifying, replaced: [[Image: → [[File: (22)) |
||
(20 intermediate revisions by 11 users not shown) | |||
Line 1: | Line 1: | ||
{{Underlinked|date=January 2024}} | |||
{{lang|title=Co-Op Door|Coop Door (Portal 2)}}{{p2 topicon}}{{source topicon}} | |||
== | {{Portal2}} '''Co-Op doors''' consist of two triggers that both bots step on to open the door and for each trigger a person sign lights up. | ||
[[File:Portal2CoopDoorFromMp_Coop_Doors.jpg|thumb|right|300px|The co-op door from <tt>mp_coop_doors</tt>.]] | |||
==Instance== | |||
1.) Create a {{ent|func_instance}} with the following settings: | |||
::{| class=standard-table | |||
! Property Name || Value | |||
|- | |||
| Name || coop_exit_door | |||
|- | |||
| VMF Filename || instances/coop/coop_team_double_exit_door.vmf | |||
|} | |||
2.) Create a block brush with the Trigger texture. Tie this brush to a {{ent|trigger_playerteam}} with the following outputs: | |||
::{| class=standard-table | |||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | |||
|- | |||
| [[File:Io11.png]] || OnStartTouchBluePlayer || coop_exit_door || instance:relay_blue_in;Trigger || <none> || 0.00 || No | |||
|- | |||
| [[File:Io11.png]] || OnEndTouchBluePlayer || coop_exit_door || instance:relay_blue_out;Trigger || <none> || 0.00 || No | |||
|- | |||
| [[File:Io11.png]] || OnStartTouchOrangePlayer || coop_exit_door || instance:relay_orange_in;Trigger || <none> || 0.00 || No | |||
|- | |||
| [[File:Io11.png]] || OnEndTouchOrangePlayer || coop_exit_door || instance:relay_orange_out;Trigger || <none> || 0.00 || No | |||
|} | |||
==Manual Creation== | |||
===The Door=== | |||
1.) Add a {{ent|prop_testchamber_door}} with the following settings: | |||
::{| class=standard-table | |||
! Property Name || Value | |||
|- | |||
| Name || door_01 | |||
|} | |||
== | 2.) Add a {{ent|logic_coop_manager}} with the following settings: | ||
::{| class=standard-table | |||
! Property Name || Value | |||
|- | |||
| Name || coop_man | |||
|} | |||
and outputs: | |||
::{| class=standard-table | |||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | |||
|- | |||
| [[File:Io11.png]] || OnChangeToAllTrue || door_01 || Open || <none> || 0.00 || No | |||
|} | |||
===Triggers=== | |||
1.) Add a {{ent|logic_relay}} with the following Settings: | |||
::{| class=standard-table | |||
! Property Name || Value | |||
|- | |||
| Name || relay_b_in | |||
|} | |||
and outputs: | |||
::{| class=standard-table | |||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | |||
|- | |||
| [[File:Io11.png]] || OnTrigger || coop_man || SetStateATrue || <none> || 0.00 || No | |||
|} | |||
2.) Add a <tt>logic_relay</tt> with the following Settings: | |||
::{| class=standard-table | |||
! Property Name || Value | |||
|- | |||
| Name || relay_b_out | |||
|} | |||
and outputs: | |||
::{| class=standard-table | |||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | |||
|- | |||
| [[File:Io11.png]] || OnTrigger || coop_man || SetStateAFalse || <none> || 0.00 || No | |||
|} | |||
3.) Repeat steps 1-2, but change the following: | |||
::{| class=standard-table | |||
! Property Name || Value | |||
|- | |||
| Name || relay_o_in | |||
|} | |||
outputs: | |||
::{| class=standard-table | |||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | |||
|- | |||
| [[File:Io11.png]] || OnTrigger || coop_man || SetStateBTrue || <none> || 0.00 || No | |||
|} | |||
Add a <tt>logic_relay</tt> with the following Settings: | |||
::{| class=standard-table | |||
! Property Name || Value | |||
|- | |||
| Name || relay_o_out | |||
|} | |||
outputs: | |||
::{| class=standard-table | |||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | |||
|- | |||
| [[File:Io11.png]] || OnTrigger || coop_man || SetStateBFalse || <none> || 0.00 || No | |||
|} | |||
4.) Create a block brush with the Trigger texture applied. Tie this brush to a {{ent|trigger_playerteam}} with the following outputs: | |||
::{| class=standard-table | |||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | |||
|- | |||
| [[File:Io11.png]] || OnStartTouchBluePlayer || relay_b_in || Trigger || <none> || 0.00 || No | |||
|- | |||
| [[File:Io11.png]] || OnEndTouchBluePlayer || relay_b_out || Trigger || <none> || 0.00 || No | |||
|- | |||
| [[File:Io11.png]] || OnStartTouchOrangePlayer || relay_o_in || Trigger || <none> || 0.00 || No | |||
|- | |||
| [[File:Io11.png]] || OnEndTouchOrangePlayer || relay_o_out || Trigger || <none> || 0.00 || No | |||
|} | |||
===Check Boxes=== | |||
1.) Add a {{ent|prop_static}} with the following settings: | |||
::{| class=standard-table | |||
! Property Name || Value | |||
|- | |||
| World Model || models/props/sign_frame02/sign_frame02.mdl | |||
|} | |||
2.) | |||
Create a 32L×4W×32H {{ent|func_brush}} with the texture <tt>signage/signage_coop_teamdoor_orange</tt>. | |||
::{| class=standard-table | |||
! Property Name || Value | |||
|- | |||
| Name || checkbox_o | |||
|} | |||
Align it to the left, inside the frame. | |||
3.) Repeat step 2, but use <tt>signage/signage_coop_teamdoor_blue</tt> for the texture instead. | |||
Align it to the right, inside the frame. | |||
4.) Add two {{ent|env_texturetoggle}}s with the following settings: | |||
::{| class=standard-table | |||
! Property Name || Value | |||
|- | |||
| Name || textog_o | |||
|- | |||
| Target Brush(es). || checkbox_o | |||
|} | |||
::{| class=standard-table | |||
! Property Name || Value | |||
|- | |||
| Name || textog_b | |||
|- | |||
| Target Brush(es). || checkbox_b | |||
|} | |||
5.) Add two {{ent|ambient_generic}}s with the following settings: | |||
::{| class=standard-table | |||
! Property Name || Value | |||
|- | |||
| Name || sound_out | |||
|- | |||
| Sound Name || portal.button_down | |||
|} | |||
::{| class=standard-table | |||
! Property Name || Value | |||
|- | |||
| Name || sound_in | |||
|- | |||
| Sound Name || portal.button_up | |||
|} | |||
6.) Add the following outputs to <tt>relay_o_in</tt>: | |||
::{| class=standard-table | |||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | |||
|- | |||
| [[File:Io11.png]] || OnTrigger || textog_o || SetTextureIndex || 1 || 0.00 || No | |||
|- | |||
| [[File:Io11.png]] || OnTrigger || sound_in || PlaySound || <none> || 0.00 || No | |||
|} | |||
Add the following outputs to <tt>relay_o_out</tt>: | |||
::{| class=standard-table | |||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | |||
|- | |||
| [[File:Io11.png]] || OnTrigger || textog_o || SetTextureIndex || 0 || 0.00 || No | |||
|- | |||
| [[File:Io11.png]] || OnTrigger || sound_out || PlaySound || <none> || 0.00 || No | |||
|} | |||
Add the following outputs to <tt>relay_b_in</tt>: | |||
::{| class=standard-table | |||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | |||
|- | |||
| [[File:Io11.png]] || OnTrigger || textog_b || SetTextureIndex || 1 || 0.00 || No | |||
|- | |||
| [[File:Io11.png]] || OnTrigger || sound_in || PlaySound || <none> || 0.00 || No | |||
|} | |||
Add the following outputs to <tt>relay_b_out</tt>: | |||
::{| class=standard-table | |||
! || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | |||
|- | |||
| [[File:Io11.png]] || OnTrigger || textog_b || SetTextureIndex || 0 || 0.00 || No | |||
|- | |||
| [[File:Io11.png]] || OnTrigger || sound_out || PlaySound || <none> || 0.00 || No | |||
|} | |||
You have now created a door that will open only if both co-op partners are in the [[trigger]]s. | |||
[[Category:Portal 2 Level Design]] | [[Category:Portal 2 Level Design]] | ||
[[Category:Portal 2 Tutorials]] | [[Category:Portal 2 Tutorials]] |
Latest revision as of 08:28, 8 January 2024




January 2024
Co-Op doors consist of two triggers that both bots step on to open the door and for each trigger a person sign lights up.
Instance
1.) Create a func_instance with the following settings:
Property Name Value Name coop_exit_door VMF Filename instances/coop/coop_team_double_exit_door.vmf
2.) Create a block brush with the Trigger texture. Tie this brush to a trigger_playerteam with the following outputs:
Manual Creation
The Door
1.) Add a prop_testchamber_door with the following settings:
Property Name Value Name door_01
2.) Add a logic_coop_manager with the following settings:
Property Name Value Name coop_man
and outputs:
Triggers
1.) Add a logic_relay with the following Settings:
Property Name Value Name relay_b_in
and outputs:
2.) Add a logic_relay with the following Settings:
Property Name Value Name relay_b_out
and outputs:
3.) Repeat steps 1-2, but change the following:
Property Name Value Name relay_o_in
outputs:
Add a logic_relay with the following Settings:
Property Name Value Name relay_o_out
outputs:
4.) Create a block brush with the Trigger texture applied. Tie this brush to a trigger_playerteam with the following outputs:
Check Boxes
1.) Add a prop_static with the following settings:
Property Name Value World Model models/props/sign_frame02/sign_frame02.mdl
2.) Create a 32L×4W×32H func_brush with the texture signage/signage_coop_teamdoor_orange.
Property Name Value Name checkbox_o
Align it to the left, inside the frame.
3.) Repeat step 2, but use signage/signage_coop_teamdoor_blue for the texture instead.
Align it to the right, inside the frame.
4.) Add two env_texturetoggles with the following settings:
Property Name Value Name textog_o Target Brush(es). checkbox_o
Property Name Value Name textog_b Target Brush(es). checkbox_b
5.) Add two ambient_generics with the following settings:
Property Name Value Name sound_out Sound Name portal.button_down
Property Name Value Name sound_in Sound Name portal.button_up
6.) Add the following outputs to relay_o_in:
Add the following outputs to relay_o_out:
Add the following outputs to relay_b_in:
Add the following outputs to relay_b_out:
You have now created a door that will open only if both co-op partners are in the triggers.