nyuuzyou/wikis huggingface dataset:
Zh/Creating a Material

本简体中文页面由 Gloria 汉化。
本篇教程将一步步教你如何创建全新的，包括材质的创建。
== 创建纹理 ==
只要满足以下条件，任何图片文件都能作为纹理使用：它的尺寸（高度和宽度）必须是2的乘方，2、4、8、16、32、64、128、256、512、1024、2048...以此类推。如果不清楚该用哪一种尺寸，可以参考现有的同类型纹理。高分辨图片会降低性能，但在近距离下更清晰。
不同类型的物体有不同标准的分辨率（例如人物模型的纹理分辨率非常高）。如果感到困惑，可以使用从 source materials.gcf 中提取纹理，看看Valve是怎么做的。
=== 转换纹理 ===
为了给起源引擎使用，纹理必须先转换为 格式。Valve提供的工具是。它是个工具，使用起来相当不便，因此推荐使用第三方工具：它提供了图形用户界面，能让你无需重新编译就能修改纹理属性，支持大多数图片格式，也不需要每个纹理都创建一遍脚本文件。当然有些情况下还是不得不用回VTEX工具...但也仅限于那部分情况。此外，在使用带透明通道的纹理时，它会建议你先转为TIFF格式保存，因为PNG的透明度容易导致问题。
(部分图片软件如Photoshop、GIMP和Paint.NET在安装了VTF插件后，能直接保存为VTF格式文件。但本篇教程不做讲解，因为并非每个人都使用上述工具。)
如何将自定义图片导入VTFEdit：菜单 File > Import 或者快捷键 ，选择图片后将会弹出“导入”对话框：
==== 通用设置 ====
设置是最关键的。以下是其中三个：
; Normal format/普通模式
: 不透明纹理使用的色彩/压缩格式。
; Alpha format/透明通道模式
: 带透明通道的纹理使用的色彩/压缩格式。
; Texture type/纹理类型
: 在导入了多张图片时使用，具体类型取决于它是(animation frames(动画帧)/cubemap faces(立方体贴图表面)/depth slices(深度切片))。
如果你制作的是普通、简单的纹理，上面的选项无需修改。但如果制作的是高清的细节图片，则需要选择无损的压缩模式.
==== Mipmap设置 ====
是当纹理距离镜头相当远时，自动切换成的低清版纹理。它的使用减少的不必要的图片缩放，增加了性能与图片显示质量。需要Mipmap才能正常使用。
下列图片展示了VTFEdit中各类不同的mipmap过滤器：
File:Vtf sharpen filters.jpg|Sharpen filters(锐化过滤器)
File:Vtf mipmap filters1.jpg|Mip filters #1
File:Vtf mipmap filters2.jpg|Mip filters #2
File:Vtf mipmap filters3.jpg|Mip filters #3
File:Vtf mipmap filters4.jpg|Mip filters #4
==== 法线贴图设置 ====
这些（打错标签的）设置能够让你从输入的图片中生成一张。你可能希望使用图片编辑器制作一张更好的法线贴图，但提供的自动选项能够快速生成法线贴图，可以在它的基础上进行修改。
=== 配置与保存 ===
点击OK按钮后，导入的图片转换完成（文件过大时会有较大的延迟），并生成一个VTF文件。接下来要做的只剩下在左侧的选项列表中对纹理进行配置了。Valve Texture Format#Image_flags中有每个选项的说明。
最后，在你的游戏本体或MOD中的 \materials 文件夹下保存纹理文件。
== 创建材质 ==
起源引擎无法直接使用纹理文件。所有的纹理都需要通过 文件访问。
材质是可以用任何文本编辑器处理的脚本文件。但推荐使用Notepad++，并安装社区制作的插件。 要让材质能够被检测到，它必须被保存在游戏本体或MOD中的 \materials 文件夹下，后缀名是.vmt
=== 语法 ===
材质文件的格式如下：
 <>
 {
 	<参数> <取值>
 	...
 }
 LightmappedGeneric
 {
 	$basetexture coast\shingle_01
 	$surfaceprop gravel
 }
有很多可以选择，但大多数材质使用的是 (用于) 或是 (用于)。第三常用的渲染器是 ，用于 材质或用于少见的。
===参数===
:在中，查看完整的渲染器参数列表文档
选择了渲染器后，下一步需要配置参数（也叫命令）。材质文件中有数百个可选的参数，因此本文只介绍其中常见的几个。它们在绝大多数的渲染器中是通用的。如下：
*
*
*
*
*
*
*
==另见==
* 材质(Material)
* 材质编辑器
* 创建带反光的材质
*
Zh/Creating a Portal 2 Coop Map

==基本步骤==
以下是创建双人合作地图的基本步骤：
* 创建一个 。 将其 VMF 文件设置为合作模式初始滴管, 例如 instances/coop/coop_spawn_room.vmf 。 这些 VMF 文件已包含一个 ，因此不用再创建一个 。
* 创建另一个 ， 用这一个生成拆解间, 例如 instances/coop/coop_endlevel_room.vmf 
* 在这些房间之间构建你的合作地图（当然，你可以随时移动它们。）但嵌入的 VMF 文件有一个明显的出口，这应该通向你的地图。
你可能需要封闭房间以防止泄漏。
* 请确保使用前缀mp_coop_来保存地图。
就是这样！请参阅 单独测试 Portal 2 Co-Op 地图 了解如何在没有合作伙伴的情况下测试地图。
=没有实例生成的合作关卡=
=== 第 1 步：必要实体 ===
要创建双人合作地图，你需要：
* 一个 logic_auto
* 两个 logic_relay
*一个logic_coop_manager
* 两个 logic_script
* 两个 prop_indicator_panel
* 一个 prop_button
* 两个 info_coop_spawn (将它们放在你希望玩家开始的位置)
=== 第 2 步： 名称 ===
* 命名你的第一个 logic_relay 为 "relay_return_hub"
* 命名你的第二个 logic_relay 为 "@relay_has_new_taunt"
* 命名你的 logic_coop_manager 为 "coopmanage_return_hub"
* 命名你的第一个 logic_script 为 "script_return_hub"
* 命名你的第二个 logic_script 为 "@script_mp_coop_lobby"
* 命名你的第一个 prop_indicator_panel 为 "panel_level_return_orange"
* 命名你的第二个 prop_indicator_panel 为 "panel_level_return_blue"
* 命名你的两个 info_coop_spawn 为"spawns_1"
=== 第 3 步：属性 ===
1. 转到 script_return_hub 的属性并执行以下操作
::
Property Name 	Value
Name 	script_return_hub
Entity Scripts	debug_scripts/mp_coop_transition_list.nut
2. 转到 @script_mp_coop_lobby 的属性并执行以下操作
::
Property Name 	Value
Name 	@script_mp_coop_lobby
Entity Scripts	debug_scripts/mp_coop_lobby.nut
3. 继续去到 panel_level_return_orange 的属性
::
Property Name 	Value
Name 	panel_level_return_orange
Time Duration 	3
Is a timer? 	Yes
Indicator lights	tex_level_return_orange
4. 到 spawns_1 的属性：
::
Property Name	Value
Name 	spawns_1
Team 	<red or blue, depending on wich player>
5. 赋予 prop_button 以下属性：
::
Property Name 	Value
Delay Before Reset	3
=== 第 4 步：输出/输入 === 
现在我们需要将所有这些实体连接在一起。
;logic_auto 输出
::
	My Output 	Target Entity 	Target Input 	Parameter 	Delay	Only Once
	OnMapSpawn	@script_mp_coop_lobby	RunScriptCode 	CheckForNewTaunts() 	2.00 	No
	OnMapSpawn	script_return_hub 	RunScriptCode 	MapPostLoaded() 	2.00 	Yes
	OnMapSpawn	script_return_hub 	RunScriptCode 	SetMapBranchAndLevel()	0.25 	Yes
	OnMapSpawn	spawns_1 	SetAsActiveSpawn	<none> 	0.00 	No
;logic_coop_manager 输出
::
	My Output 	Target Entity 	Target Input	Parameter	Delay	Only Once
	OnChangeToAllTrue	relay_return_hub 	Trigger 	<none> 	0.00 	No
	OnChangeToAllTrue	panel_level_return_orange	Check 	<none> 	0.00 	No
	OnChangeToAllTrue	panel_level_return_blue 	Check 	<none> 	0.00 	No
*relay_return_hub 输出
::
	My Output	Target Entity 	Target Input 	Parameter 	Delay	Only Once
	OnTrigger	script_return_hub	RunScriptCode	ReturnToHubFromLevel()	1.00 	Yes
*@relay_has_new_taunt 输出
::
	My Output	Target Entity 	Target Input	Parameter	Delay	Only Once
	OnTrigger	brush_new_taunts	Enable 	<none> 	0.00 	Yes
*prop_button 输出
::
	My Output 	Target Entity 	Target Input 	Parameter	Delay	Only Once
	OnButtonReset	panel_level_return_orange	Stop 	<none> 	0.00 	No
	OnButtonReset	coopmanage_return_hub 	SetStateBFalse	<none> 	0.00 	No
	OnPressed 	panel_level_return_orange	Start 	<none> 	0.00 	No
	OnPressed 	coopmanage_return_hub 	SetStateBTrue 	<none> 	0.00 	No
珍NewBee！你现在可以使用有效的合作脚本创建合作地图！
Zh/Creating a Room

== 封闭的房间 ==
所有正式的地图都必须完全由房间构成。就算是户外地图也要用进行密封。为了正确的编译地图，必须小心地将这些房间与盒子从黑色的外层空间中隔离出来。如有任何的漏洞，地图就不会被正确的编译。编译的数据控制着关卡中的对象是否可见，这对提高FPS和照明正确性很重要。
最简单的房间由6块固体构成：地板、天花板和四面墙完全将内部与外层空间隔离开。
为了简单快速的制作房间，你需要先了解一些简单的固体操作技术。：
== 移动固体 ==
在一个二维视图中使用 并把鼠标移动到固体上，避免与操作柄接触。此时指针应该变成了四方向箭头的形状，指示现在可以移动对象。
在任意二维视图中点击并拖拽固体。然后松开，固体就会地动到该点。
== 克隆固体 ==
为了不必每次都用创建新固体，你可以按住Shift键并移动固体制作已知固体的复制品。原先的固体还在原地而复制品会出现在你用Shift拖拽到的位置。
等你学会这个技术后，就不一定要再用创建基础固体，你只需在你想要的时候克隆已知的固体来创建一个新的。
== 删除固体 ==
要删除一块固体，先用选择它然后按下你键盘上的删除键（Delete）。
== 创建房间 ==
在下一个段落，我们将学习房间的建造。为了容纳此教程中将会出现的所有内容，房间一定要够大才行。 总面积大约有 1024(长) x 1024(宽) x 512(高)单位就可以了。
# 利用 做一个固体当作地板(大约 1024长 x 1024宽 x 64高).
# 使用 , Shift+拖拽复制地板的固体， 然后把它向上移动，这样就创建了与地板大小相等的天花板。
# 复制其中一块固体并调整它的大小让地板与天花板连接起来。你可以让墙的固体在地板与天花板的外面或是在他们之间（支撑）。（参考相关注释） 
# 复制这面墙的固体并将其拖抓到另一端。
# 再复制并缩放一块固体创建第三面墙。
# 复制这块固体到另一端创建最后一面墙。
# 检查是否有缝隙。保证房间是完全密封的。如果你设计房间时使用了不见得的比例(比如64单位)，那么任何缝隙都会相当明显。移动鼠标到三维视图窗口并按下Z键进入鼠标查看模式仔细检查你的房间。
: 另外，你可以创建一块大小与你的房间相等的固体，然后右击它选择挖空选项。虽然比较快，但是这种方法比较难得到你想要的房间大小。
Zh/Creating a portal/object fizzler

这堵粒子墙会摧毁任何与它接触的物体，并关闭玩家的传送门。
===第一步===
由于分解力场的庞大尺寸，你需要创建一个适当大小的门框来建造它。
使用portal_cleanser和cleanser_edge_1粒子效果。cleanser_edge_1 最适合用于宽度超过192单位的力场。
===第二步===
首先需要创建的是将充当分解网架的门口，本教程将使用模型。
可用的模型是：
* models/props/portal_cleanser_1.mdl
为了用作基础，我们需要创建一个大小为128x128的。这是力场的基础尺寸。此外，trigger笔刷因该为2单位厚.
命名是次要的。除非你愿意，你就可以知道你有多少分解力场。
修改以下Flag
===第三步===
创建2个实体并设置其模型为models/props/portal_cleanser_1.mdl，将其中一个旋转 180 度。
然后将目前为止的所有东西直接排成一条直线，或者你可以根据自己的喜好进行更改。
===第四步===
创建一个实体并输入以下属性：
Property Name 	Value
Particle System Name	portal_cleanser
Start Active 	Yes
将其精确地对准笔刷的中心。
===重生被溶解方块===
如果你有一个方块滴管，并且你想在玩家用分解力场摧毁一个方块时生成一个新方块，你可以使用输出 OnDissolveBox，但前提是方块的prop_physics被命名为盒子。
如果地图中有多个滴管和一个分解力场，并且你希望方块滴管提供一个代替品，请按照以下说明操作：
为trigger_portal_cleanser创建以下输出：
	OnDissolve	!activator	FireUser1	<none>	0.00	No
为方块输入以下输出：
	OnUser1	logic_drop_box	Trigger	<none>	0.00	No
你必须更改输出中的logic_drop_box的名称，具体取决于新的方块来自哪个滴管。
Category:Portal
Category:Tutorials
Zh/Creating multiple buttons for one door

本教程将详细介绍仅在激活两个（或更多）按钮时才能打开门的基础知识。
==门，按钮和触发器==
按照教程和创建门和两个按钮。
==设置开门按钮==
创建一个实体，然后将其放在门附近。设置以下属性：
::
Property Name 	Value
Name 	door_counter
Maximum Legal Value	2
对于Maximum Legal Value key value,输入任意一个你想要的数字。
现在转到“输出”并设置以下输出：
::
	My Output	Target Entity	Target Input	Parameter	Delay	Only Once
	OnHitMax 	door_left 	Open 	<none> 	0.00 	No
	OnHitMax 	door_right 	Open 	<none> 	0.00 	No
现在转到每个画笔实体并设置以下输出：
::
	My Output	Target Entity	Target Input	Parameter	Delay	Only Once
	OnOpen 	door_counter 	Add 	1 	0.00 	No
	OnClose 	door_counter 	Subtract 	1 	0.00 	No
	OnClose 	door_left 	Close 	<none> 	0.00 	No
	OnClose 	door_right 	Close 	<none> 	0.00 	No
==参考==
* 传送门关卡制作
Category:Portal
Category:Tutorials
Zh/Crowbar

__NOTOC__
:有关 武器实体，请参阅 weapon_crowbar 。
最初创建为 MDLDecompiler 的替代品，Crowbar 现在是一套模组工具。
其 Steam 小组 是所有与 Crowbar 相关信息的中心，提供下载链接、源代码和指南。
 由 ZeqMacaw 开发。
==用途==
* 单独或从整个文件夹编译和反编译模型。
* 查看、打包和解包 VPK、GMA 和 FPX 包，单独或从整个文件夹。
* 查看 MDL 模型文件的信息，例如 MDL 版本、使用的 ANI 和 PHY 文件，以及使用的材质及其所在文件夹。
* 设置游戏，以便轻松切换 GoldSource 或 Source 引擎游戏的编译或打包。
* 从任何游戏下载创意工坊附加组件（尽管某些游戏限制为拥有该游戏才能使用此功能）。
* 作为游戏上传工具的替代方案，将附加组件发布到游戏的 Steam 创意工坊。
==支持的游戏列表==
==参见==
* Studiocompiler
* 编译模型
* Source 模型皮肤编辑器
==外部链接==
* Steam 小组
* 更新日志和源代码
Zh/Cry of Fear

__NOTOC__
	 
	 
 是一款心理单人合作恐怖游戏,背景设定在一个充满可怕生物和噩梦般的妄想的荒芜小镇。由Team Psykskallar开发，他们之前因而闻名。 游戏运行在修改版的引擎上，提供了更好的图形、新的特效（FX）等, 使图形更接近引擎,并使用了首次在中引入的详细纹理。尽管如此，游戏仍然基于SteamPipe之前版本的金源引擎，具体来说是基于分支。
== 参考 ==
# [[Talk:Cry of Fear#PARANOIA -> Cry of Fear|Paranoia Influence on Cry of Fear.]]
Zh/Cubemaps

cubemap是表示区域中的三维呈现的纹理。使用 实体作为采样点来生成这些纹理，然后将其自动嵌入到 中。构建Cubemaps之后，将反应在使用参数(以env_cubemap作为值)的表面上。
== 构建cubemap ==
构建cubemaps是生成其纹理并将其用作反射的过程。由于技术原因，此过程不是自动的，而是需要开发者来执行此操作;在此之前，现有的 env_cubemaps 将保持未启用的状态,并且由于不存在cubemap，地图将根据游戏将“缺失”纹理显示为反射。
=== 在搭建前 ===
=== LDR ===
在以 LDR (低动态范围)模式编译的地图上构建cubemap将仅为该模式生成纹理，而不管游戏的 HDR (高动态范围)视频设置如何。要构建立方体贴图，请将以下命令提交到游戏的控制台中：
命令 	描述
mat_specular 0	禁用反射。正确构建cubemap所需要
map cs_mymap 	加载地图;将 "“cs_mymap”" 替换为地图的实际名称
sv_cheats 1 	启用作弊命令。生成cubemap时需要
buildcubemaps 	开始构建cubemap。（可选）指定迭代次数（默认值为 1）
disconnect 	退出地图，返回主菜单
mat_specular 1	启用反射
quit 	（可选）关闭游戏。需要重新启动它才能显示新建的cubemap
=== HDR ===
在支持 在支持 HDR 的地图上构建cubemap需要执行两次 - 每种模式(HDR 和 LDR)一次.。与 LDR 地图的情况相反,游戏的高动态范围视频设置必须设置为“完整”才能构建 HDR 的cubemap，必须设置为“无”才能构建 LDR cubemap。要构建cubemap，请将以下命令提交到游戏的控制台中：
命令 	描述
mat_specular 0 	禁用反射。正确构建cubemap需要
map cs_mymap 	加载地图;将 "“cs_mymap”" 替换为地图的实际名称
sv_cheats 1 	启用作弊命令。生成cubemap时需要
buildcubemaps 	开始构建cubemap。（可选）指定迭代次数（默认值为 1）
disconnect 	退出地图，返回主菜单
sv_cheats 0 	禁用作弊命令。防止命令 mat_reloadallmaterials 不必要地自动执行并短暂冻结游戏
mat_hdr_level 0 	切换到 LDR 模式 (从 HDR); mat_hdr_level 2 如果首先构建 LDR 则改为提交
map cs_mymap 	再次加载地图以构建新模式的cubemap
sv_cheats 1 	
buildcubemaps 	开始为新模式构建cubemap。（可选）指定迭代次数（默认值为 1）
disconnect 	
mat_specular 1 	启用反射
mat_hdr_level 0/1/2	如有必要，切换回提交前的模式 mat_hdr_level 0/2
quit 	（可选）关闭游戏。需要重新启动它才能显示新建的cubemap
=== 半条命: 起源 ===
=== 传送门 2 ===
=== Source Filmmaker ===
 "SearchPaths"
 {
 	"Game"	"|gameinfo_path|."
 	"Game"	"swarm_base"
 	"Game"	"platform"
 	"Game" "..\SourceFilmmaker\game\usermod"
 	"Game" "..\SourceFilmmaker\game\tf_movies"
 	"Game" "..\SourceFilmmaker\game\tf"
 	"Game" "..\SourceFilmmaker\game\hl2"
 }
== 删除 cubemaps ==
有几个工具可以删除不必要或过时的cubemap;其中， 不仅是官方的，而且是此过程最简单，最安全的选择，而且不会损坏地图。要删除cubemap，请在“maps”文件夹中执行以下命令：
 ..\..\bin\bspzip -deletecubemaps 地图名称.bsp
== 提取 cubemaps ==
如果地图必须通过微小的修改并重新编译，并且其构建的cubemaps因此消失，则事先提取它们将使得在现实变得这样之前无需再次经历整个cubemaps构建过程。 要使用 BSPZIP 提取其cubemaps，请创建一个文件夹，该文件夹将包含提取的cubemaps在“maps”内，然后执行以下命令：
 ..\..\bin\bspzip -extractcubemaps 地图名称.bsp "foldername"
=== 嵌入 cubemaps ===
要使地图使用提取的立方体图，请创建一个将由 BSPZIP 使用的文本文件 - 该文件应在“maps”文件夹中创建，并将包含要嵌入到地图文件中的文件的路径。文件的内容应如下所示：
 materials/maps/地图名称/c-128_384_64.hdr.vtf
 foldername\materials\maps\地图名称\c-128_384_64.hdr.vtf
 materials/maps/地图名称/c-128_384_64.vtf
 foldername\materials\maps\地图名称\c-128_384_64.vtf
 materials/maps/地图名称/c448_-256_64.hdr.vtf
 foldername\materials\maps\地图名称\c448_-256_64.hdr.vtf
 materials/maps/地图名称/c448_-256_64.vtf
 foldername\materials\maps\地图名称\c448_-256_64.vtf
 materials/maps/地图名称/cubemapdefault.vtf
 foldername\materials\maps\地图名称\cubemapdefault.vtf
文件需要两行专用行（路径）：第一行表示它将在映射文件中使用的路径，而第二行是要嵌入到映射文件中的文件的实际位置。示例使用了相对位置路径，但它们也可以是绝对路径。文本文件准备就绪后，执行以下命令：
 ..\..\bin\bspzip -addlist 地图名称.bsp textfile.txt 新地图名称.bsp
== 重命名地图 ==
构建的cubemaps将保存到使用其名称的地图文件中;重命名它将导致cubemaps不与地图一起加载，因此它将表现得好像没有一样。要解决此问题，请删除然后重建cubemaps，或者提取然后重新嵌入它们（其文件夹的名称与地图的名称匹配）。
== 参见 ==
* 
* 
* - 用于视差校正立方体贴图。
Zh/Cycler

==实体描述==
用于显示模型，进行测试的实体。它会循环播放模型动画。
== 键值 ==
== 标签/Flags ==
* 1 : Not Solid/可穿透，不具备碰撞。
== 输入 ==
== 输出 ==
==参见==
* - NPC专用。
Zh/Day of Defeat

;重现第二次世界大战中，同盟国与轴心国在欧洲战场那惊心动魄的历史时刻。玩家可扮演轻型/冲锋/重型部步、狙击手或机枪手，每一个兵种都按照当时的条件装备了特殊的武器。每一项任务都是根据重大的历史事件而设计。并且，随着战争的日趋激烈，玩家必须与其队员配合行动才能完成每项任务特定的目标。
== 参见 ==
* 其续作 - 
* 官方网站
* 维基百科页面
*
Zh/Day of Defeat: Source

(或简称DoD:S) 提供了一个激烈的在线游戏品牌，设置在二战欧洲战区。玩家扮演轻型/突击型/重型步兵、狙击手或机枪手的角色，任务以历史上的行动为基础。战败之日。源泉》的特点是增强了图形（包括）和声音设计，以利用源泉的力量，Valve的新引擎技术。
== 游戏简介 ==
=== 地图类型 ===
Valve给DoD:S的玩家提供了两种主要的游戏模式--"区域占领 "和 "引爆"。然而，还有其他的游戏类型，它们以不同的方式工作，以提供不同的游戏类型。作为一个例子，地图社区的一些创造性成员提出了文件捕获地图。
==== 区域捕捉 ====
在《战败之日》源码中，区域捕捉地图是最常见的，因为它们从《战败之日》的最早期版本就已经存在。使用这种玩法的地图一般有5个旗子，但也可以有任何数量的旗子。两队的目标都是一次夺取并守住所有的旗帜以获得胜利。要夺取一面旗帜，必须在没有敌人干扰的情况下，在夺取区域内有特定数量的玩家在特定时间内。各个旗帜的玩家人数和所需时间是不同的。如果有敌人进入占领区，那么该玩家将得到一个防御点的奖励。如果该玩家随后死亡或离开该区域，则必须完全重新开始占领。
==== 引爆 ====
引爆地图是在6月28日更新后引入DoD:S的。在引爆式地图中，进攻方的玩家必须从炸弹箱中获得炸弹，或挎包里的炸药。一旦他们有了TNT，他们就可以前往炸弹目标。玩家必须按住他们的使用键（一般默认为 "e"），直到炸弹被安放。如果有玩家在放置炸弹时被杀，那么杀死他的玩家将获得一个防御点的奖励。一旦炸弹被埋下，埋下炸弹的队伍必须保卫它，直到它爆炸。如果防守方的队员拆除了炸弹，那么他们会因为拆除而获得一个防御点的奖励；如果该队员被杀，那么杀死他的队员会因为阻止拆除而获得一个防御点的奖励。引爆地图可以让两队都进攻，没有时间限制；也可以让一队进攻，另一队防守，有时间限制。如果有时间限制，当时间用完后，防守方获胜。
==== 坦克====
坦克地图的想法是由inKit发布的dod_flash_tank首次提出来的。这些地图的目标是让拥有坦克的队伍将其移动到地图的另一边。当该队的玩家在坦克旁边时，坦克就会移动，当坦克旁边没有该队的人时就会停止。在坦克的路径上，有一些障碍物需要用挎包炸药摧毁，然后坦克才能移动过去（路障、沙袋等）。最后一个障碍物被坦克摧毁后，坦克就会继续为进攻方赢得这一回合。防守方必须阻止进攻方摧毁路障，只要站在坦克旁边，就可以阻止进攻方移动坦克。
=== 官方地图 ===
==== 占领模式 ====
* dod_anzio
* dod_argentan
* dod_avalanche
* dod_donner
* dod_flash
* dod_kalt
* dod_palermo
==== 爆破模式 ====
* dod_colmar (无时间限制)
* dod_jagd (有时间限制)
* dod_jagd (有时间限制)
=== 非官方地图 ===
胜利之日:起源 拥有丰富的非官方地图,您亦可在非官方地图内游戏
=== 兵种与武器 ===
兵种 	美国陆军 	纳粹国防军
 	 	
 	(与 拳头攻击) 	(与 拳头攻击)
 	 	
 	 	
 	 	
 	 	
== Resources ==
=== Mapping ===
* 
* 
* 
* 
==== General documentation ====
* 
== Media ==
* 
* 
* 
== External links ==
* Day of Defeat - the official website.
* Day of Defeat Directory - a directory of custom maps, files and links to other Day of Defeat: Source and ProDoD sites.
* DoD Federation - a web site dedicated to helping the Day of Defeat community.
== Similar mods ==
* - a DoD:S derivative mod aimed at the competitive community.
Zh/Deathmatch Classic

;体验高速的多人联机对战游戏 - （又名 DMC）。 承袭 ID Software 之精华而推出的又一创新力作，DMC 邀请玩家拿起自己的火箭筒，在未来世界中尽情追逐，肆意挥洒。
== 参见 ==
*
Zh/Decision Making Overview

从上层应用的角度来看，遵循相当简单(并符合现实逻辑)的决策过程。 想要理解它，最简单的方式就是查看其大纲，之后再进一步挖掘必要的特例情况。
每一次NPC , 都会遵照以下的过程：
;感知
: 会产生一个NPC所能看到的实体列表， 以及一个它能够听到的声响列表。并且，NPC会忽略它不关心的实体与声响。
;生成条件列表
: 是一串NPC用于做决策的关键信息。 它们提取于所感知到的实体、声响以及world与NPC的状态。列举一些可能的条件:
:*我看见了敌人
:*我正承受伤害
:*弹夹已空
;切换合适状态
: 是基于条件列表总体评估的。例如：
:*NPC视野存在可见敌人时将进入Combat状态
:*NPC认为不存在敌人时将进入Alert状态
:*NPC血量为0时将进入Dead状态
;适时选择行程 
:是NPC将采取的行动总和, 它被拆为多个任务（见下方）被NPC实际执行。 行程的选择基本取决于NPC的状态与条件. 例子如下：
:*我将寻找掩护并换弹
:*我将追逐我的敌人
:*我将转移到能够看到敌人的位置
:NPC切换到新行程的原因有两个:
:#完成了前一个行程
:#产生了一个条件，而这个条件被这个行程指定为 
;执行当前任务
:是行程的组件，可称为离散动作。要想完成一个行程，任务必须一个接一个地执行。 例如, 行程 "我将寻找掩护并换弹" 将被拆为以下任务:
:#找到掩护点
:#产生到掩护点的路径
:#沿着路径行走
:#换弹
:像上面的任务一样，许多任务都会花时间执行, 所以NPC每次思考都会不停地执行任务，直到该任务完成。 接着，它会执行当前行程的下一个任务, 或者，当没有任务剩余时会跳到下一个行程. 如果任务失败了，那么行程也会立即失败。（存疑） 
Category: AI
Zh/Decompiling Maps

反编译是指把一张可以在游戏中运行的地图转化为可以在地图编辑器中打开的地图源文件的过程。由于格式的差异，反编译的地图是一个模仿品，而并不是一个复制品。这使得学习测量和审视变得容易，但并不适合直接再编译。地图的源文件才是理想的再次编译和修改的对象。
在未经允许的状况下把别人的作品反编译后进行修改并发布是一种不好的行为，并且可能会被视为侵权。对此，有一些防止地图被反编译的办法，但这样做是不值得的，因为没有一个办法100%有效，而99%的反编译者并不会侵权。
== 工具 ==
* （用于在不重新编译的情况下查看和编辑BSP的实体）
* （基于VMEX的起源引擎地图的开源地图反编译器）
* （起源引擎地图的反编译器）
* （将半条命1地图移植到起源）
* （用于转换纹理格式的命令行工具）
半条命1引擎的工具：
* 
* 
* 
=== 注意事项 ===
最新的反编译软件叫做，由Java语言写成。你需要一个升级版的Java Runtime Environment（JRE）来运行BSPSource。下载：Sun。安装完成后，你就可以准备开始反编译地图了。
== 提取地图 ==
# 安装 .
# GCFScape安装完成后，单击文件→打开.
#* 反恐精英：全球攻势的地图，打开\steamapps\common\Counter-Strike Global Offensive\csgo\pak01_dir.vpk
#* 反恐精英：起源的地图，打开\steamapps\common\counter-strike source\cstrike\strike_pak_dir.vpk
#* 胜利之日：起源的地图，打开\steamapps\common\Day of Defeat Source\dod\dod_pak_dir.vpk
#* 半条命2的地图，打开\steamapps\common\half-life 2\hl2\hl2_misc_dir.vpk
#* 半条命2：死亡竞赛的地图，打开\steamapps\common\half-life 2 deathmatch\hl2mp\hl2mp_pak_dir.vpk
#* 半条命2：第一章的地图，打开\steamapps\common\half-life 2\episodic\ep1_pak_dir.vpk
#* 半条命2：第二章的地图，打开\steamapps\common\half-life 2\ep2\ep2_pak_dir.vpk
#* 传送门的地图，打开\steamapps\common\portal\portal\portal_pak_dir.vpk
#* 传送门2的地图，打开steamapps\common\portal 2\portal2\pak01_dir.vpk
#* 军团要塞2的地图，打开\steamapps\common\Team Fortress 2\tf\tf2_misc_dir.vpk
#* 求生之路的地图，打开steamapps\common\left 4 dead\l4d\pak01_dir.vpk
#* 求生之路2的地图，打开steamapps\common\left 4 dead 2\l4d2\pak01_dir.vpk
3. 找到\maps\文件夹，每个游戏的位置各不相同。
4. 右击BSP文件，然后点击提取（Extract）。
== 开始之前 ==
在开始反编译地图之前，先问自己一个问题：「我想从中学习到什么？」。读一读地图附带的txt文件，你应该可以找到制作者的email，这比你想象得更有用。
有些地图制作者会向你提供帮助和建议，甚至他们会给你提供反编译所得不到的更好的素材。
== 拓展阅读 ==
*
*
Zh/Defining the NPC

本文介绍利用SDK的模板创建一个简单的NPC。
== 准备工作 ==
任何版本的sdk包括Alien Swarm都在这个目录下server/hl2/monster_dummy.cpp提供了NPC代码模板。你可以将其复制到其他地方并开始着手工作。
在Precache()和Spawn()函数里面修改模型路径来选择一个有效的模型 (比如现有的人类模型)然后你就可以获得一个靠近他，他便会转过身来的简单NPC。
== 关系 ==
: 本节是基于Alien Swarm代码进行教程。
NPC关系决定了他与其他NPC或者玩家的互动效果。 使用FindEntityRelationship(CBaseEntity *pTarget)函数来测试NPC的状态。
=== 情绪 ===
现存的四种 "情绪":
* D_HATE//憎恨
* D_FEAR//害怕
* D_LIKE//友好
* D_NEUTRAL//中立
每个关系情绪都有一个优先级。若冲突，优先级最高的为准。
=== 目标 ===
可以有以下三种目标：
==== 阵营 ====
一个NPC可以属于一个阵营，并且该阵营可以对其他的阵营进行关系互动。阵营代码定义在game/shared/shareddefs.h (默认下没有).
; AddFactionRelationship()
: 仅向此NPC增加一个阵营关系。
; CBaseCombatCharacter::SetDefaultFactionRelationship()
: 添加一个默认的阵营关系，由所有NPC共享。
; ChangeFaction()
: 改变该NPC的阵营。
==== 类 ====
NPC能够自我分类。这个特定类是Classify()函数的返回值, 并且与C++类或者hammer类不相干。
; AddClassRelationship()
: 仅向此NPC增加一个类关系。
; CBaseCombatCharacter::SetDefaultRelationship()
: 添加一个默认的类关系，由所有NPC共享。
; Class_T Classify()
: 返回该NPC的类。
如果打算增加一个新的NPC类，打开baseentity.h的95行，自行增改。
==== 实体 ====
最后， 两个不同的NPC中可以进行一次一次性的特殊关系设置。
; AddEntityRelationship()
:为2个NPC增加实体关系。
Zh/Destinations

__NOTOC__
Category:Destinations
Category:M.Reak汉化
Destinations 可以让你在VR中创造，分享和探索不同的世界：摄影场景，游戏世界，或其他任何可以通过3D模型来表示的场景.
* 下载 Destinations - 从steam上免费下载Destinations 创意工坊工具
== 教程资源 ==
==== 基础 ====
* - 学习Destination的基本制作 - 制作一个地板和光源，添加模型以及传送网格.
* - Quick checklist to make sure your Destination is ready for the recently added multiplayer support.
==== 新内容: 使用 Destinations 创意工坊工具 ====
* - 资源管理器概述 - Destinations创意工坊资源中心.
* - Hammer工具概述 - Destinations创意工坊的关卡编辑器.
* - 使用Valve新的UI开发工具创建自定义UI.
* - 学习如何导入模型动画进入Destinations创意工坊工具.
* - 重构Turret歌手场景，在你的destinations场景里学习如何使用触发器，动画和音效.
* - Destination添加音效的指南.
==== 新内容: 创建Destinations的3D场景 ====
* - Learn how to quickly turn your SteamVR environment into a Destination.
* - 学习在Hammer工具中网格的操作基础.
* - 在模型编辑器中学习创建、观察以及编辑模型.
* - 学习如何使用材质编辑器创建和编辑材质贴图.
* - 学习在粒子编辑器中创建和编辑粒子基础.
==== 创建摄影测量 ====
* - 手把手教你创建一个摄影测量的Destination场景.
* - 文件的无缝处理，身临其境的户外场景，包括远景和天空样本.
* - Similar to the above, documents the process of creating an indoors scene using the Valve office lobby as an example.
* 摄影测量的技巧 - 摄影测量过程的背景，以及捕捉技巧和提示.
==== 脚本 ====
* 更新: 
* 
==== 其他资源 ====
* Destinations指导手册 - further guides, tutorials and articles from the community.
== 示例 ==
在Destinations已完成的例子可以作为帮助:
* 英国教堂 - 一个通过摄像测量信息所构建的场景.
* 火星 - 一个利用火星车好奇号所拍摄的公开摄影照片的场景。原始照片来源于NASA's 网页:http://mars.nasa.gov/msl/multimedia/raw/.
* Hammer 例子 - 一个拥有简单实例并且可以使用Hammer和其他source2工具以复制和修改的模版地图.
* Turret 歌手 - 一个使用hammer制作的模版地图，更多使用了触发器，动作和声音.
* Arcade Toss - A game created in the Destinations Tools with examples of Hammer entity I/O, Lua scripting, and Panorama/Javascript/CSS.
* Valve Lobby - Visit the Valve office in Bellevue, Washington in Destinations! A photogrammetry scene with information nodes about this lobby space.
* La Pedrera - A scene constructed using photogrammetry from an architectural landmark in Barcelona, Spain.
Zh/Destinations/Adding Sound

== 给你的Destination添加音效 ==
===== Soundscapes =====
给你的Destination场景添加环境音效最简单的方法是通过 .
===== Soundevents =====
当然你也可以使用 , 或者通过设置触发器来触发point_soundevent实体和动画.
Category:M.Reak汉化
Zh/Destinations/Adding Sound/Soundevents

=== 在Destination中添加音效事件指南 === 
 
首先音效文件放到 content/youraddon/sounds/ 目录下.
使用文本编辑器, 打开在soundevents目录下已经有的文件, "soundevents_addon.vsndevts".
添加的音效事件应该在大括号内 -
500px
name （名称） 
替换 'soundname_01/02' 为你的音效事件名称, 它将是你从工具中调用的名称.
type （类型） 
替换 'soundtype' 一般有两种声音类型，将会决定音效的播放行为.
volume （音量） 
可选的参数，浮点值，一般在0-1之间.作为音量的倍数，不修改的话默认为1.0.
pitch （音高） 
可选参数，浮点值，决定声音的音调.一般在1.1和0.9之间，防止失真,当然如果你需要一些疯狂的声音也可以自由设置，不修改的话默认为1.0.
delay （延迟） 
可选参数，浮点值，决定了声音开始播放延迟多少毫秒.不修改的话默认为0.0 .
vsnd_files（声音文件） 
参数是播放的文件名. 值得注意的是 soundname_02中, 有多个声音文件.当音效事件开始播放时候, 它会随机使用一个文件直到播放列表结束. 
注意: .vsnd文件Source 2引擎自动编译的. 当你首次播放音效的时候，会自动生成，不需要手动去创建它.
===== 类型 =====
有两种设置 'type'（类型） settings you can use for sound behavior control in Destinations.
"destinations.simple_vr" 
随着距离远景需要调整音量的音效类型. 示例用法 - 鸟鸣, 犬吠声, 关门音效.
"destinations.simple_2d" 
不需要位置信息的音效，无论玩家处于什么方位，都直接被立体声保存. 示例用法 - 非数字音乐, 氛围音效, 环境轰鸣声.
Category:M.Reak汉化
Zh/Destinations/Adding Sound/Soundscapes

=== 在Destination场景中添加环境音效指南 ===
* 如果你没有准备过, 先在你的项目 “game/steamtours_addons/youraddon” 的scripts目录下创建 soundscapes_manifest.txt 和 soundscapes_template.txt 文件. 
* 重命名 soundscapes_template.txt, 并且将 soundscapes_manifest.txt 文件的第三行改成相同的名称.
* 音效文件放到 content/youraddon/sounds/ 目录下.
如何创建自定义soundscape实体的文档 - 
注意:不同于Vavle其他的头文件.destinations使用的是混合DSP
地图所需要的实体文档 -
===== 示例 =====
这个是个简单的soundscape示例, 包含有循环环境音和随机点音效.
* 在你的地图中, 添加一个env_soundscape（环境音效）实体. 确保音域半径覆盖 info_player_start （玩家出生点）实体，可以在Hammer中移动实体、或者调整半径来覆盖.
* 在 env_soundscape 实体中, 在音效属性里面命名一个你想要的环境音效, 例如 - soundscape_whitelodge
* 添加音效在sound目录下. 以下示例三个循环音为一个音效组 .wav 文件叫做"forest.wav" 和三个 ‘spot sound’ .wav 文件被称为 "owl_01.wav", "owl_02.wav" 和 "owl_03.wav". 确认下音效的循环点.
* 打开你的soundscapes脚本并添加下列代码.
"soundscape_whitelodge"
{
 "playlooping"
 {
 "volume" "0.5"
 "pitch" "100"
 "wave" "sounds/forest.vsnd"
 }
 "playrandom"
 {
 "volume" "0.35"
 "pitch" "100" 
 "time" "10, 15"
 "soundlevel" "SNDLVL_50dB"
 "position" "random"
 "rndwave"
 {
 "wave" "sounds/owl_01.vsnd"
 "wave" "sounds/owl_02.vsnd"
 "wave" "sounds/owl_03.vsnd" 
 }
 }
}
注意: .vsnd文件Source 2引擎自动编译的. 当你首次播放音效的时候，会自动生成，不需要手动去创建它.
* 编译地图，然后你能听到forest.wav的循环音效, 并且在10-15秒会根据听者的位置，随机播放owl（猫头鹰）叫声.
* 你可以实时的调整音量, 音高, 时间 和 声级至满意. 通过 VConsole（控制台）命令 'cl_soundscape_flush'可以重新载入音效.
主义: 如果 playlooping（循环播放） or playrandom （随机播放）不再包含的位置, soundlevel（音级）将不会衰减.
Category:M.Reak汉化
Zh/Destinations/Importing Tutorial

= 导入FBX文件进入创意工坊工具 =
在本教程中，我们将导入FBX格式的动作文件和材质，进入模型和材质编辑器之中.
* 导出FBX格式的打包文件(教学中我们使用Maya).
* 导出FBX格式的动作文件.
* 导入模型进入模型编辑器.
* 导入材质进入材质编辑器.
* 处理材质.
== 处理模型 ==
* 这个教学示例中我们使用的模型来源于传送门2, 使用Maya能够制作模型和动画. 同时也用Maya给模型附上材质.
* Source2引擎只能够处理骨骼动画.你不能自己控制骨骼和网格，必须要在软件中将子骨骼都命名设置好.
* 这个模型有四个动画，和四个材质.
== 导出FBX ==
* 导出模型和材质 (从Maya里面).
** 在导出设置中有很多选项, 确保勾上 Deformed Models 和 Skins.
** 你可以将FBX文件导出到任何目录，当你将文件导入进创意工坊工具的时候，会自动校准目录结构.
* 确保勾上Embed Media - 这将使打包FBX文件可以正确附上纹理.
* 这次示例之中，四个动画文件都是在Maya中独立制作的，所以需要分别导出.现在将这些FBX文件导出到同一个地方. 
* 只需要导出骨骼就可以了，当然也可以连模型一起导出. 如果你选择连模型一起导出，一定要取消勾选"embed media ",这样不会有重复纹理.
== 导入进创意工坊工具 ==
* 如果你还没有提前准备，先创建一个项目.
* 建立项目后点击 'Launch Tools'（运行工具） 按钮. 会弹出asset browser（资源管理器） -如果这是一个空的项目，它仅有soundevents（音效事件）文件.
* 打开模型编辑器, 导入FBX文件.
* 下拉文件菜单, 选择 'create New mesh from file'（通过网格创建模型文件）
* 这会弹出一个目录警告. 点击确定，让工具自动为你创建一个目录.
* 自动创建的根目录命名, 例如: steamapps\common\destinations\content\steamtours_addons\portal_turret\models. 材质目录会保存在materials文件夹下.
* 你需要创建一个模型相关的文件夹，所有模型都将储存在这个根目录下. 文件夹命名不能使用大写字母、空格或者符号 - 只能用小写字母以及下划线. (这个不是很必要，但是当你的目录下有很多文件，这么命名有助于保持目录简洁). 你可以右键新建文件夹，这里我们叫做turret_model,选择它确定 [选择目录]
== 模型编辑器 ==
* 打开你的模型编辑器点击确定. 如果 Outliner（大纲） 和 Property（属性） 编辑器不是默认的，你可以在UI栏中找到它们.
* 如果一切都很顺利，你可以在窗口中看到带有纹理的模型.如果你看到模型具有红线框，这最有可能是FBX导出出现在问题，检查下之前的步骤有没有出错.
== 添加动画 ==
* 在导入进工具之前, 必须拷贝动画文件放到模型目录下: steamtours_addons\portal_turret\models\turret_models.
当我们通过模型编辑器创建模型后，你会看到DMX文件和一个VMDL文件.
* 回到模型编辑器在动画栏下拉, 选择"add animation"(添加动画). 这将会花费一些时间，取决于动画长度.
* 你可以看到动画在这里, 到目前位置我只需要添加3penny_hi（动画名称）.
如果你在outline（大纲栏）中选择动画, 你可以通过右下角的播放键来控制动画播放.
你可以一次添加多个动画. 所以我在接下来一次添加三个FBX动画文件.
通过这个属性编辑器你可以看到动画长度由帧数来表示.你可以输入数字来控制播放长度.同时还可以通过改变帧率来加快或减慢动画播放速率，以及其他更高级的动作.
* 你也可以从现有的动画中创建新的动画序列. 留一个idle(空闲)动画是很有必要的, 这通常被当作静态动画. 在这次示例中, 它的空闲动画是坐在原地同时机枪收起. 因为这些动画第一帧都存在状态，所以我们重新导出另一个空闲的FBX动画.
* 开始复制另一个动画. 对话框要求我们命名，我们把它叫做 “idle”.
创建一个静态动画，输入结束帧为0，可以有效的避免其他动画干扰.
‘’这次使用了四个不同的动画，当然你也可以把它们整合为同一个序列.当你使用合并的动画文件时候，可以按照动作帧率进行对应动画进行裁剪.’’
别忘了保存你的模型.
== 材质 ==
当你导入FBX文件时候, 已经为材质选择了基本纹理. 如果你不记得默认的是VR_standard的话, 最好在选择一次.
* 编辑材质 (vmat格式),双击模型编辑器的材质将会打开材质编辑器.
或者，从资源管理器里面打开材质编辑器.
* 在这里你可以将纹理制作成不同的材质. 默认情况下 Vr Standard 着色器没有Specular（高光）. 把它打上勾.
* 这时候着色器已经创建了一个反射在材质表面，你可以看见一个高光.
默认情况下，反射是搜寻一个纹理贴图，材质编辑器已经有一个默认的简单灰色纹.如果你有自己的反射纹理，必须放置在同一个文件夹下： /content/steamtours_addons/portal_turret/materials/models/turret_models/
现在你能看见在材质表面的高光.
* 你可以通过滑块进一步调整高光的影响.
* 如果你仅需要一个简单颜色的反射，你可以按下梯度按钮，切换到纹理滑块.
往右移动增加高光的亮度，许多的着色器组件都有这个功能.
眼睛材质需要glow（发光）. 这样可以使材质illumination（自发光）. 勾选左边的 'self illum' （自发光）,选择颜色，向右调整滑块增加效果，让它泛白. 
完成后记得保存材质.
恭喜! 现在你可以在Hammer中使用模型和动画了. 学习如何通过触发器来触发动画： 这篇教程.
Category:M.Reak汉化
Zh/Detailing BTS Areas

__NOTOC__
==区域创建指南==
每个房间都有一个主要用途，例如，发电机室、充满的房间,巨型室,和储存气体或某种的房间
* 
* 
* 
* 
* 
* 
===独特类型===
* 
* 
==详细内容==
* 
* 
* 
* 
Category:Portal
Category:Tutorials