<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://stalkerin.gameru.net/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://stalkerin.gameru.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=KIRAY</id>
		<title>S.T.A.L.K.E.R. Inside Wiki - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://stalkerin.gameru.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=KIRAY"/>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/KIRAY"/>
		<updated>2026-04-29T15:32:46Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.22.6</generator>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray</id>
		<title>Сборка движка X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray"/>
				<updated>2015-08-27T05:16:47Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: /* Что необходимо для сборки? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Руководства]]&lt;br /&gt;
== Предисловие ==&lt;br /&gt;
Сразу хочется упомянуть о том, что я не программист, мною могут быть допущены какие-то неточности, ошибки. Всё что будет изложено ниже не может считаться верным решением встречающихся при сборке X-Ray проблем. Ну что ж, хватит лирики, приступим-с...&lt;br /&gt;
&lt;br /&gt;
== На кого рассчитана данная статья? ==&lt;br /&gt;
Прежде всего она рассчитана на начинающих программистов, подобных мне, которые не могут собрать движок, но хотят вносить в него какие-то правки, ну или хотя бы хотят пытаться вносить правки. Ну это вовсе не означает что Вы являетесь &amp;quot;полным нулём&amp;quot;, предполагается что читатель хотя бы минимальски знаком с ЯП C++ и имеет хоть какой-то опыт работы в Visual Studio.&lt;br /&gt;
&lt;br /&gt;
== Что необходимо для сборки? ==&lt;br /&gt;
* Visual Studio 2005 и выше (&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;'''НЕ'''&amp;lt;/span&amp;gt; Express Edition)&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=INFO|&lt;br /&gt;
message=''Можно попробовать Express Edition, только придётся решить проблему сборки приложений, которые используют MFC (Stalker_net и т.п.). А лучше использовать Community Edition современных версий Visual Studio,''&lt;br /&gt;
''они по функционалу схожи с Professional Edition прошлых версий и абсолютно бесплатны. Правда один минус, могут возникнуть новые проблемы, которые не будут затронуты в этой статье.''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Скачать Visual Studio 2015 Community Edition с сайта Microsoft: [https://go.microsoft.com/fwlink/?LinkId=532606&amp;amp;clcid=0x419]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_0|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message='''Данный туториал рассчитан на VS 2010! При сборке на более современных студиях могут появиться другие проблемы, описания которых не окажется в данной статье!'''&lt;br /&gt;
}} &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
* S.T.A.L.K.E.R. Shadow of Cherbobyl 1.0006&lt;br /&gt;
&lt;br /&gt;
== Сборка ==&lt;br /&gt;
=== Заранее хочется оговориться о структуре каталогов ===&lt;br /&gt;
* ''XRay'' -- корневой каталог движка&lt;br /&gt;
** ''xr_build'' -- Выходной каталог, здесь находятся распакованные ресурсы игры&lt;br /&gt;
** ''xr_src'' -- Каталог с исходными кодами движка&lt;br /&gt;
** ''dev-scripts'' -- Различные вспомогательные скрипты&lt;br /&gt;
=== Загрузка исходного кода движка и подготовительные работы ===&lt;br /&gt;
Скачиваем основной архив с исходниками: [https://bitbucket.org/stalker/x-ray/downloads/XRay.rar]&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Пароль:''' ljlLHhklknlked&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Скачиваем архив с необходимыми для сборки SDKs и компонентами: [https://bitbucket.org/stalker/x-ray/downloads/src_components_for_xray.rar]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Распаковываем содержимое архивов ''XRay.rar'' и ''src_components_for_xray.rar'' в директорию ''XRay\xr_src'' &amp;lt;br/&amp;gt;&lt;br /&gt;
В папке ''dev-scripts'' создаем два (*.cmd) файла - ''mountDisks.cmd'' и ''unmountDisks.cmd'' такого содержания:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
''mountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: [Ваш путь до папки XRay]:\XRay\xr_build&lt;br /&gt;
@subst S: [Ваш путь до папки XRay]:\XRay\xr_src&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
''unmountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: /D&lt;br /&gt;
@subst S: /D&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Запускаем ''mountDisks.cmd'', должны появиться два виртуальных диска: ''X'' и ''S''. ''X'' -выходной каталог, ''S'' - каталог исходников.&lt;br /&gt;
[[Файл:Ss_0.jpg|Виртуальные диски|frame|left|Виртуальные диски]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Подготовительный этап закончен. Приступаем к настройке проектов.&lt;br /&gt;
=== Настройка проектов ===&lt;br /&gt;
Запускаем Visual Studio, на стартовой странице выбираем ''Открыть проект...'' или ''Файл -&amp;gt; Открыть -&amp;gt; Решение или проект...'' В появившемся окне выбираем ''S:\xr_3da\xr_3da.sln''.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_1.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Появится окно мастера преобразования Visual Studio, жмём кнопку 'Готово' и ждём пока все проекты конвертируются в формат VS10 и пройдёт синтаксический анализ проектов.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_2.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
После того как всё сконвертировалось, первым делом открываем  Диспетчер конфигураций (''ПКМ по решению -&amp;gt; Свойства -&amp;gt; Свойства конфигурации'') и выставляем решению активную конфигурацию ''Mixed'' (на чистом ''Debug'' ужасно падает производительность), а для сторонних библиотек (''BugTrap'', ''OpenAL'', ''minizip'', ''zlib'') ставим ''Release''.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_3.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Ну а теперь самое муторное, это настройка собственно проектов. Каждый проект придется настраивать отдельно, собирать так же советую отдельно (''ПКМ по проекту -&amp;gt; Только проект -&amp;gt; Построить только [имя проекта]''). Порядок построения можно узнать так: ''ПКМ по любому проекту -&amp;gt; Зависимости проектов... -&amp;gt; Порядок построения''. Настраиваем выходные каталоги, промежуточные каталоги и выходные каталог для библиотек импорта по своему вкусу, у меня так (на примере ''BugTrap'', используется структура каталогов, упомянутая в начале статьи):&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_4.jpg|512px]]  [[Image:Ss_5.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Далее необходимо настроить пути к заголовочным файлам и библиотекам импорта внешних библиотек. Ниже пойдёт таблица проектов (в порядке построения) с необходимыми для них библиотеками из директории ''xr_src\SDK'', пути настраиваются здесь: &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_6.jpg|512px]]  [[Файл:Ss_7.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{|class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Проект||Необходимые библиотеки&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCore'''||''DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCDB'''||''xrCore''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrLua'''||''xrCore, LuaBind, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrSound'''||''xrCore, Xiph libs, EAX, DX, OpenAL''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrParticles'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrNetServer'''||''xrCore, DX, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrXMLParser'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''XR_3DA'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Xiph libs, OpenAL (*.lib only)''&lt;br /&gt;
|-&lt;br /&gt;
|'''ODE'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCPU_Pipe'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGameSpy'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R2'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R1'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGame'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Loki''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_1|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=На заметку|&lt;br /&gt;
message=xrGame самая &amp;quot;массивная&amp;quot; библиотека X-Ray, на некоторых машинах её сборка может занять прилично времени.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
=== Сборка ===&lt;br /&gt;
Собираем каждый проект, как я ранее написал, отдельно, по списку порядка построения. Ниже разбираются наиболее встречающиеся проблемы. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrCore'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2061: синтаксическая ошибка: идентификатор &amp;quot;__RPC__out_xcount_part&amp;lt;/code&amp;gt;&lt;br /&gt;
Необходимо удалить файл ''rpcsal.h'' из директории ''S:\SDK\dx9sdk\dx9sdk\include''. Возникает на старых версиях DXSDK, используйте версию за июнь 2010: [https://www.microsoft.com/en-us/download/details.aspx?id=6812]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrLua'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2883: std::terminate: объявление функции вступает в конфликт с &amp;quot;terminate&amp;quot;, присутствующем в &amp;quot;using&amp;quot;-объявлении&amp;lt;/code&amp;gt;&lt;br /&gt;
Идём в ''S:\SDK\luabind\luabind\config.hpp'', строка 31 и добавляем в имя функции ''terminate'' прочерк ,было '''terminate''', стало '''_terminate'''. &lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_2|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message=Функция '''_terminate''' существует в '''xrDebugNew!''' Не известно как это себя поведёт, лучше всё же закомментировать конструкцию '''namespace std { void terminate() }'''&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2244: throw_exception: не удается сопоставить определение функции существующему объявлению&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''xrCore.h'', в строке ''14'' объявляем макрос ''BOOST_NO_EXCEPTIONS'' ('''#define BOOST_NO_EXCEPTIONS''')&lt;br /&gt;
&amp;lt;code&amp;gt;error C2668: boost::addressof: неоднозначный вызов перегруженной функции&amp;lt;/code&amp;gt;&lt;br /&gt;
Лезем в ''S:\SDK\boost_1_30_0\function\function_template.hpp'', в строке ''472'' перед '''addressof''' дописываем '''boost::'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrGame'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;_operator::_edge_value_type CProblemSolver&amp;lt;_operator_condition,_condition_state,_operator,_condition_evaluator,_operator_id_type,_reverse_search,_operator_ptr,_condition_evaluator_ptr&amp;gt;::estimate_edge_weight_impl(const _condition_state &amp;amp;) const&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\problem_solver.h'', строка ''90''. Заменить этот кусок кода:&lt;br /&gt;
[[Файл:Ss_8.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
На этот: &lt;br /&gt;
[[Файл:Ss_9.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
И где-нибудь вне класса объявите структуру ''Bool2Type'': &lt;br /&gt;
[[Файл:Ss_10.jpg|Структура Bool2Type|frame|left|Структура Bool2Type]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2275: Pars: недопустимое использование этого типа в качестве выражения&amp;lt;/code&amp;gt;&lt;br /&gt;
Здесь придётся вносить правки в несколько файлов, для начала лезем в ''S:\xr_3da\xrGame\PHMovementDynamicActivate.cpp'' и везде после '''Pars''' вместо точки ставим двойное двоеточие '''::''', также делаем и в ''xrGame\physics_game.cpp''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;luabind::detail::class_rep *luabind::detail::get_class_rep(lua_State *,void (__cdecl *)(T))&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\SDK\luabind\luabind\detail\class_cache.hpp'', строка ''78'', добавляем символ '''*''' после буквы '''T''':&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_11.jpg|Правка LuaBind|frame|left|Правка LuaBind]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2780: luabind::class_&amp;lt;T&amp;gt; &amp;amp;luabind::class_&amp;lt;T&amp;gt;::def(luabind::detail::operator_&amp;lt;Derived&amp;gt;): требует аргументов: 1, имеется: 2&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\game_cl_base_script.cpp'', строка ''17'', дописываем перед '''SZoneMapEntityData''' ключевое слово '''const''': &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_12.jpg|Правка xrGame|frame|left|Правка xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Congratulations! ==&lt;br /&gt;
Ну вот и всё, осталось только скопировать, если его там нет, ''fsgame.ltx'' в директорию с вашими бинам и создать (*.cmd) файл для запуска, ну или для продвинутых написать свой лаунчер (например написать свою ''xrLauncher.dll''). Приятных экспериментов!&lt;br /&gt;
== Послесловие ==&lt;br /&gt;
В скором времени появятся другие статьи по движку ST или по программированию, так или иначе связанным с ST, возможно появится статья по сборке X-Ray SDK, если Вам конечна понравилась эта статья.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Если Вами в статье была найдена какая-то ошибка или неточность, прошу сообщить мне.&lt;br /&gt;
&lt;br /&gt;
== Благодарности ==&lt;br /&gt;
Я выражаю искрении благодарности следующим людям: '''K.D.''', '''HikeR''', '''Tron''' и всем остальным кто помогал в сборке движка. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ну и огромное спасибо '''GSC Game World''' за замечательный проект ST и за отсутствие гонений из-за использования исходных кодов движка :-).&lt;br /&gt;
== Автор ==&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/slava_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;11.07.2014&amp;lt;/u&amp;gt;. &amp;lt;br/&amp;gt;&lt;br /&gt;
Последние изменения (автор): &amp;lt;u&amp;gt;26.08.2015&amp;lt;/u&amp;gt;. &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Участник:KIRAY|KIRAY]] ([[Обсуждение участника:KIRAY|обсуждение]]) 11:07, 11 июля 2014 (MSK)&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BB%D1%8E%D1%87%D0%B8_%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0_X-Ray</id>
		<title>Ключи запуска X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BB%D1%8E%D1%87%D0%B8_%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0_X-Ray"/>
				<updated>2015-08-26T17:36:25Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Команды_консоли]]&lt;br /&gt;
{|class=standart&lt;br /&gt;
|-&lt;br /&gt;
!Ключ||Комментарий&lt;br /&gt;
|-&lt;br /&gt;
|'''-batch_benchmark''' || запускает бенчмаркинг. Параметр: имя файла с опциями бенчмаркинга (''*.ini'', ''*.ltx''). Файл ищется в ''$app_data_root$''&lt;br /&gt;
|-&lt;br /&gt;
|'''-nojit''' || отключен&lt;br /&gt;
|-&lt;br /&gt;
|'''-bug''' || устанавливает поле (флаг) ''bug'' структуры ''_options'' второго рендера в значение истина. Не имеет смысла. Включаемый им участок кода сейчас исполняется по умолчанию&lt;br /&gt;
|-&lt;br /&gt;
|'''-build''' || устанавливает флаг файловой системы ''flBuildCopy''. Если флаг установлен,&lt;br /&gt;
все файлы, прочитанные файловой системой, будут скопированы из ''$server_root$'' (''$server_data_root$'') в ''$build_copy$'' (Доступен только на ''Debug'', ''Mixed'' конфигурациях)&lt;br /&gt;
|-&lt;br /&gt;
|'''-ebuild''' || устанавливает флаги файловой системы ''flBuildCopy'' и ''flEBuildCopy''. (Доступен только на ''Debug'', ''Mixed'' конфигурациях)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:red&amp;quot;|'''-gebug_ge''' || ??&lt;br /&gt;
|-&lt;br /&gt;
|'''-i''' || отключает захват устройства ввода &lt;br /&gt;
|-&lt;br /&gt;
|'''-keep_lua''' || запрещает перезапуск LVM &lt;br /&gt;
|-&lt;br /&gt;
|'''-mem_debug''' || включение отладки менеджера памяти. Необходим для работы с консольной командой ''dbg_mem_check'' (доступна, как и ''dbg_mem_dump'', если определен макрос ''DEBUG_MEMORY_MANAGER'')&lt;br /&gt;
|-&lt;br /&gt;
|'''-mt_cdb''' || что-то с обработкой коллизий (обработка колизий в отдельном потоке??), порождает поток ''CDB-construction''&lt;br /&gt;
|-&lt;br /&gt;
|'''-nes_texture_storing''' || что-то делает с текстурами при ??отгрузки уровня??&lt;br /&gt;
|-&lt;br /&gt;
|'''-netsim''' || включает симуляцию сети ?&lt;br /&gt;
|-&lt;br /&gt;
|'''-no_call_stack_assert''' || отключает вывод в лог call stack'a &lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:red&amp;quot;|'''-no_direct_connect''' || ?? &lt;br /&gt;
|-&lt;br /&gt;
|'''-nodf24''' || отключает какие-то примбамбасы от видеокарт ATi на втором рендере (DF24/F4)&lt;br /&gt;
|-&lt;br /&gt;
|'''-nonvs''' || отключает какие-то плюшки для видеокарт NVIDIA 40* и выше на втором рендере (NVStencil)&lt;br /&gt;
|-&lt;br /&gt;
|'''-pure_alloc''' || что-то связаное с пулом &lt;br /&gt;
|-&lt;br /&gt;
|'''-sjitter''' || как-то влияет на компиляцию шейдеров&lt;br /&gt;
|-&lt;br /&gt;
|'''-forceskinw''' || как-то влияет на компиляцию шейдеров&lt;br /&gt;
|-&lt;br /&gt;
|'''-sunfilter''' || как-то влияет на компиляцию шейдеров&lt;br /&gt;
|-&lt;br /&gt;
|'''-svcfg''' || Выполняет указанный конфигурационный файл на этапе загрузки ''level.game'' Параметр: имя выполняемого файла (''*.ltx'')&lt;br /&gt;
|-&lt;br /&gt;
|'''-tsh'''  || как-то влияет на компиляцию шейдеров (какие-то T тени)&lt;br /&gt;
|-&lt;br /&gt;
|'''-tdemo''' || Исполняет указанное демо Параметр: имя файла демо (в билдах есть пример использования) &lt;br /&gt;
|-&lt;br /&gt;
|'''-tdemof''' || тоже самое, только что-то там с кадрами мутится&lt;br /&gt;
|-&lt;br /&gt;
|'''-techdemo''' || режим записи демо?&lt;br /&gt;
|-&lt;br /&gt;
|'''-x86''' || отключает использование инструкций ''SSE, SSE2, 3DNow''??&lt;br /&gt;
|-&lt;br /&gt;
|'''-xclsx''' || отключает вывод различной отладочной информации на экран в виде красных строк (Доступен только на ''Debug'', ''Mixed'' конфигурациях)&lt;br /&gt;
|-&lt;br /&gt;
|'''-tune''' || запуск профиливщика ''Intel vTune''&lt;br /&gt;
|-&lt;br /&gt;
|'''-center_screen''' || Центирует окно в оконном режиме&lt;br /&gt;
|-&lt;br /&gt;
|'''-launcher''' || Выполняет функцию ''RunXRLauncher'' из ''xrLauncher.dll''. Отключен&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''-_g''' - влияет на некий заголовок, что-то со скриптами&lt;br /&gt;
&lt;br /&gt;
С ним: &lt;br /&gt;
&amp;lt;lua&amp;gt;local function script_name()&lt;br /&gt;
  return &amp;quot;%s&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
local this = {}&lt;br /&gt;
this._G = _G&lt;br /&gt;
 %s this %s&lt;br /&gt;
setfenv(1, this)&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Без него:&lt;br /&gt;
&amp;lt;lua&amp;gt;local function script_name()&lt;br /&gt;
  return &amp;quot;%s&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
local this = {}&lt;br /&gt;
%s this %s&lt;br /&gt;
setmetatable(this, {__index = _G}&lt;br /&gt;
setfenv(1, this)&amp;lt;/lua&amp;gt;&lt;br /&gt;
_____&lt;br /&gt;
&amp;lt;br/&amp;gt;Статья будет дополняться... &amp;lt;br/&amp;gt;&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/slava_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;26.08.2015&amp;lt;/u&amp;gt;.&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BB%D1%8E%D1%87%D0%B8_%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0_X-Ray</id>
		<title>Ключи запуска X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BB%D1%8E%D1%87%D0%B8_%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0_X-Ray"/>
				<updated>2015-08-26T17:28:24Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Команды_консоли]]&lt;br /&gt;
{|class=standart&lt;br /&gt;
|-&lt;br /&gt;
!Ключ||Комментарий&lt;br /&gt;
|-&lt;br /&gt;
|'''-batch_benchmark''' || запускает бенчмаркинг. Параметр: имя файла с опциями бенчмаркинга (''*.ini'', ''*.ltx''). Файл ищется в ''$app_data_root$''&lt;br /&gt;
|-&lt;br /&gt;
|'''-nojit''' || отключен&lt;br /&gt;
|-&lt;br /&gt;
|'''-bug''' || устанавливает поле (флаг) ''bug'' структуры ''_options'' второго рендера в значение истина. Не имеет смысла. Включаемый им участок кода сейчас исполняется по умолчанию&lt;br /&gt;
|-&lt;br /&gt;
|'''-build''' || устанавливает флаг файловой системы ''flBuildCopy''. Если флаг установлен,&lt;br /&gt;
все файлы, прочитанные файловой системой, будут скопированы из ''$server_root$'' (''$server_data_root$'') в ''$build_copy$'' (Доступен только на ''Debug'', ''Mixed'' конфигурациях)&lt;br /&gt;
|-&lt;br /&gt;
|'''-ebuild''' || устанавливает флаги файловой системы ''flBuildCopy'' и ''flEBuildCopy''. (Доступен только на ''Debug'', ''Mixed'' конфигурациях)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:red&amp;quot;|'''-gebug_ge''' || ??&lt;br /&gt;
|-&lt;br /&gt;
|'''-i''' || отключает захват устройства ввода &lt;br /&gt;
|-&lt;br /&gt;
|'''-keep_lua''' || запрещает перезапуск LVM &lt;br /&gt;
|-&lt;br /&gt;
|'''-mem_debug''' || включение отладки менеджера памяти. Необходим для работы с консольной командой ''dbg_mem_check'' (доступна, как и ''dbg_mem_dump'', если определен макрос ''DEBUG_MEMORY_MANAGER'')&lt;br /&gt;
|-&lt;br /&gt;
|'''-mt_cdb''' || что-то с обработкой коллизий (обработка колизий в отдельном потоке??), порождает поток ''CDB-construction''&lt;br /&gt;
|-&lt;br /&gt;
|'''-nes_texture_storing''' || что-то делает с текстурами при ??отгрузки уровня??&lt;br /&gt;
|-&lt;br /&gt;
|'''-netsim''' || включает симуляцию сети ?&lt;br /&gt;
|-&lt;br /&gt;
|'''-no_call_stack_assert''' || отключает вывод в лог call stack'a &lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:red&amp;quot;|'''-no_direct_connect''' || ?? &lt;br /&gt;
|-&lt;br /&gt;
|'''-nodf24''' || отключает какие-то примбамбасы от видеокарт ATi на втором рендере (DF24/F4)&lt;br /&gt;
|-&lt;br /&gt;
|'''-nonvs''' || отключает какие-то плюшки для видеокарт NVIDIA 40* и выше на втором рендере (NVStencil)&lt;br /&gt;
|-&lt;br /&gt;
|'''-pure_alloc''' || что-то связаное с пулом &lt;br /&gt;
|-&lt;br /&gt;
|'''-sjitter''' || как-то влияет на компиляцию шейдеров&lt;br /&gt;
|-&lt;br /&gt;
|'''-forceskinw''' || как-то влияет на компиляцию шейдеров&lt;br /&gt;
|-&lt;br /&gt;
|'''-sunfilter''' || как-то влияет на компиляцию шейдеров&lt;br /&gt;
|-&lt;br /&gt;
|'''-svcfg''' || Выполняет указанный конфигурационный файл на этапе загрузки ''level.game'' Параметр: имя выполняемого файла (''*.ltx'')&lt;br /&gt;
|-&lt;br /&gt;
|'''-tsh'''  || как-то влияет на компиляцию шейдеров (какие-то T тени)&lt;br /&gt;
|-&lt;br /&gt;
|'''-tdemo''' || Исполняет указанное демо Параметр: имя файла демо (в билдах есть пример использования) &lt;br /&gt;
|-&lt;br /&gt;
|'''-tdemof''' || тоже самое, только что-то там с кадрами мутится&lt;br /&gt;
|-&lt;br /&gt;
|'''-techdemo''' || режим записи демо?&lt;br /&gt;
|-&lt;br /&gt;
|'''-x86''' || отключает использование инструкций ''SSE, SSE2, 3DNow''??&lt;br /&gt;
|-&lt;br /&gt;
|'''-xclsx''' || отключает вывод различной отладочной информации на экран в виде красных строк (Доступен только на ''Debug'', ''Mixed'' конфигурациях)&lt;br /&gt;
|-&lt;br /&gt;
|'''-tune''' || запуск профиливщика ''Intel vTune''&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''-_g''' - влияет на некий заголовок, что-то со скриптами&lt;br /&gt;
&lt;br /&gt;
С ним: &lt;br /&gt;
&amp;lt;lua&amp;gt;local function script_name()&lt;br /&gt;
  return &amp;quot;%s&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
local this = {}&lt;br /&gt;
this._G = _G&lt;br /&gt;
 %s this %s&lt;br /&gt;
setfenv(1, this)&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Без него:&lt;br /&gt;
&amp;lt;lua&amp;gt;local function script_name()&lt;br /&gt;
  return &amp;quot;%s&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
local this = {}&lt;br /&gt;
%s this %s&lt;br /&gt;
setmetatable(this, {__index = _G}&lt;br /&gt;
setfenv(1, this)&amp;lt;/lua&amp;gt;&lt;br /&gt;
_____&lt;br /&gt;
&amp;lt;br/&amp;gt;Статья будет дополняться... &amp;lt;br/&amp;gt;&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/slava_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;26.08.2015&amp;lt;/u&amp;gt;.&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BB%D1%8E%D1%87%D0%B8_%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0_X-Ray</id>
		<title>Ключи запуска X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BB%D1%8E%D1%87%D0%B8_%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0_X-Ray"/>
				<updated>2015-08-26T17:26:40Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Команды_консоли]]&lt;br /&gt;
{|class=standart&lt;br /&gt;
|-&lt;br /&gt;
!Ключ||Комментарий&lt;br /&gt;
|-&lt;br /&gt;
|'''-batch_benchmark''' || запускает бенчмаркинг. Параметр: имя файла с опциями бенчмаркинга (''*.ini'', ''*.ltx''). Файл ищется в ''$app_data_root$''&lt;br /&gt;
|-&lt;br /&gt;
|'''-nojit''' || отключен&lt;br /&gt;
|-&lt;br /&gt;
|'''-bug''' || устанавливает поле (флаг) ''bug'' структуры ''_options'' второго рендера в истину. Не имеет смысла. Включаемый им участок кода сейчас исполняется по умолчанию&lt;br /&gt;
|-&lt;br /&gt;
|'''-build''' || устанавливает флаг файловой системы ''flBuildCopy''. Если флаг установлен,&lt;br /&gt;
все файлы, прочитанные файловой системой, будут скопированы из ''$server_root$'' (''$server_data_root$'') в ''$build_copy$'' (Доступен только на ''Debug'', ''Mixed'' конфигурациях)&lt;br /&gt;
|-&lt;br /&gt;
|'''-ebuild''' || устанавливает флаги файловой системы ''flBuildCopy'' и ''flEBuildCopy''. (Доступен только на ''Debug'', ''Mixed'' конфигурациях)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:red&amp;quot;|'''-gebug_ge''' || ??&lt;br /&gt;
|-&lt;br /&gt;
|'''-i''' || отключает захват устройства ввода &lt;br /&gt;
|-&lt;br /&gt;
|'''-keep_lua''' || запрещает перезапуск LVM &lt;br /&gt;
|-&lt;br /&gt;
|'''-mem_debug''' || включение отладки менеджера памяти. Необходим для работы с консольной командой ''dbg_mem_check'' (доступна, как и ''dbg_mem_dump'', если определен макрос ''DEBUG_MEMORY_MANAGER'')&lt;br /&gt;
|-&lt;br /&gt;
|'''-mt_cdb''' || что-то с обработкой коллизий (обработка колизий в отдельном потоке??), порождает поток ''CDB-construction''&lt;br /&gt;
|-&lt;br /&gt;
|'''-nes_texture_storing''' || что-то делает с текстурами при ??отгрузки уровня??&lt;br /&gt;
|-&lt;br /&gt;
|'''-netsim''' || включает симуляцию сети ?&lt;br /&gt;
|-&lt;br /&gt;
|'''-no_call_stack_assert''' || отключает вывод в лог call stack'a &lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:red&amp;quot;|'''-no_direct_connect''' || ?? &lt;br /&gt;
|-&lt;br /&gt;
|'''-nodf24''' || отключает какие-то примбамбасы от видеокарт ATi на втором рендере (DF24/F4)&lt;br /&gt;
|-&lt;br /&gt;
|'''-nonvs''' || отключает какие-то плюшки для видеокарт NVIDIA 40* и выше на втором рендере (NVStencil)&lt;br /&gt;
|-&lt;br /&gt;
|'''-pure_alloc''' || что-то связаное с пулом &lt;br /&gt;
|-&lt;br /&gt;
|'''-sjitter''' || как-то влияет на компиляцию шейдеров&lt;br /&gt;
|-&lt;br /&gt;
|'''-forceskinw''' || как-то влияет на компиляцию шейдеров&lt;br /&gt;
|-&lt;br /&gt;
|'''-sunfilter''' || как-то влияет на компиляцию шейдеров&lt;br /&gt;
|-&lt;br /&gt;
|'''-svcfg''' || Выполняет указанный конфигурационный файл на этапе загрузки ''level.game'' Параметр: имя выполняемого файла (''*.ltx'')&lt;br /&gt;
|-&lt;br /&gt;
|'''-tsh'''  || как-то влияет на компиляцию шейдеров (какие-то T тени)&lt;br /&gt;
|-&lt;br /&gt;
|'''-tdemo''' || Исполняет указанное демо Параметр: имя файла демо (в билдах есть пример использования) &lt;br /&gt;
|-&lt;br /&gt;
|'''-tdemof''' || тоже самое, только что-то там с кадрами мутится&lt;br /&gt;
|-&lt;br /&gt;
|'''-techdemo''' || режим записи демо?&lt;br /&gt;
|-&lt;br /&gt;
|'''-x86''' || отключает использование инструкций ''SSE, SSE2, 3DNow''??&lt;br /&gt;
|-&lt;br /&gt;
|'''-xclsx''' || отключает вывод различной отладочной информации на экран в виде красных строк (Доступен только на ''Debug'', ''Mixed'' конфигурациях)&lt;br /&gt;
|-&lt;br /&gt;
|'''-tune''' || запуск профиливщика ''Intel vTune''&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''-_g''' - влияет на некий заголовок, что-то со скриптами&lt;br /&gt;
&lt;br /&gt;
С ним: &lt;br /&gt;
&amp;lt;lua&amp;gt;local function script_name()&lt;br /&gt;
  return &amp;quot;%s&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
local this = {}&lt;br /&gt;
this._G = _G&lt;br /&gt;
 %s this %s&lt;br /&gt;
setfenv(1, this)&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Без него:&lt;br /&gt;
&amp;lt;lua&amp;gt;local function script_name()&lt;br /&gt;
  return &amp;quot;%s&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
local this = {}&lt;br /&gt;
%s this %s&lt;br /&gt;
setmetatable(this, {__index = _G}&lt;br /&gt;
setfenv(1, this)&amp;lt;/lua&amp;gt;&lt;br /&gt;
_____&lt;br /&gt;
&amp;lt;br/&amp;gt;Статья будет дополняться... &amp;lt;br/&amp;gt;&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/slava_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;26.08.2015&amp;lt;/u&amp;gt;.&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BB%D1%8E%D1%87%D0%B8_%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0_X-Ray</id>
		<title>Ключи запуска X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BB%D1%8E%D1%87%D0%B8_%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0_X-Ray"/>
				<updated>2015-08-26T17:24:02Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Команды_консоли]]&lt;br /&gt;
{|class=standart&lt;br /&gt;
|-&lt;br /&gt;
!Ключ||Комментарий&lt;br /&gt;
|-&lt;br /&gt;
|'''-batch_benchmark''' || запускает бенчмаркинг. Параметр: имя файла с опциями бенчмаркинга (''*.ini'', ''*.ltx''). Файл ищется в ''$app_data_root$''&lt;br /&gt;
|-&lt;br /&gt;
|'''-nojit''' || отключен&lt;br /&gt;
|-&lt;br /&gt;
|'''-bug''' || устанавливает поле (флаг) ''bug'' структуры ''_options'' второго рендера в истину. Не имеет смысла. Включаемый им участок кода сейчас исполняется по умолчанию&lt;br /&gt;
|-&lt;br /&gt;
|'''-build''' || устанавливает флаг файловой системы ''flBuildCopy''. Если флаг установлен,&lt;br /&gt;
все файлы, прочитанные файловой системой, будут скопированы из ''$server_root$'' (''$server_data_root$'') в ''$build_copy$'' (Доступен только на ''Debug'', ''Mixed'' конфигурациях)&lt;br /&gt;
|-&lt;br /&gt;
|'''-ebuild''' || устанавливает флаги файловой системы ''flBuildCopy'' и ''flEBuildCopy''. (Доступен только на ''Debug'', ''Mixed'' конфигурациях)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:red&amp;quot;|'''-gebug_ge''' || ??&lt;br /&gt;
|-&lt;br /&gt;
|'''-i''' || отключает захват устройства ввода &lt;br /&gt;
|-&lt;br /&gt;
|'''-keep_lua''' || запрещает перезапуск LVM &lt;br /&gt;
|-&lt;br /&gt;
|'''-mem_debug''' || включение отладки менеджера памяти. Необходим для работы с консольной командой ''dbg_mem_check'' (доступна, как и ''dbg_mem_dump'', если определен макрос ''DEBUG_MEMORY_MANAGER'')&lt;br /&gt;
|-&lt;br /&gt;
|'''-mt_cdb''' || что-то с обработкой коллизий (обработка колизий в отдельном потоке??), порождает поток ''CDB-construction''&lt;br /&gt;
|-&lt;br /&gt;
|'''-nes_texture_storing''' || что-то делает с текстурами при ??отгрузки уровня??&lt;br /&gt;
|-&lt;br /&gt;
|'''-netsim''' || включает симуляцию сети ?&lt;br /&gt;
|-&lt;br /&gt;
|'''-no_call_stack_assert''' || отключает вывод в лог call stack'a &lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:red&amp;quot;|'''-no_direct_connect''' || ?? &lt;br /&gt;
|-&lt;br /&gt;
|'''-nodf24''' || отключает какие-то примбамбасы от видеокарт ATi на втором рендере (DF24/F4)&lt;br /&gt;
|-&lt;br /&gt;
|'''-nonvs''' || отключает какие-то плюшки для видеокарт NVIDIA 40* и выше на втором рендере (NVStencil)&lt;br /&gt;
|-&lt;br /&gt;
|'''-pure_alloc''' || что-то связано с пулом &lt;br /&gt;
|-&lt;br /&gt;
|'''-sjitter''' || как-то влияет на компиляцию шейдеров&lt;br /&gt;
|-&lt;br /&gt;
|'''-forceskinw''' || как-то влияет на компиляцию шейдеров&lt;br /&gt;
|-&lt;br /&gt;
|'''-sunfilter''' || как-то влияет на компиляцию шейдеров&lt;br /&gt;
|-&lt;br /&gt;
|'''-svcfg''' || Выполняет указанный конфигурационный файл на этапе загрузки ''level.game'' Параметр: имя выполняемого файла (''*.ltx'')&lt;br /&gt;
|-&lt;br /&gt;
|'''-tsh'''  || как-то влияет на компиляцию шейдеров (какие-то T тени)&lt;br /&gt;
|-&lt;br /&gt;
|'''-tdemo''' || Исполняет указанное демо Параметр: имя файла демо (в билдах есть пример использования) &lt;br /&gt;
|-&lt;br /&gt;
|'''-tdemof''' || тоже самое, только что-то там с кадрами мутится&lt;br /&gt;
|-&lt;br /&gt;
|'''-techdemo''' || режим записи демо?&lt;br /&gt;
|-&lt;br /&gt;
|'''-x86''' || отключает использование инструкций ''SSE, SSE2, 3DNow''??&lt;br /&gt;
|-&lt;br /&gt;
|'''-xclsx''' || отключает вывод различной отладочной информации на экран в виде красных строк (Доступен только на ''Debug'', ''Mixed'' конфигурациях)&lt;br /&gt;
|-&lt;br /&gt;
|'''-tune''' || запуск профиливщика ''Intel vTune''&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''-_g''' - влияет на некий заголовок, что-то со скриптами&lt;br /&gt;
&lt;br /&gt;
С ним: &lt;br /&gt;
&amp;lt;lua&amp;gt;local function script_name()&lt;br /&gt;
  return &amp;quot;%s&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
local this = {}&lt;br /&gt;
this._G = _G&lt;br /&gt;
 %s this %s&lt;br /&gt;
setfenv(1, this)&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Без него:&lt;br /&gt;
&amp;lt;lua&amp;gt;local function script_name()&lt;br /&gt;
  return &amp;quot;%s&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
local this = {}&lt;br /&gt;
%s this %s&lt;br /&gt;
setmetatable(this, {__index = _G}&lt;br /&gt;
setfenv(1, this)&amp;lt;/lua&amp;gt;&lt;br /&gt;
_____&lt;br /&gt;
&amp;lt;br/&amp;gt;Статья будет дополняться... &amp;lt;br/&amp;gt;&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/slava_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;26.08.2015&amp;lt;/u&amp;gt;.&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BB%D1%8E%D1%87%D0%B8_%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0_X-Ray</id>
		<title>Ключи запуска X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BB%D1%8E%D1%87%D0%B8_%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0_X-Ray"/>
				<updated>2015-08-26T17:21:54Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Команды_консоли]]&lt;br /&gt;
&lt;br /&gt;
'''-_g''' - влияет на некий заголовок, что-то со скриптами&lt;br /&gt;
&lt;br /&gt;
С ним: &lt;br /&gt;
&amp;lt;lua&amp;gt;local function script_name()&lt;br /&gt;
  return &amp;quot;%s&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
local this = {}&lt;br /&gt;
this._G = _G&lt;br /&gt;
 %s this %s&lt;br /&gt;
setfenv(1, this)&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Без него:&lt;br /&gt;
&amp;lt;lua&amp;gt;local function script_name()&lt;br /&gt;
  return &amp;quot;%s&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
local this = {}&lt;br /&gt;
%s this %s&lt;br /&gt;
setmetatable(this, {__index = _G}&lt;br /&gt;
setfenv(1, this)&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|class=standart&lt;br /&gt;
|-&lt;br /&gt;
!Ключ||Комментарий&lt;br /&gt;
|-&lt;br /&gt;
|'''-batch_benchmark''' || запускает бенчмаркинг. Параметр: имя файла с опциями бенчмаркинга (''*.ini'', ''*.ltx''). Файл ищется в ''$app_data_root$''&lt;br /&gt;
|-&lt;br /&gt;
|'''-nojit''' || отключен&lt;br /&gt;
|-&lt;br /&gt;
|'''-bug''' || устанавливает поле (флаг) ''bug'' структуры ''_options'' второго рендера в истину. Не имеет смысла. Включаемый им участок кода сейчас исполняется по умолчанию&lt;br /&gt;
|-&lt;br /&gt;
|'''-build''' || устанавливает флаг файловой системы ''flBuildCopy''. Если флаг установлен,&lt;br /&gt;
все файлы, прочитанные файловой системой, будут скопированы из ''$server_root$'' (''$server_data_root$'') в ''$build_copy$'' (Доступен только на ''Debug'', ''Mixed'' конфигурациях)&lt;br /&gt;
|-&lt;br /&gt;
|'''-ebuild''' || устанавливает флаги файловой системы ''flBuildCopy'' и ''flEBuildCopy''. (Доступен только на ''Debug'', ''Mixed'' конфигурациях)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:red&amp;quot;|'''-gebug_ge''' || ??&lt;br /&gt;
|-&lt;br /&gt;
|'''-i''' || отключает захват устройства ввода &lt;br /&gt;
|-&lt;br /&gt;
|'''-keep_lua''' || запрещает перезапуск LVM &lt;br /&gt;
|-&lt;br /&gt;
|'''-mem_debug''' || включение отладки менеджера памяти. Необходим для работы с консольной командой ''dbg_mem_check'' (доступна, как и ''dbg_mem_dump'', если определен макрос ''DEBUG_MEMORY_MANAGER'')&lt;br /&gt;
|-&lt;br /&gt;
|'''-mt_cdb''' || что-то с обработкой коллизий (обработка колизий в отдельном потоке??), порождает поток ''CDB-construction''&lt;br /&gt;
|-&lt;br /&gt;
|'''-nes_texture_storing''' || что-то делает с текстурами при ??отгрузки уровня??&lt;br /&gt;
|-&lt;br /&gt;
|'''-netsim''' || включает симуляцию сети ?&lt;br /&gt;
|-&lt;br /&gt;
|'''-no_call_stack_assert''' || отключает вывод в лог call stack'a &lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:red&amp;quot;|'''-no_direct_connect''' || ?? &lt;br /&gt;
|-&lt;br /&gt;
|'''-nodf24''' || отключает какие-то примбамбасы от видеокарт ATi на втором рендере (DF24/F4)&lt;br /&gt;
|-&lt;br /&gt;
|'''-nonvs''' || отключает какие-то плюшки для видеокарт NVIDIA 40* и выше на втором рендере (NVStencil)&lt;br /&gt;
|-&lt;br /&gt;
|'''-pure_alloc''' || что-то связано с пулом &lt;br /&gt;
|-&lt;br /&gt;
|'''-sjitter''' || как-то влияет на компиляцию шейдеров&lt;br /&gt;
|-&lt;br /&gt;
|'''-forceskinw''' || как-то влияет на компиляцию шейдеров&lt;br /&gt;
|-&lt;br /&gt;
|'''-sunfilter''' || как-то влияет на компиляцию шейдеров&lt;br /&gt;
|-&lt;br /&gt;
|'''-svcfg''' || Выполняет указанный конфигурационный файл на этапе загрузки ''level.game'' Параметр: имя выполняемого файла (''*.ltx'')&lt;br /&gt;
|-&lt;br /&gt;
|'''-tsh'''  || как-то влияет на компиляцию шейдеров (какие-то T тени)&lt;br /&gt;
|-&lt;br /&gt;
|'''-tdemo''' || Исполняет указанное демо Параметр: имя файла демо (в билдах есть пример использования) &lt;br /&gt;
|-&lt;br /&gt;
|'''-tdemof''' || тоже самое, только что-то там с кадрами мутится&lt;br /&gt;
|-&lt;br /&gt;
|'''-techdemo''' || режим записи демо?&lt;br /&gt;
|-&lt;br /&gt;
|'''-x86''' || отключает использование инструкций ''SSE, SSE2, 3DNow''??&lt;br /&gt;
|-&lt;br /&gt;
|'''-xclsx''' || отключает вывод различной отладочной информации на экран в виде красных строк (Доступен только на ''Debug'', ''Mixed'' конфигурациях)&lt;br /&gt;
|-&lt;br /&gt;
|'''-tune''' || запуск профиливщика ''Intel vTune''&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
_____&lt;br /&gt;
&amp;lt;br/&amp;gt;Статья будет дополняться... &amp;lt;br/&amp;gt;&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/slava_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;26.08.2015&amp;lt;/u&amp;gt;.&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BB%D1%8E%D1%87%D0%B8_%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0_X-Ray</id>
		<title>Ключи запуска X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BB%D1%8E%D1%87%D0%B8_%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0_X-Ray"/>
				<updated>2015-08-26T15:11:58Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Команды_консоли]]&lt;br /&gt;
&lt;br /&gt;
'''-_g''' - влияет на некий заголовок, что-то со скриптами&lt;br /&gt;
&lt;br /&gt;
С ним: &lt;br /&gt;
&amp;lt;lua&amp;gt;local function script_name()&lt;br /&gt;
  return &amp;quot;%s&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
local this = {}&lt;br /&gt;
this._G = _G&lt;br /&gt;
 %s this %s&lt;br /&gt;
setfenv(1, this)&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Без него:&lt;br /&gt;
&amp;lt;lua&amp;gt;local function script_name()&lt;br /&gt;
  return &amp;quot;%s&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
local this = {}&lt;br /&gt;
%s this %s&lt;br /&gt;
setmetatable(this, {__index = _G}&lt;br /&gt;
setfenv(1, this)&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''-batch_benchmark''' - запускает бенчмаркинг. Параметр: имя файла с опциями бенчмаркинга (''*.ini'', ''*.ltx''). Файл ищется в ''$app_data_root$'' &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-nojit''' - отключен &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-bug''' - устанавливает поле (флаг) ''bug'' структуры ''_options'' второго рендера в истину. Не имеет смысла. Включаемый им участок кода сейчас исполняется по умолчанию &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-build''' - устанавливает флаг файловой системы ''flBuildCopy''. Если флаг установлен,&lt;br /&gt;
все файлы, прочитанные файловой системой, будут скопированы из ''$server_root$'' (''$server_data_root$'') в ''$build_copy$'' (Доступен только на ''Debug'', ''Mixed'' конфигурациях)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''-ebuild''' - устанавливает флаги файловой системы ''flBuildCopy'' и ''flEBuildCopy''. (Доступен только на ''Debug'', ''Mixed'' конфигурациях)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''-gebug_ge''' - ??&amp;lt;br/&amp;gt;&lt;br /&gt;
'''-i''' - отключает захват устройства ввода &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-keep_lua''' - запрещает перезапуск LVM &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-mem_debug''' - включение отладки менеджера памяти. Необходим для работы с консольной командой ''dbg_mem_check'' (доступна, как и ''dbg_mem_dump'', если определен макрос ''DEBUG_MEMORY_MANAGER'') &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-mt_cdb''' - что-то с обработкой коллизий (обработка колизий в отдельном потоке??), порождает поток ''CDB-construction'' &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-nes_texture_storing''' - что-то делает с текстурами при ??отгрузки уровня?? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-netsim''' - включает симуляцию сети ? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-no_call_stack_assert''' - отключает вывод в лог call stack'a &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-no_direct_connect''' - ?? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-nodf24''' - отключает какие-то примбамбасы от видеокарт ATi на втором рендере (DF24/F4) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-nonvs''' - отключает какие-то плюшки для видеокарт NVIDIA 40* и выше на втором рендере (NVStencil) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-pure_alloc''' - что-то связано с пулом &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-sjitter''' - как-то влияет на компиляцию шейдеров &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-forceskinw''' - как-то влияет на компиляцию шейдеров &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-sunfilter''' - как-то влияет на компиляцию шейдеров &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-svcfg''' - Выполняет указанный конфигурационный файл на этапе загрузки ''level.game'' Параметр: имя выполняемого файла (''*.ltx'') &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-tsh'''  - как-то влияет на компиляцию шейдеров (какие-то T тени) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-tdemo''' - Исполняет указанное демо Параметр: имя файла демо (в билдах есть пример использования) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-tdemof''' - тоже самое, только что-то там с кадрами мутится &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-techdemo''' - режим записи демо? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-x86''' - отключает использование инструкций ''SSE, SSE2, 3DNow''?? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-xclsx''' - отключает вывод различной отладочной информации на экран в виде красных строк (Доступен только на ''Debug'', ''Mixed'' конфигурациях) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-tune''' - запуск профиливщика ''Intel vTune'' &amp;lt;br/&amp;gt;&lt;br /&gt;
_____&lt;br /&gt;
&amp;lt;br/&amp;gt;Статья будет дополняться... &amp;lt;br/&amp;gt;&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/slava_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;26.08.2015&amp;lt;/u&amp;gt;.&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BB%D1%8E%D1%87%D0%B8_%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0_X-Ray</id>
		<title>Ключи запуска X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BB%D1%8E%D1%87%D0%B8_%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0_X-Ray"/>
				<updated>2015-08-26T15:11:25Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Команды_консоли]]&lt;br /&gt;
&lt;br /&gt;
'''-_g''' - влияет на некий заголовок, что-то со скриптами&lt;br /&gt;
&lt;br /&gt;
С ним: &lt;br /&gt;
&amp;lt;lua&amp;gt;local function script_name()&lt;br /&gt;
  return &amp;quot;%s&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
local this = {}&lt;br /&gt;
this._G = _G&lt;br /&gt;
 %s this %s&lt;br /&gt;
setfenv(1, this)&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Без него:&lt;br /&gt;
&amp;lt;lua&amp;gt;local function script_name()&lt;br /&gt;
  return &amp;quot;%s&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
local this = {}&lt;br /&gt;
%s this %s&lt;br /&gt;
setmetatable(this, {__index = _g}&lt;br /&gt;
setfenv(1, this)&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''-batch_benchmark''' - запускает бенчмаркинг. Параметр: имя файла с опциями бенчмаркинга (''*.ini'', ''*.ltx''). Файл ищется в ''$app_data_root$'' &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-nojit''' - отключен &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-bug''' - устанавливает поле (флаг) ''bug'' структуры ''_options'' второго рендера в истину. Не имеет смысла. Включаемый им участок кода сейчас исполняется по умолчанию &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-build''' - устанавливает флаг файловой системы ''flBuildCopy''. Если флаг установлен,&lt;br /&gt;
все файлы, прочитанные файловой системой, будут скопированы из ''$server_root$'' (''$server_data_root$'') в ''$build_copy$'' (Доступен только на ''Debug'', ''Mixed'' конфигурациях)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''-ebuild''' - устанавливает флаги файловой системы ''flBuildCopy'' и ''flEBuildCopy''. (Доступен только на ''Debug'', ''Mixed'' конфигурациях)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''-gebug_ge''' - ??&amp;lt;br/&amp;gt;&lt;br /&gt;
'''-i''' - отключает захват устройства ввода &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-keep_lua''' - запрещает перезапуск LVM &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-mem_debug''' - включение отладки менеджера памяти. Необходим для работы с консольной командой ''dbg_mem_check'' (доступна, как и ''dbg_mem_dump'', если определен макрос ''DEBUG_MEMORY_MANAGER'') &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-mt_cdb''' - что-то с обработкой коллизий (обработка колизий в отдельном потоке??), порождает поток ''CDB-construction'' &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-nes_texture_storing''' - что-то делает с текстурами при ??отгрузки уровня?? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-netsim''' - включает симуляцию сети ? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-no_call_stack_assert''' - отключает вывод в лог call stack'a &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-no_direct_connect''' - ?? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-nodf24''' - отключает какие-то примбамбасы от видеокарт ATi на втором рендере (DF24/F4) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-nonvs''' - отключает какие-то плюшки для видеокарт NVIDIA 40* и выше на втором рендере (NVStencil) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-pure_alloc''' - что-то связано с пулом &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-sjitter''' - как-то влияет на компиляцию шейдеров &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-forceskinw''' - как-то влияет на компиляцию шейдеров &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-sunfilter''' - как-то влияет на компиляцию шейдеров &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-svcfg''' - Выполняет указанный конфигурационный файл на этапе загрузки ''level.game'' Параметр: имя выполняемого файла (''*.ltx'') &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-tsh'''  - как-то влияет на компиляцию шейдеров (какие-то T тени) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-tdemo''' - Исполняет указанное демо Параметр: имя файла демо (в билдах есть пример использования) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-tdemof''' - тоже самое, только что-то там с кадрами мутится &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-techdemo''' - режим записи демо? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-x86''' - отключает использование инструкций ''SSE, SSE2, 3DNow''?? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-xclsx''' - отключает вывод различной отладочной информации на экран в виде красных строк (Доступен только на ''Debug'', ''Mixed'' конфигурациях) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-tune''' - запуск профиливщика ''Intel vTune'' &amp;lt;br/&amp;gt;&lt;br /&gt;
_____&lt;br /&gt;
&amp;lt;br/&amp;gt;Статья будет дополняться... &amp;lt;br/&amp;gt;&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/slava_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;26.08.2015&amp;lt;/u&amp;gt;.&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BB%D1%8E%D1%87%D0%B8_%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0_X-Ray</id>
		<title>Ключи запуска X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BB%D1%8E%D1%87%D0%B8_%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0_X-Ray"/>
				<updated>2015-08-26T15:10:16Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Команды_консоли]]&lt;br /&gt;
&lt;br /&gt;
'''-_g''' - влияет на некий заголовок, что-то со скриптами&lt;br /&gt;
&lt;br /&gt;
С ним: &lt;br /&gt;
&amp;lt;code&amp;gt;local function script_name()&lt;br /&gt;
  return &amp;quot;%s&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
local this = {}&lt;br /&gt;
this._G = _G&lt;br /&gt;
 %s this %s&lt;br /&gt;
setfenv(1, this)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Без него:&lt;br /&gt;
&amp;lt;code&amp;gt;local function script_name()&lt;br /&gt;
  return &amp;quot;%s&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
local this = {}&lt;br /&gt;
%s this %s&lt;br /&gt;
setmetatable(this, {__index = _g}&lt;br /&gt;
setfenv(1, this)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''-batch_benchmark''' - запускает бенчмаркинг. Параметр: имя файла с опциями бенчмаркинга (''*.ini'', ''*.ltx''). Файл ищется в ''$app_data_root$'' &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-nojit''' - отключен &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-bug''' - устанавливает поле (флаг) ''bug'' структуры ''_options'' второго рендера в истину. Не имеет смысла. Включаемый им участок кода сейчас исполняется по умолчанию &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-build''' - устанавливает флаг файловой системы ''flBuildCopy''. Если флаг установлен,&lt;br /&gt;
все файлы, прочитанные файловой системой, будут скопированы из ''$server_root$'' (''$server_data_root$'') в ''$build_copy$'' (Доступен только на ''Debug'', ''Mixed'' конфигурациях)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''-ebuild''' - устанавливает флаги файловой системы ''flBuildCopy'' и ''flEBuildCopy''. (Доступен только на ''Debug'', ''Mixed'' конфигурациях)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''-gebug_ge''' - ??&amp;lt;br/&amp;gt;&lt;br /&gt;
'''-i''' - отключает захват устройства ввода &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-keep_lua''' - запрещает перезапуск LVM &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-mem_debug''' - включение отладки менеджера памяти. Необходим для работы с консольной командой ''dbg_mem_check'' (доступна, как и ''dbg_mem_dump'', если определен макрос ''DEBUG_MEMORY_MANAGER'') &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-mt_cdb''' - что-то с обработкой коллизий (обработка колизий в отдельном потоке??), порождает поток ''CDB-construction'' &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-nes_texture_storing''' - что-то делает с текстурами при ??отгрузки уровня?? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-netsim''' - включает симуляцию сети ? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-no_call_stack_assert''' - отключает вывод в лог call stack'a &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-no_direct_connect''' - ?? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-nodf24''' - отключает какие-то примбамбасы от видеокарт ATi на втором рендере (DF24/F4) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-nonvs''' - отключает какие-то плюшки для видеокарт NVIDIA 40* и выше на втором рендере (NVStencil) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-pure_alloc''' - что-то связано с пулом &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-sjitter''' - как-то влияет на компиляцию шейдеров &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-forceskinw''' - как-то влияет на компиляцию шейдеров &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-sunfilter''' - как-то влияет на компиляцию шейдеров &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-svcfg''' - Выполняет указанный конфигурационный файл на этапе загрузки ''level.game'' Параметр: имя выполняемого файла (''*.ltx'') &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-tsh'''  - как-то влияет на компиляцию шейдеров (какие-то T тени) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-tdemo''' - Исполняет указанное демо Параметр: имя файла демо (в билдах есть пример использования) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-tdemof''' - тоже самое, только что-то там с кадрами мутится &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-techdemo''' - режим записи демо? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-x86''' - отключает использование инструкций ''SSE, SSE2, 3DNow''?? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-xclsx''' - отключает вывод различной отладочной информации на экран в виде красных строк (Доступен только на ''Debug'', ''Mixed'' конфигурациях) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-tune''' - запуск профиливщика ''Intel vTune'' &amp;lt;br/&amp;gt;&lt;br /&gt;
_____&lt;br /&gt;
&amp;lt;br/&amp;gt;Статья будет дополняться... &amp;lt;br/&amp;gt;&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/slava_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;26.08.2015&amp;lt;/u&amp;gt;.&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BB%D1%8E%D1%87%D0%B8_%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0_X-Ray</id>
		<title>Ключи запуска X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BB%D1%8E%D1%87%D0%B8_%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0_X-Ray"/>
				<updated>2015-08-26T15:09:39Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Команды_консоли]]&lt;br /&gt;
&lt;br /&gt;
'''-_g''' - влияет на некий заголовок, что-то со скриптами&lt;br /&gt;
&lt;br /&gt;
С ним: &lt;br /&gt;
&amp;lt;code&amp;gt;local function script_name()&lt;br /&gt;
  return &amp;quot;%s&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
local this = {}&lt;br /&gt;
this._G = _G&lt;br /&gt;
 %s this %s&lt;br /&gt;
setfenv(1, this)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Без него:&lt;br /&gt;
&amp;lt;code&amp;gt;local function script_name()&lt;br /&gt;
  return &amp;quot;%s&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
local this = {}&lt;br /&gt;
%s this %s&lt;br /&gt;
setmetatable(this, {__index = _g}&lt;br /&gt;
setfenv(1, this)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''-batch_benchmark''' - запускает бенчмаркинг. Параметр: имя файла с опциями бенчмаркинга (''*.ini'', ''*.ltx''). Файл ищется в ''$app_data_root$'' &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-nojit''' - отключен &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-bug''' - устанавливает поле (флаг) ''bug'' структуры ''_options'' второго рендера в истину. Не имеет смысла. Включаемый им участок кода сейчас исполняется по умолчанию &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-build''' - устанавливает флаг файловой системы ''flBuildCopy''. Если флаг установлен,&lt;br /&gt;
все файлы, прочитанные файловой системой, будут скопированы из ''$server_root$'' (''$server_data_root$'') в ''$build_copy$'' (Доступен только на ''Debug'', ''Mixed'' конфигурациях)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''-ebuild''' - устанавливает флаги файловой системы ''flBuildCopy'' и ''flEBuildCopy''. (Доступен только на ''Debug'', ''Mixed'' конфигурациях)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''-gebug_ge''' - ??&amp;lt;br/&amp;gt;&lt;br /&gt;
'''-i''' - отключает захват устройства ввода &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-keep_lua''' - запрещает перезапуск LVM &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-mem_debug''' - включение отладки менеджера памяти. Необходим для работы с консольной командой ''dbg_mem_check'' (доступна, как и ''dbg_mem_dump'', если определен макрос ''DEBUG_MEMORY_MANAGER'') &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-mt_cdb''' - что-то с обработкой коллизий (обработка колизий в отдельном потоке??), порождает поток ''CDB-construction'' &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-nes_texture_storing''' - что-то делает с текстурами при ??отгрузки уровня?? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-netsim''' - включает симуляцию сети ? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-no_call_stack_assert''' - отключает вывод в лог call stack'a &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-no_direct_connect''' - ?? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-nodf24''' - отключает какие-то примбамбасы от видеокарт ATi на втором рендере (DF24/F4) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-nonvs''' - отключает какие-то плюшки для видеокарт NVIDIA 40* и выше на втором рендере (NVStencil) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-pure_alloc''' - что-то связано с пулом &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-sjitter''' - как-то влияет на компиляцию шейдеров &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-forceskinw''' - как-то влияет на компиляцию шейдеров &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-sunfilter''' - как-то влияет на компиляцию шейдеров &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-svcfg''' - Выполняет указанный конфигурационный файл на этапе загрузки 'level.game' Параметр: имя выполняемого файла (''*.ltx'') &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-tsh'''  - как-то влияет на компиляцию шейдеров (какие-то T тени) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-tdemo''' - Исполняет указанное демо Параметр: имя файла демо (в билдах есть пример использования) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-tdemof''' - тоже самое, только что-то там с кадрами мутится &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-techdemo''' - режим записи демо? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-x86''' - отключает использование инструкций ''SSE, SSE2, 3DNow''?? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-xclsx''' - отключает вывод различной отладочной информации на экран в виде красных строк (Доступен только на ''Debug'', ''Mixed'' конфигурациях) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-tune''' - запуск профиливщика ''Intel vTune'' &amp;lt;br/&amp;gt;&lt;br /&gt;
_____&lt;br /&gt;
&amp;lt;br/&amp;gt;Статья будет дополняться... &amp;lt;br/&amp;gt;&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/slava_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;26.08.2015&amp;lt;/u&amp;gt;.&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BB%D1%8E%D1%87%D0%B8_%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0_X-Ray</id>
		<title>Ключи запуска X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BB%D1%8E%D1%87%D0%B8_%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0_X-Ray"/>
				<updated>2015-08-26T15:09:01Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Команды_консоли]]&lt;br /&gt;
&lt;br /&gt;
'''-_g''' - влияет на некий заголовок, что-то со скриптами&lt;br /&gt;
&lt;br /&gt;
С ним: &lt;br /&gt;
&amp;lt;code&amp;gt;local function script_name()&lt;br /&gt;
  return &amp;quot;%s&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
local this = {}&lt;br /&gt;
this._G = _G&lt;br /&gt;
 %s this %s&lt;br /&gt;
setfenv(1, this)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Без него:&lt;br /&gt;
&amp;lt;code&amp;gt;local function script_name()&lt;br /&gt;
  return &amp;quot;%s&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
local this = {}&lt;br /&gt;
%s this %s&lt;br /&gt;
setmetatable(this, {__index = _g}&lt;br /&gt;
setfenv(1, this)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''-batch_benchmark''' - запускает бенчмаркинг. Параметр: имя файла с опциями бенчмаркинга (''*.ini'', ''*.ltx''). Файл ищется в ''$app_data_root$'' &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-nojit''' - отключен &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-bug''' - устанавливает поле (флаг) ''bug'' структуры ''_options'' второго рендера в истину. Не имеет смысла. Включаемый им участок кода сейчас исполняется по умолчанию &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-build''' - устанавливает флаг файловой системы ''flBuildCopy''. Если флаг установлен,&lt;br /&gt;
все файлы, прочитанные файловой системой, будут скопированы из ''$server_root$'' (''$server_data_root$'') в ''$build_copy$'' (Доступен только на ''Debug'', ''Mixed'' конфигурациях)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''-ebuild''' - устанавливает флаги файловой системы ''flBuildCopy'' и ''flEBuildCopy''. (Доступен только на ''Debug'', ''Mixed'' конфигурациях)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''-gebug_ge''' - ??&amp;lt;br/&amp;gt;&lt;br /&gt;
'''-i''' - отключает захват устройства ввода &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-keep_lua''' - запрещает перезапуск LVM &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-mem_debug''' - включение отладки менеджера памяти. Необходим для работы с консольной командой ''dbg_mem_check'' (доступна, как и ''dbg_mem_dump'', если определен макрос ''DEBUG_MEMORY_MANAGER'') &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-mt_cdb''' - что-то с обработкой коллизий (обработка колизий в отдельном потоке??), порождает поток ''CDB-construction'' &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-nes_texture_storing''' - что-то делает с текстурами при ??отгрузки уровня?? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-netsim''' - включает симуляцию сети ? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-no_call_stack_assert''' - отключает вывод в лог call stack'a &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-no_direct_connect''' - ?? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-nodf24''' - отключает какие-то примбамбасы от видеокарт ATi на втором рендере (DF24/F4) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-nonvs''' - отключает какие-то плюшки для видеокарт NVIDIA 40* и выше на втором рендере (NVStencil) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-pure_alloc''' - что-то связано с пулом &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-sjitter''' - как-то влияет на компиляцию шейдеров &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-forceskinw''' - как-то влияет на компиляцию шейдеров &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-sunfilter''' - как-то влияет на компиляцию шейдеров &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-svcfg''' - Выполняет указанный конфигурационный файл на этапе загрузки 'level.game' Параметр: имя выполняемого файла (''*.ltx'') &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-tsh'''  - как-то влияет на компиляцию шейдеров (какие-то T тени) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-tdemo''' - Исполняет указанное демо Параметр: имя файла демо (в билдах есть пример использования) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-tdemof''' - тоже самое, только что-то там с кадрами мутится &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-techdemo''' - режим записи демо? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-x86''' - отключает использование инструкций ''SSE, SSE2, 3DNow''?? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-xclsx''' - отключает вывод различной отладочной информации на экран в виде красных строк (Доступен только на ''Debug'', ''Mixed'' конфигурациях) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-tune''' - запуск профиливщика ''Intel vTune'' &amp;lt;br/&amp;gt;&lt;br /&gt;
_____&lt;br /&gt;
&amp;lt;br/&amp;gt;Статья будет дополнятся... &amp;lt;br/&amp;gt;&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/slava_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;26.08.2015&amp;lt;/u&amp;gt;.&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BB%D1%8E%D1%87%D0%B8_%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0_X-Ray</id>
		<title>Ключи запуска X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BB%D1%8E%D1%87%D0%B8_%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0_X-Ray"/>
				<updated>2015-08-26T15:05:34Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: Новая страница: «Категория:Команды_консоли  '''-_g''' - влияет на некий заголовок, что-то со скриптами  С ним:…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Команды_консоли]]&lt;br /&gt;
&lt;br /&gt;
'''-_g''' - влияет на некий заголовок, что-то со скриптами&lt;br /&gt;
&lt;br /&gt;
С ним: &lt;br /&gt;
&amp;lt;code&amp;gt;local function script_name()&lt;br /&gt;
  return &amp;quot;%s&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
local this = {}&lt;br /&gt;
this._G = _G&lt;br /&gt;
 %s this %s&lt;br /&gt;
setfenv(1, this)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Без него:&lt;br /&gt;
&amp;lt;code&amp;gt;local function script_name()&lt;br /&gt;
  return &amp;quot;%s&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
local this = {}&lt;br /&gt;
%s this %s&lt;br /&gt;
setmetatable(this, {__index = _g}&lt;br /&gt;
setfenv(1, this)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''-batch_benchmark''' - запускает бенчмаркинг. Параметр: имя файла с опциями бенчмаркинга (*.ini, *.ltx). Файл ищется в $app_data_root$ &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-nojit''' - отключен &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-bug''' - устанавливает поле (флаг) 'bug' структуры '_options' второго рендера в истину. Не имеет смысла. Включаемый им участок кода сейчас исполняется по умолчанию &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-build''' - устанавливает флаг файловой системы 'flBuildCopy'. Если флаг установлен,&lt;br /&gt;
все файлы, прочитанные файловой системой, будут скопированы из $server_root$ ($server_data_root$) в $build_copy$ (Доступен только на Debug, Mixed конфигурациях)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''-ebuild''' - устанавливает флаги файловой системы 'flBuildCopy' и 'flEBuildCopy'. (Доступен только на Debug, Mixed конфигурациях)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''-gebug_ge''' - ??&amp;lt;br/&amp;gt;&lt;br /&gt;
'''-i''' - отключает захват устройства ввода &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-keep_lua''' - запрещает перезапуск LVM &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-mem_debug''' - включение отладки менеджера памяти. Необходим для работы с консольной командой 'dbg_mem_check' (доступна, как и 'dbg_mem_dump', если определен макрос DEBUG_MEMORY_MANAGER) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-mt_cdb''' - что-то с обработкой коллизий (обработка колизий в отдельном потоке??), порождает поток &amp;quot;CDB-construction&amp;quot; &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-nes_texture_storing''' - что-то делает с текстурами при ??отгрузки уровня?? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-netsim''' - включает симуляцию сети ? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-no_call_stack_assert''' - отключает вывод в лог call stack'a &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-no_direct_connect''' - ?? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-nodf24''' - отключает какие-то примбамбасы от видеокарт ATi на втором рендере (DF24/F4) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-nonvs''' - отключает какие-то плюшки для видеокарт NVIDIA 40* и выше на втором рендере (NVStencil) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-pure_alloc''' - что-то связано с пулом &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-sjitter''' - как-то влияет на компиляцию шейдеров &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-forceskinw''' - как-то влияет на компиляцию шейдеров &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-sunfilter''' - как-то влияет на компиляцию шейдеров &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-svcfg''' - Выполняет указанный конфигурационный файл на этапе загрузки 'level.game' Параметр: имя выполняемого файла (*.ltx) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-tsh'''  - как-то влияет на компиляцию шейдеров (какие-то T тени) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-tdemo''' - Исполняет указанное демо Параметр: имя файла демо (в билдах есть пример использования) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-tdemof''' - тоже самое, только что-то там с кадрами мутится &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-techdemo''' - режим записи демо? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-x86''' - отключает использование инструкций SSE, SSE2, 3DNow?? &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-xclsx''' - отключает вывод различной отладочной информации на экран в виде красных строк (Доступен только на Debug, Mixed конфигурациях) &amp;lt;br/&amp;gt;&lt;br /&gt;
'''-tune''' - запуск профиливщика Intel vTune &amp;lt;br/&amp;gt;&lt;br /&gt;
_____&lt;br /&gt;
&amp;lt;br/&amp;gt;Статья будет дополнятся... &amp;lt;br/&amp;gt;&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/slava_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;26.08.2015&amp;lt;/u&amp;gt;.&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray</id>
		<title>Сборка движка X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray"/>
				<updated>2015-08-26T12:37:26Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: /* Что необходимо для сборки? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Руководства]]&lt;br /&gt;
== Предисловие ==&lt;br /&gt;
Сразу хочется упомянуть о том, что я не программист, мною могут быть допущены какие-то неточности, ошибки. Всё что будет изложено ниже не может считаться верным решением встречающихся при сборке X-Ray проблем. Ну что ж, хватит лирики, приступим-с...&lt;br /&gt;
&lt;br /&gt;
== На кого рассчитана данная статья? ==&lt;br /&gt;
Прежде всего она рассчитана на начинающих программистов, подобных мне, которые не могут собрать движок, но хотят вносить в него какие-то правки, ну или хотя бы хотят пытаться вносить правки. Ну это вовсе не означает что Вы являетесь &amp;quot;полным нулём&amp;quot;, предполагается что читатель хотя бы минимальски знаком с ЯП C++ и имеет хоть какой-то опыт работы в Visual Studio.&lt;br /&gt;
&lt;br /&gt;
== Что необходимо для сборки? ==&lt;br /&gt;
* Visual Studio 2005 и выше (&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;'''НЕ'''&amp;lt;/span&amp;gt; Express Edition)&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=INFO|&lt;br /&gt;
message=''Можно попробовать Express Edition, только придётся решить проблему сборки приложений, которые используют MFC (компиляторы и т.п.). А лучше использовать Community Edition современных версий Visual Studio,''&lt;br /&gt;
''они по функционалу схожи с Professional Edition прошлых версий и абсолютно бесплатны. Правда один минус, могут возникнуть новые проблемы, которые не будут затронуты в этой статье.''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Скачать Visual Studio 2015 Community Edition с сайта Microsoft: [https://go.microsoft.com/fwlink/?LinkId=532606&amp;amp;clcid=0x419]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_0|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message='''Данный туториал рассчитан на VS 2010! При сборке на более современных студиях могут появиться другие проблемы, описания которых не окажется в данной статье!'''&lt;br /&gt;
}} &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
* S.T.A.L.K.E.R. Shadow of Cherbobyl 1.0006&lt;br /&gt;
&lt;br /&gt;
== Сборка ==&lt;br /&gt;
=== Заранее хочется оговориться о структуре каталогов ===&lt;br /&gt;
* ''XRay'' -- корневой каталог движка&lt;br /&gt;
** ''xr_build'' -- Выходной каталог, здесь находятся распакованные ресурсы игры&lt;br /&gt;
** ''xr_src'' -- Каталог с исходными кодами движка&lt;br /&gt;
** ''dev-scripts'' -- Различные вспомогательные скрипты&lt;br /&gt;
=== Загрузка исходного кода движка и подготовительные работы ===&lt;br /&gt;
Скачиваем основной архив с исходниками: [https://bitbucket.org/stalker/x-ray/downloads/XRay.rar]&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Пароль:''' ljlLHhklknlked&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Скачиваем архив с необходимыми для сборки SDKs и компонентами: [https://bitbucket.org/stalker/x-ray/downloads/src_components_for_xray.rar]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Распаковываем содержимое архивов ''XRay.rar'' и ''src_components_for_xray.rar'' в директорию ''XRay\xr_src'' &amp;lt;br/&amp;gt;&lt;br /&gt;
В папке ''dev-scripts'' создаем два (*.cmd) файла - ''mountDisks.cmd'' и ''unmountDisks.cmd'' такого содержания:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
''mountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: [Ваш путь до папки XRay]:\XRay\xr_build&lt;br /&gt;
@subst S: [Ваш путь до папки XRay]:\XRay\xr_src&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
''unmountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: /D&lt;br /&gt;
@subst S: /D&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Запускаем ''mountDisks.cmd'', должны появиться два виртуальных диска: ''X'' и ''S''. ''X'' -выходной каталог, ''S'' - каталог исходников.&lt;br /&gt;
[[Файл:Ss_0.jpg|Виртуальные диски|frame|left|Виртуальные диски]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Подготовительный этап закончен. Приступаем к настройке проектов.&lt;br /&gt;
=== Настройка проектов ===&lt;br /&gt;
Запускаем Visual Studio, на стартовой странице выбираем ''Открыть проект...'' или ''Файл -&amp;gt; Открыть -&amp;gt; Решение или проект...'' В появившемся окне выбираем ''S:\xr_3da\xr_3da.sln''.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_1.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Появится окно мастера преобразования Visual Studio, жмём кнопку 'Готово' и ждём пока все проекты конвертируются в формат VS10 и пройдёт синтаксический анализ проектов.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_2.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
После того как всё сконвертировалось, первым делом открываем  Диспетчер конфигураций (''ПКМ по решению -&amp;gt; Свойства -&amp;gt; Свойства конфигурации'') и выставляем решению активную конфигурацию ''Mixed'' (на чистом ''Debug'' ужасно падает производительность), а для сторонних библиотек (''BugTrap'', ''OpenAL'', ''minizip'', ''zlib'') ставим ''Release''.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_3.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Ну а теперь самое муторное, это настройка собственно проектов. Каждый проект придется настраивать отдельно, собирать так же советую отдельно (''ПКМ по проекту -&amp;gt; Только проект -&amp;gt; Построить только [имя проекта]''). Порядок построения можно узнать так: ''ПКМ по любому проекту -&amp;gt; Зависимости проектов... -&amp;gt; Порядок построения''. Настраиваем выходные каталоги, промежуточные каталоги и выходные каталог для библиотек импорта по своему вкусу, у меня так (на примере ''BugTrap'', используется структура каталогов, упомянутая в начале статьи):&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_4.jpg|512px]]  [[Image:Ss_5.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Далее необходимо настроить пути к заголовочным файлам и библиотекам импорта внешних библиотек. Ниже пойдёт таблица проектов (в порядке построения) с необходимыми для них библиотеками из директории ''xr_src\SDK'', пути настраиваются здесь: &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_6.jpg|512px]]  [[Файл:Ss_7.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{|class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Проект||Необходимые библиотеки&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCore'''||''DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCDB'''||''xrCore''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrLua'''||''xrCore, LuaBind, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrSound'''||''xrCore, Xiph libs, EAX, DX, OpenAL''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrParticles'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrNetServer'''||''xrCore, DX, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrXMLParser'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''XR_3DA'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Xiph libs, OpenAL (*.lib only)''&lt;br /&gt;
|-&lt;br /&gt;
|'''ODE'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCPU_Pipe'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGameSpy'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R2'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R1'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGame'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Loki''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_1|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=На заметку|&lt;br /&gt;
message=xrGame самая &amp;quot;массивная&amp;quot; библиотека X-Ray, на некоторых машинах её сборка может занять прилично времени.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
=== Сборка ===&lt;br /&gt;
Собираем каждый проект, как я ранее написал, отдельно, по списку порядка построения. Ниже разбираются наиболее встречающиеся проблемы. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrCore'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2061: синтаксическая ошибка: идентификатор &amp;quot;__RPC__out_xcount_part&amp;lt;/code&amp;gt;&lt;br /&gt;
Необходимо удалить файл ''rpcsal.h'' из директории ''S:\SDK\dx9sdk\dx9sdk\include''. Возникает на старых версиях DXSDK, используйте версию за июнь 2010: [https://www.microsoft.com/en-us/download/details.aspx?id=6812]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrLua'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2883: std::terminate: объявление функции вступает в конфликт с &amp;quot;terminate&amp;quot;, присутствующем в &amp;quot;using&amp;quot;-объявлении&amp;lt;/code&amp;gt;&lt;br /&gt;
Идём в ''S:\SDK\luabind\luabind\config.hpp'', строка 31 и добавляем в имя функции ''terminate'' прочерк ,было '''terminate''', стало '''_terminate'''. &lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_2|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message=Функция '''_terminate''' существует в '''xrDebugNew!''' Не известно как это себя поведёт, лучше всё же закомментировать конструкцию '''namespace std { void terminate() }'''&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2244: throw_exception: не удается сопоставить определение функции существующему объявлению&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''xrCore.h'', в строке ''14'' объявляем макрос ''BOOST_NO_EXCEPTIONS'' ('''#define BOOST_NO_EXCEPTIONS''')&lt;br /&gt;
&amp;lt;code&amp;gt;error C2668: boost::addressof: неоднозначный вызов перегруженной функции&amp;lt;/code&amp;gt;&lt;br /&gt;
Лезем в ''S:\SDK\boost_1_30_0\function\function_template.hpp'', в строке ''472'' перед '''addressof''' дописываем '''boost::'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrGame'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;_operator::_edge_value_type CProblemSolver&amp;lt;_operator_condition,_condition_state,_operator,_condition_evaluator,_operator_id_type,_reverse_search,_operator_ptr,_condition_evaluator_ptr&amp;gt;::estimate_edge_weight_impl(const _condition_state &amp;amp;) const&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\problem_solver.h'', строка ''90''. Заменить этот кусок кода:&lt;br /&gt;
[[Файл:Ss_8.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
На этот: &lt;br /&gt;
[[Файл:Ss_9.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
И где-нибудь вне класса объявите структуру ''Bool2Type'': &lt;br /&gt;
[[Файл:Ss_10.jpg|Структура Bool2Type|frame|left|Структура Bool2Type]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2275: Pars: недопустимое использование этого типа в качестве выражения&amp;lt;/code&amp;gt;&lt;br /&gt;
Здесь придётся вносить правки в несколько файлов, для начала лезем в ''S:\xr_3da\xrGame\PHMovementDynamicActivate.cpp'' и везде после '''Pars''' вместо точки ставим двойное двоеточие '''::''', также делаем и в ''xrGame\physics_game.cpp''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;luabind::detail::class_rep *luabind::detail::get_class_rep(lua_State *,void (__cdecl *)(T))&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\SDK\luabind\luabind\detail\class_cache.hpp'', строка ''78'', добавляем символ '''*''' после буквы '''T''':&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_11.jpg|Правка LuaBind|frame|left|Правка LuaBind]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2780: luabind::class_&amp;lt;T&amp;gt; &amp;amp;luabind::class_&amp;lt;T&amp;gt;::def(luabind::detail::operator_&amp;lt;Derived&amp;gt;): требует аргументов: 1, имеется: 2&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\game_cl_base_script.cpp'', строка ''17'', дописываем перед '''SZoneMapEntityData''' ключевое слово '''const''': &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_12.jpg|Правка xrGame|frame|left|Правка xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Congratulations! ==&lt;br /&gt;
Ну вот и всё, осталось только скопировать, если его там нет, ''fsgame.ltx'' в директорию с вашими бинам и создать (*.cmd) файл для запуска, ну или для продвинутых написать свой лаунчер (например написать свою ''xrLauncher.dll''). Приятных экспериментов!&lt;br /&gt;
== Послесловие ==&lt;br /&gt;
В скором времени появятся другие статьи по движку ST или по программированию, так или иначе связанным с ST, возможно появится статья по сборке X-Ray SDK, если Вам конечна понравилась эта статья.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Если Вами в статье была найдена какая-то ошибка или неточность, прошу сообщить мне.&lt;br /&gt;
&lt;br /&gt;
== Благодарности ==&lt;br /&gt;
Я выражаю искрении благодарности следующим людям: '''K.D.''', '''HikeR''', '''Tron''' и всем остальным кто помогал в сборке движка. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ну и огромное спасибо '''GSC Game World''' за замечательный проект ST и за отсутствие гонений из-за использования исходных кодов движка :-).&lt;br /&gt;
== Автор ==&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/slava_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;11.07.2014&amp;lt;/u&amp;gt;. &amp;lt;br/&amp;gt;&lt;br /&gt;
Последние изменения (автор): &amp;lt;u&amp;gt;26.08.2015&amp;lt;/u&amp;gt;. &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Участник:KIRAY|KIRAY]] ([[Обсуждение участника:KIRAY|обсуждение]]) 11:07, 11 июля 2014 (MSK)&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray</id>
		<title>Сборка движка X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray"/>
				<updated>2015-08-26T12:36:06Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: /* Автор */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Руководства]]&lt;br /&gt;
== Предисловие ==&lt;br /&gt;
Сразу хочется упомянуть о том, что я не программист, мною могут быть допущены какие-то неточности, ошибки. Всё что будет изложено ниже не может считаться верным решением встречающихся при сборке X-Ray проблем. Ну что ж, хватит лирики, приступим-с...&lt;br /&gt;
&lt;br /&gt;
== На кого рассчитана данная статья? ==&lt;br /&gt;
Прежде всего она рассчитана на начинающих программистов, подобных мне, которые не могут собрать движок, но хотят вносить в него какие-то правки, ну или хотя бы хотят пытаться вносить правки. Ну это вовсе не означает что Вы являетесь &amp;quot;полным нулём&amp;quot;, предполагается что читатель хотя бы минимальски знаком с ЯП C++ и имеет хоть какой-то опыт работы в Visual Studio.&lt;br /&gt;
&lt;br /&gt;
== Что необходимо для сборки? ==&lt;br /&gt;
* Visual Studio 2005 и выше (&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;'''НЕ'''&amp;lt;/span&amp;gt; Express Edition)&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=INFO|&lt;br /&gt;
message=''Можно попробовать и Express Edition, только придётся решить проблему сборки приложений, которые используют MFC (компиляторы и т.п.). А лучше использовать Community Edition современных версий Visual Studio,''&lt;br /&gt;
''они по функционалу схожи с Professional Edition прошлых версий и абсолютно бесплатны. Правда один минус, могут возникнуть новые проблемы, которые не будут затронуты в этой статье.''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Скачать Visual Studio 2015 Community Edition с сайта Microsoft: [https://go.microsoft.com/fwlink/?LinkId=532606&amp;amp;clcid=0x419]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_0|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message='''Данный туториал рассчитан на VS 2010! При сборке на более современных студиях могут появиться другие проблемы, описания которых не окажется в данной статье!'''&lt;br /&gt;
}} &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
* S.T.A.L.K.E.R. Shadow of Cherbobyl 1.0006&lt;br /&gt;
&lt;br /&gt;
== Сборка ==&lt;br /&gt;
=== Заранее хочется оговориться о структуре каталогов ===&lt;br /&gt;
* ''XRay'' -- корневой каталог движка&lt;br /&gt;
** ''xr_build'' -- Выходной каталог, здесь находятся распакованные ресурсы игры&lt;br /&gt;
** ''xr_src'' -- Каталог с исходными кодами движка&lt;br /&gt;
** ''dev-scripts'' -- Различные вспомогательные скрипты&lt;br /&gt;
=== Загрузка исходного кода движка и подготовительные работы ===&lt;br /&gt;
Скачиваем основной архив с исходниками: [https://bitbucket.org/stalker/x-ray/downloads/XRay.rar]&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Пароль:''' ljlLHhklknlked&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Скачиваем архив с необходимыми для сборки SDKs и компонентами: [https://bitbucket.org/stalker/x-ray/downloads/src_components_for_xray.rar]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Распаковываем содержимое архивов ''XRay.rar'' и ''src_components_for_xray.rar'' в директорию ''XRay\xr_src'' &amp;lt;br/&amp;gt;&lt;br /&gt;
В папке ''dev-scripts'' создаем два (*.cmd) файла - ''mountDisks.cmd'' и ''unmountDisks.cmd'' такого содержания:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
''mountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: [Ваш путь до папки XRay]:\XRay\xr_build&lt;br /&gt;
@subst S: [Ваш путь до папки XRay]:\XRay\xr_src&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
''unmountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: /D&lt;br /&gt;
@subst S: /D&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Запускаем ''mountDisks.cmd'', должны появиться два виртуальных диска: ''X'' и ''S''. ''X'' -выходной каталог, ''S'' - каталог исходников.&lt;br /&gt;
[[Файл:Ss_0.jpg|Виртуальные диски|frame|left|Виртуальные диски]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Подготовительный этап закончен. Приступаем к настройке проектов.&lt;br /&gt;
=== Настройка проектов ===&lt;br /&gt;
Запускаем Visual Studio, на стартовой странице выбираем ''Открыть проект...'' или ''Файл -&amp;gt; Открыть -&amp;gt; Решение или проект...'' В появившемся окне выбираем ''S:\xr_3da\xr_3da.sln''.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_1.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Появится окно мастера преобразования Visual Studio, жмём кнопку 'Готово' и ждём пока все проекты конвертируются в формат VS10 и пройдёт синтаксический анализ проектов.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_2.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
После того как всё сконвертировалось, первым делом открываем  Диспетчер конфигураций (''ПКМ по решению -&amp;gt; Свойства -&amp;gt; Свойства конфигурации'') и выставляем решению активную конфигурацию ''Mixed'' (на чистом ''Debug'' ужасно падает производительность), а для сторонних библиотек (''BugTrap'', ''OpenAL'', ''minizip'', ''zlib'') ставим ''Release''.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_3.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Ну а теперь самое муторное, это настройка собственно проектов. Каждый проект придется настраивать отдельно, собирать так же советую отдельно (''ПКМ по проекту -&amp;gt; Только проект -&amp;gt; Построить только [имя проекта]''). Порядок построения можно узнать так: ''ПКМ по любому проекту -&amp;gt; Зависимости проектов... -&amp;gt; Порядок построения''. Настраиваем выходные каталоги, промежуточные каталоги и выходные каталог для библиотек импорта по своему вкусу, у меня так (на примере ''BugTrap'', используется структура каталогов, упомянутая в начале статьи):&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_4.jpg|512px]]  [[Image:Ss_5.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Далее необходимо настроить пути к заголовочным файлам и библиотекам импорта внешних библиотек. Ниже пойдёт таблица проектов (в порядке построения) с необходимыми для них библиотеками из директории ''xr_src\SDK'', пути настраиваются здесь: &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_6.jpg|512px]]  [[Файл:Ss_7.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{|class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Проект||Необходимые библиотеки&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCore'''||''DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCDB'''||''xrCore''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrLua'''||''xrCore, LuaBind, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrSound'''||''xrCore, Xiph libs, EAX, DX, OpenAL''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrParticles'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrNetServer'''||''xrCore, DX, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrXMLParser'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''XR_3DA'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Xiph libs, OpenAL (*.lib only)''&lt;br /&gt;
|-&lt;br /&gt;
|'''ODE'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCPU_Pipe'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGameSpy'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R2'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R1'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGame'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Loki''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_1|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=На заметку|&lt;br /&gt;
message=xrGame самая &amp;quot;массивная&amp;quot; библиотека X-Ray, на некоторых машинах её сборка может занять прилично времени.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
=== Сборка ===&lt;br /&gt;
Собираем каждый проект, как я ранее написал, отдельно, по списку порядка построения. Ниже разбираются наиболее встречающиеся проблемы. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrCore'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2061: синтаксическая ошибка: идентификатор &amp;quot;__RPC__out_xcount_part&amp;lt;/code&amp;gt;&lt;br /&gt;
Необходимо удалить файл ''rpcsal.h'' из директории ''S:\SDK\dx9sdk\dx9sdk\include''. Возникает на старых версиях DXSDK, используйте версию за июнь 2010: [https://www.microsoft.com/en-us/download/details.aspx?id=6812]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrLua'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2883: std::terminate: объявление функции вступает в конфликт с &amp;quot;terminate&amp;quot;, присутствующем в &amp;quot;using&amp;quot;-объявлении&amp;lt;/code&amp;gt;&lt;br /&gt;
Идём в ''S:\SDK\luabind\luabind\config.hpp'', строка 31 и добавляем в имя функции ''terminate'' прочерк ,было '''terminate''', стало '''_terminate'''. &lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_2|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message=Функция '''_terminate''' существует в '''xrDebugNew!''' Не известно как это себя поведёт, лучше всё же закомментировать конструкцию '''namespace std { void terminate() }'''&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2244: throw_exception: не удается сопоставить определение функции существующему объявлению&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''xrCore.h'', в строке ''14'' объявляем макрос ''BOOST_NO_EXCEPTIONS'' ('''#define BOOST_NO_EXCEPTIONS''')&lt;br /&gt;
&amp;lt;code&amp;gt;error C2668: boost::addressof: неоднозначный вызов перегруженной функции&amp;lt;/code&amp;gt;&lt;br /&gt;
Лезем в ''S:\SDK\boost_1_30_0\function\function_template.hpp'', в строке ''472'' перед '''addressof''' дописываем '''boost::'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrGame'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;_operator::_edge_value_type CProblemSolver&amp;lt;_operator_condition,_condition_state,_operator,_condition_evaluator,_operator_id_type,_reverse_search,_operator_ptr,_condition_evaluator_ptr&amp;gt;::estimate_edge_weight_impl(const _condition_state &amp;amp;) const&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\problem_solver.h'', строка ''90''. Заменить этот кусок кода:&lt;br /&gt;
[[Файл:Ss_8.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
На этот: &lt;br /&gt;
[[Файл:Ss_9.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
И где-нибудь вне класса объявите структуру ''Bool2Type'': &lt;br /&gt;
[[Файл:Ss_10.jpg|Структура Bool2Type|frame|left|Структура Bool2Type]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2275: Pars: недопустимое использование этого типа в качестве выражения&amp;lt;/code&amp;gt;&lt;br /&gt;
Здесь придётся вносить правки в несколько файлов, для начала лезем в ''S:\xr_3da\xrGame\PHMovementDynamicActivate.cpp'' и везде после '''Pars''' вместо точки ставим двойное двоеточие '''::''', также делаем и в ''xrGame\physics_game.cpp''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;luabind::detail::class_rep *luabind::detail::get_class_rep(lua_State *,void (__cdecl *)(T))&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\SDK\luabind\luabind\detail\class_cache.hpp'', строка ''78'', добавляем символ '''*''' после буквы '''T''':&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_11.jpg|Правка LuaBind|frame|left|Правка LuaBind]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2780: luabind::class_&amp;lt;T&amp;gt; &amp;amp;luabind::class_&amp;lt;T&amp;gt;::def(luabind::detail::operator_&amp;lt;Derived&amp;gt;): требует аргументов: 1, имеется: 2&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\game_cl_base_script.cpp'', строка ''17'', дописываем перед '''SZoneMapEntityData''' ключевое слово '''const''': &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_12.jpg|Правка xrGame|frame|left|Правка xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Congratulations! ==&lt;br /&gt;
Ну вот и всё, осталось только скопировать, если его там нет, ''fsgame.ltx'' в директорию с вашими бинам и создать (*.cmd) файл для запуска, ну или для продвинутых написать свой лаунчер (например написать свою ''xrLauncher.dll''). Приятных экспериментов!&lt;br /&gt;
== Послесловие ==&lt;br /&gt;
В скором времени появятся другие статьи по движку ST или по программированию, так или иначе связанным с ST, возможно появится статья по сборке X-Ray SDK, если Вам конечна понравилась эта статья.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Если Вами в статье была найдена какая-то ошибка или неточность, прошу сообщить мне.&lt;br /&gt;
&lt;br /&gt;
== Благодарности ==&lt;br /&gt;
Я выражаю искрении благодарности следующим людям: '''K.D.''', '''HikeR''', '''Tron''' и всем остальным кто помогал в сборке движка. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ну и огромное спасибо '''GSC Game World''' за замечательный проект ST и за отсутствие гонений из-за использования исходных кодов движка :-).&lt;br /&gt;
== Автор ==&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/slava_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;11.07.2014&amp;lt;/u&amp;gt;. &amp;lt;br/&amp;gt;&lt;br /&gt;
Последние изменения (автор): &amp;lt;u&amp;gt;26.08.2015&amp;lt;/u&amp;gt;. &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Участник:KIRAY|KIRAY]] ([[Обсуждение участника:KIRAY|обсуждение]]) 11:07, 11 июля 2014 (MSK)&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray</id>
		<title>Сборка движка X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray"/>
				<updated>2015-08-26T12:35:49Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: /* Автор */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Руководства]]&lt;br /&gt;
== Предисловие ==&lt;br /&gt;
Сразу хочется упомянуть о том, что я не программист, мною могут быть допущены какие-то неточности, ошибки. Всё что будет изложено ниже не может считаться верным решением встречающихся при сборке X-Ray проблем. Ну что ж, хватит лирики, приступим-с...&lt;br /&gt;
&lt;br /&gt;
== На кого рассчитана данная статья? ==&lt;br /&gt;
Прежде всего она рассчитана на начинающих программистов, подобных мне, которые не могут собрать движок, но хотят вносить в него какие-то правки, ну или хотя бы хотят пытаться вносить правки. Ну это вовсе не означает что Вы являетесь &amp;quot;полным нулём&amp;quot;, предполагается что читатель хотя бы минимальски знаком с ЯП C++ и имеет хоть какой-то опыт работы в Visual Studio.&lt;br /&gt;
&lt;br /&gt;
== Что необходимо для сборки? ==&lt;br /&gt;
* Visual Studio 2005 и выше (&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;'''НЕ'''&amp;lt;/span&amp;gt; Express Edition)&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=INFO|&lt;br /&gt;
message=''Можно попробовать и Express Edition, только придётся решить проблему сборки приложений, которые используют MFC (компиляторы и т.п.). А лучше использовать Community Edition современных версий Visual Studio,''&lt;br /&gt;
''они по функционалу схожи с Professional Edition прошлых версий и абсолютно бесплатны. Правда один минус, могут возникнуть новые проблемы, которые не будут затронуты в этой статье.''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Скачать Visual Studio 2015 Community Edition с сайта Microsoft: [https://go.microsoft.com/fwlink/?LinkId=532606&amp;amp;clcid=0x419]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_0|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message='''Данный туториал рассчитан на VS 2010! При сборке на более современных студиях могут появиться другие проблемы, описания которых не окажется в данной статье!'''&lt;br /&gt;
}} &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
* S.T.A.L.K.E.R. Shadow of Cherbobyl 1.0006&lt;br /&gt;
&lt;br /&gt;
== Сборка ==&lt;br /&gt;
=== Заранее хочется оговориться о структуре каталогов ===&lt;br /&gt;
* ''XRay'' -- корневой каталог движка&lt;br /&gt;
** ''xr_build'' -- Выходной каталог, здесь находятся распакованные ресурсы игры&lt;br /&gt;
** ''xr_src'' -- Каталог с исходными кодами движка&lt;br /&gt;
** ''dev-scripts'' -- Различные вспомогательные скрипты&lt;br /&gt;
=== Загрузка исходного кода движка и подготовительные работы ===&lt;br /&gt;
Скачиваем основной архив с исходниками: [https://bitbucket.org/stalker/x-ray/downloads/XRay.rar]&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Пароль:''' ljlLHhklknlked&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Скачиваем архив с необходимыми для сборки SDKs и компонентами: [https://bitbucket.org/stalker/x-ray/downloads/src_components_for_xray.rar]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Распаковываем содержимое архивов ''XRay.rar'' и ''src_components_for_xray.rar'' в директорию ''XRay\xr_src'' &amp;lt;br/&amp;gt;&lt;br /&gt;
В папке ''dev-scripts'' создаем два (*.cmd) файла - ''mountDisks.cmd'' и ''unmountDisks.cmd'' такого содержания:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
''mountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: [Ваш путь до папки XRay]:\XRay\xr_build&lt;br /&gt;
@subst S: [Ваш путь до папки XRay]:\XRay\xr_src&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
''unmountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: /D&lt;br /&gt;
@subst S: /D&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Запускаем ''mountDisks.cmd'', должны появиться два виртуальных диска: ''X'' и ''S''. ''X'' -выходной каталог, ''S'' - каталог исходников.&lt;br /&gt;
[[Файл:Ss_0.jpg|Виртуальные диски|frame|left|Виртуальные диски]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Подготовительный этап закончен. Приступаем к настройке проектов.&lt;br /&gt;
=== Настройка проектов ===&lt;br /&gt;
Запускаем Visual Studio, на стартовой странице выбираем ''Открыть проект...'' или ''Файл -&amp;gt; Открыть -&amp;gt; Решение или проект...'' В появившемся окне выбираем ''S:\xr_3da\xr_3da.sln''.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_1.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Появится окно мастера преобразования Visual Studio, жмём кнопку 'Готово' и ждём пока все проекты конвертируются в формат VS10 и пройдёт синтаксический анализ проектов.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_2.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
После того как всё сконвертировалось, первым делом открываем  Диспетчер конфигураций (''ПКМ по решению -&amp;gt; Свойства -&amp;gt; Свойства конфигурации'') и выставляем решению активную конфигурацию ''Mixed'' (на чистом ''Debug'' ужасно падает производительность), а для сторонних библиотек (''BugTrap'', ''OpenAL'', ''minizip'', ''zlib'') ставим ''Release''.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_3.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Ну а теперь самое муторное, это настройка собственно проектов. Каждый проект придется настраивать отдельно, собирать так же советую отдельно (''ПКМ по проекту -&amp;gt; Только проект -&amp;gt; Построить только [имя проекта]''). Порядок построения можно узнать так: ''ПКМ по любому проекту -&amp;gt; Зависимости проектов... -&amp;gt; Порядок построения''. Настраиваем выходные каталоги, промежуточные каталоги и выходные каталог для библиотек импорта по своему вкусу, у меня так (на примере ''BugTrap'', используется структура каталогов, упомянутая в начале статьи):&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_4.jpg|512px]]  [[Image:Ss_5.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Далее необходимо настроить пути к заголовочным файлам и библиотекам импорта внешних библиотек. Ниже пойдёт таблица проектов (в порядке построения) с необходимыми для них библиотеками из директории ''xr_src\SDK'', пути настраиваются здесь: &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_6.jpg|512px]]  [[Файл:Ss_7.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{|class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Проект||Необходимые библиотеки&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCore'''||''DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCDB'''||''xrCore''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrLua'''||''xrCore, LuaBind, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrSound'''||''xrCore, Xiph libs, EAX, DX, OpenAL''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrParticles'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrNetServer'''||''xrCore, DX, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrXMLParser'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''XR_3DA'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Xiph libs, OpenAL (*.lib only)''&lt;br /&gt;
|-&lt;br /&gt;
|'''ODE'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCPU_Pipe'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGameSpy'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R2'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R1'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGame'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Loki''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_1|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=На заметку|&lt;br /&gt;
message=xrGame самая &amp;quot;массивная&amp;quot; библиотека X-Ray, на некоторых машинах её сборка может занять прилично времени.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
=== Сборка ===&lt;br /&gt;
Собираем каждый проект, как я ранее написал, отдельно, по списку порядка построения. Ниже разбираются наиболее встречающиеся проблемы. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrCore'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2061: синтаксическая ошибка: идентификатор &amp;quot;__RPC__out_xcount_part&amp;lt;/code&amp;gt;&lt;br /&gt;
Необходимо удалить файл ''rpcsal.h'' из директории ''S:\SDK\dx9sdk\dx9sdk\include''. Возникает на старых версиях DXSDK, используйте версию за июнь 2010: [https://www.microsoft.com/en-us/download/details.aspx?id=6812]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrLua'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2883: std::terminate: объявление функции вступает в конфликт с &amp;quot;terminate&amp;quot;, присутствующем в &amp;quot;using&amp;quot;-объявлении&amp;lt;/code&amp;gt;&lt;br /&gt;
Идём в ''S:\SDK\luabind\luabind\config.hpp'', строка 31 и добавляем в имя функции ''terminate'' прочерк ,было '''terminate''', стало '''_terminate'''. &lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_2|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message=Функция '''_terminate''' существует в '''xrDebugNew!''' Не известно как это себя поведёт, лучше всё же закомментировать конструкцию '''namespace std { void terminate() }'''&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2244: throw_exception: не удается сопоставить определение функции существующему объявлению&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''xrCore.h'', в строке ''14'' объявляем макрос ''BOOST_NO_EXCEPTIONS'' ('''#define BOOST_NO_EXCEPTIONS''')&lt;br /&gt;
&amp;lt;code&amp;gt;error C2668: boost::addressof: неоднозначный вызов перегруженной функции&amp;lt;/code&amp;gt;&lt;br /&gt;
Лезем в ''S:\SDK\boost_1_30_0\function\function_template.hpp'', в строке ''472'' перед '''addressof''' дописываем '''boost::'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrGame'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;_operator::_edge_value_type CProblemSolver&amp;lt;_operator_condition,_condition_state,_operator,_condition_evaluator,_operator_id_type,_reverse_search,_operator_ptr,_condition_evaluator_ptr&amp;gt;::estimate_edge_weight_impl(const _condition_state &amp;amp;) const&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\problem_solver.h'', строка ''90''. Заменить этот кусок кода:&lt;br /&gt;
[[Файл:Ss_8.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
На этот: &lt;br /&gt;
[[Файл:Ss_9.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
И где-нибудь вне класса объявите структуру ''Bool2Type'': &lt;br /&gt;
[[Файл:Ss_10.jpg|Структура Bool2Type|frame|left|Структура Bool2Type]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2275: Pars: недопустимое использование этого типа в качестве выражения&amp;lt;/code&amp;gt;&lt;br /&gt;
Здесь придётся вносить правки в несколько файлов, для начала лезем в ''S:\xr_3da\xrGame\PHMovementDynamicActivate.cpp'' и везде после '''Pars''' вместо точки ставим двойное двоеточие '''::''', также делаем и в ''xrGame\physics_game.cpp''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;luabind::detail::class_rep *luabind::detail::get_class_rep(lua_State *,void (__cdecl *)(T))&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\SDK\luabind\luabind\detail\class_cache.hpp'', строка ''78'', добавляем символ '''*''' после буквы '''T''':&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_11.jpg|Правка LuaBind|frame|left|Правка LuaBind]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2780: luabind::class_&amp;lt;T&amp;gt; &amp;amp;luabind::class_&amp;lt;T&amp;gt;::def(luabind::detail::operator_&amp;lt;Derived&amp;gt;): требует аргументов: 1, имеется: 2&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\game_cl_base_script.cpp'', строка ''17'', дописываем перед '''SZoneMapEntityData''' ключевое слово '''const''': &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_12.jpg|Правка xrGame|frame|left|Правка xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Congratulations! ==&lt;br /&gt;
Ну вот и всё, осталось только скопировать, если его там нет, ''fsgame.ltx'' в директорию с вашими бинам и создать (*.cmd) файл для запуска, ну или для продвинутых написать свой лаунчер (например написать свою ''xrLauncher.dll''). Приятных экспериментов!&lt;br /&gt;
== Послесловие ==&lt;br /&gt;
В скором времени появятся другие статьи по движку ST или по программированию, так или иначе связанным с ST, возможно появится статья по сборке X-Ray SDK, если Вам конечна понравилась эта статья.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Если Вами в статье была найдена какая-то ошибка или неточность, прошу сообщить мне.&lt;br /&gt;
&lt;br /&gt;
== Благодарности ==&lt;br /&gt;
Я выражаю искрении благодарности следующим людям: '''K.D.''', '''HikeR''', '''Tron''' и всем остальным кто помогал в сборке движка. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ну и огромное спасибо '''GSC Game World''' за замечательный проект ST и за отсутствие гонений из-за использования исходных кодов движка :-).&lt;br /&gt;
== Автор ==&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/slava_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;11.07.2014&amp;lt;/u&amp;gt;. &amp;lt;br/&amp;gt;&lt;br /&gt;
Последнее изменение (автор): &amp;lt;u&amp;gt;26.08.2015&amp;lt;/u&amp;gt;. &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Участник:KIRAY|KIRAY]] ([[Обсуждение участника:KIRAY|обсуждение]]) 11:07, 11 июля 2014 (MSK)&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray</id>
		<title>Сборка движка X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray"/>
				<updated>2015-08-26T12:34:25Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: /* Послесловие */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Руководства]]&lt;br /&gt;
== Предисловие ==&lt;br /&gt;
Сразу хочется упомянуть о том, что я не программист, мною могут быть допущены какие-то неточности, ошибки. Всё что будет изложено ниже не может считаться верным решением встречающихся при сборке X-Ray проблем. Ну что ж, хватит лирики, приступим-с...&lt;br /&gt;
&lt;br /&gt;
== На кого рассчитана данная статья? ==&lt;br /&gt;
Прежде всего она рассчитана на начинающих программистов, подобных мне, которые не могут собрать движок, но хотят вносить в него какие-то правки, ну или хотя бы хотят пытаться вносить правки. Ну это вовсе не означает что Вы являетесь &amp;quot;полным нулём&amp;quot;, предполагается что читатель хотя бы минимальски знаком с ЯП C++ и имеет хоть какой-то опыт работы в Visual Studio.&lt;br /&gt;
&lt;br /&gt;
== Что необходимо для сборки? ==&lt;br /&gt;
* Visual Studio 2005 и выше (&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;'''НЕ'''&amp;lt;/span&amp;gt; Express Edition)&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=INFO|&lt;br /&gt;
message=''Можно попробовать и Express Edition, только придётся решить проблему сборки приложений, которые используют MFC (компиляторы и т.п.). А лучше использовать Community Edition современных версий Visual Studio,''&lt;br /&gt;
''они по функционалу схожи с Professional Edition прошлых версий и абсолютно бесплатны. Правда один минус, могут возникнуть новые проблемы, которые не будут затронуты в этой статье.''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Скачать Visual Studio 2015 Community Edition с сайта Microsoft: [https://go.microsoft.com/fwlink/?LinkId=532606&amp;amp;clcid=0x419]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_0|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message='''Данный туториал рассчитан на VS 2010! При сборке на более современных студиях могут появиться другие проблемы, описания которых не окажется в данной статье!'''&lt;br /&gt;
}} &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
* S.T.A.L.K.E.R. Shadow of Cherbobyl 1.0006&lt;br /&gt;
&lt;br /&gt;
== Сборка ==&lt;br /&gt;
=== Заранее хочется оговориться о структуре каталогов ===&lt;br /&gt;
* ''XRay'' -- корневой каталог движка&lt;br /&gt;
** ''xr_build'' -- Выходной каталог, здесь находятся распакованные ресурсы игры&lt;br /&gt;
** ''xr_src'' -- Каталог с исходными кодами движка&lt;br /&gt;
** ''dev-scripts'' -- Различные вспомогательные скрипты&lt;br /&gt;
=== Загрузка исходного кода движка и подготовительные работы ===&lt;br /&gt;
Скачиваем основной архив с исходниками: [https://bitbucket.org/stalker/x-ray/downloads/XRay.rar]&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Пароль:''' ljlLHhklknlked&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Скачиваем архив с необходимыми для сборки SDKs и компонентами: [https://bitbucket.org/stalker/x-ray/downloads/src_components_for_xray.rar]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Распаковываем содержимое архивов ''XRay.rar'' и ''src_components_for_xray.rar'' в директорию ''XRay\xr_src'' &amp;lt;br/&amp;gt;&lt;br /&gt;
В папке ''dev-scripts'' создаем два (*.cmd) файла - ''mountDisks.cmd'' и ''unmountDisks.cmd'' такого содержания:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
''mountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: [Ваш путь до папки XRay]:\XRay\xr_build&lt;br /&gt;
@subst S: [Ваш путь до папки XRay]:\XRay\xr_src&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
''unmountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: /D&lt;br /&gt;
@subst S: /D&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Запускаем ''mountDisks.cmd'', должны появиться два виртуальных диска: ''X'' и ''S''. ''X'' -выходной каталог, ''S'' - каталог исходников.&lt;br /&gt;
[[Файл:Ss_0.jpg|Виртуальные диски|frame|left|Виртуальные диски]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Подготовительный этап закончен. Приступаем к настройке проектов.&lt;br /&gt;
=== Настройка проектов ===&lt;br /&gt;
Запускаем Visual Studio, на стартовой странице выбираем ''Открыть проект...'' или ''Файл -&amp;gt; Открыть -&amp;gt; Решение или проект...'' В появившемся окне выбираем ''S:\xr_3da\xr_3da.sln''.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_1.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Появится окно мастера преобразования Visual Studio, жмём кнопку 'Готово' и ждём пока все проекты конвертируются в формат VS10 и пройдёт синтаксический анализ проектов.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_2.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
После того как всё сконвертировалось, первым делом открываем  Диспетчер конфигураций (''ПКМ по решению -&amp;gt; Свойства -&amp;gt; Свойства конфигурации'') и выставляем решению активную конфигурацию ''Mixed'' (на чистом ''Debug'' ужасно падает производительность), а для сторонних библиотек (''BugTrap'', ''OpenAL'', ''minizip'', ''zlib'') ставим ''Release''.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_3.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Ну а теперь самое муторное, это настройка собственно проектов. Каждый проект придется настраивать отдельно, собирать так же советую отдельно (''ПКМ по проекту -&amp;gt; Только проект -&amp;gt; Построить только [имя проекта]''). Порядок построения можно узнать так: ''ПКМ по любому проекту -&amp;gt; Зависимости проектов... -&amp;gt; Порядок построения''. Настраиваем выходные каталоги, промежуточные каталоги и выходные каталог для библиотек импорта по своему вкусу, у меня так (на примере ''BugTrap'', используется структура каталогов, упомянутая в начале статьи):&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_4.jpg|512px]]  [[Image:Ss_5.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Далее необходимо настроить пути к заголовочным файлам и библиотекам импорта внешних библиотек. Ниже пойдёт таблица проектов (в порядке построения) с необходимыми для них библиотеками из директории ''xr_src\SDK'', пути настраиваются здесь: &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_6.jpg|512px]]  [[Файл:Ss_7.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{|class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Проект||Необходимые библиотеки&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCore'''||''DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCDB'''||''xrCore''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrLua'''||''xrCore, LuaBind, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrSound'''||''xrCore, Xiph libs, EAX, DX, OpenAL''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrParticles'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrNetServer'''||''xrCore, DX, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrXMLParser'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''XR_3DA'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Xiph libs, OpenAL (*.lib only)''&lt;br /&gt;
|-&lt;br /&gt;
|'''ODE'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCPU_Pipe'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGameSpy'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R2'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R1'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGame'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Loki''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_1|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=На заметку|&lt;br /&gt;
message=xrGame самая &amp;quot;массивная&amp;quot; библиотека X-Ray, на некоторых машинах её сборка может занять прилично времени.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
=== Сборка ===&lt;br /&gt;
Собираем каждый проект, как я ранее написал, отдельно, по списку порядка построения. Ниже разбираются наиболее встречающиеся проблемы. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrCore'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2061: синтаксическая ошибка: идентификатор &amp;quot;__RPC__out_xcount_part&amp;lt;/code&amp;gt;&lt;br /&gt;
Необходимо удалить файл ''rpcsal.h'' из директории ''S:\SDK\dx9sdk\dx9sdk\include''. Возникает на старых версиях DXSDK, используйте версию за июнь 2010: [https://www.microsoft.com/en-us/download/details.aspx?id=6812]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrLua'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2883: std::terminate: объявление функции вступает в конфликт с &amp;quot;terminate&amp;quot;, присутствующем в &amp;quot;using&amp;quot;-объявлении&amp;lt;/code&amp;gt;&lt;br /&gt;
Идём в ''S:\SDK\luabind\luabind\config.hpp'', строка 31 и добавляем в имя функции ''terminate'' прочерк ,было '''terminate''', стало '''_terminate'''. &lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_2|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message=Функция '''_terminate''' существует в '''xrDebugNew!''' Не известно как это себя поведёт, лучше всё же закомментировать конструкцию '''namespace std { void terminate() }'''&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2244: throw_exception: не удается сопоставить определение функции существующему объявлению&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''xrCore.h'', в строке ''14'' объявляем макрос ''BOOST_NO_EXCEPTIONS'' ('''#define BOOST_NO_EXCEPTIONS''')&lt;br /&gt;
&amp;lt;code&amp;gt;error C2668: boost::addressof: неоднозначный вызов перегруженной функции&amp;lt;/code&amp;gt;&lt;br /&gt;
Лезем в ''S:\SDK\boost_1_30_0\function\function_template.hpp'', в строке ''472'' перед '''addressof''' дописываем '''boost::'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrGame'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;_operator::_edge_value_type CProblemSolver&amp;lt;_operator_condition,_condition_state,_operator,_condition_evaluator,_operator_id_type,_reverse_search,_operator_ptr,_condition_evaluator_ptr&amp;gt;::estimate_edge_weight_impl(const _condition_state &amp;amp;) const&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\problem_solver.h'', строка ''90''. Заменить этот кусок кода:&lt;br /&gt;
[[Файл:Ss_8.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
На этот: &lt;br /&gt;
[[Файл:Ss_9.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
И где-нибудь вне класса объявите структуру ''Bool2Type'': &lt;br /&gt;
[[Файл:Ss_10.jpg|Структура Bool2Type|frame|left|Структура Bool2Type]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2275: Pars: недопустимое использование этого типа в качестве выражения&amp;lt;/code&amp;gt;&lt;br /&gt;
Здесь придётся вносить правки в несколько файлов, для начала лезем в ''S:\xr_3da\xrGame\PHMovementDynamicActivate.cpp'' и везде после '''Pars''' вместо точки ставим двойное двоеточие '''::''', также делаем и в ''xrGame\physics_game.cpp''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;luabind::detail::class_rep *luabind::detail::get_class_rep(lua_State *,void (__cdecl *)(T))&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\SDK\luabind\luabind\detail\class_cache.hpp'', строка ''78'', добавляем символ '''*''' после буквы '''T''':&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_11.jpg|Правка LuaBind|frame|left|Правка LuaBind]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2780: luabind::class_&amp;lt;T&amp;gt; &amp;amp;luabind::class_&amp;lt;T&amp;gt;::def(luabind::detail::operator_&amp;lt;Derived&amp;gt;): требует аргументов: 1, имеется: 2&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\game_cl_base_script.cpp'', строка ''17'', дописываем перед '''SZoneMapEntityData''' ключевое слово '''const''': &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_12.jpg|Правка xrGame|frame|left|Правка xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Congratulations! ==&lt;br /&gt;
Ну вот и всё, осталось только скопировать, если его там нет, ''fsgame.ltx'' в директорию с вашими бинам и создать (*.cmd) файл для запуска, ну или для продвинутых написать свой лаунчер (например написать свою ''xrLauncher.dll''). Приятных экспериментов!&lt;br /&gt;
== Послесловие ==&lt;br /&gt;
В скором времени появятся другие статьи по движку ST или по программированию, так или иначе связанным с ST, возможно появится статья по сборке X-Ray SDK, если Вам конечна понравилась эта статья.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Если Вами в статье была найдена какая-то ошибка или неточность, прошу сообщить мне.&lt;br /&gt;
&lt;br /&gt;
== Благодарности ==&lt;br /&gt;
Я выражаю искрении благодарности следующим людям: '''K.D.''', '''HikeR''', '''Tron''' и всем остальным кто помогал в сборке движка. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ну и огромное спасибо '''GSC Game World''' за замечательный проект ST и за отсутствие гонений из-за использования исходных кодов движка :-).&lt;br /&gt;
== Автор ==&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/slava_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;11.07.2014&amp;lt;/u&amp;gt;. &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Участник:KIRAY|KIRAY]] ([[Обсуждение участника:KIRAY|обсуждение]]) 11:07, 11 июля 2014 (MSK)&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray</id>
		<title>Сборка движка X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray"/>
				<updated>2015-08-26T12:32:05Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: /* Что необходимо для сборки? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Руководства]]&lt;br /&gt;
== Предисловие ==&lt;br /&gt;
Сразу хочется упомянуть о том, что я не программист, мною могут быть допущены какие-то неточности, ошибки. Всё что будет изложено ниже не может считаться верным решением встречающихся при сборке X-Ray проблем. Ну что ж, хватит лирики, приступим-с...&lt;br /&gt;
&lt;br /&gt;
== На кого рассчитана данная статья? ==&lt;br /&gt;
Прежде всего она рассчитана на начинающих программистов, подобных мне, которые не могут собрать движок, но хотят вносить в него какие-то правки, ну или хотя бы хотят пытаться вносить правки. Ну это вовсе не означает что Вы являетесь &amp;quot;полным нулём&amp;quot;, предполагается что читатель хотя бы минимальски знаком с ЯП C++ и имеет хоть какой-то опыт работы в Visual Studio.&lt;br /&gt;
&lt;br /&gt;
== Что необходимо для сборки? ==&lt;br /&gt;
* Visual Studio 2005 и выше (&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;'''НЕ'''&amp;lt;/span&amp;gt; Express Edition)&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=INFO|&lt;br /&gt;
message=''Можно попробовать и Express Edition, только придётся решить проблему сборки приложений, которые используют MFC (компиляторы и т.п.). А лучше использовать Community Edition современных версий Visual Studio,''&lt;br /&gt;
''они по функционалу схожи с Professional Edition прошлых версий и абсолютно бесплатны. Правда один минус, могут возникнуть новые проблемы, которые не будут затронуты в этой статье.''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Скачать Visual Studio 2015 Community Edition с сайта Microsoft: [https://go.microsoft.com/fwlink/?LinkId=532606&amp;amp;clcid=0x419]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_0|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message='''Данный туториал рассчитан на VS 2010! При сборке на более современных студиях могут появиться другие проблемы, описания которых не окажется в данной статье!'''&lt;br /&gt;
}} &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
* S.T.A.L.K.E.R. Shadow of Cherbobyl 1.0006&lt;br /&gt;
&lt;br /&gt;
== Сборка ==&lt;br /&gt;
=== Заранее хочется оговориться о структуре каталогов ===&lt;br /&gt;
* ''XRay'' -- корневой каталог движка&lt;br /&gt;
** ''xr_build'' -- Выходной каталог, здесь находятся распакованные ресурсы игры&lt;br /&gt;
** ''xr_src'' -- Каталог с исходными кодами движка&lt;br /&gt;
** ''dev-scripts'' -- Различные вспомогательные скрипты&lt;br /&gt;
=== Загрузка исходного кода движка и подготовительные работы ===&lt;br /&gt;
Скачиваем основной архив с исходниками: [https://bitbucket.org/stalker/x-ray/downloads/XRay.rar]&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Пароль:''' ljlLHhklknlked&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Скачиваем архив с необходимыми для сборки SDKs и компонентами: [https://bitbucket.org/stalker/x-ray/downloads/src_components_for_xray.rar]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Распаковываем содержимое архивов ''XRay.rar'' и ''src_components_for_xray.rar'' в директорию ''XRay\xr_src'' &amp;lt;br/&amp;gt;&lt;br /&gt;
В папке ''dev-scripts'' создаем два (*.cmd) файла - ''mountDisks.cmd'' и ''unmountDisks.cmd'' такого содержания:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
''mountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: [Ваш путь до папки XRay]:\XRay\xr_build&lt;br /&gt;
@subst S: [Ваш путь до папки XRay]:\XRay\xr_src&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
''unmountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: /D&lt;br /&gt;
@subst S: /D&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Запускаем ''mountDisks.cmd'', должны появиться два виртуальных диска: ''X'' и ''S''. ''X'' -выходной каталог, ''S'' - каталог исходников.&lt;br /&gt;
[[Файл:Ss_0.jpg|Виртуальные диски|frame|left|Виртуальные диски]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Подготовительный этап закончен. Приступаем к настройке проектов.&lt;br /&gt;
=== Настройка проектов ===&lt;br /&gt;
Запускаем Visual Studio, на стартовой странице выбираем ''Открыть проект...'' или ''Файл -&amp;gt; Открыть -&amp;gt; Решение или проект...'' В появившемся окне выбираем ''S:\xr_3da\xr_3da.sln''.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_1.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Появится окно мастера преобразования Visual Studio, жмём кнопку 'Готово' и ждём пока все проекты конвертируются в формат VS10 и пройдёт синтаксический анализ проектов.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_2.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
После того как всё сконвертировалось, первым делом открываем  Диспетчер конфигураций (''ПКМ по решению -&amp;gt; Свойства -&amp;gt; Свойства конфигурации'') и выставляем решению активную конфигурацию ''Mixed'' (на чистом ''Debug'' ужасно падает производительность), а для сторонних библиотек (''BugTrap'', ''OpenAL'', ''minizip'', ''zlib'') ставим ''Release''.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_3.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Ну а теперь самое муторное, это настройка собственно проектов. Каждый проект придется настраивать отдельно, собирать так же советую отдельно (''ПКМ по проекту -&amp;gt; Только проект -&amp;gt; Построить только [имя проекта]''). Порядок построения можно узнать так: ''ПКМ по любому проекту -&amp;gt; Зависимости проектов... -&amp;gt; Порядок построения''. Настраиваем выходные каталоги, промежуточные каталоги и выходные каталог для библиотек импорта по своему вкусу, у меня так (на примере ''BugTrap'', используется структура каталогов, упомянутая в начале статьи):&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_4.jpg|512px]]  [[Image:Ss_5.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Далее необходимо настроить пути к заголовочным файлам и библиотекам импорта внешних библиотек. Ниже пойдёт таблица проектов (в порядке построения) с необходимыми для них библиотеками из директории ''xr_src\SDK'', пути настраиваются здесь: &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_6.jpg|512px]]  [[Файл:Ss_7.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{|class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Проект||Необходимые библиотеки&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCore'''||''DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCDB'''||''xrCore''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrLua'''||''xrCore, LuaBind, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrSound'''||''xrCore, Xiph libs, EAX, DX, OpenAL''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrParticles'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrNetServer'''||''xrCore, DX, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrXMLParser'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''XR_3DA'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Xiph libs, OpenAL (*.lib only)''&lt;br /&gt;
|-&lt;br /&gt;
|'''ODE'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCPU_Pipe'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGameSpy'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R2'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R1'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGame'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Loki''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_1|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=На заметку|&lt;br /&gt;
message=xrGame самая &amp;quot;массивная&amp;quot; библиотека X-Ray, на некоторых машинах её сборка может занять прилично времени.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
=== Сборка ===&lt;br /&gt;
Собираем каждый проект, как я ранее написал, отдельно, по списку порядка построения. Ниже разбираются наиболее встречающиеся проблемы. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrCore'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2061: синтаксическая ошибка: идентификатор &amp;quot;__RPC__out_xcount_part&amp;lt;/code&amp;gt;&lt;br /&gt;
Необходимо удалить файл ''rpcsal.h'' из директории ''S:\SDK\dx9sdk\dx9sdk\include''. Возникает на старых версиях DXSDK, используйте версию за июнь 2010: [https://www.microsoft.com/en-us/download/details.aspx?id=6812]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrLua'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2883: std::terminate: объявление функции вступает в конфликт с &amp;quot;terminate&amp;quot;, присутствующем в &amp;quot;using&amp;quot;-объявлении&amp;lt;/code&amp;gt;&lt;br /&gt;
Идём в ''S:\SDK\luabind\luabind\config.hpp'', строка 31 и добавляем в имя функции ''terminate'' прочерк ,было '''terminate''', стало '''_terminate'''. &lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_2|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message=Функция '''_terminate''' существует в '''xrDebugNew!''' Не известно как это себя поведёт, лучше всё же закомментировать конструкцию '''namespace std { void terminate() }'''&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2244: throw_exception: не удается сопоставить определение функции существующему объявлению&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''xrCore.h'', в строке ''14'' объявляем макрос ''BOOST_NO_EXCEPTIONS'' ('''#define BOOST_NO_EXCEPTIONS''')&lt;br /&gt;
&amp;lt;code&amp;gt;error C2668: boost::addressof: неоднозначный вызов перегруженной функции&amp;lt;/code&amp;gt;&lt;br /&gt;
Лезем в ''S:\SDK\boost_1_30_0\function\function_template.hpp'', в строке ''472'' перед '''addressof''' дописываем '''boost::'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrGame'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;_operator::_edge_value_type CProblemSolver&amp;lt;_operator_condition,_condition_state,_operator,_condition_evaluator,_operator_id_type,_reverse_search,_operator_ptr,_condition_evaluator_ptr&amp;gt;::estimate_edge_weight_impl(const _condition_state &amp;amp;) const&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\problem_solver.h'', строка ''90''. Заменить этот кусок кода:&lt;br /&gt;
[[Файл:Ss_8.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
На этот: &lt;br /&gt;
[[Файл:Ss_9.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
И где-нибудь вне класса объявите структуру ''Bool2Type'': &lt;br /&gt;
[[Файл:Ss_10.jpg|Структура Bool2Type|frame|left|Структура Bool2Type]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2275: Pars: недопустимое использование этого типа в качестве выражения&amp;lt;/code&amp;gt;&lt;br /&gt;
Здесь придётся вносить правки в несколько файлов, для начала лезем в ''S:\xr_3da\xrGame\PHMovementDynamicActivate.cpp'' и везде после '''Pars''' вместо точки ставим двойное двоеточие '''::''', также делаем и в ''xrGame\physics_game.cpp''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;luabind::detail::class_rep *luabind::detail::get_class_rep(lua_State *,void (__cdecl *)(T))&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\SDK\luabind\luabind\detail\class_cache.hpp'', строка ''78'', добавляем символ '''*''' после буквы '''T''':&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_11.jpg|Правка LuaBind|frame|left|Правка LuaBind]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2780: luabind::class_&amp;lt;T&amp;gt; &amp;amp;luabind::class_&amp;lt;T&amp;gt;::def(luabind::detail::operator_&amp;lt;Derived&amp;gt;): требует аргументов: 1, имеется: 2&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\game_cl_base_script.cpp'', строка ''17'', дописываем перед '''SZoneMapEntityData''' ключевое слово '''const''': &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_12.jpg|Правка xrGame|frame|left|Правка xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Congratulations! ==&lt;br /&gt;
Ну вот и всё, осталось только скопировать, если его там нет, ''fsgame.ltx'' в директорию с вашими бинам и создать (*.cmd) файл для запуска, ну или для продвинутых написать свой лаунчер (например написать свою ''xrLauncher.dll''). Приятных экспериментов!&lt;br /&gt;
== Послесловие ==&lt;br /&gt;
В скором времени появятся другие статьи по движку ST или по программированию, так или иначе связанным с ST, возможно появится статья по сборке X-Ray SDK, если Вам конечна понравилась эта статья.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Если Вами в статье была найдена какая-то ошибка или неточность, прошу сообщить мне. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Просьба при внесении правок оставлять свою подпись.'''&lt;br /&gt;
== Благодарности ==&lt;br /&gt;
Я выражаю искрении благодарности следующим людям: '''K.D.''', '''HikeR''', '''Tron''' и всем остальным кто помогал в сборке движка. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ну и огромное спасибо '''GSC Game World''' за замечательный проект ST и за отсутствие гонений из-за использования исходных кодов движка :-).&lt;br /&gt;
== Автор ==&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/slava_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;11.07.2014&amp;lt;/u&amp;gt;. &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Участник:KIRAY|KIRAY]] ([[Обсуждение участника:KIRAY|обсуждение]]) 11:07, 11 июля 2014 (MSK)&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray</id>
		<title>Сборка движка X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray"/>
				<updated>2015-08-26T12:29:26Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: /* Сборка */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Руководства]]&lt;br /&gt;
== Предисловие ==&lt;br /&gt;
Сразу хочется упомянуть о том, что я не программист, мною могут быть допущены какие-то неточности, ошибки. Всё что будет изложено ниже не может считаться верным решением встречающихся при сборке X-Ray проблем. Ну что ж, хватит лирики, приступим-с...&lt;br /&gt;
&lt;br /&gt;
== На кого рассчитана данная статья? ==&lt;br /&gt;
Прежде всего она рассчитана на начинающих программистов, подобных мне, которые не могут собрать движок, но хотят вносить в него какие-то правки, ну или хотя бы хотят пытаться вносить правки. Ну это вовсе не означает что Вы являетесь &amp;quot;полным нулём&amp;quot;, предполагается что читатель хотя бы минимальски знаком с ЯП C++ и имеет хоть какой-то опыт работы в Visual Studio.&lt;br /&gt;
&lt;br /&gt;
== Что необходимо для сборки? ==&lt;br /&gt;
* Visual Studio 2005 и выше (&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;'''НЕ'''&amp;lt;/span&amp;gt; Express Edition)&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=INFO|&lt;br /&gt;
message=''Можно попробовать и Express Edition, только придётся решить проблему сборки приложений, которые используют MFC (компиляторы и т.п.). А лучше использовать Community Edition современных версий Visual Studio,''&lt;br /&gt;
''они по функционалу схожи с Professional Edition прошлых версий и абсолютно бесплатны. Правда один минус, могут возникнуть новые проблемы, которые не будут затронуты в этой статье.''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Скачать Visual Studio 2015 Community Edition с сайта Microsoft: [https://go.microsoft.com/fwlink/?LinkId=532606&amp;amp;clcid=0x419]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_0|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message='''Данный туториал рассчитан на VS 2010! При сборке на других, указанных выше студиях могут отсутствовать некоторые проблемы, разобранные в данной статье, и могут появиться другие, которые, возможно, не будут рассмотрены в данной статье!'''&lt;br /&gt;
}} &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
* S.T.A.L.K.E.R. Shadow of Cherbobyl 1.0006&lt;br /&gt;
&lt;br /&gt;
== Сборка ==&lt;br /&gt;
=== Заранее хочется оговориться о структуре каталогов ===&lt;br /&gt;
* ''XRay'' -- корневой каталог движка&lt;br /&gt;
** ''xr_build'' -- Выходной каталог, здесь находятся распакованные ресурсы игры&lt;br /&gt;
** ''xr_src'' -- Каталог с исходными кодами движка&lt;br /&gt;
** ''dev-scripts'' -- Различные вспомогательные скрипты&lt;br /&gt;
=== Загрузка исходного кода движка и подготовительные работы ===&lt;br /&gt;
Скачиваем основной архив с исходниками: [https://bitbucket.org/stalker/x-ray/downloads/XRay.rar]&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Пароль:''' ljlLHhklknlked&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Скачиваем архив с необходимыми для сборки SDKs и компонентами: [https://bitbucket.org/stalker/x-ray/downloads/src_components_for_xray.rar]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Распаковываем содержимое архивов ''XRay.rar'' и ''src_components_for_xray.rar'' в директорию ''XRay\xr_src'' &amp;lt;br/&amp;gt;&lt;br /&gt;
В папке ''dev-scripts'' создаем два (*.cmd) файла - ''mountDisks.cmd'' и ''unmountDisks.cmd'' такого содержания:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
''mountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: [Ваш путь до папки XRay]:\XRay\xr_build&lt;br /&gt;
@subst S: [Ваш путь до папки XRay]:\XRay\xr_src&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
''unmountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: /D&lt;br /&gt;
@subst S: /D&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Запускаем ''mountDisks.cmd'', должны появиться два виртуальных диска: ''X'' и ''S''. ''X'' -выходной каталог, ''S'' - каталог исходников.&lt;br /&gt;
[[Файл:Ss_0.jpg|Виртуальные диски|frame|left|Виртуальные диски]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Подготовительный этап закончен. Приступаем к настройке проектов.&lt;br /&gt;
=== Настройка проектов ===&lt;br /&gt;
Запускаем Visual Studio, на стартовой странице выбираем ''Открыть проект...'' или ''Файл -&amp;gt; Открыть -&amp;gt; Решение или проект...'' В появившемся окне выбираем ''S:\xr_3da\xr_3da.sln''.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_1.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Появится окно мастера преобразования Visual Studio, жмём кнопку 'Готово' и ждём пока все проекты конвертируются в формат VS10 и пройдёт синтаксический анализ проектов.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_2.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
После того как всё сконвертировалось, первым делом открываем  Диспетчер конфигураций (''ПКМ по решению -&amp;gt; Свойства -&amp;gt; Свойства конфигурации'') и выставляем решению активную конфигурацию ''Mixed'' (на чистом ''Debug'' ужасно падает производительность), а для сторонних библиотек (''BugTrap'', ''OpenAL'', ''minizip'', ''zlib'') ставим ''Release''.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_3.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Ну а теперь самое муторное, это настройка собственно проектов. Каждый проект придется настраивать отдельно, собирать так же советую отдельно (''ПКМ по проекту -&amp;gt; Только проект -&amp;gt; Построить только [имя проекта]''). Порядок построения можно узнать так: ''ПКМ по любому проекту -&amp;gt; Зависимости проектов... -&amp;gt; Порядок построения''. Настраиваем выходные каталоги, промежуточные каталоги и выходные каталог для библиотек импорта по своему вкусу, у меня так (на примере ''BugTrap'', используется структура каталогов, упомянутая в начале статьи):&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_4.jpg|512px]]  [[Image:Ss_5.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Далее необходимо настроить пути к заголовочным файлам и библиотекам импорта внешних библиотек. Ниже пойдёт таблица проектов (в порядке построения) с необходимыми для них библиотеками из директории ''xr_src\SDK'', пути настраиваются здесь: &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_6.jpg|512px]]  [[Файл:Ss_7.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{|class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Проект||Необходимые библиотеки&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCore'''||''DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCDB'''||''xrCore''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrLua'''||''xrCore, LuaBind, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrSound'''||''xrCore, Xiph libs, EAX, DX, OpenAL''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrParticles'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrNetServer'''||''xrCore, DX, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrXMLParser'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''XR_3DA'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Xiph libs, OpenAL (*.lib only)''&lt;br /&gt;
|-&lt;br /&gt;
|'''ODE'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCPU_Pipe'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGameSpy'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R2'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R1'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGame'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Loki''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_1|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=На заметку|&lt;br /&gt;
message=xrGame самая &amp;quot;массивная&amp;quot; библиотека X-Ray, на некоторых машинах её сборка может занять прилично времени.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
=== Сборка ===&lt;br /&gt;
Собираем каждый проект, как я ранее написал, отдельно, по списку порядка построения. Ниже разбираются наиболее встречающиеся проблемы. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrCore'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2061: синтаксическая ошибка: идентификатор &amp;quot;__RPC__out_xcount_part&amp;lt;/code&amp;gt;&lt;br /&gt;
Необходимо удалить файл ''rpcsal.h'' из директории ''S:\SDK\dx9sdk\dx9sdk\include''. Возникает на старых версиях DXSDK, используйте версию за июнь 2010: [https://www.microsoft.com/en-us/download/details.aspx?id=6812]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrLua'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2883: std::terminate: объявление функции вступает в конфликт с &amp;quot;terminate&amp;quot;, присутствующем в &amp;quot;using&amp;quot;-объявлении&amp;lt;/code&amp;gt;&lt;br /&gt;
Идём в ''S:\SDK\luabind\luabind\config.hpp'', строка 31 и добавляем в имя функции ''terminate'' прочерк ,было '''terminate''', стало '''_terminate'''. &lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_2|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message=Функция '''_terminate''' существует в '''xrDebugNew!''' Не известно как это себя поведёт, лучше всё же закомментировать конструкцию '''namespace std { void terminate() }'''&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2244: throw_exception: не удается сопоставить определение функции существующему объявлению&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''xrCore.h'', в строке ''14'' объявляем макрос ''BOOST_NO_EXCEPTIONS'' ('''#define BOOST_NO_EXCEPTIONS''')&lt;br /&gt;
&amp;lt;code&amp;gt;error C2668: boost::addressof: неоднозначный вызов перегруженной функции&amp;lt;/code&amp;gt;&lt;br /&gt;
Лезем в ''S:\SDK\boost_1_30_0\function\function_template.hpp'', в строке ''472'' перед '''addressof''' дописываем '''boost::'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrGame'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;_operator::_edge_value_type CProblemSolver&amp;lt;_operator_condition,_condition_state,_operator,_condition_evaluator,_operator_id_type,_reverse_search,_operator_ptr,_condition_evaluator_ptr&amp;gt;::estimate_edge_weight_impl(const _condition_state &amp;amp;) const&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\problem_solver.h'', строка ''90''. Заменить этот кусок кода:&lt;br /&gt;
[[Файл:Ss_8.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
На этот: &lt;br /&gt;
[[Файл:Ss_9.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
И где-нибудь вне класса объявите структуру ''Bool2Type'': &lt;br /&gt;
[[Файл:Ss_10.jpg|Структура Bool2Type|frame|left|Структура Bool2Type]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2275: Pars: недопустимое использование этого типа в качестве выражения&amp;lt;/code&amp;gt;&lt;br /&gt;
Здесь придётся вносить правки в несколько файлов, для начала лезем в ''S:\xr_3da\xrGame\PHMovementDynamicActivate.cpp'' и везде после '''Pars''' вместо точки ставим двойное двоеточие '''::''', также делаем и в ''xrGame\physics_game.cpp''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;luabind::detail::class_rep *luabind::detail::get_class_rep(lua_State *,void (__cdecl *)(T))&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\SDK\luabind\luabind\detail\class_cache.hpp'', строка ''78'', добавляем символ '''*''' после буквы '''T''':&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_11.jpg|Правка LuaBind|frame|left|Правка LuaBind]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2780: luabind::class_&amp;lt;T&amp;gt; &amp;amp;luabind::class_&amp;lt;T&amp;gt;::def(luabind::detail::operator_&amp;lt;Derived&amp;gt;): требует аргументов: 1, имеется: 2&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\game_cl_base_script.cpp'', строка ''17'', дописываем перед '''SZoneMapEntityData''' ключевое слово '''const''': &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_12.jpg|Правка xrGame|frame|left|Правка xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Congratulations! ==&lt;br /&gt;
Ну вот и всё, осталось только скопировать, если его там нет, ''fsgame.ltx'' в директорию с вашими бинам и создать (*.cmd) файл для запуска, ну или для продвинутых написать свой лаунчер (например написать свою ''xrLauncher.dll''). Приятных экспериментов!&lt;br /&gt;
== Послесловие ==&lt;br /&gt;
В скором времени появятся другие статьи по движку ST или по программированию, так или иначе связанным с ST, возможно появится статья по сборке X-Ray SDK, если Вам конечна понравилась эта статья.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Если Вами в статье была найдена какая-то ошибка или неточность, прошу сообщить мне. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Просьба при внесении правок оставлять свою подпись.'''&lt;br /&gt;
== Благодарности ==&lt;br /&gt;
Я выражаю искрении благодарности следующим людям: '''K.D.''', '''HikeR''', '''Tron''' и всем остальным кто помогал в сборке движка. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ну и огромное спасибо '''GSC Game World''' за замечательный проект ST и за отсутствие гонений из-за использования исходных кодов движка :-).&lt;br /&gt;
== Автор ==&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/slava_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;11.07.2014&amp;lt;/u&amp;gt;. &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Участник:KIRAY|KIRAY]] ([[Обсуждение участника:KIRAY|обсуждение]]) 11:07, 11 июля 2014 (MSK)&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray</id>
		<title>Сборка движка X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray"/>
				<updated>2015-08-26T12:26:13Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: /* Что необходимо для сборки? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Руководства]]&lt;br /&gt;
== Предисловие ==&lt;br /&gt;
Сразу хочется упомянуть о том, что я не программист, мною могут быть допущены какие-то неточности, ошибки. Всё что будет изложено ниже не может считаться верным решением встречающихся при сборке X-Ray проблем. Ну что ж, хватит лирики, приступим-с...&lt;br /&gt;
&lt;br /&gt;
== На кого рассчитана данная статья? ==&lt;br /&gt;
Прежде всего она рассчитана на начинающих программистов, подобных мне, которые не могут собрать движок, но хотят вносить в него какие-то правки, ну или хотя бы хотят пытаться вносить правки. Ну это вовсе не означает что Вы являетесь &amp;quot;полным нулём&amp;quot;, предполагается что читатель хотя бы минимальски знаком с ЯП C++ и имеет хоть какой-то опыт работы в Visual Studio.&lt;br /&gt;
&lt;br /&gt;
== Что необходимо для сборки? ==&lt;br /&gt;
* Visual Studio 2005 и выше (&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;'''НЕ'''&amp;lt;/span&amp;gt; Express Edition)&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=INFO|&lt;br /&gt;
message=''Можно попробовать и Express Edition, только придётся решить проблему сборки приложений, которые используют MFC (компиляторы и т.п.). А лучше использовать Community Edition современных версий Visual Studio,''&lt;br /&gt;
''они по функционалу схожи с Professional Edition прошлых версий и абсолютно бесплатны. Правда один минус, могут возникнуть новые проблемы, которые не будут затронуты в этой статье.''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Скачать Visual Studio 2015 Community Edition с сайта Microsoft: [https://go.microsoft.com/fwlink/?LinkId=532606&amp;amp;clcid=0x419]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_0|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message='''Данный туториал рассчитан на VS 2010! При сборке на других, указанных выше студиях могут отсутствовать некоторые проблемы, разобранные в данной статье, и могут появиться другие, которые, возможно, не будут рассмотрены в данной статье!'''&lt;br /&gt;
}} &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
* S.T.A.L.K.E.R. Shadow of Cherbobyl 1.0006&lt;br /&gt;
&lt;br /&gt;
== Сборка ==&lt;br /&gt;
=== Заранее хочется оговориться о структуре каталогов ===&lt;br /&gt;
* ''XRay'' -- корневой каталог движка&lt;br /&gt;
** ''xr_build'' -- Выходной каталог, здесь находятся распакованные ресурсы игры&lt;br /&gt;
** ''xr_src'' -- Каталог с исходными кодами движка&lt;br /&gt;
** ''dev-scripts'' -- Различные вспомогательные скрипты&lt;br /&gt;
=== Загрузка исходного кода движка и подготовительные работы ===&lt;br /&gt;
Скачиваем основной архив с исходниками: [https://bitbucket.org/stalker/x-ray/downloads/XRay.rar]&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Пароль:''' ljlLHhklknlked&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Скачиваем архив с необходимыми для сборки SDKs и компонентами: [https://bitbucket.org/stalker/x-ray/downloads/src_components_for_xray.rar]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Распаковываем содержимое архивов ''XRay.rar'' и ''src_components_for_xray.rar'' в директорию ''XRay\xr_src'' &amp;lt;br/&amp;gt;&lt;br /&gt;
В папке ''dev-scripts'' создаем два (*.cmd) файла - ''mountDisks.cmd'' и ''unmountDisks.cmd'' такого содержания:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
''mountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: [Ваш путь до папки XRay]:\XRay\xr_build&lt;br /&gt;
@subst S: [Ваш путь до папки XRay]:\XRay\xr_src&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
''unmountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: /D&lt;br /&gt;
@subst S: /D&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Запускаем ''mountDisks.cmd'', должны появиться два виртуальных диска: ''X'' и ''S''. ''X'' -выходной каталог, ''S'' - каталог исходников.&lt;br /&gt;
[[Файл:Ss_0.jpg|Виртуальные диски|frame|left|Виртуальные диски]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Подготовительный этап закончен. Приступаем к настройке проектов.&lt;br /&gt;
=== Настройка проектов ===&lt;br /&gt;
Запускаем Visual Studio, на стартовой странице выбираем ''Открыть проект...'' или ''Файл -&amp;gt; Открыть -&amp;gt; Решение или проект...'' В появившемся окне выбираем ''S:\xr_3da\xr_3da.sln''.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_1.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Появится окно мастера преобразования Visual Studio, жмём кнопку 'Готово' и ждём пока все проекты конвертируются в формат VS10 и пройдёт синтаксический анализ проектов.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_2.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
После того как всё сконвертировалось, первым делом открываем  Диспетчер конфигураций (''ПКМ по решению -&amp;gt; Свойства -&amp;gt; Свойства конфигурации'') и выставляем решению активную конфигурацию ''Mixed'' (на чистом ''Debug'' ужасно падает производительность), а для сторонних библиотек (''BugTrap'', ''OpenAL'', ''minizip'', ''zlib'') ставим ''Release''.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_3.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Ну а теперь самое муторное, это настройка собственно проектов. Каждый проект придется настраивать отдельно, собирать так же советую отдельно (''ПКМ по проекту -&amp;gt; Только проект -&amp;gt; Построить только [имя проекта]''). Порядок построения можно узнать так: ''ПКМ по любому проекту -&amp;gt; Зависимости проектов... -&amp;gt; Порядок построения''. Настраиваем выходные каталоги, промежуточные каталоги и выходные каталог для библиотек импорта по своему вкусу, у меня так (на примере ''BugTrap'', используется структура каталогов, упомянутая в начале статьи):&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_4.jpg|512px]]  [[Image:Ss_5.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Далее необходимо настроить пути к заголовочным файлам и библиотекам импорта внешних библиотек. Ниже пойдёт таблица проектов (в порядке построения) с необходимыми для них библиотеками из директории ''xr_src\SDK'', пути настраиваются здесь: &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_6.jpg|512px]]  [[Файл:Ss_7.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{|class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Проект||Необходимые библиотеки&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCore'''||''DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCDB'''||''xrCore''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrLua'''||''xrCore, LuaBind, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrSound'''||''xrCore, Xiph libs, EAX, DX, OpenAL''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrParticles'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrNetServer'''||''xrCore, DX, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrXMLParser'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''XR_3DA'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Xiph libs, OpenAL (*.lib only)''&lt;br /&gt;
|-&lt;br /&gt;
|'''ODE'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCPU_Pipe'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGameSpy'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R2'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R1'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGame'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Loki''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_1|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=На заметку|&lt;br /&gt;
message=xrGame самая &amp;quot;массивная&amp;quot; библиотека X-Ray, на некоторых машинах её сборка может занять прилично времени.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
=== Сборка ===&lt;br /&gt;
Собираем каждый проект, как я ранее написал, отдельно, по списку порядка построения. Ниже разбираются наиболее встречающиеся проблемы. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrCore'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2061: синтаксическая ошибка: идентификатор &amp;quot;__RPC__out_xcount_part&amp;lt;/code&amp;gt;&lt;br /&gt;
Необходимо удалить файл ''rpcsal.h'' из директории ''S:\SDK\dx9sdk\dx9sdk\include''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrLua'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2883: std::terminate: объявление функции вступает в конфликт с &amp;quot;terminate&amp;quot;, присутствующем в &amp;quot;using&amp;quot;-объявлении&amp;lt;/code&amp;gt;&lt;br /&gt;
Идём в ''S:\SDK\luabind\luabind\config.hpp'', строка 31 и добавляем в имя функции ''terminate'' прочерк ,было '''terminate''', стало '''_terminate'''. &lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_2|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message=Функция '''_terminate''' существует в '''xrDebugNew!''' Не известно как это себя поведёт, лучше всё же закомментировать конструкцию '''namespace std { void terminate() }'''&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2244: throw_exception: не удается сопоставить определение функции существующему объявлению&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''xrCore.h'', в строке ''14'' объявляем макрос ''BOOST_NO_EXCEPTIONS'' ('''#define BOOST_NO_EXCEPTIONS''')&lt;br /&gt;
&amp;lt;code&amp;gt;error C2668: boost::addressof: неоднозначный вызов перегруженной функции&amp;lt;/code&amp;gt;&lt;br /&gt;
Лезем в ''S:\SDK\boost_1_30_0\function\function_template.hpp'', в строке ''472'' перед '''addressof''' дописываем '''boost::'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrGame'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;_operator::_edge_value_type CProblemSolver&amp;lt;_operator_condition,_condition_state,_operator,_condition_evaluator,_operator_id_type,_reverse_search,_operator_ptr,_condition_evaluator_ptr&amp;gt;::estimate_edge_weight_impl(const _condition_state &amp;amp;) const&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\problem_solver.h'', строка ''90''. Заменить этот кусок кода:&lt;br /&gt;
[[Файл:Ss_8.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
На этот: &lt;br /&gt;
[[Файл:Ss_9.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
И где-нибудь вне класса объявите структуру ''Bool2Type'': &lt;br /&gt;
[[Файл:Ss_10.jpg|Структура Bool2Type|frame|left|Структура Bool2Type]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2275: Pars: недопустимое использование этого типа в качестве выражения&amp;lt;/code&amp;gt;&lt;br /&gt;
Здесь придётся вносить правки в несколько файлов, для начала лезем в ''S:\xr_3da\xrGame\PHMovementDynamicActivate.cpp'' и везде после '''Pars''' вместо точки ставим двойное двоеточие '''::''', также делаем и в ''xrGame\physics_game.cpp''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;luabind::detail::class_rep *luabind::detail::get_class_rep(lua_State *,void (__cdecl *)(T))&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\SDK\luabind\luabind\detail\class_cache.hpp'', строка ''78'', добавляем символ '''*''' после буквы '''T''':&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_11.jpg|Правка LuaBind|frame|left|Правка LuaBind]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2780: luabind::class_&amp;lt;T&amp;gt; &amp;amp;luabind::class_&amp;lt;T&amp;gt;::def(luabind::detail::operator_&amp;lt;Derived&amp;gt;): требует аргументов: 1, имеется: 2&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\game_cl_base_script.cpp'', строка ''17'', дописываем перед '''SZoneMapEntityData''' ключевое слово '''const''': &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_12.jpg|Правка xrGame|frame|left|Правка xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
== Congratulations! ==&lt;br /&gt;
Ну вот и всё, осталось только скопировать, если его там нет, ''fsgame.ltx'' в директорию с вашими бинам и создать (*.cmd) файл для запуска, ну или для продвинутых написать свой лаунчер (например написать свою ''xrLauncher.dll''). Приятных экспериментов!&lt;br /&gt;
== Послесловие ==&lt;br /&gt;
В скором времени появятся другие статьи по движку ST или по программированию, так или иначе связанным с ST, возможно появится статья по сборке X-Ray SDK, если Вам конечна понравилась эта статья.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Если Вами в статье была найдена какая-то ошибка или неточность, прошу сообщить мне. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Просьба при внесении правок оставлять свою подпись.'''&lt;br /&gt;
== Благодарности ==&lt;br /&gt;
Я выражаю искрении благодарности следующим людям: '''K.D.''', '''HikeR''', '''Tron''' и всем остальным кто помогал в сборке движка. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ну и огромное спасибо '''GSC Game World''' за замечательный проект ST и за отсутствие гонений из-за использования исходных кодов движка :-).&lt;br /&gt;
== Автор ==&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/slava_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;11.07.2014&amp;lt;/u&amp;gt;. &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Участник:KIRAY|KIRAY]] ([[Обсуждение участника:KIRAY|обсуждение]]) 11:07, 11 июля 2014 (MSK)&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray</id>
		<title>Сборка движка X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray"/>
				<updated>2015-08-26T12:25:37Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: /* Что необходимо для сборки? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Руководства]]&lt;br /&gt;
== Предисловие ==&lt;br /&gt;
Сразу хочется упомянуть о том, что я не программист, мною могут быть допущены какие-то неточности, ошибки. Всё что будет изложено ниже не может считаться верным решением встречающихся при сборке X-Ray проблем. Ну что ж, хватит лирики, приступим-с...&lt;br /&gt;
&lt;br /&gt;
== На кого рассчитана данная статья? ==&lt;br /&gt;
Прежде всего она рассчитана на начинающих программистов, подобных мне, которые не могут собрать движок, но хотят вносить в него какие-то правки, ну или хотя бы хотят пытаться вносить правки. Ну это вовсе не означает что Вы являетесь &amp;quot;полным нулём&amp;quot;, предполагается что читатель хотя бы минимальски знаком с ЯП C++ и имеет хоть какой-то опыт работы в Visual Studio.&lt;br /&gt;
&lt;br /&gt;
== Что необходимо для сборки? ==&lt;br /&gt;
* Visual Studio 2005 и выше (&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;'''НЕ'''&amp;lt;/span&amp;gt; Express Edition)&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=INFO|&lt;br /&gt;
message=''Можно попробовать и Express Edition, только придётся решить проблему сборки приложений, которые используют MFC (компиляторы и т.п.). А лучше использовать Community Edition современных версий Visual Studio,''&lt;br /&gt;
''они по функционалу схожи с Professional Edition прошлых версий и абсолютно бесплатны. Правда один минус, могут возникнуть новые проблемы, которые не будут затронуты в это статье.''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Скачать Visual Studio 2015 Community Edition с сайта Microsoft: [https://go.microsoft.com/fwlink/?LinkId=532606&amp;amp;clcid=0x419]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_0|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message='''Данный туториал рассчитан на VS 2010! При сборке на других, указанных выше студиях могут отсутствовать некоторые проблемы, разобранные в данной статье, и могут появиться другие, которые, возможно, не будут рассмотрены в данной статье!'''&lt;br /&gt;
}} &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
* S.T.A.L.K.E.R. Shadow of Cherbobyl 1.0006&lt;br /&gt;
&lt;br /&gt;
== Сборка ==&lt;br /&gt;
=== Заранее хочется оговориться о структуре каталогов ===&lt;br /&gt;
* ''XRay'' -- корневой каталог движка&lt;br /&gt;
** ''xr_build'' -- Выходной каталог, здесь находятся распакованные ресурсы игры&lt;br /&gt;
** ''xr_src'' -- Каталог с исходными кодами движка&lt;br /&gt;
** ''dev-scripts'' -- Различные вспомогательные скрипты&lt;br /&gt;
=== Загрузка исходного кода движка и подготовительные работы ===&lt;br /&gt;
Скачиваем основной архив с исходниками: [https://bitbucket.org/stalker/x-ray/downloads/XRay.rar]&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Пароль:''' ljlLHhklknlked&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Скачиваем архив с необходимыми для сборки SDKs и компонентами: [https://bitbucket.org/stalker/x-ray/downloads/src_components_for_xray.rar]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Распаковываем содержимое архивов ''XRay.rar'' и ''src_components_for_xray.rar'' в директорию ''XRay\xr_src'' &amp;lt;br/&amp;gt;&lt;br /&gt;
В папке ''dev-scripts'' создаем два (*.cmd) файла - ''mountDisks.cmd'' и ''unmountDisks.cmd'' такого содержания:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
''mountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: [Ваш путь до папки XRay]:\XRay\xr_build&lt;br /&gt;
@subst S: [Ваш путь до папки XRay]:\XRay\xr_src&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
''unmountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: /D&lt;br /&gt;
@subst S: /D&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Запускаем ''mountDisks.cmd'', должны появиться два виртуальных диска: ''X'' и ''S''. ''X'' -выходной каталог, ''S'' - каталог исходников.&lt;br /&gt;
[[Файл:Ss_0.jpg|Виртуальные диски|frame|left|Виртуальные диски]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Подготовительный этап закончен. Приступаем к настройке проектов.&lt;br /&gt;
=== Настройка проектов ===&lt;br /&gt;
Запускаем Visual Studio, на стартовой странице выбираем ''Открыть проект...'' или ''Файл -&amp;gt; Открыть -&amp;gt; Решение или проект...'' В появившемся окне выбираем ''S:\xr_3da\xr_3da.sln''.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_1.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Появится окно мастера преобразования Visual Studio, жмём кнопку 'Готово' и ждём пока все проекты конвертируются в формат VS10 и пройдёт синтаксический анализ проектов.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_2.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
После того как всё сконвертировалось, первым делом открываем  Диспетчер конфигураций (''ПКМ по решению -&amp;gt; Свойства -&amp;gt; Свойства конфигурации'') и выставляем решению активную конфигурацию ''Mixed'' (на чистом ''Debug'' ужасно падает производительность), а для сторонних библиотек (''BugTrap'', ''OpenAL'', ''minizip'', ''zlib'') ставим ''Release''.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_3.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Ну а теперь самое муторное, это настройка собственно проектов. Каждый проект придется настраивать отдельно, собирать так же советую отдельно (''ПКМ по проекту -&amp;gt; Только проект -&amp;gt; Построить только [имя проекта]''). Порядок построения можно узнать так: ''ПКМ по любому проекту -&amp;gt; Зависимости проектов... -&amp;gt; Порядок построения''. Настраиваем выходные каталоги, промежуточные каталоги и выходные каталог для библиотек импорта по своему вкусу, у меня так (на примере ''BugTrap'', используется структура каталогов, упомянутая в начале статьи):&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_4.jpg|512px]]  [[Image:Ss_5.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Далее необходимо настроить пути к заголовочным файлам и библиотекам импорта внешних библиотек. Ниже пойдёт таблица проектов (в порядке построения) с необходимыми для них библиотеками из директории ''xr_src\SDK'', пути настраиваются здесь: &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_6.jpg|512px]]  [[Файл:Ss_7.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{|class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Проект||Необходимые библиотеки&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCore'''||''DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCDB'''||''xrCore''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrLua'''||''xrCore, LuaBind, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrSound'''||''xrCore, Xiph libs, EAX, DX, OpenAL''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrParticles'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrNetServer'''||''xrCore, DX, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrXMLParser'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''XR_3DA'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Xiph libs, OpenAL (*.lib only)''&lt;br /&gt;
|-&lt;br /&gt;
|'''ODE'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCPU_Pipe'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGameSpy'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R2'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R1'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGame'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Loki''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_1|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=На заметку|&lt;br /&gt;
message=xrGame самая &amp;quot;массивная&amp;quot; библиотека X-Ray, на некоторых машинах её сборка может занять прилично времени.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
=== Сборка ===&lt;br /&gt;
Собираем каждый проект, как я ранее написал, отдельно, по списку порядка построения. Ниже разбираются наиболее встречающиеся проблемы. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrCore'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2061: синтаксическая ошибка: идентификатор &amp;quot;__RPC__out_xcount_part&amp;lt;/code&amp;gt;&lt;br /&gt;
Необходимо удалить файл ''rpcsal.h'' из директории ''S:\SDK\dx9sdk\dx9sdk\include''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrLua'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2883: std::terminate: объявление функции вступает в конфликт с &amp;quot;terminate&amp;quot;, присутствующем в &amp;quot;using&amp;quot;-объявлении&amp;lt;/code&amp;gt;&lt;br /&gt;
Идём в ''S:\SDK\luabind\luabind\config.hpp'', строка 31 и добавляем в имя функции ''terminate'' прочерк ,было '''terminate''', стало '''_terminate'''. &lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_2|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message=Функция '''_terminate''' существует в '''xrDebugNew!''' Не известно как это себя поведёт, лучше всё же закомментировать конструкцию '''namespace std { void terminate() }'''&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2244: throw_exception: не удается сопоставить определение функции существующему объявлению&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''xrCore.h'', в строке ''14'' объявляем макрос ''BOOST_NO_EXCEPTIONS'' ('''#define BOOST_NO_EXCEPTIONS''')&lt;br /&gt;
&amp;lt;code&amp;gt;error C2668: boost::addressof: неоднозначный вызов перегруженной функции&amp;lt;/code&amp;gt;&lt;br /&gt;
Лезем в ''S:\SDK\boost_1_30_0\function\function_template.hpp'', в строке ''472'' перед '''addressof''' дописываем '''boost::'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrGame'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;_operator::_edge_value_type CProblemSolver&amp;lt;_operator_condition,_condition_state,_operator,_condition_evaluator,_operator_id_type,_reverse_search,_operator_ptr,_condition_evaluator_ptr&amp;gt;::estimate_edge_weight_impl(const _condition_state &amp;amp;) const&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\problem_solver.h'', строка ''90''. Заменить этот кусок кода:&lt;br /&gt;
[[Файл:Ss_8.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
На этот: &lt;br /&gt;
[[Файл:Ss_9.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
И где-нибудь вне класса объявите структуру ''Bool2Type'': &lt;br /&gt;
[[Файл:Ss_10.jpg|Структура Bool2Type|frame|left|Структура Bool2Type]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2275: Pars: недопустимое использование этого типа в качестве выражения&amp;lt;/code&amp;gt;&lt;br /&gt;
Здесь придётся вносить правки в несколько файлов, для начала лезем в ''S:\xr_3da\xrGame\PHMovementDynamicActivate.cpp'' и везде после '''Pars''' вместо точки ставим двойное двоеточие '''::''', также делаем и в ''xrGame\physics_game.cpp''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;luabind::detail::class_rep *luabind::detail::get_class_rep(lua_State *,void (__cdecl *)(T))&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\SDK\luabind\luabind\detail\class_cache.hpp'', строка ''78'', добавляем символ '''*''' после буквы '''T''':&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_11.jpg|Правка LuaBind|frame|left|Правка LuaBind]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2780: luabind::class_&amp;lt;T&amp;gt; &amp;amp;luabind::class_&amp;lt;T&amp;gt;::def(luabind::detail::operator_&amp;lt;Derived&amp;gt;): требует аргументов: 1, имеется: 2&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\game_cl_base_script.cpp'', строка ''17'', дописываем перед '''SZoneMapEntityData''' ключевое слово '''const''': &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_12.jpg|Правка xrGame|frame|left|Правка xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
== Congratulations! ==&lt;br /&gt;
Ну вот и всё, осталось только скопировать, если его там нет, ''fsgame.ltx'' в директорию с вашими бинам и создать (*.cmd) файл для запуска, ну или для продвинутых написать свой лаунчер (например написать свою ''xrLauncher.dll''). Приятных экспериментов!&lt;br /&gt;
== Послесловие ==&lt;br /&gt;
В скором времени появятся другие статьи по движку ST или по программированию, так или иначе связанным с ST, возможно появится статья по сборке X-Ray SDK, если Вам конечна понравилась эта статья.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Если Вами в статье была найдена какая-то ошибка или неточность, прошу сообщить мне. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Просьба при внесении правок оставлять свою подпись.'''&lt;br /&gt;
== Благодарности ==&lt;br /&gt;
Я выражаю искрении благодарности следующим людям: '''K.D.''', '''HikeR''', '''Tron''' и всем остальным кто помогал в сборке движка. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ну и огромное спасибо '''GSC Game World''' за замечательный проект ST и за отсутствие гонений из-за использования исходных кодов движка :-).&lt;br /&gt;
== Автор ==&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/slava_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;11.07.2014&amp;lt;/u&amp;gt;. &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Участник:KIRAY|KIRAY]] ([[Обсуждение участника:KIRAY|обсуждение]]) 11:07, 11 июля 2014 (MSK)&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray</id>
		<title>Сборка движка X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray"/>
				<updated>2015-08-26T12:12:14Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: /* На кого рассчитана данная статья? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Руководства]]&lt;br /&gt;
== Предисловие ==&lt;br /&gt;
Сразу хочется упомянуть о том, что я не программист, мною могут быть допущены какие-то неточности, ошибки. Всё что будет изложено ниже не может считаться верным решением встречающихся при сборке X-Ray проблем. Ну что ж, хватит лирики, приступим-с...&lt;br /&gt;
&lt;br /&gt;
== На кого рассчитана данная статья? ==&lt;br /&gt;
Прежде всего она рассчитана на начинающих программистов, подобных мне, которые не могут собрать движок, но хотят вносить в него какие-то правки, ну или хотя бы хотят пытаться вносить правки. Ну это вовсе не означает что Вы являетесь &amp;quot;полным нулём&amp;quot;, предполагается что читатель хотя бы минимальски знаком с ЯП C++ и имеет хоть какой-то опыт работы в Visual Studio.&lt;br /&gt;
&lt;br /&gt;
== Что необходимо для сборки? ==&lt;br /&gt;
* Visual Studio 2005 и выше (&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;'''НЕ'''&amp;lt;/span&amp;gt; Express Edition)&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_0|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message='''Данный туториал рассчитан на VS 2010! При сборке на других, указанных выше студиях могут отсутствовать некоторые проблемы, разобранные в данной статье, и могут появиться другие, которые, возможно, не будут рассмотрены в данной статье!'''&lt;br /&gt;
}} &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
* S.T.A.L.K.E.R. Shadow of Cherbobyl 1.0006&lt;br /&gt;
&lt;br /&gt;
== Сборка ==&lt;br /&gt;
=== Заранее хочется оговориться о структуре каталогов ===&lt;br /&gt;
* ''XRay'' -- корневой каталог движка&lt;br /&gt;
** ''xr_build'' -- Выходной каталог, здесь находятся распакованные ресурсы игры&lt;br /&gt;
** ''xr_src'' -- Каталог с исходными кодами движка&lt;br /&gt;
** ''dev-scripts'' -- Различные вспомогательные скрипты&lt;br /&gt;
=== Загрузка исходного кода движка и подготовительные работы ===&lt;br /&gt;
Скачиваем основной архив с исходниками: [https://bitbucket.org/stalker/x-ray/downloads/XRay.rar]&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Пароль:''' ljlLHhklknlked&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Скачиваем архив с необходимыми для сборки SDKs и компонентами: [https://bitbucket.org/stalker/x-ray/downloads/src_components_for_xray.rar]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Распаковываем содержимое архивов ''XRay.rar'' и ''src_components_for_xray.rar'' в директорию ''XRay\xr_src'' &amp;lt;br/&amp;gt;&lt;br /&gt;
В папке ''dev-scripts'' создаем два (*.cmd) файла - ''mountDisks.cmd'' и ''unmountDisks.cmd'' такого содержания:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
''mountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: [Ваш путь до папки XRay]:\XRay\xr_build&lt;br /&gt;
@subst S: [Ваш путь до папки XRay]:\XRay\xr_src&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
''unmountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: /D&lt;br /&gt;
@subst S: /D&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Запускаем ''mountDisks.cmd'', должны появиться два виртуальных диска: ''X'' и ''S''. ''X'' -выходной каталог, ''S'' - каталог исходников.&lt;br /&gt;
[[Файл:Ss_0.jpg|Виртуальные диски|frame|left|Виртуальные диски]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Подготовительный этап закончен. Приступаем к настройке проектов.&lt;br /&gt;
=== Настройка проектов ===&lt;br /&gt;
Запускаем Visual Studio, на стартовой странице выбираем ''Открыть проект...'' или ''Файл -&amp;gt; Открыть -&amp;gt; Решение или проект...'' В появившемся окне выбираем ''S:\xr_3da\xr_3da.sln''.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_1.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Появится окно мастера преобразования Visual Studio, жмём кнопку 'Готово' и ждём пока все проекты конвертируются в формат VS10 и пройдёт синтаксический анализ проектов.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_2.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
После того как всё сконвертировалось, первым делом открываем  Диспетчер конфигураций (''ПКМ по решению -&amp;gt; Свойства -&amp;gt; Свойства конфигурации'') и выставляем решению активную конфигурацию ''Mixed'' (на чистом ''Debug'' ужасно падает производительность), а для сторонних библиотек (''BugTrap'', ''OpenAL'', ''minizip'', ''zlib'') ставим ''Release''.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_3.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Ну а теперь самое муторное, это настройка собственно проектов. Каждый проект придется настраивать отдельно, собирать так же советую отдельно (''ПКМ по проекту -&amp;gt; Только проект -&amp;gt; Построить только [имя проекта]''). Порядок построения можно узнать так: ''ПКМ по любому проекту -&amp;gt; Зависимости проектов... -&amp;gt; Порядок построения''. Настраиваем выходные каталоги, промежуточные каталоги и выходные каталог для библиотек импорта по своему вкусу, у меня так (на примере ''BugTrap'', используется структура каталогов, упомянутая в начале статьи):&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_4.jpg|512px]]  [[Image:Ss_5.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Далее необходимо настроить пути к заголовочным файлам и библиотекам импорта внешних библиотек. Ниже пойдёт таблица проектов (в порядке построения) с необходимыми для них библиотеками из директории ''xr_src\SDK'', пути настраиваются здесь: &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_6.jpg|512px]]  [[Файл:Ss_7.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{|class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Проект||Необходимые библиотеки&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCore'''||''DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCDB'''||''xrCore''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrLua'''||''xrCore, LuaBind, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrSound'''||''xrCore, Xiph libs, EAX, DX, OpenAL''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrParticles'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrNetServer'''||''xrCore, DX, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrXMLParser'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''XR_3DA'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Xiph libs, OpenAL (*.lib only)''&lt;br /&gt;
|-&lt;br /&gt;
|'''ODE'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCPU_Pipe'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGameSpy'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R2'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R1'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGame'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Loki''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_1|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=На заметку|&lt;br /&gt;
message=xrGame самая &amp;quot;массивная&amp;quot; библиотека X-Ray, на некоторых машинах её сборка может занять прилично времени.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
=== Сборка ===&lt;br /&gt;
Собираем каждый проект, как я ранее написал, отдельно, по списку порядка построения. Ниже разбираются наиболее встречающиеся проблемы. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrCore'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2061: синтаксическая ошибка: идентификатор &amp;quot;__RPC__out_xcount_part&amp;lt;/code&amp;gt;&lt;br /&gt;
Необходимо удалить файл ''rpcsal.h'' из директории ''S:\SDK\dx9sdk\dx9sdk\include''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrLua'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2883: std::terminate: объявление функции вступает в конфликт с &amp;quot;terminate&amp;quot;, присутствующем в &amp;quot;using&amp;quot;-объявлении&amp;lt;/code&amp;gt;&lt;br /&gt;
Идём в ''S:\SDK\luabind\luabind\config.hpp'', строка 31 и добавляем в имя функции ''terminate'' прочерк ,было '''terminate''', стало '''_terminate'''. &lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_2|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message=Функция '''_terminate''' существует в '''xrDebugNew!''' Не известно как это себя поведёт, лучше всё же закомментировать конструкцию '''namespace std { void terminate() }'''&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2244: throw_exception: не удается сопоставить определение функции существующему объявлению&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''xrCore.h'', в строке ''14'' объявляем макрос ''BOOST_NO_EXCEPTIONS'' ('''#define BOOST_NO_EXCEPTIONS''')&lt;br /&gt;
&amp;lt;code&amp;gt;error C2668: boost::addressof: неоднозначный вызов перегруженной функции&amp;lt;/code&amp;gt;&lt;br /&gt;
Лезем в ''S:\SDK\boost_1_30_0\function\function_template.hpp'', в строке ''472'' перед '''addressof''' дописываем '''boost::'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrGame'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;_operator::_edge_value_type CProblemSolver&amp;lt;_operator_condition,_condition_state,_operator,_condition_evaluator,_operator_id_type,_reverse_search,_operator_ptr,_condition_evaluator_ptr&amp;gt;::estimate_edge_weight_impl(const _condition_state &amp;amp;) const&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\problem_solver.h'', строка ''90''. Заменить этот кусок кода:&lt;br /&gt;
[[Файл:Ss_8.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
На этот: &lt;br /&gt;
[[Файл:Ss_9.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
И где-нибудь вне класса объявите структуру ''Bool2Type'': &lt;br /&gt;
[[Файл:Ss_10.jpg|Структура Bool2Type|frame|left|Структура Bool2Type]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2275: Pars: недопустимое использование этого типа в качестве выражения&amp;lt;/code&amp;gt;&lt;br /&gt;
Здесь придётся вносить правки в несколько файлов, для начала лезем в ''S:\xr_3da\xrGame\PHMovementDynamicActivate.cpp'' и везде после '''Pars''' вместо точки ставим двойное двоеточие '''::''', также делаем и в ''xrGame\physics_game.cpp''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;luabind::detail::class_rep *luabind::detail::get_class_rep(lua_State *,void (__cdecl *)(T))&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\SDK\luabind\luabind\detail\class_cache.hpp'', строка ''78'', добавляем символ '''*''' после буквы '''T''':&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_11.jpg|Правка LuaBind|frame|left|Правка LuaBind]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2780: luabind::class_&amp;lt;T&amp;gt; &amp;amp;luabind::class_&amp;lt;T&amp;gt;::def(luabind::detail::operator_&amp;lt;Derived&amp;gt;): требует аргументов: 1, имеется: 2&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\game_cl_base_script.cpp'', строка ''17'', дописываем перед '''SZoneMapEntityData''' ключевое слово '''const''': &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_12.jpg|Правка xrGame|frame|left|Правка xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
== Congratulations! ==&lt;br /&gt;
Ну вот и всё, осталось только скопировать, если его там нет, ''fsgame.ltx'' в директорию с вашими бинам и создать (*.cmd) файл для запуска, ну или для продвинутых написать свой лаунчер (например написать свою ''xrLauncher.dll''). Приятных экспериментов!&lt;br /&gt;
== Послесловие ==&lt;br /&gt;
В скором времени появятся другие статьи по движку ST или по программированию, так или иначе связанным с ST, возможно появится статья по сборке X-Ray SDK, если Вам конечна понравилась эта статья.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Если Вами в статье была найдена какая-то ошибка или неточность, прошу сообщить мне. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Просьба при внесении правок оставлять свою подпись.'''&lt;br /&gt;
== Благодарности ==&lt;br /&gt;
Я выражаю искрении благодарности следующим людям: '''K.D.''', '''HikeR''', '''Tron''' и всем остальным кто помогал в сборке движка. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ну и огромное спасибо '''GSC Game World''' за замечательный проект ST и за отсутствие гонений из-за использования исходных кодов движка :-).&lt;br /&gt;
== Автор ==&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/slava_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;11.07.2014&amp;lt;/u&amp;gt;. &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Участник:KIRAY|KIRAY]] ([[Обсуждение участника:KIRAY|обсуждение]]) 11:07, 11 июля 2014 (MSK)&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray</id>
		<title>Сборка движка X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray"/>
				<updated>2015-08-26T12:11:10Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: /* Что необходимо для сборки? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Руководства]]&lt;br /&gt;
== Предисловие ==&lt;br /&gt;
Сразу хочется упомянуть о том, что я не программист, мною могут быть допущены какие-то неточности, ошибки. Всё что будет изложено ниже не может считаться верным решением встречающихся при сборке X-Ray проблем. Ну что ж, хватит лирики, приступим-с...&lt;br /&gt;
&lt;br /&gt;
== На кого рассчитана данная статья? ==&lt;br /&gt;
Прежде всего она рассчитана на нубов, подобных мне, которые не могут собрать движок, но хотят вносить в него какие-то правки, ну или хотя бы хотят пытаться вносить правки. Ну это вовсе не означает что Вы являетесь &amp;quot;полным нулём&amp;quot;, предполагается что читатель хотя бы минимальски знаком с ЯП C++ и имеет хоть какой-то опыт работы в Visual Studio. Программистам с опытом этот туториал покажется очень смешным и глупым, и я бы советовал им пройти мимо, дабы они здесь ничего нового не найдут.&lt;br /&gt;
== Что необходимо для сборки? ==&lt;br /&gt;
* Visual Studio 2005 и выше (&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;'''НЕ'''&amp;lt;/span&amp;gt; Express Edition)&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_0|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message='''Данный туториал рассчитан на VS 2010! При сборке на других, указанных выше студиях могут отсутствовать некоторые проблемы, разобранные в данной статье, и могут появиться другие, которые, возможно, не будут рассмотрены в данной статье!'''&lt;br /&gt;
}} &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
* S.T.A.L.K.E.R. Shadow of Cherbobyl 1.0006&lt;br /&gt;
&lt;br /&gt;
== Сборка ==&lt;br /&gt;
=== Заранее хочется оговориться о структуре каталогов ===&lt;br /&gt;
* ''XRay'' -- корневой каталог движка&lt;br /&gt;
** ''xr_build'' -- Выходной каталог, здесь находятся распакованные ресурсы игры&lt;br /&gt;
** ''xr_src'' -- Каталог с исходными кодами движка&lt;br /&gt;
** ''dev-scripts'' -- Различные вспомогательные скрипты&lt;br /&gt;
=== Загрузка исходного кода движка и подготовительные работы ===&lt;br /&gt;
Скачиваем основной архив с исходниками: [https://bitbucket.org/stalker/x-ray/downloads/XRay.rar]&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Пароль:''' ljlLHhklknlked&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Скачиваем архив с необходимыми для сборки SDKs и компонентами: [https://bitbucket.org/stalker/x-ray/downloads/src_components_for_xray.rar]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Распаковываем содержимое архивов ''XRay.rar'' и ''src_components_for_xray.rar'' в директорию ''XRay\xr_src'' &amp;lt;br/&amp;gt;&lt;br /&gt;
В папке ''dev-scripts'' создаем два (*.cmd) файла - ''mountDisks.cmd'' и ''unmountDisks.cmd'' такого содержания:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
''mountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: [Ваш путь до папки XRay]:\XRay\xr_build&lt;br /&gt;
@subst S: [Ваш путь до папки XRay]:\XRay\xr_src&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
''unmountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: /D&lt;br /&gt;
@subst S: /D&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Запускаем ''mountDisks.cmd'', должны появиться два виртуальных диска: ''X'' и ''S''. ''X'' -выходной каталог, ''S'' - каталог исходников.&lt;br /&gt;
[[Файл:Ss_0.jpg|Виртуальные диски|frame|left|Виртуальные диски]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Подготовительный этап закончен. Приступаем к настройке проектов.&lt;br /&gt;
=== Настройка проектов ===&lt;br /&gt;
Запускаем Visual Studio, на стартовой странице выбираем ''Открыть проект...'' или ''Файл -&amp;gt; Открыть -&amp;gt; Решение или проект...'' В появившемся окне выбираем ''S:\xr_3da\xr_3da.sln''.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_1.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Появится окно мастера преобразования Visual Studio, жмём кнопку 'Готово' и ждём пока все проекты конвертируются в формат VS10 и пройдёт синтаксический анализ проектов.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_2.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
После того как всё сконвертировалось, первым делом открываем  Диспетчер конфигураций (''ПКМ по решению -&amp;gt; Свойства -&amp;gt; Свойства конфигурации'') и выставляем решению активную конфигурацию ''Mixed'' (на чистом ''Debug'' ужасно падает производительность), а для сторонних библиотек (''BugTrap'', ''OpenAL'', ''minizip'', ''zlib'') ставим ''Release''.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_3.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Ну а теперь самое муторное, это настройка собственно проектов. Каждый проект придется настраивать отдельно, собирать так же советую отдельно (''ПКМ по проекту -&amp;gt; Только проект -&amp;gt; Построить только [имя проекта]''). Порядок построения можно узнать так: ''ПКМ по любому проекту -&amp;gt; Зависимости проектов... -&amp;gt; Порядок построения''. Настраиваем выходные каталоги, промежуточные каталоги и выходные каталог для библиотек импорта по своему вкусу, у меня так (на примере ''BugTrap'', используется структура каталогов, упомянутая в начале статьи):&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_4.jpg|512px]]  [[Image:Ss_5.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Далее необходимо настроить пути к заголовочным файлам и библиотекам импорта внешних библиотек. Ниже пойдёт таблица проектов (в порядке построения) с необходимыми для них библиотеками из директории ''xr_src\SDK'', пути настраиваются здесь: &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_6.jpg|512px]]  [[Файл:Ss_7.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{|class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Проект||Необходимые библиотеки&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCore'''||''DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCDB'''||''xrCore''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrLua'''||''xrCore, LuaBind, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrSound'''||''xrCore, Xiph libs, EAX, DX, OpenAL''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrParticles'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrNetServer'''||''xrCore, DX, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrXMLParser'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''XR_3DA'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Xiph libs, OpenAL (*.lib only)''&lt;br /&gt;
|-&lt;br /&gt;
|'''ODE'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCPU_Pipe'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGameSpy'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R2'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R1'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGame'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Loki''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_1|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=На заметку|&lt;br /&gt;
message=xrGame самая &amp;quot;массивная&amp;quot; библиотека X-Ray, на некоторых машинах её сборка может занять прилично времени.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
=== Сборка ===&lt;br /&gt;
Собираем каждый проект, как я ранее написал, отдельно, по списку порядка построения. Ниже разбираются наиболее встречающиеся проблемы. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrCore'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2061: синтаксическая ошибка: идентификатор &amp;quot;__RPC__out_xcount_part&amp;lt;/code&amp;gt;&lt;br /&gt;
Необходимо удалить файл ''rpcsal.h'' из директории ''S:\SDK\dx9sdk\dx9sdk\include''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrLua'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2883: std::terminate: объявление функции вступает в конфликт с &amp;quot;terminate&amp;quot;, присутствующем в &amp;quot;using&amp;quot;-объявлении&amp;lt;/code&amp;gt;&lt;br /&gt;
Идём в ''S:\SDK\luabind\luabind\config.hpp'', строка 31 и добавляем в имя функции ''terminate'' прочерк ,было '''terminate''', стало '''_terminate'''. &lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_2|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message=Функция '''_terminate''' существует в '''xrDebugNew!''' Не известно как это себя поведёт, лучше всё же закомментировать конструкцию '''namespace std { void terminate() }'''&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2244: throw_exception: не удается сопоставить определение функции существующему объявлению&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''xrCore.h'', в строке ''14'' объявляем макрос ''BOOST_NO_EXCEPTIONS'' ('''#define BOOST_NO_EXCEPTIONS''')&lt;br /&gt;
&amp;lt;code&amp;gt;error C2668: boost::addressof: неоднозначный вызов перегруженной функции&amp;lt;/code&amp;gt;&lt;br /&gt;
Лезем в ''S:\SDK\boost_1_30_0\function\function_template.hpp'', в строке ''472'' перед '''addressof''' дописываем '''boost::'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrGame'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;_operator::_edge_value_type CProblemSolver&amp;lt;_operator_condition,_condition_state,_operator,_condition_evaluator,_operator_id_type,_reverse_search,_operator_ptr,_condition_evaluator_ptr&amp;gt;::estimate_edge_weight_impl(const _condition_state &amp;amp;) const&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\problem_solver.h'', строка ''90''. Заменить этот кусок кода:&lt;br /&gt;
[[Файл:Ss_8.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
На этот: &lt;br /&gt;
[[Файл:Ss_9.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
И где-нибудь вне класса объявите структуру ''Bool2Type'': &lt;br /&gt;
[[Файл:Ss_10.jpg|Структура Bool2Type|frame|left|Структура Bool2Type]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2275: Pars: недопустимое использование этого типа в качестве выражения&amp;lt;/code&amp;gt;&lt;br /&gt;
Здесь придётся вносить правки в несколько файлов, для начала лезем в ''S:\xr_3da\xrGame\PHMovementDynamicActivate.cpp'' и везде после '''Pars''' вместо точки ставим двойное двоеточие '''::''', также делаем и в ''xrGame\physics_game.cpp''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;luabind::detail::class_rep *luabind::detail::get_class_rep(lua_State *,void (__cdecl *)(T))&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\SDK\luabind\luabind\detail\class_cache.hpp'', строка ''78'', добавляем символ '''*''' после буквы '''T''':&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_11.jpg|Правка LuaBind|frame|left|Правка LuaBind]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2780: luabind::class_&amp;lt;T&amp;gt; &amp;amp;luabind::class_&amp;lt;T&amp;gt;::def(luabind::detail::operator_&amp;lt;Derived&amp;gt;): требует аргументов: 1, имеется: 2&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\game_cl_base_script.cpp'', строка ''17'', дописываем перед '''SZoneMapEntityData''' ключевое слово '''const''': &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_12.jpg|Правка xrGame|frame|left|Правка xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
== Congratulations! ==&lt;br /&gt;
Ну вот и всё, осталось только скопировать, если его там нет, ''fsgame.ltx'' в директорию с вашими бинам и создать (*.cmd) файл для запуска, ну или для продвинутых написать свой лаунчер (например написать свою ''xrLauncher.dll''). Приятных экспериментов!&lt;br /&gt;
== Послесловие ==&lt;br /&gt;
В скором времени появятся другие статьи по движку ST или по программированию, так или иначе связанным с ST, возможно появится статья по сборке X-Ray SDK, если Вам конечна понравилась эта статья.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Если Вами в статье была найдена какая-то ошибка или неточность, прошу сообщить мне. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Просьба при внесении правок оставлять свою подпись.'''&lt;br /&gt;
== Благодарности ==&lt;br /&gt;
Я выражаю искрении благодарности следующим людям: '''K.D.''', '''HikeR''', '''Tron''' и всем остальным кто помогал в сборке движка. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ну и огромное спасибо '''GSC Game World''' за замечательный проект ST и за отсутствие гонений из-за использования исходных кодов движка :-).&lt;br /&gt;
== Автор ==&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/slava_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;11.07.2014&amp;lt;/u&amp;gt;. &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Участник:KIRAY|KIRAY]] ([[Обсуждение участника:KIRAY|обсуждение]]) 11:07, 11 июля 2014 (MSK)&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray</id>
		<title>Сборка движка X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray"/>
				<updated>2015-08-26T12:10:56Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: /* Что необходимо для сборки? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Руководства]]&lt;br /&gt;
== Предисловие ==&lt;br /&gt;
Сразу хочется упомянуть о том, что я не программист, мною могут быть допущены какие-то неточности, ошибки. Всё что будет изложено ниже не может считаться верным решением встречающихся при сборке X-Ray проблем. Ну что ж, хватит лирики, приступим-с...&lt;br /&gt;
&lt;br /&gt;
== На кого рассчитана данная статья? ==&lt;br /&gt;
Прежде всего она рассчитана на нубов, подобных мне, которые не могут собрать движок, но хотят вносить в него какие-то правки, ну или хотя бы хотят пытаться вносить правки. Ну это вовсе не означает что Вы являетесь &amp;quot;полным нулём&amp;quot;, предполагается что читатель хотя бы минимальски знаком с ЯП C++ и имеет хоть какой-то опыт работы в Visual Studio. Программистам с опытом этот туториал покажется очень смешным и глупым, и я бы советовал им пройти мимо, дабы они здесь ничего нового не найдут.&lt;br /&gt;
== Что необходимо для сборки? ==&lt;br /&gt;
* Visual Studio 2005, 2008, 2010 и выше (&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;'''НЕ'''&amp;lt;/span&amp;gt; Express Edition)&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_0|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message='''Данный туториал рассчитан на VS 2010! При сборке на других, указанных выше студиях могут отсутствовать некоторые проблемы, разобранные в данной статье, и могут появиться другие, которые, возможно, не будут рассмотрены в данной статье!'''&lt;br /&gt;
}} &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
* S.T.A.L.K.E.R. Shadow of Cherbobyl 1.0006&lt;br /&gt;
&lt;br /&gt;
== Сборка ==&lt;br /&gt;
=== Заранее хочется оговориться о структуре каталогов ===&lt;br /&gt;
* ''XRay'' -- корневой каталог движка&lt;br /&gt;
** ''xr_build'' -- Выходной каталог, здесь находятся распакованные ресурсы игры&lt;br /&gt;
** ''xr_src'' -- Каталог с исходными кодами движка&lt;br /&gt;
** ''dev-scripts'' -- Различные вспомогательные скрипты&lt;br /&gt;
=== Загрузка исходного кода движка и подготовительные работы ===&lt;br /&gt;
Скачиваем основной архив с исходниками: [https://bitbucket.org/stalker/x-ray/downloads/XRay.rar]&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Пароль:''' ljlLHhklknlked&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Скачиваем архив с необходимыми для сборки SDKs и компонентами: [https://bitbucket.org/stalker/x-ray/downloads/src_components_for_xray.rar]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Распаковываем содержимое архивов ''XRay.rar'' и ''src_components_for_xray.rar'' в директорию ''XRay\xr_src'' &amp;lt;br/&amp;gt;&lt;br /&gt;
В папке ''dev-scripts'' создаем два (*.cmd) файла - ''mountDisks.cmd'' и ''unmountDisks.cmd'' такого содержания:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
''mountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: [Ваш путь до папки XRay]:\XRay\xr_build&lt;br /&gt;
@subst S: [Ваш путь до папки XRay]:\XRay\xr_src&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
''unmountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: /D&lt;br /&gt;
@subst S: /D&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Запускаем ''mountDisks.cmd'', должны появиться два виртуальных диска: ''X'' и ''S''. ''X'' -выходной каталог, ''S'' - каталог исходников.&lt;br /&gt;
[[Файл:Ss_0.jpg|Виртуальные диски|frame|left|Виртуальные диски]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Подготовительный этап закончен. Приступаем к настройке проектов.&lt;br /&gt;
=== Настройка проектов ===&lt;br /&gt;
Запускаем Visual Studio, на стартовой странице выбираем ''Открыть проект...'' или ''Файл -&amp;gt; Открыть -&amp;gt; Решение или проект...'' В появившемся окне выбираем ''S:\xr_3da\xr_3da.sln''.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_1.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Появится окно мастера преобразования Visual Studio, жмём кнопку 'Готово' и ждём пока все проекты конвертируются в формат VS10 и пройдёт синтаксический анализ проектов.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_2.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
После того как всё сконвертировалось, первым делом открываем  Диспетчер конфигураций (''ПКМ по решению -&amp;gt; Свойства -&amp;gt; Свойства конфигурации'') и выставляем решению активную конфигурацию ''Mixed'' (на чистом ''Debug'' ужасно падает производительность), а для сторонних библиотек (''BugTrap'', ''OpenAL'', ''minizip'', ''zlib'') ставим ''Release''.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_3.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Ну а теперь самое муторное, это настройка собственно проектов. Каждый проект придется настраивать отдельно, собирать так же советую отдельно (''ПКМ по проекту -&amp;gt; Только проект -&amp;gt; Построить только [имя проекта]''). Порядок построения можно узнать так: ''ПКМ по любому проекту -&amp;gt; Зависимости проектов... -&amp;gt; Порядок построения''. Настраиваем выходные каталоги, промежуточные каталоги и выходные каталог для библиотек импорта по своему вкусу, у меня так (на примере ''BugTrap'', используется структура каталогов, упомянутая в начале статьи):&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_4.jpg|512px]]  [[Image:Ss_5.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Далее необходимо настроить пути к заголовочным файлам и библиотекам импорта внешних библиотек. Ниже пойдёт таблица проектов (в порядке построения) с необходимыми для них библиотеками из директории ''xr_src\SDK'', пути настраиваются здесь: &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_6.jpg|512px]]  [[Файл:Ss_7.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{|class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Проект||Необходимые библиотеки&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCore'''||''DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCDB'''||''xrCore''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrLua'''||''xrCore, LuaBind, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrSound'''||''xrCore, Xiph libs, EAX, DX, OpenAL''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrParticles'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrNetServer'''||''xrCore, DX, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrXMLParser'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''XR_3DA'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Xiph libs, OpenAL (*.lib only)''&lt;br /&gt;
|-&lt;br /&gt;
|'''ODE'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCPU_Pipe'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGameSpy'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R2'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R1'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGame'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Loki''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_1|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=На заметку|&lt;br /&gt;
message=xrGame самая &amp;quot;массивная&amp;quot; библиотека X-Ray, на некоторых машинах её сборка может занять прилично времени.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
=== Сборка ===&lt;br /&gt;
Собираем каждый проект, как я ранее написал, отдельно, по списку порядка построения. Ниже разбираются наиболее встречающиеся проблемы. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrCore'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2061: синтаксическая ошибка: идентификатор &amp;quot;__RPC__out_xcount_part&amp;lt;/code&amp;gt;&lt;br /&gt;
Необходимо удалить файл ''rpcsal.h'' из директории ''S:\SDK\dx9sdk\dx9sdk\include''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrLua'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2883: std::terminate: объявление функции вступает в конфликт с &amp;quot;terminate&amp;quot;, присутствующем в &amp;quot;using&amp;quot;-объявлении&amp;lt;/code&amp;gt;&lt;br /&gt;
Идём в ''S:\SDK\luabind\luabind\config.hpp'', строка 31 и добавляем в имя функции ''terminate'' прочерк ,было '''terminate''', стало '''_terminate'''. &lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_2|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message=Функция '''_terminate''' существует в '''xrDebugNew!''' Не известно как это себя поведёт, лучше всё же закомментировать конструкцию '''namespace std { void terminate() }'''&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2244: throw_exception: не удается сопоставить определение функции существующему объявлению&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''xrCore.h'', в строке ''14'' объявляем макрос ''BOOST_NO_EXCEPTIONS'' ('''#define BOOST_NO_EXCEPTIONS''')&lt;br /&gt;
&amp;lt;code&amp;gt;error C2668: boost::addressof: неоднозначный вызов перегруженной функции&amp;lt;/code&amp;gt;&lt;br /&gt;
Лезем в ''S:\SDK\boost_1_30_0\function\function_template.hpp'', в строке ''472'' перед '''addressof''' дописываем '''boost::'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrGame'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;_operator::_edge_value_type CProblemSolver&amp;lt;_operator_condition,_condition_state,_operator,_condition_evaluator,_operator_id_type,_reverse_search,_operator_ptr,_condition_evaluator_ptr&amp;gt;::estimate_edge_weight_impl(const _condition_state &amp;amp;) const&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\problem_solver.h'', строка ''90''. Заменить этот кусок кода:&lt;br /&gt;
[[Файл:Ss_8.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
На этот: &lt;br /&gt;
[[Файл:Ss_9.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
И где-нибудь вне класса объявите структуру ''Bool2Type'': &lt;br /&gt;
[[Файл:Ss_10.jpg|Структура Bool2Type|frame|left|Структура Bool2Type]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2275: Pars: недопустимое использование этого типа в качестве выражения&amp;lt;/code&amp;gt;&lt;br /&gt;
Здесь придётся вносить правки в несколько файлов, для начала лезем в ''S:\xr_3da\xrGame\PHMovementDynamicActivate.cpp'' и везде после '''Pars''' вместо точки ставим двойное двоеточие '''::''', также делаем и в ''xrGame\physics_game.cpp''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;luabind::detail::class_rep *luabind::detail::get_class_rep(lua_State *,void (__cdecl *)(T))&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\SDK\luabind\luabind\detail\class_cache.hpp'', строка ''78'', добавляем символ '''*''' после буквы '''T''':&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_11.jpg|Правка LuaBind|frame|left|Правка LuaBind]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2780: luabind::class_&amp;lt;T&amp;gt; &amp;amp;luabind::class_&amp;lt;T&amp;gt;::def(luabind::detail::operator_&amp;lt;Derived&amp;gt;): требует аргументов: 1, имеется: 2&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\game_cl_base_script.cpp'', строка ''17'', дописываем перед '''SZoneMapEntityData''' ключевое слово '''const''': &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_12.jpg|Правка xrGame|frame|left|Правка xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
== Congratulations! ==&lt;br /&gt;
Ну вот и всё, осталось только скопировать, если его там нет, ''fsgame.ltx'' в директорию с вашими бинам и создать (*.cmd) файл для запуска, ну или для продвинутых написать свой лаунчер (например написать свою ''xrLauncher.dll''). Приятных экспериментов!&lt;br /&gt;
== Послесловие ==&lt;br /&gt;
В скором времени появятся другие статьи по движку ST или по программированию, так или иначе связанным с ST, возможно появится статья по сборке X-Ray SDK, если Вам конечна понравилась эта статья.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Если Вами в статье была найдена какая-то ошибка или неточность, прошу сообщить мне. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Просьба при внесении правок оставлять свою подпись.'''&lt;br /&gt;
== Благодарности ==&lt;br /&gt;
Я выражаю искрении благодарности следующим людям: '''K.D.''', '''HikeR''', '''Tron''' и всем остальным кто помогал в сборке движка. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ну и огромное спасибо '''GSC Game World''' за замечательный проект ST и за отсутствие гонений из-за использования исходных кодов движка :-).&lt;br /&gt;
== Автор ==&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/slava_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;11.07.2014&amp;lt;/u&amp;gt;. &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Участник:KIRAY|KIRAY]] ([[Обсуждение участника:KIRAY|обсуждение]]) 11:07, 11 июля 2014 (MSK)&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray</id>
		<title>Сборка движка X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray"/>
				<updated>2015-08-26T12:10:17Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: /* Что необходимо для сборки? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Руководства]]&lt;br /&gt;
== Предисловие ==&lt;br /&gt;
Сразу хочется упомянуть о том, что я не программист, мною могут быть допущены какие-то неточности, ошибки. Всё что будет изложено ниже не может считаться верным решением встречающихся при сборке X-Ray проблем. Ну что ж, хватит лирики, приступим-с...&lt;br /&gt;
&lt;br /&gt;
== На кого рассчитана данная статья? ==&lt;br /&gt;
Прежде всего она рассчитана на нубов, подобных мне, которые не могут собрать движок, но хотят вносить в него какие-то правки, ну или хотя бы хотят пытаться вносить правки. Ну это вовсе не означает что Вы являетесь &amp;quot;полным нулём&amp;quot;, предполагается что читатель хотя бы минимальски знаком с ЯП C++ и имеет хоть какой-то опыт работы в Visual Studio. Программистам с опытом этот туториал покажется очень смешным и глупым, и я бы советовал им пройти мимо, дабы они здесь ничего нового не найдут.&lt;br /&gt;
== Что необходимо для сборки? ==&lt;br /&gt;
* Microsoft Visual Studio 2005, 2008, 2010 и выше (&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;'''НЕ'''&amp;lt;/span&amp;gt; Express Edition)&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_0|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message='''Данный туториал рассчитан на VS 2010! При сборке на других, указанных выше студиях могут отсутствовать некоторые проблемы, разобранные в данной статье, и могут появиться другие, которые, возможно, не будут рассмотрены в данной статье!'''&lt;br /&gt;
}} &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
* S.T.A.L.K.E.R. Shadow of Cherbobyl 1.0006&lt;br /&gt;
&lt;br /&gt;
== Сборка ==&lt;br /&gt;
=== Заранее хочется оговориться о структуре каталогов ===&lt;br /&gt;
* ''XRay'' -- корневой каталог движка&lt;br /&gt;
** ''xr_build'' -- Выходной каталог, здесь находятся распакованные ресурсы игры&lt;br /&gt;
** ''xr_src'' -- Каталог с исходными кодами движка&lt;br /&gt;
** ''dev-scripts'' -- Различные вспомогательные скрипты&lt;br /&gt;
=== Загрузка исходного кода движка и подготовительные работы ===&lt;br /&gt;
Скачиваем основной архив с исходниками: [https://bitbucket.org/stalker/x-ray/downloads/XRay.rar]&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Пароль:''' ljlLHhklknlked&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Скачиваем архив с необходимыми для сборки SDKs и компонентами: [https://bitbucket.org/stalker/x-ray/downloads/src_components_for_xray.rar]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Распаковываем содержимое архивов ''XRay.rar'' и ''src_components_for_xray.rar'' в директорию ''XRay\xr_src'' &amp;lt;br/&amp;gt;&lt;br /&gt;
В папке ''dev-scripts'' создаем два (*.cmd) файла - ''mountDisks.cmd'' и ''unmountDisks.cmd'' такого содержания:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
''mountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: [Ваш путь до папки XRay]:\XRay\xr_build&lt;br /&gt;
@subst S: [Ваш путь до папки XRay]:\XRay\xr_src&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
''unmountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: /D&lt;br /&gt;
@subst S: /D&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Запускаем ''mountDisks.cmd'', должны появиться два виртуальных диска: ''X'' и ''S''. ''X'' -выходной каталог, ''S'' - каталог исходников.&lt;br /&gt;
[[Файл:Ss_0.jpg|Виртуальные диски|frame|left|Виртуальные диски]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Подготовительный этап закончен. Приступаем к настройке проектов.&lt;br /&gt;
=== Настройка проектов ===&lt;br /&gt;
Запускаем Visual Studio, на стартовой странице выбираем ''Открыть проект...'' или ''Файл -&amp;gt; Открыть -&amp;gt; Решение или проект...'' В появившемся окне выбираем ''S:\xr_3da\xr_3da.sln''.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_1.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Появится окно мастера преобразования Visual Studio, жмём кнопку 'Готово' и ждём пока все проекты конвертируются в формат VS10 и пройдёт синтаксический анализ проектов.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_2.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
После того как всё сконвертировалось, первым делом открываем  Диспетчер конфигураций (''ПКМ по решению -&amp;gt; Свойства -&amp;gt; Свойства конфигурации'') и выставляем решению активную конфигурацию ''Mixed'' (на чистом ''Debug'' ужасно падает производительность), а для сторонних библиотек (''BugTrap'', ''OpenAL'', ''minizip'', ''zlib'') ставим ''Release''.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_3.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Ну а теперь самое муторное, это настройка собственно проектов. Каждый проект придется настраивать отдельно, собирать так же советую отдельно (''ПКМ по проекту -&amp;gt; Только проект -&amp;gt; Построить только [имя проекта]''). Порядок построения можно узнать так: ''ПКМ по любому проекту -&amp;gt; Зависимости проектов... -&amp;gt; Порядок построения''. Настраиваем выходные каталоги, промежуточные каталоги и выходные каталог для библиотек импорта по своему вкусу, у меня так (на примере ''BugTrap'', используется структура каталогов, упомянутая в начале статьи):&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_4.jpg|512px]]  [[Image:Ss_5.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Далее необходимо настроить пути к заголовочным файлам и библиотекам импорта внешних библиотек. Ниже пойдёт таблица проектов (в порядке построения) с необходимыми для них библиотеками из директории ''xr_src\SDK'', пути настраиваются здесь: &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_6.jpg|512px]]  [[Файл:Ss_7.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{|class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Проект||Необходимые библиотеки&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCore'''||''DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCDB'''||''xrCore''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrLua'''||''xrCore, LuaBind, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrSound'''||''xrCore, Xiph libs, EAX, DX, OpenAL''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrParticles'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrNetServer'''||''xrCore, DX, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrXMLParser'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''XR_3DA'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Xiph libs, OpenAL (*.lib only)''&lt;br /&gt;
|-&lt;br /&gt;
|'''ODE'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCPU_Pipe'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGameSpy'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R2'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R1'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGame'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Loki''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_1|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=На заметку|&lt;br /&gt;
message=xrGame самая &amp;quot;массивная&amp;quot; библиотека X-Ray, на некоторых машинах её сборка может занять прилично времени.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
=== Сборка ===&lt;br /&gt;
Собираем каждый проект, как я ранее написал, отдельно, по списку порядка построения. Ниже разбираются наиболее встречающиеся проблемы. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrCore'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2061: синтаксическая ошибка: идентификатор &amp;quot;__RPC__out_xcount_part&amp;lt;/code&amp;gt;&lt;br /&gt;
Необходимо удалить файл ''rpcsal.h'' из директории ''S:\SDK\dx9sdk\dx9sdk\include''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrLua'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2883: std::terminate: объявление функции вступает в конфликт с &amp;quot;terminate&amp;quot;, присутствующем в &amp;quot;using&amp;quot;-объявлении&amp;lt;/code&amp;gt;&lt;br /&gt;
Идём в ''S:\SDK\luabind\luabind\config.hpp'', строка 31 и добавляем в имя функции ''terminate'' прочерк ,было '''terminate''', стало '''_terminate'''. &lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_2|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message=Функция '''_terminate''' существует в '''xrDebugNew!''' Не известно как это себя поведёт, лучше всё же закомментировать конструкцию '''namespace std { void terminate() }'''&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2244: throw_exception: не удается сопоставить определение функции существующему объявлению&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''xrCore.h'', в строке ''14'' объявляем макрос ''BOOST_NO_EXCEPTIONS'' ('''#define BOOST_NO_EXCEPTIONS''')&lt;br /&gt;
&amp;lt;code&amp;gt;error C2668: boost::addressof: неоднозначный вызов перегруженной функции&amp;lt;/code&amp;gt;&lt;br /&gt;
Лезем в ''S:\SDK\boost_1_30_0\function\function_template.hpp'', в строке ''472'' перед '''addressof''' дописываем '''boost::'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrGame'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;_operator::_edge_value_type CProblemSolver&amp;lt;_operator_condition,_condition_state,_operator,_condition_evaluator,_operator_id_type,_reverse_search,_operator_ptr,_condition_evaluator_ptr&amp;gt;::estimate_edge_weight_impl(const _condition_state &amp;amp;) const&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\problem_solver.h'', строка ''90''. Заменить этот кусок кода:&lt;br /&gt;
[[Файл:Ss_8.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
На этот: &lt;br /&gt;
[[Файл:Ss_9.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
И где-нибудь вне класса объявите структуру ''Bool2Type'': &lt;br /&gt;
[[Файл:Ss_10.jpg|Структура Bool2Type|frame|left|Структура Bool2Type]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2275: Pars: недопустимое использование этого типа в качестве выражения&amp;lt;/code&amp;gt;&lt;br /&gt;
Здесь придётся вносить правки в несколько файлов, для начала лезем в ''S:\xr_3da\xrGame\PHMovementDynamicActivate.cpp'' и везде после '''Pars''' вместо точки ставим двойное двоеточие '''::''', также делаем и в ''xrGame\physics_game.cpp''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;luabind::detail::class_rep *luabind::detail::get_class_rep(lua_State *,void (__cdecl *)(T))&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\SDK\luabind\luabind\detail\class_cache.hpp'', строка ''78'', добавляем символ '''*''' после буквы '''T''':&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_11.jpg|Правка LuaBind|frame|left|Правка LuaBind]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2780: luabind::class_&amp;lt;T&amp;gt; &amp;amp;luabind::class_&amp;lt;T&amp;gt;::def(luabind::detail::operator_&amp;lt;Derived&amp;gt;): требует аргументов: 1, имеется: 2&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\game_cl_base_script.cpp'', строка ''17'', дописываем перед '''SZoneMapEntityData''' ключевое слово '''const''': &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_12.jpg|Правка xrGame|frame|left|Правка xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
== Congratulations! ==&lt;br /&gt;
Ну вот и всё, осталось только скопировать, если его там нет, ''fsgame.ltx'' в директорию с вашими бинам и создать (*.cmd) файл для запуска, ну или для продвинутых написать свой лаунчер (например написать свою ''xrLauncher.dll''). Приятных экспериментов!&lt;br /&gt;
== Послесловие ==&lt;br /&gt;
В скором времени появятся другие статьи по движку ST или по программированию, так или иначе связанным с ST, возможно появится статья по сборке X-Ray SDK, если Вам конечна понравилась эта статья.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Если Вами в статье была найдена какая-то ошибка или неточность, прошу сообщить мне. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Просьба при внесении правок оставлять свою подпись.'''&lt;br /&gt;
== Благодарности ==&lt;br /&gt;
Я выражаю искрении благодарности следующим людям: '''K.D.''', '''HikeR''', '''Tron''' и всем остальным кто помогал в сборке движка. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ну и огромное спасибо '''GSC Game World''' за замечательный проект ST и за отсутствие гонений из-за использования исходных кодов движка :-).&lt;br /&gt;
== Автор ==&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/slava_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;11.07.2014&amp;lt;/u&amp;gt;. &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Участник:KIRAY|KIRAY]] ([[Обсуждение участника:KIRAY|обсуждение]]) 11:07, 11 июля 2014 (MSK)&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray</id>
		<title>Сборка движка X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray"/>
				<updated>2015-08-26T12:09:13Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: /* Что необходимо для сборки? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Руководства]]&lt;br /&gt;
== Предисловие ==&lt;br /&gt;
Сразу хочется упомянуть о том, что я не программист, мною могут быть допущены какие-то неточности, ошибки. Всё что будет изложено ниже не может считаться верным решением встречающихся при сборке X-Ray проблем. Ну что ж, хватит лирики, приступим-с...&lt;br /&gt;
&lt;br /&gt;
== На кого рассчитана данная статья? ==&lt;br /&gt;
Прежде всего она рассчитана на нубов, подобных мне, которые не могут собрать движок, но хотят вносить в него какие-то правки, ну или хотя бы хотят пытаться вносить правки. Ну это вовсе не означает что Вы являетесь &amp;quot;полным нулём&amp;quot;, предполагается что читатель хотя бы минимальски знаком с ЯП C++ и имеет хоть какой-то опыт работы в Visual Studio. Программистам с опытом этот туториал покажется очень смешным и глупым, и я бы советовал им пройти мимо, дабы они здесь ничего нового не найдут.&lt;br /&gt;
== Что необходимо для сборки? ==&lt;br /&gt;
* Microsoft Visual Studio 2005 или 2008 или 2010 (&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;'''НЕ'''&amp;lt;/span&amp;gt; Express Edition)&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_0|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message='''Данный туториал рассчитан на VS 2010! При сборке на других, указанных выше студиях могут отсутствовать некоторые проблемы, разобранные в данной статье, и могут появиться другие, которые, возможно, не будут рассмотрены в данной статье!'''&lt;br /&gt;
}} &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
* S.T.A.L.K.E.R. Shadow of Cherbobyl 1.0006&lt;br /&gt;
&lt;br /&gt;
== Сборка ==&lt;br /&gt;
=== Заранее хочется оговориться о структуре каталогов ===&lt;br /&gt;
* ''XRay'' -- корневой каталог движка&lt;br /&gt;
** ''xr_build'' -- Выходной каталог, здесь находятся распакованные ресурсы игры&lt;br /&gt;
** ''xr_src'' -- Каталог с исходными кодами движка&lt;br /&gt;
** ''dev-scripts'' -- Различные вспомогательные скрипты&lt;br /&gt;
=== Загрузка исходного кода движка и подготовительные работы ===&lt;br /&gt;
Скачиваем основной архив с исходниками: [https://bitbucket.org/stalker/x-ray/downloads/XRay.rar]&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Пароль:''' ljlLHhklknlked&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Скачиваем архив с необходимыми для сборки SDKs и компонентами: [https://bitbucket.org/stalker/x-ray/downloads/src_components_for_xray.rar]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Распаковываем содержимое архивов ''XRay.rar'' и ''src_components_for_xray.rar'' в директорию ''XRay\xr_src'' &amp;lt;br/&amp;gt;&lt;br /&gt;
В папке ''dev-scripts'' создаем два (*.cmd) файла - ''mountDisks.cmd'' и ''unmountDisks.cmd'' такого содержания:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
''mountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: [Ваш путь до папки XRay]:\XRay\xr_build&lt;br /&gt;
@subst S: [Ваш путь до папки XRay]:\XRay\xr_src&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
''unmountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: /D&lt;br /&gt;
@subst S: /D&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Запускаем ''mountDisks.cmd'', должны появиться два виртуальных диска: ''X'' и ''S''. ''X'' -выходной каталог, ''S'' - каталог исходников.&lt;br /&gt;
[[Файл:Ss_0.jpg|Виртуальные диски|frame|left|Виртуальные диски]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Подготовительный этап закончен. Приступаем к настройке проектов.&lt;br /&gt;
=== Настройка проектов ===&lt;br /&gt;
Запускаем Visual Studio, на стартовой странице выбираем ''Открыть проект...'' или ''Файл -&amp;gt; Открыть -&amp;gt; Решение или проект...'' В появившемся окне выбираем ''S:\xr_3da\xr_3da.sln''.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_1.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Появится окно мастера преобразования Visual Studio, жмём кнопку 'Готово' и ждём пока все проекты конвертируются в формат VS10 и пройдёт синтаксический анализ проектов.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_2.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
После того как всё сконвертировалось, первым делом открываем  Диспетчер конфигураций (''ПКМ по решению -&amp;gt; Свойства -&amp;gt; Свойства конфигурации'') и выставляем решению активную конфигурацию ''Mixed'' (на чистом ''Debug'' ужасно падает производительность), а для сторонних библиотек (''BugTrap'', ''OpenAL'', ''minizip'', ''zlib'') ставим ''Release''.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_3.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Ну а теперь самое муторное, это настройка собственно проектов. Каждый проект придется настраивать отдельно, собирать так же советую отдельно (''ПКМ по проекту -&amp;gt; Только проект -&amp;gt; Построить только [имя проекта]''). Порядок построения можно узнать так: ''ПКМ по любому проекту -&amp;gt; Зависимости проектов... -&amp;gt; Порядок построения''. Настраиваем выходные каталоги, промежуточные каталоги и выходные каталог для библиотек импорта по своему вкусу, у меня так (на примере ''BugTrap'', используется структура каталогов, упомянутая в начале статьи):&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_4.jpg|512px]]  [[Image:Ss_5.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Далее необходимо настроить пути к заголовочным файлам и библиотекам импорта внешних библиотек. Ниже пойдёт таблица проектов (в порядке построения) с необходимыми для них библиотеками из директории ''xr_src\SDK'', пути настраиваются здесь: &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_6.jpg|512px]]  [[Файл:Ss_7.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{|class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Проект||Необходимые библиотеки&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCore'''||''DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCDB'''||''xrCore''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrLua'''||''xrCore, LuaBind, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrSound'''||''xrCore, Xiph libs, EAX, DX, OpenAL''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrParticles'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrNetServer'''||''xrCore, DX, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrXMLParser'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''XR_3DA'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Xiph libs, OpenAL (*.lib only)''&lt;br /&gt;
|-&lt;br /&gt;
|'''ODE'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCPU_Pipe'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGameSpy'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R2'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R1'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGame'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Loki''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_1|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=На заметку|&lt;br /&gt;
message=xrGame самая &amp;quot;массивная&amp;quot; библиотека X-Ray, на некоторых машинах её сборка может занять прилично времени.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
=== Сборка ===&lt;br /&gt;
Собираем каждый проект, как я ранее написал, отдельно, по списку порядка построения. Ниже разбираются наиболее встречающиеся проблемы. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrCore'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2061: синтаксическая ошибка: идентификатор &amp;quot;__RPC__out_xcount_part&amp;lt;/code&amp;gt;&lt;br /&gt;
Необходимо удалить файл ''rpcsal.h'' из директории ''S:\SDK\dx9sdk\dx9sdk\include''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrLua'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2883: std::terminate: объявление функции вступает в конфликт с &amp;quot;terminate&amp;quot;, присутствующем в &amp;quot;using&amp;quot;-объявлении&amp;lt;/code&amp;gt;&lt;br /&gt;
Идём в ''S:\SDK\luabind\luabind\config.hpp'', строка 31 и добавляем в имя функции ''terminate'' прочерк ,было '''terminate''', стало '''_terminate'''. &lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_2|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message=Функция '''_terminate''' существует в '''xrDebugNew!''' Не известно как это себя поведёт, лучше всё же закомментировать конструкцию '''namespace std { void terminate() }'''&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2244: throw_exception: не удается сопоставить определение функции существующему объявлению&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''xrCore.h'', в строке ''14'' объявляем макрос ''BOOST_NO_EXCEPTIONS'' ('''#define BOOST_NO_EXCEPTIONS''')&lt;br /&gt;
&amp;lt;code&amp;gt;error C2668: boost::addressof: неоднозначный вызов перегруженной функции&amp;lt;/code&amp;gt;&lt;br /&gt;
Лезем в ''S:\SDK\boost_1_30_0\function\function_template.hpp'', в строке ''472'' перед '''addressof''' дописываем '''boost::'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrGame'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;_operator::_edge_value_type CProblemSolver&amp;lt;_operator_condition,_condition_state,_operator,_condition_evaluator,_operator_id_type,_reverse_search,_operator_ptr,_condition_evaluator_ptr&amp;gt;::estimate_edge_weight_impl(const _condition_state &amp;amp;) const&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\problem_solver.h'', строка ''90''. Заменить этот кусок кода:&lt;br /&gt;
[[Файл:Ss_8.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
На этот: &lt;br /&gt;
[[Файл:Ss_9.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
И где-нибудь вне класса объявите структуру ''Bool2Type'': &lt;br /&gt;
[[Файл:Ss_10.jpg|Структура Bool2Type|frame|left|Структура Bool2Type]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2275: Pars: недопустимое использование этого типа в качестве выражения&amp;lt;/code&amp;gt;&lt;br /&gt;
Здесь придётся вносить правки в несколько файлов, для начала лезем в ''S:\xr_3da\xrGame\PHMovementDynamicActivate.cpp'' и везде после '''Pars''' вместо точки ставим двойное двоеточие '''::''', также делаем и в ''xrGame\physics_game.cpp''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;luabind::detail::class_rep *luabind::detail::get_class_rep(lua_State *,void (__cdecl *)(T))&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\SDK\luabind\luabind\detail\class_cache.hpp'', строка ''78'', добавляем символ '''*''' после буквы '''T''':&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_11.jpg|Правка LuaBind|frame|left|Правка LuaBind]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2780: luabind::class_&amp;lt;T&amp;gt; &amp;amp;luabind::class_&amp;lt;T&amp;gt;::def(luabind::detail::operator_&amp;lt;Derived&amp;gt;): требует аргументов: 1, имеется: 2&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\game_cl_base_script.cpp'', строка ''17'', дописываем перед '''SZoneMapEntityData''' ключевое слово '''const''': &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_12.jpg|Правка xrGame|frame|left|Правка xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
== Congratulations! ==&lt;br /&gt;
Ну вот и всё, осталось только скопировать, если его там нет, ''fsgame.ltx'' в директорию с вашими бинам и создать (*.cmd) файл для запуска, ну или для продвинутых написать свой лаунчер (например написать свою ''xrLauncher.dll''). Приятных экспериментов!&lt;br /&gt;
== Послесловие ==&lt;br /&gt;
В скором времени появятся другие статьи по движку ST или по программированию, так или иначе связанным с ST, возможно появится статья по сборке X-Ray SDK, если Вам конечна понравилась эта статья.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Если Вами в статье была найдена какая-то ошибка или неточность, прошу сообщить мне. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Просьба при внесении правок оставлять свою подпись.'''&lt;br /&gt;
== Благодарности ==&lt;br /&gt;
Я выражаю искрении благодарности следующим людям: '''K.D.''', '''HikeR''', '''Tron''' и всем остальным кто помогал в сборке движка. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ну и огромное спасибо '''GSC Game World''' за замечательный проект ST и за отсутствие гонений из-за использования исходных кодов движка :-).&lt;br /&gt;
== Автор ==&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/slava_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;11.07.2014&amp;lt;/u&amp;gt;. &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Участник:KIRAY|KIRAY]] ([[Обсуждение участника:KIRAY|обсуждение]]) 11:07, 11 июля 2014 (MSK)&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray</id>
		<title>Сборка движка X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray"/>
				<updated>2015-08-26T12:07:50Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: /* Предисловие */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Руководства]]&lt;br /&gt;
== Предисловие ==&lt;br /&gt;
Сразу хочется упомянуть о том, что я не программист, мною могут быть допущены какие-то неточности, ошибки. Всё что будет изложено ниже не может считаться верным решением встречающихся при сборке X-Ray проблем. Ну что ж, хватит лирики, приступим-с...&lt;br /&gt;
&lt;br /&gt;
== На кого рассчитана данная статья? ==&lt;br /&gt;
Прежде всего она рассчитана на нубов, подобных мне, которые не могут собрать движок, но хотят вносить в него какие-то правки, ну или хотя бы хотят пытаться вносить правки. Ну это вовсе не означает что Вы являетесь &amp;quot;полным нулём&amp;quot;, предполагается что читатель хотя бы минимальски знаком с ЯП C++ и имеет хоть какой-то опыт работы в Visual Studio. Программистам с опытом этот туториал покажется очень смешным и глупым, и я бы советовал им пройти мимо, дабы они здесь ничего нового не найдут.&lt;br /&gt;
== Что необходимо для сборки? ==&lt;br /&gt;
* Первое, и самое главное. Наличие хоть капли мозга и более-менее прямых рук.&lt;br /&gt;
* Microsoft Visual Studio 2005 или 2008 или 2010 (&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;'''НЕ'''&amp;lt;/span&amp;gt; Express Edition)&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_0|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message='''Данный туториал рассчитан на VS 2010! При сборке на других, указанных выше студиях могут отсутствовать некоторые проблемы, разобранные в данной статье, и могут появиться другие, которые, возможно, не будут рассмотрены в данной статье!'''&lt;br /&gt;
}} &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
* S.T.A.L.K.E.R. Shadow of Cherbobyl 1.0006&lt;br /&gt;
== Сборка ==&lt;br /&gt;
=== Заранее хочется оговориться о структуре каталогов ===&lt;br /&gt;
* ''XRay'' -- корневой каталог движка&lt;br /&gt;
** ''xr_build'' -- Выходной каталог, здесь находятся распакованные ресурсы игры&lt;br /&gt;
** ''xr_src'' -- Каталог с исходными кодами движка&lt;br /&gt;
** ''dev-scripts'' -- Различные вспомогательные скрипты&lt;br /&gt;
=== Загрузка исходного кода движка и подготовительные работы ===&lt;br /&gt;
Скачиваем основной архив с исходниками: [https://bitbucket.org/stalker/x-ray/downloads/XRay.rar]&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Пароль:''' ljlLHhklknlked&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Скачиваем архив с необходимыми для сборки SDKs и компонентами: [https://bitbucket.org/stalker/x-ray/downloads/src_components_for_xray.rar]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Распаковываем содержимое архивов ''XRay.rar'' и ''src_components_for_xray.rar'' в директорию ''XRay\xr_src'' &amp;lt;br/&amp;gt;&lt;br /&gt;
В папке ''dev-scripts'' создаем два (*.cmd) файла - ''mountDisks.cmd'' и ''unmountDisks.cmd'' такого содержания:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
''mountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: [Ваш путь до папки XRay]:\XRay\xr_build&lt;br /&gt;
@subst S: [Ваш путь до папки XRay]:\XRay\xr_src&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
''unmountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: /D&lt;br /&gt;
@subst S: /D&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Запускаем ''mountDisks.cmd'', должны появиться два виртуальных диска: ''X'' и ''S''. ''X'' -выходной каталог, ''S'' - каталог исходников.&lt;br /&gt;
[[Файл:Ss_0.jpg|Виртуальные диски|frame|left|Виртуальные диски]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Подготовительный этап закончен. Приступаем к настройке проектов.&lt;br /&gt;
=== Настройка проектов ===&lt;br /&gt;
Запускаем Visual Studio, на стартовой странице выбираем ''Открыть проект...'' или ''Файл -&amp;gt; Открыть -&amp;gt; Решение или проект...'' В появившемся окне выбираем ''S:\xr_3da\xr_3da.sln''.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_1.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Появится окно мастера преобразования Visual Studio, жмём кнопку 'Готово' и ждём пока все проекты конвертируются в формат VS10 и пройдёт синтаксический анализ проектов.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_2.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
После того как всё сконвертировалось, первым делом открываем  Диспетчер конфигураций (''ПКМ по решению -&amp;gt; Свойства -&amp;gt; Свойства конфигурации'') и выставляем решению активную конфигурацию ''Mixed'' (на чистом ''Debug'' ужасно падает производительность), а для сторонних библиотек (''BugTrap'', ''OpenAL'', ''minizip'', ''zlib'') ставим ''Release''.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_3.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Ну а теперь самое муторное, это настройка собственно проектов. Каждый проект придется настраивать отдельно, собирать так же советую отдельно (''ПКМ по проекту -&amp;gt; Только проект -&amp;gt; Построить только [имя проекта]''). Порядок построения можно узнать так: ''ПКМ по любому проекту -&amp;gt; Зависимости проектов... -&amp;gt; Порядок построения''. Настраиваем выходные каталоги, промежуточные каталоги и выходные каталог для библиотек импорта по своему вкусу, у меня так (на примере ''BugTrap'', используется структура каталогов, упомянутая в начале статьи):&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_4.jpg|512px]]  [[Image:Ss_5.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Далее необходимо настроить пути к заголовочным файлам и библиотекам импорта внешних библиотек. Ниже пойдёт таблица проектов (в порядке построения) с необходимыми для них библиотеками из директории ''xr_src\SDK'', пути настраиваются здесь: &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_6.jpg|512px]]  [[Файл:Ss_7.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{|class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Проект||Необходимые библиотеки&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCore'''||''DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCDB'''||''xrCore''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrLua'''||''xrCore, LuaBind, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrSound'''||''xrCore, Xiph libs, EAX, DX, OpenAL''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrParticles'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrNetServer'''||''xrCore, DX, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrXMLParser'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''XR_3DA'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Xiph libs, OpenAL (*.lib only)''&lt;br /&gt;
|-&lt;br /&gt;
|'''ODE'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCPU_Pipe'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGameSpy'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R2'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R1'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGame'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Loki''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_1|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=На заметку|&lt;br /&gt;
message=xrGame самая &amp;quot;массивная&amp;quot; библиотека X-Ray, на некоторых машинах её сборка может занять прилично времени.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
=== Сборка ===&lt;br /&gt;
Собираем каждый проект, как я ранее написал, отдельно, по списку порядка построения. Ниже разбираются наиболее встречающиеся проблемы. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrCore'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2061: синтаксическая ошибка: идентификатор &amp;quot;__RPC__out_xcount_part&amp;lt;/code&amp;gt;&lt;br /&gt;
Необходимо удалить файл ''rpcsal.h'' из директории ''S:\SDK\dx9sdk\dx9sdk\include''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrLua'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2883: std::terminate: объявление функции вступает в конфликт с &amp;quot;terminate&amp;quot;, присутствующем в &amp;quot;using&amp;quot;-объявлении&amp;lt;/code&amp;gt;&lt;br /&gt;
Идём в ''S:\SDK\luabind\luabind\config.hpp'', строка 31 и добавляем в имя функции ''terminate'' прочерк ,было '''terminate''', стало '''_terminate'''. &lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_2|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message=Функция '''_terminate''' существует в '''xrDebugNew!''' Не известно как это себя поведёт, лучше всё же закомментировать конструкцию '''namespace std { void terminate() }'''&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2244: throw_exception: не удается сопоставить определение функции существующему объявлению&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''xrCore.h'', в строке ''14'' объявляем макрос ''BOOST_NO_EXCEPTIONS'' ('''#define BOOST_NO_EXCEPTIONS''')&lt;br /&gt;
&amp;lt;code&amp;gt;error C2668: boost::addressof: неоднозначный вызов перегруженной функции&amp;lt;/code&amp;gt;&lt;br /&gt;
Лезем в ''S:\SDK\boost_1_30_0\function\function_template.hpp'', в строке ''472'' перед '''addressof''' дописываем '''boost::'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrGame'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;_operator::_edge_value_type CProblemSolver&amp;lt;_operator_condition,_condition_state,_operator,_condition_evaluator,_operator_id_type,_reverse_search,_operator_ptr,_condition_evaluator_ptr&amp;gt;::estimate_edge_weight_impl(const _condition_state &amp;amp;) const&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\problem_solver.h'', строка ''90''. Заменить этот кусок кода:&lt;br /&gt;
[[Файл:Ss_8.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
На этот: &lt;br /&gt;
[[Файл:Ss_9.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
И где-нибудь вне класса объявите структуру ''Bool2Type'': &lt;br /&gt;
[[Файл:Ss_10.jpg|Структура Bool2Type|frame|left|Структура Bool2Type]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2275: Pars: недопустимое использование этого типа в качестве выражения&amp;lt;/code&amp;gt;&lt;br /&gt;
Здесь придётся вносить правки в несколько файлов, для начала лезем в ''S:\xr_3da\xrGame\PHMovementDynamicActivate.cpp'' и везде после '''Pars''' вместо точки ставим двойное двоеточие '''::''', также делаем и в ''xrGame\physics_game.cpp''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;luabind::detail::class_rep *luabind::detail::get_class_rep(lua_State *,void (__cdecl *)(T))&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\SDK\luabind\luabind\detail\class_cache.hpp'', строка ''78'', добавляем символ '''*''' после буквы '''T''':&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_11.jpg|Правка LuaBind|frame|left|Правка LuaBind]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2780: luabind::class_&amp;lt;T&amp;gt; &amp;amp;luabind::class_&amp;lt;T&amp;gt;::def(luabind::detail::operator_&amp;lt;Derived&amp;gt;): требует аргументов: 1, имеется: 2&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\game_cl_base_script.cpp'', строка ''17'', дописываем перед '''SZoneMapEntityData''' ключевое слово '''const''': &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_12.jpg|Правка xrGame|frame|left|Правка xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
== Congratulations! ==&lt;br /&gt;
Ну вот и всё, осталось только скопировать, если его там нет, ''fsgame.ltx'' в директорию с вашими бинам и создать (*.cmd) файл для запуска, ну или для продвинутых написать свой лаунчер (например написать свою ''xrLauncher.dll''). Приятных экспериментов!&lt;br /&gt;
== Послесловие ==&lt;br /&gt;
В скором времени появятся другие статьи по движку ST или по программированию, так или иначе связанным с ST, возможно появится статья по сборке X-Ray SDK, если Вам конечна понравилась эта статья.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Если Вами в статье была найдена какая-то ошибка или неточность, прошу сообщить мне. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Просьба при внесении правок оставлять свою подпись.'''&lt;br /&gt;
== Благодарности ==&lt;br /&gt;
Я выражаю искрении благодарности следующим людям: '''K.D.''', '''HikeR''', '''Tron''' и всем остальным кто помогал в сборке движка. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ну и огромное спасибо '''GSC Game World''' за замечательный проект ST и за отсутствие гонений из-за использования исходных кодов движка :-).&lt;br /&gt;
== Автор ==&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/slava_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;11.07.2014&amp;lt;/u&amp;gt;. &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Участник:KIRAY|KIRAY]] ([[Обсуждение участника:KIRAY|обсуждение]]) 11:07, 11 июля 2014 (MSK)&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray</id>
		<title>Сборка движка X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray"/>
				<updated>2015-08-26T12:07:09Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: /* Предисловие */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Руководства]]&lt;br /&gt;
== Предисловие ==&lt;br /&gt;
Сразу хочется упомянуть о том, что я не программист, всё что будет изложено ниже не может считаться верным решением встречающихся при сборке X-Ray проблем. Ну что ж, хватит лирики, приступим-с...&lt;br /&gt;
&lt;br /&gt;
== На кого рассчитана данная статья? ==&lt;br /&gt;
Прежде всего она рассчитана на нубов, подобных мне, которые не могут собрать движок, но хотят вносить в него какие-то правки, ну или хотя бы хотят пытаться вносить правки. Ну это вовсе не означает что Вы являетесь &amp;quot;полным нулём&amp;quot;, предполагается что читатель хотя бы минимальски знаком с ЯП C++ и имеет хоть какой-то опыт работы в Visual Studio. Программистам с опытом этот туториал покажется очень смешным и глупым, и я бы советовал им пройти мимо, дабы они здесь ничего нового не найдут.&lt;br /&gt;
== Что необходимо для сборки? ==&lt;br /&gt;
* Первое, и самое главное. Наличие хоть капли мозга и более-менее прямых рук.&lt;br /&gt;
* Microsoft Visual Studio 2005 или 2008 или 2010 (&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;'''НЕ'''&amp;lt;/span&amp;gt; Express Edition)&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_0|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message='''Данный туториал рассчитан на VS 2010! При сборке на других, указанных выше студиях могут отсутствовать некоторые проблемы, разобранные в данной статье, и могут появиться другие, которые, возможно, не будут рассмотрены в данной статье!'''&lt;br /&gt;
}} &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
* S.T.A.L.K.E.R. Shadow of Cherbobyl 1.0006&lt;br /&gt;
== Сборка ==&lt;br /&gt;
=== Заранее хочется оговориться о структуре каталогов ===&lt;br /&gt;
* ''XRay'' -- корневой каталог движка&lt;br /&gt;
** ''xr_build'' -- Выходной каталог, здесь находятся распакованные ресурсы игры&lt;br /&gt;
** ''xr_src'' -- Каталог с исходными кодами движка&lt;br /&gt;
** ''dev-scripts'' -- Различные вспомогательные скрипты&lt;br /&gt;
=== Загрузка исходного кода движка и подготовительные работы ===&lt;br /&gt;
Скачиваем основной архив с исходниками: [https://bitbucket.org/stalker/x-ray/downloads/XRay.rar]&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Пароль:''' ljlLHhklknlked&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Скачиваем архив с необходимыми для сборки SDKs и компонентами: [https://bitbucket.org/stalker/x-ray/downloads/src_components_for_xray.rar]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Распаковываем содержимое архивов ''XRay.rar'' и ''src_components_for_xray.rar'' в директорию ''XRay\xr_src'' &amp;lt;br/&amp;gt;&lt;br /&gt;
В папке ''dev-scripts'' создаем два (*.cmd) файла - ''mountDisks.cmd'' и ''unmountDisks.cmd'' такого содержания:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
''mountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: [Ваш путь до папки XRay]:\XRay\xr_build&lt;br /&gt;
@subst S: [Ваш путь до папки XRay]:\XRay\xr_src&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
''unmountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: /D&lt;br /&gt;
@subst S: /D&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Запускаем ''mountDisks.cmd'', должны появиться два виртуальных диска: ''X'' и ''S''. ''X'' -выходной каталог, ''S'' - каталог исходников.&lt;br /&gt;
[[Файл:Ss_0.jpg|Виртуальные диски|frame|left|Виртуальные диски]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Подготовительный этап закончен. Приступаем к настройке проектов.&lt;br /&gt;
=== Настройка проектов ===&lt;br /&gt;
Запускаем Visual Studio, на стартовой странице выбираем ''Открыть проект...'' или ''Файл -&amp;gt; Открыть -&amp;gt; Решение или проект...'' В появившемся окне выбираем ''S:\xr_3da\xr_3da.sln''.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_1.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Появится окно мастера преобразования Visual Studio, жмём кнопку 'Готово' и ждём пока все проекты конвертируются в формат VS10 и пройдёт синтаксический анализ проектов.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_2.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
После того как всё сконвертировалось, первым делом открываем  Диспетчер конфигураций (''ПКМ по решению -&amp;gt; Свойства -&amp;gt; Свойства конфигурации'') и выставляем решению активную конфигурацию ''Mixed'' (на чистом ''Debug'' ужасно падает производительность), а для сторонних библиотек (''BugTrap'', ''OpenAL'', ''minizip'', ''zlib'') ставим ''Release''.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_3.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Ну а теперь самое муторное, это настройка собственно проектов. Каждый проект придется настраивать отдельно, собирать так же советую отдельно (''ПКМ по проекту -&amp;gt; Только проект -&amp;gt; Построить только [имя проекта]''). Порядок построения можно узнать так: ''ПКМ по любому проекту -&amp;gt; Зависимости проектов... -&amp;gt; Порядок построения''. Настраиваем выходные каталоги, промежуточные каталоги и выходные каталог для библиотек импорта по своему вкусу, у меня так (на примере ''BugTrap'', используется структура каталогов, упомянутая в начале статьи):&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_4.jpg|512px]]  [[Image:Ss_5.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Далее необходимо настроить пути к заголовочным файлам и библиотекам импорта внешних библиотек. Ниже пойдёт таблица проектов (в порядке построения) с необходимыми для них библиотеками из директории ''xr_src\SDK'', пути настраиваются здесь: &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_6.jpg|512px]]  [[Файл:Ss_7.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{|class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Проект||Необходимые библиотеки&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCore'''||''DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCDB'''||''xrCore''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrLua'''||''xrCore, LuaBind, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrSound'''||''xrCore, Xiph libs, EAX, DX, OpenAL''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrParticles'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrNetServer'''||''xrCore, DX, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrXMLParser'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''XR_3DA'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Xiph libs, OpenAL (*.lib only)''&lt;br /&gt;
|-&lt;br /&gt;
|'''ODE'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCPU_Pipe'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGameSpy'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R2'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R1'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGame'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Loki''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_1|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=На заметку|&lt;br /&gt;
message=xrGame самая &amp;quot;массивная&amp;quot; библиотека X-Ray, на некоторых машинах её сборка может занять прилично времени.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
=== Сборка ===&lt;br /&gt;
Собираем каждый проект, как я ранее написал, отдельно, по списку порядка построения. Ниже разбираются наиболее встречающиеся проблемы. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrCore'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2061: синтаксическая ошибка: идентификатор &amp;quot;__RPC__out_xcount_part&amp;lt;/code&amp;gt;&lt;br /&gt;
Необходимо удалить файл ''rpcsal.h'' из директории ''S:\SDK\dx9sdk\dx9sdk\include''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrLua'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2883: std::terminate: объявление функции вступает в конфликт с &amp;quot;terminate&amp;quot;, присутствующем в &amp;quot;using&amp;quot;-объявлении&amp;lt;/code&amp;gt;&lt;br /&gt;
Идём в ''S:\SDK\luabind\luabind\config.hpp'', строка 31 и добавляем в имя функции ''terminate'' прочерк ,было '''terminate''', стало '''_terminate'''. &lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_2|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message=Функция '''_terminate''' существует в '''xrDebugNew!''' Не известно как это себя поведёт, лучше всё же закомментировать конструкцию '''namespace std { void terminate() }'''&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2244: throw_exception: не удается сопоставить определение функции существующему объявлению&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''xrCore.h'', в строке ''14'' объявляем макрос ''BOOST_NO_EXCEPTIONS'' ('''#define BOOST_NO_EXCEPTIONS''')&lt;br /&gt;
&amp;lt;code&amp;gt;error C2668: boost::addressof: неоднозначный вызов перегруженной функции&amp;lt;/code&amp;gt;&lt;br /&gt;
Лезем в ''S:\SDK\boost_1_30_0\function\function_template.hpp'', в строке ''472'' перед '''addressof''' дописываем '''boost::'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrGame'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;_operator::_edge_value_type CProblemSolver&amp;lt;_operator_condition,_condition_state,_operator,_condition_evaluator,_operator_id_type,_reverse_search,_operator_ptr,_condition_evaluator_ptr&amp;gt;::estimate_edge_weight_impl(const _condition_state &amp;amp;) const&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\problem_solver.h'', строка ''90''. Заменить этот кусок кода:&lt;br /&gt;
[[Файл:Ss_8.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
На этот: &lt;br /&gt;
[[Файл:Ss_9.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
И где-нибудь вне класса объявите структуру ''Bool2Type'': &lt;br /&gt;
[[Файл:Ss_10.jpg|Структура Bool2Type|frame|left|Структура Bool2Type]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2275: Pars: недопустимое использование этого типа в качестве выражения&amp;lt;/code&amp;gt;&lt;br /&gt;
Здесь придётся вносить правки в несколько файлов, для начала лезем в ''S:\xr_3da\xrGame\PHMovementDynamicActivate.cpp'' и везде после '''Pars''' вместо точки ставим двойное двоеточие '''::''', также делаем и в ''xrGame\physics_game.cpp''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;luabind::detail::class_rep *luabind::detail::get_class_rep(lua_State *,void (__cdecl *)(T))&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\SDK\luabind\luabind\detail\class_cache.hpp'', строка ''78'', добавляем символ '''*''' после буквы '''T''':&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_11.jpg|Правка LuaBind|frame|left|Правка LuaBind]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2780: luabind::class_&amp;lt;T&amp;gt; &amp;amp;luabind::class_&amp;lt;T&amp;gt;::def(luabind::detail::operator_&amp;lt;Derived&amp;gt;): требует аргументов: 1, имеется: 2&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\game_cl_base_script.cpp'', строка ''17'', дописываем перед '''SZoneMapEntityData''' ключевое слово '''const''': &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_12.jpg|Правка xrGame|frame|left|Правка xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
== Congratulations! ==&lt;br /&gt;
Ну вот и всё, осталось только скопировать, если его там нет, ''fsgame.ltx'' в директорию с вашими бинам и создать (*.cmd) файл для запуска, ну или для продвинутых написать свой лаунчер (например написать свою ''xrLauncher.dll''). Приятных экспериментов!&lt;br /&gt;
== Послесловие ==&lt;br /&gt;
В скором времени появятся другие статьи по движку ST или по программированию, так или иначе связанным с ST, возможно появится статья по сборке X-Ray SDK, если Вам конечна понравилась эта статья.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Если Вами в статье была найдена какая-то ошибка или неточность, прошу сообщить мне. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Просьба при внесении правок оставлять свою подпись.'''&lt;br /&gt;
== Благодарности ==&lt;br /&gt;
Я выражаю искрении благодарности следующим людям: '''K.D.''', '''HikeR''', '''Tron''' и всем остальным кто помогал в сборке движка. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ну и огромное спасибо '''GSC Game World''' за замечательный проект ST и за отсутствие гонений из-за использования исходных кодов движка :-).&lt;br /&gt;
== Автор ==&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/slava_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;11.07.2014&amp;lt;/u&amp;gt;. &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Участник:KIRAY|KIRAY]] ([[Обсуждение участника:KIRAY|обсуждение]]) 11:07, 11 июля 2014 (MSK)&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray</id>
		<title>Сборка движка X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray"/>
				<updated>2015-08-26T12:04:26Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: /* Предисловие */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Руководства]]&lt;br /&gt;
== Предисловие ==&lt;br /&gt;
Сразу хочется упомянуть о том, что я не программист и до программиста мне еще очень-очень далеко, всё что будет изложено ниже не является правильным решением проблемы сборки движка X-Ray и некоторые решения могут быть идиотскими, использование которых не рекомендуется. И я бы попросил любителей критики сильно не пинать, это моя первая статья и опыта написания таковых у меня нет. Ну что ж, хватит лирики, приступим-с...&lt;br /&gt;
&lt;br /&gt;
== На кого рассчитана данная статья? ==&lt;br /&gt;
Прежде всего она рассчитана на нубов, подобных мне, которые не могут собрать движок, но хотят вносить в него какие-то правки, ну или хотя бы хотят пытаться вносить правки. Ну это вовсе не означает что Вы являетесь &amp;quot;полным нулём&amp;quot;, предполагается что читатель хотя бы минимальски знаком с ЯП C++ и имеет хоть какой-то опыт работы в Visual Studio. Программистам с опытом этот туториал покажется очень смешным и глупым, и я бы советовал им пройти мимо, дабы они здесь ничего нового не найдут.&lt;br /&gt;
== Что необходимо для сборки? ==&lt;br /&gt;
* Первое, и самое главное. Наличие хоть капли мозга и более-менее прямых рук.&lt;br /&gt;
* Microsoft Visual Studio 2005 или 2008 или 2010 (&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;'''НЕ'''&amp;lt;/span&amp;gt; Express Edition)&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_0|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message='''Данный туториал рассчитан на VS 2010! При сборке на других, указанных выше студиях могут отсутствовать некоторые проблемы, разобранные в данной статье, и могут появиться другие, которые, возможно, не будут рассмотрены в данной статье!'''&lt;br /&gt;
}} &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
* S.T.A.L.K.E.R. Shadow of Cherbobyl 1.0006&lt;br /&gt;
== Сборка ==&lt;br /&gt;
=== Заранее хочется оговориться о структуре каталогов ===&lt;br /&gt;
* ''XRay'' -- корневой каталог движка&lt;br /&gt;
** ''xr_build'' -- Выходной каталог, здесь находятся распакованные ресурсы игры&lt;br /&gt;
** ''xr_src'' -- Каталог с исходными кодами движка&lt;br /&gt;
** ''dev-scripts'' -- Различные вспомогательные скрипты&lt;br /&gt;
=== Загрузка исходного кода движка и подготовительные работы ===&lt;br /&gt;
Скачиваем основной архив с исходниками: [https://bitbucket.org/stalker/x-ray/downloads/XRay.rar]&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Пароль:''' ljlLHhklknlked&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Скачиваем архив с необходимыми для сборки SDKs и компонентами: [https://bitbucket.org/stalker/x-ray/downloads/src_components_for_xray.rar]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Распаковываем содержимое архивов ''XRay.rar'' и ''src_components_for_xray.rar'' в директорию ''XRay\xr_src'' &amp;lt;br/&amp;gt;&lt;br /&gt;
В папке ''dev-scripts'' создаем два (*.cmd) файла - ''mountDisks.cmd'' и ''unmountDisks.cmd'' такого содержания:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
''mountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: [Ваш путь до папки XRay]:\XRay\xr_build&lt;br /&gt;
@subst S: [Ваш путь до папки XRay]:\XRay\xr_src&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
''unmountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: /D&lt;br /&gt;
@subst S: /D&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Запускаем ''mountDisks.cmd'', должны появиться два виртуальных диска: ''X'' и ''S''. ''X'' -выходной каталог, ''S'' - каталог исходников.&lt;br /&gt;
[[Файл:Ss_0.jpg|Виртуальные диски|frame|left|Виртуальные диски]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Подготовительный этап закончен. Приступаем к настройке проектов.&lt;br /&gt;
=== Настройка проектов ===&lt;br /&gt;
Запускаем Visual Studio, на стартовой странице выбираем ''Открыть проект...'' или ''Файл -&amp;gt; Открыть -&amp;gt; Решение или проект...'' В появившемся окне выбираем ''S:\xr_3da\xr_3da.sln''.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_1.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Появится окно мастера преобразования Visual Studio, жмём кнопку 'Готово' и ждём пока все проекты конвертируются в формат VS10 и пройдёт синтаксический анализ проектов.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_2.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
После того как всё сконвертировалось, первым делом открываем  Диспетчер конфигураций (''ПКМ по решению -&amp;gt; Свойства -&amp;gt; Свойства конфигурации'') и выставляем решению активную конфигурацию ''Mixed'' (на чистом ''Debug'' ужасно падает производительность), а для сторонних библиотек (''BugTrap'', ''OpenAL'', ''minizip'', ''zlib'') ставим ''Release''.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_3.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Ну а теперь самое муторное, это настройка собственно проектов. Каждый проект придется настраивать отдельно, собирать так же советую отдельно (''ПКМ по проекту -&amp;gt; Только проект -&amp;gt; Построить только [имя проекта]''). Порядок построения можно узнать так: ''ПКМ по любому проекту -&amp;gt; Зависимости проектов... -&amp;gt; Порядок построения''. Настраиваем выходные каталоги, промежуточные каталоги и выходные каталог для библиотек импорта по своему вкусу, у меня так (на примере ''BugTrap'', используется структура каталогов, упомянутая в начале статьи):&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_4.jpg|512px]]  [[Image:Ss_5.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Далее необходимо настроить пути к заголовочным файлам и библиотекам импорта внешних библиотек. Ниже пойдёт таблица проектов (в порядке построения) с необходимыми для них библиотеками из директории ''xr_src\SDK'', пути настраиваются здесь: &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_6.jpg|512px]]  [[Файл:Ss_7.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{|class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Проект||Необходимые библиотеки&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCore'''||''DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCDB'''||''xrCore''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrLua'''||''xrCore, LuaBind, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrSound'''||''xrCore, Xiph libs, EAX, DX, OpenAL''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrParticles'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrNetServer'''||''xrCore, DX, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrXMLParser'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''XR_3DA'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Xiph libs, OpenAL (*.lib only)''&lt;br /&gt;
|-&lt;br /&gt;
|'''ODE'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCPU_Pipe'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGameSpy'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R2'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R1'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGame'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Loki''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_1|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=На заметку|&lt;br /&gt;
message=xrGame самая &amp;quot;массивная&amp;quot; библиотека X-Ray, на некоторых машинах её сборка может занять прилично времени.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
=== Сборка ===&lt;br /&gt;
Собираем каждый проект, как я ранее написал, отдельно, по списку порядка построения. Ниже разбираются наиболее встречающиеся проблемы. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrCore'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2061: синтаксическая ошибка: идентификатор &amp;quot;__RPC__out_xcount_part&amp;lt;/code&amp;gt;&lt;br /&gt;
Необходимо удалить файл ''rpcsal.h'' из директории ''S:\SDK\dx9sdk\dx9sdk\include''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrLua'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2883: std::terminate: объявление функции вступает в конфликт с &amp;quot;terminate&amp;quot;, присутствующем в &amp;quot;using&amp;quot;-объявлении&amp;lt;/code&amp;gt;&lt;br /&gt;
Идём в ''S:\SDK\luabind\luabind\config.hpp'', строка 31 и добавляем в имя функции ''terminate'' прочерк ,было '''terminate''', стало '''_terminate'''. &lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_2|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message=Функция '''_terminate''' существует в '''xrDebugNew!''' Не известно как это себя поведёт, лучше всё же закомментировать конструкцию '''namespace std { void terminate() }'''&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2244: throw_exception: не удается сопоставить определение функции существующему объявлению&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''xrCore.h'', в строке ''14'' объявляем макрос ''BOOST_NO_EXCEPTIONS'' ('''#define BOOST_NO_EXCEPTIONS''')&lt;br /&gt;
&amp;lt;code&amp;gt;error C2668: boost::addressof: неоднозначный вызов перегруженной функции&amp;lt;/code&amp;gt;&lt;br /&gt;
Лезем в ''S:\SDK\boost_1_30_0\function\function_template.hpp'', в строке ''472'' перед '''addressof''' дописываем '''boost::'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrGame'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;_operator::_edge_value_type CProblemSolver&amp;lt;_operator_condition,_condition_state,_operator,_condition_evaluator,_operator_id_type,_reverse_search,_operator_ptr,_condition_evaluator_ptr&amp;gt;::estimate_edge_weight_impl(const _condition_state &amp;amp;) const&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\problem_solver.h'', строка ''90''. Заменить этот кусок кода:&lt;br /&gt;
[[Файл:Ss_8.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
На этот: &lt;br /&gt;
[[Файл:Ss_9.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
И где-нибудь вне класса объявите структуру ''Bool2Type'': &lt;br /&gt;
[[Файл:Ss_10.jpg|Структура Bool2Type|frame|left|Структура Bool2Type]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2275: Pars: недопустимое использование этого типа в качестве выражения&amp;lt;/code&amp;gt;&lt;br /&gt;
Здесь придётся вносить правки в несколько файлов, для начала лезем в ''S:\xr_3da\xrGame\PHMovementDynamicActivate.cpp'' и везде после '''Pars''' вместо точки ставим двойное двоеточие '''::''', также делаем и в ''xrGame\physics_game.cpp''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;luabind::detail::class_rep *luabind::detail::get_class_rep(lua_State *,void (__cdecl *)(T))&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\SDK\luabind\luabind\detail\class_cache.hpp'', строка ''78'', добавляем символ '''*''' после буквы '''T''':&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_11.jpg|Правка LuaBind|frame|left|Правка LuaBind]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2780: luabind::class_&amp;lt;T&amp;gt; &amp;amp;luabind::class_&amp;lt;T&amp;gt;::def(luabind::detail::operator_&amp;lt;Derived&amp;gt;): требует аргументов: 1, имеется: 2&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\game_cl_base_script.cpp'', строка ''17'', дописываем перед '''SZoneMapEntityData''' ключевое слово '''const''': &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_12.jpg|Правка xrGame|frame|left|Правка xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
== Congratulations! ==&lt;br /&gt;
Ну вот и всё, осталось только скопировать, если его там нет, ''fsgame.ltx'' в директорию с вашими бинам и создать (*.cmd) файл для запуска, ну или для продвинутых написать свой лаунчер (например написать свою ''xrLauncher.dll''). Приятных экспериментов!&lt;br /&gt;
== Послесловие ==&lt;br /&gt;
В скором времени появятся другие статьи по движку ST или по программированию, так или иначе связанным с ST, возможно появится статья по сборке X-Ray SDK, если Вам конечна понравилась эта статья.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Если Вами в статье была найдена какая-то ошибка или неточность, прошу сообщить мне. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Просьба при внесении правок оставлять свою подпись.'''&lt;br /&gt;
== Благодарности ==&lt;br /&gt;
Я выражаю искрении благодарности следующим людям: '''K.D.''', '''HikeR''', '''Tron''' и всем остальным кто помогал в сборке движка. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ну и огромное спасибо '''GSC Game World''' за замечательный проект ST и за отсутствие гонений из-за использования исходных кодов движка :-).&lt;br /&gt;
== Автор ==&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/slava_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;11.07.2014&amp;lt;/u&amp;gt;. &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Участник:KIRAY|KIRAY]] ([[Обсуждение участника:KIRAY|обсуждение]]) 11:07, 11 июля 2014 (MSK)&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray</id>
		<title>Сборка движка X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray"/>
				<updated>2015-08-26T12:03:15Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: /* Предисловие */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Руководства]]&lt;br /&gt;
== Предисловие ==&lt;br /&gt;
Сразу хочется сказать то, что я не программист и до программиста мне еще очень-очень далеко, всё что будет изложено ниже не является правильным решением проблемы сборки движка X-Ray и некоторые решения могут быть идиотскими, использование которых не рекомендуется. И я бы попросил любителей критики сильно не пинать, это моя первая статья и опыта написания таковых у меня нет. Ну что ж, хватит лирики, приступим-с...&lt;br /&gt;
&lt;br /&gt;
== На кого рассчитана данная статья? ==&lt;br /&gt;
Прежде всего она рассчитана на нубов, подобных мне, которые не могут собрать движок, но хотят вносить в него какие-то правки, ну или хотя бы хотят пытаться вносить правки. Ну это вовсе не означает что Вы являетесь &amp;quot;полным нулём&amp;quot;, предполагается что читатель хотя бы минимальски знаком с ЯП C++ и имеет хоть какой-то опыт работы в Visual Studio. Программистам с опытом этот туториал покажется очень смешным и глупым, и я бы советовал им пройти мимо, дабы они здесь ничего нового не найдут.&lt;br /&gt;
== Что необходимо для сборки? ==&lt;br /&gt;
* Первое, и самое главное. Наличие хоть капли мозга и более-менее прямых рук.&lt;br /&gt;
* Microsoft Visual Studio 2005 или 2008 или 2010 (&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;'''НЕ'''&amp;lt;/span&amp;gt; Express Edition)&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_0|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message='''Данный туториал рассчитан на VS 2010! При сборке на других, указанных выше студиях могут отсутствовать некоторые проблемы, разобранные в данной статье, и могут появиться другие, которые, возможно, не будут рассмотрены в данной статье!'''&lt;br /&gt;
}} &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
* S.T.A.L.K.E.R. Shadow of Cherbobyl 1.0006&lt;br /&gt;
== Сборка ==&lt;br /&gt;
=== Заранее хочется оговориться о структуре каталогов ===&lt;br /&gt;
* ''XRay'' -- корневой каталог движка&lt;br /&gt;
** ''xr_build'' -- Выходной каталог, здесь находятся распакованные ресурсы игры&lt;br /&gt;
** ''xr_src'' -- Каталог с исходными кодами движка&lt;br /&gt;
** ''dev-scripts'' -- Различные вспомогательные скрипты&lt;br /&gt;
=== Загрузка исходного кода движка и подготовительные работы ===&lt;br /&gt;
Скачиваем основной архив с исходниками: [https://bitbucket.org/stalker/x-ray/downloads/XRay.rar]&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Пароль:''' ljlLHhklknlked&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Скачиваем архив с необходимыми для сборки SDKs и компонентами: [https://bitbucket.org/stalker/x-ray/downloads/src_components_for_xray.rar]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Распаковываем содержимое архивов ''XRay.rar'' и ''src_components_for_xray.rar'' в директорию ''XRay\xr_src'' &amp;lt;br/&amp;gt;&lt;br /&gt;
В папке ''dev-scripts'' создаем два (*.cmd) файла - ''mountDisks.cmd'' и ''unmountDisks.cmd'' такого содержания:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
''mountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: [Ваш путь до папки XRay]:\XRay\xr_build&lt;br /&gt;
@subst S: [Ваш путь до папки XRay]:\XRay\xr_src&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
''unmountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: /D&lt;br /&gt;
@subst S: /D&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Запускаем ''mountDisks.cmd'', должны появиться два виртуальных диска: ''X'' и ''S''. ''X'' -выходной каталог, ''S'' - каталог исходников.&lt;br /&gt;
[[Файл:Ss_0.jpg|Виртуальные диски|frame|left|Виртуальные диски]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Подготовительный этап закончен. Приступаем к настройке проектов.&lt;br /&gt;
=== Настройка проектов ===&lt;br /&gt;
Запускаем Visual Studio, на стартовой странице выбираем ''Открыть проект...'' или ''Файл -&amp;gt; Открыть -&amp;gt; Решение или проект...'' В появившемся окне выбираем ''S:\xr_3da\xr_3da.sln''.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_1.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Появится окно мастера преобразования Visual Studio, жмём кнопку 'Готово' и ждём пока все проекты конвертируются в формат VS10 и пройдёт синтаксический анализ проектов.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_2.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
После того как всё сконвертировалось, первым делом открываем  Диспетчер конфигураций (''ПКМ по решению -&amp;gt; Свойства -&amp;gt; Свойства конфигурации'') и выставляем решению активную конфигурацию ''Mixed'' (на чистом ''Debug'' ужасно падает производительность), а для сторонних библиотек (''BugTrap'', ''OpenAL'', ''minizip'', ''zlib'') ставим ''Release''.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_3.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Ну а теперь самое муторное, это настройка собственно проектов. Каждый проект придется настраивать отдельно, собирать так же советую отдельно (''ПКМ по проекту -&amp;gt; Только проект -&amp;gt; Построить только [имя проекта]''). Порядок построения можно узнать так: ''ПКМ по любому проекту -&amp;gt; Зависимости проектов... -&amp;gt; Порядок построения''. Настраиваем выходные каталоги, промежуточные каталоги и выходные каталог для библиотек импорта по своему вкусу, у меня так (на примере ''BugTrap'', используется структура каталогов, упомянутая в начале статьи):&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_4.jpg|512px]]  [[Image:Ss_5.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Далее необходимо настроить пути к заголовочным файлам и библиотекам импорта внешних библиотек. Ниже пойдёт таблица проектов (в порядке построения) с необходимыми для них библиотеками из директории ''xr_src\SDK'', пути настраиваются здесь: &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_6.jpg|512px]]  [[Файл:Ss_7.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{|class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Проект||Необходимые библиотеки&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCore'''||''DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCDB'''||''xrCore''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrLua'''||''xrCore, LuaBind, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrSound'''||''xrCore, Xiph libs, EAX, DX, OpenAL''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrParticles'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrNetServer'''||''xrCore, DX, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrXMLParser'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''XR_3DA'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Xiph libs, OpenAL (*.lib only)''&lt;br /&gt;
|-&lt;br /&gt;
|'''ODE'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCPU_Pipe'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGameSpy'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R2'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R1'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGame'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Loki''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_1|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=На заметку|&lt;br /&gt;
message=xrGame самая &amp;quot;массивная&amp;quot; библиотека X-Ray, на некоторых машинах её сборка может занять прилично времени.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
=== Сборка ===&lt;br /&gt;
Собираем каждый проект, как я ранее написал, отдельно, по списку порядка построения. Ниже разбираются наиболее встречающиеся проблемы. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrCore'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2061: синтаксическая ошибка: идентификатор &amp;quot;__RPC__out_xcount_part&amp;lt;/code&amp;gt;&lt;br /&gt;
Необходимо удалить файл ''rpcsal.h'' из директории ''S:\SDK\dx9sdk\dx9sdk\include''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrLua'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2883: std::terminate: объявление функции вступает в конфликт с &amp;quot;terminate&amp;quot;, присутствующем в &amp;quot;using&amp;quot;-объявлении&amp;lt;/code&amp;gt;&lt;br /&gt;
Идём в ''S:\SDK\luabind\luabind\config.hpp'', строка 31 и добавляем в имя функции ''terminate'' прочерк ,было '''terminate''', стало '''_terminate'''. &lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_2|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message=Функция '''_terminate''' существует в '''xrDebugNew!''' Не известно как это себя поведёт, лучше всё же закомментировать конструкцию '''namespace std { void terminate() }'''&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2244: throw_exception: не удается сопоставить определение функции существующему объявлению&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''xrCore.h'', в строке ''14'' объявляем макрос ''BOOST_NO_EXCEPTIONS'' ('''#define BOOST_NO_EXCEPTIONS''')&lt;br /&gt;
&amp;lt;code&amp;gt;error C2668: boost::addressof: неоднозначный вызов перегруженной функции&amp;lt;/code&amp;gt;&lt;br /&gt;
Лезем в ''S:\SDK\boost_1_30_0\function\function_template.hpp'', в строке ''472'' перед '''addressof''' дописываем '''boost::'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrGame'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;_operator::_edge_value_type CProblemSolver&amp;lt;_operator_condition,_condition_state,_operator,_condition_evaluator,_operator_id_type,_reverse_search,_operator_ptr,_condition_evaluator_ptr&amp;gt;::estimate_edge_weight_impl(const _condition_state &amp;amp;) const&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\problem_solver.h'', строка ''90''. Заменить этот кусок кода:&lt;br /&gt;
[[Файл:Ss_8.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
На этот: &lt;br /&gt;
[[Файл:Ss_9.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
И где-нибудь вне класса объявите структуру ''Bool2Type'': &lt;br /&gt;
[[Файл:Ss_10.jpg|Структура Bool2Type|frame|left|Структура Bool2Type]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2275: Pars: недопустимое использование этого типа в качестве выражения&amp;lt;/code&amp;gt;&lt;br /&gt;
Здесь придётся вносить правки в несколько файлов, для начала лезем в ''S:\xr_3da\xrGame\PHMovementDynamicActivate.cpp'' и везде после '''Pars''' вместо точки ставим двойное двоеточие '''::''', также делаем и в ''xrGame\physics_game.cpp''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;luabind::detail::class_rep *luabind::detail::get_class_rep(lua_State *,void (__cdecl *)(T))&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\SDK\luabind\luabind\detail\class_cache.hpp'', строка ''78'', добавляем символ '''*''' после буквы '''T''':&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_11.jpg|Правка LuaBind|frame|left|Правка LuaBind]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2780: luabind::class_&amp;lt;T&amp;gt; &amp;amp;luabind::class_&amp;lt;T&amp;gt;::def(luabind::detail::operator_&amp;lt;Derived&amp;gt;): требует аргументов: 1, имеется: 2&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\game_cl_base_script.cpp'', строка ''17'', дописываем перед '''SZoneMapEntityData''' ключевое слово '''const''': &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_12.jpg|Правка xrGame|frame|left|Правка xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
== Congratulations! ==&lt;br /&gt;
Ну вот и всё, осталось только скопировать, если его там нет, ''fsgame.ltx'' в директорию с вашими бинам и создать (*.cmd) файл для запуска, ну или для продвинутых написать свой лаунчер (например написать свою ''xrLauncher.dll''). Приятных экспериментов!&lt;br /&gt;
== Послесловие ==&lt;br /&gt;
В скором времени появятся другие статьи по движку ST или по программированию, так или иначе связанным с ST, возможно появится статья по сборке X-Ray SDK, если Вам конечна понравилась эта статья.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Если Вами в статье была найдена какая-то ошибка или неточность, прошу сообщить мне. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Просьба при внесении правок оставлять свою подпись.'''&lt;br /&gt;
== Благодарности ==&lt;br /&gt;
Я выражаю искрении благодарности следующим людям: '''K.D.''', '''HikeR''', '''Tron''' и всем остальным кто помогал в сборке движка. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ну и огромное спасибо '''GSC Game World''' за замечательный проект ST и за отсутствие гонений из-за использования исходных кодов движка :-).&lt;br /&gt;
== Автор ==&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/slava_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;11.07.2014&amp;lt;/u&amp;gt;. &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Участник:KIRAY|KIRAY]] ([[Обсуждение участника:KIRAY|обсуждение]]) 11:07, 11 июля 2014 (MSK)&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray</id>
		<title>Сборка движка X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray"/>
				<updated>2015-04-10T04:06:02Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Руководства]]&lt;br /&gt;
== Предисловие ==&lt;br /&gt;
Сразу хочется сказать то, что я не программист (обучающийся СОУ) и до программиста мне еще очень-очень далеко, всё что будет изложено ниже не является правильным решением проблемы сборки движка X-Ray и некоторые решения могут быть идиотскими, использование которых не рекомендуется. И я бы попросил любителей критики сильно не пинать, это моя первая статья и опыта написания таковых у меня нет. Ну что ж, хватит лирики, приступим-с...&lt;br /&gt;
== На кого рассчитана данная статья? ==&lt;br /&gt;
Прежде всего она рассчитана на нубов, подобных мне, которые не могут собрать движок, но хотят вносить в него какие-то правки, ну или хотя бы хотят пытаться вносить правки. Ну это вовсе не означает что Вы являетесь &amp;quot;полным нулём&amp;quot;, предполагается что читатель хотя бы минимальски знаком с ЯП C++ и имеет хоть какой-то опыт работы в Visual Studio. Программистам с опытом этот туториал покажется очень смешным и глупым, и я бы советовал им пройти мимо, дабы они здесь ничего нового не найдут.&lt;br /&gt;
== Что необходимо для сборки? ==&lt;br /&gt;
* Первое, и самое главное. Наличие хоть капли мозга и более-менее прямых рук.&lt;br /&gt;
* Microsoft Visual Studio 2005 или 2008 или 2010 (&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;'''НЕ'''&amp;lt;/span&amp;gt; Express Edition)&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_0|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message='''Данный туториал рассчитан на VS 2010! При сборке на других, указанных выше студиях могут отсутствовать некоторые проблемы, разобранные в данной статье, и могут появиться другие, которые, возможно, не будут рассмотрены в данной статье!'''&lt;br /&gt;
}} &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
* S.T.A.L.K.E.R. Shadow of Cherbobyl 1.0006&lt;br /&gt;
== Сборка ==&lt;br /&gt;
=== Заранее хочется оговориться о структуре каталогов ===&lt;br /&gt;
* ''XRay'' -- корневой каталог движка&lt;br /&gt;
** ''xr_build'' -- Выходной каталог, здесь находятся распакованные ресурсы игры&lt;br /&gt;
** ''xr_src'' -- Каталог с исходными кодами движка&lt;br /&gt;
** ''dev-scripts'' -- Различные вспомогательные скрипты&lt;br /&gt;
=== Загрузка исходного кода движка и подготовительные работы ===&lt;br /&gt;
Скачиваем основной архив с исходниками: [https://bitbucket.org/stalker/x-ray/downloads/XRay.rar]&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Пароль:''' ljlLHhklknlked&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Скачиваем архив с необходимыми для сборки SDKs и компонентами: [https://bitbucket.org/stalker/x-ray/downloads/src_components_for_xray.rar]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Распаковываем содержимое архивов ''XRay.rar'' и ''src_components_for_xray.rar'' в директорию ''XRay\xr_src'' &amp;lt;br/&amp;gt;&lt;br /&gt;
В папке ''dev-scripts'' создаем два (*.cmd) файла - ''mountDisks.cmd'' и ''unmountDisks.cmd'' такого содержания:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
''mountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: [Ваш путь до папки XRay]:\XRay\xr_build&lt;br /&gt;
@subst S: [Ваш путь до папки XRay]:\XRay\xr_src&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
''unmountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: /D&lt;br /&gt;
@subst S: /D&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Запускаем ''mountDisks.cmd'', должны появиться два виртуальных диска: ''X'' и ''S''. ''X'' -выходной каталог, ''S'' - каталог исходников.&lt;br /&gt;
[[Файл:Ss_0.jpg|Виртуальные диски|frame|left|Виртуальные диски]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Подготовительный этап закончен. Приступаем к настройке проектов.&lt;br /&gt;
=== Настройка проектов ===&lt;br /&gt;
Запускаем Visual Studio, на стартовой странице выбираем ''Открыть проект...'' или ''Файл -&amp;gt; Открыть -&amp;gt; Решение или проект...'' В появившемся окне выбираем ''S:\xr_3da\xr_3da.sln''.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_1.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Появится окно мастера преобразования Visual Studio, жмём кнопку 'Готово' и ждём пока все проекты конвертируются в формат VS10 и пройдёт синтаксический анализ проектов.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_2.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
После того как всё сконвертировалось, первым делом открываем  Диспетчер конфигураций (''ПКМ по решению -&amp;gt; Свойства -&amp;gt; Свойства конфигурации'') и выставляем решению активную конфигурацию ''Mixed'' (на чистом ''Debug'' ужасно падает производительность), а для сторонних библиотек (''BugTrap'', ''OpenAL'', ''minizip'', ''zlib'') ставим ''Release''.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_3.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Ну а теперь самое муторное, это настройка собственно проектов. Каждый проект придется настраивать отдельно, собирать так же советую отдельно (''ПКМ по проекту -&amp;gt; Только проект -&amp;gt; Построить только [имя проекта]''). Порядок построения можно узнать так: ''ПКМ по любому проекту -&amp;gt; Зависимости проектов... -&amp;gt; Порядок построения''. Настраиваем выходные каталоги, промежуточные каталоги и выходные каталог для библиотек импорта по своему вкусу, у меня так (на примере ''BugTrap'', используется структура каталогов, упомянутая в начале статьи):&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_4.jpg|512px]]  [[Image:Ss_5.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Далее необходимо настроить пути к заголовочным файлам и библиотекам импорта внешних библиотек. Ниже пойдёт таблица проектов (в порядке построения) с необходимыми для них библиотеками из директории ''xr_src\SDK'', пути настраиваются здесь: &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_6.jpg|512px]]  [[Файл:Ss_7.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{|class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Проект||Необходимые библиотеки&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCore'''||''DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCDB'''||''xrCore''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrLua'''||''xrCore, LuaBind, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrSound'''||''xrCore, Xiph libs, EAX, DX, OpenAL''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrParticles'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrNetServer'''||''xrCore, DX, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrXMLParser'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''XR_3DA'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Xiph libs, OpenAL (*.lib only)''&lt;br /&gt;
|-&lt;br /&gt;
|'''ODE'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCPU_Pipe'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGameSpy'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R2'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R1'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGame'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Loki''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_1|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=На заметку|&lt;br /&gt;
message=xrGame самая &amp;quot;массивная&amp;quot; библиотека X-Ray, на некоторых машинах её сборка может занять прилично времени.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
=== Сборка ===&lt;br /&gt;
Собираем каждый проект, как я ранее написал, отдельно, по списку порядка построения. Ниже разбираются наиболее встречающиеся проблемы. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrCore'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2061: синтаксическая ошибка: идентификатор &amp;quot;__RPC__out_xcount_part&amp;lt;/code&amp;gt;&lt;br /&gt;
Необходимо удалить файл ''rpcsal.h'' из директории ''S:\SDK\dx9sdk\dx9sdk\include''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrLua'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2883: std::terminate: объявление функции вступает в конфликт с &amp;quot;terminate&amp;quot;, присутствующем в &amp;quot;using&amp;quot;-объявлении&amp;lt;/code&amp;gt;&lt;br /&gt;
Идём в ''S:\SDK\luabind\luabind\config.hpp'', строка 31 и добавляем в имя функции ''terminate'' прочерк ,было '''terminate''', стало '''_terminate'''. &lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_2|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message=Функция '''_terminate''' существует в '''xrDebugNew!''' Не известно как это себя поведёт, лучше всё же закомментировать конструкцию '''namespace std { void terminate() }'''&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2244: throw_exception: не удается сопоставить определение функции существующему объявлению&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''xrCore.h'', в строке ''14'' объявляем макрос ''BOOST_NO_EXCEPTIONS'' ('''#define BOOST_NO_EXCEPTIONS''')&lt;br /&gt;
&amp;lt;code&amp;gt;error C2668: boost::addressof: неоднозначный вызов перегруженной функции&amp;lt;/code&amp;gt;&lt;br /&gt;
Лезем в ''S:\SDK\boost_1_30_0\function\function_template.hpp'', в строке ''472'' перед '''addressof''' дописываем '''boost::'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrGame'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;_operator::_edge_value_type CProblemSolver&amp;lt;_operator_condition,_condition_state,_operator,_condition_evaluator,_operator_id_type,_reverse_search,_operator_ptr,_condition_evaluator_ptr&amp;gt;::estimate_edge_weight_impl(const _condition_state &amp;amp;) const&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\problem_solver.h'', строка ''90''. Заменить этот кусок кода:&lt;br /&gt;
[[Файл:Ss_8.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
На этот: &lt;br /&gt;
[[Файл:Ss_9.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
И где-нибудь вне класса объявите структуру ''Bool2Type'': &lt;br /&gt;
[[Файл:Ss_10.jpg|Структура Bool2Type|frame|left|Структура Bool2Type]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2275: Pars: недопустимое использование этого типа в качестве выражения&amp;lt;/code&amp;gt;&lt;br /&gt;
Здесь придётся вносить правки в несколько файлов, для начала лезем в ''S:\xr_3da\xrGame\PHMovementDynamicActivate.cpp'' и везде после '''Pars''' вместо точки ставим двойное двоеточие '''::''', также делаем и в ''xrGame\physics_game.cpp''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;luabind::detail::class_rep *luabind::detail::get_class_rep(lua_State *,void (__cdecl *)(T))&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\SDK\luabind\luabind\detail\class_cache.hpp'', строка ''78'', добавляем символ '''*''' после буквы '''T''':&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_11.jpg|Правка LuaBind|frame|left|Правка LuaBind]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2780: luabind::class_&amp;lt;T&amp;gt; &amp;amp;luabind::class_&amp;lt;T&amp;gt;::def(luabind::detail::operator_&amp;lt;Derived&amp;gt;): требует аргументов: 1, имеется: 2&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\game_cl_base_script.cpp'', строка ''17'', дописываем перед '''SZoneMapEntityData''' ключевое слово '''const''': &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_12.jpg|Правка xrGame|frame|left|Правка xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
== Congratulations! ==&lt;br /&gt;
Ну вот и всё, осталось только скопировать, если его там нет, ''fsgame.ltx'' в директорию с вашими бинам и создать (*.cmd) файл для запуска, ну или для продвинутых написать свой лаунчер (например написать свою ''xrLauncher.dll''). Приятных экспериментов!&lt;br /&gt;
== Послесловие ==&lt;br /&gt;
В скором времени появятся другие статьи по движку ST или по программированию, так или иначе связанным с ST, возможно появится статья по сборке X-Ray SDK, если Вам конечна понравилась эта статья.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Если Вами в статье была найдена какая-то ошибка или неточность, прошу сообщить мне. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Просьба при внесении правок оставлять свою подпись.'''&lt;br /&gt;
== Благодарности ==&lt;br /&gt;
Я выражаю искрении благодарности следующим людям: '''K.D.''', '''HikeR''', '''Tron''' и всем остальным кто помогал в сборке движка. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ну и огромное спасибо '''GSC Game World''' за замечательный проект ST и за отсутствие гонений из-за использования исходных кодов движка :-).&lt;br /&gt;
== Автор ==&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/yar_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;11.07.2014&amp;lt;/u&amp;gt;. &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Участник:KIRAY|KIRAY]] ([[Обсуждение участника:KIRAY|обсуждение]]) 11:07, 11 июля 2014 (MSK)&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray</id>
		<title>Сборка движка X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray"/>
				<updated>2014-07-31T09:08:25Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: Отмена правки 13583, сделанной участником 74.120.13.132 (обс.)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Руководства]]&lt;br /&gt;
== Предисловие ==&lt;br /&gt;
Сразу хочется сказать то, что я не программист (обучающийся СОУ) и до программиста мне еще очень-очень далеко, всё что будет изложено ниже не является правильным решением проблемы сборки движка X-Ray и некоторые решения могут быть идиотскими, использование которых не рекомендуется. И я бы попросил любителей критики сильно не пинать, это моя первая статья и опыта написания таковых у меня нет. Ну что ж, хватит лирики, приступим-с...&lt;br /&gt;
== На кого рассчитана данная статья? ==&lt;br /&gt;
Прежде всего она рассчитана на нубов, подобных мне, которые не могут собрать движок, но хотят вносить в него какие-то правки, ну или хотя бы хотят пытаться вносить правки. Ну это вовсе не означает что Вы являетесь &amp;quot;полным нулём&amp;quot;, предпологается что читатель хотя бы минимальски знаком с ЯП C++ и имеет хоть какой-то опыт работы в Visual Studio. Программистам с опытом этот туториал покажется очень смешным и глупым, и я бы советовал им пройти мимо, дабы они здесь ничего нового не найдут.&lt;br /&gt;
== Что необходимо для сборки? ==&lt;br /&gt;
* Первое, и самое главное. Наличие хоть капли мозга и более-менее прямых рук.&lt;br /&gt;
* Microsoft Visual Studio 2005 или 2008 или 2010 (&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;'''НЕ'''&amp;lt;/span&amp;gt; Express Edition)&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_0|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message='''Данный туториал расчитан на VS 2010! При сборке на других, указанных выше студиях могут отсутствовать некоторые проблемы, разобраные в данной статье, и могут появиться другие, которые, возможно, не будут рассмотрены в данной статье!'''&lt;br /&gt;
}} &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
* S.T.A.L.K.E.R. Shadow of Cherbobyl 1.0006&lt;br /&gt;
== Сборка ==&lt;br /&gt;
=== Заранее хочется оговориться о структуре каталогов ===&lt;br /&gt;
* ''XRay'' -- корневой каталог движка&lt;br /&gt;
** ''xr_build'' -- Выходной каталог, здесь находятся распакованные ресурсы игры&lt;br /&gt;
** ''xr_src'' -- Каталог с исходными кодами движка&lt;br /&gt;
** ''dev-scripts'' -- Различные вспомогательные скрипты&lt;br /&gt;
=== Загрузка исходного кода движка и подготовительные работы ===&lt;br /&gt;
Скачиваем основной архив с исходниками: [https://bitbucket.org/stalker/x-ray/downloads/XRay.rar]&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Пароль:''' ljlLHhklknlked&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Скачиваем архив с необходимыми для сборки SDKs и компонентами: [https://bitbucket.org/stalker/x-ray/downloads/src_components_for_xray.rar]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Распаковываем содержимое архивов ''XRay.rar'' и ''src_components_for_xray.rar'' в директорию ''XRay\xr_src'' &amp;lt;br/&amp;gt;&lt;br /&gt;
В папке ''dev-scripts'' создаем два (*.cmd) файла - ''mountDisks.cmd'' и ''unmountDisks.cmd'' такого содержания:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
''mountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: [Ваш путь до папки XRay]:\XRay\xr_build&lt;br /&gt;
@subst S: [Ваш путь до папки XRay]:\XRay\xr_src&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
''unmountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: /D&lt;br /&gt;
@subst S: /D&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Запускаем ''mountDisks.cmd'', должны появиться два виртуальных диска: ''X'' и ''S''. ''X'' -выходной каталог, ''S'' - каталог исходников.&lt;br /&gt;
[[Файл:Ss_0.jpg|Виртуальные диски|frame|left|Виртуальные диски]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Подготовительный этап закончен. Приступаем к настройке проектов.&lt;br /&gt;
=== Настройка проектов ===&lt;br /&gt;
Запускаем Visual Studio, на стартовой странице выбираем ''Открыть проект...'' или ''Файл -&amp;gt; Открыть -&amp;gt; Решение или проект...'' В появившемся окне выбираем ''S:\xr_3da\xr_3da.sln''.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_1.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Появится окно мастера преобразования Visual Studio, жмём кнопку 'Готово' и ждём пока все проекты конвертируются в формат VS10 и пройдёт синтаксический анализ проектов.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_2.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
После того как всё сконвертировалось, перым делом открываем  Диспетчер конфигураций (''ПКМ по решению -&amp;gt; Свойства -&amp;gt; Свойства конфигурации'') и выставляем решению активную конфигурацию ''Mixed'' (на чистом ''Debug'' ужасно падает производительность), а для сторонних библиотек (''BugTrap'', ''OpenAL'', ''minizip'', ''zlib'') ставим ''Release''.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_3.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Ну а теперь самое муторное, это настройка собственно проектов. Каждый проект придется настраивать отдельно, собирать так же советую отдельно (''ПКМ по проекту -&amp;gt; Только проект -&amp;gt; Построить только [имя проекта]''). Порядок построения можно узнать так: ''ПКМ по любому проекту -&amp;gt; Зависимости проектов... -&amp;gt; Порядок построения''. Настраиваем выходные каталоги, промежуточные каталоги и выходные каталог для библиотек импорта по своему вкусу, у меня так (на примере ''BugTrap'', используется структура каталогов, упомянутая в начале статьи):&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_4.jpg|512px]]  [[Image:Ss_5.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Далее необходимо настроить пути к заголовочным файлам и библиотекам импорта внешних библиотек. Ниже пойдёт таблица проектов (в порядке построения) с необходимыми для них библиотеками из директории ''xr_src\SDK'', пути настраиваются здесь: &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_6.jpg|512px]]  [[Файл:Ss_7.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{|class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Проект||Необходимые библиотеки&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCore'''||''DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCDB'''||''xrCore''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrLua'''||''xrCore, LuaBind, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrSound'''||''xrCore, Xiph libs, EAX, DX, OpenAL''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrParticles'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrNetServer'''||''xrCore, DX, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrXMLParser'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''XR_3DA'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Xiph libs, OpenAL (*.lib only)''&lt;br /&gt;
|-&lt;br /&gt;
|'''ODE'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCPU_Pipe'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGameSpy'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R2'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R1'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGame'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Loki''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_1|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=На заметку|&lt;br /&gt;
message=xrGame самая &amp;quot;массивная&amp;quot; библиотека X-Ray, на некоторых машинах её сборка может занять прилично времени.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
=== Сборка ===&lt;br /&gt;
Собираем каждый проект, как я ранее написал, отдельно, по списку порядка построения. Ниже разбираются наиболее встречающиеся проблемы. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrCore'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2061: синтаксическая ошибка: идентификатор &amp;quot;__RPC__out_xcount_part&amp;lt;/code&amp;gt;&lt;br /&gt;
Необходимо удалить файл ''rpcsal.h'' из директории ''S:\SDK\dx9sdk\dx9sdk\include''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrLua'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2883: std::terminate: объявление функции вступает в конфликт с &amp;quot;terminate&amp;quot;, присутствующем в &amp;quot;using&amp;quot;-объявлении&amp;lt;/code&amp;gt;&lt;br /&gt;
Идём в ''S:\SDK\luabind\luabind\config.hpp'', строка 31 и добавляем в имя функции ''terminate'' прочерк ,было '''terminate''', стало '''_terminate'''. &lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_2|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message=Функция '''_terminate''' существует в '''xrDebugNew!''' Не известно как это себя поведёт, лучше всё же закомментировать конструкцию '''namespace std { void terminate() }'''&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2244: throw_exception: не удается сопоставить определение функции существующему объявлению&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''xrCore.h'', в строке ''14'' объявляем макрос ''BOOST_NO_EXCEPTIONS'' ('''#define BOOST_NO_EXCEPTIONS''')&lt;br /&gt;
&amp;lt;code&amp;gt;error C2668: boost::addressof: неоднозначный вызов перегруженной функции&amp;lt;/code&amp;gt;&lt;br /&gt;
Лезем в ''S:\SDK\boost_1_30_0\function\function_template.hpp'', в строке ''472'' перед '''addressof''' дописываем '''boost::'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrGame'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;_operator::_edge_value_type CProblemSolver&amp;lt;_operator_condition,_condition_state,_operator,_condition_evaluator,_operator_id_type,_reverse_search,_operator_ptr,_condition_evaluator_ptr&amp;gt;::estimate_edge_weight_impl(const _condition_state &amp;amp;) const&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\problem_solver.h'', строка ''90''. Заменить этот кусок кода:&lt;br /&gt;
[[Файл:Ss_8.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
На этот: &lt;br /&gt;
[[Файл:Ss_9.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
И где-нибудь вне класса объявите структуру ''Bool2Type'': &lt;br /&gt;
[[Файл:Ss_10.jpg|Структура Bool2Type|frame|left|Структура Bool2Type]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2275: Pars: недопустимое использование этого типа в качестве выражения&amp;lt;/code&amp;gt;&lt;br /&gt;
Здесь придётся вносить правки в несколько файлов, для начала лезем в ''S:\xr_3da\xrGame\PHMovementDynamicActivate.cpp'' и везде после '''Pars''' вместо точки ставим двойное двоеточие '''::''', также делаем и в ''xrGame\physics_game.cpp''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;luabind::detail::class_rep *luabind::detail::get_class_rep(lua_State *,void (__cdecl *)(T))&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\SDK\luabind\luabind\detail\class_cache.hpp'', строка ''78'', добавляем символ '''*''' после буквы '''T''':&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_11.jpg|Правка LuaBind|frame|left|Правка LuaBind]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2780: luabind::class_&amp;lt;T&amp;gt; &amp;amp;luabind::class_&amp;lt;T&amp;gt;::def(luabind::detail::operator_&amp;lt;Derived&amp;gt;): требует аргументов: 1, имеется: 2&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\game_cl_base_script.cpp'', строка ''17'', дописываем перед '''SZoneMapEntityData''' ключевое слово '''const''': &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_12.jpg|Правка xrGame|frame|left|Правка xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
== Congratulations! ==&lt;br /&gt;
Ну вот и всё, осталось только скопировать, если его там нет, ''fsgame.ltx'' в директорию с вашими бинам и создать (*.cmd) файл для запуска, ну или для продвинутых написать свой лаунчер (например написать свою ''xrLauncher.dll''). Приятных экспериментов!&lt;br /&gt;
== Послесловие ==&lt;br /&gt;
В скором времени появятся другие статьи по движку ST или по программированию, так или иначе связанным с ST, возможно появится статья по сборке X-Ray SDK, если Вам конечна понравилась эта статья.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Если Вами в статье была найдена какая-то ошибка или неточность, прошу сообщить мне. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Публикация на сторонних ресурсах разрешается &amp;lt;u&amp;gt;'''ТОЛЬКО С УКАЗАНИЕМ НИКА АВТОРА'''&amp;lt;/u&amp;gt;. При публикации на стороннем ресурсе &amp;lt;u&amp;gt;'''ЗАПРЕЩЕНО УДАЛЯТЬ РАЗДЕЛ БЛАГОДАРНОСТИ'''&amp;lt;/u&amp;gt;!&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Просьба при внесении правок оставлять свою подпись.'''&lt;br /&gt;
== Благодарности ==&lt;br /&gt;
Я выражаю искрении благодарности следующим людям: '''K.D.''', '''HikeR''', '''Tron''' и всем остальным кто помогал в сборке движка. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ну и огромное спасибо '''GSC Game World''' за замечательный проект ST и за отсутствие гонений из-за использования исходных кодов движка :-).&lt;br /&gt;
== Автор ==&lt;br /&gt;
'''Article is prepared ОМКНМ''' [http://vk.com/omknm]&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/yar_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;11.07.2014&amp;lt;/u&amp;gt;. &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Участник:KIRAY|KIRAY]] ([[Обсуждение участника:KIRAY|обсуждение]]) 11:07, 11 июля 2014 (MSK)&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray</id>
		<title>Сборка движка X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray"/>
				<updated>2014-07-24T18:00:35Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Руководства]]&lt;br /&gt;
== Предисловие ==&lt;br /&gt;
Сразу хочется сказать то, что я не программист (обучающийся СОУ) и до программиста мне еще очень-очень далеко, всё что будет изложено ниже не является правильным решением проблемы сборки движка X-Ray и некоторые решения могут быть идиотскими, использование которых не рекомендуется. И я бы попросил любителей критики сильно не пинать, это моя первая статья и опыта написания таковых у меня нет. Ну что ж, хватит лирики, приступим-с...&lt;br /&gt;
== На кого рассчитана данная статья? ==&lt;br /&gt;
Прежде всего она рассчитана на нубов, подобных мне, которые не могут собрать движок, но хотят вносить в него какие-то правки, ну или хотя бы хотят пытаться вносить правки. Ну это вовсе не означает что Вы являетесь &amp;quot;полным нулём&amp;quot;, предпологается что читатель хотя бы минимальски знаком с ЯП C++ и имеет хоть какой-то опыт работы в Visual Studio. Программистам с опытом этот туториал покажется очень смешным и глупым, и я бы советовал им пройти мимо, дабы они здесь ничего нового не найдут.&lt;br /&gt;
== Что необходимо для сборки? ==&lt;br /&gt;
* Первое, и самое главное. Наличие хоть капли мозга и более-менее прямых рук.&lt;br /&gt;
* Microsoft Visual Studio 2005 или 2008 или 2010 (&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;'''НЕ'''&amp;lt;/span&amp;gt; Express Edition)&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_0|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message='''Данный туториал расчитан на VS 2010! При сборке на других, указанных выше студиях могут отсутствовать некоторые проблемы, разобраные в данной статье, и могут появиться другие, которые, возможно, не будут рассмотрены в данной статье!'''&lt;br /&gt;
}} &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
* S.T.A.L.K.E.R. Shadow of Cherbobyl 1.0006&lt;br /&gt;
== Сборка ==&lt;br /&gt;
=== Заранее хочется оговориться о структуре каталогов ===&lt;br /&gt;
* ''XRay'' -- корневой каталог движка&lt;br /&gt;
** ''xr_build'' -- Выходной каталог, здесь находятся распакованные ресурсы игры&lt;br /&gt;
** ''xr_src'' -- Каталог с исходными кодами движка&lt;br /&gt;
** ''dev-scripts'' -- Различные вспомогательные скрипты&lt;br /&gt;
=== Загрузка исходного кода движка и подготовительные работы ===&lt;br /&gt;
Скачиваем основной архив с исходниками: [https://bitbucket.org/stalker/x-ray/downloads/XRay.rar]&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Пароль:''' ljlLHhklknlked&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Скачиваем архив с необходимыми для сборки SDKs и компонентами: [https://bitbucket.org/stalker/x-ray/downloads/src_components_for_xray.rar]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Распаковываем содержимое архивов ''XRay.rar'' и ''src_components_for_xray.rar'' в директорию ''XRay\xr_src'' &amp;lt;br/&amp;gt;&lt;br /&gt;
В папке ''dev-scripts'' создаем два (*.cmd) файла - ''mountDisks.cmd'' и ''unmountDisks.cmd'' такого содержания:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
''mountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: [Ваш путь до папки XRay]:\XRay\xr_build&lt;br /&gt;
@subst S: [Ваш путь до папки XRay]:\XRay\xr_src&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
''unmountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: /D&lt;br /&gt;
@subst S: /D&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Запускаем ''mountDisks.cmd'', должны появиться два виртуальных диска: ''X'' и ''S''. ''X'' -выходной каталог, ''S'' - каталог исходников.&lt;br /&gt;
[[Файл:Ss_0.jpg|Виртуальные диски|frame|left|Виртуальные диски]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Подготовительный этап закончен. Приступаем к настройке проектов.&lt;br /&gt;
=== Настройка проектов ===&lt;br /&gt;
Запускаем Visual Studio, на стартовой странице выбираем ''Открыть проект...'' или ''Файл -&amp;gt; Открыть -&amp;gt; Решение или проект...'' В появившемся окне выбираем ''S:\xr_3da\xr_3da.sln''.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_1.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Появится окно мастера преобразования Visual Studio, жмём кнопку 'Готово' и ждём пока все проекты конвертируются в формат VS10 и пройдёт синтаксический анализ проектов.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_2.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
После того как всё сконвертировалось, перым делом открываем  Диспетчер конфигураций (''ПКМ по решению -&amp;gt; Свойства -&amp;gt; Свойства конфигурации'') и выставляем решению активную конфигурацию ''Mixed'' (на чистом ''Debug'' ужасно падает производительность), а для сторонних библиотек (''BugTrap'', ''OpenAL'', ''minizip'', ''zlib'') ставим ''Release''.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_3.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Ну а теперь самое муторное, это настройка собственно проектов. Каждый проект придется настраивать отдельно, собирать так же советую отдельно (''ПКМ по проекту -&amp;gt; Только проект -&amp;gt; Построить только [имя проекта]''). Порядок построения можно узнать так: ''ПКМ по любому проекту -&amp;gt; Зависимости проектов... -&amp;gt; Порядок построения''. Настраиваем выходные каталоги, промежуточные каталоги и выходные каталог для библиотек импорта по своему вкусу, у меня так (на примере ''BugTrap'', используется структура каталогов, упомянутая в начале статьи):&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_4.jpg|512px]]  [[Image:Ss_5.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Далее необходимо настроить пути к заголовочным файлам и библиотекам импорта внешних библиотек. Ниже пойдёт таблица проектов (в порядке построения) с необходимыми для них библиотеками из директории ''xr_src\SDK'', пути настраиваются здесь: &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_6.jpg|512px]]  [[Файл:Ss_7.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{|class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Проект||Необходимые библиотеки&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCore'''||''DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCDB'''||''xrCore''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrLua'''||''xrCore, LuaBind, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrSound'''||''xrCore, Xiph libs, EAX, DX, OpenAL''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrParticles'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrNetServer'''||''xrCore, DX, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrXMLParser'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''XR_3DA'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Xiph libs, OpenAL (*.lib only)''&lt;br /&gt;
|-&lt;br /&gt;
|'''ODE'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCPU_Pipe'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGameSpy'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R2'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R1'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGame'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Loki''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_1|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=На заметку|&lt;br /&gt;
message=xrGame самая &amp;quot;массивная&amp;quot; библиотека X-Ray, на некоторых машинах её сборка может занять прилично времени.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
=== Сборка ===&lt;br /&gt;
Собираем каждый проект, как я ранее написал, отдельно, по списку порядка построения. Ниже разбираются наиболее встречающиеся проблемы. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrCore'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2061: синтаксическая ошибка: идентификатор &amp;quot;__RPC__out_xcount_part&amp;lt;/code&amp;gt;&lt;br /&gt;
Необходимо удалить файл ''rpcsal.h'' из директории ''S:\SDK\dx9sdk\dx9sdk\include''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrLua'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2883: std::terminate: объявление функции вступает в конфликт с &amp;quot;terminate&amp;quot;, присутствующем в &amp;quot;using&amp;quot;-объявлении&amp;lt;/code&amp;gt;&lt;br /&gt;
Идём в ''S:\SDK\luabind\luabind\config.hpp'', строка 31 и добавляем в имя функции ''terminate'' прочерк ,было '''terminate''', стало '''_terminate'''. &lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_2|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message=Функция '''_terminate''' существует в '''xrDebugNew!''' Не известно как это себя поведёт, лучше всё же закомментировать конструкцию '''namespace std { void terminate() }'''&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2244: throw_exception: не удается сопоставить определение функции существующему объявлению&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''xrCore.h'', в строке ''14'' объявляем макрос ''BOOST_NO_EXCEPTIONS'' ('''#define BOOST_NO_EXCEPTIONS''')&lt;br /&gt;
&amp;lt;code&amp;gt;error C2668: boost::addressof: неоднозначный вызов перегруженной функции&amp;lt;/code&amp;gt;&lt;br /&gt;
Лезем в ''S:\SDK\boost_1_30_0\function\function_template.hpp'', в строке ''472'' перед '''addressof''' дописываем '''boost::'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrGame'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;_operator::_edge_value_type CProblemSolver&amp;lt;_operator_condition,_condition_state,_operator,_condition_evaluator,_operator_id_type,_reverse_search,_operator_ptr,_condition_evaluator_ptr&amp;gt;::estimate_edge_weight_impl(const _condition_state &amp;amp;) const&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\problem_solver.h'', строка ''90''. Заменить этот кусок кода:&lt;br /&gt;
[[Файл:Ss_8.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
На этот: &lt;br /&gt;
[[Файл:Ss_9.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
И где-нибудь вне класса объявите структуру ''Bool2Type'': &lt;br /&gt;
[[Файл:Ss_10.jpg|Структура Bool2Type|frame|left|Структура Bool2Type]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2275: Pars: недопустимое использование этого типа в качестве выражения&amp;lt;/code&amp;gt;&lt;br /&gt;
Здесь придётся вносить правки в несколько файлов, для начала лезем в ''S:\xr_3da\xrGame\PHMovementDynamicActivate.cpp'' и везде после '''Pars''' вместо точки ставим двойное двоеточие '''::''', также делаем и в ''xrGame\physics_game.cpp''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;luabind::detail::class_rep *luabind::detail::get_class_rep(lua_State *,void (__cdecl *)(T))&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\SDK\luabind\luabind\detail\class_cache.hpp'', строка ''78'', добавляем символ '''*''' после буквы '''T''':&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_11.jpg|Правка LuaBind|frame|left|Правка LuaBind]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2780: luabind::class_&amp;lt;T&amp;gt; &amp;amp;luabind::class_&amp;lt;T&amp;gt;::def(luabind::detail::operator_&amp;lt;Derived&amp;gt;): требует аргументов: 1, имеется: 2&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\game_cl_base_script.cpp'', строка ''17'', дописываем перед '''SZoneMapEntityData''' ключевое слово '''const''': &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_12.jpg|Правка xrGame|frame|left|Правка xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
== Congratulations! ==&lt;br /&gt;
Ну вот и всё, осталось только скопировать, если его там нет, ''fsgame.ltx'' в директорию с вашими бинам и создать (*.cmd) файл для запуска, ну или для продвинутых написать свой лаунчер (например написать свою ''xrLauncher.dll''). Приятных экспериментов!&lt;br /&gt;
== Послесловие ==&lt;br /&gt;
В скором времени появятся другие статьи по движку ST или по программированию, так или иначе связанным с ST, возможно появится статья по сборке X-Ray SDK, если Вам конечна понравилась эта статья.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Если Вами в статье была найдена какая-то ошибка или неточность, прошу сообщить мне. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Публикация на сторонних ресурсах разрешается &amp;lt;u&amp;gt;'''ТОЛЬКО С УКАЗАНИЕМ НИКА АВТОРА'''&amp;lt;/u&amp;gt;. При публикации на стороннем ресурсе &amp;lt;u&amp;gt;'''ЗАПРЕЩЕНО УДАЛЯТЬ РАЗДЕЛ БЛАГОДАРНОСТИ'''&amp;lt;/u&amp;gt;!&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Просьба при внесении правок оставлять свою подпись.'''&lt;br /&gt;
== Благодарности ==&lt;br /&gt;
Я выражаю искрении благодарности следующим людям: '''K.D.''', '''HikeR''', '''Tron''' и всем остальным кто помогал в сборке движка. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ну и огромное спасибо '''GSC Game World''' за замечательный проект ST и за отсутствие гонений из-за использования исходных кодов движка :-).&lt;br /&gt;
== Автор ==&lt;br /&gt;
'''Article is prepared ОМКНМ''' [http://vk.com/omknm]&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/yar_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;11.07.2014&amp;lt;/u&amp;gt;. &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Участник:KIRAY|KIRAY]] ([[Обсуждение участника:KIRAY|обсуждение]]) 11:07, 11 июля 2014 (MSK)&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray</id>
		<title>Сборка движка X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray"/>
				<updated>2014-07-11T13:58:16Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Руководства]]&lt;br /&gt;
== Предисловие ==&lt;br /&gt;
Сразу хочется сказать то, что я не программист (обучающийся СОУ) и до программиста мне еще очень-очень далеко, всё что будет изложено ниже не является правильным решением проблемы сборки движка X-Ray и некоторые решения могут быть идиотскими, использование которых не рекомендуется. И я бы попросил любителей критики сильно не пинать, это моя первая статья и опыта написания таковых у меня нет. Ну что ж, хватит лирики, приступим-с...&lt;br /&gt;
== На кого рассчитана данная статья? ==&lt;br /&gt;
Прежде всего она рассчитана на нубов, подобных мне, которые не могут собрать движок, но хотят вносить в него какие-то правки, ну или хотя бы хотят пытаться вносить правки. Ну это вовсе не означает что Вы являетесь &amp;quot;полным нулём&amp;quot;, предпологается что читатель хотя бы минимальски знаком с ЯП C++ и имеет хоть какой-то опыт работы в Visual Studio. Программистам с опытом этот туториал покажется очень смешным и глупым, и я бы советовал им пройти мимо, дабы они здесь ничего нового не найдут.&lt;br /&gt;
== Что необходимо для сборки? ==&lt;br /&gt;
* Первое, и самое главное. Наличие хоть капли мозга и более-менее прямых рук.&lt;br /&gt;
* Microsoft Visual Studio 2005 или 2008 или 2010 (&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;'''НЕ'''&amp;lt;/span&amp;gt; Express Edition)&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_0|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message='''Данный туториал расчитан на VS 2010! При сборке на других, указанных выше студиях могут отсутствовать некоторые проблемы, разобраные в данной статье, и могут появиться другие, которые, возможно, не будут рассмотрены в данной статье!'''&lt;br /&gt;
}} &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
* S.T.A.L.K.E.R. Shadow of Cherbobyl 1.0006&lt;br /&gt;
== Сборка ==&lt;br /&gt;
=== Заранее хочется оговориться о структуре каталогов ===&lt;br /&gt;
* ''XRay'' -- корневой каталог движка&lt;br /&gt;
** ''xr_build'' -- Выходной каталог, здесь находятся распакованные ресурсы игры&lt;br /&gt;
** ''xr_src'' -- Каталог с исходными кодами движка&lt;br /&gt;
** ''dev-scripts'' -- Различные вспомогательные скрипты&lt;br /&gt;
=== Загрузка исходного кода движка и подготовительные работы ===&lt;br /&gt;
Скачиваем основной архив с исходниками: [https://bitbucket.org/stalker/x-ray/downloads/XRay.rar]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Скачиваем архив с необходимыми для сборки SDKs и компонентами: [https://bitbucket.org/stalker/x-ray/downloads/src_components_for_xray.rar]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Распаковываем содержимое архивов ''XRay.rar'' и ''src_components_for_xray.rar'' в директорию ''XRay\xr_src'' &amp;lt;br/&amp;gt;&lt;br /&gt;
В папке ''dev-scripts'' создаем два (*.cmd) файла - ''mountDisks.cmd'' и ''unmountDisks.cmd'' такого содержания:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
''mountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: [Ваш путь до папки XRay]:\XRay\xr_build&lt;br /&gt;
@subst S: [Ваш путь до папки XRay]:\XRay\xr_src&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
''unmountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: /D&lt;br /&gt;
@subst S: /D&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Запускаем ''mountDisks.cmd'', должны появиться два виртуальных диска: ''X'' и ''S''. ''X'' -выходной каталог, ''S'' - каталог исходников.&lt;br /&gt;
[[Файл:Ss_0.jpg|Виртуальные диски|frame|left|Виртуальные диски]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Подготовительный этап закончен. Приступаем к настройке проектов.&lt;br /&gt;
=== Настройка проектов ===&lt;br /&gt;
Запускаем Visual Studio, на стартовой странице выбираем ''Открыть проект...'' или ''Файл -&amp;gt; Открыть -&amp;gt; Решение или проект...'' В появившемся окне выбираем ''S:\xr_3da\xr_3da.sln''.&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_1.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Появится окно мастера преобразования Visual Studio, жмём кнопку 'Готово' и ждём пока все проекты конвертируются в формат VS10 и пройдёт синтаксический анализ проектов.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_2.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
После того как всё сконвертировалось, перым делом открываем  Диспетчер конфигураций (''ПКМ по решению -&amp;gt; Свойства -&amp;gt; Свойства конфигурации'') и выставляем решению активную конфигурацию ''Mixed'' (на чистом ''Debug'' ужасно падает производительность), а для сторонних библиотек (''BugTrap'', ''OpenAL'', ''minizip'', ''zlib'') ставим ''Release''.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_3.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Ну а теперь самое муторное, это настройка собственно проектов. Каждый проект придется настраивать отдельно, собирать так же советую отдельно (''ПКМ по проекту -&amp;gt; Только проект -&amp;gt; Построить только [имя проекта]''). Порядок построения можно узнать так: ''ПКМ по любому проекту -&amp;gt; Зависимости проектов... -&amp;gt; Порядок построения''. Настраиваем выходные каталоги, промежуточные каталоги и выходные каталог для библиотек импорта по своему вкусу, у меня так (на примере ''BugTrap'', используется структура каталогов, упомянутая в начале статьи):&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_4.jpg|512px]]  [[Image:Ss_5.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Далее необходимо настроить пути к заголовочным файлам и библиотекам импорта внешних библиотек. Ниже пойдёт таблица проектов (в порядке построения) с необходимыми для них библиотеками из директории ''xr_src\SDK'', пути настраиваются здесь: &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Image:Ss_6.jpg|512px]]  [[Файл:Ss_7.jpg|512px]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{|class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Проект||Необходимые библиотеки&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCore'''||''DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCDB'''||''xrCore''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrLua'''||''xrCore, LuaBind, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrSound'''||''xrCore, Xiph libs, EAX, DX, OpenAL''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrParticles'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrNetServer'''||''xrCore, DX, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrXMLParser'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''XR_3DA'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Xiph libs, OpenAL (*.lib only)''&lt;br /&gt;
|-&lt;br /&gt;
|'''ODE'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCPU_Pipe'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGameSpy'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R2'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R1'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGame'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Loki''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_1|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=На заметку|&lt;br /&gt;
message=xrGame самая &amp;quot;массивная&amp;quot; библиотека X-Ray, на некоторых машинах её сборка может занять прилично времени.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
=== Сборка ===&lt;br /&gt;
Собираем каждый проект, как я ранее написал, отдельно, по списку порядка построения. Ниже разбираются наиболее встречающиеся проблемы. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrCore'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2061: синтаксическая ошибка: идентификатор &amp;quot;__RPC__out_xcount_part&amp;lt;/code&amp;gt;&lt;br /&gt;
Необходимо удалить файл ''rpcsal.h'' из директории ''S:\SDK\dx9sdk\dx9sdk\include''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrLua'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2883: std::terminate: объявление функции вступает в конфликт с &amp;quot;terminate&amp;quot;, присутствующем в &amp;quot;using&amp;quot;-объявлении&amp;lt;/code&amp;gt;&lt;br /&gt;
Идём в ''S:\SDK\luabind\luabind\config.hpp'', строка 31 и добавляем в имя функции ''terminate'' прочерк ,было '''terminate''', стало '''_terminate'''. &lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_2|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message=Функция '''_terminate''' существует в '''xrDebugNew!''' Не известно как это себя поведёт, лучше всё же закомментировать конструкцию '''namespace std { void terminate() }'''&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2244: throw_exception: не удается сопоставить определение функции существующему объявлению&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''xrCore.h'', в строке ''14'' объявляем макрос ''BOOST_NO_EXCEPTIONS'' ('''#define BOOST_NO_EXCEPTIONS''')&lt;br /&gt;
&amp;lt;code&amp;gt;error C2668: boost::addressof: неоднозначный вызов перегруженной функции&amp;lt;/code&amp;gt;&lt;br /&gt;
Лезем в ''S:\SDK\boost_1_30_0\function\function_template.hpp'', в строке ''472'' перед '''addressof''' дописываем '''boost::'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrGame'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;_operator::_edge_value_type CProblemSolver&amp;lt;_operator_condition,_condition_state,_operator,_condition_evaluator,_operator_id_type,_reverse_search,_operator_ptr,_condition_evaluator_ptr&amp;gt;::estimate_edge_weight_impl(const _condition_state &amp;amp;) const&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\problem_solver.h'', строка ''90''. Заменить этот кусок кода:&lt;br /&gt;
[[Файл:Ss_8.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
На этот: &lt;br /&gt;
[[Файл:Ss_9.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
И где-нибудь вне класса объявите структуру ''Bool2Type'': &lt;br /&gt;
[[Файл:Ss_10.jpg|Структура Bool2Type|frame|left|Структура Bool2Type]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2275: Pars: недопустимое использование этого типа в качестве выражения&amp;lt;/code&amp;gt;&lt;br /&gt;
Здесь придётся вносить правки в несколько файлов, для начала лезем в ''S:\xr_3da\xrGame\PHMovementDynamicActivate.cpp'' и везде после '''Pars''' вместо точки ставим двойное двоеточие '''::''', также делаем и в ''xrGame\physics_game.cpp''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;luabind::detail::class_rep *luabind::detail::get_class_rep(lua_State *,void (__cdecl *)(T))&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\SDK\luabind\luabind\detail\class_cache.hpp'', строка ''78'', добавляем символ '''*''' после буквы '''T''':&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_11.jpg|Правка LuaBind|frame|left|Правка LuaBind]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2780: luabind::class_&amp;lt;T&amp;gt; &amp;amp;luabind::class_&amp;lt;T&amp;gt;::def(luabind::detail::operator_&amp;lt;Derived&amp;gt;): требует аргументов: 1, имеется: 2&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\game_cl_base_script.cpp'', строка ''17'', дописываем перед '''SZoneMapEntityData''' ключевое слово '''const''': &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_12.jpg|Правка xrGame|frame|left|Правка xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
== Congratulations! ==&lt;br /&gt;
Ну вот и всё, осталось только скопировать, если его там нет, ''fsgame.ltx'' в директорию с вашими бинам и создать (*.cmd) файл для запуска, ну или для продвинутых написать свой лаунчер (например написать свою ''xrLauncher.dll''). Приятных экспериментов!&lt;br /&gt;
== Послесловие ==&lt;br /&gt;
В скором времени появятся другие статьи по движку ST или по программированию, так или иначе связанным с ST, возможно появится статья по сборке X-Ray SDK, если Вам конечна понравилась эта статья.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Если Вами в статье была найдена какая-то ошибка или неточность, прошу сообщить мне. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Публикация на сторонних ресурсах разрешается &amp;lt;u&amp;gt;'''ТОЛЬКО С УКАЗАНИЕМ НИКА АВТОРА'''&amp;lt;/u&amp;gt;. При публикации на стороннем ресурсе &amp;lt;u&amp;gt;'''ЗАПРЕЩЕНО УДАЛЯТЬ РАЗДЕЛ БЛАГОДАРНОСТИ'''&amp;lt;/u&amp;gt;!&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Просьба при внесении правок оставлять свою подпись.'''&lt;br /&gt;
== Благодарности ==&lt;br /&gt;
Я выражаю искрении благодарности следующим людям: '''K.D.''', '''HikeR''', '''Tron''' и всем остальным кто помогал в сборке движка. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ну и огромное спасибо '''GSC Game World''' за замечательный проект ST и за отсутствие гонений из-за использования исходных кодов движка :-).&lt;br /&gt;
== Автор ==&lt;br /&gt;
'''Article is prepared ОМКНМ''' [http://vk.com/omknm]&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/yar_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;11.07.2014&amp;lt;/u&amp;gt;. &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Участник:KIRAY|KIRAY]] ([[Обсуждение участника:KIRAY|обсуждение]]) 11:07, 11 июля 2014 (MSK)&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray</id>
		<title>Сборка движка X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray"/>
				<updated>2014-07-11T07:10:48Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:Руководства]]&lt;br /&gt;
== Предисловие ==&lt;br /&gt;
Сразу хочется сказать то, что я не программист (обучающийся СОУ) и до программиста мне еще очень-очень далеко, всё что будет изложено ниже не является правильным решением проблемы сборки движка X-Ray и некоторые решения могут быть идиотскими, использование которых не рекомендуется. И я бы попросил любителей критики сильно не пинать, это моя первая статья и опыта написания таковых у меня нет. Ну что ж, хватит лирики, приступим-с...&lt;br /&gt;
== На кого рассчитана данная статья? ==&lt;br /&gt;
Прежде всего она рассчитана на нубов, подобных мне, которые не могут собрать движок, но хотят вносить в него какие-то правки, ну или хотя бы хотят пытаться вносить правки. Ну это вовсе не означает что Вы являетесь &amp;quot;полным нулём&amp;quot;, предпологается что читатель хотя бы минимальски знаком с ЯП C++ и имеет хоть какой-то опыт работы в Visual Studio. Программистам с опытом этот туториал покажется очень смешным и глупым, и я бы советовал им пройти мимо, дабы они здесь ничего нового не найдут.&lt;br /&gt;
== Что необходимо для сборки? ==&lt;br /&gt;
* Первое, и самое главное. Наличие хоть капли мозга и более-менее прямых рук.&lt;br /&gt;
* Microsoft Visual Studio 2005 или 2008 или 2010 (&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;'''НЕ'''&amp;lt;/span&amp;gt; Express Edition)&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_0|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message='''Данный туториал расчитан на VS 2010! При сборке на других, указанных выше студиях могут отсутствовать некоторые проблемы, разобраные в данной статье, и могут появиться другие, которые, возможно, не будут рассмотрены в данной статье!'''&lt;br /&gt;
}} &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
* S.T.A.L.K.E.R. Shadow of Cherbobyl 1.0006&lt;br /&gt;
== Сборка ==&lt;br /&gt;
=== Заранее хочется оговориться о структуре каталогов ===&lt;br /&gt;
* ''XRay'' -- корневой каталог движка&lt;br /&gt;
** ''xr_build'' -- Выходной каталог, здесь находятся распакованные ресурсы игры&lt;br /&gt;
** ''xr_src'' -- Каталог с исходными кодами движка&lt;br /&gt;
** ''dev-scripts'' -- Различные вспомогательные скрипты&lt;br /&gt;
=== Загрузка исходного кода движка и подготовительные работы ===&lt;br /&gt;
Скачиваем основной архив с исходниками: [https://bitbucket.org/stalker/x-ray/downloads/XRay.rar]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Скачиваем архив с необходимыми для сборки SDKs и компонентами: [https://bitbucket.org/stalker/x-ray/downloads/src_components_for_xray.rar]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Распаковываем содержимое архивов ''XRay.rar'' и ''src_components_for_xray.rar'' в директорию ''XRay\xr_src'' &amp;lt;br/&amp;gt;&lt;br /&gt;
В папке ''dev-scripts'' создаем два (*.cmd) файла - ''mountDisks.cmd'' и ''unmountDisks.cmd'' такого содержания:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
''mountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: [Ваш путь до папки XRay]:\XRay\xr_build&lt;br /&gt;
@subst S: [Ваш путь до папки XRay]:\XRay\xr_src&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
''unmountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: /D&lt;br /&gt;
@subst S: /D&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Запускаем ''mountDisks.cmd'', должны появиться два виртуальных диска: ''X'' и ''S''. ''X'' -выходной каталог, ''S'' - каталог исходников.&lt;br /&gt;
[[Файл:Ss_0.jpg|Виртуальные диски|frame|left|Виртуальные диски]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Подготовительный этап закончен. Приступаем к настройке проектов.&lt;br /&gt;
=== Настройка проектов ===&lt;br /&gt;
Запускаем Visual Studio, на стартовой странице выбираем ''Открыть проект...'' или ''Файл -&amp;gt; Открыть -&amp;gt; Решение или проект...'' В появившемся окне выбираем ''S:\xr_3da\xr_3da.sln''.&lt;br /&gt;
[[Файл:Ss_1.jpg|S:\xr_3da\xr_3da.sln|frame|left|xr_3da.sln]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Появится окно мастера преобразования Visual Studio, жмём кнопку 'Готово' и ждём пока все проекты конвертируются в формат VS10 и пройдёт синтаксический анализ проектов.&lt;br /&gt;
[[Файл:Ss_2.jpg|Мастер преобразований Visual Studio|frame|left|Мастер преобразований Visual Studio]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
После того как всё сконвертировалось, перым делом открываем  Диспетчер конфигураций (''ПКМ по решению -&amp;gt; Свойства -&amp;gt; Свойства конфигурации'') и выставляем решению активную конфигурацию ''Mixed'' (на чистом ''Debug'' ужасно падает производительность), а для сторонних библиотек (''BugTrap'', ''OpenAL'', ''minizip'', ''zlib'') ставим ''Release''.&lt;br /&gt;
[[Файл:Ss_3.jpg|Конфигурации проектов|frame|left|Конфигурации проектов]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Ну а теперь самое муторное, это настройка собственно проектов. Каждый проект придется настраивать отдельно, собирать так же советую отдельно (''ПКМ по проекту -&amp;gt; Только проект -&amp;gt; Построить только [имя проекта]''). Порядок построения можно узнать так: ''ПКМ по любому проекту -&amp;gt; Зависимости проектов... -&amp;gt; Порядок построения''. Настраиваем выходные каталоги, промежуточные каталоги и выходные каталог для библиотек импорта по своему вкусу, у меня так (на примере ''BugTrap'', используется структура каталогов, упомянутая в начале статьи):&lt;br /&gt;
[[Файл:Ss_4.jpg|Свойства BugTrap|frame|left|Свойства BugTrap]][[Файл:Ss_5.jpg|Свойства BugTrap|frame|left|Свойства BugTrap]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Далее необходимо настроить пути к заголовочным файлам и библиотекам импорта внешних библиотек. Ниже пойдёт таблица проектов (в порядке построения) с необходимыми для них библиотеками из директории ''xr_src\SDK'', пути настраиваются здесь: &lt;br /&gt;
[[Файл:Ss_6.jpg|Свойства проекта|frame|left|Свойства проекта]][[Файл:Ss_7.jpg|Свойства проекта|frame|left|Свойства проекта]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{|class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Проект||Необходимые библиотеки&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCore'''||''DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCDB'''||''xrCore''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrLua'''||''xrCore, LuaBind, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrSound'''||''xrCore, Xiph libs, EAX, DX, OpenAL''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrParticles'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrNetServer'''||''xrCore, DX, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrXMLParser'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''XR_3DA'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Xiph libs, OpenAL (*.lib only)''&lt;br /&gt;
|-&lt;br /&gt;
|'''ODE'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCPU_Pipe'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGameSpy'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R2'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R1'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGame'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Loki''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_1|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=На заметку|&lt;br /&gt;
message=xrGame самая &amp;quot;массивная&amp;quot; библиотека X-Ray, на некоторых машинах её сборка может занять прилично времени.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
=== Сборка ===&lt;br /&gt;
Собираем каждый проект, как я ранее написал, отдельно, по списку порядка построения. Ниже разбираются наиболее встречающиеся проблемы. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrCore'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2061: синтаксическая ошибка: идентификатор &amp;quot;__RPC__out_xcount_part&amp;lt;/code&amp;gt;&lt;br /&gt;
Необходимо удалить файл ''rpcsal.h'' из директории ''S:\SDK\dx9sdk\dx9sdk\include''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrLua'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2883: std::terminate: объявление функции вступает в конфликт с &amp;quot;terminate&amp;quot;, присутствующем в &amp;quot;using&amp;quot;-объявлении&amp;lt;/code&amp;gt;&lt;br /&gt;
Идём в ''S:\SDK\luabind\luabind\config.hpp'', строка 31 и добавляем в имя функции ''terminate'' прочерк ,было '''terminate''', стало '''_terminate'''. &lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_2|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message=Функция '''_terminate''' существует в '''xrDebugNew!''' Не известно как это себя поведёт, лучше всё же закомментировать конструкцию '''namespace std { void terminate() }'''&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2244: throw_exception: не удается сопоставить определение функции существующему объявлению&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''xrCore.h'', в строке ''14'' объявляем макрос ''BOOST_NO_EXCEPTIONS'' ('''#define BOOST_NO_EXCEPTIONS''')&lt;br /&gt;
&amp;lt;code&amp;gt;error C2668: boost::addressof: неоднозначный вызов перегруженной функции&amp;lt;/code&amp;gt;&lt;br /&gt;
Лезем в ''S:\SDK\boost_1_30_0\function\function_template.hpp'', в строке ''472'' перед '''addressof''' дописываем '''boost::'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrGame'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;_operator::_edge_value_type CProblemSolver&amp;lt;_operator_condition,_condition_state,_operator,_condition_evaluator,_operator_id_type,_reverse_search,_operator_ptr,_condition_evaluator_ptr&amp;gt;::estimate_edge_weight_impl(const _condition_state &amp;amp;) const&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\problem_solver.h'', строка ''90''. Заменить этот кусок кода:&lt;br /&gt;
[[Файл:Ss_8.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
На этот: &lt;br /&gt;
[[Файл:Ss_9.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
И где-нибудь вне класса объявите структуру ''Bool2Type'': &lt;br /&gt;
[[Файл:Ss_10.jpg|Структура Bool2Type|frame|left|Структура Bool2Type]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2275: Pars: недопустимое использование этого типа в качестве выражения&amp;lt;/code&amp;gt;&lt;br /&gt;
Здесь придётся вносить правки в несколько файлов, для начала лезем в ''S:\xr_3da\xrGame\PHMovementDynamicActivate.cpp'' и везде после '''Pars''' вместо точки ставим двойное двоеточие '''::''', также делаем и в ''xrGame\physics_game.cpp''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;luabind::detail::class_rep *luabind::detail::get_class_rep(lua_State *,void (__cdecl *)(T))&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\SDK\luabind\luabind\detail\class_cache.hpp'', строка ''78'', добавляем символ '''*''' после буквы '''T''':&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_11.jpg|Правка LuaBind|frame|left|Правка LuaBind]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2780: luabind::class_&amp;lt;T&amp;gt; &amp;amp;luabind::class_&amp;lt;T&amp;gt;::def(luabind::detail::operator_&amp;lt;Derived&amp;gt;): требует аргументов: 1, имеется: 2&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\game_cl_base_script.cpp'', строка ''17'', дописываем перед '''SZoneMapEntityData''' ключевое слово '''const''': &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_12.jpg|Правка xrGame|frame|left|Правка xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
== Congratulations! ==&lt;br /&gt;
Ну вот и всё, осталось только скопировать, если его там нет, ''fsgame.ltx'' в директорию с вашими бинам и создать (*.cmd) файл для запуска, ну или для продвинутых написать свой лаунчер (например написать свою ''xrLauncher.dll''). Приятных экспериментов!&lt;br /&gt;
== Послесловие ==&lt;br /&gt;
В скором времени появятся другие статьи по движку ST или по программированию, так или иначе связанным с ST, возможно появится статья по сборке X-Ray SDK, если Вам конечна понравилась эта статья.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Если Вами в статье была найдена какая-то ошибка или неточность, прошу сообщить мне. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Публикация на сторонних ресурсах разрешается &amp;lt;u&amp;gt;'''ТОЛЬКО С УКАЗАНИЕМ НИКА АВТОРА'''&amp;lt;/u&amp;gt;. При публикации на стороннем ресурсе &amp;lt;u&amp;gt;'''ЗАПРЕЩЕНО УДАЛЯТЬ РАЗДЕЛ БЛАГОДАРНОСТИ'''&amp;lt;/u&amp;gt;!&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Просьба при внесении правок оставлять свою подпись.'''&lt;br /&gt;
== Благодарности ==&lt;br /&gt;
Я выражаю искрении благодарности следующим людям: '''K.D.''', '''HikeR''', '''Tron''' и всем остальным кто помогал в сборке движка. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ну и огромное спасибо '''GSC Game World''' за замечательный проект ST и за отсутствие гонений из-за использования исходных кодов движка :-).&lt;br /&gt;
== Автор ==&lt;br /&gt;
'''Article is prepared ОМКНМ''' [http://vk.com/omknm]&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/yar_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;11.07.2014&amp;lt;/u&amp;gt;. &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Участник:KIRAY|KIRAY]] ([[Обсуждение участника:KIRAY|обсуждение]]) 11:07, 11 июля 2014 (MSK)&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray</id>
		<title>Сборка движка X-Ray</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_X-Ray"/>
				<updated>2014-07-11T07:07:28Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: Новая страница: «== Предисловие == Сразу хочется сказать то, что я не программист (обучающийся СОУ) и до прог…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Предисловие ==&lt;br /&gt;
Сразу хочется сказать то, что я не программист (обучающийся СОУ) и до программиста мне еще очень-очень далеко, всё что будет изложено ниже не является правильным решением проблемы сборки движка X-Ray и некоторые решения могут быть идиотскими, использование которых не рекомендуется. И я бы попросил любителей критики сильно не пинать, это моя первая статья и опыта написания таковых у меня нет. Ну что ж, хватит лирики, приступим-с...&lt;br /&gt;
== На кого рассчитана данная статья? ==&lt;br /&gt;
Прежде всего она рассчитана на нубов, подобных мне, которые не могут собрать движок, но хотят вносить в него какие-то правки, ну или хотя бы хотят пытаться вносить правки. Ну это вовсе не означает что Вы являетесь &amp;quot;полным нулём&amp;quot;, предпологается что читатель хотя бы минимальски знаком с ЯП C++ и имеет хоть какой-то опыт работы в Visual Studio. Программистам с опытом этот туториал покажется очень смешным и глупым, и я бы советовал им пройти мимо, дабы они здесь ничего нового не найдут.&lt;br /&gt;
== Что необходимо для сборки? ==&lt;br /&gt;
* Первое, и самое главное. Наличие хоть капли мозга и более-менее прямых рук.&lt;br /&gt;
* Microsoft Visual Studio 2005 или 2008 или 2010 (&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;'''НЕ'''&amp;lt;/span&amp;gt; Express Edition)&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_0|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message='''Данный туториал расчитан на VS 2010! При сборке на других, указанных выше студиях могут отсутствовать некоторые проблемы, разобраные в данной статье, и могут появиться другие, которые, возможно, не будут рассмотрены в данной статье!'''&lt;br /&gt;
}} &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
* S.T.A.L.K.E.R. Shadow of Cherbobyl 1.0006&lt;br /&gt;
== Сборка ==&lt;br /&gt;
=== Заранее хочется оговориться о структуре каталогов ===&lt;br /&gt;
* ''XRay'' -- корневой каталог движка&lt;br /&gt;
** ''xr_build'' -- Выходной каталог, здесь находятся распакованные ресурсы игры&lt;br /&gt;
** ''xr_src'' -- Каталог с исходными кодами движка&lt;br /&gt;
** ''dev-scripts'' -- Различные вспомогательные скрипты&lt;br /&gt;
=== Загрузка исходного кода движка и подготовительные работы ===&lt;br /&gt;
Скачиваем основной архив с исходниками: [https://bitbucket.org/stalker/x-ray/downloads/XRay.rar]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Скачиваем архив с необходимыми для сборки SDKs и компонентами: [https://bitbucket.org/stalker/x-ray/downloads/src_components_for_xray.rar]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Распаковываем содержимое архивов ''XRay.rar'' и ''src_components_for_xray.rar'' в директорию ''XRay\xr_src'' &amp;lt;br/&amp;gt;&lt;br /&gt;
В папке ''dev-scripts'' создаем два (*.cmd) файла - ''mountDisks.cmd'' и ''unmountDisks.cmd'' такого содержания:&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
''mountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: [Ваш путь до папки XRay]:\XRay\xr_build&lt;br /&gt;
@subst S: [Ваш путь до папки XRay]:\XRay\xr_src&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
''unmountDisks.cmd'':&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@ECHO OFF&lt;br /&gt;
@subst X: /D&lt;br /&gt;
@subst S: /D&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Запускаем ''mountDisks.cmd'', должны появиться два виртуальных диска: ''X'' и ''S''. ''X'' -выходной каталог, ''S'' - каталог исходников.&lt;br /&gt;
[[Файл:Ss_0.jpg|Виртуальные диски|frame|left|Виртуальные диски]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Подготовительный этап закончен. Приступаем к настройке проектов.&lt;br /&gt;
=== Настройка проектов ===&lt;br /&gt;
Запускаем Visual Studio, на стартовой странице выбираем ''Открыть проект...'' или ''Файл -&amp;gt; Открыть -&amp;gt; Решение или проект...'' В появившемся окне выбираем ''S:\xr_3da\xr_3da.sln''.&lt;br /&gt;
[[Файл:Ss_1.jpg|S:\xr_3da\xr_3da.sln|frame|left|xr_3da.sln]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Появится окно мастера преобразования Visual Studio, жмём кнопку 'Готово' и ждём пока все проекты конвертируются в формат VS10 и пройдёт синтаксический анализ проектов.&lt;br /&gt;
[[Файл:Ss_2.jpg|Мастер преобразований Visual Studio|frame|left|Мастер преобразований Visual Studio]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
После того как всё сконвертировалось, перым делом открываем  Диспетчер конфигураций (''ПКМ по решению -&amp;gt; Свойства -&amp;gt; Свойства конфигурации'') и выставляем решению активную конфигурацию ''Mixed'' (на чистом ''Debug'' ужасно падает производительность), а для сторонних библиотек (''BugTrap'', ''OpenAL'', ''minizip'', ''zlib'') ставим ''Release''.&lt;br /&gt;
[[Файл:Ss_3.jpg|Конфигурации проектов|frame|left|Конфигурации проектов]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Ну а теперь самое муторное, это настройка собственно проектов. Каждый проект придется настраивать отдельно, собирать так же советую отдельно (''ПКМ по проекту -&amp;gt; Только проект -&amp;gt; Построить только [имя проекта]''). Порядок построения можно узнать так: ''ПКМ по любому проекту -&amp;gt; Зависимости проектов... -&amp;gt; Порядок построения''. Настраиваем выходные каталоги, промежуточные каталоги и выходные каталог для библиотек импорта по своему вкусу, у меня так (на примере ''BugTrap'', используется структура каталогов, упомянутая в начале статьи):&lt;br /&gt;
[[Файл:Ss_4.jpg|Свойства BugTrap|frame|left|Свойства BugTrap]][[Файл:Ss_5.jpg|Свойства BugTrap|frame|left|Свойства BugTrap]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
Далее необходимо настроить пути к заголовочным файлам и библиотекам импорта внешних библиотек. Ниже пойдёт таблица проектов (в порядке построения) с необходимыми для них библиотеками из директории ''xr_src\SDK'', пути настраиваются здесь: &lt;br /&gt;
[[Файл:Ss_6.jpg|Свойства проекта|frame|left|Свойства проекта]][[Файл:Ss_7.jpg|Свойства проекта|frame|left|Свойства проекта]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{|class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Проект||Необходимые библиотеки&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCore'''||''DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCDB'''||''xrCore''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrLua'''||''xrCore, LuaBind, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrSound'''||''xrCore, Xiph libs, EAX, DX, OpenAL''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrParticles'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrNetServer'''||''xrCore, DX, Boost''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrXMLParser'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''XR_3DA'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Xiph libs, OpenAL (*.lib only)''&lt;br /&gt;
|-&lt;br /&gt;
|'''ODE'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrCPU_Pipe'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGameSpy'''||''n/a''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R2'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrRender_R1'''||''xrCore, DX''&lt;br /&gt;
|-&lt;br /&gt;
|'''xrGame'''||''xrCore, DX, xrLua\src, LuaBind, Boost, Loki''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_1|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=На заметку|&lt;br /&gt;
message=xrGame самая &amp;quot;массивная&amp;quot; библиотека X-Ray, на некоторых машинах её сборка может занять прилично времени.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
=== Сборка ===&lt;br /&gt;
Собираем каждый проект, как я ранее написал, отдельно, по списку порядка построения. Ниже разбираются наиболее встречающиеся проблемы. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrCore'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2061: синтаксическая ошибка: идентификатор &amp;quot;__RPC__out_xcount_part&amp;lt;/code&amp;gt;&lt;br /&gt;
Необходимо удалить файл ''rpcsal.h'' из директории ''S:\SDK\dx9sdk\dx9sdk\include''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrLua'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2883: std::terminate: объявление функции вступает в конфликт с &amp;quot;terminate&amp;quot;, присутствующем в &amp;quot;using&amp;quot;-объявлении&amp;lt;/code&amp;gt;&lt;br /&gt;
Идём в ''S:\SDK\luabind\luabind\config.hpp'', строка 31 и добавляем в имя функции ''terminate'' прочерк ,было '''terminate''', стало '''_terminate'''. &lt;br /&gt;
{{Message_box|&lt;br /&gt;
id=kir_msg_2|&lt;br /&gt;
align=left|&lt;br /&gt;
backgroundcolor=#f9f9f9|&lt;br /&gt;
image=Lamp.gif|&lt;br /&gt;
heading=&amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;ACHTUNG&amp;lt;/span&amp;gt;|&lt;br /&gt;
message=Функция '''_terminate''' существует в '''xrDebugNew!''' Не известно как это себя поведёт, лучше всё же закомментировать конструкцию '''namespace std { void terminate() }'''&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2244: throw_exception: не удается сопоставить определение функции существующему объявлению&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''xrCore.h'', в строке ''14'' объявляем макрос ''BOOST_NO_EXCEPTIONS'' ('''#define BOOST_NO_EXCEPTIONS''')&lt;br /&gt;
&amp;lt;code&amp;gt;error C2668: boost::addressof: неоднозначный вызов перегруженной функции&amp;lt;/code&amp;gt;&lt;br /&gt;
Лезем в ''S:\SDK\boost_1_30_0\function\function_template.hpp'', в строке ''472'' перед '''addressof''' дописываем '''boost::'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''xrGame'''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;_operator::_edge_value_type CProblemSolver&amp;lt;_operator_condition,_condition_state,_operator,_condition_evaluator,_operator_id_type,_reverse_search,_operator_ptr,_condition_evaluator_ptr&amp;gt;::estimate_edge_weight_impl(const _condition_state &amp;amp;) const&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\problem_solver.h'', строка ''90''. Заменить этот кусок кода:&lt;br /&gt;
[[Файл:Ss_8.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
На этот: &lt;br /&gt;
[[Файл:Ss_9.jpg|Кусок кода xrGame|frame|left|Кусок кода xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
И где-нибудь вне класса объявите структуру ''Bool2Type'': &lt;br /&gt;
[[Файл:Ss_10.jpg|Структура Bool2Type|frame|left|Структура Bool2Type]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2275: Pars: недопустимое использование этого типа в качестве выражения&amp;lt;/code&amp;gt;&lt;br /&gt;
Здесь придётся вносить правки в несколько файлов, для начала лезем в ''S:\xr_3da\xrGame\PHMovementDynamicActivate.cpp'' и везде после '''Pars''' вместо точки ставим двойное двоеточие '''::''', также делаем и в ''xrGame\physics_game.cpp''&lt;br /&gt;
&amp;lt;code&amp;gt;error C2770: недопустимые явные аргументы шаблон для &amp;quot;luabind::detail::class_rep *luabind::detail::get_class_rep(lua_State *,void (__cdecl *)(T))&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\SDK\luabind\luabind\detail\class_cache.hpp'', строка ''78'', добавляем символ '''*''' после буквы '''T''':&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_11.jpg|Правка LuaBind|frame|left|Правка LuaBind]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;error C2780: luabind::class_&amp;lt;T&amp;gt; &amp;amp;luabind::class_&amp;lt;T&amp;gt;::def(luabind::detail::operator_&amp;lt;Derived&amp;gt;): требует аргументов: 1, имеется: 2&amp;lt;/code&amp;gt;&lt;br /&gt;
В ''S:\xr_3da\xrGame\game_cl_base_script.cpp'', строка ''17'', дописываем перед '''SZoneMapEntityData''' ключевое слово '''const''': &lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
[[Файл:Ss_12.jpg|Правка xrGame|frame|left|Правка xrGame]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot;/&amp;gt;&lt;br /&gt;
== Congratulations! ==&lt;br /&gt;
Ну вот и всё, осталось только скопировать, если его там нет, ''fsgame.ltx'' в директорию с вашими бинам и создать (*.cmd) файл для запуска, ну или для продвинутых написать свой лаунчер (например написать свою ''xrLauncher.dll''). Приятных экспериментов!&lt;br /&gt;
== Послесловие ==&lt;br /&gt;
В скором времени появятся другие статьи по движку ST или по программированию, так или иначе связанным с ST, возможно появится статья по сборке X-Ray SDK, если Вам конечна понравилась эта статья.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Если Вами в статье была найдена какая-то ошибка или неточность, прошу сообщить мне. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Публикация на сторонних ресурсах разрешается &amp;lt;u&amp;gt;'''ТОЛЬКО С УКАЗАНИЕМ НИКА АВТОРА'''&amp;lt;/u&amp;gt;. При публикации на стороннем ресурсе &amp;lt;u&amp;gt;'''ЗАПРЕЩЕНО УДАЛЯТЬ РАЗДЕЛ БЛАГОДАРНОСТИ'''&amp;lt;/u&amp;gt;!&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Просьба при внесении правок оставлять свою подпись.'''&lt;br /&gt;
== Благодарности ==&lt;br /&gt;
Я выражаю искрении благодарности следующим людям: '''K.D.''', '''HikeR''', '''Tron''' и всем остальным кто помогал в сборке движка. &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ну и огромное спасибо '''GSC Game World''' за замечательный проект ST и за отсутствие гонений из-за использования исходных кодов движка :-).&lt;br /&gt;
== Автор ==&lt;br /&gt;
'''Article is prepared ОМКНМ''' [http://vk.com/omknm]&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Author: KIRAY''' [http://vk.com/yar_kiraev]&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Дата публикации: &amp;lt;u&amp;gt;11.07.2014&amp;lt;/u&amp;gt;. &amp;lt;br/&amp;gt;&lt;br /&gt;
[[Участник:KIRAY|KIRAY]] ([[Обсуждение участника:KIRAY|обсуждение]]) 11:07, 11 июля 2014 (MSK)&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_12.jpg</id>
		<title>Файл:Ss 12.jpg</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_12.jpg"/>
				<updated>2014-07-11T06:15:29Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: Правка xrGame.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Правка xrGame.&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_11.jpg</id>
		<title>Файл:Ss 11.jpg</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_11.jpg"/>
				<updated>2014-07-11T06:11:04Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: Правка LuaBind.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Правка LuaBind.&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_10.jpg</id>
		<title>Файл:Ss 10.jpg</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_10.jpg"/>
				<updated>2014-07-11T06:04:17Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: Структура Bool2Type.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Структура Bool2Type.&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_9.jpg</id>
		<title>Файл:Ss 9.jpg</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_9.jpg"/>
				<updated>2014-07-11T06:02:47Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: Кусок кода xrGame.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Кусок кода xrGame.&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_8.jpg</id>
		<title>Файл:Ss 8.jpg</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_8.jpg"/>
				<updated>2014-07-11T06:01:14Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: Кусок кода xrGame.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Кусок кода xrGame.&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_7.jpg</id>
		<title>Файл:Ss 7.jpg</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_7.jpg"/>
				<updated>2014-07-11T05:13:16Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: Свойства проекта.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Свойства проекта.&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_6.jpg</id>
		<title>Файл:Ss 6.jpg</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_6.jpg"/>
				<updated>2014-07-11T05:11:45Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: Свойства проекта.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Свойства проекта.&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_5.jpg</id>
		<title>Файл:Ss 5.jpg</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_5.jpg"/>
				<updated>2014-07-11T05:04:56Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: Свойства BugTrap.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Свойства BugTrap.&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_4.jpg</id>
		<title>Файл:Ss 4.jpg</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_4.jpg"/>
				<updated>2014-07-11T05:03:15Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: Свойства BugTrap.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Свойства BugTrap.&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_3.jpg</id>
		<title>Файл:Ss 3.jpg</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_3.jpg"/>
				<updated>2014-07-11T04:59:27Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: Конфигурации проектов.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Конфигурации проектов.&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_2.jpg</id>
		<title>Файл:Ss 2.jpg</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_2.jpg"/>
				<updated>2014-07-11T04:54:18Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: Мастер преобразований Visual Studio.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Мастер преобразований Visual Studio.&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_1.jpg</id>
		<title>Файл:Ss 1.jpg</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_1.jpg"/>
				<updated>2014-07-11T04:51:03Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: S:\xr_3da\xr_3da.sln&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;S:\xr_3da\xr_3da.sln&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_0.jpg</id>
		<title>Файл:Ss 0.jpg</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_0.jpg"/>
				<updated>2014-07-11T04:38:02Z</updated>
		
		<summary type="html">&lt;p&gt;KIRAY: Виртуальные диски.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Виртуальные диски.&lt;/div&gt;</summary>
		<author><name>KIRAY</name></author>	</entry>

	</feed>