Zh/L4D Mapping Notes

此页面包含与求生之路地图制作相关的大量笔记和不完整的文章。如果您在地图制作中发现并解决了一些问题，可以在这里补充一下，这样可以方便其他地图作者了解更多相关问题的内容。'''
本简体中文页面由 Gloria 汉化。
== 开场镜头 ==
在第一个章节中，游戏使用了4个"info_survivor_position" 实体和4个"point_viewcontrol_survivor"实体来制造出“镜头拉近”的效果。尽管没有这8个实体也不会影响游戏正常运行，我们还是建议在发布地图之前，添加介绍镜头作为最后的完善。
* logic_choreographed_scene
* point_viewcontrol_multiplayer
* point_viewcontrol_survivor
* info_survivor_position
* env_fade
* Entity: logic_relay Name: relay_intro_start
:
	OnTrigger	director	ForceSurvivourPosition 	 	0.00	No
	OnTrigger	director	ReleaseSurvivourPosition	 	0.01	No
== 导演系统 ==
求生之路使用“导演”，而不是固定的出生点，来放置敌人和物品。放置的位置和数量都是根据每名玩家当前的状态、数据、能力和位置决定的。
* info_director 
:
	OnGameplayStart	relay_intro_start	Trigger	 	0.00	No
=== 为感染者创建出生区域 ===
导演会在玩家视线以外的区域生成感染者，因此一张高难度的地图往往有很多视线外的区域。有时候生成区域在玩家不可到达的地方，为了让感染者进入游戏区域，应该在障碍背面放置梯子，以便感染者翻越。
== 生成物品和武器 ==
设置Flags标志让生成位置随机化。
* weapon_molotov_spawn
* weapon_pipe_bomb_spawn
* weapon_pistol_spawn
* weapon_pain_pills_spawn
* weapon_ammo_spawn
* weapon_smg_spawn
* weapon_first_aid_kit_spawn
* weapon_hunting_rifle_spawn
* weapon_rifle_spawn
* weapon_autoshotgun_spawn
* weapon_pumpshotgun_spawn
* prop_physics
** 绿色氧气罐： models/props_equipment/oxygentank01.mdl
** 红色汽油桶： models/props_junk/gascan001a.mdl
** 白色丙烷罐： models/props_junk/propanecanister001a.mdl
** 烟花： models/props_junk/explosive_box001.mdl
== 恐慌事件 ==
触发 info_director 导演实体的事件来生成尸潮。
* info_game_event_proxy
* ambient_generic
* logic_timer
* 示例
** 警报车
** 开门警报
** 火警
** 烟雾报警器
** 金属探测器
** 爆炸
== 剧情事件(Crescendo events) ==
剧情中间的任务目标。剧情事件就像是缩小版的救援关战斗，通常出现在途径中有意思的地方。它的设置与恐慌事件极其相似，除了不能被跳过这一点之外。例如战役毫不留情(No Mercy)中的医院中，生还者必须抵御尸潮直到电梯抵达。
* func_button
* filter_activator_team
* info_game_event_proxy
* logic_relay
:
	OnTrigger	director	PanicEvent	 	1.00	No
== 一种关卡切换的方法 ==
在一关最后的安全屋中添加 trigger_changelevel ，并将它与房间的地板空间关联起来。触发器(trigger)笔刷并不需要与地板重叠，但是必须紧贴着地板，或者与nav网格生成的位置大部分重合。如果 trigger_changelevel 没有与地板空间关联起来，在地图加载时就会出现nav错误，需要抽动调整nav网格。
确保命名了 info_landmark 实体，以及确保名称与 trigger_changelevel 中设置的、以及下一关的landmark名称一致。 For the prop_door_rotating_checkpoint,至于安全门实体 prop_door_rotating_checkpoint，将模型设置成 models/props_doors/checkpoint_door_02.mdl，确保勾选了“Flags”选项卡中的“Starts Open”选项。
== 创建导航网格 ==
首先必须编译并加载好地图，再在游戏中打开控制台，输入以下内容：
: sv_cheats 1
: nav_edit 1
: nav_mark_walkable
: nav_generate
: nav_analyze
: nav_edit 0
: sv_cheats 0
在整个过程中地图会被重新加载两次，一次是在 nav_generate 之后，一次是在 nav_analyze 之后，但游戏应当始终处于nav编辑模式。 
需要注意的是，上述控制台指令只能创建最基础的导航网格，它还远远不够，因此只能用于测试而不是发布。在发布地图之前应该仔细、全面地检查并编辑导航网格，取决于地图的结构，工作量也会有所不同。因此，建议你先完成地图的全部细节，最后再进行导航网格的调整。地图结构上的大变动会导致旧的nav渲染在错误的位置，需要进行重建。
== 导航网格属性描述 ==
* 重定向到
== 导航网格图形用户界面 ==
* Fog：该区域是否关联了雾(fog)。
* Incoming/Outgoing：（可能不仅限于求生之路）很可能是用于选择带有向内/向外路径标记的区域
* Max Light / Min Light：（不限于求生之路）用于选择有特定级别光照的区域，（最大0.25/最小0 是黑暗区域，最大1/最小0.75是明亮区域）
* Place：（可能不仅限于求生之路）“Place”标记用于给nav网格中的特定区域命名。很可能仅用于选择命名/未命名区域。
== 救援关 ==
一个战役的终点。在每个战役的最后一章，玩家必须在感染者的疯狂进攻中守住一片区域，直到救援载具到达。
=== 设置呼叫电台 ===
: Entity: trigger_finale
: Name: FinaleRadio
: World Model: models/props/terror/hamradio.mdl
: Start Disabled: No
: First Use Delay: 2
: Use Delay: 2
: Description: 这个实体的作用是在被触发两次之后，启动救援流程。
::
	FinaleEscapeStarted	EscapeRelay	Trigger	 	5.00	No
::FinaleEscapeStarted - 事件说明：它的含义是“当救援关完成之后，触发这个事件”。通常用于触发一个中继器(logic_relay)，进而召唤救援载具。
::
=== 添加救援载具 ===
: Entity: logic_relay
: Name: EscapeRelay
: Description: 当救援关流程完成时触发一次。用于启动救援载具的动画，并使其移动到标记了 RESCUE_VEHICLE 导航网格的位置。当载具到达之后，用于承载 RESCUE_VEHICLE 标记的导航网格的 func_brush 固实体就会生效。
::
	OnTrigger	RescueBrush	Open 	 	0.10	No
	OnTrigger	FinaleRadio	FinaleEscapeVehicleReadyForSurvivors	 	3.50	No
::FinaleEscapeVehicleReadyForSurvivors - 这个事件能够“解锁”RESCUE_VEHICLE 导航网格，有了它后电脑AI就会冲向载具。建议给这一事件添加延迟，来让载具有足够的时间进入位置。
::
: Entity: func_door, Name: RescueBrush
::
	OnOpen	TriggerEscape 	Enable	 	3.10	No
	OnOpen	RescueBrushRamp	Enable	 	3.10	No
	OnOpen	RescueBrushGate	Close 	 	3.20	No
: Entity: func_door, Name: RescueBrushDr1
:: Starts Open: Yes
:: Parent: RescueBrush
: Entity: func_door, Name: RescueBrushDr2
:: Starts Open: Yes
:: Parent: RescueBrush
: Entity: func_brush, Name: RescueBrushRamp
:: Start Disabled: Yes
:: Solidity: Toggle
: Entity: trigger_multiple, Name: TriggerEscape
: Description: Set to be enabled after the rescue vehicle animation finishes. When activated, triggers the VehicleLeaveRelay.
::
	OnEntireTeamStartTouch	VehicleLeaveRelay	Trigger	 	0.00	No
: Entity: logic_relay, Name: VehicleLeaveRelay
: Description: Used for controlling the rescue vehicle exit animations and firing the OutroRelay
::
	OnTrigger	RescueBrushDr1 	Close 	 	0.00	No
	OnTrigger	RescueBrushDr2 	Close 	 	0.00	No
	OnTrigger	RescueGate 	Open 	 	0.00	No
	OnTrigger	RescueBrushRamp	Kill 	 	0.00	No
	OnTrigger	TriggerEscape 	Kill 	 	0.00	No
	OnTrigger	OutroRelay 	Trigger	 	0.00	No
=== 滚动致谢画面(Credits) ===
: Entity: logic_relay, Name: OutroRelay
: Description: Ends the map and starts up the credits screen.结束一张地图，并显示致谢画面(Credits)
::
	OnTrigger	InstructorFinale	GenerateGameEvent 	 	0.00	No
	OnTrigger	FinaleRadio 	FinaleEscapeFinished 	 	4.00	No
	OnTrigger	FadeOutro 	Fade 	 	5.00	No
	OnTrigger	OutroStats 	RollStatsCrawl 	 	6.00	No
	OnTrigger	FinaleRadio 	FinaleEscapeForceSurvivorPositions	 	7.00	No
	OnTrigger	EndCamera 	Enable 	 	8.00	No
::FinaleEscapeForceSurvivorPositions - 这个事件能够使 "info_survivor_position" 实体生效，并将玩家从战场移出。
: Entity: env_fade Name: FadeOutro
: Entity: env_outtro_stats Name: OutroStats
: Entity: info_game_event_proxy Name: InstructorFinale
: Entity: info_survivor_position Name: survivor_pos1
: Entity: info_survivor_position Name: survivor_pos2
: Entity: info_survivor_position Name: survivor_pos3
: Entity: info_survivor_position Name: survivor_pos4
: Entity: point_viewcontrol_multiplayer Name: EndCamera
== 注意事项 ==
=== 门 ===
:Type: prop_door_rotating
:Frame Dimensions: width: 56, height: 104
:World Model: models/props_doors/doormainmetal01.mdl
* 有关求生之路一代中门的创建与设置，见：Doors in Left4Dead (l4dmaps.net) 
Category:Left 4 Dead