nyuuzyou/wikis huggingface dataset:
Zh/Env weaponfire

该实体用于模仿求生之路中枪支的武器射击。它会造成伤害、枪口闪光、发射痕迹和打击效果。虽然它非常适合介绍过场动画，但该实体并非 100% 与求生之路的武器行为相同（例如，镜头不会穿透多个僵尸)。所有效果都是在客户端完成的，因此带宽使用率非常低，但它与服务端伤害计算并不完全同步。
::
== 键值 ==
:* 3 : 丧尸
:* 2 : 生还者
:* -1 : 两者
== 输入 ==
Zh/Environmental Lighting, Sun, Weather, & Outdoors

本篇给出了制作室外场景的链接（若需要在总体制图方面获取帮助，详见 。）
==文章==
*——基础的天空
*——在天空和中加入背景物体（例如建筑）
*——地形（例如小山，悬崖，山洞或者不平坦的草地）
*——确保你的雨/雪正常工作
==实体==
* - Both Direct and Diffuse light coming from the ("toolsskybox" texture).
* - places a glow sprite in the skybox to represent the sun itself.
* - necessary to control the dynamic shadows cast by light_environment.
* - brush-based entity for rain or snow.
* - for merging s in large, open areas.
*For nature props check the props_foliage folder in Hammer Model Browser.
==材质==
*Search for nature in the Material Browser.
*For smooth transitions between two types of material, such as grass to sand, use alpha blending with blend materials.
==参见==
*
*
*
*
*
==外部链接==	 
*Using env_sun Archived from the original on 2009-01-23.
*Adding HDR Lighting Archived from the original on 2009-01-23.
Zh/Expensive

在游戏设计中，实体/特效/功能/其他等是在运行时需要异常长时间进行处理的问题。例如，在起源中，绘制成本较高的实体包括和。
 
在添加昂贵的内容时必须小心，如果可能，应避免或优化它们。另一方面，如果你有一个非常廉价的区域，那么你会有足够的余地来添加更昂贵的东西。
==另见==
*
*
*
Zh/Explosions

__NOTOC__
==地图==
===实体===
*这里是一些各种各样的爆炸实体.
* — AR2 爆炸 "效果" (无伤害)
* — Origin oriented explosion
* — Explosion that affects 
* — Specific explosion
* — 摇晃附近玩家的屏幕
* — 喷射尸块(gibs)
* — 喷射火花
* — 溅射效果
===实现===
*
*
== 模型 ==
== 编程 ==
*
*
== 参见 ==
*
Zh/Exporting a model

在起源中, 是在中编辑的。模型必须导出为 文件, 然后用进行，得到适用于起源的MDL.
== What to export ==
这里有四种SMD的类型:
#
#
#
# (for facial expressions)
每个模型都需要一个参考网格，即使它不移动，但还是需要一个骨架动画(通常称为“空闲”)。
由于除面部动画外的所有smd共享相同的后缀名，因此在导出时遵循命名规则是一个好习惯，如:
#_ref
#_phys
#_<animation name>
#_expressions
因此，一个参考网格SMD可以称为 mymodel_ref.smd.
== 怎样导出 ==
这些文章将指导您制作SMD。 下载并安装SMD导出插件(如果需要这样做)，说明可以在每个文件中找到。
* (DMX support)
* (DMX support)
*
*
*
Category:Modeling
Category:Tutorials
Zh/Faceposer

Faceposer is the SDK tool used to produce choreographed sequences for the Source engine. It creates (including lip-syncing) and manages s, the position of actors in the world, and any map triggers that need to be fired during the scene.
*See for a step-by step guide to creating choreography in the Source engine.
*See for a quick-reference guide to the different parts of the Faceposer interface.
== Issues ==
* Incorrect model image probably made in Photoshop as with HLMV or with incorrect size will make "Load model" menu freeze and white and you will need to stop poser process.
* In hlfaposer for SDK 2006/2007/Orangebox, the play/stop/pause buttons are missing their icons by default, and display as white boxes instead. To fix this, extract fix to the proper folder, details .
* Models may not load at all. To fix this, go into regedit, and delete HKEY_USERS\..\Software\Valve\faceposer. Another solution is to clean the hlfaceposer.rf file in your SDK's bin folder.
* To make faceposer Phoneme Editor extraction work (if you are not on Win XP) there are plenty things you need to do. Let's work with source 2007 as the most stable revision. For some reasons there are lot's of info how to make it work with Microsoft Speech 5.1, but it's incorrect approach. (it doesn't work properly anyway and it's quality is far from ideal). Go to here. Take lipsinc_data/ from anywhere, even Hl2Beta, copy it to ..\SourceSDK\bin\source2007\bin, copy ims_helper.dll and phonemeextractor_ims.dll from Source SDK Base 2013 Singleplayer\bin to ..\SourceSDK\bin\source2007\bin\, you can edit GameConfig.txt to add your mod here and launch faceposer through steam or just add .bat file with "-game" to your mod (to make it work you will need many things! like to unpack proper shaders from Source SDK Base 2007\vpks (otherwise lips won't move) and other stuff, also don't forget this, write the correct gameinfo.txt for old source engine games. Change Speech API to Lipsinc Speech API in faceposer, it should work now.
* If all fine in faceposer, but in game lips not moving and you use sounds from other games or old engine versions just don't forget that faceposer formats also can be changed from one engine version to another, go to Phoneme Editor, then press Redo Extraction, if you want to get less size, try use export word data to .txt, then you can import it and then commit extraction to your sound files, same rule spreads on .vcd scene files, just resave them.
Zh/Fog tutorial

当你的地图设置创建雾的时候，你极有可能遇到这样的问题，虽然固体和模型受到雾气影响但并不会受到影响。所以这里有几种修复方式。
== 雾与天空盒设置的匹配 ==
为了让雾看起来更好，你需要让地图雾气颜色与天空盒子雾气颜色相匹配。Valve的一些官方地图可以作为一些参考。
譬如，我们使用这个天空贴图sky_day02_10。则我们的需要设置成以下这样：
Primary fog color: 176 192 202
Secondary fog color: 206 216 222
这个设置被运用到了地图。
== 使用tools/toolsblack的替代方案 ==
备用方案，你可以改变天空盒子固体为材质，那么天空将不可见, 这样就好设置多了。
== 自定义天空贴图 ==
了解2D天空盒子贴图很重要，有深入的教程。
跟一般的天空盒相似，你会需要六个UnlitGeneric纹理，每一个名称与方向对应。但不要使用$nofog参数。这样可以使雾覆盖天空盒，而无需将其融合。
== 参见 ==
* 
Category:Chinese
Zh/Fog volume

它也出现在和中。它控制其体积内的雾气和其他视觉电影元素。必须至少有一个，以便（一个主控）能在中生效。
__NOTOC__
== 键值 == 
 
 
 
 
== 输入 == 
== 参见 == 
*色彩校正 
*（实体） 
* 
*
== 外部链接 == 
*L4D艺术方向，第一部分：电影效果 - Valve博客关于《求生之路》中的电影效果。 
*在多人游戏中更改雾气（使用Source 2007） - Steam论坛。
Zh/Func areaportal

Category:Optimization Brush Entities
 （一个不相关的实体，有时被称为“world portal”）
 它创建了一个 ，用于管理地图中的可见性。当 Areaportal 打开时，它会停止渲染通过它不可见的对象；当 Areaportal 关闭时，你将看不见里面的对象。
这些并不是真正的笔刷实体。从地图作者/Hammer 的角度来看，它们是笔刷实体；但是当它们在游戏时，笔刷消失了，这实际上是一个点实体。
实体的画笔必须使用tools\toolsareaportal(见左侧) 进行纹理处理，才能发挥作用。
==键值==
==输入==
==输出==
==另请参阅==
*
Zh/Func detail

它会创建一个不会影响或导致其他固体(chop)的固体。所有不构成世界“骨干”(并且不与真正的实体联系）的固体都应该是细节。
Valve 在sourcesdk_content\hl2\mapsrc\sdk_func_detail.vmf中提供了一个示例地图。你还可以加载 HL2 地图源文件并使用其自动隐藏细节固体，以查看 Valve 在何处使用它们。
== 效果 ==
创建细节固体实体的目的是避免为仅地图的细节创建不必要的(visleaf)数量，实体的名称因此而来。 VBSP 将允许可见性分支区域覆盖细节，从而最大限度地减少可见性分支区域和编译时间。
上面是一个世界固体（左圆柱）和一个细节固体（右圆柱)。蓝线是可见性分支区域边界。世界固体将地图切成九个形状奇特的部分，导致编译时间更长，性能略低，而细节固体没有改变任何东西。
== 注意事项 ==
* 细节固体不能用于地图或 Areaportal 区域。
* 因为细节固体不世界固体，所以如果另一个表面的比例大于细节固体的宽/高，那么光线可以从它们下面渗出。如果遇到这种情况，请手动将底层固体一分为二（使用 )。
** 这种效果可能会导致具有大量表面接触的细节固体变得低效，因为它们下方的表面也在被渲染！
** 然而，细节固体对彼此互相切割。
* 众所周知，非常薄（大约 2 个单位厚）的细节固体上的表面会在一定距离处消失。作为一种解决方法，请改用 。
* 应用了半透明材质或的世界固体将被视为细节，并且无法密封区域。
**带有半透明材料的世界固体仍然会切割可见性分支区域，但没有效果(译注:可能是说visleaf的作用)。
* 在某些情况下，细节固体会将面与其他细节固体合并，有时还会与世界固体合并，这会导致它们创建可见性分支区域。
* 在正常情况下，任何时候细节固体接触世界固体时，都会注意到连接点并对其进行优化。此连接交替称为 T 形接头(T-junction)和 Water Index，并且 VBSP 尝试修复的 T 形接头数量有限制 (65,535)。过度使用与世界几何体接触的细节固体可能会导致 VBSP 中止编译并出现错误。使用-notjunc选项将以可能的视觉不一致为代价跳过此优化。
== 应该转为细节的内容 ==
任何不会明显阻挡玩家视线的固体都应该是细节。具体例子包括：
* 支柱、底座和支架
* 独立的墙
* 悬空走道
* 台阶（在下面创建一个平滑的楔形世界固体）
* 小型建筑物
* 旋转固体
* 非常小或薄的刷子
== 键值 ==
== 另见 ==
*
Zh/Func door

它创建了一个简单的滑动门。参见 了解其对应功能。
移动距离始终是固体门的尺寸。
如果门的移动距离较短，可在 Lip 中使用正值，从总移动距离中减去该单位。或者，你也可以在 Lip 中加入负值，使其移动更远的距离。
==关键值==
==标志==
==输入==
==输出==
==参见==
*
*
*
* (tutorial using )
Zh/Func instance

它将另一个 VMF 文件的插入到当前文件中。您可以在不破坏任何内容或创建离网编辑噩梦的情况下平移和旋转实例。(You can translate and rotate the instance without breaking anything or creating an off-grid editing nightmare. )默认情况下，实例在 Hammer 中绘制为橙色，但可以在Instancing > View Instances中禁用此功能。
== 通过实例输入 ==
# 定义修复名称。
# 为要使用的输入或输出定义一个值（如果有）。
# 将输入发送到“fixupname-value”，例如 MyInstance-Start。 Hammer 的 UI 无法识别该名称，但别担心。
== 键值 ==
:*0: Prefix (Default) | 前缀（默认）
:*1: Postfix | 后缀
:*2: None | 无
== 另请参阅 ==
* - 控制实例内参数的实体。
* - 用作实例内实体 I/O 代理的实体。
* - 定义实例中心点的辅助实体。
* - 关于如何在求生之路2中使用此实体的教程。
Category:Instances
Zh/Func ladder

==实体描述==
一个梯子。玩家将能够沿着这个刷子自由移动，就像它是一个梯子一样。如果您在地图中使用模型道具作为梯子的可视化表示，请将 toolsinvisibleladder 材质应用于 笔刷。
该实体没有键值、标志、输入或输出。
==另见==
*
Zh/Func nav attribute region

本简体中文界面由大康翻译。最后更新于2021年8月28日。
----
当导航网格使用nav_generate/nav_generate_incremental完成生成时，它持有的将应用于重叠导航区域的区域。非常适合大面积导航区域所需的属性；例如FINALE 属性。
==键值==
==选项==
==输入==
==输出==
==另请参阅==
*
*
*
*
Zh/Func nav avoidance obstacle

It is also available in , and .
它告诉机器人，这个区域内的导航区域阻碍了路径查找，但对于计算导航流距离和逃生路线等长期查询，则可以被忽略。如果机器人的目的地在被阻挡区域，那么它们会进入受影响的区域，或者除非它们必须穿过被阻挡区域才能到达目的地，否则会避开它。正确地使用以防止机器人的移动看起来比较奇怪，或者会移动到奇怪的地方。
== 官方地图中的应用 ==
 l4d_hospital03_sewers / c8m3_sewers 
* 一个用在加油站，防止弄错靠近它
 l4d_airport02_offices / c11m2_offices 
* 2 个用于办公室内部的办公室分隔板，防止机器人减慢在分隔板上进行硬跳跃的速度
 l4d_airport04_terminal
* 2 个用于金属探测器，防止机器人触发
 l4d_river01_docks / c7m1_docks
* 其中 5 个用于靠近海边的木结构上，桥下有一条岩石小径。
* 1 个用于幸存者机器人很难跳进去的窗户
* 1 个用在砖厂的(爆炸)桶上以让机器人离远点
 l4d_river02_barge / c7m2_barge
* 1 个用于第一个水区域，使机器人绕过它
* 1 个用于第二个水区域中煤炭驳船的突出部分，以使机器人不会靠近突出部分
* 1 个用于在从顶部传送带到底部传送带的途中，以防止幸存者机器人试图在不必要的情况下通过时挂边跟随您
 c13m2_southpinestream
* 2 个用于防止机器人走到已启用的 里面着火（但 trigger_hurt 本身已经有效果了）
== 另请参阅 ==
* 
* 
*
Zh/Func nav blocker

本简体中文页面由大康翻译于2021年9月20日。
----
并且也存在于 中。它阻挡触摸它的 的以限制NPC/机器人越过它。
== 键值 ==
== 输入 ==
== 输出 ==
== 另请参阅 ==
* - VScript 版的 func_nav_blocker。
Zh/Func simpleladder

它用于定义可攀爬的梯子区域。在 编译地图期间 固体通常被转换到这个实体。它不存在于 中，也不是为使用 Hammer 创建而设计的。
== 键值 ==
:* 0 : 任何队伍
:* 1 : 生还者
:* 2 : 被感染者
Zh/Func viscluster

它允许您手动告诉 其体积内的 都可以相互看到，应视为一个。这在大型开放区域很有用，否则这些区域的可见性计算将需要非常长时间才能完成。使用不当可能会对游戏性能造成的操作，损失性能。它应该使用tools\toolstrigger作为该实体的纹理。
==另请参阅== 
*Viscluster 视频教程
*
Zh/GCFScape

}}
 是一个小工具，可以打开并从用于游戏内容存储的文件中提取数据。GCFScape的最新版本是1.8.6。
需要GCFScape 1.7.1或更高版本才能打开与，和一起引入的文件，以及以向后兼容仅直接从文件系统或.gcf文件（直到）加载的旧Source游戏，使用Depot VPK文件。
要浏览多部分的VPK，你必须打开索引文件，名为。
== 依赖 ==
# .NET Framework 4.0 (或更高版本，最高到4.8.1)
## Windows 8.1，8，7支持.NET Framework最高到4.8，Vista支持到.NET Framework 4.6/4.6.1（非官方），XP只支持.NET Framework 4.0。旧版本通常不推荐，因为大多数不再接收安全更新。也不要与.NET Core（已重命名为.NET）混淆。
# Visual C++ 2010 SP1运行时（下载）- 32位和64位都需要。
## 通常作为Steamworks Common Redistributables的一部分预先安装。
和用户需要安装这些以便通过Wine运行GCFScape。
== 提取 ==
当一个GCF被打开，程序将会如下显示：
点击小按钮，你可以浏览文件夹并点击它们以展开并显示子文件夹，然后点击一个文件夹将在右侧显示内容：
右键点击一个文件将会弹出一个上下文菜单，从中你可以提取：
点击这个将会弹出一个窗口，你可以在其中选择你的保存位置：
点击确定将会将文件提取到你选择的位置。
== 支持的格式 ==
除了GCF文件，GCFScape还支持Half-Life ，NCF，，，，和XZP文件。
== 选项 ==
在GCFScape的选项菜单中，以下选项可用：
;详细：启用详细日志记录（默认启用）。禁用此选项以减少日志输出。当你正在提取大量文件并且只想被告知错误时，这可能很有用。
;文件映射：启用Windows文件映射（默认启用）。文件映射是随机文件访问的一种高效方法。一些操作系统可能会有文件映射问题（特别是Windows 98）并可能产生错误；在这种情况下禁用此选项。
;快速文件映射：将整个文件映射到内存（而不是根据需要映射它的部分）。有效地将文件缓存在内存中。如果你有足够的空闲内存，这可以加快速度。一些操作系统可能会有文件映射问题（特别是Windows 98）并可能产生错误；在这种情况下禁用此选项。
;易变访问：启用易变文件访问（默认启用）。默认情况下，以读/写模式加载.gcf文件，并可能随时更改它们的内容（随着更新的发生）。如果发生这种情况，GCFScape将变得不稳定并可能崩溃。易变访问允许你打开中加载的GCF文件，风险自负。通常情况下是稳定的，并且可以用于检查Steam正在更新哪些文件。
;写入访问：启用写入文件访问（默认禁用）。写入访问赋予GCFScape修改某些文件的能力，并且与易变访问不兼容，因为两者的组合会导致不稳定。此选项对于GCF碎片整理是必需的。
== 验证 ==
在1.5.0版本中，GCFScape增加了验证GCF文件的能力。此过程为GCF文件中的每个文件计算一系列混合CRC 32和Adler-32校验和，并将每个校验和与存储在GCF文件中的预计算校验和进行比较。此功能为检查GCF文件的损坏并列出损坏和不完整的文件提供了一个快速的替代Steam的方式，但不能像Steam那样修复损坏的GCF文件。
要使用GCFScape验证GCF文件的全部或部分，请完成以下步骤：
# 启动GCFScape。
# 从文件菜单中，打开你的GCF文件。
# 浏览到你希望验证的顶级文件夹（root表示整个GCF文件）。
# 右键点击文件夹并选择验证。
# 对你希望验证的每个GCF文件重复步骤2-4。
== 碎片整理 ==
在1.6.0版本中，GCFScape增加了碎片整理的能力。这个功能是在Nem进行了几次测试后添加的，这些测试表明Steam的内置碎片整理器并不总是完全整理一个游戏的GCF碎片文件。实际上，Steam经常错误地报告0%的碎片，而实际的碎片数可能高达或超过10%，这对性能极其不利。
GCFScape定义碎片率为使用的簇中顺序错误的簇的数量除以使用的簇的总数。一个文件中的第一个簇永远不会乱序，所以一个只包含一个簇的文件（通常< 8192 B）永远不会碎片化。在10%的碎片率下，一个典型的~785 MB GCF文件（大约100,000个簇，每个簇8192 B）平均每读取80 KB数据就需要进行一次寻找操作。你可以通过检查其属性查看任何文件或文件夹（root表示整个GCF文件）的碎片。
要使用GCFScape碎片整理你的GCF文件，请完成以下步骤：
# 关闭Steam。
# 启动GCFScape。
# 在选项菜单中，启用写入访问并禁用易变访问。
# 从文件菜单中，打开你的GCF文件。
# 从工具菜单中，选择碎片整理。
# 对你希望碎片整理的每个GCF文件重复步骤4-5。
== 外部链接 ==
*作者的主页 - 已存档，因为网站目前关闭。
*作者的主页 - 在Github上存档，比Web Archive (archive.org)镜像更快
*官方下载 (@ Nem's Tools)
*官方下载 (@ Nem's Tools) - 已存档，因为网站目前关闭。
*官方下载 (@ Nem's Tools) - 在GitHub上存档，有Web Archive (archive.org)和GitHub镜像
*GCFScape 在Gamebanana下载
*GCFScape 在TheRaZZeRApp下载
*Valve Developer Union镜像
*Wine HQ
*每个Nem's工具存档 在Gamebanana下载
*Microsoft .NET (Core)官方下载
*Microsoft .NET Framework官方下载
== 另见 ==
*
Zh/GameUI

:不要与 实体混淆
GameUI 是提供 'frontend': broadly speaking, 主菜单还有加载界面的代码。
GameUI panels are children of their own dedicated panel ("GameUI Panel"). 客户端的 只用于游戏里的HUD元素。
== Source 2009 ==
In the original branches of Source (from to ), GameUI is a closed engine library manipulable to a limited extent by editing . script files. These define properties like width, height, element location, and so on. You can add new non-interactive elements, and with a bit of effort hide existing ones.
It is possible to that behave in exactly the same way as GameUI ones. Starting with (which uses elements from ), such panels can the default main menu with four new functions included in .
== Left 4 Dead ==
The contains the complete source for the newer L4D-style GameUI, which has been moved into the client library. It has been redesigned for consoles' lack of a pointing device: everything is integrated into the same navigable menu system, and you can't be in more than area at once. It's also far, far easier to program.
=== 创建一个新的窗口 ===
# 新建一个类， 继承自 。
# 在game\resource\ui\basemodui\创建一个accompanying "<class name>.res" 脚本。
# 向 WINDOW_TYPE 添加一个新的enum（【术语】枚举）
# Edit the enormous switch in CBaseModPanel::OpenWindow() to include your new enum and class.
The ugly enum/switch indirection is presumably designed to allow a single "window type" value to open slightly different window objects depending on the UI's state. Too bad Valve haven't found any excuse to do that yet!
=== Opening windows ===
Use CBaseModFrame* CBaseModPanel::OpenWindow():
#include "gameui\swarm\basemodpanel.h"
using namespace BaseModUI;
void openwindow()
{
	CBaseModFrame* mainMenu = CBaseModPanel::GetSingleton().GetWindow( WT_MAINMENU );
	CBaseModPanel::GetSingleton().OpenWindow( WT_GAMESETTINGS, mainMenu );
}
The arguments are:
; WINDOW_TYPE &wt
: An enum value that defines which precise window to open.
; * caller
: The window which requested this one to open. Among other things, this becomes the target of 'back' buttons on the new window.
; hidePrevious
: Hides caller if true.
; * pParameters
: Passed on to the new window.
OnOpen() is called on the opened window.
=== Startup ===
初始化顺序为：
# CGameUI::Initialize()
# CBaseModPanel::RunFrame()
# CBaseModPanel::OnGameUIActivated()
# CBaseModPanel::OpenFrontScreen()
# CBaseModPanel::OpenWindow()
CBaseModPanel is a singleton; CBaseModFrame 是所有窗口的基类。
Zh/Game initialization

译者注：因个人翻译水平有限以及涉入SDK领域未深，大部分的翻译都尽量在通畅的前提下进行直译，部分内容保留不译是为了文章的连贯性，也希望能有人帮忙完善，我在此感谢你们！
每个Source引擎游戏和模组的 'ignition circuit' 是一般命名为 <game>_client.cpp的文件。 它包括一些当server.dll被加载，当世界生成或是一个玩家连接等情况调用的scopeless函数 (即不在一个 （【术语】类） 里面) 它的一个主要目的是为所有连接的客户端创建一个玩家实体。显然，一个项目里只能有一个 game_client.cpp 文件！
== 自定义 <game>_client.cpp ==
建议自己创建一个 <game>_client.cpp文件而不是修改 hl2_client.cpp 或是 hl2mp_client.cpp。定义在该文件的函数是全局函数，所以为了创建你自己的 <game>_client.cpp 文件，你只需复制上述两个文件中的一个并重命名，然后把旧的那个文件exclude for the build. (右击->属性-> from build -- 确定),
== Client.cpp 函数 ==
许多在server中处理的控制台命令等只能作用于一个玩家，比如说改变玩家的模型，在游戏里发送信息或是开启无敌模式等等。
这些代码为所有游戏以及模组所共享，所以不要把任何game-specific放在这里！
== Game_client.cpp 函数 ==
_client.cpp里的函数实际上是在引擎内被调用，并且像这样的函数必须总是保持一致。
; void ClientPutInServer()
; void ClientActive()
: 当一个玩家连接并且分别激活的时候调用。这些函数定义用于玩家的c++类
; void respawn()
: 当一个玩家死亡的时候由ClientKill()和DeadThink()调用。在联机游戏中产生布娃娃，在单人游戏中重新加载最后保存的存档。
; * GetGameDescription()
: 返回 *.dll 文件的描述名 (比如说半条命或者军团要塞2)。
; * FindEntity()
: 当 的目标名被invoke。
; void ClientGamePrecache()
: 预缓存玩家的函数 
; void GameStartFrame()
: 每帧需要运行一次的点实体 for game-specific。谨慎使用。
; void InstallGameRules()
: 决定使用哪条游戏规则。使用CreateGameRulesObject( ClassName )命令来决定。
== Game loop ==
(由 James Gadbury的报告 by James Gadbury) 改写
* CServerGameDLL::GameFrame()
** GameStartFrame()
** Physics_RunThinkFunctions() - Runs主要的物理模拟循环against所有实体，除了玩家实体。
*** Physics_SimulateEntity(player)
**** CBasePlayer::PhysicsSimulate()
**** CBasePlayer::PlayerRunCommand() - 
***** CPlayerMove::RunCommand()
****** CPlayerMove::StartCommand()
****** CBasePlayer::PreThink()
****** CBasePlayer::Think()
****** CPlayerMove::SetupMove() - applies a usercmd
******* CGameMovement::PlayerMove()
******* CGameMovement::FullWalkMove()
****** CPlayerMove::FinishMove()
****** CBasePlayer::PostThink()
****** CPlayerMove::FinishCommand()
** IGameSystem::FrameUpdatePostEntityThinkAllSystems() - 
** g_pGameRules->EndGameFrame()
Category:编程
Zh/Game text

Category:GUI Entities
 
此实体用于在玩家屏幕上显示文本，并且不像使用titles.txt文件内预置的文本，此实体的文本内容可以直接在Hammer中定义。在多人游戏中，此实体通常只会向触发“Display”输出的触发者显示文本。通过勾选“All Players” Flag可以给所有玩家显示文本
__TOC__
== 注意事项 ==
Game_text作为HUD元素的一部分渲染的，更准确的说，是里的元素。 
由于历史遗留问题，该实体最初是为低分辨率显示器创建的，所以默认情况下被限制为基于640x480分辨率进行缩放
这会导致分辨率高于1920x1080时出现缩放问题，文本会变得更大，并且一部分文本会被隐藏
该问题还会导致仅适用屏幕的部分区域进行文本绘制，并且长行文本或屏幕边缘附近的文本在宽屏上会被裁剪。这回影响其他适用元素渲染的文本，比如经典的“A. I. Disabled”提示
== 选项 ==
== 键值 ==
:
:*0: 淡入/淡出。整个文本逐渐显示，然后逐渐消失
:*1: 致谢名单。
:*2: 逐字显示。文本逐字显示，然后整个文本淡出
:*0: Channel 0 （可能用于部分HUD元素） 
:*1: Channel 1
:*2: Channel 2 ( 小号文本)
:*3: Channel 3 ( 大号文本)
:*4: Channel 4
:*5: Channel 5 （可能用于部分HUD元素） 
== 输出 ==
== 参加 ==
* - 在指定团队的屏幕上显示带有图标的自定义HUD文本
* - 一个类似的实体，以更大的灵活性在游戏内显示自定义文本
* - 一个类似的实体，指向游戏上的指定位置
* - 显示自定义HUD文本。通常用于显示按键绑定
* - 在玩家屏幕上显示预置的文本
* - 一个类似的实体，在游戏内的特定位置显示一条小型自定义文本
* Customizable triggered HUD-message - 如何创建一个类似于game_text但可以通过触发输入接收消息字符串的新实体。
== 注释与外部引用 ==
# 在L4D2中，该功能无法使用。以下是该问题的技术说明
Zh/Games Supported By The Source SDK

== 直接支持的游戏 ==
Source SDK 支持直接编辑以下游戏：
* 
* 
* 
* 
* 
* 
* 
* 
* 
以下游戏有自己的 Source SDK 或者 开发者工具包（创作工具/Authoring Tools）：
* 
* 
* 
* 
* 
* 
== 用户支持 ==
* 
* 
* 使用起源引擎开发的任何模组。
== 不支持的游戏 ==
Source SDK不支持编辑以下游戏：
* 以及使用该引擎的其他游戏 (如 ).
Half-Life SDK 2.3 应该用于 金源引擎（ GoldSrc） 游戏，如《半条命》。它包含一个旧的编辑器版本 Hammer 3.4，应手动升级至 3.5。
Category:Source SDK FAQ
Zh/Garry's Mod

== 概述 ==
Garry's Mod 诞生于Something Awful论坛.虽然大家都在享受着,但是它的开发已经放慢了速度.所以Garry创建了Garry's Mod,一个简单的模组.
从那时起,Garry's Mod 已经更新了13次,每次都有新功能.最新版本具有大量功能,例如简单的布娃娃摆姿势、键盘、门、按钮、炸药、焊接,以及几乎所有制作装置以及漫画和机器所需的一切.它现在是独立的,并且适用于用户拥有的每个Source游戏.
Garry's Mod 本身拥有庞大的模组基础.支持Lua,被粉丝用来制造新武器、实体、游戏模式.游戏模式范围从默认的沙盒到角色扮演、生存、运动等等
Garry's Mod 是迄今为止最受欢迎的模组,也是第一个通过Steam分发的模组.
Garry's Mod 使用source2006分支，但Facepunch Studios在此基础上添加了后来分支的代码，所以许多source2013之后的着色器是不可用的 
== Garry's mod 也是开发工具 ==
 对Source开发人员很有用,并且可以极大地完成制作新模组所需的某些任务. 如:
:; 一种在 MAP_EDIT 模式下放置/移动道具的方法
:; 一个对用户友好的演示工具: Chat with other modders and share ideas through text and usage of Gmod tools. Devs can use Gmod's tools to cooperatively share ideas about mod scenarios with players. Gmod can also be used to demonstrate a new map and discuss features without NPCs.
:; Stress-test Source: Use Garry's Mod to test abusive usage of the Source engine, like spawning hordes of zombies, spamming explosive barrels and other intensive things.会崩溃吗?会冻结吗?网络缓冲区会溢出吗?
:; 快速测试游戏元素: 随着Lua脚本的实现,你可以在不使用Source SDK的情况下创建新的游戏元素和武器,并使过程进行得更快.
== 地图编辑器 ==
== 售卖平台 ==
Garry's Mod 在Steam上可用. Garry和Valve将利润五五分. Garry's Mod 可能没有零售版。
== 外部链接 == 
* 官网
* Garry的博客
* 开发者网站
* 过时的ModDB页面
* 
* 维基百科上的Garry's Mod
Zh/Generic Keyvalues, Inputs and Outputs

The following are generic keyvalues, inputs and outputs available to all entities. They are not necessarily in FGD of every game / entity but do exist on each entity as they come from CBaseEntity class. If they are not in FGD for an entity it may be because using them for that entity is unintended or may not work well (ex. parenting a ) and such cases are up for testing and documenting those would be on given entity's page. Some entities may also override the functionality of the given k/i/o and those cases also would be documented on the given entity's page.
== Keyvalues ==
== Inputs ==
== Outputs ==
== See Also ==
* CBaseEntity
* FGD
Zh/Getting the portalgun at the start of map correctly

==介绍==
在关卡过渡时，你不希望玩家听到传送门枪升级的声音，也不希望玩家在从关卡过渡中加载新地图时看到不知从哪里冒出来的传送门枪。本指南将向您展示如何解决此问题。
==建造==
1. 创建一个实体并将其放在或玩家出生地，然后将它命名为portalgun.
2. 创建一个然后将它起名为portalgun_template。然后把设置template 1到portalgun.
3. 创建一个实体并输入以下属性：
::
My Output >	Target Entity 	Target Input	Parameter	Delay	Only Once
OnNewGame 	portalgun_template	ForceSpawn 	<none> 	0.00 	No
传送门枪现在应该只在你直接加载到地图中时生成，在关卡转换生效时不会生成。
Zh/Glass creation (GoldSrc)

本文将指导您使用 Valve Hammer 编辑器为 GoldSrc（半条命）引擎创建一个简单的玻璃。
== 可破坏的玻璃 ==
# 打开纹理浏览器
# 选择你喜欢的玻璃纹理
# 创建一个刷子（brush）
# 打开对象属性窗口(高亮刷子并按下 )
# 将对象类更改为 func_breakable
# 确保材质类型为玻璃
# 更改对象的 FX 量以修改玻璃的透明度（1-255；1 是完全透明，255 是完全不透明）
# （可选）更改对象的强度以修改打破玻璃所需的伤害量（值越高，玻璃的“生命值”越高）
# （可选）将碎片方向从随机更改为相对于攻击方向
# （可选）将渲染模式从纹理更改为添加以改变外观
== 不可破坏的玻璃 ==
# 打开纹理浏览器
# 选择你喜欢的玻璃纹理
# 创建一个刷子
# 打开对象属性窗口（高亮刷子并按下 ）
# 更改对象的 FX 量以修改玻璃的透明度（1-255；1 是完全透明，255 是完全不透明）
# （可选）将渲染模式从纹理更改为添加以改变外观
== 外链 ==
 (originally posted on the VERC; mirrored from the original on the TWHL Wiki)
Category:Tutorials
Category:GoldSrc Tutorials
Zh/GoldSrc

(也被称为, 以前简称为) 是由于1996年创造的3D电子游戏引擎。 它是90年代末、00年代初许多著名游戏的引擎, 如, , , 与 。金源引擎是引擎的魔改版本，运行在C++上（带有一些C）。金源引擎及其关卡编辑器由 Valve 发布供公众使用，使其成为无数社区mod的开发工具。
金源引擎被它的继任者替代，即2004年所发布的 ,目前它是Valve游戏mod的首选引擎。 尽管金源引擎已经过了巅峰时期，但许多玩家和一些开发者仍热衷于开发模组与游戏。
至 2023 年，Valve 正在积极更新和维护该引擎，最近随着的 25 周年更新，增加了引擎限制并修复了许多错误。
==特性==
* 集群AI - 可以聚集在，使用Houndeyes来看见对方
* 骨骼动画 - 与《雷神之锤》中的顶点动画相比，骨骼动画更加稳定
* 更多边数 - 比《雷神之锤》更加精细的模型，允许更多的边数
* 高清模型
* 脚本序列 - 广泛用于讲述《半条命》的故事
* ,
* A3D/EAX 硬件加速音频 - 改进了 音效（例如消除回声的嗡嗡声），并添加了环绕声支持（自 2013 年 SteamPipe 更新以来已删除）。
==== 自2003年来的Steam更新====
* - Valve 的自定义 GUI 界面，类似于大多数 Windows 控件。
* 游戏内广告 （，自 SteamPipe 以来已删除） - 于 2007 年推出。
==== 自2013年来的SteamPipe更新====
* 支持
* 支持
==== 自25周年纪念来的更新====
* 减少引擎限制 - Valve 减少了引擎限制，允许更多实体和详细地图。
* 实体 ，来自 
*原生 支持
* 支持 - 添加了 Steam Input支持，使游戏能够支持更多控制器。
=== ===
金源有两种渲染器： 和 （之前有三个，因为支持在 2013 年 SteamPipe 更新中被删除），这两个渲染器都有差异。
* 彩色照明 - 雷神之锤只有单色照明
* 透明纹理 - 地图里可以弄玻璃了
* 透明水体
* 水波纹
* 水波 
* 动态光圈模拟 - a自动调整屏幕亮度。类似于起源的。 
* 
* 纹理过滤 - 首次引入于GLQuake，一个在 OpenGL 上运行的版本。
* - 游戏内模型的多边形和纹理质量更高。
==== 自2013年来的SteamPipe更新====
* FBO 渲染器 - 一种新的渲染游戏方法，它允许 MSAA 与 GoldSrc 引擎一起使用。这也允许游戏在无边框窗口中以全屏方式运行，并且与显示器不同的纵横比（例如，16：9 上的 4：3）不会被拉伸以填充黑条。
* MSAA - 金源现在原生支持抗锯齿，特别是 MSAA 4X，这在大多数现代硬件上默认启用。这将减少锯齿状边缘/阶梯对几何体的影响。
==== 自25周年纪念来的更新====
* 着色器支持 (OpenGL)
** 借助着色器支持，它还修复了在 OpenGL 下无法正常工作的过亮照明问题。
* 模板阴影
* 在 上的支持
== 版本和分支 ==
== 半条命 SDK ==
截止至2013年8月, 它可用于的 "工具" 选项下。 随之而来的是 , 3ds Max 提供了许多切割和制作NPC以及玩家和武器模型的方法, 用于将纹理打包到 WAD 中的工具,有关将语音聊天等联机功能实现到中的详细文档。
最新版本的 SDK 的完整源代码可以在 Valve的Github页面找到
== 使用金源的游戏 ==
有关更多游戏以及有关使用金源引擎的游戏的文章，请参阅 
== 规格 ==
== Bugs and Limitations ==
Use GitHub in order to prevent duplicate or outdated bug reports at the wiki.
== 花絮 ==
* "金源" 的名称来自 引擎。 发售的前几个月, 半条命引擎分为两个分支: 与 . 分支是代码库的gold master 版本, 并用于游戏的最终发布。 分支, comparatively, would be continually iterated upon, adding and changing features for use in , with the term "Source Engine" eventually being picked up by marketing.
== 参见 ==
* For information about converting GoldSrc content to the Source engine, see 
* GoldSrc on Wikipedia
* 
* 
== 外部链接 ==
* Source code + GitHub Issues - bug reports and the GoldSrc source code can be found here.
== 参考文献 ==
# User talk:Erik Johnson (Revision as of 12:53, 1 September 2005)
# Half-Life 25th Anniversary Update
# [[Talk:Cry of Fear#PARANOIA -> Cry of Fear|Relation between Paranoia & COF]]
Zh/Grenade launcher projectile

这是 射击的榴弹。在接触一个表面时，它会以大闪光爆炸，除非表面是天空盒的一部分，然后手榴弹被删除。
如果这个实体是手动生成的，它将保持原位并且不会造成伤害，将站在上面的玩家推开。因此， 用户对此实体更感兴趣。
== NetProps ==
== 控制台变量 ==
=== 默认属性 ===
{{varcom|suf=:zh-cn|grenadelauncher_startpos_forward|16.0|s|
{{varcom|suf=:zh-cn|grenadelauncher_startpos_right|4.0|s|
{{varcom|suf=:zh-cn|grenadelauncher_startpos_up|0.0|s|
=== 针对于 Tank ===
== 另请参阅 ==
* 
* 
* 
*
Zh/Grouping and VisGrouping

即便Hammer的地图能够包含上百---甚至上千---个物体。Hammer通常有两种方式来追踪你地图上的物品。正常组和可见组（VisGroups）。
= 组 =
正常组是用来将选中的物体"粘"在一起的。
上面显示的物体已经被做成一组固体。当物体是未组合状态（ungrouped）时，如果你点击一个固体，只有那个固体会被选中，你得按住CTRL去点击每一个地方（或者在那些东西上画出一个选择框）。然而，当物体是组合状态（grouped）时，你可以点击任何一个固体来选中这个组里所有的东西。 
* 固体不需要互相接触也可以组成一个组。
* 组可以包含其他的固体组和实体组。
* 你可以单独操作一个组里的一个物体，只需要启用忽略组（Ignore Groups）选项。
* 组物体可以和可见组（VisGroups）结合（看看下面）。
* 组物体跟Source引擎没有关系，组只是为了方便Hammer里物体选择。
要组合物体：
# 选择你所要组合在一起的物体。
# 从工具菜单（Tools Menu）中选择组（Group），或者按下热键。
# 当物体已经被组合在一起时，可以作为一个固体选择，移动和编辑。
= 可见组（VisGroups） =
可见组（VisGroups）一开始是可见的组。可见组通过让你控制你屏幕上能看到的东西，来使你可以方便地管理物体。有了可见组，你可以果断地分配物体到一个特定的组，之后你可以切换其可见性为可见或不可见。
隐藏一组物体：
# 选择一组你想要隐藏的物体。
# 从查看菜单（View Menu）中选择"隐藏所选对象"（Hide selected objects）。
# 新可见组（New VisGroup）对话框会出现。确认创建一个新可见组（Create a New VisGroup）是选中的，然后点击OK。
# 一个名为"一组物体"的可见组已经创建，并且在过滤器控制栏（Filter Control Bar）里标记为不可见（not visible）。 
比方说，你的地图里有以下部分：
现在，你想要让家具成为一个组，但是仍然想单独地移动每一个物体。这恰恰就是"可见组"好用的地方。
首先，选择一个家具，之后从查看菜单（View Menu）中选择"隐藏所选物体"（Hide selected objects）。新可见组（New VisGroup）对话框会出现。
点击'OK来创建一个新的可见组。这会做两件事：在2D和3D视图里隐藏该物体，之后以所选的物体创建一个新的可见组。
新的可见组会出现在过滤器控制工具栏里，名字出现在包含的物体数量之后。要改变可见组的名字，使其更合适的话，选择可见组， 然后再点击它一次。你可以将名字改成你喜欢的。你也可以点击名字左边，来切换可见组的可见性。你必须按下"应用"（Apply）按钮才能让改变生效。
一些你可以在"过滤器控制工具栏"（Filter Control toolbar）里用鼠标进行的操作：
* 拖动一个可见组到另一个可见组。第一个可见组会和第二个可见组合并，并且第二个可见组保持原来的名字。
* 拖动一个可见组到"过滤器控制对话框"（Filter Control dialog）外，会弹出一个对话框询问你是否想删除这个可见组。
* 使用右键拖动一个可见组到另一个可见组上。第一个可见组会变成第二个的父节点。
* 拖动一个子节点上的可见组到列表底部的空白空间上，该节点关系会被移除，并且可见组会重新出现在列表的最顶层。
如果你让这个家具组可见，那么选择它然后按下"标记"（Mark）按钮，这个组就会高亮显示在2D和3D视图上。
点击编辑（Edit）按钮可以弹出"物体组对话框"（Object Groups dialog）。
这个对话框允许你改变已存在的可见组的名字和颜色，或者删除它们。删除可见组并不会真正的删除组里的物体，只是消除可见组，将它们标记为独立的未关联的物体。你也可以通过使用新组（New Group）按钮来创建一个新的（空的）可见组。
最后一种可以使用可见组的方式是使用可见组（VisGroup）标签页里的"物体属性（Object Properties）"。要分配物体到一个可见组里，只需要选择合适的组。要从可见组中移除这个物体，只需要去掉所有复选框的钩。