Coop Door (Portal 2): Difference between revisions
| No edit summary | Thunder4ik (talk | contribs)  m (Unicodifying, replaced: [[Image: → [[File: (22)) | ||
| (13 intermediate revisions by 10 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=== | ===The Door=== | ||
| 1.) | 1.) Add a {{ent|prop_testchamber_door}} with the following settings: | ||
| Add a  | |||
| ::{| class=standard-table | ::{| class=standard-table | ||
| !  Property Name || Value | !  Property Name || Value | ||
| Line 13: | Line 35: | ||
| |} | |} | ||
| 2.) | 2.) Add a {{ent|logic_coop_manager}} with the following settings: | ||
| Add a  | |||
| ::{| class=standard-table | ::{| class=standard-table | ||
| !  Property Name || Value | !  Property Name || Value | ||
| Line 24: | Line 45: | ||
| !   || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | !   || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
| |- | |- | ||
| | [[ | | [[File:Io11.png]] || OnChangeToAllTrue || door_01 || Open || <none> || 0.00 || No | ||
| |} | |} | ||
| ===Triggers=== | ===Triggers=== | ||
| 1.) | 1.) Add a {{ent|logic_relay}} with the following Settings: | ||
| Add a  | |||
| ::{| class=standard-table | ::{| class=standard-table | ||
| !  Property Name || Value | !  Property Name || Value | ||
| Line 40: | Line 59: | ||
| !   || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | !   || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
| |- | |- | ||
| | [[ | | [[File:Io11.png]] || OnTrigger || coop_man || SetStateATrue || <none> || 0.00 || No | ||
| |} | |} | ||
| 2.) | 2.) Add a <tt>logic_relay</tt> with the following Settings: | ||
| Add a  | |||
| ::{| class=standard-table | ::{| class=standard-table | ||
| !  Property Name || Value | !  Property Name || Value | ||
| Line 53: | Line 71: | ||
| !   || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | !   || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
| |- | |- | ||
| | [[ | | [[File:Io11.png]] || OnTrigger || coop_man || SetStateAFalse || <none> || 0.00 || No | ||
| |} | |} | ||
| 3.) | 3.) Repeat steps 1-2, but change the following: | ||
| Repeat steps 1-2 but change the following: | |||
| ::{| class=standard-table | ::{| class=standard-table | ||
| !  Property Name || Value | !  Property Name || Value | ||
| Line 66: | Line 83: | ||
| !   || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | !   || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
| |- | |- | ||
| | [[ | | [[File:Io11.png]] || OnTrigger || coop_man || SetStateBTrue || <none> || 0.00 || No | ||
| |} | |} | ||
| Add a  | Add a <tt>logic_relay</tt> with the following Settings: | ||
| ::{| class=standard-table | ::{| class=standard-table | ||
| !  Property Name || Value | !  Property Name || Value | ||
| Line 78: | Line 95: | ||
| !   || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | !   || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | ||
| |- | |- | ||
| | [[ | | [[File:Io11.png]] || OnTrigger || coop_man || SetStateBFalse || <none> || 0.00 || No | ||
| |} | |} | ||
| 4.) | 4.) Create a block brush with the Trigger texture applied. Tie this brush to a {{ent|trigger_playerteam}} with the following outputs: | ||
| Create a block brush with  | |||
| ::{| class=standard-table | ::{| class=standard-table | ||
| !   || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | !   || 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=== | ===Check Boxes=== | ||
| 1.) | 1.) Add a {{ent|prop_static}} with the following settings: | ||
| Add a  | |||
| ::{| class=standard-table | ::{| class=standard-table | ||
| !  Property Name || Value | !  Property Name || Value | ||
| Line 103: | Line 118: | ||
| |} | |} | ||
| 2.) | 2.) | ||
| Create a  | Create a 32L×4W×32H {{ent|func_brush}} with the texture <tt>signage/signage_coop_teamdoor_orange</tt>. | ||
| ::{| class=standard-table | ::{| class=standard-table | ||
| !  Property Name || Value | !  Property Name || Value | ||
| Line 113: | Line 127: | ||
| Align it to the left, inside the frame. | Align it to the left, inside the frame. | ||
| 3.) | 3.) Repeat step 2, but use <tt>signage/signage_coop_teamdoor_blue</tt> for the texture instead. | ||
| Repeat step 2 but  | |||
| Align it to the right, inside the frame. | Align it to the right, inside the frame. | ||
| 4.) Add two {{ent|env_texturetoggle}}s with the following settings: | |||
| 4.) | |||
| Add two  | |||
| ::{| class=standard-table | ::{| class=standard-table | ||
| !  Property Name || Value | !  Property Name || Value | ||
| Line 138: | Line 147: | ||
| |} | |} | ||
| 5.) | 5.) Add two {{ent|ambient_generic}}s with the following settings: | ||
| Add two  | |||
| ::{| class=standard-table | ::{| class=standard-table | ||
| !  Property Name || Value | !  Property Name || Value | ||
| Line 147: | Line 155: | ||
| | Sound Name || portal.button_down | | Sound Name || portal.button_down | ||
| |} | |} | ||
| ::{| class=standard-table | ::{| class=standard-table | ||
| !  Property Name || Value | !  Property Name || Value | ||
| Line 156: | Line 163: | ||
| |} | |} | ||
| 6.) Add the following outputs to <tt>relay_o_in</tt>: | |||
| 6.) | |||
| Add the following outputs to < | |||
| ::{| class=standard-table | ::{| class=standard-table | ||
| !   || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | !   || 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 < | Add the following outputs to <tt>relay_o_out</tt>: | ||
| ::{| class=standard-table | ::{| class=standard-table | ||
| !   || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | !   || 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 < | Add the following outputs to <tt>relay_b_in</tt>: | ||
| ::{| class=standard-table | ::{| class=standard-table | ||
| !   || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | !   || 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 < | Add the following outputs to <tt>relay_b_out</tt>: | ||
| ::{| class=standard-table | ::{| class=standard-table | ||
| !   || My Output || Target Entity || Target Input || Parameter || Delay || Only Once | !   || 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  | 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

 links to other articles to help
 links to other articles to help  integrate it into the encyclopedia. Please help improve this article by adding links
 integrate it into the encyclopedia. Please help improve this article by adding links  that are relevant to the context within the existing text.
 that are relevant to the context within the existing text.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.
 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.





























