<?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=Melnik</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=Melnik"/>
		<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/Melnik"/>
		<updated>2026-04-29T15:07:52Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.22.6</generator>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max_%D0%B8_Maya._%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_NPC</id>
		<title>3ds Max и Maya. Создание моделей NPC</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max_%D0%B8_Maya._%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_NPC"/>
				<updated>2011-04-20T11:39:53Z</updated>
		
		<summary type="html">&lt;p&gt;Melnik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Вступление==&lt;br /&gt;
&lt;br /&gt;
Сразу небольшая оговорка – в статье описывается процесс создания модели NPC для ЧН или ЗП. Однако для ТЧ суть остается та же, меняется лишь скелет. Как вариант, можно сделать все по статье, а потом конвертировать в ТЧ. (как легче всего это сделать, подробно описано в статье). Таким образом вы получите модели под все игры серии с минимальными усилиями.&lt;br /&gt;
&lt;br /&gt;
Для удобства восприятия урок разделен на три части – «Maya», «3DS Max» и «Настройка в SDK».&lt;br /&gt;
&lt;br /&gt;
==Maya==&lt;br /&gt;
&lt;br /&gt;
Для работы вам потребуется '''Autodesk Maya 8.5''' или '''Autodesk Maya 2008''' с установленными плагинами из пакета '''X-Ray Asset Tools''' от bardak'а.&lt;br /&gt;
&lt;br /&gt;
Начну, пожалуй, с перечисления ограничений на вашу модель. Она может быть сделана вами собственноручно, рипнута из другой игры или же была взята собственно из Сталкера, но перенесла небольшую пластическую операцию. Так или иначе, предполагается, что модель у вас есть. И есть она в формате, понимаемом Maya.&lt;br /&gt;
&lt;br /&gt;
===Ограничения===&lt;br /&gt;
&lt;br /&gt;
1. Модель должна состоять из треугольников (то есть не должно быть ни одного четырех и более угольного полигона). Если вы не уверены в соблюдении этого условия или же уверены в его невыполнении, то проделываем операцию под названием триангуляция (автоматическое разбиение модели на треугольники): выделяем модель, нажимаем кнопку '''Mesh''', затем выбираем пункт '''Triangulate''':&lt;br /&gt;
&lt;br /&gt;
[[Image:npc_model_01.jpg]]&lt;br /&gt;
&lt;br /&gt;
2. В модели должно быть приемлемое количество полигонов. Точного ограничения нет, но делать больше 12000 точно не стоит – лагов не избежать. Для справки, модели от GCS в среднем имеют по 6000 полигонов. Если в вашей модели много больше, чем положено, то оптимизируем ее любым удобным вам способом. Самый легкий – '''Mesh''' -&amp;gt; '''Reduce'''&amp;lt;br&amp;gt;&lt;br /&gt;
3. Размер модели должен соответствовать естественным размерам человека. Легче всего импортировать в сцену модель NPC из игры и подогнать свою инструментом «scale» &amp;lt;br&amp;gt;&lt;br /&gt;
4. Модель должна быть с UV координатами, текстурой в формате DDS и X-Ray шейдером.&amp;lt;br&amp;gt;&lt;br /&gt;
5. Модель должна находиться в начале координат.&amp;lt;br&amp;gt;&lt;br /&gt;
6. Перед началом привязки модели к скелету, выполняем еще одну несложную операцию:&lt;br /&gt;
&lt;br /&gt;
[[Image:npc_model_02.jpg|Edit -&amp;gt; Delete all by type -&amp;gt; History|center|frame|Edit -&amp;gt; Delete all by type -&amp;gt; History]]&lt;br /&gt;
&lt;br /&gt;
Вот, пожалуй, и все.&lt;br /&gt;
Если вы успешно преодолели все ограничения, то можно приступать непосредственно к привязке модели.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Привязка модели===&lt;br /&gt;
&lt;br /&gt;
Для начала импортируем в сцену с нашей моделью визуал любого NPC из архивов игры. Удаляем меш. Таким образом, в сцене остается только ваша модель и скелет из игры. Теперь необходимо нацепить меш на скелет. Лучше всего менять именно модель, оставляя скелет неизменным, во избежание проблем с шейпами. Хотя плагин экспорта должен возвращать положения костей в исходные, происходит это почему-то не всегда, так что лучше перестраховаться).&lt;br /&gt;
&lt;br /&gt;
После того, как вы подогнали форму модели под скелет (кстати, можно не удалять модель сталкера, а ориентироваться по ней, так кому-то может показаться удобней) еще раз обнуляем историю, как описано выше. Теперь, когда все приготовления окончены, нужно заставить модель деформироваться под действием скелета. А делается это так:&lt;br /&gt;
&lt;br /&gt;
1. Выделяем модель и скелет, затем жмем '''Skin''', в открывшемся списке выбираем пункт '''Bind Skin''', нажимаем на кубик, напротив '''Smooth Bind''':&lt;br /&gt;
&lt;br /&gt;
[[Image:npc_model_03.jpg|center|frame]]&lt;br /&gt;
&lt;br /&gt;
2. В открывшемся окне делаем следующие настройки:&lt;br /&gt;
&lt;br /&gt;
[[Image:npc_model_04.jpg|center|frame]]&lt;br /&gt;
&lt;br /&gt;
Все, наша модель привязана к скелету. Однако не все так радужно, как может показаться на первый взгляд – у модели кривая развесовка, то есть кости влияют на оболочку не совсем так, как надо. Чтобы вы поняли, что я имею ввиду, посмотрите на иллюстрацию:&lt;br /&gt;
&lt;br /&gt;
[[Image:npc_model_05.jpg|center|frame]]&lt;br /&gt;
&lt;br /&gt;
'''Модель требует дополнительной настройки, однако уже на данном этапе можно проверить ее работоспособность, экспортировав в SDK и подставив в игру, как описано ниже.'''&lt;br /&gt;
&lt;br /&gt;
3. Снова выделяем модель. Развесовка модели правится инструментом '''Paint Skin Weights tool''', а находится он тут:&lt;br /&gt;
&lt;br /&gt;
[[Image:npc_model_06.jpg|center|frame]]&lt;br /&gt;
&lt;br /&gt;
Обратите внимание, снова нажимаем на кубик, а не на надпись. Если вы все сделали правильно, то ваша модель превратится  в черно-белую, а справа появится окно настроек инструмента.&amp;lt;br&amp;gt;&lt;br /&gt;
Попробую вкратце объяснить принцип работы с '''Paint Skin Weights tool''': &lt;br /&gt;
&lt;br /&gt;
[[Image:npc_model_07.jpg|center|frame]]&lt;br /&gt;
&lt;br /&gt;
1. Список костей скелета, работа ведется с выделенной костью, в данном случае это «Bip01_l_clavicle».&amp;lt;br&amp;gt;&lt;br /&gt;
2. Образно выражаясь, место, где можно указать радиус кисти инструмента, которой вы мазюкаете по несчастному и ее прозрачность (Opacity), если работали в фотошопе, то поймете, о чем я.&amp;lt;br&amp;gt;&lt;br /&gt;
3. Четыре режима работы кисти:&amp;lt;br&amp;gt;&lt;br /&gt;
3.1 '''Replace''' – заменяет значение влияния кости на вертексы, попадающие под влияние кости на заданное ( произведение степени влияния на прозрачность (Opacity x Value)).&amp;lt;br&amp;gt; &lt;br /&gt;
3.2 '''Add'''  - добавляет к имеющемуся значению опять же произведение степени влияния помноженное на прозрачность.&amp;lt;br&amp;gt;&lt;br /&gt;
3.3 '''Smooth''' – сглаживает значения. (Если простым языком, то у вас есть белое пятно на черном фоне, мазюкаем и получаем белое пятно с серыми границами)&amp;lt;br&amp;gt;&lt;br /&gt;
3.4 '''Scale''' – штука опасная, не трогаем вообще.&amp;lt;br&amp;gt;&lt;br /&gt;
4. '''Value''' – степень воздействия кисти (0 – черный, 1 – белый).&amp;lt;br&amp;gt;&lt;br /&gt;
5. Наглядное представление влияния кости на модель.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Собственно, все. Выделяем все кости по очереди и мазюкаем кистью до получения удовлетворительных результатов. Для удобства открываем еще одно окно майки, импортируем модель из игры и смотрим, как какая кость влияет на что. Пытаемся повторить с поправкой на то, что модель у нас немного отличается. Крутим суставы, чтобы посмотреть привязку в динамике, но не забываем нажимать «Edit» - «Undo», вручную на место кости никогда не ставим.&lt;br /&gt;
&lt;br /&gt;
После пары дней мучений у нас получится что-то более-менее удовлетворяющее требованиям человекоподобного существа. Выделяем меш (скелет не нужно), нажимаем '''File''' –&amp;gt; '''Export selection''', выбираем формат ('''X-ray skeletal object''') и кнопку '''Export'''. Если все сделано правильно и по гороскопу благополучный день, то экспорт пройдет удачно (зависит именно от гороскопа, так как часто случаются рендомные вылеты, и их причина мне неизвестна).&lt;br /&gt;
&lt;br /&gt;
Работа в Maya на этом закончена.&lt;br /&gt;
&lt;br /&gt;
==3DS Max==&lt;br /&gt;
&lt;br /&gt;
Сразу предупрежу – в Maya можно гораздо проще и быстрее получить удовлетворительный результат, нежели в Max, однако он более распространен и стабилен, так что попытаюсь объяснить, как сделать подобие описанных выше действий в максе.&lt;br /&gt;
&lt;br /&gt;
Итак, приступим.&lt;br /&gt;
&lt;br /&gt;
Вам понадобятся Autodesk 3DS Max 8 и плагин экспорта .object.&amp;lt;br&amp;gt;&lt;br /&gt;
Для удобства постараюсь придерживаться структуры первой главы.&lt;br /&gt;
&lt;br /&gt;
Ограничения на модель:&lt;br /&gt;
&lt;br /&gt;
1. Модель должна находиться в центре координат. &amp;lt;br&amp;gt;&lt;br /&gt;
2. В модели должно быть приемлемое количество полигонов, точного ограничения нет, но делать больше 12000 точно не стоит – лагов не избежать. Для справки, модели от GCS в среднем имеют по 6000 полигонов. Если в вашей модели много больше, чем положено, то оптимизируем ее любым удобным вам способом. Самый легкий – назначить модификатор «optimize», однако тогда побьются UV  координаты.&amp;lt;br&amp;gt;&lt;br /&gt;
3. Размер модели должен соответствовать естественным размерам человека.&amp;lt;br&amp;gt;&lt;br /&gt;
4. Модель должна быть затекстурирована, на ней должен быть x-ray материал.&amp;lt;br&amp;gt;&lt;br /&gt;
5. Модель должна быть представлена в режиме «Editable Mesh», для этого выделяем модель, нажимаем правой кнопкой на рабочей области, в открывшемся списке выбираем пункт '''Convert To''' и далее '''Convert to Editable Mesh''':&lt;br /&gt;
&lt;br /&gt;
[[Image:npc_model_08.jpg|center|frame]]&lt;br /&gt;
&lt;br /&gt;
Пожалуй, всё.&lt;br /&gt;
&lt;br /&gt;
'''Небольшое лирическое отступление на тему скелетов:''' Существует как минимум два способа импортирования скелета из игры в 3DS Max – через '''OGF2SMD''' и через '''FBX'''. Оба способа имеют свои плюсы и минусы. Например, при добыче скелета при помощи OGF2SMD последние кости в ветках получаются очень длинными, а при помощи FBX некоторые кости получаются настолько маленькими, что очень неудобно в них потом тыкать. Я выбрал OGF2SMD.&lt;br /&gt;
&lt;br /&gt;
Вообще, после импорта в 3DS Max скелета, нужно дорисовывать в конце каждой ветки еще по одной кости, но я уже сделал это за вас, так что просто берем файл из архива: [http://stalkerin.gameru.net/downloads/wiki/Эколог.rar]&lt;br /&gt;
&lt;br /&gt;
1. Загружаем «Эколог.max»&amp;lt;br&amp;gt;&lt;br /&gt;
2. Нажимаем '''File''' –&amp;gt; '''Merge''', (ваша модель должна быть формате .max) и импортируем будущего NPC в сцену с экологом&lt;br /&gt;
&lt;br /&gt;
[[Image:npc_model_09.jpg|center|frame]]&lt;br /&gt;
&lt;br /&gt;
3. Если все сделано правильно, то ваша модель появится на том же месте (у меня - там же, где и эколог). Если нет – двигаем.&amp;lt;br&amp;gt;&lt;br /&gt;
4. Выделяем эколога и удаляем его.&amp;lt;br&amp;gt;&lt;br /&gt;
5. Выделяем нашу модель и назначаем ей модификатор '''Physique'''. Для этого нажимаем на непонятного вида дугу, затем на перевернутый треугольничек и в открывшемся списке выбираем сам модификатор:&lt;br /&gt;
&lt;br /&gt;
[[Image:npc_model_10.jpg|center|frame]]&lt;br /&gt;
&lt;br /&gt;
6. Нажимаем на модель, затем на кость '''root_stalker''':&lt;br /&gt;
&lt;br /&gt;
[[Image:npc_model_11.jpg|center|frame]]&lt;br /&gt;
&lt;br /&gt;
В появившемся окне ничего не меняем, только нажимаем '''Initialize'''. &lt;br /&gt;
&lt;br /&gt;
Все, приступаем к настройке развесовки модели. Можно использовать так называемые огибающие, но я предпочитаю аттачить по вертексам – дольше, но точнее.&lt;br /&gt;
&lt;br /&gt;
Уж извините, не буду описывать принцип работы с модификатором Physique, в интерете полно статей на эту тему, например, - эта: [http://comstroller.narod.ru/quake3/anim03.html] (вас интересуют только разделы «Physique» и «Настройка вершин»).&lt;br /&gt;
&lt;br /&gt;
'''Внимание, есть один очень важный нюанс.''' 3DS Max не экспортирует кость, если к ней или к последующим в иерархической структуре не привязано ни одного вертекса. То есть, надо ко всем последним костям в ветках приаттачить хотя бы по одному вертексу.&lt;br /&gt;
&lt;br /&gt;
Так или иначе, после пары лет мучений, модель оказывается привязанной более-менее правильно. Так же, как и в Maya, проверяем, правильно ли деформируется оболочка, поворачивая суставы. Опять-таки, на место возвращаем их только операцией '''Undo''' (Ctrl+z), вручную никогда. В итоге, у вас должно получиться что-то вроде этого (если делали как я, по вертексам):&lt;br /&gt;
&lt;br /&gt;
[[Image:npc_model_12.jpg|center|frame]]&lt;br /&gt;
&lt;br /&gt;
Настройка привязки окончена, приступаем к экспорту модели в формат '''.object''':&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Выделяем нашу модель.&amp;lt;br&amp;gt;&lt;br /&gt;
2. Нажимаем на молоточек в правом верхнем углу экрана (1), затем кнопку '''More...'''(2), в открывшемся списке выбираем '''XRay-Export'''(3), затем, естественно, '''OK'''(4).&lt;br /&gt;
&lt;br /&gt;
[[Image:npc_model_13.jpg|center|frame]]&lt;br /&gt;
&lt;br /&gt;
Откроются настройки экспорта. Там нажимаем Export Skin. В открывшемся окошке вводим имя модели и директорию сохранения.&amp;lt;br&amp;gt;&lt;br /&gt;
Все, работа в 3DS Max закончена.&lt;br /&gt;
&lt;br /&gt;
==Настройка в SDK==&lt;br /&gt;
&lt;br /&gt;
Для работы потребуется '''X-Ray SDK 0.4'''.&amp;lt;br&amp;gt;&lt;br /&gt;
''(иллюстрации, к сожалению, сняты с переведенной версии SDK - прим. ред.)''&lt;br /&gt;
&lt;br /&gt;
Итак, приступим:&lt;br /&gt;
&lt;br /&gt;
1. Открываем '''АЕ''' ('''Actor Editor'''), загружаем сделанную ранее модель.&amp;lt;br&amp;gt;&lt;br /&gt;
2. Изучаем поле с параметрами модели:&lt;br /&gt;
&lt;br /&gt;
[[Image:npc_model_14.jpg|center|frame]]&lt;br /&gt;
&lt;br /&gt;
В разделе '''Object''' (1) нас интересует лишь последнее поле, '''User Data''' (2). В нем можно прописать путь к конфигу вашей модели. Если оставить поле незаполненным, то движок игры поставит значения урона вашей модели по дефолту. Еще, как вариант, чтобы не создавать лишних бумажек, можно прописать путь к конфигу NPC в броне, схожей по характеристикам с вашей. Стандартный вид – &amp;quot;''#include &amp;quot;models\capture\нужный_конфиг.ltx''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
В разделе '''Material''' необходимо настроить поля '''Texture'''. Если путь к текстуре в 3D-пакете был указан неправильно, '''Shader''' (ставим models/model, если не хотим особых изысков типа полупрозрачности; если хотим, то ставим то, что считаем нужным для достижения необходимого эффекта) и '''Game Mtl''' (тут выставляем '''default_objec'''t, опять же, если не хотим изысков).&lt;br /&gt;
&lt;br /&gt;
В разделе '''Motions''' дважды щелкаем мышкой на поле напротив '''Motion reference''', в открывшемся окне нажимаем на треугольничек возле '''Actors''' (1), затем в открывшемся списке ставим три галочки как на картинке (2). Нажимаем '''OK''':&lt;br /&gt;
&lt;br /&gt;
[[Image:npc_model_15.jpg|center|frame]]&lt;br /&gt;
&lt;br /&gt;
Все, модель почти закончена, сохраняем изменения. Если в игре возникают проблемы с регдоллом, исправьте кости, как описано в статье [[Milkshape. Создание моделей NPC (исправление костей)|Создание моделей NPC (исправление костей)]]&lt;br /&gt;
&lt;br /&gt;
==Авторы==&lt;br /&gt;
&lt;br /&gt;
Статья создана:&lt;br /&gt;
&lt;br /&gt;
* [[Участник:Senator|Senator]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Wireframe]]&lt;/div&gt;</summary>
		<author><name>Melnik</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=All.spawn._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_NPC</id>
		<title>All.spawn. Создание NPC</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=All.spawn._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_NPC"/>
				<updated>2011-01-08T20:17:08Z</updated>
		
		<summary type="html">&lt;p&gt;Melnik: /* Работаем!!! */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Что,как,зачем ==&lt;br /&gt;
Итак, я хочу рассказать вам как создать NPC через all.spawn.&lt;br /&gt;
Метод был выявлен мною путем проб и ошибок.&lt;br /&gt;
Конечно же у вас появился вопрос: « Ну а зачем же мучатся с all.spawn, если можно сделать тоже самое через скрипт?».&lt;br /&gt;
Ответ:&lt;br /&gt;
Хоть этот способ и не такой быстрый и легкий, но у него есть свои плюсы, необходимые многим, один из них - мы можем задать story id нашему NPC.(Можно прописать в секции нпс которого спаунити в низу в файле spawn_sections.ltx Пример:story_id = 10000)&lt;br /&gt;
&amp;quot;А что дает нам это?&amp;quot;&lt;br /&gt;
Много чего, ну для примера - мы сможем поставить отметку на него.&lt;br /&gt;
Я не буду объяснять такие простые вещи как декомпиляция all.spawn и остальное, но если же вы все таки не знаете как, пишите мне в лс на Гейменаторе(stalkers-life, или Идиот)&lt;br /&gt;
Итак, хватит лишних слов, перейдем к работе...&lt;br /&gt;
&lt;br /&gt;
== Работаем!!! ==&lt;br /&gt;
&lt;br /&gt;
С помощью ACDC декомпилируем all.spawn&lt;br /&gt;
&lt;br /&gt;
Получаем кучу файлов типа : alife_l01_escape , way_l01_escape и тд.&lt;br /&gt;
&lt;br /&gt;
Создадим нового непися на Кордоне.&lt;br /&gt;
Открываем alife_l01_escape, и крутим в самый низ.&lt;br /&gt;
&lt;br /&gt;
Если у вас чистая игра и вы ничего не делали в Олл спавне то посленяя секция у вас будет под номером 869.&lt;br /&gt;
Добавляем туда вот такой код(в конец):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[870]&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = stalker&lt;br /&gt;
name = noobik&lt;br /&gt;
position = -172.21215820313,-19.941787719727,-161.09272766113&lt;br /&gt;
direction = 0,0,0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_trader_abstract properties&lt;br /&gt;
money = 5000&lt;br /&gt;
character_profile = esc_noobik&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = 52&lt;br /&gt;
distance = 0&lt;br /&gt;
level_vertex_id = 76655&lt;br /&gt;
object_flags = 0xffffffbf&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
&lt;br /&gt;
[logic]&lt;br /&gt;
cfg = scripts\noobik_logic.ltx&lt;br /&gt;
&lt;br /&gt;
; cse&lt;br /&gt;
[smart_terrains]&lt;br /&gt;
none = true&lt;br /&gt;
END&lt;br /&gt;
story_id = 10000&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = actors\soldier\soldier_beret_1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_creature_abstract properties&lt;br /&gt;
g_team = 0&lt;br /&gt;
g_squad = 1&lt;br /&gt;
g_group = 2&lt;br /&gt;
health = 1&lt;br /&gt;
dynamic_out_restrictions =&lt;br /&gt;
dynamic_in_restrictions =&lt;br /&gt;
&lt;br /&gt;
upd:health = 1&lt;br /&gt;
upd:timestamp = 0&lt;br /&gt;
upd:creature_flags = 0&lt;br /&gt;
upd:position = -172.21215820313,-19.941787719727,-161.09272766113&lt;br /&gt;
upd:o_model = 0&lt;br /&gt;
upd:o_torso = 0.028013030067086,0,0.9996075630188&lt;br /&gt;
upd:g_team = 0&lt;br /&gt;
upd:g_squad = 1&lt;br /&gt;
upd:g_group = 2&lt;br /&gt;
&lt;br /&gt;
; cse_alife_monster_abstract properties&lt;br /&gt;
&lt;br /&gt;
upd:next_game_vertex_id = 65535&lt;br /&gt;
upd:prev_game_vertex_id = 65535&lt;br /&gt;
upd:distance_from_point = 0&lt;br /&gt;
upd:distance_to_point = 0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_human_abstract properties&lt;br /&gt;
predicate5 = 1,2,2,1,2&lt;br /&gt;
predicate4 = 0,1,1,1&lt;br /&gt;
&lt;br /&gt;
; cse_ph_skeleton properties&lt;br /&gt;
&lt;br /&gt;
upd:start_dialog =&lt;br /&gt;
&lt;br /&gt;
; se_stalker properties&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разъясню некоторые пункты, чтобы в след. раз не пришлось прибегать к тутору.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
section_name = stalker -//это для игры тут пишется к примеру если ето у тебя сталкера или бандюки то должно быть section_name = stalker&lt;br /&gt;
name = noobik -//пишем что хотим&lt;br /&gt;
position = -172.21215820313,-19.941787719727,-161.09272766113 -//позиция&lt;br /&gt;
direction = 0,0,0 -// направление взгляда(можно писать всегда нули)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; cse_alife_trader_abstract properties&lt;br /&gt;
money = 5000 -//его бабло&lt;br /&gt;
character_profile = esc_noobik -//ссылка на профиль в character_desc_локация(раз создаем в алайф эскейп значит и профиль будет искатсья в чарактер_деск_ескейп)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = 52 -// гейм вертекс&lt;br /&gt;
distance = 0&lt;br /&gt;
level_vertex_id = 76655 -//левел вертекс&lt;br /&gt;
object_flags = 0xffffffbf&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[logic]&lt;br /&gt;
cfg = scripts\noobik_logic.ltx -// ссылка на логику&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; cse[smart_terrains]&lt;br /&gt;
none = true&lt;br /&gt;
END&lt;br /&gt;
story_id = 10000 -//его стори айди&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = actors\soldier\soldier_beret_1 -// его визуал&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
upd:health = 1&lt;br /&gt;
upd:timestamp = 0&lt;br /&gt;
upd:creature_flags = 0&lt;br /&gt;
upd:position = -172.21215820313,-19.941787719727,-161.09272766113 -//опять пишем позицию&lt;br /&gt;
upd:o_model = 0&lt;br /&gt;
upd:o_torso = 0.028013030067086,0,0.9996075630188&lt;br /&gt;
upd:g_team = 0&lt;br /&gt;
upd:g_squad = 1&lt;br /&gt;
upd:g_group = 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
upd:next_game_vertex_id = 65535-//честно не знаю что это, я всегда пишу эти цифры&lt;br /&gt;
upd:prev_game_vertex_id = 65535-//не знаю, но пишем всегда это&lt;br /&gt;
upd:distance_from_point = 0&lt;br /&gt;
upd:distance_to_point = 0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Компилируем, получаем файл all.spawn.new , копируем его в геймдату/спавнс и переименовываем просто в олл спавн.&lt;br /&gt;
Это еще не все!&lt;br /&gt;
&lt;br /&gt;
еперь&lt;br /&gt;
&lt;br /&gt;
открываем файл character_desc_escape&lt;br /&gt;
&lt;br /&gt;
перед профилем волка вставляем это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;!---------------------------------------esc_noobik-----------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;specific_character id=&amp;quot;esc_noobik&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;name&amp;gt;Нубик&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_noobik&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;class&amp;gt;esc_noobik&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\soldier\soldier_beret_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;
&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;/specific_character&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
у нас будет чел с визуалом военного, иконкой волка, и голосом обычного сталкера&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
теперь создаем файл логики,&lt;br /&gt;
в папке config/scripts создаем файл noobik_logic.ltx&lt;br /&gt;
и пишем туды:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[logic]&lt;br /&gt;
active = remark1&lt;br /&gt;
danger = danger_ignore&lt;br /&gt;
&lt;br /&gt;
[danger_ignore]&lt;br /&gt;
ignore_distance = 5&lt;br /&gt;
&lt;br /&gt;
[remark1]&lt;br /&gt;
no_move = true&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
все, он никуда не уйдет пока на него не нападут = )&lt;br /&gt;
&lt;br /&gt;
Теперь открываем файл game_story_ids&lt;br /&gt;
&lt;br /&gt;
и в самый низ вписываем:&lt;br /&gt;
10000 = &amp;quot;esc_noobik&amp;quot;&lt;br /&gt;
&lt;br /&gt;
теперь открываем файл npc_profile&lt;br /&gt;
вставляем сие:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;character id=&amp;quot;esc_noobik&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;class&amp;gt;esc_noobik&amp;lt;/class&amp;gt;&lt;br /&gt;
&amp;lt;specific_character&amp;gt;esc_noobik&amp;lt;/specific_character&amp;gt;&lt;br /&gt;
&amp;lt;/character&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Все, мы на финишной прямой!&lt;br /&gt;
Открываем файл spawn_sections&lt;br /&gt;
&lt;br /&gt;
и в писываем:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[esc_noobik]:stalker&lt;br /&gt;
$spawn = &amp;quot;respawn\esc_noobik&amp;quot;&lt;br /&gt;
character_profile = esc_noobik&lt;br /&gt;
spec_rank = novice&lt;br /&gt;
community = stalker&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Все, все готово!&lt;br /&gt;
Начинаем новую игру, и видем сталкера с именем Нубик = )&lt;br /&gt;
&lt;br /&gt;
'''Статью создал stalker-life'''&lt;br /&gt;
С поправками '''Melnik'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:скрипты]]&lt;/div&gt;</summary>
		<author><name>Melnik</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=All.spawn._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_NPC</id>
		<title>All.spawn. Создание NPC</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=All.spawn._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_NPC"/>
				<updated>2011-01-08T20:15:41Z</updated>
		
		<summary type="html">&lt;p&gt;Melnik: /* Что,как,зачем */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Что,как,зачем ==&lt;br /&gt;
Итак, я хочу рассказать вам как создать NPC через all.spawn.&lt;br /&gt;
Метод был выявлен мною путем проб и ошибок.&lt;br /&gt;
Конечно же у вас появился вопрос: « Ну а зачем же мучатся с all.spawn, если можно сделать тоже самое через скрипт?».&lt;br /&gt;
Ответ:&lt;br /&gt;
Хоть этот способ и не такой быстрый и легкий, но у него есть свои плюсы, необходимые многим, один из них - мы можем задать story id нашему NPC.(Можно прописать в секции нпс которого спаунити в низу в файле spawn_sections.ltx Пример:story_id = 10000)&lt;br /&gt;
&amp;quot;А что дает нам это?&amp;quot;&lt;br /&gt;
Много чего, ну для примера - мы сможем поставить отметку на него.&lt;br /&gt;
Я не буду объяснять такие простые вещи как декомпиляция all.spawn и остальное, но если же вы все таки не знаете как, пишите мне в лс на Гейменаторе(stalkers-life, или Идиот)&lt;br /&gt;
Итак, хватит лишних слов, перейдем к работе...&lt;br /&gt;
&lt;br /&gt;
== Работаем!!! ==&lt;br /&gt;
&lt;br /&gt;
С помощью ACDC декомпилируем all.spawn&lt;br /&gt;
&lt;br /&gt;
Получаем кучу файлов типа : alife_l01_escape , way_l01_escape и тд.&lt;br /&gt;
&lt;br /&gt;
Создадим нового непися на Кордоне.&lt;br /&gt;
Открываем alife_l01_escape, и крутим в самый низ.&lt;br /&gt;
&lt;br /&gt;
Если у вас чистая игра и вы ничего не делали в Олл спавне то посленяя секция у вас будет под номером 869.&lt;br /&gt;
Добавляем туда вот такой код(в конец):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[870]&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = stalker&lt;br /&gt;
name = noobik&lt;br /&gt;
position = -172.21215820313,-19.941787719727,-161.09272766113&lt;br /&gt;
direction = 0,0,0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_trader_abstract properties&lt;br /&gt;
money = 5000&lt;br /&gt;
character_profile = esc_noobik&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = 52&lt;br /&gt;
distance = 0&lt;br /&gt;
level_vertex_id = 76655&lt;br /&gt;
object_flags = 0xffffffbf&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
&lt;br /&gt;
[logic]&lt;br /&gt;
cfg = scripts\noobik_logic.ltx&lt;br /&gt;
&lt;br /&gt;
; cse&lt;br /&gt;
[smart_terrains]&lt;br /&gt;
none = true&lt;br /&gt;
END&lt;br /&gt;
story_id = 10000&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = actors\soldier\soldier_beret_1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_creature_abstract properties&lt;br /&gt;
g_team = 0&lt;br /&gt;
g_squad = 1&lt;br /&gt;
g_group = 2&lt;br /&gt;
health = 1&lt;br /&gt;
dynamic_out_restrictions =&lt;br /&gt;
dynamic_in_restrictions =&lt;br /&gt;
&lt;br /&gt;
upd:health = 1&lt;br /&gt;
upd:timestamp = 0&lt;br /&gt;
upd:creature_flags = 0&lt;br /&gt;
upd:position = -172.21215820313,-19.941787719727,-161.09272766113&lt;br /&gt;
upd:o_model = 0&lt;br /&gt;
upd:o_torso = 0.028013030067086,0,0.9996075630188&lt;br /&gt;
upd:g_team = 0&lt;br /&gt;
upd:g_squad = 1&lt;br /&gt;
upd:g_group = 2&lt;br /&gt;
&lt;br /&gt;
; cse_alife_monster_abstract properties&lt;br /&gt;
&lt;br /&gt;
upd:next_game_vertex_id = 65535&lt;br /&gt;
upd:prev_game_vertex_id = 65535&lt;br /&gt;
upd:distance_from_point = 0&lt;br /&gt;
upd:distance_to_point = 0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_human_abstract properties&lt;br /&gt;
predicate5 = 1,2,2,1,2&lt;br /&gt;
predicate4 = 0,1,1,1&lt;br /&gt;
&lt;br /&gt;
; cse_ph_skeleton properties&lt;br /&gt;
&lt;br /&gt;
upd:start_dialog =&lt;br /&gt;
&lt;br /&gt;
; se_stalker properties&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разъясню некоторые пункты, чтобы в след. раз не пришлось прибегать к тутору.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
section_name = stalker -//это для игры тут пишется к примеру если ето у тебя сталкера или бандюки то должно быть section_name = stalker&lt;br /&gt;
name = noobik -//пишем что хотим&lt;br /&gt;
position = -172.21215820313,-19.941787719727,-161.09272766113 -//позиция&lt;br /&gt;
direction = 0,0,0 -// направление взгляда(можно писать всегда нули)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; cse_alife_trader_abstract properties&lt;br /&gt;
money = 5000 -//его бабло&lt;br /&gt;
character_profile = esc_noobik -//ссылка на профиль в character_desc_локация(раз создаем в алайф эскейп значит и профиль будет искатсья в чарактер_деск_ескейп)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = 52 -// гейм вертекс&lt;br /&gt;
distance = 0&lt;br /&gt;
level_vertex_id = 76655 -//левел вертекс&lt;br /&gt;
object_flags = 0xffffffbf&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[logic]&lt;br /&gt;
cfg = scripts\noobik_logic.ltx -// ссылка на логику&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; cse[smart_terrains]&lt;br /&gt;
none = true&lt;br /&gt;
END&lt;br /&gt;
story_id = 10000 -//его стори айди&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = actors\soldier\soldier_beret_1 -// его визуал&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
upd:health = 1&lt;br /&gt;
upd:timestamp = 0&lt;br /&gt;
upd:creature_flags = 0&lt;br /&gt;
upd:position = -172.21215820313,-19.941787719727,-161.09272766113 -//опять пишем позицию&lt;br /&gt;
upd:o_model = 0&lt;br /&gt;
upd:o_torso = 0.028013030067086,0,0.9996075630188&lt;br /&gt;
upd:g_team = 0&lt;br /&gt;
upd:g_squad = 1&lt;br /&gt;
upd:g_group = 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
upd:next_game_vertex_id = 65535-//честно не знаю что это, я всегда пишу эти цифры&lt;br /&gt;
upd:prev_game_vertex_id = 65535-//не знаю, но пишем всегда это&lt;br /&gt;
upd:distance_from_point = 0&lt;br /&gt;
upd:distance_to_point = 0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Компилируем, получаем файл all.spawn.new , копируем его в геймдату/спавнс и переименовываем просто в олл спавн.&lt;br /&gt;
Это еще не все!&lt;br /&gt;
&lt;br /&gt;
еперь&lt;br /&gt;
&lt;br /&gt;
открываем файл character_desc_escape&lt;br /&gt;
&lt;br /&gt;
перед профилем волка вставляем это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;!---------------------------------------esc_noobik-----------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;specific_character id=&amp;quot;esc_noobik&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;name&amp;gt;Нубик&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_noobik&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;class&amp;gt;esc_noobik&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\soldier\soldier_beret_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;
&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;/specific_character&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
у нас будет чел с визуалом военного, иконкой волка, и голосом обычного сталкера&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
теперь создаем файл логики,&lt;br /&gt;
в папке config/scripts создаем файл noobik_logic.ltx&lt;br /&gt;
и пишем туды:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[logic]&lt;br /&gt;
active = remark1&lt;br /&gt;
danger = danger_ignore&lt;br /&gt;
&lt;br /&gt;
[danger_ignore]&lt;br /&gt;
ignore_distance = 5&lt;br /&gt;
&lt;br /&gt;
[remark1]&lt;br /&gt;
no_move = true&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
все, он никуда не уйдет пока на него не нападут = )&lt;br /&gt;
&lt;br /&gt;
Теперь открываем файл game_story_ids&lt;br /&gt;
&lt;br /&gt;
и в самый низ вписываем:&lt;br /&gt;
10000 = &amp;quot;esc_noobik&amp;quot;&lt;br /&gt;
&lt;br /&gt;
теперь открываем файл npc_profile&lt;br /&gt;
вставляем сие:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;character id=&amp;quot;esc_noobik&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;class&amp;gt;esc_noobik&amp;lt;/class&amp;gt;&lt;br /&gt;
&amp;lt;specific_character&amp;gt;esc_noobik&amp;lt;/specific_character&amp;gt;&lt;br /&gt;
&amp;lt;/character&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Все, мы на финишной прямой!&lt;br /&gt;
Открываем файл spawn_sections&lt;br /&gt;
&lt;br /&gt;
и в писываем:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[esc_noobik]:stalker&lt;br /&gt;
$spawn = &amp;quot;respawn\esc_noobik&amp;quot;&lt;br /&gt;
character_profile = esc_noobik&lt;br /&gt;
spec_rank = novice&lt;br /&gt;
community = stalker&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Все, все готово!&lt;br /&gt;
Начинаем новую игру, и видем сталкера с именем Нубик = )&lt;br /&gt;
&lt;br /&gt;
'''Статью создал stalker-life'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:скрипты]]&lt;/div&gt;</summary>
		<author><name>Melnik</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=All.spawn._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_NPC</id>
		<title>All.spawn. Создание NPC</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=All.spawn._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_NPC"/>
				<updated>2011-01-08T20:15:00Z</updated>
		
		<summary type="html">&lt;p&gt;Melnik: /* Что,как,зачем */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Что,как,зачем ==&lt;br /&gt;
Итак, я хочу рассказать вам как создать NPC через all.spawn.&lt;br /&gt;
Метод был выявлен мною путем проб и ошибок.&lt;br /&gt;
Конечно же у вас появился вопрос: « Ну а зачем же мучатся с all.spawn, если можно сделать тоже самое через скрипт?».&lt;br /&gt;
Ответ:&lt;br /&gt;
Хоть этот способ и не такой быстрый и легкий, но у него есть свои плюсы, необходимые многим, один из них - мы можем задать story id нашему NPC.(Можно прописать в низу в файле spawn_sections.ltx Пример:story_id = 10000)&lt;br /&gt;
&amp;quot;А что дает нам это?&amp;quot;&lt;br /&gt;
Много чего, ну для примера - мы сможем поставить отметку на него.&lt;br /&gt;
Я не буду объяснять такие простые вещи как декомпиляция all.spawn и остальное, но если же вы все таки не знаете как, пишите мне в лс на Гейменаторе(stalkers-life, или Идиот)&lt;br /&gt;
Итак, хватит лишних слов, перейдем к работе...&lt;br /&gt;
&lt;br /&gt;
== Работаем!!! ==&lt;br /&gt;
&lt;br /&gt;
С помощью ACDC декомпилируем all.spawn&lt;br /&gt;
&lt;br /&gt;
Получаем кучу файлов типа : alife_l01_escape , way_l01_escape и тд.&lt;br /&gt;
&lt;br /&gt;
Создадим нового непися на Кордоне.&lt;br /&gt;
Открываем alife_l01_escape, и крутим в самый низ.&lt;br /&gt;
&lt;br /&gt;
Если у вас чистая игра и вы ничего не делали в Олл спавне то посленяя секция у вас будет под номером 869.&lt;br /&gt;
Добавляем туда вот такой код(в конец):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[870]&lt;br /&gt;
; cse_abstract properties&lt;br /&gt;
section_name = stalker&lt;br /&gt;
name = noobik&lt;br /&gt;
position = -172.21215820313,-19.941787719727,-161.09272766113&lt;br /&gt;
direction = 0,0,0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_trader_abstract properties&lt;br /&gt;
money = 5000&lt;br /&gt;
character_profile = esc_noobik&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = 52&lt;br /&gt;
distance = 0&lt;br /&gt;
level_vertex_id = 76655&lt;br /&gt;
object_flags = 0xffffffbf&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
&lt;br /&gt;
[logic]&lt;br /&gt;
cfg = scripts\noobik_logic.ltx&lt;br /&gt;
&lt;br /&gt;
; cse&lt;br /&gt;
[smart_terrains]&lt;br /&gt;
none = true&lt;br /&gt;
END&lt;br /&gt;
story_id = 10000&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = actors\soldier\soldier_beret_1&lt;br /&gt;
&lt;br /&gt;
; cse_alife_creature_abstract properties&lt;br /&gt;
g_team = 0&lt;br /&gt;
g_squad = 1&lt;br /&gt;
g_group = 2&lt;br /&gt;
health = 1&lt;br /&gt;
dynamic_out_restrictions =&lt;br /&gt;
dynamic_in_restrictions =&lt;br /&gt;
&lt;br /&gt;
upd:health = 1&lt;br /&gt;
upd:timestamp = 0&lt;br /&gt;
upd:creature_flags = 0&lt;br /&gt;
upd:position = -172.21215820313,-19.941787719727,-161.09272766113&lt;br /&gt;
upd:o_model = 0&lt;br /&gt;
upd:o_torso = 0.028013030067086,0,0.9996075630188&lt;br /&gt;
upd:g_team = 0&lt;br /&gt;
upd:g_squad = 1&lt;br /&gt;
upd:g_group = 2&lt;br /&gt;
&lt;br /&gt;
; cse_alife_monster_abstract properties&lt;br /&gt;
&lt;br /&gt;
upd:next_game_vertex_id = 65535&lt;br /&gt;
upd:prev_game_vertex_id = 65535&lt;br /&gt;
upd:distance_from_point = 0&lt;br /&gt;
upd:distance_to_point = 0&lt;br /&gt;
&lt;br /&gt;
; cse_alife_human_abstract properties&lt;br /&gt;
predicate5 = 1,2,2,1,2&lt;br /&gt;
predicate4 = 0,1,1,1&lt;br /&gt;
&lt;br /&gt;
; cse_ph_skeleton properties&lt;br /&gt;
&lt;br /&gt;
upd:start_dialog =&lt;br /&gt;
&lt;br /&gt;
; se_stalker properties&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разъясню некоторые пункты, чтобы в след. раз не пришлось прибегать к тутору.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
section_name = stalker -//это для игры тут пишется к примеру если ето у тебя сталкера или бандюки то должно быть section_name = stalker&lt;br /&gt;
name = noobik -//пишем что хотим&lt;br /&gt;
position = -172.21215820313,-19.941787719727,-161.09272766113 -//позиция&lt;br /&gt;
direction = 0,0,0 -// направление взгляда(можно писать всегда нули)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; cse_alife_trader_abstract properties&lt;br /&gt;
money = 5000 -//его бабло&lt;br /&gt;
character_profile = esc_noobik -//ссылка на профиль в character_desc_локация(раз создаем в алайф эскейп значит и профиль будет искатсья в чарактер_деск_ескейп)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; cse_alife_object properties&lt;br /&gt;
game_vertex_id = 52 -// гейм вертекс&lt;br /&gt;
distance = 0&lt;br /&gt;
level_vertex_id = 76655 -//левел вертекс&lt;br /&gt;
object_flags = 0xffffffbf&lt;br /&gt;
custom_data = &amp;lt;&amp;lt;END&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[logic]&lt;br /&gt;
cfg = scripts\noobik_logic.ltx -// ссылка на логику&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; cse[smart_terrains]&lt;br /&gt;
none = true&lt;br /&gt;
END&lt;br /&gt;
story_id = 10000 -//его стори айди&lt;br /&gt;
&lt;br /&gt;
; cse_visual properties&lt;br /&gt;
visual_name = actors\soldier\soldier_beret_1 -// его визуал&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
upd:health = 1&lt;br /&gt;
upd:timestamp = 0&lt;br /&gt;
upd:creature_flags = 0&lt;br /&gt;
upd:position = -172.21215820313,-19.941787719727,-161.09272766113 -//опять пишем позицию&lt;br /&gt;
upd:o_model = 0&lt;br /&gt;
upd:o_torso = 0.028013030067086,0,0.9996075630188&lt;br /&gt;
upd:g_team = 0&lt;br /&gt;
upd:g_squad = 1&lt;br /&gt;
upd:g_group = 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
upd:next_game_vertex_id = 65535-//честно не знаю что это, я всегда пишу эти цифры&lt;br /&gt;
upd:prev_game_vertex_id = 65535-//не знаю, но пишем всегда это&lt;br /&gt;
upd:distance_from_point = 0&lt;br /&gt;
upd:distance_to_point = 0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Компилируем, получаем файл all.spawn.new , копируем его в геймдату/спавнс и переименовываем просто в олл спавн.&lt;br /&gt;
Это еще не все!&lt;br /&gt;
&lt;br /&gt;
еперь&lt;br /&gt;
&lt;br /&gt;
открываем файл character_desc_escape&lt;br /&gt;
&lt;br /&gt;
перед профилем волка вставляем это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;!---------------------------------------esc_noobik-----------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;specific_character id=&amp;quot;esc_noobik&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;name&amp;gt;Нубик&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_noobik&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;class&amp;gt;esc_noobik&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\soldier\soldier_beret_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;
&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;/specific_character&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
у нас будет чел с визуалом военного, иконкой волка, и голосом обычного сталкера&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
теперь создаем файл логики,&lt;br /&gt;
в папке config/scripts создаем файл noobik_logic.ltx&lt;br /&gt;
и пишем туды:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[logic]&lt;br /&gt;
active = remark1&lt;br /&gt;
danger = danger_ignore&lt;br /&gt;
&lt;br /&gt;
[danger_ignore]&lt;br /&gt;
ignore_distance = 5&lt;br /&gt;
&lt;br /&gt;
[remark1]&lt;br /&gt;
no_move = true&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
все, он никуда не уйдет пока на него не нападут = )&lt;br /&gt;
&lt;br /&gt;
Теперь открываем файл game_story_ids&lt;br /&gt;
&lt;br /&gt;
и в самый низ вписываем:&lt;br /&gt;
10000 = &amp;quot;esc_noobik&amp;quot;&lt;br /&gt;
&lt;br /&gt;
теперь открываем файл npc_profile&lt;br /&gt;
вставляем сие:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;character id=&amp;quot;esc_noobik&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;class&amp;gt;esc_noobik&amp;lt;/class&amp;gt;&lt;br /&gt;
&amp;lt;specific_character&amp;gt;esc_noobik&amp;lt;/specific_character&amp;gt;&lt;br /&gt;
&amp;lt;/character&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Все, мы на финишной прямой!&lt;br /&gt;
Открываем файл spawn_sections&lt;br /&gt;
&lt;br /&gt;
и в писываем:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[esc_noobik]:stalker&lt;br /&gt;
$spawn = &amp;quot;respawn\esc_noobik&amp;quot;&lt;br /&gt;
character_profile = esc_noobik&lt;br /&gt;
spec_rank = novice&lt;br /&gt;
community = stalker&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Все, все готово!&lt;br /&gt;
Начинаем новую игру, и видем сталкера с именем Нубик = )&lt;br /&gt;
&lt;br /&gt;
'''Статью создал stalker-life'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:скрипты]]&lt;/div&gt;</summary>
		<author><name>Melnik</name></author>	</entry>

	</feed>