Zh/Box dropper: Difference between revisions
m (→方块模板: {{Tip}}) |
|||
(2 intermediate revisions by the same user not shown) | |||
Line 51: | Line 51: | ||
=== 方块模板 === | === 方块模板 === | ||
1. 在通道顶部创建<code>128L*128W*112H</code>的{{ent|func_detail}}空间(使用<nodraw>纹理) | 1. 在通道顶部创建<code>128L*128W*112H</code>的{{ent|func_detail}}空间(使用<nodraw>纹理) | ||
{{Warning|如果你的地图使用{{L|Skybox|天空盒}}或{{L|Adding Water|水体}},那么它应该被包在地图(天空盒)内,因为{{Portal|2}}允许你在有泄露的情况下编译并进入游戏,而这个盒子也是一种泄露,会导致你的水体无法被加载(即水面显示天空盒而不是你要的水)}} | |||
2. 中央放置{{ent|prop_physics}}实体: | 2. 中央放置{{ent|prop_physics}}实体: | ||
- 模型:<code>models/props/metal_box.mdl</code> | - 模型:<code>models/props/metal_box.mdl</code> | ||
Line 61: | Line 62: | ||
|} | |} | ||
3. | 3. 在方块正中心创建{{ent|point_template}}: | ||
- 命名:<code>box_template</code> | - 命名:<code>box_template</code> | ||
- 模板目标:<code>box</code> | - 模板目标:<code>box</code> | ||
{{Tip|这个实体会将你的方块作为模板,给下面这个实体用}} | |||
4. | 4. 通道顶部内创建{{ent|env_entity_maker}}: | ||
- 命名:<code>entity_box_maker</code> | - 命名:<code>entity_box_maker</code> | ||
- 关联模板:<code>box_template</code> | - 关联模板:<code>box_template</code> | ||
{{Tip|这个实体会用来生成你的方块}} | |||
5. 创建{{ent|filter_activator_name}}过滤器: | 5. 创建{{ent|filter_activator_name}}过滤器: | ||
- 命名:<code>filter_boxes</code> | - 命名:<code>filter_boxes</code> | ||
Line 149: | Line 150: | ||
| Dissolve Type || Energy || 这是初始项,不用更改 | | Dissolve Type || Energy || 这是初始项,不用更改 | ||
|} | |} | ||
(Energy实际上是在{{HL2|4}}或基于其制作的游戏中被能量球击杀的效果) | (Energy实际上是在{{HL2|4}}或基于其制作的游戏中被能量球击杀的效果)<br> | ||
现在你的<s>削除</s>销毁功能应该能正常奏效了,只差输出。 | 现在你的<s>削除</s>销毁功能应该能正常奏效了,只差输出。 | ||
Latest revision as of 09:53, 7 October 2025
本教程将逐步演示如何制作传送门测试密室中常见的投放器(官方名:维生装置通风口)。该装置可在玩家原有配重存储方块被销毁时提供新方块。
基础构造
投放器模型
1. 创建prop_dynamic,设置模型为models/props/box_dropper.mdl
2. 创建第二个prop_dynamic,命名为box_dropper_model_cover
,模型设为models/props/box_dropper_cover.mdl
3. 将两个实体对齐至目标位置
顶部拱形结构
使用拱形工具创建尺寸为128L*128W*16H
的架构,参数设置:
属性 | 值 |
---|---|
墙体厚度 | 24 |
边数 | 8 |
弧度 | 360° |
起始角度 | 0° |
- 将结构绑定至func_detail
- 使用顶点编辑工具 调整为矩形中空形态
- 纹理贴图:
- 内缘:metal/metalwall061f
- 底面:concrete/concrete_modular_ceiling001a
垂直通道
1. 创建128L*128W*256H
的垂直通道
2. 使用分割工具将各面均分
3. 纹理贴图:
- 下部内壁:metal/metalwall_bts_006a
- 上部内壁:metal/metalwall_bts_006b_gradient
- 顶部:lights/light_orange001
功能系统
方块模板
1. 在通道顶部创建128L*128W*112H
的func_detail空间(使用<nodraw>纹理)


2. 中央放置prop_physics实体:
- 模型:models/props/metal_box.mdl
- 命名:box
- 输出设置:
OnOutOfWorld | !activator | Kill |
OnOutOfWorld | logic_drop_box | Trigger |
3. 在方块正中心创建point_template:
- 命名:box_template
- 模板目标:box

4. 通道顶部内创建env_entity_maker:
- 命名:entity_box_maker
- 关联模板:box_template

5. 创建filter_activator_name过滤器:
- 命名:filter_boxes
- 过滤名称:box
舱门控制
1. 创建96L*96W*4H
的func_brush:
- 命名:stop_tube_plugging
- 初始状态:禁用
2. 创建128L*128W*128H
的trigger_multiple:
- 命名:trigger_box_dropper_clear
- 过滤器:filter_boxes
- 标志设置:
Flag | ||||
![]() |
Physics Objects | {{{3}}} | ||
![]() |
Clients | {{{3}}} | ||
- 输出链:
OnEndTouch | 执行动作 |
→ entity_box_maker | 生成新方块 |
→ box_dropper_model_cover | 播放关闭动画 |
→ stop_tube_plugging | 启用防堵塞 |
逻辑控制
创建logic_relay:
- 命名:logic_drop_box
- 输出设置:
OnTrigger | 执行动作 |
→ box_dropper_model_cover | 播放开启动画 |
→ stop_tube_plugging | 禁用防堵塞 |
→ trigger_box_dropper_clear | 启用触发区域 |
进阶配置
自动补充机制
当方块被分解立场 或毒液 销毁时:
1. 对于湮灭场:在trigger_portal_cleanser添加OnDissolveBox → logic_drop_box:Trigger
输出
2. 对于毒液:在液体区域创建trigger_multiple:
- 过滤器:filter_boxes
- 输出设置:
OnStartTouch | 执行动作 |
→ !activator | 销毁方块 |
→ logic_drop_box | 触发补充 |
使用直立开关重生方块
虽然这听着有点难,但其实非常简单。
你只需要做两三件事。
创建直立开关
请参考直立开关 ,并在完成后把它放到滴管面前。

随后,根据上文给开关的func_door_rotating 添加<logic_drop_box>的相关输出。
添加并运用env_entity_dissolver实体
很明显,“Dissolver”直接告诉了该实体的作用,它是用来销毁掉现有方块的。
将这个实体放在开关旁边(实际位置不重要,只是方便),修改其属性:
名称 | 内容 | 介绍 |
Name | BoxDissolver | 随便起一个名字,只要你能看懂 |
Target to Dissolve | box | 要销毁的目标,在这里当然是方块 |
Dissolve Type | Energy | 这是初始项,不用更改 |
(Energy实际上是在 半衰期2或基于其制作的游戏中被能量球击杀的效果)
现在你的削除销毁功能应该能正常奏效了,只差输出。
为开关添加输出并测试
这个操作会轻松的多。 像开头所讲的一样,给Door_rotating实体添加一个输出。
My Output | Target Entity | Target Input | Parameter | Delay | Only Once | |
---|---|---|---|---|---|---|
![]() |
OnOpen | BoxDissolver | Dissolve | 0.00 | No |
好了,这样因该就行了!
按f9来编译地图试试吧!

我们推荐你使用1秒,或至少在方块落地后能立即按下开关的时间