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

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B1%D0%B5%D1%81%D1%88%D0%BE%D0%B2%D1%8B%D1%85_%D1%82%D0%B5%D0%BA%D1%81%D1%82%D1%83%D1%80</id>
		<title>Строение бесшовых текстур</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B1%D0%B5%D1%81%D1%88%D0%BE%D0%B2%D1%8B%D1%85_%D1%82%D0%B5%D0%BA%D1%81%D1%82%D1%83%D1%80"/>
				<updated>2010-04-07T16:28:03Z</updated>
		
		<summary type="html">&lt;p&gt;F0rest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-------------------------&lt;br /&gt;
Внимание! Уроки расчитаны на пользователей, уже достаточно хорошо освоивших фотошоп. Различные вопросы типа &amp;quot;а где находится эта кнопачка???&amp;quot; здесь не рассматриваются. Названия функций приведены на русском языке, у кого фотошоп англоязычный, ориентируйтесь по смыслу.&lt;br /&gt;
-------------------------&lt;br /&gt;
&lt;br /&gt;
Главное требование к большинству текстур в любой игре - бесшовность. то есть, если ее много раз положить плиткой на поверхности большого размера, стыков не должно быть видно.&lt;br /&gt;
&lt;br /&gt;
Для достижения это цели есть несколько способов. Но сначала нам нужна подходящая фотография. Подойдет далеко не любая. Дальше описаны требования к фотографиям, предназначенные в основном для тех, кто занимается съемкой самостоятельно. Но изучив их, будет представление о том, какую фотографию для текстуры выбрать из готового набора. Вот требования к фотографии:&lt;br /&gt;
&lt;br /&gt;
- необходим снимок поверхности под углом как можно ближе к прямом;&lt;br /&gt;
- освещенность поверхности должна быть равномерной. т.е. никаких бликов, явных теней, особенно сбоку. Лучше всего подойдет съемка в пасмурную погоду, или в неглубокой тени.&lt;br /&gt;
- искажение перспективы должно быть минимальным. Чтобы понять, что такое &amp;quot;искажение перспективы&amp;quot;, попробуйте сфотографировать вблизи кирпичную стену, или любую другую поверхность с параллельными линиями. Будет заметно, что при удалении от центра фотографии линии будут сужаться. Чтобы максимально снизить такое искажение, я снимаю с как можно большего расстояния, используя оптический (ни в коем случае не цифровой!) зум.&lt;br /&gt;
- изображение на текстуре не должно иметь очень заметных пятен, которые при частом повторе текстуры на большой поверхности очень сильно будут броваться в глаза.В то же время фотография должна быть максимально информативной.&lt;br /&gt;
&lt;br /&gt;
Вообще, не соблюдая этих требований, тоже можно добиться пристойного результата, но это уже относится к мазохизму.&lt;br /&gt;
&lt;br /&gt;
Вот здесь показаны примеры подходящих и неподходящих фотографий: &lt;br /&gt;
&lt;br /&gt;
http://i039.radikal.ru/0811/b2/dd57f471e8e9.jpg&lt;br /&gt;
&lt;br /&gt;
Относительно информативности фотографий, это скорее зависит от целей. Если нам например понадобится сделать текстуру наждачной бумаги, этот критерий примет другой смысл.&lt;br /&gt;
&lt;br /&gt;
Теперь начнем непосредственно сам процесс изготовления текстуры из фотографии. Будем пробовать на той фотографии, которая была признана годной, ее можно взять отсюда http://i078.radikal.ru/0811/cd/277ef0db3a15.jpg, ее разрешение 2048х1536 пикселей. Лучше всего работать с фотографиями исходного разрешения, независимо от того, какой размер текстуры требуется. Почему? Будет ясно позже.&lt;br /&gt;
&lt;br /&gt;
Так вот, открываем фотографию в фотошопе. Она прямоугольная, а нам нужен квадрат (так как большинство используемых а играх текстур квадратные, то поставим целью сделать квадратную текстуру). Чтобы получить квадрат, отсечем ненужное с помощью инструмента &amp;quot;Обрезка&amp;quot;. Чтобы рамка отсечения оставалась квадратной, нужно во время операции удерживать клавишу Шифт: &lt;br /&gt;
&lt;br /&gt;
http://s61.radikal.ru/i173/0811/88/e02919a257fd.jpg&lt;br /&gt;
&lt;br /&gt;
Получаем квадратное изображение. Теперь найдем в Фильтрах-&amp;gt;другое-&amp;gt; фильтр &amp;quot;Сдвиг&amp;quot;. В открывшемся окошке установим на обоих ползунках значение, равное половине стороны квадрата. в нашем случае это 1536/2=768 пикс.: &lt;br /&gt;
&lt;br /&gt;
http://s47.radikal.ru/i116/0811/48/a57e89e3546a.jpg&lt;br /&gt;
&lt;br /&gt;
После использования фильтра прямо в центре изображения появляются швы, те самые, которые могли появиться в игре, если бы мы всунули туда текстуру без обработки, потому что этот фильтр сдвигает изображение так, что швы, которые находились на краях изображения, стали посередине.&lt;br /&gt;
Все, что нам требуется теперь, это чуть чуть пошаманить инструментом штамп, чтобы замаскировать все стыки. Рекомендую использовать для инструмента &amp;quot;штамп&amp;quot; кисти максимальной жесткости и 100% давления, это позволяет не разводить муть и сохранить текстуру четкой. После недолгой работы штампом может получиться что то вроде этого: &lt;br /&gt;
&lt;br /&gt;
http://s40.radikal.ru/i088/0811/0b/0a84ed0a3b22.jpg&lt;br /&gt;
&lt;br /&gt;
Почти готово. Теперь снова применим фильтр &amp;quot;Сдвиг&amp;quot;, чтобы вернуть изображение в исходное положение. Если все сделано правильно, то уже можно не беспокоиться о том, что на текстуре появятся стыки. Единственное, что осталось сделать на данной текстуре, это убрать темное пятно вверху справа тем же штампом: &lt;br /&gt;
&lt;br /&gt;
http://s46.radikal.ru/i111/0811/51/e8f271900f2e.jpg&lt;br /&gt;
&lt;br /&gt;
ну вот и готово. В качестве теста я попробовал разложить эти текстуры несколько в ряд: &lt;br /&gt;
&lt;br /&gt;
http://s41.radikal.ru/i094/0811/cf/748332b3a053.jpg&lt;br /&gt;
&lt;br /&gt;
 Вполне пристойно. Видны правда мутные полосы по вертикали, но если очень постараться, то и их не будет.&lt;br /&gt;
&lt;br /&gt;
Теперь нужно уменьшить текстуру до того размера, какой нам требуется, например до 1024х1024. Уменьшая текстуру после всех операций, а не с самого начала, мы в какой то мере сможем замаскировать муть, полученную после работы штампом. Ну вот и все.&lt;br /&gt;
&lt;br /&gt;
Удачи в работе! :)&lt;br /&gt;
'''Автор - Argus, Добавил - Forest Aka Andrey K'''&lt;/div&gt;</summary>
		<author><name>F0rest</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_WayPoint</id>
		<title>Создание WayPoint</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_WayPoint"/>
				<updated>2010-03-27T20:40:25Z</updated>
		
		<summary type="html">&lt;p&gt;F0rest: /* Вейпоинт с несколькими точками */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Создадим вейппоинт.&lt;br /&gt;
Не буду говорить все точно, скажу для новичков :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Что такое вейпоинт ==&lt;br /&gt;
WayPoint(он же вейпоинт, ВП,WP) - путь передвижения для отдельного сталкера, состоит из точек путей.&lt;br /&gt;
Чтобы создать ВП, нужно расстыковать all.spawn(не буду описывать, как это делать).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создаем вейпоинт, с одной точкой ==&lt;br /&gt;
Открываете way_название локации и прописываете текст, подобный этому: &lt;br /&gt;
&lt;br /&gt;
 [name_weypoint]&lt;br /&gt;
 points = p0&lt;br /&gt;
 p0:name = wp00&lt;br /&gt;
 p0:position = 185.667572021484,-0.436268001794815,-260.062866210938&lt;br /&gt;
 p0:game_vertex_id = 696&lt;br /&gt;
 p0:level_vertex_id = 415469&lt;br /&gt;
&lt;br /&gt;
А теперь, подробнее&lt;br /&gt;
 [name_weypoint] - название путя&lt;br /&gt;
 points = p0 - список точек путя, через запятую ( например oints = p0,p1,p2 и т.д.&lt;br /&gt;
 po:name = wp00 название первой точки путя.&lt;br /&gt;
 p0:position - позиции точки путя.&lt;br /&gt;
 p0:game_vertix_id - вертиксы локации&lt;br /&gt;
 p0:level_vertex_id&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== Вейпоинт с несколькими точками ==&lt;br /&gt;
 &lt;br /&gt;
[name_wp]&lt;br /&gt;
 points = p0,p1,p2,p3&lt;br /&gt;
 p0:name = wp00&lt;br /&gt;
 p0:flags = 0x1&lt;br /&gt;
 p0:position = 163.527374267578,-0.432826995849609,-266.167022705078&lt;br /&gt;
 p0:game_vertex_id = 854&lt;br /&gt;
 p0:level_vertex_id = 392698&lt;br /&gt;
 p0:links = p1(1),p3(1)&lt;br /&gt;
&lt;br /&gt;
 p1:name = wp01&lt;br /&gt;
 p1:flags = 0x2&lt;br /&gt;
 p1:position = 176.939651489258,-0.50609302520752,-264.630889892578&lt;br /&gt;
 p1:game_vertex_id = 696&lt;br /&gt;
 p1:level_vertex_id = 406938&lt;br /&gt;
 p1:links = p2(1)&lt;br /&gt;
&lt;br /&gt;
 p2:name = wp02&lt;br /&gt;
 p2:flags = 0x2&lt;br /&gt;
 p2:position = 179.156524658203,-0.430828988552094,-266.572570800781&lt;br /&gt;
 p2:game_vertex_id = 696&lt;br /&gt;
 p2:level_vertex_id = 409212&lt;br /&gt;
&lt;br /&gt;
 p3:name = wp03&lt;br /&gt;
 p3:flags = 0x1&lt;br /&gt;
 p3:position = 161.710388183594,-0.50619900226593,-269.339660644531&lt;br /&gt;
 p3:game_vertex_id = 855&lt;br /&gt;
 p3:level_vertex_id = 390503&lt;br /&gt;
&lt;br /&gt;
Здесь видно, что в первой точке прописаны все 3 точки. &lt;br /&gt;
 points = p0,p1,p2,p3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Пропишем путь нашему сталкеру ==&lt;br /&gt;
&lt;br /&gt;
Теперь, чтобы по нашему пути ходил дядька нужно прописать ему этот путь. К кастом дате укажите файл до логики (не буду описавать, как это делаеться)&lt;br /&gt;
 [logic]&lt;br /&gt;
 active = walker&lt;br /&gt;
 [walker]&lt;br /&gt;
 path_walk = name_wp&lt;br /&gt;
 path_look = name_wp&lt;br /&gt;
&lt;br /&gt;
Думаю, что я понятно объяснил :)&lt;br /&gt;
'''Автор статьи - Andrey K aka forest'''&lt;/div&gt;</summary>
		<author><name>F0rest</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_WayPoint</id>
		<title>Создание WayPoint</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_WayPoint"/>
				<updated>2010-03-27T20:36:48Z</updated>
		
		<summary type="html">&lt;p&gt;F0rest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Создадим вейппоинт.&lt;br /&gt;
Не буду говорить все точно, скажу для новичков :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Что такое вейпоинт ==&lt;br /&gt;
WayPoint(он же вейпоинт, ВП,WP) - путь передвижения для отдельного сталкера, состоит из точек путей.&lt;br /&gt;
Чтобы создать ВП, нужно расстыковать all.spawn(не буду описывать, как это делать).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создаем вейпоинт, с одной точкой ==&lt;br /&gt;
Открываете way_название локации и прописываете текст, подобный этому: &lt;br /&gt;
&lt;br /&gt;
 [name_weypoint]&lt;br /&gt;
 points = p0&lt;br /&gt;
 p0:name = wp00&lt;br /&gt;
 p0:position = 185.667572021484,-0.436268001794815,-260.062866210938&lt;br /&gt;
 p0:game_vertex_id = 696&lt;br /&gt;
 p0:level_vertex_id = 415469&lt;br /&gt;
&lt;br /&gt;
А теперь, подробнее&lt;br /&gt;
 [name_weypoint] - название путя&lt;br /&gt;
 points = p0 - список точек путя, через запятую ( например oints = p0,p1,p2 и т.д.&lt;br /&gt;
 po:name = wp00 название первой точки путя.&lt;br /&gt;
 p0:position - позиции точки путя.&lt;br /&gt;
 p0:game_vertix_id - вертиксы локации&lt;br /&gt;
 p0:level_vertex_id&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== Вейпоинт с несколькими точками ==&lt;br /&gt;
 &lt;br /&gt;
[name_wp]&lt;br /&gt;
 points = p0,p1,p2,p3&lt;br /&gt;
 p0:name = wp00&lt;br /&gt;
 p0:flags = 0x1&lt;br /&gt;
 p0:position = 163.527374267578,-0.432826995849609,-266.167022705078&lt;br /&gt;
 p0:game_vertex_id = 854&lt;br /&gt;
 p0:level_vertex_id = 392698&lt;br /&gt;
 p0:links = p1(1),p3(1)&lt;br /&gt;
&lt;br /&gt;
 p1:name = wp01&lt;br /&gt;
 p1:flags = 0x2&lt;br /&gt;
 p1:position = 176.939651489258,-0.50609302520752,-264.630889892578&lt;br /&gt;
 p1:game_vertex_id = 696&lt;br /&gt;
 p1:level_vertex_id = 406938&lt;br /&gt;
 p1:links = p2(1)&lt;br /&gt;
&lt;br /&gt;
 p2:name = wp02&lt;br /&gt;
 p2:flags = 0x2&lt;br /&gt;
 p2:position = 179.156524658203,-0.430828988552094,-266.572570800781&lt;br /&gt;
 p2:game_vertex_id = 696&lt;br /&gt;
 p2:level_vertex_id = 409212&lt;br /&gt;
&lt;br /&gt;
 p3:name = wp03&lt;br /&gt;
 p3:flags = 0x1&lt;br /&gt;
 p3:position = 161.710388183594,-0.50619900226593,-269.339660644531&lt;br /&gt;
 p3:game_vertex_id = 855&lt;br /&gt;
 p3:level_vertex_id = 390503&lt;br /&gt;
&lt;br /&gt;
Здесь видно, что в первой точке прописаны все 3 точки. &lt;br /&gt;
 points = p0,p1,p2,p3&lt;br /&gt;
&lt;br /&gt;
Думаю, что я понятно объяснил :)&lt;br /&gt;
&lt;br /&gt;
'''Автор статьи - Andrey K aka forest'''&lt;/div&gt;</summary>
		<author><name>F0rest</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_all.spawn</id>
		<title>Работа с all.spawn</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_all.spawn"/>
				<updated>2010-02-18T09:48:31Z</updated>
		
		<summary type="html">&lt;p&gt;F0rest: /* Создаем новую секцию спавна */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Расспаковка all.spawn ==&lt;br /&gt;
&lt;br /&gt;
Для того, чтобы расспаковать ол спавн, нам потребуеться acdc. Для каждой версии игры нам понадобиться свой. Я описываю для ЗП ( во&lt;br /&gt;
всех частях сталкера этот процесс идентичен), поэтому и пользуюсь acdc от ЗП. Для того, чтобы запустить acdc нам будет &lt;br /&gt;
нужен ActivePerl (нужная версия входит в архив)Качаем acdc для ЗП [http://narod.ru/disk/17377026000/ACDC%20Cop.rar.html здесь].После того, как вы скачали acdc, установите эктивперл(если вы этого еще не сделали). Расспакуйте acdc и скопируте в эту папку свой all.spawn. Запустите .bat файл decompile(если его нет, то откройте блокнот, запишите в нем такие строки:&lt;br /&gt;
 perl acdccop.pl -d all.spawn&lt;br /&gt;
 pause&lt;br /&gt;
&lt;br /&gt;
И сохраните под именем &amp;quot;decompile.bat&amp;quot; Запускайте батник. Через некоторое время появяться .ltx файлы.&lt;br /&gt;
Все, ол спавн расспаковон и ждет шаманства над собой :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Структура файлов ==&lt;br /&gt;
&lt;br /&gt;
Рассмотрим структуру файлов. Файлы типа alife_ - это основные файлы, в которых содержаться секции спавна. Файлы типа way_ - это и есть &amp;quot;вэй&amp;quot;. Сквады, логика и прочая дребедень. Трогать мы их не будем.&lt;br /&gt;
Откроем любой alife_ файл и увидим там много секций спавна. Вот одна из них:&lt;br /&gt;
&lt;br /&gt;
 [0]&lt;br /&gt;
 ; cse_abstract properties&lt;br /&gt;
 section_name = breakable_object&lt;br /&gt;
 name = meshes\brkbl#0.ogf&lt;br /&gt;
 position = -160.539749145508,21.5325393676758,-195.387329101563&lt;br /&gt;
 direction = -0.00700339116156101,-0.108852192759514,0.412739604711533&lt;br /&gt;
 ; cse_alife_object properties&lt;br /&gt;
 game_vertex_id = 0&lt;br /&gt;
 distance = 0&lt;br /&gt;
 level_vertex_id = 293223&lt;br /&gt;
 object_flags = 0xffffffba&lt;br /&gt;
 ; cse_visual properties&lt;br /&gt;
 visual_name = meshes\brkbl#0&lt;br /&gt;
 ; cse_alife_object_breakable properties&lt;br /&gt;
 health = 1&lt;br /&gt;
&lt;br /&gt;
А теперь подробнее&lt;br /&gt;
&lt;br /&gt;
 [0] - уникальный &amp;quot;id&amp;quot;, тобишь номер секции&lt;br /&gt;
 ; cse_abstract properties - коментарий&lt;br /&gt;
 section_name = breakable_object - название секции( НЕ В КОЕМ СЛУЧАЕ НЕ СТАВТЕ ЗДЕСЬ СВОЕ НАЗВАНИЕ, ИНАЧЕ all.spawn ВЫ НЕ ЗАПАКУЕТЕ)&lt;br /&gt;
 name = meshes\brkbl#0.ogf - тоже название... Тут уже что годно можно написать&lt;br /&gt;
 position = -160.539749145508,21.5325393676758,-195.387329101563 - позиция на которой будет спавн&lt;br /&gt;
 direction = -0.00700339116156101,-0.108852192759514,0.412739604711533 - направление. В какую сторону &amp;quot;смотрит&amp;quot; обьект.&lt;br /&gt;
 ; cse_alife_object properties - коментарий&lt;br /&gt;
 game_vertex_id = 0 - вертикс.&lt;br /&gt;
 distance = 0&lt;br /&gt;
 level_vertex_id = 293223 - тоже вертикс. (зачем они обьснять не буду)&lt;br /&gt;
 object_flags = 0xffffffba - флаги обьекта. тоже рассматривать не будем&lt;br /&gt;
 ; cse_visual properties - коментарий&lt;br /&gt;
 visual_name = meshes\brkbl#0 - визуал.&lt;br /&gt;
 ; cse_alife_object_breakable properties - коментарий.&lt;br /&gt;
 health = 1 - здоровье.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Файл all.ltx - это список файлов, которые упакованы в ол спавн.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создаем новую секцию спавна ==&lt;br /&gt;
Ну вот, самое интересное начинаеться )&lt;br /&gt;
Открываем любой файл. Я буду спавнить свои обьекты, на новой локации. &lt;br /&gt;
&lt;br /&gt;
Допустим, нам нужно заспавнить сталкера. &lt;br /&gt;
Создаем секцию спавна. ( ВНИМАНИЕ! ПРЕЖДЕ ЧЕМ СПАВНИТЬ СТАЛКЕРА, ЕГО НУЖНО СОЗДАТЬ). Как описывать новых напсано [http://stalkerin.gameru.net/wiki/index.php/%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_NPC здесь]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [20927] - уникальный номер секции&lt;br /&gt;
 ; cse_abstract properties - коментарий :) &lt;br /&gt;
 section_name = stalker - название секции. Если спавните сталкера - stalker. Своих названий быть не должно.&lt;br /&gt;
 name = marsh_koster_stalker - имя.  я использую имя профиля, которого вы создавали при создании нпс&lt;br /&gt;
 position = -150.17852783203,0.63608288764954,-293.19580078125 - координаты.&lt;br /&gt;
 direction = 0.062321275472641,0.00316426996141672,0.0140644172206521 - направление. Куда сталкер будет смотреть.&lt;br /&gt;
 ; cse_alife_trader_abstract properties - &lt;br /&gt;
 money = 5000 - деньги )&lt;br /&gt;
 character_profile = marsh_koster_stalker - профиль, который вы указали при создании нпс. Вот тут нужно указывать его&lt;br /&gt;
 ; cse_alife_object properties&lt;br /&gt;
 game_vertex_id = 934 - вертикс локации&lt;br /&gt;
 distance = 4.90000009536743 - дистанция, зачем нужна не знаю.&lt;br /&gt;
 level_vertex_id = 1418 - вертикс локации )&lt;br /&gt;
 object_flags = 0xffffffbf&lt;br /&gt;
 custom_data = &amp;lt;&amp;lt;END - кастом дата. Очень важный элемент при создании нпс. Проще говоря - логика.&lt;br /&gt;
 cfg = scripts/marsh/koster.ltx - путь к конфигу кастом даты&lt;br /&gt;
 [smart_terrains] - смарт террайны ( не рассматриваться)&lt;br /&gt;
 END - окончание кастом даты&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 = 5&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 = 0x2009656c&lt;br /&gt;
 upd:creature_flags = 0x3d&lt;br /&gt;
 upd:position = -150.17852783203,0.63608288764954,-293.19580078125&lt;br /&gt;
 upd:o_model = 0&lt;br /&gt;
 upd:o_torso = 0.00316426996141672,0.062321275472641,0&lt;br /&gt;
 upd:g_team = 0&lt;br /&gt;
 upd:g_squad = 1&lt;br /&gt;
 upd:g_group = 5&lt;br /&gt;
 ; cse_alife_monster_abstract properties&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;
 ; cse_alife_human_abstract properties&lt;br /&gt;
 predicate5 = 1,1,0,0,1&lt;br /&gt;
 predicate4 = 2,2,0,2&lt;br /&gt;
 ; cse_ph_skeleton properties&lt;br /&gt;
 upd:start_dialog =&lt;br /&gt;
 ; se_stalker properties&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Сохраняем. Запоковываем ол спавн, файлом comlite.bat.&lt;br /&gt;
&lt;br /&gt;
В папке gamedata создаем папку spawns и копируем файл new.spawn(он будет называться именно так). Потом переименовываем в all.spawn.&lt;br /&gt;
&lt;br /&gt;
Статья не закончена и будет пополняться время от времяни. Для начала хватит. &lt;br /&gt;
&lt;br /&gt;
Автор статьи - '''Andrey K aka f0rest'''&lt;/div&gt;</summary>
		<author><name>F0rest</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_all.spawn</id>
		<title>Работа с all.spawn</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_all.spawn"/>
				<updated>2010-02-18T09:46:58Z</updated>
		
		<summary type="html">&lt;p&gt;F0rest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Расспаковка all.spawn ==&lt;br /&gt;
&lt;br /&gt;
Для того, чтобы расспаковать ол спавн, нам потребуеться acdc. Для каждой версии игры нам понадобиться свой. Я описываю для ЗП ( во&lt;br /&gt;
всех частях сталкера этот процесс идентичен), поэтому и пользуюсь acdc от ЗП. Для того, чтобы запустить acdc нам будет &lt;br /&gt;
нужен ActivePerl (нужная версия входит в архив)Качаем acdc для ЗП [http://narod.ru/disk/17377026000/ACDC%20Cop.rar.html здесь].После того, как вы скачали acdc, установите эктивперл(если вы этого еще не сделали). Расспакуйте acdc и скопируте в эту папку свой all.spawn. Запустите .bat файл decompile(если его нет, то откройте блокнот, запишите в нем такие строки:&lt;br /&gt;
 perl acdccop.pl -d all.spawn&lt;br /&gt;
 pause&lt;br /&gt;
&lt;br /&gt;
И сохраните под именем &amp;quot;decompile.bat&amp;quot; Запускайте батник. Через некоторое время появяться .ltx файлы.&lt;br /&gt;
Все, ол спавн расспаковон и ждет шаманства над собой :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Структура файлов ==&lt;br /&gt;
&lt;br /&gt;
Рассмотрим структуру файлов. Файлы типа alife_ - это основные файлы, в которых содержаться секции спавна. Файлы типа way_ - это и есть &amp;quot;вэй&amp;quot;. Сквады, логика и прочая дребедень. Трогать мы их не будем.&lt;br /&gt;
Откроем любой alife_ файл и увидим там много секций спавна. Вот одна из них:&lt;br /&gt;
&lt;br /&gt;
 [0]&lt;br /&gt;
 ; cse_abstract properties&lt;br /&gt;
 section_name = breakable_object&lt;br /&gt;
 name = meshes\brkbl#0.ogf&lt;br /&gt;
 position = -160.539749145508,21.5325393676758,-195.387329101563&lt;br /&gt;
 direction = -0.00700339116156101,-0.108852192759514,0.412739604711533&lt;br /&gt;
 ; cse_alife_object properties&lt;br /&gt;
 game_vertex_id = 0&lt;br /&gt;
 distance = 0&lt;br /&gt;
 level_vertex_id = 293223&lt;br /&gt;
 object_flags = 0xffffffba&lt;br /&gt;
 ; cse_visual properties&lt;br /&gt;
 visual_name = meshes\brkbl#0&lt;br /&gt;
 ; cse_alife_object_breakable properties&lt;br /&gt;
 health = 1&lt;br /&gt;
&lt;br /&gt;
А теперь подробнее&lt;br /&gt;
&lt;br /&gt;
 [0] - уникальный &amp;quot;id&amp;quot;, тобишь номер секции&lt;br /&gt;
 ; cse_abstract properties - коментарий&lt;br /&gt;
 section_name = breakable_object - название секции( НЕ В КОЕМ СЛУЧАЕ НЕ СТАВТЕ ЗДЕСЬ СВОЕ НАЗВАНИЕ, ИНАЧЕ all.spawn ВЫ НЕ ЗАПАКУЕТЕ)&lt;br /&gt;
 name = meshes\brkbl#0.ogf - тоже название... Тут уже что годно можно написать&lt;br /&gt;
 position = -160.539749145508,21.5325393676758,-195.387329101563 - позиция на которой будет спавн&lt;br /&gt;
 direction = -0.00700339116156101,-0.108852192759514,0.412739604711533 - направление. В какую сторону &amp;quot;смотрит&amp;quot; обьект.&lt;br /&gt;
 ; cse_alife_object properties - коментарий&lt;br /&gt;
 game_vertex_id = 0 - вертикс.&lt;br /&gt;
 distance = 0&lt;br /&gt;
 level_vertex_id = 293223 - тоже вертикс. (зачем они обьснять не буду)&lt;br /&gt;
 object_flags = 0xffffffba - флаги обьекта. тоже рассматривать не будем&lt;br /&gt;
 ; cse_visual properties - коментарий&lt;br /&gt;
 visual_name = meshes\brkbl#0 - визуал.&lt;br /&gt;
 ; cse_alife_object_breakable properties - коментарий.&lt;br /&gt;
 health = 1 - здоровье.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Файл all.ltx - это список файлов, которые упакованы в ол спавн.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создаем новую секцию спавна ==&lt;br /&gt;
Ну вот, самое интересное начинаеться )&lt;br /&gt;
Открываем любой файл. Я буду спавнить свои обьекты, на новой локации. &lt;br /&gt;
&lt;br /&gt;
Допустим, нам нужно заспавнить сталкера. &lt;br /&gt;
Создаем секцию спавна. ( ВНИМАНИЕ! ПРЕЖДЕ ЧЕМ СПАВНИТЬ СТАЛКЕРА, ЕГО НУЖНО СОЗДАТЬ). Как описывать новых напсано [http://stalkerin.gameru.net/wiki/index.php/%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_NPC здесь]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [20927] - уникальный номер секции&lt;br /&gt;
 ; cse_abstract properties - коментарий :) &lt;br /&gt;
 section_name = stalker - название секции. Если спавните сталкера - stalker. Своих названий быть не должно.&lt;br /&gt;
 name = marsh_koster_stalker - имя.  я использую имя профиля, которого вы создавали при создании нпс&lt;br /&gt;
 position = -150.17852783203,0.63608288764954,-293.19580078125 - координаты.&lt;br /&gt;
 direction = 0.062321275472641,0.00316426996141672,0.0140644172206521 - направление. Куда сталкер будет смотреть.&lt;br /&gt;
 ; cse_alife_trader_abstract properties - &lt;br /&gt;
 money = 5000 - деньги )&lt;br /&gt;
 character_profile = marsh_koster_stalker - профиль, который вы указали при создании нпс. Вот тут нужно указывать его&lt;br /&gt;
 ; cse_alife_object properties&lt;br /&gt;
 game_vertex_id = 934 - вертикс локации&lt;br /&gt;
 distance = 4.90000009536743 - дистанция, зачем нужна не знаю.&lt;br /&gt;
 level_vertex_id = 1418 - вертикс локации )&lt;br /&gt;
 object_flags = 0xffffffbf&lt;br /&gt;
 custom_data = &amp;lt;&amp;lt;END - кастом дата. Очень важный элемент при создании нпс. Проще говоря - логика.&lt;br /&gt;
 cfg = scripts/marsh/koster.ltx - путь к конфигу кастом даты&lt;br /&gt;
 [smart_terrains] - смарт террайны ( не рассматриваться)&lt;br /&gt;
 END - окончание кастом даты&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 = 5&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 = 0x2009656c&lt;br /&gt;
 upd:creature_flags = 0x3d&lt;br /&gt;
 upd:position = -150.17852783203,0.63608288764954,-293.19580078125&lt;br /&gt;
 upd:o_model = 0&lt;br /&gt;
 upd:o_torso = 0.00316426996141672,0.062321275472641,0&lt;br /&gt;
 upd:g_team = 0&lt;br /&gt;
 upd:g_squad = 1&lt;br /&gt;
 upd:g_group = 5&lt;br /&gt;
 ; cse_alife_monster_abstract properties&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;
 ; cse_alife_human_abstract properties&lt;br /&gt;
 predicate5 = 1,1,0,0,1&lt;br /&gt;
 predicate4 = 2,2,0,2&lt;br /&gt;
 ; cse_ph_skeleton properties&lt;br /&gt;
 upd:start_dialog =&lt;br /&gt;
 ; se_stalker properties&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Сохраняем. Запоковываем ол спавн, файлом comlite.bat.&lt;br /&gt;
&lt;br /&gt;
В папке gamedata создаем папку spawns и копируем файл new.spawn(он будет называться именно так). Потом переименовываем в all.spawn.&lt;br /&gt;
&lt;br /&gt;
Статья не закончена и будет пополняться время от времяни. Для начала хватит. &lt;br /&gt;
&lt;br /&gt;
Автор статьи - '''Andrey K aka f0rest'''&lt;/div&gt;</summary>
		<author><name>F0rest</name></author>	</entry>

	</feed>