Эта статья документации для всего, что использует платформу Source. Нажмите для получения дополнительной информации.

Ru/Gameinfo.txt: Difference between revisions

From Valve Developer Community
< Ru
Jump to navigation Jump to search
No edit summary
No edit summary
 
(17 intermediate revisions by 9 users not shown)
Line 1: Line 1:
{{DISPLAYTITLE:Gameinfo.txt}}{{otherlang2
{{LanguageBar}}
| en = The GameInfo.txt File Structure
{{Source topicon}}
| pl = The GameInfo.txt File Structure:pl
<center style=color:white;font-size:20px;font-weight:bold;padding:5px>Game Definition Files</center>
| jp = The GameInfo.txt File Structure:jp
{{TabsBar|main=Gameinfo.txt}}
| es = The GameInfo.txt File Structure:es
{{seealso|[[:Category:Gameinfo]]}}
}}
:''Для Half-Life 1/{{L|GoldSrc}}, см. статью {{L|The liblist.gam File Structure|liblist.gam}}.''
 
:''Для Half-Life 1/[[GoldSrc]], см. статью [[The liblist.gam File Structure|liblist.gam]].''


{{toc-right}}
{{toc-right}}
Line 12: Line 10:
'''<code>gameinfo.txt</code>''' содержит описание вашего мода. Он содержит такие метаданные, как его имя, ссылка на веб-сайт или руководство, и определяет, какие игры он использует. Он хранится в папке вашего мода и нужен для определения мода в Steam. Source и SDK инструменты используют его, для получения информации о подгружаемом контенте.
'''<code>gameinfo.txt</code>''' содержит описание вашего мода. Он содержит такие метаданные, как его имя, ссылка на веб-сайт или руководство, и определяет, какие игры он использует. Он хранится в папке вашего мода и нужен для определения мода в Steam. Source и SDK инструменты используют его, для получения информации о подгружаемом контенте.


SDK launcher сгенерирует gameinfo.txt, как только вы запустите Create a Mod Wizard. Он подходит для разработки, но перед релизом, вы захотите изменить информацию о игре.
SDK launcher сгенерирует gameinfo.txt, как только вы запустите Create a Mod Wizard. Он подходит для разработки, но перед релизом, вы захотите изменить информацию об игре.


{{note:ru|[[Boolean:ru|Логические]] значения представлены в виде [[integer:ru|целых числел]].}}
{{Note|{{L|Boolean|Логические}} значения представлены в виде {{L|integer|целых числел}}.}}
 
{{Warning|Если значение имеет пробелы, нужно "поместить его в кавычки".}}
{{warning:ru|Если значение имеет пробелы, нужно "поместить его в кавычки".}}


== Настройки UI ==
== Настройки UI ==
=== Название ===
=== Название ===
 
;<code>game <{{L|String|строка}}></code>
;<code>game <[[string|строка]]></code>
: Название вашего мода в [http://ru.wikipedia.org/wiki/ASCII ASCII]. Отображается в Steam и на панели задач Windows, но ''не'' в главном меню (если вы не определили <code>title</code>).
: Название вашего мода в [http://ru.wikipedia.org/wiki/ASCII ASCII]. Отображается в Steam и на панели задач Windows, но ''не'' в главном меню (если вы не определили <code>title</code>).
; <code>title <строка></code>
; <code>title <строка></code>
; <code>title2 <строка></code>
; <code>title2 <строка></code>
: Эти значения отображаются в виде [http://ru.wikipedia.org/wiki/%D0%AE%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4 Юникода] в главном меню вашего мода. Они могут отличаться от отображаемых в Steam и на рабочем столе, если вы используете свой шрифт.
: Эти значения отображаются в виде [http://ru.wikipedia.org/wiki/%D0%AE%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4 Юникода] в главном меню вашего мода. Они могут отличаться от отображаемых в Steam и на рабочем столе, если вы используете свой шрифт.
: <code>title2</code> (и 3, 4, и т.д.), чтобы применять разные стили к различным частям вашего названия. {{note:ru|Вполне возможно, ваш заголовок не будет отображаться, пока вы не отредактируете <code>ClientTitleFont</code> в <code>resource\clientscheme.res</code> для изменения шрифта. По умолчанию ("HalfLife2") имеет только определенный набор символов, и большая часть текста не будет отображаться правильно.}}
: <code>title2</code> (и 3, 4, и т.д.), чтобы применять разные стили к различным частям вашего названия. {{Note|Вполне возможно, ваш заголовок не будет отображаться, пока вы не отредактируете <code>ClientTitleFont</code> в <code>resource\clientscheme.res</code> для изменения шрифта. По умолчанию ("HalfLife2") имеет только определённый набор символов, и большая часть текста не будет отображаться правильно.}}
; {{EP2 add:ru|<code>gamelogo <[[boolean:ru|логическое значение]]></code>}}
; {{EP2 add:ru|<code>gamelogo <{{L|boolean|логическое значение}}></code>}}
: Вместо отображения текста <code>title</code>/<code>title2</code>, отображает содержимое <code>resource\GameLogo.res</code>. См. [[Adding Your Logo to the Menu:ru|Добавление Своего Лого в Меню]].
: Вместо отображения текста <code>title</code>/<code>title2</code>, отображает содержимое <code>resource\GameLogo.res</code>. См. {{L|Adding Your Logo to the Menu|Добавление Своего Лого в Меню}}.


=== Настройки ===
=== Настройки ===
; <code>type <singleplayer_only | multiplayer_only></code>
; <code>type <singleplayer_only | multiplayer_only></code>
: Влияет на появление закладок в настройках. Может так же влиять на скорость загрузки в Steam. Пропустите, если ваш мод как однопользовательский, так и многопользовательский.
: Влияет на появление закладок в настройках. Может так же влиять на скорость загрузки в Steam. Пропустите, если ваш мод как однопользовательский, так и многопользовательский.
; <code>nodifficulty <[[boolean:ru|логическое значение]]></code>
; <code>nodifficulty <{{L|boolean|логическое значение}}></code>
: Скрывает вкладку Уровень сложности (это случается автоматически, если ваш мод <code>multiplayer_only</code>)
: Скрывает вкладку Уровень сложности (это случается автоматически, если ваш мод <code>multiplayer_only</code>)
; {{EP2 add:ru|<code>hasportals <[[boolean:ru|логическое значение]]></code>}}
; {{EP2 add:ru|<code>hasportals <{{L|boolean|логическое значение}}></code>}}
: Показывает вкладку настроек "Порталы"
: Показывает вкладку настроек "Порталы"
; <code>nocrosshair <[[boolean:ru|логическое значение]]></code>
; <code>nocrosshair <{{L|boolean|логическое значение}}></code>
: Скрывает настройки прицела в мультиплеере
: Скрывает настройки прицела в мультиплеере
; <code>advcrosshair</code>
; <code>advcrosshair</code>
: Включает дополнительные настройки прицела.
: Включает дополнительные настройки прицела.
; <code>nomodels <[[boolean:ru|логическое значение]]></code>
; <code>nomodels <{{L|boolean|логическое значение}}></code>
: Скрывает настройку модели в мультиплеере
: Скрывает настройку модели в мультиплеере
; <code>nohimodel <[[boolean:ru|логическое значение]]></code>
; <code>nohimodel <{{L|boolean|логическое значение}}></code>
: Скрывает флажок для переключения <code>cl_himodels</code>, который использовался в [[GoldSrc]]. Отображается правильно, только если <code>cl_himodels</code> расположен в первую очередь!
: Скрывает флажок для переключения <code>cl_himodels</code>, который использовался в {{L|GoldSrc}}. Отображается правильно, только если <code>cl_himodels</code> расположен в первую очередь!


=== Список игр в Steam ===
=== Список игр в Steam ===


; <code>developer <[[string|строка]]></code>
; <code>developer <{{L|String|строка}}></code>
: Название вашей команды (или ваше имя!)
: Название вашей команды (или ваше имя!)
; <code>developer_url <строка></code>
; <code>developer_url <строка></code>
Line 57: Line 51:
: Ссылка на руководство к моду; может быть локальная.
: Ссылка на руководство к моду; может быть локальная.
; <code>icon <строка></code>
; <code>icon <строка></code>
: Локальный путь, относительно gameinfo.txt, иконка, отображающаяся в Steam. ''Не'' пишите расширение файла. Должна быть в несжатом 16x16 TGA. Чтобы прозрачность работала, TGA должен быть сохранен в режиме 32-bit с включенным альфа-каналом.
: Локальный путь, относительно gameinfo.txt, иконка, отображающаяся в Steam. ''Не'' пишите расширение файла. Должна быть в несжатом 16x16 TGA.
 
Большие 32px иконки, которые отображаются в детальном виде должны находится там же где и обычная 16px иконка, и должна называться <code>&lt;icon&gt;_big.tga</code>. {{note|Чтобы прозрачность работала, TGA должен быть сохранён в режиме 32-bit с включённым альфа-каналом.}}
; {{2009 add|<code>SupportsDX8 <bool></code>}}
: Заставляет запустить игру в режиме DirectX8, отсюда - не все эффекты.
=== Разное ===
=== Разное ===


Line 64: Line 60:
: Карты, которые нельзя загрузить через диалог "create server" (их можно загрузить через консоль).
: Карты, которые нельзя загрузить через диалог "create server" (их можно загрузить через консоль).
: Синтаксис: <code>mapname 1</code>, по одной записи на строку. Не пишите <code>.bsp</code>. Помните, чтобы открыть или закрыть подраздел, используйте { и }.
: Синтаксис: <code>mapname 1</code>, по одной записи на строку. Не пишите <code>.bsp</code>. Помните, чтобы открыть или закрыть подраздел, используйте { и }.
; {{EP2 add:ru|<code>nodegraph <[[boolean:ru|логическое значение]]></code>}}
; {{EP2 add:ru|<code>nodegraph <{{L|boolean|логическое значение}}></code>}}
: Когда ложь, запрещает движку создавать [[nodegraph|сетку навигации для NPC]].
: Когда ложь, запрещает движку создавать {{L|nodegraph|сетку навигации для NPC}}.
; {{EP2 add:ru|<code>GameData <строка></code>}}
; {{EP2 add:ru|<code>GameData <строка></code>}}
: Путь к FGD, относительно Hammer'а. В настоящее время не имеет никакого эффекта.
: Путь к FGD, относительно Hammer'а. В настоящее время не имеет никакого эффекта.
Line 73: Line 69:
== Подгрузка Контента ==
== Подгрузка Контента ==


{{warning:ru|Ваш мод не будет использовать защиту [[VAC]], если он базируется на одиночной игре.}}
{{Warning|Ваш мод не будет использовать защиту {{L|VAC}}, если он базируется на одиночной игре.}}


Существуют два этапа для добавления игрового контента:
Существуют два этапа для добавления игрового контента:
Line 80: Line 76:
# Монтирование папки через searchpath
# Монтирование папки через searchpath


При этом все происходит в ключе <code>filesystem</code>. См. ниже для примера.
При этом всё происходит в ключе <code>filesystem</code>. См. ниже для примера.


; <code>SteamAppID <[[integer:ru|целое число]]></code>
; <code>SteamAppID <{{L|Integer|целое число}}></code>
: [[Steam Application IDs|AppID]] игры, на которой базируется мод. Мод имеет доступ к любому доступному игровому контенту, если необходимый контент не установлен, он не будет воспроизводится. {{tip:ru|Для большинства модов это будет либо 215 (Ep1), либо 218 (OB), каждый из них использует разную версию [[Source SDK Base:ru|Source SDK Base]].}}
: {{L|Steam Application IDs|AppID}} игры, на которой базируется мод. Мод имеет доступ к любому доступному игровому контенту, если необходимый контент не установлен, он не будет воспроизводится. {{Tip|Для большинства модов это будет либо 215 (Ep1), либо 218 (OB), каждый из них использует разную версию {{L|Source SDK Base}}.}}
; {{EP2 add:ru|<code>AdditionalContentId <целое число></code>}}
; {{EP2 add:ru|<code>AdditionalContentId <целое число></code>}}
: Мод для другой игры имеет доступ только к (и перечисление). В <code>AdditionalContentId</code> может быть указан любой номер. {{bug:ru|Эту команду понимает движок, но не SDK инструменты! Лучшим решением, на данный момент, является копирование контента игры на локальный жесткий диск и добавления абсолютного пути в <code>SearchPath</code> (см. ниже). Не забудьте удалить SearchPath перед релизом.}}
: Мод для другой игры имеет доступ только к (и перечисление). В <code>AdditionalContentId</code> может быть указан любой номер. {{Bug|Эту команду понимает движок, но не SDK инструменты! Лучшим решением, на данный момент, является копирование контента игры на локальный жёсткий диск и добавления абсолютного пути в <code>SearchPath</code> (см. ниже). Не забудьте удалить SearchPath перед релизом.}}
:: {{tip:ru|Исправление доступно [[Mounting_Other_Content#Scripted_Mounting|здесь]]}}
:: {{Tip|Исправление доступно [[Mounting_Other_Content#Scripted_Mounting|здесь]]}}
; <code>ToolsAppId <целое число></code>
; <code>ToolsAppId <целое число></code>
: Это AppID который в настоящий момент использует SDK. В текущий момент, есть только один работающий ID - 211 (the Source SDK).
: Это AppID который в настоящий момент использует SDK. В текущий момент, есть только один работающий ID - 211 (the Source SDK).
Line 96: Line 92:
Движок начинает поиск с первого пути, и останавливает, как только находит то, что ему необходимо. Это означает, что порядок, в котором вы предоставляете список файлов - очень важен: сначала загружаются файлы из первого пути, а потом файлы из путей, расположенных ниже.
Движок начинает поиск с первого пути, и останавливает, как только находит то, что ему необходимо. Это означает, что порядок, в котором вы предоставляете список файлов - очень важен: сначала загружаются файлы из первого пути, а потом файлы из путей, расположенных ниже.


Путь поиска, как правило, является относительным к коревой директории <code>SteamAppID</code> (то есть где находится hl2.exe) или он абсолютный (например, <code>C:\SomeFolder\</code>). К счастью, существуют две строке, которые очень полезны:
Путь поиска, как правило, является относительным к корневой директории <code>SteamAppID</code> (то есть где находится hl2.exe) или он абсолютный (например, <code>C:\SomeFolder\</code>). К счастью, существуют две строки, которые очень полезны:


# '''<code>|all_source_engine_paths|</code>''' (основная директория <code>SteamAppID</code> и директория <code>AdditionalContentId</code>, которую вы используете)
# '''<code>|all_source_engine_paths|</code>''' (основная директория <code>SteamAppID</code> и директория <code>AdditionalContentId</code>, которую вы используете)
Line 105: Line 101:
Source автоматически создаст SearchPaths для локализаций. Если вы монтируете <code>hl2</code>, а игрок запускает ваш мод на Французском, <code>hl2_french</code> автоматически смонтируется надлежащим образом.
Source автоматически создаст SearchPaths для локализаций. Если вы монтируете <code>hl2</code>, а игрок запускает ваш мод на Французском, <code>hl2_french</code> автоматически смонтируется надлежащим образом.


{{note:ru|Языковые различия так же могут изменить AppIDы, но не волнуйтесь. Steam настроит все самостоятельно.}}
{{Note|Языковые различия так же могут изменить AppID, но не волнуйтесь. Steam настроит всё самостоятельно.}}


=== Пример ===
=== Пример ===


Следующий код смонтирует контент [[Episode Two]] и [[Portal]]:
Следующий код смонтирует контент {{L|Episode Two}} и {{L|Portal}}:


<source lang=ini>FileSystem
<source lang=ini>FileSystem
Line 127: Line 123:
}</source>
}</source>


Episode Two загружается первым и имеет приоритет. Это означает, что как только Ep2 бинарники будут загружены, вы не сможете использовать порталы, однако вы ''можете'' использовать [[GLaDOS]] и [[Hunter|Охотников]]!
Episode Two загружается первым и имеет приоритет. Это означает, что как только Ep2 бинарники будут загружены, вы не сможете использовать порталы, однако вы ''можете'' использовать {{L|GLaDOS}} и {{L|Hunter|Охотников}}!


Если вы хотите использовать бинарники портала, вы должны просто поместить его поисковой путь выше Ep2. (Излишне говорить, что если эти бинарники в папке вашего мода, тогда будут загружены ''они''.)
Если вы хотите использовать бинарники портала, вы должны просто поместить его поисковой путь выше Ep2. (Излишне говорить, что если эти бинарники в папке вашего мода, тогда будут загружены ''они''.)


[[category:Technical:ru]]
== Пример Source 2013 ==
[[Category:Modding:ru]]
 
[[Category:Source SDK FAQ:ru]]
Следующий код смонтирует контент {{L|Episode Two}} и {{L|Portal}} на 2013 версии движка:
[[Category:Russian]]
 
<source lang=ini>FileSystem
{
SteamAppId 243730 // Source SDK Base 2013 Singleplayer
SearchPaths
{
// No /custom/ folders because they can interfere with mod content and shouldn't be in mod gameinfo.
game+mod+mod_write+default_write_path |gameinfo_path|. // Mod
gamebin |gameinfo_path|bin // Mod's Binaries
 
// Using SSDKBase13 path, then back to /common/ and then using Portal folder.
// |all_source_engine_paths| magic help here too.
game |all_source_engine_paths|../Portal/portal/portal_sound_vo_english.vpk
game |all_source_engine_paths|../Portal/portal/portal_pak.vpk
 
// Base Half-Life 2 Content: ep2, episodic, hl2
game_lv |all_source_engine_paths|hl2/hl2_lv.vpk
game |all_source_engine_paths|ep2/ep2_english.vpk
game |all_source_engine_paths|ep2/ep2_pak.vpk
game |all_source_engine_paths|episodic/ep1_english.vpk
game |all_source_engine_paths|episodic/ep1_pak.vpk
game |all_source_engine_paths|hl2/hl2_english.vpk
game |all_source_engine_paths|hl2/hl2_pak.vpk
game |all_source_engine_paths|hl2/hl2_textures.vpk
game |all_source_engine_paths|hl2/hl2_sound_vo_english.vpk
game |all_source_engine_paths|hl2/hl2_sound_misc.vpk
game |all_source_engine_paths|hl2/hl2_misc.vpk
platform |all_source_engine_paths|platform/platform_misc.vpk
 
// TODO; find out what is it and why it's here
game |all_source_engine_paths|episodic
game |all_source_engine_paths|hl2
platform |all_source_engine_paths|platform
}
}</source>
 
{{ACategory|File formats}}
{{ACategory|Modding}}
{{ACategory|Source SDK FAQ}}

Latest revision as of 12:27, 6 April 2025

English (en)Deutsch (de)Español (es)Français (fr)日本語 (ja)한국어 (ko)Polski (pl)Русский (ru)中文 (zh)Translate (Translate)
Info content.png
This translated page needs to be updated.
You can help by updating the translation.
Also, please make sure the article complies with the alternate languages guide.(en)
This notice is put here by LanguageBar template and if you want to remove it after updating the translation you can do so on this page.


Game Definition Files
edit
См. также:  Category:Gameinfo
Для Half-Life 1/GoldSrc(en), см. статью liblist.gam(en).

gameinfo.txt содержит описание вашего мода. Он содержит такие метаданные, как его имя, ссылка на веб-сайт или руководство, и определяет, какие игры он использует. Он хранится в папке вашего мода и нужен для определения мода в Steam. Source и SDK инструменты используют его, для получения информации о подгружаемом контенте.

SDK launcher сгенерирует gameinfo.txt, как только вы запустите Create a Mod Wizard. Он подходит для разработки, но перед релизом, вы захотите изменить информацию об игре.

Note.pngПримечание:Логические(en) значения представлены в виде целых числел(en).
Warning.pngПредупреждение:Если значение имеет пробелы, нужно "поместить его в кавычки".

Настройки UI

Название

game <строка(en)>
Название вашего мода в ASCII. Отображается в Steam и на панели задач Windows, но не в главном меню (если вы не определили title).
title <строка>
title2 <строка>
Эти значения отображаются в виде Юникода в главном меню вашего мода. Они могут отличаться от отображаемых в Steam и на рабочем столе, если вы используете свой шрифт.
title2 (и 3, 4, и т.д.), чтобы применять разные стили к различным частям вашего названия.
Note.pngПримечание:Вполне возможно, ваш заголовок не будет отображаться, пока вы не отредактируете ClientTitleFont в resource\clientscheme.res для изменения шрифта. По умолчанию ("HalfLife2") имеет только определённый набор символов, и большая часть текста не будет отображаться правильно.

gamelogo <логическое значение(en)> (Во всех играх начиная с Source 2007)

Вместо отображения текста title/title2, отображает содержимое resource\GameLogo.res. См. Добавление Своего Лого в Меню(en).

Настройки

type <singleplayer_only | multiplayer_only>
Влияет на появление закладок в настройках. Может так же влиять на скорость загрузки в Steam. Пропустите, если ваш мод как однопользовательский, так и многопользовательский.
nodifficulty <логическое значение(en)>
Скрывает вкладку Уровень сложности (это случается автоматически, если ваш мод multiplayer_only)

hasportals <логическое значение(en)> (Во всех играх начиная с Source 2007)

Показывает вкладку настроек "Порталы"
nocrosshair <логическое значение(en)>
Скрывает настройки прицела в мультиплеере
advcrosshair
Включает дополнительные настройки прицела.
nomodels <логическое значение(en)>
Скрывает настройку модели в мультиплеере
nohimodel <логическое значение(en)>
Скрывает флажок для переключения cl_himodels, который использовался в GoldSrc(en). Отображается правильно, только если cl_himodels расположен в первую очередь!

Список игр в Steam

developer <строка(en)>
Название вашей команды (или ваше имя!)
developer_url <строка>
Веб-сайт мода, или ваш. Должен начинаться с http://.
manual <строка>
Ссылка на руководство к моду; может быть локальная.
icon <строка>
Локальный путь, относительно gameinfo.txt, иконка, отображающаяся в Steam. Не пишите расширение файла. Должна быть в несжатом 16x16 TGA.

Большие 32px иконки, которые отображаются в детальном виде должны находится там же где и обычная 16px иконка, и должна называться <icon>_big.tga.

Note.pngПримечание:Чтобы прозрачность работала, TGA должен быть сохранён в режиме 32-bit с включённым альфа-каналом.
Template:2009 add
Заставляет запустить игру в режиме DirectX8, отсюда - не все эффекты.

Разное

hidden_maps <подраздел>
Карты, которые нельзя загрузить через диалог "create server" (их можно загрузить через консоль).
Синтаксис: mapname 1, по одной записи на строку. Не пишите .bsp. Помните, чтобы открыть или закрыть подраздел, используйте { и }.

nodegraph <логическое значение(en)> (Во всех играх начиная с Source 2007)

Когда ложь, запрещает движку создавать сетку навигации для NPC(en).

GameData <строка> (Во всех играх начиная с Source 2007)

Путь к FGD, относительно Hammer'а. В настоящее время не имеет никакого эффекта.

InstancePath <строка> (Во всех играх начиная с Source 2007)

Найдено в gameinfo TF2 со значением maps/instances/...

Подгрузка Контента

Warning.pngПредупреждение:Ваш мод не будет использовать защиту VAC(en), если он базируется на одиночной игре.

Существуют два этапа для добавления игрового контента:

  1. Монтирование через AppID
  2. Монтирование папки через searchpath

При этом всё происходит в ключе filesystem. См. ниже для примера.

SteamAppID <целое число(en)>
AppID(en) игры, на которой базируется мод. Мод имеет доступ к любому доступному игровому контенту, если необходимый контент не установлен, он не будет воспроизводится.
Tip.pngСовет:Для большинства модов это будет либо 215 (Ep1), либо 218 (OB), каждый из них использует разную версию Source SDK Base(en).

AdditionalContentId <целое число> (Во всех играх начиная с Source 2007)

Мод для другой игры имеет доступ только к (и перечисление). В AdditionalContentId может быть указан любой номер.
Icon-Bug.pngБаг:Эту команду понимает движок, но не SDK инструменты! Лучшим решением, на данный момент, является копирование контента игры на локальный жёсткий диск и добавления абсолютного пути в SearchPath (см. ниже). Не забудьте удалить SearchPath перед релизом.  [нужно проверить в ?]
Tip.pngСовет:Исправление доступно здесь
ToolsAppId <целое число>
Это AppID который в настоящий момент использует SDK. В текущий момент, есть только один работающий ID - 211 (the Source SDK).

SearchPaths

SearchPaths - это еще одна группа в рамках подраздела FileSystem. В ней содержится список папок (в виде Game <путь>, на каждую линию), это список файлов, которые будет искать движок.

Движок начинает поиск с первого пути, и останавливает, как только находит то, что ему необходимо. Это означает, что порядок, в котором вы предоставляете список файлов - очень важен: сначала загружаются файлы из первого пути, а потом файлы из путей, расположенных ниже.

Путь поиска, как правило, является относительным к корневой директории SteamAppID (то есть где находится hl2.exe) или он абсолютный (например, C:\SomeFolder\). К счастью, существуют две строки, которые очень полезны:

  1. |all_source_engine_paths| (основная директория SteamAppID и директория AdditionalContentId, которую вы используете)
  2. |gameinfo_path| (папка с вашим gameinfo.txt)

Локализация

Source автоматически создаст SearchPaths для локализаций. Если вы монтируете hl2, а игрок запускает ваш мод на Французском, hl2_french автоматически смонтируется надлежащим образом.

Note.pngПримечание:Языковые различия так же могут изменить AppID, но не волнуйтесь. Steam настроит всё самостоятельно.

Пример

Следующий код смонтирует контент Episode Two(en) и Portal(en):

FileSystem
{
	SteamAppId	420	// Ep2
	ToolsAppId	211
	AdditionalContentId	400	// Portal

	SearchPaths
	{
		Game	|gameinfo_path|.	// В первую очередь указывается директория вашего мода
		Game	|all_source_engine_paths|ep2
		Game	|all_source_engine_paths|episodic	// Ep2 так же использует некоторый Ep1 контент
		Game	|all_source_engine_paths|portal
		Game	|all_source_engine_paths|hl2	// HL2 всегда должен быть последним
	}
}

Episode Two загружается первым и имеет приоритет. Это означает, что как только Ep2 бинарники будут загружены, вы не сможете использовать порталы, однако вы можете использовать GLaDOS(en) и Охотников(en)!

Если вы хотите использовать бинарники портала, вы должны просто поместить его поисковой путь выше Ep2. (Излишне говорить, что если эти бинарники в папке вашего мода, тогда будут загружены они.)

Пример Source 2013

Следующий код смонтирует контент Episode Two(en) и Portal(en) на 2013 версии движка:

FileSystem
{
	SteamAppId					243730				// Source SDK Base 2013 Singleplayer
	SearchPaths
	{
		// No /custom/ folders because they can interfere with mod content and shouldn't be in mod gameinfo.
		game+mod+mod_write+default_write_path	|gameinfo_path|.		// Mod
		gamebin					|gameinfo_path|bin		// Mod's Binaries

		// Using SSDKBase13 path, then back to /common/ and then using Portal folder. 
		// |all_source_engine_paths| magic help here too.
		game				|all_source_engine_paths|../Portal/portal/portal_sound_vo_english.vpk 
		game				|all_source_engine_paths|../Portal/portal/portal_pak.vpk 		

		// Base Half-Life 2 Content: ep2, episodic, hl2
		game_lv					|all_source_engine_paths|hl2/hl2_lv.vpk
		game					|all_source_engine_paths|ep2/ep2_english.vpk
		game					|all_source_engine_paths|ep2/ep2_pak.vpk
		game					|all_source_engine_paths|episodic/ep1_english.vpk
		game					|all_source_engine_paths|episodic/ep1_pak.vpk
		game					|all_source_engine_paths|hl2/hl2_english.vpk
		game					|all_source_engine_paths|hl2/hl2_pak.vpk
		game					|all_source_engine_paths|hl2/hl2_textures.vpk
		game					|all_source_engine_paths|hl2/hl2_sound_vo_english.vpk
		game					|all_source_engine_paths|hl2/hl2_sound_misc.vpk
		game					|all_source_engine_paths|hl2/hl2_misc.vpk
		platform				|all_source_engine_paths|platform/platform_misc.vpk

		// TODO; find out what is it and why it's here
		game					|all_source_engine_paths|episodic
		game					|all_source_engine_paths|hl2
		platform				|all_source_engine_paths|platform
	}
}