求生之路2之任务(Mission)文件

From Valve Developer Community
< Zh(Redirected from L4D2 Mission Files/zh)
Jump to: navigation, search
English (en)中文 (zh)Translate (Translate)

本简体中文页面大康最后更新于2021年9月4日。原页面有大改动时请参阅原文。本页面部分内容由机器翻译。


求生之路2 求生之路2(en)任务文件是描述战役结构和内容的元数据脚本。游戏 UI、匹配和游戏服务器将使用此文件。

任务文件是存储在missions目录中的 .txt 文件,例如left4dead2\addons\deadline2\missions\mycampaign.txt。强烈建议为这个文件指定一个唯一名称,以避免与其他战役(的任务文件)发生冲突。

官方任务文件可以在求生之路2任务文件列表(en)死亡班车任务文件(en)中找到。

调试

要调试任务文件,需要使用-allowdebug命令行选项(en)启动游戏。运行mission_reload控制台命令将尝试加载所有任务文件,并将打印有关遇到的任何错误的信息。

基本的任务文件

这是最简单的任务文件,只包含基本的任务文件所需要的内容。

 "mission"
 {
 	"Name"		"myCampaign"	//给匹配系统使用。只允许使用字母 A-Z 和数字 0-9。
  	"Version"	"1"		//给匹配系统使用。只允许数字 0-9。
 
 	// 你的战役显示在主菜单的名称、描述和作者
 	"DisplayTitle"	"My Campaign!"
 	"Description"	"An epic tale of zombies getting shot in the head."
 	"Author"	"Me!"
 
 	// 在哪里下载战役。给那些想要加入正在游玩这个战役的游戏的人看。在创意工坊上提交不需要。
 	"Website"	"http://media.steampowered.com/apps/513/deadline2.html"
 
 	// 当您的战役结束时,地图结束背景图片显示在统计信息后面。前面必须有“vgui/”。
 	"OuttroImage"	"vgui/outroTitle_DeadCenter"
 
 	// 允许在战役中生成的近战武器列表。
 	// 可以使用此列表中的近战武器脚本名称添加自定义近战武器,例如这个参数末尾的“My_c​​ustom_melee.txt”。
 	"meleeweapons"	"baseball_bat;cricket_bat;crowbar;electric_guitar;fireaxe;frying_pan;golfclub;katana;knife;machete;pitchfork;shovel;tonfa;My_custom_melee" //这些都是官方的近战武器,外加一件。
 
 	// 应该使用哪一代生还者。1 代表一代生还者,2 代表二代生还者。
 	"survivor_set"		"2"	
 	
 	// 其他选项。0 = 关,1 = 开。 
 	"allow_cola"		"0"	// 允许生成死亡中心的可乐瓶。
 	"no_wpn_restore"	"0"	// 当玩家离开时,不要保留任何武器。(On player wipe, don't keep any weapons.)
 	"no_female_boomers"	"0"	// 禁用女性 Boomer 的生成。
 	"no_cs_weapons"		"0"	// 禁用 CS 武器的生成。从“临死一搏”更新开始,每个版本的游戏都可以使用 CS 武器。不确定此参数是否仍在使用中。
 	"allow_diesel"		"0"	// 允许幸存者背着《暴风骤雨》的柴油罐。
 
 	// 加载屏幕的海报设置。
 	"poster"
 	{
 		// 加载屏幕的 .VMT 文件必须在"materials/vgui/"目录下。
 		"posterImage"		        "LoadingScreen_MyCampaign" // 使用 1024x1024、2048x2048……的纹理分辨率的方形加载图片。对于 低于 16:9 的纵横比的加载图片
 		"posterImage_widescreen"	"LoadingScreen_MyCampaign_widescreen" // 使用 1024x2048、4096x2048……的纹​​理分辨率的矩形加载图片。对于 16:9 以上的宽高比的加载图片
 		// 如果没有可以使用的专用图片,方形加载屏幕将按 16:9 拉伸,而矩形纹理将按 4:3 压缩。
 		"fullscreen"			"1" // 将加载图片填充于整个屏幕,如果需要调整它的大小。 		
 		"l4d2_names"			"1" // 是否在加载屏幕上使用求生之路2的幸存者名称。“survivor_set”将决定使用哪一代的幸存者,同时决定显示哪一代的幸存者名称。		
 		"character_order"		"coach;mechanic;gambler;producer"  //生还者出现在加载屏幕左下角的顺序。
 		//"character_order"		"biker;manager;teengirl;namvet"  //同上,但此是求生之路1的生还者名称。		
 	}  
 	"modes"
 	{
 		"coop" //合作模式游戏。
 		{
 			"1"
 			{
 				"Map"		"my_map1" // BSP 文件名,填写时不需要扩展名
 				"DisplayName"	"Map 1!" //在菜单上的名称
 				"Image"		"maps/my_map1" //缩略图的 vmt 文件,必须保存在“materials\vgui\maps”中
 			}
 
 		//	此处列出的其他地图,请确保参数正确。
 		//	"2"
 		//	{
 		//		"Map"		 "my_map2"
 		//		"DisplayName"	 "Map 2!"
 		//		"Image"		 "maps/my_map2"
 		//	}			
 		}
 	}
 }

游戏模式

“模式”部分定义了您的地图支持的游戏模式。如果编译允许,您可以为多个游戏模式使用相同的 BSP 文件。参见多游戏模式支持(en)生还者游戏模式(en)清道夫地图(en)突变模式(en)了解更多信息。

所有地图都必须按战役顺序列出,但首先列出哪种游戏模式并不重要。

示例:

 "modes"
 {
 	  "coop"
 	  {
 		  "1"
 		  {
 			"Map"		"my_map1"
 			"DisplayName"	"Map 1!"
 			"Image"		"maps/my_map1" 
 		  }			
 		  "2"
 		  {
 			"Map"		"my_map2"
 			"DisplayName"	"Map 2!"
 			"Image"		"maps/my_map2" 
 		  }			
 	  }
 
 	  "versus"
 	  {
 		  "1"
 		  {
 			"Map"		"my_map1"
 			"DisplayName"	"Map 1!"
 			"Image"		"maps/my_map1" 
 			"VersusCompletionScore"	"800" //当到达安全室时,这张地图最多奖励 800 分。
  		  }			
 		  "2"
 		  {
 			"Map"		"my_map2"
 			"DisplayName"	"Map 2!"
 			"Image"		"maps/my_map2"  
 			"VersusCompletionScore"	"1000" //这张地图更长,奖励 1000 分。
  		  }			
 	  }
 
 	  "survival"
 	  {
 		  "1"
 		  {
 			// 使用 my_map2.bsp 文件,但是因为它是生存模式的第一张地图,所以它被列为数字 1。
 			"Map"		"my_map2"
 			"DisplayName"	"Parking Lot" //使用另一个名字,因为活动区域仅在停车场。
 			"Image"		"maps/my_map2" 
 		  }			
 	  }
 }

可用的游戏模式

这些都是可用的游戏模式。还显示了突变模式所基于的游戏模式以及描述。

脚本名称 正式名称 基于 描述
Coop 合作模式 - 合作玩法——人类对抗AI
Realism 写实模式 - 没有物体轮廓、友伤更严重、没有救援房间、Witch 一击必杀生还者(除了简单难度)、Witch 不可能一枪秒杀。还删除了正在说话的队友的玩家模型上的那个消息图标。
Survival 生还者模式 - 尽可能长时间地活着。
Versus 对抗模式 - 合作游戏——生还者人类对抗扮演特殊感染者的人类
Scavenge 清道夫模式 - 为发电机收集油桶。
Dash - - 幸存者必须从一面旗帜跑到另一面旗帜。每个 Waypoint 激活后都会生成一波尸潮和特殊感染者。Waypoints 可能需要一个或多个幸存者存在。
Holdout - - 幸存者必须在特定地点存活,直到救援到来。他们可以通过杀死特殊感染者来建造路障并赚取积分来购买补给品。在救援到达之前,一架直升机抵达中途会丢下物资。
Shootzones - - 只有普通感染者生成。当幸存者站在射击区时,只能在有坟墓和音乐播放的特定区域使用他们的武器开火。
Gunbrain GunBrain Coop -
Tankrun Tank Run Coop 默认的合作模式,但没有普通感染者、特殊感染者和Witch。只有Tank。
Rocketdude RocketDude Coop 没有幸存者机器人。幸存者有200滴血。只有止痛药和肾上腺素生成。幸存者会带着榴弹发射器和锋利的近战武器或马格南手枪生成。榴弹发射器有无限弹药,就像火箭发射器一样。榴弹发射器几乎不会对幸存者造成伤害。目标是尽可能长时间地停留在空中,类似于军团要塞2(en)中的“火箭跳跃”士兵。被击落的幸存者可以通过杀死特殊感染者使自己恢复到“黑白”模式。官方地图有隐藏的蘑菇,使用时可作为急救包。
L4d1 Left 4 Dead 1 Coop Coop 模仿原始的求生之路1。求生之路2中引入的所有内容,例如 Spas 散弹枪、M60 重机枪、Charger、Jockey 等被移除。
L4d1vs Left 4 Dead 1 Versus Versus 与“求生之路1”相同。字面上只包含求生之路1突变脚本,不添加任何内容。
L4d1survival Left 4 Dead 1 Survival Survival 与“L4D1”相同。字面上只包含 L4D1 突变脚本,不添加任何内容。
Mutation1 孤身一人 Coop 单人游戏。一个幸存者,没有普通感染者,只有特殊感染者,没有 Boomer,因为他们不能生成普通感染者(“教堂男孩”除外)。被特殊感染者封印会自动复活你,但你离死亡只有一击。更少的土制炸弹,更多的急救包。
Mutation2 猎头者 Coop 只有爆头和近战斩首才能杀死普通感染者。特殊感染者不受影响。
Mutation3 血流不止 Coop 没有急救包,只有止痛药、肾上腺素和除颤器。玩家从“临时健康值”(你从止痛药中得到的)开始,它不断减少。
Mutation4 绝境求生 Coop 一次最多可以生成 8 个特殊感染者,而不是默认的 4。特殊感染者生成的频率更高。
Mutation5 四剑客 Coop 任何地方都没有可用的武器,但玩家从武士刀开始。没有普通感染者生成,特殊感染者生成更频繁。
Mutation7 肢解大屠杀 Coop 这种突变会自动产生无限燃料的电锯。除了开始的手枪和电锯外,没有可用的武器。玩家可以决定保留他们的手枪,或者其他玩家掉落的手枪。
Mutation8 钢铁侠 Coop 与写实模式相同,除了:如果所有幸存者都死了,他们将被踢回大厅。没有可用的弹药堆。
Mutation9 侏儒卫队 Coop 玩家必须在整个战役中一直运送侏儒。侏儒是由突变模式产生的,制图者可以添加更多。被感染者追逐任何拿着侏儒的人。只有侏儒在安全室内时,地图才会进入下一关。
Mutation10 单人房间 Coop 第一个到达逃离载具的人类玩家是唯一可以离开的人。其他人都死了。自动加载结局地图。
Mutation11 没有救赎! Versus 对抗模式,但没有可用的医疗物品。如果玩家受到伤害,他们将无法恢复健康。除非地图有触发器或其他特殊的方法来恢复健康。
Mutation12 写实对抗 Versus 与写实模式相同,但在对战模式中除外。被感染者玩家仍然可以看到幸存者和彼此的轮廓。
Mutation13 限量发放 Scavenge 与清道夫模式相同,但一次只能提取一组汽油罐。
Mutation14 四分五裂 Coop 玩家从马格南手枪和 M60 步枪开始。没有其他武器生成可用。
Mutation15 生还者对抗 Survival 在一次游戏中进行生还者模式和对抗模式。
Mutation16 狩猎盛宴 Coop 所有特殊感染者都是 Hunter。最多六个 Hunter 可以生成。坦克和女巫仍然会生成,因为它们被视为终极感染者。普通感染者造成更多的伤害,这将是相当于在专家难度上随时倒地。
Mutation17 孤胆枪手 Coop 单人游戏,没有幸存者机器人。唯一可用的武器是马格南手枪和投掷物。唯一可用的感染者是 Boomer 和它们生成的尸潮,以及通常的Tank和Witch生成。
Mutation18 溢血抗争 Versus 类似于血流不止,除了是在对抗模式上。
Mutation19 Taaannnkk! Versus 所有特殊感染者都是坦克。急救包将被止痛药取代。 “Frustration meter”被禁用。 (Tank玩家在太长时间没有伤害幸存者时得到的超时)
Mutation20 疗伤小侏儒 Coop 没有可用的医疗物品。玩家从99的“临时健康值”开始。获得健康的唯一选择是持有侏儒,它通过突变模式自动生成。玩家可以永远持有侏儒,让队友死亡。
Community1 特感速递 Coop 与“绝境求生”相同,除了特殊感染者没有生成等待计时器并且普通感染者不生成。
Community2 感染季节 Coop 普通感染者仅在被 Boomer 召唤或在恐慌事件期间产生。坦克和女巫仅在脚本编写或通过实体 I/O 强制时生成。特殊感染者的生成等待计时器已禁用。一次最多可以生成十个 Spitter 和 Boomer。 Boomers 和 Spitter 的速度更快,并且它们的攻击没有冷却时间。
Community3 乘骑派对 Versus 所有特殊感染者都是骑师。骑师增加了健康、伤害和速度。
Community4 梦魇 Survival 普通感染者和特殊感染者更强。幸存者队友或物品上没有发光轮廓。雾更浓了。
Community5 死亡之门 Coop 幸存者被制服导致立即死亡。急救包不会生成。
Community6 Confogl Versus 对抗模式,但不会生成急救包。玩家从携带止痛药开始。唯一可用的武器是泵式霰弹枪、冲锋枪和猎枪。

突变模式将自动继承突变所基于的任何游戏模式的地图设置。除非另有说明
示例:

 "Versus"
 {
 	"1"
 	{
 		"Map"		"my_map1"
 		"DisplayName"	"Map 1!"
 		"Image"		"maps/my_map1" 
 		"VersusCompletionScore"	"800"
 		"versus_boss_spawning"
 		{
 			"tank_chance"		"1"
 			"witch_chance"		"1"
 		}
 	}			
 }
 "Mutation18" // 溢血抗争。与常规对抗模式相同,但坦克和女巫的生成几率减半,使幸存者更容易。
 {
 	"1"
 	{
 		"Map"		"my_map1"
 		"DisplayName"	"Map 1!"
 		"Image"		"maps/my_map1" 
 		"VersusCompletionScore"	"800"
 		"versus_boss_spawning"
 		{
 			"tank_chance"		"0.5"
 			"witch_chance"		"0.5"
 		}
 	}			
 }

可选的每个地图设置

以下设置可以添加到任务文件中的任何地图列表中,以使设置仅影响该特定地图。

可返程的地图

某些地图,例如在《暴风骤雨》中可以“返程”。这使您可以将所有现有的物品生成点保留在相同的位置,但您使用过的所有物品现在都在返回的路上消失了。
这仅在两个地图中的项目位于完全相同的位置且方向相同时才有效。这可以通过使用相同的 vmf 作为两个地图的基础来实现,但安全室在“回来的路上”被颠倒,以及可选的视觉变化。

Note.png注意:在“回来的路上”添加新的武器和物品生成点必须通过使用 point_template(en) 强制生成武器来完成。除非您直接加载到该地图中,否则导演会意识到这些添加的项目以前不存在并且不会生成它们。在这种情况下,没有要读取的“revisit_source”数据。

示例:

 "1"
 {
   "Map"		"my_map1" 
   "DisplayName"	"Map 1!"
   "Image"		"maps/my_map1"
 	
   "revisitable" "1" // 跟踪此地图上所有使用过的物品。我们会回到这个地图。
 }
 
 "2"
 {
   "Map"		"my_map2" 
   "DisplayName"	"Map 2!"
   "Image"		"maps/my_map2"
 
   "revisit_source" "my_map1" // 我们回来了,但要走另一条路。此处指定地图上的所有物品将不再可用。
 }
待完善: 找出是否可以链接返程。就像在一张“中心”地图上有大量补给品一样,随着我们的使用,补给品开始减少。

导演日志

导演还有一个不错的“日志”功能。它可用于打开 Map1 上的灯,该灯在返回的途中仍会打开。或者记住一个 logic_case(en) 实体随机选择了什么,所以在回来的路上会选择同样的东西。
它也可以用作“此操作有后果”的噱头,在一张地图上按下一个按钮会在以后的地图上发生一些事情,因为你按下了那个按钮。

要设置日志,请将 logic_auto(en) 添加到您的地图并使用以下输出:

  My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnMultiNewRound Director CreateNewJournal Desired.Journal.Name(所需的日志名称) 0.00 No
Io11.png OnMultiNewMap Director CreateNewJournal Desired.Journal.Name 0.00 No


任何需要记住其输出的实体,例如名为Relay01logic_relay需要将其输出设置为:

  My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger Light01 TurnOn 0.00 No
Io11.png OnTrigger Director WriteToJournal Relay01:trigger 0.00 No

Relay01 打开一盏灯,然后告诉导演写入日志以触发 Relay01。
您可以使用Light01:TurnOn代替Relay01:trigger。但是,如果 relay 触发很多事情,最好触发 relay。


在回来的路上执行日志,让导演触发他应该触发的一切,可以使用ExecuteJournal输入引用你想要执行的特定日志来完成。

  My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnMultiNewRound Director ExecuteJournal Desired.Journal.Name 0.00 No
Io11.png OnMultiNewMap Director ExecuteJournal Desired.Journal.Name 0.00 No
Icon-Bug.png错误:在测试过程中,导演按下的按钮不会打开声音,而手动按下按钮会打开声音。  [todo tested in?]
Note.png注意:如果需要,每个战役可以使用多个日志


不幸的是,执行日志似乎会删除它,因此您无法在以后的地图上再次执行它。
示例场景:C4M1 开头的按钮打开灯,其终点安全室的按钮打开灯。这两个操作都记录在日志“C4M1.To.C4M2”中。
在地图 C4M2 上执行日志“C4M1.To.C4M2”会打开安全室灯并删除该日志。所以当你最终到达第一个灯所在的 C4M5 时,它不会被“C4M1.To.C4M2”日志打开,因为它不再存在。

解决此问题的一种方法是创建一个新日志,然后执行之前的日志。这样导演所做的输出将被记录到新的日志中。但这也要求所有触发其输出的实体出现在所有地图上。
修复:在地图外制作一个天空盒立方体并将所有需要记住其输出的按钮或触发器粘贴到其中。然后,使用以下输出创建 logic_auto 实体:

  My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnMultiNewRound Director CreateNewJournal "C4M2.To.C4M3" 0.00 No
Io11.png OnMultiNewMap Director CreateNewJournal "C4M2.To.C4M3" 0.00 No
Io11.png OnMultiNewRound Director ExecuteJournal "C4M1.To.C4M2" 0.50 No
Io11.png OnMultiNewMap Director ExecuteJournal "C4M1.To.C4M2" 0.50 No

这有效地创建了日志“C4M2.To.C4M3”并在半秒后执行“C4M1.To.C4M2”。当“C4M1.To.C4M2”被执行时,它按下具有WriteToJournal输出的按钮来写入“C4M2.To.C4M3”。

更换特殊感染者模型

我们有能力用相同的不同模型交换地图上的所有特殊感染者。官方战役使用它来交换 L4D1 地图上的 Boomer、Hunter、Smoker 和 Tank 与其 L4D1 模型。
所需的参数如下:
Worldmodel

Viewmodel

Note.png注意:除了作为独立模型之外,所有自定义模型都必须像适当的替换模型一样发挥作用。


示例

"牺牲”用这个版本替换了所有坦克(地图上只有一个):

 "TankVariant"		"models/infected/hulk_dlc3.mdl"
 "TankArmsVariant"	"models/v_models/weapons/v_claw_hulk_dlc3.mdl"

用可用的 L4D1 对应物替换所有特殊感染者:

 "TankVariant" 		"models/infected/hulk_l4d1.mdl"         
 "HunterVariant" 	"models/infected/hunter_l4d1.mdl"
 "SmokerVariant" 	"models/infected/smoker_l4d1.mdl"
 "BoomerVariant"	"models/infected/boomer_l4d1.mdl"
 "TankArmsVariant"	"models/v_models/weapons/v_claw_hulk_L4D1.mdl"     
 "HunterArmsVariant"	"models/v_models/weapons/v_claw_hunter_l4d1.mdl"
 "SmokerArmsVariant"	"models/v_models/weapons/v_claw_smoker_l4d1.mdl"
 "BoomerArmsVariant"	"models/v_models/weapons/v_claw_boomer_l4d1.mdl"

“短暂时刻”用穿着新娘礼服的女巫代替:

 "WitchVariant"	"models/infected/witch_bride.mdl"

也可以制作完全定制的模型:

 "SpitterVariant"      "models/infected/Custom_spitter.mdl"
 "SpitterArmsVariant"  "models/v_models/weapons/Custom_spitter_viewmodel.mdl"

使用脚本(en)可以将模型替换为地图上的单个生成点。但是,对于作为感染者进行游戏的人来说,视图模型的手不会正确匹配。
本指南解释了这是如何实现的。

对抗地图设置

对抗地图允许进行可选修改以改变终极感染者的产生。

 "versus_boss_spawning"
 {

"spawn_pos_min" "0.10" //

待完善: 正确记录此操作的效果

"spawn_pos_max" "0.90" //

待完善: 正确记录此操作的效果

"allow_boss_mix" "1" //

待完善: 正确记录此操作的效果

"witch_and_tank" "1"//

待完善: 正确记录此操作的效果
	"tank_chance"		"1.0" // Tank 产生几率乘数。可以设置为 0 以停止坦克生成
 	"witch_chance"		"1.0" // Witch 生成几率乘数。可以设置为 0 以阻止女巫生成
 }

死亡班车任务文件

这些是死亡班车死亡班车2的任务文件,由 Valve 创建的示例战役。完整的插件和源文件可以从 Steam 托管的网站上下载:

Note.png注意:这些有些过时,但保留并合并到此页面上作为遗产。以上信息是最新的,更容易消化。
Note.png注意:这些页面声称双击安装插件。这不起作用,大多数人会打开 GCFScape(en)Crowbar(en)。如果将“Addoninstaller”分配给 VPK 文件,它“应该”工作,但 addoninstaller 通常会破坏插件并导致它们根本无法工作。

死亡班车

这是包含在样本死亡班车战役中的任务元数据文件。随意将其用作元数据模板,同时用于您自己的自定义战役附加组件(en)

记住网站键值中的 URL 应该指向你的战役的主网站,并在那里有一个下载选项!没有你的战役的玩家将被引导到这个网站来获取它。

 // Mission files describe the metadata needed by campaign-specific add-ons so they can be 
 // integrated into Left4Dead. The data in this file is used by the game UI, matchmaking and server.
 // Although you may provide multiple Campaigns in one add-on by putting more than one .TXT file 
 // in the missions folder, it's generally a good idea to stick to one per add-on.
 //
 // HOW TO DEBUG MISSION FILES:
 //	In the console set "developer 2"
 //	Then type "mission_reload"
 // This will make the game reload all the mission files and print out every chapter for every mode it
 // finds.  It's very useful to ensure that your mission file is being correctly read.
 
 "mission"
 {
 	// Use a short name, since it is used as a tag on the servers for matching
 	// your campaign when looking for a dedicated server.  Generally it should
 	// be something unique.  One suggestion to is use your initials and a short
 	// abbreviated name for your campaign.
 	"Name"		"DeadLine"
 
 	// The version number is used when finding campaigns on dedicated servers
 	// and in matchmaking. If you try to connect to someone in matchmaking
 	// who has a newer version, you will be directed to download the new
 	// version.  You must increment this to the next integer (whole numbers)every
         // time you release an update.
 	"Version"       "3"
 
 	// Author is displayed in the UI when people see others playing your
 	// campaign.
 	"Author"	"Valve"
 
 	// Website is extremely important as people will automatically be sent
 	// to this URL if they try to join a friend running your campaign.  This
 	// should be the home page for your campaign and it should provide a
 	// description, a link to download it, and installation instructions.
 	"Website"	"http://media.steampowered.com/apps/513/deadline.html"
 
 	// This name is used when refering to the campaign in the UI.
 	"DisplayTitle"	"Dead Line"
 	"Description"  	"Catch the last subway... out of hell."
 
 	// Vmt shown behind the end credits when your campaign completes.
         // Note: This item needs to have "vgui\" at the front. It is assumed
 	// for the poster and the map thumbnails.
  	"OuttroImage"	"vgui\OutroTitle_Deadline"
 
 	// Loading poster data
 	//
 	// Note that "posterTitle" and "posterTagline" are often blank as
 	// the poster usually includes these in the poster image itself.
 	// If you do not provide a poster, a generic default will be used.
 	"poster"
 	{
 		"posterImage"		"LoadingScreen_DeadLine"
 
 		"posterTitle"		""
 		"posterTitle_y"		"360"
 
 		"posterTagline"		""
 		"posterTagline_y"	"372"
 
 		// Adjust these to align the survivor names on your poster.
 		// 0,0 is center of the poster.
 		// Adjusting x value moves the names horizontally.
 		// Adjusting y value moves the names vertically.
 		// Try to space them in a staggered arrangement so that long names do not overlap.
 		"bill_player_name_x"	"118"
 		"bill_player_name_y"	"-195"
 
 		"louis_player_name_x"	"-53"
 		"louis_player_name_y"	"-205"
 
 		"zoey_player_name_x"	"-124"
 		"zoey_player_name_y"	"-210"
 
 		"francis_player_name_x"	"31"
 		"francis_player_name_y"	"-200"
 	}
 
 	// The modes section lists each of your campaign maps and each mode
 	// they support.  Depending on how you set up your campaign maps,
 	// you can reuse the same bsp for different modes as is the case with 
         // coop and versus in this example. This requires setting up entities
         // that show up or operate differently for different modes.
         //
 	// The following modes are supported: "coop", "versus", "survival"
 	//
 	// Number each map section starting with "1"
 	//
 	// "Map" is the name of the bsp of the starting map. (do not include
         // an extension)
 	// "DisplayName" is the name to use for the chapter of the map.
 	// "Image" is the image used for the chapter in the lobby and
 	// settings.
 
 	"modes"
 	{
 		"coop"
 		{
 			"1"
 			{
 				"Map" "l4d_deadline01"
 				"DisplayName" "Deadline 1"
 				"Image" "maps/l4d_deadline"
 			}
 
 			"2"
 			{
 				"Map" "l4d_deadline02"
 				"DisplayName" "Deadline 2"
 				"Image" "maps/l4d_deadline"
 			}
 		}
 
 		"versus"
 		{
 			"1"
 			{
 				"Map" "l4d_deadline02_vs"
 				"DisplayName" "Deadline Versus"
 				"Image" "maps/l4d_deadline"
 			}
 		}	
 	
 		"survival"
 		{
 			"1"		
 			{
 				"Map" "l4d_deadline02"
 				"DisplayName" "Dead Line Survival"
 				"Image" "maps/l4d_deadline"
 			}
 		}	
 	}
 
 }

死亡班车2

请注意任务“名称”有没有任何特殊字符或空格。

 // Mission files describe the metadata needed by campaign-specific add-ons so they can be
 // integrated into Left4Dead. The data in this file is used by the game UI, matchmaking and server.
 // Although you may provide multiple Campaigns in one add-on by putting more than one .TXT file 
 // in the missions folder, it's generally a good idea to stick to one per add-on.
 //
 // HOW TO DEBUG MISSION FILES:
 //	In the console set "developer 2"
 //	Then type "mission_reload"
 // This will make the game reload all the mission files and print out every chapter for every mode it
 // finds.  It's very useful to ensure that your mission file is being correctly read.
 
 "mission"
 {
 	// Use a short name, since it is used as a tag on the servers for matching
 	// your campaign when looking for a dedicated server.  Generally it should
 	// be something unique.  One suggestion to is use your initials and a short
 	// abbreviated name for your campaign. Avoid spaces and special characters.
 	// Do not change the name when you create a revision, as the matchmaking
         // system will consider it a different campaign. Instead, use "Version" and 
         // "DisplayTitle" below to indicate revisions.
 	"Name"		"DeadLine2"
 
 	// The version number is used when finding campaigns on dedicated servers
 	// and in matchmaking. If you try to connect to someone in matchmaking
 	// who has a newer version, you will be directed to download the new
 	// version.  You must increment this to the next integer (whole numbers)every
         // time you release an update. (I.E. 1, 2, 3, 4, etc.)
 	"Version"       "1"
 
 	// Author is displayed in the UI when people see others playing your
 	// campaign.
 	"Author"	"Valve"
 
 	// Website is extremely important as people will automatically be sent
 	// to this URL if they try to join a friend running your campaign.  This
 	// should be the home page for your campaign and it should provide a
 	// description, a link to download it, and installation instructions.
 	"Website"	"http://media.steampowered.com/apps/513/deadline2.html"
 
 	// This name is used when referring to the campaign in the UI. 
 	"DisplayTitle"	"Dead Line (2.0)"
 	"Description"  	"Catch the last subway... out of hell... Again!"
 
 	// Vmt shown behind the end credits when your campaign completes.
         // Note: This item needs to have "vgui\" at the front. It is assumed
 	// for the poster and the map thumbnails.
  	"OuttroImage"	"vgui\OutroTitle_Deadline2"
 
 	// Loading poster data
 	//
 	// Note that "posterTitle" and "posterTagline" are often blank as
 	// the poster usually includes these in the poster image itself.
 	// If you do not provide a poster, a generic default will be used.
 	"poster"
 	{
 		"posterImage"		"LoadingScreen_DeadLine2"
                 //Note L4D2 does not position player names over the poster.
 
 	}
 
 	// The modes section lists each of your campaign maps and each mode
 	// they support.  Depending on how you set up your campaign maps,
 	// you can reuse the same bsp for different modes as is the case with 
         // coop and versus in this example. This requires setting up entities
         // that show up or operate differently for different modes.
         //
 	// The following modes are supported: "coop", "versus", "survival"
 	//
 	// Number each map section starting with "1"
 	//
 	// "Map" is the name of the bsp of the starting map. (do not include
         // an extension)
 	// "DisplayName" is the name to use for the chapter of the map.
 	// "Image" is the image used for the chapter in the lobby and
 	// settings.
 
 	"modes"
 	{
 		"coop"
 		{
 			"1"
 			{
 				"Map" "l4d_deadline01"
 				"DisplayName" "Deadline 1"
 				"Image" "maps/l4d_deadline2"
 			}
 
 			"2"
 			{
 				"Map" "l4d_deadline02"
 				"DisplayName" "Deadline 2"
 				"Image" "maps/l4d_deadline2"
 			}
 		}
 
 		"versus"
 		{
 			"1"
 			{
 				"Map" "l4d_deadline01"
 				"DisplayName" "Deadline 1"
 				"Image" "maps/l4d_deadline2"
 			}
 
 			"2"
 			{
 				"Map" "l4d_deadline02"
 				"DisplayName" "Deadline 2"
 				"Image" "maps/l4d_deadline2"
 			}
 		}	
 	
 		"survival"
 		{
 			"1"		
 			{
 				"Map" "l4d_deadline02"
 				"DisplayName" "Dead Line Survival"
 				"Image" "maps/l4d_deadline2"
 			}
 		}	
 		"scavenge"
 		{
 			"1"
 			{
 				"Map" "l4d_deadline02"
 				"DisplayName" "Dead Line Scavenge"
 				"Image" "maps/l4d_deadline2"
 			}
 		}	
 	}
 
 }

另请参阅