这篇条目有关 Source引擎。如需详情,点击这里。

trigger_changelevel

From Valve Developer Community
< Zh
Jump to navigation Jump to search
English (en)中文 (zh)Translate (Translate)
类层级
CChangeLevel
CBaseTrigger
CBaseToggle
CBaseEntity
triggers.cpp

trigger_changelevel是一个固体实体(en),可在所有的 起源 起源 游戏中使用。当被触发时,它将提示游戏加载下一个关卡

Note.png注意:此实体在多人游戏中不起作用。如果你需要在多人游戏中更换关卡,你必须要通过point_servercommand实体或在代码中使用changelevel指令,这不会保留实体状态
Note.png注意:Left 4 Dead series中,建议使用info_changelevel,尽管此实体仍然可用[1],但游戏不会将其体积内的导航网格附加CHECKPOINT属性
Icon-Bug.png错误:如果Start Disabled键值设置为“是”,此实体对于玩家会有碰撞,如果此时正在其体积内进行关卡转换,这会导致玩家被卡住  [todo tested in?]

注意事项

在两个地图中放置一个info_landmark,以标记两个地图中的相同位置 触发关卡转换时,info_landmark必须位于玩家视野范围内。否则关卡转换将失败 两个info_landmark实体必须具有相同的名字。并且不能带有空格。它们也不能位于实心固体内 landmark的实体名称和地图名称的长度都必须小于32个字符

Note.png注意:虽然Landmark实体在几何空间上必须位于同一位置,但其并不要求坐标上的完全一致。Landmark实体实际上可以放置在正在更改的新地图网格中的任何位置,只要它周围的转换场景与上一个关卡的完全相同即可。这可以帮助解决大场景下的换图,即:玩家在顶视图的东边移动,并且必须在下一张地图中继续这样做,而这在从结束位置开始下一张地图的情况下是不可能的。简化关卡过渡附近的几何图形可以使处理它们变得更容易!

关卡转换必须是双向的,即下一张地图必须有一个指向当前地图的trigger_changelevel,而当前地图也必须要有一个指向下一张地图的trigger_changelevel。如果需要进行单向关卡转换,只需要让玩家无法接触到回到当前地图的trigger_changelevel即可(或者勾选Flags中的Disable Touch选项)

Warning.png警告:尽管info_landmark应该在两个关卡之间位于相同位置,但两张图的trigger_changelevel固体不能位于同一位置,否则玩家将会陷入死循环,不断的在两个关卡之间来回切换

要在下一关触发事件,请在当前地图通过输出启用env_global。实体有几个预定义状态,但您可以手动输入自己的自定义状态。然后创建一个logic_auto来检查env_global的状态。在env_global启用的情况下,你可以使用OnMapTransition来在完成关卡转换后触发事件

要控制哪些实体会保留到下一张地图,创建一个或多个trigger_transition,并给予它们和Landmark实体相同的名字。其体积内的所有实体都将保留到下一张地图

Note.png注意:不适用于Left 4 Dead series

Keyvalues

参见:  Generic Keyvalues, Inputs and Outputs available to all entities
Name(en) (targetname) <string(en)>
其他实体引用该实体的目标名称。
New Map Name (map) <string(en)>
要转换到的下一张地图名
Landmark Name (landmark) <targetname(en)>
要使用的Landmark实体名称(具体细节见上方)

Flags

Disable Touch : [2]

禁止通过触碰触发关卡转换

To Previous Chapter : [4]

至上一个章节
Icon-Bug.png错误:此Flag会导致实体完全实心  (tested in: 半衰期2)

Inputs

ChangeLevel
手动触发关卡转换,用于通过按钮触发等非直接触碰进行的关卡转换
Warning.png警告:起源2007 起源2007起,此输入对于多人游戏不起作用

Outputs

OnChangeLevel
当进行关卡转换时触发

参考文献

参考文献
1. 详见l4d_smalltown02_drainage / c10m2_drainage