<?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=Xenus-Ghost</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=Xenus-Ghost"/>
		<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/Xenus-Ghost"/>
		<updated>2026-06-13T23:17:00Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.22.6</generator>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=3dsmax._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B5%D0%B9_%D0%B8_%D0%B8%D1%85_%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%B8%D0%B3%D1%80%D1%83</id>
		<title>3dsmax. Создание моделей и их добавление в игру</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=3dsmax._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B5%D0%B9_%D0%B8_%D0%B8%D1%85_%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%B8%D0%B3%D1%80%D1%83"/>
				<updated>2011-07-02T16:49:05Z</updated>
		
		<summary type="html">&lt;p&gt;Xenus-Ghost: Отмена правки 11204 участника 94.41.246.79 (обсуждение)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Создание моделей и добавление в игру==&lt;br /&gt;
&lt;br /&gt;
Итак, для работы нам понадобятся следующие инструменты:&lt;br /&gt;
&lt;br /&gt;
* '''Autodesk 3D Studio Max''' версий '''6''','''7''' или '''8''' (на других вроде плагин экспорта не работает, но я не уверен)&lt;br /&gt;
* '''3DS Max STALKER Plug-In''' для экспорта в формат object (.obj)&lt;br /&gt;
* '''S.T.A.L.K.E.R. SDK'''&lt;br /&gt;
&lt;br /&gt;
При создании собственных текстур потребуется:&lt;br /&gt;
&lt;br /&gt;
* '''Adobe Photoshop'''&lt;br /&gt;
* '''DDS-плагин''' от nVidia&lt;br /&gt;
&lt;br /&gt;
Приступим к креативу. Пример будем рассматривать на примитивной модели кубика.&lt;br /&gt;
&lt;br /&gt;
'''1)''' Запускаем 3DS Max и создаем наш кубик.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Model_Tutorial_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''2)''' Далее накладываем на него текстуру. Запускаем редактор материалов (кнопка «М» по дефолту), выбираем тип материала, нажав на кнопку Standart (1), и в раскрывшемся списке выбираем S.T.A.L.K.E.R. Mtl (2), далее, в свитке Blinn Basic Parameters, щелкаем на маленькую кнопку напротив Diffuse (3), в раскрывшемся списке выбираем Bitmap (4), и выбираем требуемую текстуру из папки gamedata нашего SDK. Для примера я выбрал ...gamedata\textures\wpn\wpn_pkm_lenta.dds.&lt;br /&gt;
&lt;br /&gt;
Далее назначаем нашу текстуру для кубика и настраиваем ее внешний вид либо в самом Редакторе Материалов, либо, если объект сложный, - модификатором Unwrap UVW (кто работает в 3DS Max - знает). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Model_Tutorial_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''3)''' После текстуривания нашего объекта отмасштабируем его до нормальных размеров игры (для облегчения этого процесса я импортирую в сцену какую-нибудь модель из игры, например, АК-74), и приступаем к созданию костей. &lt;br /&gt;
&lt;br /&gt;
Идем в Create -&amp;gt; Systems -&amp;gt; Bones и создаем пару костей внутри нашей коробки приблизительно такого вида (см. рисунок). Первую косточку обзываем, например, kost, вторую можно не трогать и вообще ее можно потом удалить.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Model_Tutorial_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''4)''' Теперь выделяем нашу коробку и в закладке Modify добавляем ей модификатор Physique (1). В свертке модификатора жмем кнопку Attach to Node (2), кликаем по нашей косточке с именем kost и в развернувшемся списке выбираем Riquid (3) и жмем Initialize (4) (см. рисунок).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Model_Tutorial_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''5)''' Далее, в свитке Physique level of Detail меняем параметр Skin Update на Rigid, в дереве модификатора Physique выбираем вершины нашего объекта (Vertex), выделяем все вершины нашего кубика при нажатой кнопке Select, выбираем тип вершин Rigid (4), жмем кнопку Assign to Link (5) и кликаем по нашей косточке.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Model_Tutorial_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''6)''' Теперь все готово к экспорту в формат object (.obj), который понимает Actor Editor из SDK. Идем на закладку Utilites и жмем кнопку S.T.A.L.K.E.R. Export (1) (кнопка эта у вас там будет находиться при правильной настройке плагина). Выделяем наш кубик и жмем кнопку Export Skin. Сохраняем, наблюдая лог в окошке на отсутствие ошибок.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Model_Tutorial_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''7)''' Запускаем Actor Editor из комплекта SDK и загружаем нашу сохраненную модель и видим приблизительно следующую картину:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Model_Tutorial_7.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''8)''' В панели Object Items видим характеристики нашего объекта (нас интересуют только Surfaces и Bones). В Surfaces задаются материалы и шейдеры для нашего объекта. Раскрываем список Surfaces, выбираем 01-Default (это я забыл материал в Максе обозвать) и устанавливаем параметры:&lt;br /&gt;
&lt;br /&gt;
* '''Shader:''' models/model &lt;br /&gt;
* '''Compile:''' def_shaders/def_vertex&lt;br /&gt;
* '''Game Mtl:''' objects/small_box&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Model_Tutorial_8.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''9)''' Видимо использовать можно и другие, но я еще не разобрался до конца.&lt;br /&gt;
&lt;br /&gt;
Далее настраиваем нашу косточку. Раскрываем список Bones, выбираем нашу kost. Далее жмем напротив Generate Shape кнопку All, настраиваем вес параметром Mass, можно настроить материал параметром Game Material (я оставил default_object) затем выбираем тип баунд_бокса нажатием кнопки Type. Я выбрал Box. Его кстати можно потом вращать, двигать и масштабировать.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Model_Tutorial_9.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''10)''' После настройки параметров экспортируем нашу коробочку в .ogf-файл из меню File -&amp;gt; Export, и подменяем полученной моделью, например, болт. Далее ходим и швыряемся магазинами от ПКМ в головы зазевавшимся неписям :)&lt;br /&gt;
&lt;br /&gt;
==Авторы==&lt;br /&gt;
&lt;br /&gt;
'''Статья создана:''' [[Участник:tambovski|tambovski]].&lt;br /&gt;
[[Категория: Wireframe]]&lt;/div&gt;</summary>
		<author><name>Xenus-Ghost</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D0%BA%D0%B2%D0%B0%D0%B4%D0%BE%D0%B2</id>
		<title>Создание сквадов</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D0%BA%D0%B2%D0%B0%D0%B4%D0%BE%D0%B2"/>
				<updated>2011-06-26T20:35:55Z</updated>
		
		<summary type="html">&lt;p&gt;Xenus-Ghost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, наверное многие при создании новых локаций для зова припяти сталкивались с вопросом как создать скавад. Данная статья поможет новичкам это понять.&lt;br /&gt;
Сразу предупреждаю что сдесь '''не рассматривается работа с ACDC, включение/подключение/переподключение локаций''' т.к. метериала по&lt;br /&gt;
этому и так полно. На уровне уже должна бать сгенерирована АИ-сетка.&lt;br /&gt;
&lt;br /&gt;
Откроем уровень на котором нужно создать сквад и поставим один граф поинт и зону '''smart_terrain''':&lt;br /&gt;
{|&lt;br /&gt;
|valign=left|[[Изображение:sqcr_01.jpg|thumb|600px]]&lt;br /&gt;
|}&lt;br /&gt;
Настройка:&lt;br /&gt;
*Для удобства задаём имя по имени уровня, так как я уровень назвал '''atp''' то имя смарт террайна будет '''atp'''_01;&lt;br /&gt;
*В '''custom_data''' создаём секцию '''[smart_terrain]''' и путь до файла с настройками смарта;&lt;br /&gt;
*В '''restrictor type''' ставим '''NOT A restrictor''';&lt;br /&gt;
*Граф поинт настраивать не нужно;&lt;br /&gt;
&lt;br /&gt;
Создадим работы для этого смарта:&lt;br /&gt;
&lt;br /&gt;
*ИМЕНА WAY POINTS ДЛЯ РАБОТЫ ДОЛЖНЫ ИМЕНОВАТСЯ &amp;lt;имя_смарта&amp;gt;_&amp;lt;название_работы|walker|guard|collector и т.д.&amp;gt;_&amp;lt;номер работы&amp;gt;_&amp;lt;walk|look&amp;gt;&lt;br /&gt;
например ''atp_01_walker_1_walk''&lt;br /&gt;
*Один двухточечный walk:&lt;br /&gt;
{|&lt;br /&gt;
|valign=left|[[Изображение:sqcr_02.jpg|thumb|600px]]&lt;br /&gt;
|} &lt;br /&gt;
*Один двухточечный '''look''':&lt;br /&gt;
{|&lt;br /&gt;
|valign=left|[[Изображение:sqcr_04.jpg|thumb|600px]]&lt;br /&gt;
|} &lt;br /&gt;
*Один одноточечный '''walk''':&lt;br /&gt;
{|&lt;br /&gt;
|valign=left|[[Изображение:sqcr_05.jpg|thumb|600px]]&lt;br /&gt;
|} &lt;br /&gt;
*Один круговой путь '''guard''':&lt;br /&gt;
{|&lt;br /&gt;
|valign=left|[[Изображение:sqcr_06.jpg|thumb|600px]]&lt;br /&gt;
|} &lt;br /&gt;
И рядом поставить точку с именем '''atp_01_guard_1_look'''&lt;br /&gt;
&lt;br /&gt;
Ставим на карту '''actor''', сохраняем сцену и нажимаем '''complete -&amp;gt; build''' и закрываем редактор.&lt;br /&gt;
&lt;br /&gt;
[[Категория:SDK COP]]&lt;/div&gt;</summary>
		<author><name>Xenus-Ghost</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D0%BA%D0%B2%D0%B0%D0%B4%D0%BE%D0%B2</id>
		<title>Создание сквадов</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D0%BA%D0%B2%D0%B0%D0%B4%D0%BE%D0%B2"/>
				<updated>2011-06-26T20:35:14Z</updated>
		
		<summary type="html">&lt;p&gt;Xenus-Ghost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, наверное многие при создании новых локаций для зова припяти сталкивались с вопросом как создать скавад. Данная статья поможет новичкам это понять.&lt;br /&gt;
Сразу предупреждаю что сдесь '''не рассматривается работа с ACDC, включение/подключение/переподключение локаций''' т.к. метериала по&lt;br /&gt;
этому и так полно. На уровне уже должна бать сгенерирована АИ-сетка.&lt;br /&gt;
&lt;br /&gt;
Откроем уровень на котором нужно создать сквад и поставим один граф поинт и зону '''smart_terrain''':&lt;br /&gt;
{|&lt;br /&gt;
|valign=left|[[Изображение:sqcr_01.jpg|thumb|600px]]&lt;br /&gt;
|}&lt;br /&gt;
Настройка:&lt;br /&gt;
*Для удобства задаём имя по имени уровня, так как я уровень назвал '''atp''' то имя смарт террайна будет '''atp'''_01;&lt;br /&gt;
*В '''custom_data''' создаём секцию '''[smart_terrain]''' и путь до файла с настройками смарта;&lt;br /&gt;
*В '''restrictor type''' ставим '''NOT A restrictor''';&lt;br /&gt;
*Граф поинт настраивать не нужно;&lt;br /&gt;
&lt;br /&gt;
Создадим работы для этого смарта:&lt;br /&gt;
&lt;br /&gt;
*ИМЕНА WAY POINTS ДЛЯ РАБОТЫ ДОЛЖНЫ ИМЕНОВАТСЯ &amp;lt;имя_смарта&amp;gt;_&amp;lt;название_работы|walker|guard|collector и т.д.&amp;gt;_&amp;lt;номер работы&amp;gt;_&amp;lt;walk|look&amp;gt;&lt;br /&gt;
например ''atp_01_walker_1_walk''&lt;br /&gt;
*Один двухточечный walk:&lt;br /&gt;
{|&lt;br /&gt;
|valign=left|[[Изображение:sqcr_02.jpg|thumb|600px]]&lt;br /&gt;
|} &lt;br /&gt;
*Один двухточечный '''look''':&lt;br /&gt;
{|&lt;br /&gt;
|valign=left|[[Изображение:sqcr_04.jpg|thumb|600px]]&lt;br /&gt;
|} &lt;br /&gt;
*Один одноточечный '''walk''':&lt;br /&gt;
{|&lt;br /&gt;
|valign=left|[[Изображение:sqcr_05.jpg|thumb|600px]]&lt;br /&gt;
|} &lt;br /&gt;
*Один круговой путь '''guard''':&lt;br /&gt;
{|&lt;br /&gt;
|valign=left|[[Изображение:sqcr_06.jpg|thumb|600px]]&lt;br /&gt;
|} &lt;br /&gt;
И рядом поставить точку с именем '''atp_01_guard_1_look'''&lt;br /&gt;
&lt;br /&gt;
Ставим на карту '''actor''', сохраняем сцену и нажимаем '''complete -&amp;gt; build''' и закрываем редактор.&lt;br /&gt;
&lt;br /&gt;
[[Категория:SDK CoP]]&lt;/div&gt;</summary>
		<author><name>Xenus-Ghost</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BD%D0%B2%D0%B5%D1%80%D1%82%D0%B0%D1%86%D0%B8%D1%8F_%D0%9D%D0%9F%D0%A1_%D0%B8%D0%B7_%D0%A7%D0%9D/%D0%97%D0%9F_%D0%B2_%D0%A2%D0%A7</id>
		<title>Конвертация НПС из ЧН/ЗП в ТЧ</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BD%D0%B2%D0%B5%D1%80%D1%82%D0%B0%D1%86%D0%B8%D1%8F_%D0%9D%D0%9F%D0%A1_%D0%B8%D0%B7_%D0%A7%D0%9D/%D0%97%D0%9F_%D0%B2_%D0%A2%D0%A7"/>
				<updated>2011-06-19T14:34:09Z</updated>
		
		<summary type="html">&lt;p&gt;Xenus-Ghost: Отмена правки 11138 участника 80.79.179.8 (обсуждение)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория:SDK]]&lt;br /&gt;
==Инструментарий==&lt;br /&gt;
В данной статье нам понадобится следующее программное обеспечение:&lt;br /&gt;
* '''[http://files.gsc-game.com/st/xray-sdk-setup-v0.4.exe X-Ray SDK 0.4]'''&lt;br /&gt;
* Конвертер от '''bardak''''a [http://www.stalkerin.gameru.net/downloads/SDK/ai_compiler/xray_re-tools-10sep2008.rar xray_re-tools-10sep2008]&lt;br /&gt;
==Использование конвертера от bardak'a==&lt;br /&gt;
Как мы уже знаем, '''Actor Editor''' из пакета '''SDK 0.4''' не открывает динамические игровые модели формата '''*.ogf'''. Он воспринимает только формат редактора - '''*.object'''. Но такого формата в игре нет, потому мы и воспользуемся конвертером от '''bardak''''a.&lt;br /&gt;
&lt;br /&gt;
Открываем папку с конвертером. Оттуда нам нужен только '''converter'''. Работа с ним элементарна.&lt;br /&gt;
&lt;br /&gt;
Если у вас есть распакованные архивы для ЧН или ЗП - то скопируйте оттуда любую модель НПС (лучше ту, которой нет в ТЧ, а то вся работа пойдет даром:)). Модели НПС находятся по адресу:&lt;br /&gt;
&amp;lt;code&amp;gt;gamedata\meshes\actors\...&amp;lt;/code&amp;gt;&lt;br /&gt;
Для примера, я взял модель сталкера группировки &amp;quot;Чистое небо&amp;quot; в противогазе. Она находилась по адресу:&lt;br /&gt;
&amp;lt;code&amp;gt;gamedata\meshes\actors\stalker_nebo\stalker_nebo_2.ogf&amp;lt;/code&amp;gt;&lt;br /&gt;
Копируем модель в папку с конвертером. Далее нам ничего настраивать не нужно. Создаем текстовый документ, открываем его обычнейшим блокнотом и пишем в нем такой код:&lt;br /&gt;
&amp;lt;code&amp;gt;converter -ogf -object &amp;lt;имя_модели.ogf&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Почему именно так а не иначе, смотрим в папке '''docs''' в корне конвертера.&lt;br /&gt;
В моем случае я писал:&lt;br /&gt;
&amp;lt;code&amp;gt;converter -ogf -object stalker_nebo_2.ogf&lt;br /&gt;
pause&amp;lt;/code&amp;gt;&lt;br /&gt;
Теперь в блокноте жмем '''Файл&amp;gt;Сохранить как...'''&lt;br /&gt;
В строке '''Тип файла''' ставим значение &amp;quot;'''Все файлы (*.*)'''&amp;quot;, а в строке '''Имя файла''' пишем &amp;quot;'''ваше_имя_файла.bat'''&amp;quot;. Кодировка не важна. В окне выбора директории выбираем корневой каталог нашего конвертера и жмем '''&amp;quot;Сохранить&amp;quot;'''. Я выбрал название:&lt;br /&gt;
&amp;lt;code&amp;gt;model.bat&amp;lt;/code&amp;gt;&lt;br /&gt;
Теперь мы видим, что появился новый файл '''ваше_имя_файла.bat'''. Нажимаем на него. При выполнении всего вышеописанного у вас должен создаться файл '''имя_модели.object'''. Это наш сконвертированный НПС.&lt;br /&gt;
Работа с конвертером закончена.&lt;br /&gt;
==Настройка модели в Actor Editor'e==&lt;br /&gt;
Копируем полученный в конвертере файл '''имя_модели.object''' в папку:&lt;br /&gt;
&amp;lt;code&amp;gt;$sdk_root\level_editor\rawdata\objects\editor, где $sdk_root - путь к вашему SDK.&amp;lt;/code&amp;gt;&lt;br /&gt;
Например у меня это:&lt;br /&gt;
&amp;lt;code&amp;gt;E:\Program Files\X-Ray SDK\level_editor\rawdata\objects\editor&amp;lt;/code&amp;gt;&lt;br /&gt;
Открываем '''Actor Editor''' из пакета '''SDK'''.&lt;br /&gt;
Далее жмем '''File&amp;gt;Load...''' в правом верхнем углу интерфейса.&lt;br /&gt;
Выбираем '''$sdk_root\level_editor\rawdata\objects\editor\имя_модели.object'''&lt;br /&gt;
&lt;br /&gt;
Загрузится модель вашего НПС, но будет она белым пятном. Сразу же выскочит окошко, именуемое '''Log'''.&lt;br /&gt;
&lt;br /&gt;
В самом низу этого окошка вы увидите строку, выделенную бледно-розовым цветом. Это строка, содержащая ошибку.&lt;br /&gt;
&lt;br /&gt;
В нашем случае это:&lt;br /&gt;
&amp;lt;code&amp;gt;Can't find shader 'models\model_pn'&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Файл:Npc_convert_lesson_01.png|950px|thumb|center|Модель без настроек в Actor Editor'e]]&lt;br /&gt;
&lt;br /&gt;
Это сообщение в логе означает, что в базе шейдеров SDK нет шейдера '''models\model_pn''', примененного к этой модели.&lt;br /&gt;
&lt;br /&gt;
Это можно исправить. Идем на вкладку '''Surfaces''' справа на интерфейсе. '''Surface''' переводится дословно как '''внешность/поверхность'''.&lt;br /&gt;
&lt;br /&gt;
Ищем нашу злаполучную внешность, к которой применен шейдер '''models\model_pn'''. В моем случае это была единственная внешность '''act_stalker_nebo_2S&amp;lt;sup&amp;gt;[1]&amp;lt;/sup&amp;gt;'''. В ней нужно изменить шейдер на другой, приближенный к оригиналу. Жмем на троеточие'''&amp;lt;sup&amp;gt;[2]&amp;lt;/sup&amp;gt;''' напротив '''Shader''' и в открывшемся окошке выбираем шейдер '''models\model&amp;lt;sup&amp;gt;[3]&amp;lt;/sup&amp;gt;'''. '''Жмем Ok&amp;lt;sup&amp;gt;[4]&amp;lt;/sup&amp;gt;'''.&lt;br /&gt;
[[Файл:Npc_convert_lesson_02.png|950px|thumb|center|Выбор шейдера]]&lt;br /&gt;
&lt;br /&gt;
Применили новый шейдер. Теперь в логе может появиться новая ошибка:&lt;br /&gt;
&amp;lt;code&amp;gt;Can't find texture 'act\act_stalker_nebo_2'&amp;lt;/code&amp;gt;&lt;br /&gt;
Не трудно догадаться, что система не может найти текстуру '''act\act_stalker_nebo_2''' в gamedat'e '''SDK'''.&lt;br /&gt;
&lt;br /&gt;
Это тоже исправимо. Нужно скопировать текстуры для этой модели из текстур ЧН\ЗП, и вставть их в текстуры SDK.&lt;br /&gt;
Если же ошибки с текстурами не возникло - наше белое пятно должно превратиться в НПС.&lt;br /&gt;
[[Файл:Npc_convert_lesson_03.png|950px|thumb|center|НПС с текстурой]]&lt;br /&gt;
==Работа с анимациями==&lt;br /&gt;
===Снятие анимаций с модели===&lt;br /&gt;
Теперь нужно выбрать вкладку '''Motions''' справа на интерфейсе. Здесь нас интересует только '''Motion reference'''. Наведите курсор на значение этого поля, и вы увидите какие сборники анимаций проигрывает данная модель. В моем случае (как и в большинстве случаев) это:&lt;br /&gt;
&amp;lt;code&amp;gt;actors\stalker_animation,actors\stalker_scripts_animation,actors\stalker_smart_cover_animation,actors\stalker_scenario_animation&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Файл:Npc convert lesson 04.png|950px|thumb|center|Список отыгрываемых анимаций]]&lt;br /&gt;
Теперь нужно запомнить анимации, прописанные в '''Motion reference''', можно записать в блокнотик, проблем с этим возникнуть не должно. Но их нужно, запомнить, т.к. сейчас мы будем сбрасывать значение этого поля.&lt;br /&gt;
&lt;br /&gt;
Делается это так: Жмем на троеточие напротив '''Motion reference&amp;lt;sup&amp;gt;[1]&amp;lt;/sup&amp;gt;'''. Снимаем галочки со всех сборников анимаций'''&amp;lt;sup&amp;gt;[2]&amp;lt;/sup&amp;gt;''' и жмем '''Ok&amp;lt;sup&amp;gt;[3]&amp;lt;/sup&amp;gt;'''. Если же в окошке, где нужно снимать галочки, вообще нет анимаций, а просто пустое окошко, ничего страшного в этом нет. Просто в ресурсах '''SDK''' нет этих анимаций, в таком случае сразу жмем '''Ok'''.&lt;br /&gt;
===Конвертирование сборников анимаций===&lt;br /&gt;
Теперь пришло время вспомнить, какие сборники анимации отыгрывает модель (помнится, мы записали это в блокнотик:)). Нужно найти эти сборники. Они лежат по адресу:&lt;br /&gt;
&amp;lt;code&amp;gt;Корень вашего ЧН или ЗП\gamedata\meshes\actors\...&amp;lt;/code&amp;gt;&lt;br /&gt;
Копируем нужные нам сборники из этой папки в корневую папку со старым добрым '''конвертером от bardak''''a.&lt;br /&gt;
В корне конвертера создаем текстовый документ, открываем его блокнотом и в нем пишем следующий код:&lt;br /&gt;
&amp;lt;code&amp;gt;converter -omf -skls &amp;lt;имя_сборника_анимаций&amp;gt;.omf&amp;lt;/code&amp;gt;&lt;br /&gt;
Вместо имени сборника анимаций подставляем нужный сборник, например:&lt;br /&gt;
&amp;lt;code&amp;gt;converter -omf -skls stalker_animation.omf&amp;lt;/code&amp;gt;&lt;br /&gt;
Сохраняем этот текст как '''.bat''' файл (как это сделать оговаривалось ранее). Запускаем батник, и через секунд 5-10 получаем рядом новый файл '''имя_сборника_анимаций.skls'''.&lt;br /&gt;
&lt;br /&gt;
Теперь поочередно вставляем в батник другие названия нужных нам сборников анимаций, сохраняем и запускаем. После этих операций у нас должны появиться нужные нам сборники анимаций, но уже в формате '''.skls'''. Если все так, как надо - конвертация завершена.&lt;br /&gt;
===Применение сконвертированных анимаций к модели===&lt;br /&gt;
Теперь копируем все полученные сборники анимаций в каталог&lt;br /&gt;
&amp;lt;code&amp;gt;$sdk_root\level_editor\import&amp;lt;/code&amp;gt;&lt;br /&gt;
Можно и в любой другой, но мне кажется удобнее всего именно в этот.&lt;br /&gt;
Далее открываем '''Actor Editor'''. &lt;br /&gt;
Как мы видим, теперь во вкладке '''Motions''' появилось поле '''Edit''' с кнопками '''Append''', '''Delete''' и '''Save'''. Жмем '''Append''' и выбираем все наши сборники анимаций по очереди.&lt;br /&gt;
[[Файл:Npc convert lesson 05.png|950px|thumb|center|Применение анимаций к модели]]&lt;br /&gt;
В итоге у меня получилось 2543 анимации во вкладке '''Motions''' (по счетчику '''Motion count''').&lt;br /&gt;
===Экспорт анимаций в .omf сборник===&lt;br /&gt;
Теперь нужно экспортировать наши анимации в наш собственный сборник. Это делается путем нажатия File&amp;gt;Export&amp;lt;sup&amp;gt;[1]&amp;lt;/sup&amp;gt;&amp;gt;Export OMF...&amp;lt;sup&amp;gt;[2]&amp;lt;/sup&amp;gt; в правом верхнем углу интерфейса.&lt;br /&gt;
&lt;br /&gt;
Внимание! Выбирать директорию нужно тщательно, не куда попало, а именно в папку '''gamedata\meshes''' вашего '''SDK''', потому что после экспорта полученный сборник должен находится в том же самом месте в игре, где он был и в '''SDK'''. Например, если в SDK он лежал по адресу:&lt;br /&gt;
&amp;lt;code&amp;gt;$sdk_root\level_editor\gamedata\meshes\actors\nebo_animations.omf&amp;lt;/code&amp;gt;&lt;br /&gt;
то в игре он должен лежать по адресу&lt;br /&gt;
&amp;lt;code&amp;gt;Корень ТЧ\gamedata\meshes\actors\nebo_animations.omf&amp;lt;/code&amp;gt;&lt;br /&gt;
В противном случае модель не сможет найти анимации и мы получим мгновенный вылет.&lt;br /&gt;
Если определились с местом проживания сборника - жмем '''Сохранить'''.&lt;br /&gt;
[[Файл:Npc convert lesson 06.png|950px|thumb|center|Экспорт .omf сборника]]&lt;br /&gt;
Когда экспорт завершен, отмечаем все анимации во вкладке '''Motions''' и жмем '''Delete'''.&lt;br /&gt;
Все анимации удалили. Теперь нужно нажать на троеточие напротив '''Motion reference''' и в окошке установить галочку напротив сборника анимаций, который мы только что создали. Теперь жмем '''Ok'''.&lt;br /&gt;
Работа с анимациями завершена.&lt;br /&gt;
==Работа с костями==&lt;br /&gt;
Справа на интерфейсе жмем '''Bone Parts&amp;lt;sup&amp;gt;[1]&amp;lt;/sup&amp;gt;''', что находится на вкладке '''Model'''. В появившемся окошке жмем снизу кнопочку '''Reset To Default&amp;lt;sup&amp;gt;[2]&amp;lt;/sup&amp;gt;'''. После этого действия у нас в левой верхней таблице появится множество костей. Выберите оттуда кости (это делается с помощью зажатия клавиши '''Ctrl'''):&lt;br /&gt;
&amp;lt;code&amp;gt;bip01_spine     &lt;br /&gt;
bip01_spine1 &lt;br /&gt;
bip01_spine2&lt;br /&gt;
bip01_neck&lt;br /&gt;
bip01_l_clavicle&lt;br /&gt;
bip01_l_upperarm&lt;br /&gt;
bip01_l_forearm&lt;br /&gt;
bip01_l_hand&lt;br /&gt;
bip01_l_finger0&lt;br /&gt;
bip01_l_finger01&lt;br /&gt;
bip01_l_finger02&lt;br /&gt;
bip01_l_finger1&lt;br /&gt;
bip01_l_finger11&lt;br /&gt;
bip01_l_finger12&lt;br /&gt;
bip01_l_finger2&lt;br /&gt;
bip01_l_finger21&lt;br /&gt;
bip01_l_finger22&lt;br /&gt;
bip01_r_clavicle&lt;br /&gt;
bip01_r_upperarm&lt;br /&gt;
bip01_r_forearm&lt;br /&gt;
bip01_r_hand&lt;br /&gt;
bip01_r_finger0&lt;br /&gt;
bip01_r_finger01&lt;br /&gt;
bip01_r_finger02&lt;br /&gt;
bip01_r_finger1&lt;br /&gt;
bip01_r_finger11&lt;br /&gt;
bip01_r_finger12&lt;br /&gt;
bip01_r_finger2&lt;br /&gt;
bip01_r_finger21&lt;br /&gt;
bip01_r_finger22&lt;br /&gt;
bip01_head&amp;lt;/code&amp;gt;&lt;br /&gt;
и перетащите их в правую верхную таблицу. Обзовите эту таблицу '''&amp;quot;Torso&amp;quot;&amp;lt;sup&amp;gt;[3]&amp;lt;/sup&amp;gt;'''.&lt;br /&gt;
Далее выберите кости:&lt;br /&gt;
&amp;lt;code&amp;gt;eye_left&lt;br /&gt;
eye_right&lt;br /&gt;
eyelid_1&lt;br /&gt;
jaw_1&amp;lt;/code&amp;gt;&lt;br /&gt;
и перетащите их в правую нижнюю таблицу и обзовите ее '''&amp;quot;Head&amp;quot;&amp;lt;sup&amp;gt;[4]&amp;lt;/sup&amp;gt;'''.&lt;br /&gt;
Все. Жмем '''Ok&amp;lt;sup&amp;gt;[5]&amp;lt;/sup&amp;gt;'''.&lt;br /&gt;
[[Файл:Npc convert lesson 07.png|950px|thumb|center|Работа с костями]]&lt;br /&gt;
Работа с костями закончена.&lt;br /&gt;
==Редактирование User Data для модели==&lt;br /&gt;
Жмем строку '''Object&amp;lt;sup&amp;gt;[1]&amp;lt;/sup&amp;gt;''' справа на интерфейсе. Идем в самый низ и видим строку '''User Data'''. Жмем на троеточие'''&amp;lt;sup&amp;gt;[2]&amp;lt;/sup&amp;gt;''' напротив и вставляем вместо того что там сейчас вот эту конструкцию'''&amp;lt;sup&amp;gt;[3]&amp;lt;/sup&amp;gt;''':&lt;br /&gt;
&amp;lt;code&amp;gt;[capture]&lt;br /&gt;
&lt;br /&gt;
bone		 = bip01_tail      ; bone for capture&lt;br /&gt;
distance         = 0.3             ; distance - less this distance between &lt;br /&gt;
                                   ; bome and capture taget object is captured&lt;br /&gt;
time_limit       = 500             ; max time for trying to capture object&lt;br /&gt;
pull_force       = 10000.          ; max force used to bring the taget to capture bone&lt;br /&gt;
pull_distance    = 1.              ; max distance taget can be puled&lt;br /&gt;
velocity_scale   = 0.001           ; velocity scale for pulling 1- normal&lt;br /&gt;
capture_force    = 100000.         ; max force for holding taget&lt;br /&gt;
&lt;br /&gt;
[disable]&lt;br /&gt;
&lt;br /&gt;
linear_factor   =0.7&lt;br /&gt;
angular_factor  =0.7&lt;br /&gt;
&lt;br /&gt;
[particles_bones]&lt;br /&gt;
&lt;br /&gt;
bone = bip01_head,0,0,0&lt;br /&gt;
bone = bip01_spine1,0,0,0&lt;br /&gt;
bone = bip01_l_upperarm,0,0,0&lt;br /&gt;
bone = bip01_r_upperarm,0,0,0&lt;br /&gt;
bone = bip01_l_forearm,0,0,0&lt;br /&gt;
bone = bip01_r_forearm,0,0,0&lt;br /&gt;
bone = bip01_l_thigh,0,0,0&lt;br /&gt;
bone = bip01_r_thigh,0,0,0&lt;br /&gt;
bone = bip01_l_calf,0,0,0&lt;br /&gt;
bone = bip01_r_calf,0,0,0&lt;br /&gt;
 �&amp;lt;/code&amp;gt;&lt;br /&gt;
Жмем '''Ok&amp;lt;sup&amp;gt;[4]&amp;lt;/sup&amp;gt;'''.&lt;br /&gt;
[[Файл:Npc convert lesson 08.png|950px|thumb|center|Изменение User Data]]&lt;br /&gt;
Работа с моделью завершена.&lt;br /&gt;
==Экспорт модели в .ogf==&lt;br /&gt;
Когда мы завершили работу с моделью, нужно сконвертировать ее в формат, понятный игре. Благо для этого в '''Actor Editor''''e для этого есть встроенный инструментарий. Жмем '''File&amp;gt;Export&amp;gt;Export OGF...'''. Думаю скрины для этого не нужны, т.к. такую же операцию мы прпоизводили с экспортом сборника анимаций. Саму модель можно обзывать как угодно и сохранять куда угодно.&lt;br /&gt;
==Применение модели в игре==&lt;br /&gt;
===Файл textures.ltx===&lt;br /&gt;
Нам нужно скопировать 2 файла из '''gamedat''''ы SDK в '''gamedat''''у нашего ТЧ.&lt;br /&gt;
Это файл нашего сборника анимаций (помните, что его месторасположение должно быть точно как в SDK) и собственно сама модель.&lt;br /&gt;
Затем нужно в папке '''textures''' из геймдаты нашего ТЧ найти файлик '''textures.ltx''' и вставить в секцию '''[types]''' имена текстур, которые использует наша модель. В моем случае это '''act\act_stalker_nebo_2''' и '''act\act_stalker_nebo_2_bump'''. &lt;br /&gt;
Текстуре должно быть присвоено нулевое значение, а бампу = 2.&lt;br /&gt;
&lt;br /&gt;
'''ВПРИНЦИПЕ, ЭТОТ ХОД НЕОБЯЗАТЕЛЕН. ОБЫЧНО МОЖНО И БЕЗ НЕГО.'''&lt;br /&gt;
===Присвоение модели любому НПС===&lt;br /&gt;
Теперь нужно дать какому-нибудь НПС из игры нашу модель. Пусть это будет волк!&lt;br /&gt;
Открываем файл '''gamedata\config\gameplay\character_desc_escape.xml''' с помощью блокнота. Находим там практически в самом начале секцию Волка:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;!---------------------------------------esc_wolf-----------------------------------------------------&amp;gt;&lt;br /&gt;
	&amp;lt;specific_character id=&amp;quot;esc_wolf&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;esc_wolf_name&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_stalker_neytral_balon_1&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_wolf_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_wolf&amp;lt;/class&amp;gt;&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;434&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;5&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&amp;lt;money min=&amp;quot;600&amp;quot; max=&amp;quot;2000&amp;quot; infinitive=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;-1&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\neytral\stalker_neytral_balon_1&amp;lt;/visual&amp;gt;&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_pm \n&lt;br /&gt;
			ammo_9x18_fmj = 1 \n&lt;br /&gt;
			wpn_ak74u \n&lt;br /&gt;
			ammo_5.45x39_fmj \n&lt;br /&gt;
			device_torch \n&lt;br /&gt;
			hand_radio \n&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_4.xml&amp;quot;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;escape_lager_volk_talk&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;dm_hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;dm_cool_info_dialog&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;dm_help_wounded_medkit_dialog&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;tm_wolf_dialog&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;tm_wolf_reward&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
и заменяем ее на:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;!---------------------------------------esc_wolf-----------------------------------------------------&amp;gt;&lt;br /&gt;
	&amp;lt;specific_character id=&amp;quot;esc_wolf&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;esc_wolf_name&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_stalker_neytral_balon_1&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_wolf_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_wolf&amp;lt;/class&amp;gt;&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;434&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;5&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&amp;lt;money min=&amp;quot;600&amp;quot; max=&amp;quot;2000&amp;quot; infinitive=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;-1&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
		&amp;lt;visual&amp;gt;путь, к вашей модели относительно папки meshes&amp;lt;/visual&amp;gt;&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_pm \n&lt;br /&gt;
			ammo_9x18_fmj = 1 \n&lt;br /&gt;
			wpn_ak74u \n&lt;br /&gt;
			ammo_5.45x39_fmj \n&lt;br /&gt;
			device_torch \n&lt;br /&gt;
			hand_radio \n&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_4.xml&amp;quot;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;escape_lager_volk_talk&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;dm_hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;dm_cool_info_dialog&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;dm_help_wounded_medkit_dialog&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;tm_wolf_dialog&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;tm_wolf_reward&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
В моем случае я писал:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;!---------------------------------------esc_wolf-----------------------------------------------------&amp;gt;&lt;br /&gt;
	&amp;lt;specific_character id=&amp;quot;esc_wolf&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;esc_wolf_name&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_stalker_neytral_balon_1&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_wolf_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_wolf&amp;lt;/class&amp;gt;&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;434&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;5&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&amp;lt;money min=&amp;quot;600&amp;quot; max=&amp;quot;2000&amp;quot; infinitive=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;-1&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\nebo\stalker_nebo_2&amp;lt;/visual&amp;gt;&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_pm \n&lt;br /&gt;
			ammo_9x18_fmj = 1 \n&lt;br /&gt;
			wpn_ak74u \n&lt;br /&gt;
			ammo_5.45x39_fmj \n&lt;br /&gt;
			device_torch \n&lt;br /&gt;
			hand_radio \n&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_4.xml&amp;quot;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;escape_lager_volk_talk&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;dm_hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;dm_cool_info_dialog&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;dm_help_wounded_medkit_dialog&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;tm_wolf_dialog&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
		&amp;lt;actor_dialog&amp;gt;tm_wolf_reward&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
===Проба в игре===&lt;br /&gt;
Все, теперь запускаем игру. Желательно начать новую игру, в противном случае Волк может остаться при своей старой модели.&lt;br /&gt;
Вот скрин из игры:&lt;br /&gt;
[[Файл:Конвертированный НПС в игре.jpg|950px|thumb|center|Конвертированный НПС в игре]]&lt;br /&gt;
==Автор==&lt;br /&gt;
Статья создана: [[Участник:Baklan]]&lt;br /&gt;
&lt;br /&gt;
Основа взята у: [[eNdimiOn]]&lt;br /&gt;
&lt;br /&gt;
P.S. При использовании сконвертированных НПС, полученных при исполнении данной статьи, игра может вылетать без лога! Сейчас я работаю над устранением ошибок в работе, есть парочка идей, как смогу - так и проверю.&lt;/div&gt;</summary>
		<author><name>Xenus-Ghost</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B1%D1%80%D0%BE%D0%BD%D0%B8%D0%BA%D0%B0_%D0%B2_%D0%A7%D0%9D</id>
		<title>Создание броника в ЧН</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B1%D1%80%D0%BE%D0%BD%D0%B8%D0%BA%D0%B0_%D0%B2_%D0%A7%D0%9D"/>
				<updated>2011-06-15T08:08:20Z</updated>
		
		<summary type="html">&lt;p&gt;Xenus-Ghost: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;                         '''Создание модифицированного бронежилета в ЧН'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     И так, в этой статье я опишу как создать модифицируемый бронежилет в ЧН. Для примера создадим комбенизон наёмника. Для этого нам понадобятся вот эти файлы:&lt;br /&gt;
&lt;br /&gt;
gamedata\configs\item_upgrades.ltx&lt;br /&gt;
gamedata\configs\misc\outfit.ltx&lt;br /&gt;
gamedata\configs\misc\inventory_upgrades.ltx&lt;br /&gt;
gamedata\configs\misc\stalkers_upgarde_info.ltx&lt;br /&gt;
gamedata\configs\misc\trade\trade_trader_mar_csky.ltx&lt;br /&gt;
gamedata\configs\ui\inventory_upgrade.xml&lt;br /&gt;
gamedata\configs\ui\inventory_upgrade_16.xml&lt;br /&gt;
gamedata\configs\text\rus\st_items_outfit.xml&lt;br /&gt;
&lt;br /&gt;
И так, приступаем. Открываем файл outfit.ltx и в самый конец добавляем:&lt;br /&gt;
&lt;br /&gt;
;---------------------------------------------------------------------------------------------&lt;br /&gt;
;		КОМБЕНИЗОН НАЁМНИКА&lt;br /&gt;
;---------------------------------------------------------------------------------------------&lt;br /&gt;
[killer_outfit]:outfit_base&lt;br /&gt;
GroupControlSection	= spawn_group&lt;br /&gt;
discovery_dependency =&lt;br /&gt;
$spawn 			= &amp;quot;outfit\killer_outfit&amp;quot;&lt;br /&gt;
;$prefetch 		= 32&lt;br /&gt;
class			= E_STLK&lt;br /&gt;
cform           = skeleton&lt;br /&gt;
visual          = dynamics\outfit\stalker_outfit&lt;br /&gt;
actor_visual	= actors\stalker_neutral\stalker_neutral_2.ogf&lt;br /&gt;
player_hud_section	= actor_hud_01&lt;br /&gt;
&lt;br /&gt;
ef_equipment_type	= 3&lt;br /&gt;
&lt;br /&gt;
inv_name			= killer_outfit_name&lt;br /&gt;
inv_name_short		= killer_outfit_name&lt;br /&gt;
description			= killer_outfit_description&lt;br /&gt;
inv_weight			= 5.0&lt;br /&gt;
inv_grid_width		= 2&lt;br /&gt;
inv_grid_height		= 3&lt;br /&gt;
inv_grid_x			= 4&lt;br /&gt;
inv_grid_y			= 15&lt;br /&gt;
full_icon_name		= npc_icon_stalker_outfit&lt;br /&gt;
&lt;br /&gt;
cost				= 6250&lt;br /&gt;
slot				= 6&lt;br /&gt;
full_scale_icon		= 14,11			;иконка сталкера в костюме в полный рост&lt;br /&gt;
nightvision_sect	= ;effector_nightvision_bad&lt;br /&gt;
&lt;br /&gt;
additional_inventory_weight		= 0		; +max_walk_weight&lt;br /&gt;
additional_inventory_weight2	= 0		;	+40 kg&lt;br /&gt;
artefact_count                  = 2&lt;br /&gt;
&lt;br /&gt;
default_to_ruck     = false&lt;br /&gt;
immunities_sect		= sect_killer_outfit_immunities&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; LOW RESISTANCE&lt;br /&gt;
burn_protection 				= 0.015&lt;br /&gt;
shock_protection 				= 0.015&lt;br /&gt;
radiation_protection 			= 0.015&lt;br /&gt;
chemical_burn_protection 		= 0.015&lt;br /&gt;
telepatic_protection 			= 0.0&lt;br /&gt;
strike_protection 				= 0.25&lt;br /&gt;
explosion_protection 			= 0.25&lt;br /&gt;
wound_protection				= 0.25&lt;br /&gt;
fire_wound_protection  			= 0.0&lt;br /&gt;
physic_strike_wound_immunity 	= 0.15&lt;br /&gt;
&lt;br /&gt;
power_loss = 1.0&lt;br /&gt;
bones_koeff_protection = actor_light_armor&lt;br /&gt;
hit_fraction_actor = 0.3&lt;br /&gt;
control_inertion_factor = 1.2&lt;br /&gt;
&lt;br /&gt;
upgrades                = up_gr_ab_killer_outfit, up_gr_cd_killer_outfit, up_gr_ef_killer_outfit, up_gr_gh_killer_outfit, up_gr_i_killer_outfit&lt;br /&gt;
installed_upgrades      =&lt;br /&gt;
upgrade_scheme          = upgrade_killer_outfit       &lt;br /&gt;
&lt;br /&gt;
[sect_killer_outfit_immunities]&lt;br /&gt;
burn_immunity				= 0.03			;коэффициенты иммунитета самого костюма&lt;br /&gt;
strike_immunity				= 0.0&lt;br /&gt;
shock_immunity				= 0.0&lt;br /&gt;
wound_immunity				= 0.03&lt;br /&gt;
radiation_immunity			= 0.0&lt;br /&gt;
telepatic_immunity			= 0.0&lt;br /&gt;
chemical_burn_immunity		= 0.03&lt;br /&gt;
explosion_immunity			= 0.03&lt;br /&gt;
fire_wound_immunity			= 0.015&lt;br /&gt;
&lt;br /&gt;
[sect_killer_outfit_immunities_1]&lt;br /&gt;
burn_immunity				= 0.015			;коэффициенты иммунитета самого костюма&lt;br /&gt;
strike_immunity				= 0.0&lt;br /&gt;
shock_immunity				= 0.0&lt;br /&gt;
wound_immunity				= 0.015&lt;br /&gt;
radiation_immunity			= 0.0&lt;br /&gt;
telepatic_immunity			= 0.0&lt;br /&gt;
chemical_burn_immunity		= 0.015&lt;br /&gt;
explosion_immunity			= 0.015&lt;br /&gt;
fire_wound_immunity			= 0.010&lt;br /&gt;
&lt;br /&gt;
Далее в этом же файле только в самом верху после строки &amp;quot;#include &amp;quot;outfit_upgrades\o_military_outfit_up.ltx&amp;quot; ставим новую: &amp;quot;#include &amp;quot;outfit_upgrades\o_killer_outfit_up.ltx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Всё, теперь сохраняем. Далее открываем &amp;quot;st_items_outfit.xml&amp;quot; и в самом конце прописываем:&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;string id=&amp;quot;killer_outfit_description&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;text&amp;gt;Комбенизон членов группировки наёмников, защитные характеристики костюма очень малы, что крайне не достаточно в условиях зоны.&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;string id=&amp;quot;killer_outfit_name&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;text&amp;gt;Комбенизон наёмника&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так, сохроняем всё теперь и открываем файл item_upgrades.ltx (gamedata/configs), и в самом конце прописываем:&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;misc\outfit_upgrades\o_killer_outfit_up.ltx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Сохраняем всё. Далее открываем по очереди &amp;quot;inventory_upgrade.xml&amp;quot; и &amp;quot;inventory_upgrade_16.xml&amp;quot; и в самом конце прописываем структуру:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;template name=&amp;quot;upgrade_killer_outfit&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;column&amp;gt;&lt;br /&gt;
        &amp;lt;cell x=&amp;quot;20&amp;quot; y=&amp;quot;5&amp;quot;   /&amp;gt;&lt;br /&gt;
        &amp;lt;cell x=&amp;quot;20&amp;quot; y=&amp;quot;50&amp;quot;  /&amp;gt;&lt;br /&gt;
        &amp;lt;cell x=&amp;quot;20&amp;quot; y=&amp;quot;100&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;cell x=&amp;quot;20&amp;quot; y=&amp;quot;145&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;cell x=&amp;quot;20&amp;quot; y=&amp;quot;195&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;cell x=&amp;quot;20&amp;quot; y=&amp;quot;240&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;cell x=&amp;quot;20&amp;quot; y=&amp;quot;290&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;cell x=&amp;quot;20&amp;quot; y=&amp;quot;335&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;cell x=&amp;quot;20&amp;quot; y=&amp;quot;385&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/column&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;column&amp;gt;&lt;br /&gt;
        &amp;lt;cell x=&amp;quot;120&amp;quot; y=&amp;quot;50&amp;quot;  /&amp;gt;&lt;br /&gt;
        &amp;lt;cell x=&amp;quot;120&amp;quot; y=&amp;quot;100&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;cell x=&amp;quot;120&amp;quot; y=&amp;quot;240&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;cell x=&amp;quot;120&amp;quot; y=&amp;quot;290&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;cell x=&amp;quot;120&amp;quot; y=&amp;quot;385&amp;quot; /&amp;gt;&lt;br /&gt;
       &amp;lt;/column&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;column&amp;gt;&lt;br /&gt;
        &amp;lt;cell x=&amp;quot;220&amp;quot; y=&amp;quot;385&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/column&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее создаём по такому пути (gamedata\configs\misc) папку с таким названием outfit_upgrades а в нутри папки новый конфиг с названием o_killer_outfit_up.ltx, после открываем конфиг и прописываем в нём:&lt;br /&gt;
&lt;br /&gt;
[up_sect_a_killer_outfit]&lt;br /&gt;
cost 		= 2500&lt;br /&gt;
value2		= st_upg_cevlars_armor_battle&lt;br /&gt;
inv_weight	= 2.0&lt;br /&gt;
bones_koeff_protection = actor_light_armor_1&lt;br /&gt;
&lt;br /&gt;
[up_sect_b_killer_outfit]&lt;br /&gt;
cost 		= 2500&lt;br /&gt;
value		= +5&lt;br /&gt;
additional_inventory_weight		= 5		; +max_walk_weight&lt;br /&gt;
additional_inventory_weight2	= 5	&lt;br /&gt;
&lt;br /&gt;
[up_sect_c_killer_outfit]&lt;br /&gt;
cost 		= 2500&lt;br /&gt;
value		= +30&lt;br /&gt;
inv_weight	= 0.5&lt;br /&gt;
strike_protection 			= 0.02	;0.25&lt;br /&gt;
wound_protection			= 0.02	;0.25&lt;br /&gt;
explosion_protection 		= 0.02	;0.25&lt;br /&gt;
;hit_fraction_actor			= -0.05&lt;br /&gt;
&lt;br /&gt;
[up_sect_d_killer_outfit]&lt;br /&gt;
cost 		= 2500&lt;br /&gt;
value		= +20&lt;br /&gt;
inv_weight	= 0.5&lt;br /&gt;
burn_protection 			= 0.008 ;0.3&lt;br /&gt;
shock_protection 			= 0.008 ;0.3&lt;br /&gt;
&lt;br /&gt;
[up_sect_e_killer_outfit]&lt;br /&gt;
cost 		= 2500&lt;br /&gt;
value		= +50&lt;br /&gt;
immunities_sect		= sect_stalker_outfit_immunities_1&lt;br /&gt;
&lt;br /&gt;
[up_sect_f_killer_outfit]&lt;br /&gt;
cost 		= 2500&lt;br /&gt;
value		= +20&lt;br /&gt;
burn_protection 			= 0.008 ;0.3&lt;br /&gt;
shock_protection 			= 0.008 ;0.3&lt;br /&gt;
&lt;br /&gt;
[up_sect_g_killer_outfit]&lt;br /&gt;
cost 		= 2500&lt;br /&gt;
nightvision_sect = effector_nightvision_bad&lt;br /&gt;
&lt;br /&gt;
[up_sect_h_killer_outfit]&lt;br /&gt;
cost 		= 2500&lt;br /&gt;
value		= +50&lt;br /&gt;
radiation_protection 		= 0.008 ;0.1&lt;br /&gt;
chemical_burn_protection 	= 0.008 ;0.1&lt;br /&gt;
&lt;br /&gt;
[up_sect_i_killer_outfit]&lt;br /&gt;
cost 		= 2500&lt;br /&gt;
inv_weight	= 1.0&lt;br /&gt;
artefact_count				= 1&lt;br /&gt;
&lt;br /&gt;
[up_sect_ac_killer_outfit]&lt;br /&gt;
cost 		= 3750&lt;br /&gt;
value2		= st_upg_cevlars_armor_battle&lt;br /&gt;
inv_weight	= 2.0&lt;br /&gt;
bones_koeff_protection = actor_light_armor_2&lt;br /&gt;
&lt;br /&gt;
[up_sect_bd_killer_outfit]&lt;br /&gt;
cost 		= 3750&lt;br /&gt;
value		= +10&lt;br /&gt;
additional_inventory_weight		= 10		; +max_walk_weight&lt;br /&gt;
additional_inventory_weight2	= 10&lt;br /&gt;
&lt;br /&gt;
[up_sect_eg_killer_outfit]&lt;br /&gt;
cost 		= 3750&lt;br /&gt;
value		= +50&lt;br /&gt;
inv_weight	= 0.3 &lt;br /&gt;
strike_protection 			= 0.03	;0.15&lt;br /&gt;
wound_protection			= 0.03	;0.15&lt;br /&gt;
explosion_protection 		= 0.03	;0.15&lt;br /&gt;
;hit_fraction_actor			= -0.05&lt;br /&gt;
&lt;br /&gt;
[up_sect_fh_killer_outfit]&lt;br /&gt;
cost 		= 3750&lt;br /&gt;
value 		= +50&lt;br /&gt;
radiation_protection 		= 0.008 ;0.1&lt;br /&gt;
chemical_burn_protection 	= 0.008 ;0.1&lt;br /&gt;
&lt;br /&gt;
[up_sect_i2_killer_outfit]&lt;br /&gt;
cost 		= 2500&lt;br /&gt;
inv_weight	= 1.0&lt;br /&gt;
artefact_count				= 1&lt;br /&gt;
&lt;br /&gt;
[up_sect_i3_killer_outfit]&lt;br /&gt;
cost 		= 2500&lt;br /&gt;
inv_weight	= 1.0&lt;br /&gt;
artefact_count				= 1&lt;br /&gt;
&lt;br /&gt;
[up_a_killer_outfit]&lt;br /&gt;
scheme_index            = 0, 0&lt;br /&gt;
known                   = 1&lt;br /&gt;
effects                 = up_gr_ac_killer_outfit&lt;br /&gt;
section                 = up_sect_a_killer_outfit&lt;br /&gt;
property                = prop_armor&lt;br /&gt;
&lt;br /&gt;
precondition_functor    = inventory_upgrades.precondition_functor_a&lt;br /&gt;
precondition_parameter  = a &amp;amp; b&lt;br /&gt;
&lt;br /&gt;
effect_functor          = inventory_upgrades.effect_functor_a&lt;br /&gt;
effect_parameter        = something_here&lt;br /&gt;
&lt;br /&gt;
prereq_functor          = inventory_upgrades.prereq_functor_a&lt;br /&gt;
prereq_tooltip_functor  = inventory_upgrades.prereq_tooltip_functor_a&lt;br /&gt;
prereq_params           = money(1000), item(habar)&lt;br /&gt;
name                    = st_upg_cevlars_armor_battle&lt;br /&gt;
description             = st_upg_cevlars_armor_battle_descr&lt;br /&gt;
icon                    = ui_am_upgrade_06&lt;br /&gt;
&lt;br /&gt;
[up_b_killer_outfit]&lt;br /&gt;
scheme_index            = 0, 1&lt;br /&gt;
known                   = 1&lt;br /&gt;
effects                 = up_gr_bd_killer_outfit&lt;br /&gt;
section                 = up_sect_b_killer_outfit&lt;br /&gt;
property                = prop_tonnage&lt;br /&gt;
&lt;br /&gt;
precondition_functor    = inventory_upgrades.precondition_functor_a&lt;br /&gt;
precondition_parameter  = a &amp;amp; b&lt;br /&gt;
&lt;br /&gt;
effect_functor          = inventory_upgrades.effect_functor_a&lt;br /&gt;
effect_parameter        = something_here&lt;br /&gt;
&lt;br /&gt;
prereq_functor          = inventory_upgrades.prereq_functor_a&lt;br /&gt;
prereq_tooltip_functor  = inventory_upgrades.prereq_tooltip_functor_a&lt;br /&gt;
prereq_params           = money(1000), item(habar)&lt;br /&gt;
name                    = st_upg_outfit_a_stalk&lt;br /&gt;
description             = st_upg_outfit_a_stalk_descr&lt;br /&gt;
icon                    = ui_am_upgrade_01&lt;br /&gt;
&lt;br /&gt;
[up_c_killer_outfit]&lt;br /&gt;
scheme_index            = 0, 2&lt;br /&gt;
known                   = 1&lt;br /&gt;
effects                 = up_gr_ac_killer_outfit&lt;br /&gt;
section                 = up_sect_c_killer_outfit&lt;br /&gt;
property                = prop_damage&lt;br /&gt;
&lt;br /&gt;
precondition_functor    = inventory_upgrades.precondition_functor_a&lt;br /&gt;
precondition_parameter  = a &amp;amp; b&lt;br /&gt;
&lt;br /&gt;
effect_functor          = inventory_upgrades.effect_functor_a&lt;br /&gt;
effect_parameter        = something_here&lt;br /&gt;
&lt;br /&gt;
prereq_functor          = inventory_upgrades.prereq_functor_a&lt;br /&gt;
prereq_tooltip_functor  = inventory_upgrades.prereq_tooltip_functor_a&lt;br /&gt;
prereq_params           = money(1000), item(habar)&lt;br /&gt;
name                    = st_upg_slice_leather_battle&lt;br /&gt;
description             = st_upg_slice_leather_battle_descr&lt;br /&gt;
icon                    = ui_am_upgrade_13&lt;br /&gt;
&lt;br /&gt;
[up_d_killer_outfit]&lt;br /&gt;
scheme_index            = 0, 3&lt;br /&gt;
known                   = 1&lt;br /&gt;
effects                 = up_gr_bd_killer_outfit&lt;br /&gt;
section                 = up_sect_d_killer_outfit&lt;br /&gt;
property                = prop_thermo_electro&lt;br /&gt;
&lt;br /&gt;
precondition_functor    = inventory_upgrades.precondition_functor_a&lt;br /&gt;
precondition_parameter  = a &amp;amp; b&lt;br /&gt;
&lt;br /&gt;
effect_functor          = inventory_upgrades.effect_functor_a&lt;br /&gt;
effect_parameter        = something_here&lt;br /&gt;
&lt;br /&gt;
prereq_functor          = inventory_upgrades.prereq_functor_a&lt;br /&gt;
prereq_tooltip_functor  = inventory_upgrades.prereq_tooltip_functor_a&lt;br /&gt;
prereq_params           = money(1000), item(habar)&lt;br /&gt;
name                    = st_upg_polymer_suit_stalk&lt;br /&gt;
description             = st_upg_polymer_suit_stalk_descr&lt;br /&gt;
icon                    = ui_am_upgrade_10&lt;br /&gt;
&lt;br /&gt;
[up_e_killer_outfit]&lt;br /&gt;
scheme_index            = 0, 4&lt;br /&gt;
known                   = 1&lt;br /&gt;
effects                 = up_gr_eg_killer_outfit&lt;br /&gt;
section                 = up_sect_e_killer_outfit&lt;br /&gt;
property                = prop_durability&lt;br /&gt;
&lt;br /&gt;
precondition_functor    = inventory_upgrades.precondition_functor_a&lt;br /&gt;
precondition_parameter  = a &amp;amp; b&lt;br /&gt;
&lt;br /&gt;
effect_functor          = inventory_upgrades.effect_functor_a&lt;br /&gt;
effect_parameter        = something_here&lt;br /&gt;
&lt;br /&gt;
prereq_functor          = inventory_upgrades.prereq_functor_a&lt;br /&gt;
prereq_tooltip_functor  = inventory_upgrades.prereq_tooltip_functor_a&lt;br /&gt;
prereq_params           = money(1000), item(habar)&lt;br /&gt;
name                    = st_upg_double_layer_body_armor_battle&lt;br /&gt;
description             = st_upg_double_layer_body_armor_battle_descr&lt;br /&gt;
icon                    = ui_am_upgrade_25&lt;br /&gt;
&lt;br /&gt;
[up_f_killer_outfit]&lt;br /&gt;
scheme_index            = 0, 5&lt;br /&gt;
known                   = 1&lt;br /&gt;
effects                 = up_gr_fh_killer_outfit&lt;br /&gt;
section                 = up_sect_f_killer_outfit&lt;br /&gt;
property                = prop_thermo_electro&lt;br /&gt;
&lt;br /&gt;
precondition_functor    = inventory_upgrades.precondition_functor_a&lt;br /&gt;
precondition_parameter  = a &amp;amp; b&lt;br /&gt;
&lt;br /&gt;
effect_functor          = inventory_upgrades.effect_functor_a&lt;br /&gt;
effect_parameter        = something_here&lt;br /&gt;
&lt;br /&gt;
prereq_functor          = inventory_upgrades.prereq_functor_a&lt;br /&gt;
prereq_tooltip_functor  = inventory_upgrades.prereq_tooltip_functor_a&lt;br /&gt;
prereq_params           = money(1000), item(habar)&lt;br /&gt;
name                    = st_upg_spec_coating_stalk&lt;br /&gt;
description             = st_upg_spec_coating_stalk_descr&lt;br /&gt;
icon                    = ui_am_upgrade_11&lt;br /&gt;
&lt;br /&gt;
[up_g_killer_outfit]&lt;br /&gt;
scheme_index            = 0, 6&lt;br /&gt;
known                   = 1&lt;br /&gt;
effects                 = up_gr_eg_killer_outfit&lt;br /&gt;
section                 = up_sect_g_killer_outfit&lt;br /&gt;
property                = prop_night_vision&lt;br /&gt;
&lt;br /&gt;
precondition_functor    = inventory_upgrades.precondition_functor_a&lt;br /&gt;
precondition_parameter  = a &amp;amp; b&lt;br /&gt;
&lt;br /&gt;
effect_functor          = inventory_upgrades.effect_functor_a&lt;br /&gt;
effect_parameter        = something_here&lt;br /&gt;
&lt;br /&gt;
prereq_functor          = inventory_upgrades.prereq_functor_a&lt;br /&gt;
prereq_tooltip_functor  = inventory_upgrades.prereq_tooltip_functor_a&lt;br /&gt;
prereq_params           = money(1000), item(habar)&lt;br /&gt;
name                    = st_upg_night_vision_battle&lt;br /&gt;
description             = st_upg_night_vision_battle_descr&lt;br /&gt;
icon                    = ui_am_upgrade_22&lt;br /&gt;
&lt;br /&gt;
[up_h_killer_outfit]&lt;br /&gt;
scheme_index            = 0, 7&lt;br /&gt;
known                   = 1&lt;br /&gt;
effects                 = up_gr_fh_killer_outfit&lt;br /&gt;
section                 = up_sect_h_killer_outfit&lt;br /&gt;
property                = prop_radio_chem&lt;br /&gt;
&lt;br /&gt;
precondition_functor    = inventory_upgrades.precondition_functor_a&lt;br /&gt;
precondition_parameter  = a &amp;amp; b&lt;br /&gt;
&lt;br /&gt;
effect_functor          = inventory_upgrades.effect_functor_a&lt;br /&gt;
effect_parameter        = something_here&lt;br /&gt;
&lt;br /&gt;
prereq_functor          = inventory_upgrades.prereq_functor_a&lt;br /&gt;
prereq_tooltip_functor  = inventory_upgrades.prereq_tooltip_functor_a&lt;br /&gt;
prereq_params           = money(1000), item(habar)&lt;br /&gt;
name                    = st_upg_anti_gas_stalk&lt;br /&gt;
description             = st_upg_anti_gas_stalk_descr&lt;br /&gt;
icon                    = ui_am_upgrade_18&lt;br /&gt;
&lt;br /&gt;
[up_i_killer_outfit]&lt;br /&gt;
scheme_index            = 0, 8&lt;br /&gt;
known                   = 1&lt;br /&gt;
effects                 = up_gr_i2_killer_outfit&lt;br /&gt;
section                 = up_sect_i_killer_outfit&lt;br /&gt;
property                = prop_artefact&lt;br /&gt;
&lt;br /&gt;
precondition_functor    = inventory_upgrades.precondition_functor_a&lt;br /&gt;
precondition_parameter  = a &amp;amp; b&lt;br /&gt;
&lt;br /&gt;
effect_functor          = inventory_upgrades.effect_functor_a&lt;br /&gt;
effect_parameter        = something_here&lt;br /&gt;
&lt;br /&gt;
prereq_functor          = inventory_upgrades.prereq_functor_a&lt;br /&gt;
prereq_tooltip_functor  = inventory_upgrades.prereq_tooltip_functor_a&lt;br /&gt;
prereq_params           = money(1000), item(habar)&lt;br /&gt;
name                    = st_upg_artefact_slot&lt;br /&gt;
description             = st_upg_artefact_slot_descr&lt;br /&gt;
icon                    = ui_am_upgrade_05&lt;br /&gt;
&lt;br /&gt;
[up_ac_killer_outfit]&lt;br /&gt;
scheme_index            = 1, 0&lt;br /&gt;
known                   = 1&lt;br /&gt;
effects                 = &lt;br /&gt;
section                 = up_sect_ac_killer_outfit&lt;br /&gt;
property                = prop_armor&lt;br /&gt;
&lt;br /&gt;
precondition_functor    = inventory_upgrades.precondition_functor_a&lt;br /&gt;
precondition_parameter  = a &amp;amp; b&lt;br /&gt;
&lt;br /&gt;
effect_functor          = inventory_upgrades.effect_functor_a&lt;br /&gt;
effect_parameter        = something_here&lt;br /&gt;
&lt;br /&gt;
prereq_functor          = inventory_upgrades.prereq_functor_a&lt;br /&gt;
prereq_tooltip_functor  = inventory_upgrades.prereq_tooltip_functor_a&lt;br /&gt;
prereq_params           = money(1000), item(habar)&lt;br /&gt;
name                    = st_upg_cevlars_armor_battle&lt;br /&gt;
description             = st_upg_cevlars_armor_battle_descr&lt;br /&gt;
icon                    = ui_am_upgrade_06&lt;br /&gt;
&lt;br /&gt;
[up_bd_killer_outfit]&lt;br /&gt;
scheme_index            = 1, 1&lt;br /&gt;
known                   = 1&lt;br /&gt;
effects                 = &lt;br /&gt;
section                 = up_sect_bd_killer_outfit&lt;br /&gt;
property                = prop_tonnage&lt;br /&gt;
&lt;br /&gt;
precondition_functor    = inventory_upgrades.precondition_functor_a&lt;br /&gt;
precondition_parameter  = a &amp;amp; b&lt;br /&gt;
&lt;br /&gt;
effect_functor          = inventory_upgrades.effect_functor_a&lt;br /&gt;
effect_parameter        = something_here&lt;br /&gt;
&lt;br /&gt;
prereq_functor          = inventory_upgrades.prereq_functor_a&lt;br /&gt;
prereq_tooltip_functor  = inventory_upgrades.prereq_tooltip_functor_a&lt;br /&gt;
prereq_params           = money(1000), item(habar)&lt;br /&gt;
name                    = st_upg_outfit_b_stalk&lt;br /&gt;
description             = st_upg_outfit_b_stalk_descr&lt;br /&gt;
icon                    = ui_am_upgrade_02&lt;br /&gt;
&lt;br /&gt;
[up_eg_killer_outfit]&lt;br /&gt;
scheme_index            = 1, 2&lt;br /&gt;
known                   = 1&lt;br /&gt;
effects                 = &lt;br /&gt;
section                 = up_sect_eg_killer_outfit&lt;br /&gt;
property                = prop_damage&lt;br /&gt;
&lt;br /&gt;
precondition_functor    = inventory_upgrades.precondition_functor_a&lt;br /&gt;
precondition_parameter  = a &amp;amp; b&lt;br /&gt;
&lt;br /&gt;
effect_functor          = inventory_upgrades.effect_functor_a&lt;br /&gt;
effect_parameter        = something_here&lt;br /&gt;
&lt;br /&gt;
prereq_functor          = inventory_upgrades.prereq_functor_a&lt;br /&gt;
prereq_tooltip_functor  = inventory_upgrades.prereq_tooltip_functor_a&lt;br /&gt;
prereq_params           = money(1000), item(habar)&lt;br /&gt;
name                    = st_upg_sintetic_pillow_battle&lt;br /&gt;
description             = st_upg_sintetic_pillow_battle_descr&lt;br /&gt;
icon                    = ui_am_upgrade_14&lt;br /&gt;
&lt;br /&gt;
[up_fh_killer_outfit]&lt;br /&gt;
scheme_index            = 1, 3&lt;br /&gt;
known                   = 1&lt;br /&gt;
effects                 = &lt;br /&gt;
section                 = up_sect_fh_killer_outfit&lt;br /&gt;
property                = prop_radio_chem&lt;br /&gt;
&lt;br /&gt;
precondition_functor    = inventory_upgrades.precondition_functor_a&lt;br /&gt;
precondition_parameter  = a &amp;amp; b&lt;br /&gt;
&lt;br /&gt;
effect_functor          = inventory_upgrades.effect_functor_a&lt;br /&gt;
effect_parameter        = something_here&lt;br /&gt;
&lt;br /&gt;
prereq_functor          = inventory_upgrades.prereq_functor_a&lt;br /&gt;
prereq_tooltip_functor  = inventory_upgrades.prereq_tooltip_functor_a&lt;br /&gt;
prereq_params           = money(1000), item(habar)&lt;br /&gt;
name                    = st_upg_active_filter_stalk&lt;br /&gt;
description             = st_upg_active_filter_stalk_descr&lt;br /&gt;
icon                    = ui_am_upgrade_19&lt;br /&gt;
&lt;br /&gt;
[up_i2_killer_outfit]&lt;br /&gt;
scheme_index            = 1, 4&lt;br /&gt;
known                   = 1&lt;br /&gt;
effects                 = up_gr_i3_killer_outfit&lt;br /&gt;
section                 = up_sect_i2_killer_outfit&lt;br /&gt;
property                = prop_artefact&lt;br /&gt;
&lt;br /&gt;
precondition_functor    = inventory_upgrades.precondition_functor_a&lt;br /&gt;
precondition_parameter  = a &amp;amp; b&lt;br /&gt;
&lt;br /&gt;
effect_functor          = inventory_upgrades.effect_functor_a&lt;br /&gt;
effect_parameter        = something_here&lt;br /&gt;
&lt;br /&gt;
prereq_functor          = inventory_upgrades.prereq_functor_a&lt;br /&gt;
prereq_tooltip_functor  = inventory_upgrades.prereq_tooltip_functor_a&lt;br /&gt;
prereq_params           = money(1000), item(habar)&lt;br /&gt;
name                    = st_upg_artefact_slot&lt;br /&gt;
description             = st_upg_artefact_slot_descr&lt;br /&gt;
icon                    = ui_am_upgrade_05&lt;br /&gt;
&lt;br /&gt;
[up_i3_killer_outfit]&lt;br /&gt;
scheme_index            = 2, 0&lt;br /&gt;
known                   = 1&lt;br /&gt;
effects                 = &lt;br /&gt;
section                 = up_sect_i3_killer_outfit&lt;br /&gt;
property                = prop_artefact&lt;br /&gt;
&lt;br /&gt;
precondition_functor    = inventory_upgrades.precondition_functor_a&lt;br /&gt;
precondition_parameter  = a &amp;amp; b&lt;br /&gt;
&lt;br /&gt;
effect_functor          = inventory_upgrades.effect_functor_a&lt;br /&gt;
effect_parameter        = something_here&lt;br /&gt;
&lt;br /&gt;
prereq_functor          = inventory_upgrades.prereq_functor_a&lt;br /&gt;
prereq_tooltip_functor  = inventory_upgrades.prereq_tooltip_functor_a&lt;br /&gt;
prereq_params           = money(1000), item(habar)&lt;br /&gt;
name                    = st_upg_artefact_slot&lt;br /&gt;
description             = st_upg_artefact_slot_descr&lt;br /&gt;
icon                    = ui_am_upgrade_05&lt;br /&gt;
&lt;br /&gt;
[up_gr_ab_killer_outfit]&lt;br /&gt;
elements                = up_a_killer_outfit, up_b_killer_outfit&lt;br /&gt;
[up_gr_cd_killer_outfit]&lt;br /&gt;
elements                = up_c_killer_outfit, up_d_killer_outfit&lt;br /&gt;
[up_gr_ef_killer_outfit]&lt;br /&gt;
elements                = up_e_killer_outfit, up_f_killer_outfit&lt;br /&gt;
[up_gr_gh_killer_outfit]&lt;br /&gt;
elements                = up_g_killer_outfit, up_h_killer_outfit&lt;br /&gt;
[up_gr_i_killer_outfit]&lt;br /&gt;
elements                = up_i_killer_outfit&lt;br /&gt;
&lt;br /&gt;
[up_gr_ac_killer_outfit]&lt;br /&gt;
elements                = up_ac_killer_outfit&lt;br /&gt;
[up_gr_bd_killer_outfit]&lt;br /&gt;
elements                = up_bd_killer_outfit&lt;br /&gt;
[up_gr_eg_killer_outfit]&lt;br /&gt;
elements                = up_eg_killer_outfit&lt;br /&gt;
[up_gr_fh_killer_outfit]&lt;br /&gt;
elements                = up_fh_killer_outfit&lt;br /&gt;
[up_gr_i2_killer_outfit]&lt;br /&gt;
elements                = up_i2_killer_outfit&lt;br /&gt;
&lt;br /&gt;
[up_gr_i3_killer_outfit]&lt;br /&gt;
elements                = up_i3_killer_outfit&lt;br /&gt;
&lt;br /&gt;
Осталось ещё немного. Открываем &amp;quot;stalkers_upgarde_info.ltx&amp;quot; и прописываем наш бронежилет на апгрейд любому технику в зоне, которому хотим доверить модифицирование нашего бронежилета, я для примера пропишу Новикову. Для этого в самом конце записи &amp;quot;[mar_csky_tech]&amp;quot;, после stalker_outfit прописываем killer_outfit и сохраняем файл. После открываем &amp;quot;inventory_upgrades.ltx&amp;quot; и в самом конце после dolg_heavy_outfit ставим killer_outfit, сохраняем всё. Теперь осталось только прописать продажу нашего бронежилета торговцам, я для примера взял Суслова на болотах. Открываем файл trade_trader_mar_csky.ltx и прописываем:&lt;br /&gt;
&lt;br /&gt;
В функции: [trade_generic_buy] после:&lt;br /&gt;
dolg_heavy_outfit		= 0.01, 0.01&lt;br /&gt;
Ставим: killer_outfit		= 0.01, 0.01&lt;br /&gt;
&lt;br /&gt;
В функциях: [supplies_generic],[supplies_exp_1],[supplies_exp_2],[supplies_exp_3] где нибудь:&lt;br /&gt;
killer_outfit			= 3,	0.5&lt;br /&gt;
&lt;br /&gt;
В функциях: [trade_generic_sell] и [trade_friend_sell] после:&lt;br /&gt;
dolg_heavy_outfit		;NO TRADE&lt;br /&gt;
Ставим:&lt;br /&gt;
killer_outfit			= 1, 3&lt;br /&gt;
&lt;br /&gt;
Всё, сохраняем и тестируем.&lt;br /&gt;
[[Категория:Неоформленные статьи]]&lt;/div&gt;</summary>
		<author><name>Xenus-Ghost</name></author>	</entry>

	</feed>