<?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=85.26.234.29&amp;*</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=85.26.234.29&amp;*"/>
		<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/85.26.234.29"/>
		<updated>2026-04-29T16:28:47Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.22.6</generator>

	<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>2014-12-26T11:43:23Z</updated>
		
		<summary type="html">&lt;p&gt;85.26.234.29: /* Расспаковка all.spawn */&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 (адрес откуда можно скачать последнюю версию, для работы подойдёт любая. http://www.activestate.com/activeperl/downloads (дС)) (нужная версия входит в архив)Качаем acdc для ЗП [http://narod.ru/disk/17377026000/ACDC%20Cop.rar.html здесь].После того, как вы скачали acdc, установите эктивперл(если вы этого еще не сделали)(от &amp;quot;GE&amp;quot; - файлы ACDC должны лежать в папке &amp;quot;C:\Perl\bin&amp;quot; если вы не изменяли стандартного пути установки файлов программы Active Perl). Распакуйте acdc и скопируйте в эту папку свой all.spawn (от &amp;quot;GE&amp;quot; - если вы работаете с файлами ТЧ то не забудьте поместить туда-же и файл game.graph , если вы работаете с файлами модов на ТЧ то дополнительно перенести и папку config). Запустите .bat файл decompile(если его нет, то откройте блокнот, запишите в нем такие строки:&lt;br /&gt;
 perl acdccop.pl -d all.spawn&lt;br /&gt;
 pause&lt;br /&gt;
(от &amp;quot;GE&amp;quot; - при работе с утилитами от Бардака .bat файл выглядит так:&lt;br /&gt;
&lt;br /&gt;
 del sections.ini&lt;br /&gt;
 perl universal_acdc.pl -d all.spawn&lt;br /&gt;
 pause&lt;br /&gt;
&lt;br /&gt;
при работе с файлами модов надо включить в .bat сканирование конфигураций:&lt;br /&gt;
&lt;br /&gt;
 del sections.ini&lt;br /&gt;
 perl universal_acdc.pl -d all.spawn -out all -scan config/ -nofatal&lt;br /&gt;
 pause&lt;br /&gt;
&lt;br /&gt;
в ином случае не чего не получится. Описание подходит для де компиляции all.spawn ТЧ и модов , работоспособность .bat с ЧН и ЗП не проверял.)&lt;br /&gt;
&lt;br /&gt;
И сохраните под именем &amp;quot;decompile.bat&amp;quot; Запускайте батник. Через некоторое время появятся .ltx файлы.&lt;br /&gt;
Все, ол спавн распакован и ждет шаманства над собой :) (от &amp;quot;GE&amp;quot; - при работе ACDC от бардака в папке C:\Perl\bin по мимо отсальной кучи файлов &amp;quot;pl и прочих&amp;quot; + наших файлов ACDC появятся файлы: sections.ini, папка all с .ltx всех локаций и guids.)&lt;br /&gt;
&lt;br /&gt;
== Структура файлов == &lt;br /&gt;
&lt;br /&gt;
Я прошу прощения у автора этой статьи, но так как он мало разбирается в модостроении или стесняется писать правильно, счёл возможным внести некоторые правки в его статью. Правки буду вносить в скобках с указанием &amp;quot;дС&amp;quot;(дядяСаша)&lt;br /&gt;
Рассмотрим структуру файлов. Файлы типа alife_ - это основные файлы(не основных файлов нет! каждый файл выполняет свою функцию(дС)), в которых содержаться секции спавна(Название, координаты, характеристики, логика или указания на логику объектов которые спавнятся в игре с помощью all.spawn(дС)) . Файлы типа 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;, то бишь номер секции(ID в игре сталкер - совершенно другое и ни какого отношения&lt;br /&gt;
                             к номеру секции не имеет. Секция - просто номер который не должен повторятся(дС))&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;
     придерживаться правил наименования чтобы не запутаться при большом количестве объектов(дС))&lt;br /&gt;
 position = -160.539749145508,21.5325393676758,-195.387329101563 - позиция на которой будет спавн&lt;br /&gt;
     (Уточнение: центральная точка плоскости спавна на горизонтальной плоскости локации, почему см. 3 строчки ниже(дС)) &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;
               предмет. Расстояние будет выбираться произвольно в пределах указанного радиуса.&lt;br /&gt;
               Теретически можно назначить радиус на всю локацию, НО! я не даром говорил про воображаемую&lt;br /&gt;
                плоскость, надеюсь геометрию уже изучали -)), если ваша плоскость пойдёт через бугор то&lt;br /&gt;
               НПС может заспавнится под землёй и соответственно в игре участвовать не сможет, если над&lt;br /&gt;
                ямой то предмет зависнет в воздухе, есть ещё аномалии и предметы внутри которых может &lt;br /&gt;
                заспавнится ваш объект, поэтому радиус нужно выбирать в разумных пределах(дС))&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 - визуал.(папка meshes не указывается, а указывается полный путь в папке&lt;br /&gt;
 &amp;quot;meshes&amp;quot; например actors\aziat\aziat_bandit_veteran, папка &amp;quot;actors&amp;quot; соответственно должна находится в папке &amp;quot;meshes&amp;quot;(дС))&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] - уникальный номер секции. (Это просто порядковый номер секции, после распаковки all.spawn &lt;br /&gt;
           открваете последний файл Alife_ в списке для ЗП это alife_zaton.ltx и смотрите № последней&lt;br /&gt;
            секции, дальше уже можете назначать свой. Свою секцию можете вписывать в конце любого&lt;br /&gt;
           файла alife_ только со своим номером. При запаковке, номера будут перебиты соответственно&lt;br /&gt;
           порядковым номерам начиная от первой секции первого файла alife_. Единственное условие&lt;br /&gt;
           порядковые номера не должны быть одинаковыми не сможете запаковать.(дС))&lt;br /&gt;
 &lt;br /&gt;
 ; cse_abstract properties - коментарий :) &lt;br /&gt;
 section_name = stalker - название секции. Если спавните сталкера - stalker. Своих названий быть не должно.&lt;br /&gt;
 name = marsh_koster_stalker - имя.  я использую имя профиля, которого вы создавали при создании нпс (категорическая глупость, не надо путать себя и машину. &lt;br /&gt;
        Правило №1 при спавне новых объектов первые 3 буквы должны содержать название локации mar_ дальше уже пишите название желательно места и затем уже&lt;br /&gt;
        название сталкера и последним порядковый номер например: mar_cerkov_stalk_1, так как указал автор статьи можно заспавнить, но если сталкеров будет&lt;br /&gt;
         много и на разных локациях как это есть в больших модах потом при необходимости внесения изменений найти будет очень тяжело. Поэтому лучше учится&lt;br /&gt;
         сразу правильно делать(дС))&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 - Расстояние до gvid (Опять какой-то бред, причём тут givd. Для чего нужна дистанция, При спавне например группы сталкеров&lt;br /&gt;
         5 человек не нужно для каждого устанавливать свои координаты спавна у всех можно делать одинаковые, но при наличии радиуса, движок их сам&lt;br /&gt;
         раскидает, а если радиус будет 0 все будут спавнится в одной точке, резко возрастает нагрузка на память игра начинает притормаживать, и иногда,&lt;br /&gt;
          я думаю многие встречались с этим, какой-то НПС просто сразу гибнет на месте спавна, почему это происходит не знаю! просто факт!(дС))&lt;br /&gt;
&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 - путь к конфигу кастом даты (уточняю папка &amp;quot;scripts&amp;quot; которая находится в папке &amp;quot;config&amp;quot;, потому, что в папке gamedata тоже есть папка &amp;quot;scripts&amp;quot; не путать!(дС))&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;
 (зачем нужно это не совсем понимаю, но заполнять так же, как и в основной секции)&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         --- (но что конкретно я не знаю, поэтому многие скриптовики мучаются с созданием своих систем alife(дС))&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;br /&gt;
&lt;br /&gt;
Правки -- &amp;quot;дядяСаша&amp;quot; (все правки внесённые мной опробованы на &amp;quot;собственной шкуре&amp;quot;, поэтому лучше учится на чужих ошибках! --)) (imgal@mail.ru)&lt;br /&gt;
&lt;br /&gt;
[[Категория:скрипты]]&lt;br /&gt;
[[Категория:all.spawn]]&lt;/div&gt;</summary>
		<author><name>85.26.234.29</name></author>	</entry>

	</feed>