本文与游戏《传送门2》有关。点击这里查看更多信息。
这篇条目有关 Source引擎。如需详情,点击这里。

合作模式门

From Valve Developer Community
< Zh
Jump to navigation Jump to search
English (en)Français (fr)Русский (ru)中文 (zh)Translate (Translate)

传送门2 合作模式门由两个触发器组成,需要两个机器人都站上去才能开门,每个触发器上的人形标志会亮起。

来自mp_coop_doors的合作门。

实例

1.) 创建一个func_instance,设置如下:

Property Name Value
Name coop_exit_door
VMF Filename instances/coop/coop_team_double_exit_door.vmf

2.) 创建一个使用Trigger纹理的方块刷子。将此刷子绑定到trigger_playerteam,并设置以下输出:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnStartTouchBluePlayer coop_exit_door instance:relay_blue_in;Trigger <none> 0.00 No
Io11.png OnEndTouchBluePlayer coop_exit_door instance:relay_blue_out;Trigger <none> 0.00 No
Io11.png OnStartTouchOrangePlayer coop_exit_door instance:relay_orange_in;Trigger <none> 0.00 No
Io11.png OnEndTouchOrangePlayer coop_exit_door instance:relay_orange_out;Trigger <none> 0.00 No

手动创建

1.) 添加一个prop_testchamber_door,设置如下:

Property Name Value
Name door_01

2.) 添加一个logic_coop_manager,设置如下:

Property Name Value
Name coop_man

以及输出:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnChangeToAllTrue door_01 Open <none> 0.00 No

触发器

1.) 添加一个logic_relay,设置如下:

Property Name Value
Name relay_b_in

以及输出:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger coop_man SetStateATrue <none> 0.00 No

2.) 添加一个logic_relay,设置如下:

Property Name Value
Name relay_b_out

以及输出:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger coop_man SetStateAFalse <none> 0.00 No

3.) 重复步骤1-2,但更改以下内容:

Property Name Value
Name relay_o_in

输出:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger coop_man SetStateBTrue <none> 0.00 No

添加一个logic_relay,设置如下:

Property Name Value
Name relay_o_out

输出:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger coop_man SetStateBFalse <none> 0.00 No

4.) 创建一个使用Trigger纹理的方块刷子。将此刷子绑定到trigger_playerteam,并设置以下输出:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnStartTouchBluePlayer relay_b_in Trigger <none> 0.00 No
Io11.png OnEndTouchBluePlayer relay_b_out Trigger <none> 0.00 No
Io11.png OnStartTouchOrangePlayer relay_o_in Trigger <none> 0.00 No
Io11.png OnEndTouchOrangePlayer relay_o_out Trigger <none> 0.00 No

复选框

1.) 添加一个prop_static,设置如下:

Property Name Value
World Model models/props/sign_frame02/sign_frame02.mdl

2.) 创建一个32长×4宽×32高的func_brush,使用纹理signage/signage_coop_teamdoor_orange

Property Name Value
Name checkbox_o

将其在框内左侧对齐。

3.) 重复步骤2,但使用纹理signage/signage_coop_teamdoor_blue代替。

将其在框内右侧对齐。

4.) 添加两个env_texturetoggle,设置如下:

Property Name Value
Name textog_o
Target Brush(es). checkbox_o
Property Name Value
Name textog_b
Target Brush(es). checkbox_b

5.) 添加两个ambient_generic,设置如下:

Property Name Value
Name sound_out
Sound Name portal.button_down
Property Name Value
Name sound_in
Sound Name portal.button_up

6.) 向relay_o_in添加以下输出:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger textog_o SetTextureIndex 1 0.00 No
Io11.png OnTrigger sound_in PlaySound <none> 0.00 No

relay_o_out添加以下输出:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger textog_o SetTextureIndex 0 0.00 No
Io11.png OnTrigger sound_out PlaySound <none> 0.00 No

relay_b_in添加以下输出:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger textog_b SetTextureIndex 1 0.00 No
Io11.png OnTrigger sound_in PlaySound <none> 0.00 No

relay_b_out添加以下输出:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger textog_b SetTextureIndex 0 0.00 No
Io11.png OnTrigger sound_out PlaySound <none> 0.00 No

您现在已创建了一个只有在两个合作伙伴都位于触发器(en)内时才会打开的门。