<?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/index.php?action=history&amp;feed=atom&amp;title=%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BA%D0%B0%D1%86%D0%B8%D0%B9_%D0%BA_%D0%BC%D0%BE%D0%B4%D1%83</id>
		<title>Подключение локаций к моду - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://stalkerin.gameru.net/wiki/index.php?action=history&amp;feed=atom&amp;title=%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BA%D0%B0%D1%86%D0%B8%D0%B9_%D0%BA_%D0%BC%D0%BE%D0%B4%D1%83"/>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BA%D0%B0%D1%86%D0%B8%D0%B9_%D0%BA_%D0%BC%D0%BE%D0%B4%D1%83&amp;action=history"/>
		<updated>2026-04-30T01:55:06Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.22.6</generator>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BA%D0%B0%D1%86%D0%B8%D0%B9_%D0%BA_%D0%BC%D0%BE%D0%B4%D1%83&amp;diff=14955&amp;oldid=prev</id>
		<title>Aka sektor: /* Компиляция локации */ Никаких aiwrapper</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BA%D0%B0%D1%86%D0%B8%D0%B9_%D0%BA_%D0%BC%D0%BE%D0%B4%D1%83&amp;diff=14955&amp;oldid=prev"/>
				<updated>2017-05-16T10:47:59Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Компиляция локации: &lt;/span&gt; Никаких aiwrapper&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 10:47, 16 мая 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 56:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 56:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;можете сразу сделать графпоинты переходов, чтобы потом не выделять под это один из свободных графпоинтов.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;можете сразу сделать графпоинты переходов, чтобы потом не выделять под это один из свободных графпоинтов.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Как положено прогоняем все батники &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;aiwrapper &lt;/del&gt;- строим сетку, левелграф, геймграф, аллспавн.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Как положено прогоняем все батники &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;xrAI &lt;/ins&gt;- строим сетку, левелграф, геймграф, аллспавн.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Сведение единого спавна и графа =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Сведение единого спавна и графа =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Aka sektor</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BA%D0%B0%D1%86%D0%B8%D0%B9_%D0%BA_%D0%BC%D0%BE%D0%B4%D1%83&amp;diff=12408&amp;oldid=prev</id>
		<title>178.165.40.70 в 18:09, 20 июля 2012</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BA%D0%B0%D1%86%D0%B8%D0%B9_%D0%BA_%D0%BC%D0%BE%D0%B4%D1%83&amp;diff=12408&amp;oldid=prev"/>
				<updated>2012-07-20T18:09:40Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 18:09, 20 июля 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 192:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 192:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Авторы =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Авторы =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Статья создана: [[Участник:Kamikazze|Kamikazze]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Статья создана: [[Участник:Kamikazze|Kamikazze]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Категория:Конфигурационные файлы]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>178.165.40.70</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BA%D0%B0%D1%86%D0%B8%D0%B9_%D0%BA_%D0%BC%D0%BE%D0%B4%D1%83&amp;diff=12403&amp;oldid=prev</id>
		<title>Kamikazze: Новая страница: «Category:SDK  = Предварительная настройка конфигов = Самое главное - правильно настроенные кон...»</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BA%D0%B0%D1%86%D0%B8%D0%B9_%D0%BA_%D0%BC%D0%BE%D0%B4%D1%83&amp;diff=12403&amp;oldid=prev"/>
				<updated>2012-07-16T07:54:44Z</updated>
		
		<summary type="html">&lt;p&gt;Новая страница: «&lt;a href=&quot;/wiki/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:SDK&quot; title=&quot;Категория:SDK&quot;&gt;Category:SDK&lt;/a&gt;  = Предварительная настройка конфигов = Самое главное - правильно настроенные кон...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:SDK]]&lt;br /&gt;
&lt;br /&gt;
= Предварительная настройка конфигов =&lt;br /&gt;
Самое главное - правильно настроенные конфиги ЗАРАНЕЕ, маппером при сборке локации. Что нужно сделать с конфигами:&lt;br /&gt;
&lt;br /&gt;
''game_graphs.ltx'' - добавить в конец секции ''[location_0]'' новую локацию, аналогично тем что там уже прописаны. У меня получилось вот так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[location_0]&lt;br /&gt;
000 = &amp;quot;...&amp;quot;&lt;br /&gt;
001 = &amp;quot;эскейп&amp;quot;&lt;br /&gt;
002 = &amp;quot;свалка&amp;quot;&lt;br /&gt;
003 = &amp;quot;агропром&amp;quot;&lt;br /&gt;
004 = &amp;quot;агропром-подземка&amp;quot;&lt;br /&gt;
005 = &amp;quot;темная долина&amp;quot;&lt;br /&gt;
006 = &amp;quot;лаборатория X-18&amp;quot;&lt;br /&gt;
008 = &amp;quot;Бар&amp;quot;&lt;br /&gt;
009 = &amp;quot;Росток&amp;quot;&lt;br /&gt;
010 = &amp;quot;Янтарь&amp;quot;&lt;br /&gt;
011 = &amp;quot;лаборатория X-16&amp;quot;&lt;br /&gt;
012 = &amp;quot;Милитари&amp;quot;&lt;br /&gt;
013 = &amp;quot;Мертвый город&amp;quot;&lt;br /&gt;
014 = &amp;quot;Радар&amp;quot;&lt;br /&gt;
015 = &amp;quot;Радар бункер&amp;quot;&lt;br /&gt;
016 = &amp;quot;Припять&amp;quot;&lt;br /&gt;
017 = &amp;quot;станция АЭС&amp;quot;&lt;br /&gt;
018 = &amp;quot;ЧАЭС-2&amp;quot;&lt;br /&gt;
019 = &amp;quot;бункер выжигателя&amp;quot;&lt;br /&gt;
021 = &amp;quot;даркскейп&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Главное - чтобы локация '''НЕ ВКЛИНИЛАСЬ''' в сетку, надо ей дать новый id - тут у нас он 21. Запомним его, он должен совпадать во всех конфигах.&lt;br /&gt;
&lt;br /&gt;
''game_levels.ltx'' - добавить в конец секции ''[levels]'', и создать новую подсекцию локации с тем же именем. У меня получилась level21. Создаём для неё в конце конфига пропись:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code lua&amp;gt;[level21]&lt;br /&gt;
name = k01_darkscape_ogse -- имя локации - задаётся по имени папки&lt;br /&gt;
caption = &amp;quot;k01_darkscape_ogse&amp;quot; -- имя на карте, можно потом в строки добавить для подстановки&lt;br /&gt;
offset = 3000.0, 1000.0, 0.0 -- смещение (на глобальной картие видимо)&lt;br /&gt;
id = 21 -- новый id, должен быть равен указанному в game_graphs.ltx, и быть самым большим, иначе локация вклинится в середину геймграфа&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''game_maps_single.ltx'' - дописать в конец ''[level_maps_single]'' текстовое имя локации - ''k01_darkscape_ogse'', затем создать новую подсекцию локации - ''[k01_darkscape_ogse]''. Заполнить параметры:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code lua&amp;gt;[k01_darkscape_ogse]&lt;br /&gt;
texture = map\map_darkscape&lt;br /&gt;
bound_rect = -702.00,-704.090, 708.500,716.7780&lt;br /&gt;
global_rect = 701.0, 2072.0, 1020.0,2393.0 ;касается только карты в КПК&lt;br /&gt;
;1 значение - ширина текстуры (чем значение больше, тем карта уже. правый край неподвижен)&lt;br /&gt;
;2 значение - длина текстуры (чем значение больше, тем карта короче. нижний край неподвижен)&lt;br /&gt;
;3 значение - ширина текстуры (чем значение больше, тем карта шире. левый край неподвижен)&lt;br /&gt;
;4 значение - длина текстуры (чем значение больше, тем карта длиннее. верхний край неподвижен)&lt;br /&gt;
weathers = default&lt;br /&gt;
;music_tracks = l04_darkvalley_musics&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Компиляция локации =&lt;br /&gt;
Если раньше геометрию уже компилировали, можно сделать на драфте, потом обсчитать только сетку, затем забросить её файлы *.ai, *.gct в папку уже готовой карты).&lt;br /&gt;
Убедитесь что на локации '''НЕТ''' точки спавна актора (она должна быть только одна на игру), а так же что локация равномерно покрыта графпоинтами. Кроме того&lt;br /&gt;
можете сразу сделать графпоинты переходов, чтобы потом не выделять под это один из свободных графпоинтов.&lt;br /&gt;
&lt;br /&gt;
Как положено прогоняем все батники aiwrapper - строим сетку, левелграф, геймграф, аллспавн.&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;
*Аллспавн сформированный при компиляции локации&lt;br /&gt;
*Файлы level.ai и level.gct ВСЕХ локаций, которые уже есть в моде - если новых нету то все оригинала&lt;br /&gt;
*Папка с полностью готовой локацией&lt;br /&gt;
*Утилиты ACDC, gg_cdc_x, game.graph_recompiler&lt;br /&gt;
&lt;br /&gt;
Сначала надо выяснить, правильно ли у нас по геймвертексам села локация. Для этого кидаем геймграф сформированный при компиляции локации в папку с ACDC и прогоняем команду&lt;br /&gt;
&lt;br /&gt;
''ggtool.pl game.graph''&lt;br /&gt;
&lt;br /&gt;
Утилита подумает немного и выдаст вам табличку всех переходов и геймвертексов локаций. Нас интересует список вертексов:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code perl&amp;gt;l01_escape =&amp;gt; 0&lt;br /&gt;
l02_garbage =&amp;gt; 252&lt;br /&gt;
l03_agroprom =&amp;gt; 416&lt;br /&gt;
l03u_agr_underground =&amp;gt; 703&lt;br /&gt;
l04_darkvalley =&amp;gt; 811&lt;br /&gt;
l04u_labx18 =&amp;gt; 1109&lt;br /&gt;
l05_bar =&amp;gt; 1168&lt;br /&gt;
l06_rostok =&amp;gt; 1308&lt;br /&gt;
l08_yantar =&amp;gt; 1438&lt;br /&gt;
l08u_brainlab =&amp;gt; 1529&lt;br /&gt;
l07_military =&amp;gt; 1545&lt;br /&gt;
l10_radar =&amp;gt; 1862&lt;br /&gt;
l11_pripyat =&amp;gt; 2117&lt;br /&gt;
l12_stancia =&amp;gt; 2273&lt;br /&gt;
l12u_sarcofag =&amp;gt; 2402&lt;br /&gt;
l12u_control_monolith =&amp;gt; 2467&lt;br /&gt;
l12_stancia_2 =&amp;gt; 2517&lt;br /&gt;
l10u_bunker =&amp;gt; 2661&lt;br /&gt;
k01_darkscape_ogse =&amp;gt; 2792&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Обратите внимание - новая локация должна быть САМОЙ последней, и за ней не должно больше идти никаких локаций. Запишите себе её стартовый вертекс - в данном случае 2792. Если локация вклинилась в середину списка значит вы ей дали не самый последний Id - это не годится, так как переколбасит весь игровой граф, спавн и вы вручную замордуетесь это сводить. Поэтому возвращаемся к шагу 1. Если же локация как положено в конце, всё отлично, можно работать дальше.&lt;br /&gt;
&lt;br /&gt;
Теперь надо поправить АСДС - открываем acdc.pl, находим по тексту &amp;quot;constant levels_inf&amp;quot; структуру с разбиением локаций по геймграфам. Убеждаемся что границы локаций совпадают с теми что у нас получились при проверке графа, удаляем оттуда лишние и вписываем в самый верх нашу локацию. Получится примерно вот так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code perl&amp;gt;use constant levels_info =&amp;gt; (&lt;br /&gt;
{ gvid0 =&amp;gt;3700, },&lt;br /&gt;
{ gvid0 =&amp;gt; 2792, name =&amp;gt; 'k01_darkscape_ogse' },&lt;br /&gt;
{ gvid0 =&amp;gt; 2661, name =&amp;gt; 'l10u_bunker' },&lt;br /&gt;
{ gvid0 =&amp;gt; 2517, name =&amp;gt; 'l12_stancia_2' },&lt;br /&gt;
{ gvid0 =&amp;gt; 2467, name =&amp;gt; 'l12u_control_monolith' },&lt;br /&gt;
{ gvid0 =&amp;gt; 2402, name =&amp;gt; 'l12u_sarcofag' },&lt;br /&gt;
{ gvid0 =&amp;gt; 2273, name =&amp;gt; 'l12_stancia' },&lt;br /&gt;
{ gvid0 =&amp;gt; 2117, name =&amp;gt; 'l11_pripyat' },&lt;br /&gt;
{ gvid0 =&amp;gt; 1862, name =&amp;gt; 'l10_radar' },&lt;br /&gt;
{ gvid0 =&amp;gt; 1545, name =&amp;gt; 'l07_military' },&lt;br /&gt;
{ gvid0 =&amp;gt; 1529, name =&amp;gt; 'l08u_brainlab' },&lt;br /&gt;
{ gvid0 =&amp;gt; 1438, name =&amp;gt; 'l08_yantar' },&lt;br /&gt;
{ gvid0 =&amp;gt; 1308, name =&amp;gt; 'l06_rostok' },&lt;br /&gt;
{ gvid0 =&amp;gt; 1168, name =&amp;gt; 'l05_bar' },&lt;br /&gt;
{ gvid0 =&amp;gt; 1109, name =&amp;gt; 'l04u_labx18' },&lt;br /&gt;
{ gvid0 =&amp;gt; 811, name =&amp;gt; 'l04_darkvalley' },&lt;br /&gt;
{ gvid0 =&amp;gt; 703, name =&amp;gt; 'l03u_agr_underground' },&lt;br /&gt;
{ gvid0 =&amp;gt; 416, name =&amp;gt; 'l03_agroprom' },&lt;br /&gt;
{ gvid0 =&amp;gt; 252, name =&amp;gt; 'l02_garbage' },&lt;br /&gt;
{ gvid0 =&amp;gt; 0, name =&amp;gt; 'l01_escape' },&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраняем ''acdc.pl'', она нам чуть позже понадобится для спавна. Теперь надо свести единый граф с нашей новой локацией. Для этого берём ''game.graph_recompiler''. Копируем в его папку в папку ''levels'' целиком нашу папку с новой локацией, а так же создаём папки всех локаций что уже есть в игре, и копируем туда файлы ''level.ai'' и ''level.gct'' ВСЕХ локаций, которые уже есть. В корень копируем старый граф мода, и туда же рядом - новый граф, переименовав его в ''game2.graph''&lt;br /&gt;
Теперь правим батник для подключения локации - в нём надо указать какие локации брать из первого графа, и какие из второго, а так же типы графов. У меня получился вот такой батник:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;ggrc.pl -g1 game.graph,soc -l1 l01_escape,l02_garbage,l03_agroprom,l03u_agr_underground,l04_darkvalley,l04u_labx18,l05_bar,l06_rostok,l08_yantar,l08u_brainlab,l07_military,l10_radar,l11_pripyat,l12_stancia,l12u_sarcofag,l12u_control_monolith,l12_stancia_2,l10u_bunker -g2 game2.graph,soc -l2 k01_darkscape_ogse&lt;br /&gt;
pause&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запускаем, ждём пока обработается. Если всё прокатило, тогда мы получим новый файл ''game.graph.new'' - в который вписана локация. Нужно тут же его утащить и распаковать с помощью ''gg_cdc_x'' - проверить ''game.graph.info.cross_edges.ltx'' - все ли переходы остались на месте (должны быть все), а так же как вписалась локация - в ''game.graph.levels.ltx'' наша локация должна быть конечной и с самым большим ''level_id''. В ''game.graph.levels_info.ltx'' она тоже должна быть последней, там же можно увидеть её минимальный и максимальный вертексы. Минимальный вертекс должен быть тот же что был когда проверяли граф, сделанный компилятором - у нас это был вертекс 2792.&lt;br /&gt;
&lt;br /&gt;
Теперь необходимо проверить, не сдвинулись ли идентификаторы локаций в графе. Почти наверняка - сдвинулись, так как в оригинале там есть груда ссылок на тестовые локации разработчиков. Проверить это можно в ''game.graph.levels.ltx'', сравнив идентификаторы локаций там с идентификаторами в конфигах ''game_graphs.ltx'' и ''game_levels.ltx'' - если они отличаются, то обязательно поправляем идентификаторы в конфигах на те, что в геймграфе!&lt;br /&gt;
&lt;br /&gt;
По добавлению переходов - чтобы их добавить вам желательно было заранее создать кроссграфы на локации. Если вы это сделали, тогда вам нужно сделать вот что - распаковать геймграф, сформированный при компиляции локации. Найти там в конфиге графов новой локации - ''game.graph.edges.&amp;lt;id_вашей_локации&amp;gt;'' сделанные вами переходы - они будут помечены как ''&amp;quot;crosslevel edge&amp;quot;''. Ещё их легко найти по параметру ''target_level_id'' - он у них отличается от исходного для этой локации. После того как нашли - скопируйте их прописи в отдельный файл. Затем откройте конфиг новой локации в сведённом вместе графе. При сведении переходы прибились, поэтому надо теперь в новом конфиге найти те же самые графпоинты на которых висели переходы. Ищите их по параметру ''parent_level_vertex_id''. Как только найдете - перед тем как править - скопируйте в отдельный файл. Затем замените им параметры ''target_level_id'', ''target_level_vertex_id'' и ''game_vertex_id'' на те, которые были у сделанных вами переходов. Не забудьте выставить дистанцию - это будет расстояние перехода. Сохранитесь. Теперь откройте конфиги ''game.graph.edges.&amp;lt;id_вашей_локации&amp;gt;'' тех локаций на которые создали переходы - нужно же сделать ещё переходы в обратную сторону. Открыв, найдите там те графы, с которыми только что сделали соединения с новой локации. Ищите по параметру ''parent_level_vertex_id'' - у наиболее подходящего графпоинта он будет равен ''target_level_vertex_id'' перехода с новой локации. После того как нашли, откройте файл в который сохранили не изменённые ещё графпоинты новой локации, на которые были сделаны переходы. Теперь аналогично - затем замените им параметры ''target_level_id'', ''target_level_vertex_id'' и ''game_vertex_id'' на те, которые были у графпоинтов новой локации до изменения. Так мы добьемся того, чтобы входы и выходы с локации были примерно на одном месте. Не забудьте выставить дистанцию! Теперь всё сохраняем, и компилируем граф. Если всё сделано правильно граф сохранится, и при проверке его ''ggtool.pl'' вы увидите в списке сделанные вами переходы.&lt;br /&gt;
&lt;br /&gt;
Если всё нормально, то можно скопировать граф обратно. Теперь важно - нужно так же не забыть скопировать в итоговый пакет файлы, которые при слиянии были поправлены в папке нашей локации. Это:&lt;br /&gt;
&lt;br /&gt;
level.gct&lt;br /&gt;
level.graph&lt;br /&gt;
level.ai&lt;br /&gt;
&lt;br /&gt;
А так же проверить - были ли внесены изменения в файлы ''level.ai'' и ''level.gct'' уже существующих локаций. Если да, то изменённые файлы тоже надо будет скопировать в итоговый пакет. Теперь займёмся спавном. Берём наш поправленный АСДС и распаковываем спавн, полученный при компиляции локации. Забираем оттуда конфиг нашей новой локации. Затем распаковываем аллспавн мода и кидаем в его папку конфиг нашей новой локации. Прописываем его в ''all.ltx'' аллспавна мода, и увеличиваем в ''all.ltx'' индекс локаций ''level_count'' на единицу. Больше в ''all.ltx'' ничего не трогаем. Далее проверяем число объектов в нашем спавне, и перенумеровываем объекты в конфиге нашей новой локации так, чтобы они были добавлены в конец нумерации. Проверяем прописанные в конфиге нашей новой локации геймвертексы объектов - они должны лежать в пределах вертексов, которые мы получили при проверке геймграфа в файле ''game.graph.levels_info.ltx''&lt;br /&gt;
&lt;br /&gt;
Если всё получилось, то добавляем в аллспавн точки переходов для ГГ и запаковываем спавн обратно. Он готов к работе, можно его скопировать в итоговый пакет.&lt;br /&gt;
&lt;br /&gt;
= Cобираем общий пакет обновления =&lt;br /&gt;
&lt;br /&gt;
В пакет у нас попадут:&lt;br /&gt;
&lt;br /&gt;
*Конфиги&lt;br /&gt;
&lt;br /&gt;
game_graphs.ltx&lt;br /&gt;
game_levels.ltx&lt;br /&gt;
game_maps_single.ltx&lt;br /&gt;
&lt;br /&gt;
*Папка с самой локацией, при этом в ней должны быть обновлены файлы&lt;br /&gt;
&lt;br /&gt;
level.gct&lt;br /&gt;
level.graph&lt;br /&gt;
level.ai&lt;br /&gt;
&lt;br /&gt;
- теми, которые получили при слиянии графа&lt;br /&gt;
&lt;br /&gt;
*Изменённые при слиянии графа файлы level.ai и level.gct уже существующих локаций (если локация добавлена нормально, то изменённых может и не быть вообще)&lt;br /&gt;
&lt;br /&gt;
*Слитый game.graph&lt;br /&gt;
&lt;br /&gt;
*Слитый all.spawn&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;
 &lt;br /&gt;
*level&lt;br /&gt;
*level.cform&lt;br /&gt;
*build_details.dds&lt;br /&gt;
*level_lods.dds&lt;br /&gt;
*level_lods_nm.dds&lt;br /&gt;
*level.details&lt;br /&gt;
*level.game&lt;br /&gt;
*level.geom&lt;br /&gt;
*level.geomx&lt;br /&gt;
*build.prj&lt;br /&gt;
*level.wallmarks&lt;br /&gt;
&lt;br /&gt;
--[[Участник:Kamikazze|KamikaZze (OGSE Team)]] 11:46, 16 июля 2012 (UTC)&lt;br /&gt;
&lt;br /&gt;
= Авторы =&lt;br /&gt;
Статья создана: [[Участник:Kamikazze|Kamikazze]]&lt;/div&gt;</summary>
		<author><name>Kamikazze</name></author>	</entry>

	</feed>