GameInfo.txt 文件的结构

From Valve Developer Community
Jump to: navigation, search
English Français Polski Русский 日本語
关于HL1/GoldSrc,请查阅liblist.gam.

gameinfo.txt是用来描述你的mod.就如同它名字所表达的那样,就如同一个网站的指导手册一样,并且制定游戏的内容数据哪些可以被访问. 它存在于你的根目录下别且就像是Steam用来标记那样, Source和SDK工具也需要它的存在.

SDK会在你开始制作一个MOD时,自动生成一个gameinfo文件. 这将会使得你有一个很好的开头, 但是别以为你可以一劳永逸,你还需要在适当的时候编辑它

Note:布朗值将表示为整数
Warning:如果一个数值含有空格或者制表,请使用 "引号"进行标注.

界面设置

名字

game <字符值>
请使用ASCII码来命名你的MOD名. MOD的名字显示在Steam库中或windows窗口上, 但是 不会在主菜单里(好吧除非你不想用title).
title <字符值>
title2 <字符值>
请使用Unicode码来编辑在主菜单里显示的标题. 由于字体的不同所以无法保证在Steam或者桌面上显示样式是一样.
title2 (还有 3, 4,等等)它允许你在不同的情况下显示不同的标题
Note:这有可能导致有些字符无法显示因为默认字体可能没有你所使用字符的样式,请通过编辑 ClientTitleFontresource\clientscheme.res 来改变默认字体. 默认的("HalfLife2")字体可以显示大多数的字符.
gamelogo <布朗值> (New with Source 2007)
不是显示你的标题title/title2在主菜单里面, 而是显示resource\GameLogo.res. 请查阅在菜单上添加你的logo.

设置

type <singleplayer_only | multiplayer_only>
这将决定在设置选项里是否会有单人和多人模式,多人模式可能会影响steam的下载速度,如果你的mod含有独立的单人和多人模式,请删除
nodifficulty <布朗值>
在设置面板中隐藏困难选项 (如果你的mod是多人游戏的mod的话,这将会自动生成 multiplayer_only)
hasportals <布朗值> (New with Source 2007)
显示入口选项在设置面板中
nocrosshair <布朗值>
隐藏准星设置在多人游戏设置中
advcrosshair
允许一些高级准星在多人游戏设置中出现. To do: 如何实现.
nomodels <布朗值>
隐藏多人游戏选项
nohimodel <布朗值>
Hides toggle checkbox for cl_himodels, which was used in GoldSrc. Only displayed properly if cl_himodels exists in the first place!

Steam游戏相关

developer <字符>
你的团队名 (或者就是你的名字!)
developer_url <字符值>
你的或者你这个Mod的网站.必须以http://开头.
manual <字符值>
游戏手册相关,可以指向一个本地文件或者是一个URL.
icon <字符值>
由本地路径组成,有一个16x16像素的TGA文件组成这将成为你在steam显示的图标. 请'不要包含文件扩展名.32位的图标是用来显示在Steam详细信息页面的,必须放在icon之后,并且声明<icon>_big.tga.
Note:如果是要保留透明度的话,TGA文件必须要使用32位并且保留alpha通道的储存方式.

其他

hidden_maps <subkey>
被指定的地图将不会成为在"创建服务器"所出现选取地图选项中(但是任然可以使用控制台来创建).
具体的语法是mapname 1,每行只循序有一项.请不要包含.bsp.记得通过{ and }来关闭或者打开子键.
nodegraph <布朗值> (New with Source 2007)
当设置为false的时候组织引擎创建网点图s.
GameData <字符值> (New with Source 2007)
指向FGD文件, 相对于Hammer的路径. 只有编译工具才会使用到,不包括Hammer.
InstancePath <字符值> (New with Source 2007)
The default location in which to look for instance VMFs.

SupportsDX8 <布朗值> (New with Left 4 Dead)

防止游戏运行与DX8以下的版本,因为他不能支持许多游戏特效

安装内容相关

There are two stages to getting at a game's content:

  1. Mount its AppID
  2. Mount its folder as a searchpath

This all happens within the filesystem key. See this example.

Warning:Your mod will not be protected by VAC if it is based on a single-player game.

Commands

SteamAppID <int>
The AppID of the game the mod is to be based on. The mod will have access to all of this game's content, and will not be playable unless it is installed.
Tip:For most mods this will be either 215 (Ep1) or 218 (OB), both of which point to different versions of the Source SDK Base.
AdditionalContentId <int> (MODS ONLY)
Another AppID that the mod has access to. This feature was added to the SDK source code but somehow never made it to Valve's other games; you will have to build your own binaries to use it. If you need to mount multiple apps, make these changes.
Warning:Your mod will run regardless of whether or not the user owns the game that you mount content for. If the game isn't owned the content will not be mounted, and error signs will appear everywhere instead.
Bug:
The engine understands this command, but the SDK tools unfortunately do not. The best solution, currently, is to copy the content of the game to a location on your hard drive and add an absolute SearchPath to it (see below). Remember to delete the SearchPath before you release.
ToolsAppId <int>
This is the AppID of the SDK currently in use. Currently, the only valid ID is 211 (the Source SDK). To do: What about the L4D Authoring Tools?

SearchPaths

SearchPaths is a subkey within FileSystem. It contains a list of folders (in the form Game <path>, once per line) that the engine will look for files in.

The engine starts looking for a file in the first path. If it finds it there it stops, but otherwise it looks in the second. This means that the order in which you provide search paths is important: files in a higher path override those in a lower one.

A search path is normally either relative to the SteamAppID's root directory (i.e. where hl2.exe is located) or absolute (e.g. C:\SomeFolder\). Thankfully there are two "magic words" which are more useful:

|all_source_engine_paths|
Root folders of both the SteamAppID game and any AdditionalContentId games you have mounted
|gameinfo_path|
Folder containing your mod's gameinfo.txt

Localization

Source automatically creates localised search paths. If you mount hl2, then when your mod runs in French hl2_french is automatically mounted just above it. To do: Does this also apply for the mod folder?

(Different languages can have different AppIDs, but don't worry. Steam handles all that internally.)

Example

The following code would mount the content of both Episode Two and Portal:

FileSystem
{
	SteamAppId	420	// Ep2
	ToolsAppId	211
	AdditionalContentId	400	// Portal
 
	SearchPaths
	{
		Game	|gameinfo_path|.	// Your mod folder should always come first
		Game	|all_source_engine_paths|ep2
		Game	|all_source_engine_paths|episodic	// Ep2 also uses some Ep1 content
		Game	|all_source_engine_paths|portal
		Game	|all_source_engine_paths|hl2	// HL2 should always come last
	}
}

Episode Two comes first and so has priority. This means that you won't be able to use portals, as the Ep2 binaries will be loaded - but you could pitch GLaDOS against a pack of Hunters!

If you did want to use Portal's binaries, you would simply promote its search path above Ep2's. But if there are custom binaries in |gameinfo_path| (your mod's folder) then they will be loaded in both cases.