L4D关卡制作/恐慌事件

From Valve Developer Community
Jump to: navigation, search
English (en)Русский (ru)中文 (zh)Translate (Translate)

译者:joyo_a(百度ID)

恐慌事件(也叫尸潮)是设计者让感染者成群出现在某一时刻的场合。你仍然只能对他们出现在哪里进行有限的控制,但你至少可以控制他们的产生。

恐慌事件的例子是在毫不留情的第二张地图中启动发电机时,在毫不留情的第三张地图中乘坐升降机时,以及在毫不留情的第四张地图中呼叫电梯时。

我们刚刚在教程标准地图中看到的func_elevator(en)有用于呼叫电梯发送输出以引起恐慌事件的按钮。

放置一个info_director(en)

如果你想创建一个恐慌事件,你需要一个info_director(en)

进入Entity tool Mt-entities.png,然后从Objects下拉菜单中选择“info_director(en)”。

在镜头视图中左键单击放置该实体。

Alt+ Enter打开属性。

info_director(en)属性。

Name字段更改为“director”以便可以向其发送输入。

现在,按Esc进入Selection tool Hammer select.png,然后双击要发送输入的实体。在本教程里,打开我们用来呼叫电梯降落的logic_relay(en)——“elevator_down_relay”。

切换到Outputs选项卡。

将输出添加到logic_relay(en)以触发恐慌事件。

点击Add...来创建一个输出。

My output命名为“OnTrigger”。

Targets实体命名为“director”。

Via this input更改为“PanicEvent”。

勾选复选框Fire once only

这将告诉relay当它被触发时发送一个恐慌事件给导演但只在第一次的时候。

现在,按F9保存并编译你的地图。

标记导航

在游戏中,你需要对导航文件进行一些更改以使恐慌事件能正常工作。

Note.png注意:要在不与服务器断开连接的情况下工作,请在控制台中使用“sv_lan 1”。

地图加载后,输入以下控制台命令:

director_stop
nb_delete_all
nav_edit 1
z_debug 1

如果你有一个用于导航编辑的配置文件,那么输出那个配置(即exec nav.cfg)。

移动到触发恐慌事件的地方。在教程标准地图中,转到电梯被呼叫的按钮。

选择恐慌事件周围的地区并增加选择,以便你包含足够的区域供丧尸群产生。

选择所有需要的区域后,按下控制台并输入“mark BATTLEFIELD”,然后按Enter键。

BATTLEFIELD导航区域。

你会注意到,在教学标准地图中,它包括了幸存者无法到达的区域(如BATTLEFIELD)。

BATTLEFIELD区域可以延伸到幸存者无法到达的地方。

导航区域上的BATTLEFIELD属性是恐慌事件发生的地方,也是感染者可以产生的地方。通常情况下,幸存者周围有一个1500单位的导演试图在里面产生感染者的泡沫。使用BATTLEFIELD属性,你可以部署更远的区域——允许感染者从很远的地方出现。

Note.png注意:BATTLEFIELD区域必须是连续的。如果在BATTLEFIELD场地中存在没有标记为BATTLEFIELD的区域,当幸存者踏上这些区域时,导演会认为恐慌事件已经结束,并且除了恐慌事件的丧尸群之外也可能产生普通丧尸群。

现在,在BATTLEFIELD中找到你认为是好的幸存者的战斗地点。幸存者电脑需要知道这些是适合的点,所以选择它们并将其标记为“BATTLESTATION”。

将区域设置为BATTLESTATION。

游戏提示

当你玩求生之路时,你会注意到有些出现的文本信息说明了一些事物如何运作或者一些需要注意的地方。我们称这个系统是游戏提示。

我们在求生之路中设计的恐慌事件应该有一个与他们相关联的游戏提示信息。在教程标准地图中有一个附加到电梯按钮的游戏提示。

按钮的游戏提示信息。

要设置自定义提示,转到Entity tool Mt-entities.png并从Objects下拉菜单中选择“info_game_event_proxy(en)”。

将实体放在地图中提示信息所在的位置。

Alt+ Enter打开属性。

取一个唯一的名字(Name)。

对于Name of event to generate,输入“explain_elevator_button”。

更改Range为“75”。

现在,切换到Flags选项卡。

info_game_event_proxy(en)的Flags选项卡。

勾选复选框Fire Automatically When First Seen

这意味着当玩家看到它时提示消息会出现。

现在,我们需要为info_game_event_proxy(en)发送一个输入以便在按下按钮时将其关闭。

双击用于触发elevator_down_relayfunc_button(en)以打开其属性。

切换到Outputs选项卡。

func_button(en)的Outputs选项卡。

点击Add...来添加输出。

  • My output named :“OnPressed”。
  • Target entities named:实体名为“button_proxy”或者你定义的info_game_event_proxy(en)的名字。
  • Via this input:“Kill”。

一旦按下按钮将从地图中删除info_game_event_proxy(en)