<?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=89.178.96.171&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=89.178.96.171&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/89.178.96.171"/>
		<updated>2026-04-29T23:33:19Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.22.6</generator>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-</id>
		<title>Компиляция -=inGame АИ=-</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-"/>
				<updated>2008-01-08T04:35:05Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, приступим... Раз вы здесь, значит есть на то причина:&lt;br /&gt;
*1)либо вы нуп, увидевший аи-компилер и решивший забацать чтото крутое&lt;br /&gt;
*2)вы не нуп, но всё забыли или почти всё&lt;br /&gt;
*3)вы супер-аццкий про решивший глянуть на весь этот детсад свысока )&lt;br /&gt;
*4)вы обычный модер, решивший расширить свои текущие познания. ;)&lt;br /&gt;
&lt;br /&gt;
==Основы==&lt;br /&gt;
Ну что ж... начнем с самого простого, скомпилим левел с аи, монстрами на&lt;br /&gt;
карте '''mp_atp'''. Открываем левел.. первое что надо сделать убрать все &lt;br /&gt;
'''rpoint'''(мультиплеерные точки спавна). Убрали? Отлично. Создаем&lt;br /&gt;
'''Spawn elements -&amp;gt; actor''' ну и по желанию в свойствах ('''Properties''')&lt;br /&gt;
в '''custom data''' прописываем ему предположим вот это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[spawn]&lt;br /&gt;
wpn_ak74&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тем самым при появлении игрока у него в руках уже будет калаш. Далее,&lt;br /&gt;
создаем монстра... любого по желанию, предположим кровососа и ставим на уровень.&lt;br /&gt;
Теперь дело за '''AI map''' - аи сетка, которая необходима для того, чтобы&lt;br /&gt;
нпс, монстры могли ориентироваться по уровню. Жмем Object и кликаем на  земле(тем самым мы ее &amp;quot;выбрали&amp;quot; для дальнейших манипуляций), затем '''AI Map''' -&amp;gt; '''Commands''' -&amp;gt; '''Make list from selected''', жмем '''add''' в разделе '''AI Map Nodes''' и '''add''' для добавления объектов слева вверху(чайник) и ставим на карте ноды в нужном вам порядке(достаточно одного), жмем '''Generate Full'''. Всё, аи-сетка сгенерированна. Теперь добавляем на левел обязательно! 1 graph point ('''Spawns-&amp;gt;ai-&amp;gt;graph point'''), в нем можно ничего не писать. Сохраняем уровень, билдим ('''build'''). &lt;br /&gt;
&lt;br /&gt;
Следующим шагом будет правка конфигов.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
'''game_maps_single.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[level_maps_single]&lt;br /&gt;
...&lt;br /&gt;
testing_ai &lt;br /&gt;
//название вашего уровня&lt;br /&gt;
&lt;br /&gt;
[testing_ai]&lt;br /&gt;
global_rect  = -6,1220.0, 248.0,1481.0&lt;br /&gt;
texture      = map\map_escape&lt;br /&gt;
//текстура при загрузке&lt;br /&gt;
bound_rect  = -502.148,-412.284,379.976,474,479&lt;br /&gt;
weathers  = default&lt;br /&gt;
//погода&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''game_levels.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[levels]&lt;br /&gt;
...&lt;br /&gt;
level190&lt;br /&gt;
//номер вашего уровня&lt;br /&gt;
&lt;br /&gt;
[level190]&lt;br /&gt;
name   = testing_ai&lt;br /&gt;
caption = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
offset  = 2000.0, 800.0, 1000.0&lt;br /&gt;
id   = 193&lt;br /&gt;
//индентифакционный номер, должен быть уникальным&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''game_graphs.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
018   = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь открываем AI Compiler, указываем папку с '''сдк'''(.../level_editor, либо если он объединен с игрой, путь до нее). Выбираем ваш уровень.&lt;br /&gt;
Проходим 1ую стадию чернового просчета аи карты('''шаг 1'''), либо если вы хотите долго ждать и просчитать укрытия для нпс то выбираем '''шаг 2'''.&lt;br /&gt;
Далее строим граф и кросс-таблицу уровня шаг 3, потом граф игры '''шаг 4''' и наконец фаил .spawn '''шаг 5'''. После всех стадий заходим в gamedata\spawns\ и переименовываем '''test.spawn''' в '''all.spawn'''&lt;br /&gt;
&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id	=pseudoscience|&lt;br /&gt;
align = left|&lt;br /&gt;
backgroundcolor	= #f9f9f9|&lt;br /&gt;
image	=Lamp.gif|&lt;br /&gt;
heading	= Важные моменты -- Loxotron|&lt;br /&gt;
message = При правке конфигов не забывайте указывать реально существующую там погоду и картинку загрузки, иначе вылетит; также не пытайтесь запустить уровень через .bat фаил, подобный указанному ниже, тоже будет вылет&lt;br /&gt;
&amp;lt;pre&amp;gt;bin\xr_3da.exe -ltx user.ltx -nointro -external -start server(level/single) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правильный .bat фаил&lt;br /&gt;
&amp;lt;pre&amp;gt;@start bin\XR_3DA.exe -start server(%1/single/alife) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
%1 - название левела&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Углубленное изучение==&lt;br /&gt;
Далее мы рассмотрим как собирать несколько уровней и устанавливать между ними переходы.&lt;br /&gt;
&lt;br /&gt;
Итак у вас два уровня... на одном из них стоит '''actor'''. Начнем с него:&lt;br /&gt;
создаем '''ai-&amp;gt;level changer''', затем '''shape-&amp;gt;sphere''', с помощью '''scale''' увеличиваем до необходимых размеров, теперь переключаемся в режим редактирования '''spawn element''', выделяем '''level changer''' и жмем '''commands-&amp;gt;attach object''', а затем кликаем на сферу... Всё, сфера и level changer теперь связаны. Далее идем в закладку '''properties''', указываем название, например '''to_atp_2''', теперь нужно прописать в '''custom data''' вейпоинт для возврата, в случае отказа игрока от перемещения с локации на локации(обязательно). Вписываем вот это:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_1_way_if_reject&lt;br /&gt;
//в случае отказа от перемещения на вторую локу, возвращаемся назад&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В '''Level to change''' вписываем наименование уровня, куда мы хотим переместиться с этого левела, например '''atp_2'''. &lt;br /&gt;
В '''Level Point to change''' указываем точку, в которой игрок появится...&lt;br /&gt;
'''start_actor_01'''. С '''level changer''' на этом уровне всё, пошли далее.&lt;br /&gt;
Создаем '''graph point''' или используем пустой существующий если у вас есть.&lt;br /&gt;
В него вписываем '''start_actor_01''', этот поинт для того чтобы мы смогли со второго левела '''atp_2''' перейти на '''atp_1'''(первый). Создаем еще один '''graph point''' c названием '''exit_atp_1_01''', в разделе '''location''' выбираем, например &amp;quot;экскейп&amp;quot;. В '''Connection -&amp;gt; Level name''' указываем уровень, с которым будет связан '''atp_1''', то есть выбираем '''atp_2''', в '''Connection-&amp;gt;Point Name''' вписываем точку связи из второго уровня, которую мы создадим потом '''exit_atp_2_01'''. С первым уровнем всё...&lt;br /&gt;
&lt;br /&gt;
Для чего нам нужен graph point'ы ''exit_xxx''?&lt;br /&gt;
''exit_xxx'' представляет собой '''connection_point'''(точку связи) - для того, чтобы компилятор знал, какие уровни он соединяет, а если по другому: начальный граф уровня, от него потом считаются все ноды.&lt;br /&gt;
&lt;br /&gt;
'''start_actor_xx''' - точка появления актера после перехода.&lt;br /&gt;
&lt;br /&gt;
Помните мы вписали в '''custom data''' '''level changer''''а вейпоинт? Вот теперь нам придется его создать. Выбираем '''Way Points''' -&amp;gt; жмем &amp;quot;чайник&amp;quot; и стави 1 вейпоинт рядом с level changer(так мы создали начальную точку пути), теперь жмем '''point mode''' и ставим второй. Если они не соеденились стрелочкой, жмем '''create 1-link'''. Теперь у нас получился путь, который мы прописали в custom data '''level changer''', заходим в свойства и обзываем его также как и в '''custom data''', тоесть '''atp_1_way_if_reject'''. Всё с первым уровнем покончили.&lt;br /&gt;
&lt;br /&gt;
Итак, открываем второй уровень и поехали по новой...&lt;br /&gt;
&lt;br /&gt;
Создаем там путь из двух вейпоинтов по схеме выше и обзываем '''atp_2_way_if_reject'''. Создаем level changer называем его '''to_atp_1''',&lt;br /&gt;
в '''custom data''' пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_2_way_if_reject //название вэйпоинта&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В '''level to change''' указываем atp_1 //куда переходим с atp_2&lt;br /&gt;
В '''level point to change''' - '''start_actor_01'''(дада, тот который мы создали на первом левеле :) )&lt;br /&gt;
&lt;br /&gt;
Теперь здесь же на atp_2 создаем graph point с названием '''start_actor_01'''.&lt;br /&gt;
И еще один где вписываем следущие значения:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Name: exit_atp_2_01&lt;br /&gt;
Location: &amp;quot;свалка&amp;quot; //наименование локации&lt;br /&gt;
&lt;br /&gt;
Connection:&lt;br /&gt;
 Level name: atp_1 //первый уровень&lt;br /&gt;
 Point name: exit_atp_1_01 //связующая точка с первого уровня&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Незабудьте, что '''ACTOR''' должен быть только на одной локации(в нашем случае на atp_1), иначе компилятор выдаст ошибку. Всё!... Сохраняем, прекомпилим.&lt;br /&gt;
&lt;br /&gt;
Запускаем '''Ai Compiler''', выбираем по очереди наши два уровня и просчитываем шаг 1, проверям сетку. Теперь создаем ''текстовый документ'' и вписываем туда&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_1&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем его как .bat и запускаем, в результате у каждого уровня &lt;br /&gt;
появится свой '''level.graph'''(граф и кросс-таблица).&lt;br /&gt;
&lt;br /&gt;
Создаем еще один текстовик, пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -m&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем как .bat и стартуем. Так мы собрали '''game.graph''' из '''level.graph''''ов.&lt;br /&gt;
&lt;br /&gt;
И наконец.. создаем 3ий &amp;quot;бантик&amp;quot; для сборки '''all.spawn'''!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
bins\ai\1.exe -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Компилим, заходим в '''gamedata\spawns\''', переименовываем получившийся спавн в '''all.spawn''' и запускаем через новую игру. Как видите, вы можете перемещаться с уровня на уровень, туда сюда без каких-либо проблем.&lt;br /&gt;
&lt;br /&gt;
Чуть не забыл, обязательно временно, на время компиляции переместите все остальные левелы игры кроме ваших в любую другую папку, иначе &lt;br /&gt;
могут быть ошибки при сборе графов и спавна.&lt;br /&gt;
&lt;br /&gt;
Для сборки '''всех''' сингл уровней из оригинальной игры &lt;br /&gt;
используйте bat фаил написанный ''Zeed'''ом: [http://stalkerin.gameru.net/developer/mods/levelgraph_fullgame.bat fullgame.bat]&lt;br /&gt;
Если будут ошибки связанные с алайфом, жмем ''продолжить''. Потом выполняйте процедуры как написано выше, сборка '''game.graph''', а затем '''all.spawn'''.&lt;br /&gt;
&lt;br /&gt;
==Добавление level changer на уже существующую карту от GSC==&lt;br /&gt;
&lt;br /&gt;
Пост '''Smanxx1''' с форума, для потомков:&lt;br /&gt;
&lt;br /&gt;
''Декомпилим '''all.spawn''' с помощью '''acdc''' и вписываем куда нужно''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[не забитый номер]&lt;br /&gt;
section_name = level_changer&lt;br /&gt;
name = exit_to_new_location_from_esc&lt;br /&gt;
position =&amp;lt;здесь координаты где находиться левел чейнджер&amp;gt;&lt;br /&gt;
direction = 0,0,0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
game_vertex_id = &amp;lt;ну я думаю это понятно что такое&amp;gt;&lt;br /&gt;
distance = 14.6999998092651&lt;br /&gt;
level_vertex_id = &amp;lt;это тоже :)&amp;gt;&lt;br /&gt;
object_flags = 0xffffff3e&lt;br /&gt;
story_id =&amp;lt;поставь здесь неиспользуемый ID, момойму начинаються с 6000&amp;gt;&lt;br /&gt;
&lt;br /&gt;
shapes = shape0&lt;br /&gt;
shape0:type = box&lt;br /&gt;
shape0:axis_x = 15.8284006118774,0,0&lt;br /&gt;
shape0:axis_y = 0,22.0005970001221,0&lt;br /&gt;
shape0:axis_z = 0,0,96.3902206420898&lt;br /&gt;
shape0:offset = 0,0,0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
restrictor_type = 3&lt;br /&gt;
&lt;br /&gt;
;выставляешь здесь все переменные для нового уровня&lt;br /&gt;
dest_game_vertex_id = &lt;br /&gt;
dest_level_vertex_id =&lt;br /&gt;
dest_position =&lt;br /&gt;
dest_direction = 0,-1.12671363353729,0&lt;br /&gt;
dest_level_name = &amp;lt;название твоего уровня&amp;gt;&lt;br /&gt;
dest_graph_point = &amp;lt;название точки спавна игрока&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Cобираем это все обратно и чтобы точка спавна появилася вызоваем функцию ниже:''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
local obj = alife():story_object(твой ID)&lt;br /&gt;
    if not obj then alife():create(незабитый номер) end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''продолжение следует...''&lt;br /&gt;
&lt;br /&gt;
'''written by Loxotron'''&lt;br /&gt;
&lt;br /&gt;
[[Категория:Программы]][[Категория:SDK]]&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D1%8F%D0%B5%D0%BC_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82%D1%8B</id>
		<title>Вычисляем координаты</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D1%8F%D0%B5%D0%BC_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82%D1%8B"/>
				<updated>2008-01-08T04:33:57Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Нашел на одном форуме, достаточно интересно.&lt;br /&gt;
&lt;br /&gt;
''Как получить координаты для спавна предмета или НПЦ. Скрипт сей найден на каком-то форуме, проверен и работает :)'' &lt;br /&gt;
функция спавна имеет вид&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
alife():create(section,position,levelvertex,gamevertex) &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Где: &lt;br /&gt;
&lt;br /&gt;
'''section''' - имя того/чего спавним &lt;br /&gt;
&lt;br /&gt;
'''position,levelvertex,gamevertex''' - координаты, позиция вершины обьекта, и сектора карты. &lt;br /&gt;
&lt;br /&gt;
Напишу подробно, как очень про100 их узнать:&lt;br /&gt;
 &lt;br /&gt;
Заходим, предварительно распаковав, в каталог '''gamedata/scripts/''' &lt;br /&gt;
И там в файле '''ui_main_menu.script''' в конце дописываем это: &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
function main_menu:OnButton_credits_clicked() &lt;br /&gt;
local text &lt;br /&gt;
local vid &lt;br /&gt;
local gvid &lt;br /&gt;
local a = vector()  &lt;br /&gt;
local text &lt;br /&gt;
a = db.actor:position()  &lt;br /&gt;
vid = db.actor:level_vertex_id()  &lt;br /&gt;
gvid = db.actor:game_vertex_id()  &lt;br /&gt;
text = &amp;quot;Позиция:\\nX= &amp;quot;..a.x..&amp;quot;\\nY= &amp;quot;..a.y..&amp;quot;\\nZ= &amp;quot;..a.z..&amp;quot;\\nlevel_vertex= &amp;quot;..vid..&amp;quot;\\ngame_vertex_id= &amp;quot;..gvid &lt;br /&gt;
news_manager.send_tip(db.actor, text, nil, nil, 30000) &lt;br /&gt;
end &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь в игре идём на то место (или ногами или деморекордом), где спавним обьект, выходим в меню игры, и жмём на клавишу &lt;br /&gt;
СОЗДАТЕЛИ (CREDITS) - соответственно нашему взоры не предстаёт никакой список создателей, а мы услышим звуковой сигнал, после чего выходим в игру из меню, и в строке сообщений высветиться вся инфа. Всё - F12 или на бумажку.&lt;br /&gt;
&lt;br /&gt;
'''By Pereiro, added by loxotron'''&lt;br /&gt;
&lt;br /&gt;
[[Категория:Скрипты]]&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D1%8F%D0%B5%D0%BC_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82%D1%8B</id>
		<title>Вычисляем координаты</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D1%8F%D0%B5%D0%BC_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82%D1%8B"/>
				<updated>2008-01-08T04:33:26Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Нашел на одном форуме, достаточно интересно.&lt;br /&gt;
&lt;br /&gt;
''Как получить координаты для спавна предмета или НПЦ. Скрипт сей найден на каком-то форуме, проверен и работает :)'' &lt;br /&gt;
функция спавна имеет вид&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
alife():create(section,position,levelvertex,gamevertex) &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Где: &lt;br /&gt;
&lt;br /&gt;
'''section''' - имя того/чего спавним &lt;br /&gt;
&lt;br /&gt;
'''position,levelvertex,gamevertex''' - координаты, позиция вершины обьекта, и сектора карты. &lt;br /&gt;
&lt;br /&gt;
Напишу подробно, как очень про100 их узнать:&lt;br /&gt;
 &lt;br /&gt;
Заходим, предварительно распаковав, в каталог '''gamedata/scripts/''' &lt;br /&gt;
И там в файле '''ui_main_menu.script''' в конце дописываем это &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
function main_menu:OnButton_credits_clicked() &lt;br /&gt;
local text &lt;br /&gt;
local vid &lt;br /&gt;
local gvid &lt;br /&gt;
local a = vector()  &lt;br /&gt;
local text &lt;br /&gt;
a = db.actor:position()  &lt;br /&gt;
vid = db.actor:level_vertex_id()  &lt;br /&gt;
gvid = db.actor:game_vertex_id()  &lt;br /&gt;
text = &amp;quot;Позиция:\\nX= &amp;quot;..a.x..&amp;quot;\\nY= &amp;quot;..a.y..&amp;quot;\\nZ= &amp;quot;..a.z..&amp;quot;\\nlevel_vertex= &amp;quot;..vid..&amp;quot;\\ngame_vertex_id= &amp;quot;..gvid &lt;br /&gt;
news_manager.send_tip(db.actor, text, nil, nil, 30000) &lt;br /&gt;
end &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь в игре идём на то место (или ногами или деморекордом), где спавним обьект, выходим в меню игры, и жмём на клавишу &lt;br /&gt;
СОЗДАТЕЛИ (CREDITS) - соответственно нашему взоры не предстаёт никакой список создателей, а мы услышим звуковой сигнал, после чего выходим в игру из меню, и в строке сообщений высветиться вся инфа. Всё - F12 или на бумажку.&lt;br /&gt;
&lt;br /&gt;
'''By Pereiro, added by loxotron'''&lt;br /&gt;
&lt;br /&gt;
[[Категория:Скрипты]]&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D1%8F%D0%B5%D0%BC_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82%D1%8B</id>
		<title>Вычисляем координаты</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D1%8F%D0%B5%D0%BC_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82%D1%8B"/>
				<updated>2008-01-08T04:33:04Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Нашел на одном форуме, достаточно интересно.&lt;br /&gt;
&lt;br /&gt;
''Как получить координаты для спавна предмета или НПЦ. Скрипт сей найден на каком-то форуме, проверен и работает :)'' &lt;br /&gt;
функция спавна имеет вид&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
alife():create(section,position,levelvertex,gamevertex) &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Где: &lt;br /&gt;
&lt;br /&gt;
'''section''' - имя того/чего спавним &lt;br /&gt;
&lt;br /&gt;
'''position,levelvertex,gamevertex''' - координаты, позиция вершины обьекта, и сектора карты. &lt;br /&gt;
&lt;br /&gt;
Напишу подробно, как очень про100 их узнать: &lt;br /&gt;
Заходим, предварительно распаковав, в каталог '''gamedata/scripts/''' &lt;br /&gt;
И там в файле '''ui_main_menu.script''' &lt;br /&gt;
в конце дописываем это &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
function main_menu:OnButton_credits_clicked() &lt;br /&gt;
local text &lt;br /&gt;
local vid &lt;br /&gt;
local gvid &lt;br /&gt;
local a = vector()  &lt;br /&gt;
local text &lt;br /&gt;
a = db.actor:position()  &lt;br /&gt;
vid = db.actor:level_vertex_id()  &lt;br /&gt;
gvid = db.actor:game_vertex_id()  &lt;br /&gt;
text = &amp;quot;Позиция:\\nX= &amp;quot;..a.x..&amp;quot;\\nY= &amp;quot;..a.y..&amp;quot;\\nZ= &amp;quot;..a.z..&amp;quot;\\nlevel_vertex= &amp;quot;..vid..&amp;quot;\\ngame_vertex_id= &amp;quot;..gvid &lt;br /&gt;
news_manager.send_tip(db.actor, text, nil, nil, 30000) &lt;br /&gt;
end &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь в игре идём на то место (или ногами или деморекордом), где спавним обьект, выходим в меню игры, и жмём на клавишу &lt;br /&gt;
СОЗДАТЕЛИ (CREDITS) - соответственно нашему взоры не предстаёт никакой список создателей, а мы услышим звуковой сигнал, после чего выходим в игру из меню, и в строке сообщений высветиться вся инфа. Всё - F12 или на бумажку.&lt;br /&gt;
&lt;br /&gt;
'''By Pereiro, added by loxotron'''&lt;br /&gt;
&lt;br /&gt;
[[Категория:Скрипты]]&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D1%8F%D0%B5%D0%BC_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82%D1%8B</id>
		<title>Вычисляем координаты</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D1%8F%D0%B5%D0%BC_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82%D1%8B"/>
				<updated>2008-01-08T04:32:53Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Нашел на одном форуме, достаточно интересно.&lt;br /&gt;
&lt;br /&gt;
''Как получить координаты для спавна предмета или НПЦ. Скрипт сей найден на каком-то форуме, проверен и работает :)'' &lt;br /&gt;
функция спавна имеет вид&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
alife():create(section,position,levelvertex,gamevertex) &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Где: &lt;br /&gt;
'''section''' - имя того/чего спавним &lt;br /&gt;
&lt;br /&gt;
'''position,levelvertex,gamevertex''' - координаты, позиция вершины обьекта, и сектора карты. &lt;br /&gt;
&lt;br /&gt;
Напишу подробно, как очень про100 их узнать: &lt;br /&gt;
Заходим, предварительно распаковав, в каталог '''gamedata/scripts/''' &lt;br /&gt;
И там в файле '''ui_main_menu.script''' &lt;br /&gt;
в конце дописываем это &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
function main_menu:OnButton_credits_clicked() &lt;br /&gt;
local text &lt;br /&gt;
local vid &lt;br /&gt;
local gvid &lt;br /&gt;
local a = vector()  &lt;br /&gt;
local text &lt;br /&gt;
a = db.actor:position()  &lt;br /&gt;
vid = db.actor:level_vertex_id()  &lt;br /&gt;
gvid = db.actor:game_vertex_id()  &lt;br /&gt;
text = &amp;quot;Позиция:\\nX= &amp;quot;..a.x..&amp;quot;\\nY= &amp;quot;..a.y..&amp;quot;\\nZ= &amp;quot;..a.z..&amp;quot;\\nlevel_vertex= &amp;quot;..vid..&amp;quot;\\ngame_vertex_id= &amp;quot;..gvid &lt;br /&gt;
news_manager.send_tip(db.actor, text, nil, nil, 30000) &lt;br /&gt;
end &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь в игре идём на то место (или ногами или деморекордом), где спавним обьект, выходим в меню игры, и жмём на клавишу &lt;br /&gt;
СОЗДАТЕЛИ (CREDITS) - соответственно нашему взоры не предстаёт никакой список создателей, а мы услышим звуковой сигнал, после чего выходим в игру из меню, и в строке сообщений высветиться вся инфа. Всё - F12 или на бумажку.&lt;br /&gt;
&lt;br /&gt;
'''By Pereiro, added by loxotron'''&lt;br /&gt;
&lt;br /&gt;
[[Категория:Скрипты]]&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D1%8F%D0%B5%D0%BC_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82%D1%8B</id>
		<title>Вычисляем координаты</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D1%8F%D0%B5%D0%BC_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82%D1%8B"/>
				<updated>2008-01-08T04:31:27Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Нашел на одном форуме, достаточно интересно.&lt;br /&gt;
&lt;br /&gt;
Как получить координаты для спавна предмета или НПЦ. Скрипт сей найден на каком-то форуме, проверен и работает :) &lt;br /&gt;
функция спавна имеет вид&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
alife():create(section,position,levelvertex,gamevertex) &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Где: &lt;br /&gt;
section - имя того/чего спавним &lt;br /&gt;
position,levelvertex,gamevertex - координаты, позиция вершины обьекта, и сектора карты. &lt;br /&gt;
Напишу подробно, как очень про100 их узнать: &lt;br /&gt;
Заходим, предварительно распаковав, в каталог gamedata/scripts/ &lt;br /&gt;
И там в файле ui_main_menu.script &lt;br /&gt;
в конце дописываем это &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
function main_menu:OnButton_credits_clicked() &lt;br /&gt;
local text &lt;br /&gt;
local vid &lt;br /&gt;
local gvid &lt;br /&gt;
local a = vector()  &lt;br /&gt;
local text &lt;br /&gt;
a = db.actor:position()  &lt;br /&gt;
vid = db.actor:level_vertex_id()  &lt;br /&gt;
gvid = db.actor:game_vertex_id()  &lt;br /&gt;
text = &amp;quot;Позиция:\\nX= &amp;quot;..a.x..&amp;quot;\\nY= &amp;quot;..a.y..&amp;quot;\\nZ= &amp;quot;..a.z..&amp;quot;\\nlevel_vertex= &amp;quot;..vid..&amp;quot;\\ngame_vertex_id= &amp;quot;..gvid &lt;br /&gt;
news_manager.send_tip(db.actor, text, nil, nil, 30000) &lt;br /&gt;
end &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь в игре идём на то место (или ногами или деморекордом), где спавним обьект, выходим в меню игры, и жмём на клавишу &lt;br /&gt;
СОЗДАТЕЛИ (CREDITS) - соответственно нашему взоры не предстаёт никакой список создателей, а мы услышим звуковой сигнал, после чего выходим в игру из меню, и в строке сообщений высветиться вся инфа. Всё - F12 или на бумажку.&lt;br /&gt;
&lt;br /&gt;
'''By Pereiro, added by loxotron'''&lt;br /&gt;
&lt;br /&gt;
[[Категория:Скрипты]]&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-</id>
		<title>Компиляция -=inGame АИ=-</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-"/>
				<updated>2008-01-08T04:21:09Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, приступим... Раз вы здесь, значит есть на то причина:&lt;br /&gt;
*1)либо вы нуп, увидевший аи-компилер и решивший забацать чтото крутое&lt;br /&gt;
*2)вы не нуп, но всё забыли или почти всё&lt;br /&gt;
*3)вы супер-аццкий про решивший глянуть на весь этот детсад свысока )&lt;br /&gt;
*4)вы обычный модер, решивший расширить свои текущие познания. ;)&lt;br /&gt;
&lt;br /&gt;
==Основы==&lt;br /&gt;
Ну что ж... начнем с самого простого, скомпилим левел с аи, монстрами на&lt;br /&gt;
карте '''mp_atp'''. Открываем левел.. первое что надо сделать убрать все &lt;br /&gt;
'''rpoint'''(мультиплеерные точки спавна). Убрали? Отлично. Создаем&lt;br /&gt;
'''Spawn elements -&amp;gt; actor''' ну и по желанию в свойствах ('''Properties''')&lt;br /&gt;
в '''custom data''' прописываем ему предположим вот это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[spawn]&lt;br /&gt;
wpn_ak74&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тем самым при появлении игрока у него в руках уже будет калаш. Далее,&lt;br /&gt;
создаем монстра... любого по желанию, предположим кровососа и ставим на уровень.&lt;br /&gt;
Теперь дело за '''AI map''' - аи сетка, которая необходима для того, чтобы&lt;br /&gt;
нпс, монстры могли ориентироваться по уровню. Жмем Object и кликаем на  земле(тем самым мы ее &amp;quot;выбрали&amp;quot; для дальнейших манипуляций), затем '''AI Map''' -&amp;gt; '''Commands''' -&amp;gt; '''Make list from selected''', жмем '''add''' в разделе '''AI Map Nodes''' и '''add''' для добавления объектов слева вверху(чайник) и ставим на карте ноды в нужном вам порядке(достаточно одного), жмем '''Generate Full'''. Всё, аи-сетка сгенерированна. Теперь добавляем на левел обязательно! 1 graph point ('''Spawns-&amp;gt;ai-&amp;gt;graph point'''), в нем можно ничего не писать. Сохраняем уровень, билдим ('''build'''). &lt;br /&gt;
&lt;br /&gt;
Следующим шагом будет правка конфигов.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
'''game_maps_single.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[level_maps_single]&lt;br /&gt;
...&lt;br /&gt;
testing_ai &lt;br /&gt;
//название вашего уровня&lt;br /&gt;
&lt;br /&gt;
[testing_ai]&lt;br /&gt;
global_rect  = -6,1220.0, 248.0,1481.0&lt;br /&gt;
texture      = map\map_escape&lt;br /&gt;
//текстура при загрузке&lt;br /&gt;
bound_rect  = -502.148,-412.284,379.976,474,479&lt;br /&gt;
weathers  = default&lt;br /&gt;
//погода&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''game_levels.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[levels]&lt;br /&gt;
...&lt;br /&gt;
level190&lt;br /&gt;
//номер вашего уровня&lt;br /&gt;
&lt;br /&gt;
[level190]&lt;br /&gt;
name   = testing_ai&lt;br /&gt;
caption = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
offset  = 2000.0, 800.0, 1000.0&lt;br /&gt;
id   = 193&lt;br /&gt;
//индентифакционный номер, должен быть уникальным&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''game_graphs.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
018   = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь открываем AI Compiler, указываем папку с '''сдк'''(.../level_editor, либо если он объединен с игрой, путь до нее). Выбираем ваш уровень.&lt;br /&gt;
Проходим 1ую стадию чернового просчета аи карты('''шаг 1'''), либо если вы хотите долго ждать и просчитать укрытия для нпс то выбираем '''шаг 2'''.&lt;br /&gt;
Далее строим граф и кросс-таблицу уровня шаг 3, потом граф игры '''шаг 4''' и наконец фаил .spawn '''шаг 5'''. После всех стадий заходим в gamedata\spawns\ и переименовываем '''test.spawn''' в '''all.spawn'''&lt;br /&gt;
&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id	=pseudoscience|&lt;br /&gt;
align = left|&lt;br /&gt;
backgroundcolor	= #f9f9f9|&lt;br /&gt;
image	=Lamp.gif|&lt;br /&gt;
heading	= Важные моменты -- Loxotron|&lt;br /&gt;
message = При правке конфигов не забывайте указывать реально существующую там погоду и картинку загрузки, иначе вылетит; также не пытайтесь запустить уровень через .bat фаил, подобный указанному ниже, тоже будет вылет&lt;br /&gt;
&amp;lt;pre&amp;gt;bin\xr_3da.exe -ltx user.ltx -nointro -external -start server(level/single) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правильный .bat фаил&lt;br /&gt;
&amp;lt;pre&amp;gt;@start bin\XR_3DA.exe -start server(%1/single/alife) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
%1 - название левела&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Углубленное изучение==&lt;br /&gt;
Далее мы рассмотрим как собирать несколько уровней и устанавливать между ними переходы.&lt;br /&gt;
&lt;br /&gt;
Итак у вас два уровня... на одном из них стоит '''actor'''. Начнем с него:&lt;br /&gt;
создаем '''ai-&amp;gt;level changer''', затем '''shape-&amp;gt;sphere''', с помощью '''scale''' увеличиваем до необходимых размеров, теперь переключаемся в режим редактирования '''spawn element''', выделяем '''level changer''' и жмем '''commands-&amp;gt;attach object''', а затем кликаем на сферу... Всё, сфера и level changer теперь связаны. Далее идем в закладку '''properties''', указываем название, например '''to_atp_2''', теперь нужно прописать в '''custom data''' вейпоинт для возврата, в случае отказа игрока от перемещения с локации на локации(обязательно). Вписываем вот это:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_1_way_if_reject&lt;br /&gt;
//в случае отказа от перемещения на вторую локу, возвращаемся назад&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В '''Level to change''' вписываем наименование уровня, куда мы хотим переместиться с этого левела, например '''atp_2'''. &lt;br /&gt;
В '''Level Point to change''' указываем точку, в которой игрок появится...&lt;br /&gt;
'''start_actor_01'''. С '''level changer''' на этом уровне всё, пошли далее.&lt;br /&gt;
Создаем '''graph point''' или используем пустой существующий если у вас есть.&lt;br /&gt;
В него вписываем '''start_actor_01''', этот поинт для того чтобы мы смогли со второго левела '''atp_2''' перейти на '''atp_1'''(первый). Создаем еще один '''graph point''' c названием '''exit_atp_1_01''', в разделе '''location''' выбираем, например &amp;quot;экскейп&amp;quot;. В '''Connection -&amp;gt; Level name''' указываем уровень, с которым будет связан '''atp_1''', то есть выбираем '''atp_2''', в '''Connection-&amp;gt;Point Name''' вписываем точку связи из второго уровня, которую мы создадим потом '''exit_atp_2_01'''. С первым уровнем всё...&lt;br /&gt;
&lt;br /&gt;
Для чего нам нужен graph point'ы ''exit_xxx''?&lt;br /&gt;
''exit_xxx'' представляет собой '''connection_point'''(точку связи) - для того, чтобы компилятор знал, какие уровни он соединяет, а если по другому: начальный граф уровня, от него потом считаются все ноды.&lt;br /&gt;
&lt;br /&gt;
'''start_actor_xx''' - точка появления актера после перехода.&lt;br /&gt;
&lt;br /&gt;
Помните мы вписали в '''custom data''' '''level changer''''а вейпоинт? Вот теперь нам придется его создать. Выбираем '''Way Points''' -&amp;gt; жмем &amp;quot;чайник&amp;quot; и стави 1 вейпоинт рядом с level changer(так мы создали начальную точку пути), теперь жмем '''point mode''' и ставим второй. Если они не соеденились стрелочкой, жмем '''create 1-link'''. Теперь у нас получился путь, который мы прописали в custom data '''level changer''', заходим в свойства и обзываем его также как и в '''custom data''', тоесть '''atp_1_way_if_reject'''. Всё с первым уровнем покончили.&lt;br /&gt;
&lt;br /&gt;
Итак, открываем второй уровень и поехали по новой...&lt;br /&gt;
&lt;br /&gt;
Создаем там путь из двух вейпоинтов по схеме выше и обзываем '''atp_2_way_if_reject'''. Создаем level changer называем его '''to_atp_1''',&lt;br /&gt;
в '''custom data''' пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_2_way_if_reject //название вэйпоинта&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В '''level to change''' указываем atp_1 //куда переходим с atp_2&lt;br /&gt;
В '''level point to change''' - '''start_actor_01'''(дада, тот который мы создали на первом левеле :) )&lt;br /&gt;
&lt;br /&gt;
Теперь здесь же на atp_2 создаем graph point с названием '''start_actor_01'''.&lt;br /&gt;
И еще один где вписываем следущие значения:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Name: exit_atp_2_01&lt;br /&gt;
Location: &amp;quot;свалка&amp;quot; //наименование локации&lt;br /&gt;
&lt;br /&gt;
Connection:&lt;br /&gt;
 Level name: atp_1 //первый уровень&lt;br /&gt;
 Point name: exit_atp_1_01 //связующая точка с первого уровня&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Незабудьте, что '''ACTOR''' должен быть только на одной локации(в нашем случае на atp_1), иначе компилятор выдаст ошибку. Всё!... Сохраняем, прекомпилим.&lt;br /&gt;
&lt;br /&gt;
Запускаем '''Ai Compiler''', выбираем по очереди наши два уровня и просчитываем шаг 1, проверям сетку. Теперь создаем ''текстовый документ'' и вписываем туда&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_1&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем его как .bat и запускаем, в результате у каждого уровня &lt;br /&gt;
появится свой '''level.graph'''(граф и кросс-таблица).&lt;br /&gt;
&lt;br /&gt;
Создаем еще один текстовик, пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -m&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем как .bat и стартуем. Так мы собрали '''game.graph''' из '''level.graph''''ов.&lt;br /&gt;
&lt;br /&gt;
И наконец.. создаем 3ий &amp;quot;бантик&amp;quot; для сборки '''all.spawn'''!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
bins\ai\1.exe -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Компилим, заходим в '''gamedata\spawns\''', переименовываем получившийся спавн в '''all.spawn''' и запускаем через новую игру. Как видите, вы можете перемещаться с уровня на уровень, туда сюда без каких-либо проблем.&lt;br /&gt;
&lt;br /&gt;
Чуть не забыл, обязательно временно, на время компиляции переместите все остальные левелы игры кроме ваших в любую другую папку, иначе &lt;br /&gt;
могут быть ошибки при сборе графов и спавна.&lt;br /&gt;
&lt;br /&gt;
Для сборки '''всех''' сингл уровней из оригинальной игры &lt;br /&gt;
используйте bat фаил написанный ''Zeed'''ом: [http://stalkerin.gameru.net/developer/mods/levelgraph_fullgame.bat fullgame.bat]&lt;br /&gt;
Если будут ошибки связанные с алайфом, жмем ''продолжить''. Потом выполняйте процедуры как написано выше, сборка '''game.graph''', а затем '''all.spawn'''.&lt;br /&gt;
&lt;br /&gt;
==Добавление level changer на уже существующую карту от GSC==&lt;br /&gt;
&lt;br /&gt;
Пост '''Smanxx1''' с форума, для потомков:&lt;br /&gt;
&lt;br /&gt;
''Декомпилим '''all.spawn''' с помощью '''acdc''' и вписываем куда нужно''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[не забитый номер]&lt;br /&gt;
section_name = level_changer&lt;br /&gt;
name = exit_to_new_location_from_esc&lt;br /&gt;
position =&amp;lt;здесь координаты где находиться левел чейнджер&amp;gt;&lt;br /&gt;
direction = 0,0,0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
game_vertex_id = &amp;lt;ну я думаю это понятно что такое&amp;gt;&lt;br /&gt;
distance = 14.6999998092651&lt;br /&gt;
level_vertex_id = &amp;lt;это тоже :)&amp;gt;&lt;br /&gt;
object_flags = 0xffffff3e&lt;br /&gt;
story_id =&amp;lt;поставь здесь неиспользуемый ID, момойму начинаються с 6000&amp;gt;&lt;br /&gt;
&lt;br /&gt;
shapes = shape0&lt;br /&gt;
shape0:type = box&lt;br /&gt;
shape0:axis_x = 15.8284006118774,0,0&lt;br /&gt;
shape0:axis_y = 0,22.0005970001221,0&lt;br /&gt;
shape0:axis_z = 0,0,96.3902206420898&lt;br /&gt;
shape0:offset = 0,0,0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
restrictor_type = 3&lt;br /&gt;
&lt;br /&gt;
;выставляешь здесь все переменные для нового уровня&lt;br /&gt;
dest_game_vertex_id = &lt;br /&gt;
dest_level_vertex_id =&lt;br /&gt;
dest_position =&lt;br /&gt;
dest_direction = 0,-1.12671363353729,0&lt;br /&gt;
dest_level_name = &amp;lt;название твоего уровня&amp;gt;&lt;br /&gt;
dest_graph_point = &amp;lt;название точки спавна игрока&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Cобираем это все обратно и чтобы точка спавна появилася вызоваем функцию ниже:''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
local obj = alife():story_object(твой ID)&lt;br /&gt;
    if not obj then alife():create(незабитый номер) end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''продолжение следует...''&lt;br /&gt;
&lt;br /&gt;
'''written by Loxotron'''&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-</id>
		<title>Компиляция -=inGame АИ=-</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-"/>
				<updated>2008-01-08T04:20:49Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, приступим... Раз вы здесь, значит есть на то причина:&lt;br /&gt;
*1)либо вы нуп, увидевший аи-компилер и решивший забацать чтото крутое&lt;br /&gt;
*2)вы не нуп, но всё забыли или почти всё&lt;br /&gt;
*3)вы супер-аццкий про решивший глянуть на весь этот детсад свысока )&lt;br /&gt;
*4)вы обычный модер, решивший расширить свои текущие познания. ;)&lt;br /&gt;
&lt;br /&gt;
==Основы==&lt;br /&gt;
Ну что ж... начнем с самого простого, скомпилим левел с аи, монстрами на&lt;br /&gt;
карте '''mp_atp'''. Открываем левел.. первое что надо сделать убрать все &lt;br /&gt;
'''rpoint'''(мультиплеерные точки спавна). Убрали? Отлично. Создаем&lt;br /&gt;
'''Spawn elements -&amp;gt; actor''' ну и по желанию в свойствах ('''Properties''')&lt;br /&gt;
в '''custom data''' прописываем ему предположим вот это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[spawn]&lt;br /&gt;
wpn_ak74&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тем самым при появлении игрока у него в руках уже будет калаш. Далее,&lt;br /&gt;
создаем монстра... любого по желанию, предположим кровососа и ставим на уровень.&lt;br /&gt;
Теперь дело за '''AI map''' - аи сетка, которая необходима для того, чтобы&lt;br /&gt;
нпс, монстры могли ориентироваться по уровню. Жмем Object и кликаем на  земле(тем самым мы ее &amp;quot;выбрали&amp;quot; для дальнейших манипуляций), затем '''AI Map''' -&amp;gt; '''Commands''' -&amp;gt; '''Make list from selected''', жмем '''add''' в разделе '''AI Map Nodes''' и '''add''' для добавления объектов слева вверху(чайник) и ставим на карте ноды в нужном вам порядке(достаточно одного), жмем '''Generate Full'''. Всё, аи-сетка сгенерированна. Теперь добавляем на левел обязательно! 1 graph point ('''Spawns-&amp;gt;ai-&amp;gt;graph point'''), в нем можно ничего не писать. Сохраняем уровень, билдим ('''build'''). &lt;br /&gt;
&lt;br /&gt;
Следующим шагом будет правка конфигов.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
'''game_maps_single.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[level_maps_single]&lt;br /&gt;
...&lt;br /&gt;
testing_ai &lt;br /&gt;
//название вашего уровня&lt;br /&gt;
&lt;br /&gt;
[testing_ai]&lt;br /&gt;
global_rect  = -6,1220.0, 248.0,1481.0&lt;br /&gt;
texture      = map\map_escape&lt;br /&gt;
//текстура при загрузке&lt;br /&gt;
bound_rect  = -502.148,-412.284,379.976,474,479&lt;br /&gt;
weathers  = default&lt;br /&gt;
//погода&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''game_levels.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[levels]&lt;br /&gt;
...&lt;br /&gt;
level190&lt;br /&gt;
//номер вашего уровня&lt;br /&gt;
&lt;br /&gt;
[level190]&lt;br /&gt;
name   = testing_ai&lt;br /&gt;
caption = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
offset  = 2000.0, 800.0, 1000.0&lt;br /&gt;
id   = 193&lt;br /&gt;
//индентифакционный номер, должен быть уникальным&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''game_graphs.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
018   = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь открываем AI Compiler, указываем папку с '''сдк'''(.../level_editor, либо если он объединен с игрой, путь до нее). Выбираем ваш уровень.&lt;br /&gt;
Проходим 1ую стадию чернового просчета аи карты('''шаг 1'''), либо если вы хотите долго ждать и просчитать укрытия для нпс то выбираем '''шаг 2'''.&lt;br /&gt;
Далее строим граф и кросс-таблицу уровня шаг 3, потом граф игры '''шаг 4''' и наконец фаил .spawn '''шаг 5'''. После всех стадий заходим в gamedata\spawns\ и переименовываем '''test.spawn''' в '''all.spawn'''&lt;br /&gt;
&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id	=pseudoscience|&lt;br /&gt;
align = left|&lt;br /&gt;
backgroundcolor	= #f9f9f9|&lt;br /&gt;
image	=Lamp.gif|&lt;br /&gt;
heading	= Важные моменты -- Loxotron|&lt;br /&gt;
message = При правке конфигов не забывайте указывать реально существующую там погоду и картинку загрузки, иначе вылетит; также не пытайтесь запустить уровень через .bat фаил, подобный указанному ниже, тоже будет вылет&lt;br /&gt;
&amp;lt;pre&amp;gt;bin\xr_3da.exe -ltx user.ltx -nointro -external -start server(level/single) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правильный .bat фаил&lt;br /&gt;
&amp;lt;pre&amp;gt;@start bin\XR_3DA.exe -start server(%1/single/alife) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
%1 - название левела&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Углубленное изучение==&lt;br /&gt;
Далее мы рассмотрим как собирать несколько уровней и устанавливать между ними переходы.&lt;br /&gt;
&lt;br /&gt;
Итак у вас два уровня... на одном из них стоит '''actor'''. Начнем с него:&lt;br /&gt;
создаем '''ai-&amp;gt;level changer''', затем '''shape-&amp;gt;sphere''', с помощью '''scale''' увеличиваем до необходимых размеров, теперь переключаемся в режим редактирования '''spawn element''', выделяем '''level changer''' и жмем '''commands-&amp;gt;attach object''', а затем кликаем на сферу... Всё, сфера и level changer теперь связаны. Далее идем в закладку '''properties''', указываем название, например '''to_atp_2''', теперь нужно прописать в '''custom data''' вейпоинт для возврата, в случае отказа игрока от перемещения с локации на локации(обязательно). Вписываем вот это:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_1_way_if_reject&lt;br /&gt;
//в случае отказа от перемещения на вторую локу, возвращаемся назад&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В '''Level to change''' вписываем наименование уровня, куда мы хотим переместиться с этого левела, например '''atp_2'''. &lt;br /&gt;
В '''Level Point to change''' указываем точку, в которой игрок появится...&lt;br /&gt;
'''start_actor_01'''. С '''level changer''' на этом уровне всё, пошли далее.&lt;br /&gt;
Создаем '''graph point''' или используем пустой существующий если у вас есть.&lt;br /&gt;
В него вписываем '''start_actor_01''', этот поинт для того чтобы мы смогли со второго левела '''atp_2''' перейти на '''atp_1'''(первый). Создаем еще один '''graph point''' c названием '''exit_atp_1_01''', в разделе '''location''' выбираем, например &amp;quot;экскейп&amp;quot;. В '''Connection -&amp;gt; Level name''' указываем уровень, с которым будет связан '''atp_1''', то есть выбираем '''atp_2''', в '''Connection-&amp;gt;Point Name''' вписываем точку связи из второго уровня, которую мы создадим потом '''exit_atp_2_01'''. С первым уровнем всё...&lt;br /&gt;
&lt;br /&gt;
Для чего нам нужен graph point'ы ''exit_xxx''?&lt;br /&gt;
''exit_xxx'' представляет собой '''connection_point'''(точку связи) - для того, чтобы компилятор знал, какие уровни он соединяет, а если по другому: начальный граф уровня, от него потом считаются все ноды.&lt;br /&gt;
&lt;br /&gt;
'''start_actor_xx''' - точка появления актера после перехода.&lt;br /&gt;
&lt;br /&gt;
Помните мы вписали в '''custom data''' '''level changer''''а вейпоинт? Вот теперь нам придется его создать. Выбираем '''Way Points''' -&amp;gt; жмем &amp;quot;чайник&amp;quot; и стави 1 вейпоинт рядом с level changer(так мы создали начальную точку пути), теперь жмем '''point mode''' и ставим второй. Если они не соеденились стрелочкой, жмем '''create 1-link'''. Теперь у нас получился путь, который мы прописали в custom data '''level changer''', заходим в свойства и обзываем его также как и в '''custom data''', тоесть '''atp_1_way_if_reject'''. Всё с первым уровнем покончили.&lt;br /&gt;
&lt;br /&gt;
Итак, открываем второй уровень и поехали по новой...&lt;br /&gt;
&lt;br /&gt;
Создаем там путь из двух вейпоинтов по схеме выше и обзываем '''atp_2_way_if_reject'''. Создаем level changer называем его '''to_atp_1''',&lt;br /&gt;
в '''custom data''' пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_2_way_if_reject //название вэйпоинта&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В '''level to change''' указываем atp_1 //куда переходим с atp_2&lt;br /&gt;
В '''level point to change''' - '''start_actor_01'''(дада, тот который мы создали на первом левеле :) )&lt;br /&gt;
&lt;br /&gt;
Теперь здесь же на atp_2 создаем graph point с названием '''start_actor_01'''.&lt;br /&gt;
И еще один где вписываем следущие значения:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Name: exit_atp_2_01&lt;br /&gt;
Location: &amp;quot;свалка&amp;quot; //наименование локации&lt;br /&gt;
&lt;br /&gt;
Connection:&lt;br /&gt;
 Level name: atp_1 //первый уровень&lt;br /&gt;
 Point name: exit_atp_1_01 //связующая точка с первого уровня&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Незабудьте, что '''ACTOR''' должен быть только на одной локации(в нашем случае на atp_1), иначе компилятор выдаст ошибку. Всё!... Сохраняем, прекомпилим.&lt;br /&gt;
&lt;br /&gt;
Запускаем '''Ai Compiler''', выбираем по очереди наши два уровня и просчитываем шаг 1, проверям сетку. Теперь создаем ''текстовый документ'' и вписываем туда&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_1&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем его как .bat и запускаем, в результате у каждого уровня &lt;br /&gt;
появится свой '''level.graph'''(граф и кросс-таблица).&lt;br /&gt;
&lt;br /&gt;
Создаем еще один текстовик, пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -m&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем как .bat и стартуем. Так мы собрали '''game.graph''' из '''level.graph''''ов.&lt;br /&gt;
&lt;br /&gt;
И наконец.. создаем 3ий &amp;quot;бантик&amp;quot; для сборки '''all.spawn'''!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
bins\ai\1.exe -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Компилим, заходим в '''gamedata\spawns\''', переименовываем получившийся спавн в '''all.spawn''' и запускаем через новую игру. Как видите, вы можете перемещаться с уровня на уровень, туда сюда без каких-либо проблем.&lt;br /&gt;
&lt;br /&gt;
Чуть не забыл, обязательно временно, на время компиляции переместите все остальные левелы игры кроме ваших в любую другую папку, иначе &lt;br /&gt;
могут быть ошибки при сборе графов и спавна.&lt;br /&gt;
&lt;br /&gt;
Для сборки '''всех''' сингл уровней из оригинальной игры &lt;br /&gt;
используйте bat фаил написанный ''Zeed'''ом: [http://stalkerin.gameru.net/developer/mods/levelgraph_fullgame.bat fullgame.bat]&lt;br /&gt;
Если будут ошибки связанные с алайфом, жмем ''продолжить''. Потом выполняйте процедуры как написано выше, сборка '''game.graph''', а затем '''all.spawn'''.&lt;br /&gt;
&lt;br /&gt;
Добавление level changer на уже существующую карту от GSC&lt;br /&gt;
&lt;br /&gt;
Пост '''Smanxx1''' с форума, для потомков:&lt;br /&gt;
&lt;br /&gt;
''Декомпилим '''all.spawn''' с помощью '''acdc''' и вписываем куда нужно''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[не забитый номер]&lt;br /&gt;
section_name = level_changer&lt;br /&gt;
name = exit_to_new_location_from_esc&lt;br /&gt;
position =&amp;lt;здесь координаты где находиться левел чейнджер&amp;gt;&lt;br /&gt;
direction = 0,0,0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
game_vertex_id = &amp;lt;ну я думаю это понятно что такое&amp;gt;&lt;br /&gt;
distance = 14.6999998092651&lt;br /&gt;
level_vertex_id = &amp;lt;это тоже :)&amp;gt;&lt;br /&gt;
object_flags = 0xffffff3e&lt;br /&gt;
story_id =&amp;lt;поставь здесь неиспользуемый ID, момойму начинаються с 6000&amp;gt;&lt;br /&gt;
&lt;br /&gt;
shapes = shape0&lt;br /&gt;
shape0:type = box&lt;br /&gt;
shape0:axis_x = 15.8284006118774,0,0&lt;br /&gt;
shape0:axis_y = 0,22.0005970001221,0&lt;br /&gt;
shape0:axis_z = 0,0,96.3902206420898&lt;br /&gt;
shape0:offset = 0,0,0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
restrictor_type = 3&lt;br /&gt;
&lt;br /&gt;
;выставляешь здесь все переменные для нового уровня&lt;br /&gt;
dest_game_vertex_id = &lt;br /&gt;
dest_level_vertex_id =&lt;br /&gt;
dest_position =&lt;br /&gt;
dest_direction = 0,-1.12671363353729,0&lt;br /&gt;
dest_level_name = &amp;lt;название твоего уровня&amp;gt;&lt;br /&gt;
dest_graph_point = &amp;lt;название точки спавна игрока&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Cобираем это все обратно и чтобы точка спавна появилася вызоваем функцию ниже:''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
local obj = alife():story_object(твой ID)&lt;br /&gt;
    if not obj then alife():create(незабитый номер) end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''продолжение следует...''&lt;br /&gt;
&lt;br /&gt;
'''written by Loxotron'''&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:FAQ</id>
		<title>Категория:FAQ</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:FAQ"/>
				<updated>2008-01-08T04:12:38Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Скрипты ==&lt;br /&gt;
&lt;br /&gt;
=== [[Новые монстры|Как сделать, чтобы игра не вылетала при введении вырезанных монстров]] ===&lt;br /&gt;
&lt;br /&gt;
Многие часто сталкиваются с тем, что при попытке добавления монстров не попавшими в финальную версию игра может вылетать. Попробую рассказать, как это дело можно исправить. [[Новые монстры|Читаем...]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SDK ==&lt;br /&gt;
&lt;br /&gt;
=== При компиляции уровня получаю ошибку связанную с  функцией: b_BuildTexture::Vflip ===&lt;br /&gt;
Полный репорт ошибки:&lt;br /&gt;
&amp;lt;code&amp;gt;FATAL ERROR&lt;br /&gt;
&lt;br /&gt;
[error]Expression : assertion failed&lt;br /&gt;
[error]Function : b_BuildTexture::Vflip&lt;br /&gt;
[error]File : d:\xray-svn\xrlc\build.h&lt;br /&gt;
[error]Line : 30&lt;br /&gt;
[error]Description : pSurface&amp;lt;/code&amp;gt;&lt;br /&gt;
Весь смысл заключается в том, что в СДК оставили много лишнего, т.е. для текстур оставили сгенерированные thumbail-ы, а самих текстур нет. И вроде бы всё просто - нужно просто их добавить, но редактор понимает только *.tga файлы.&amp;lt;br /&amp;gt;&lt;br /&gt;
Нам поможет [http://stalkerin.gameru.net/modules.php?name=Downloads&amp;amp;d_op=viewtheoned&amp;amp;lid=106 утилита dds2tga], которая может пакетно преобразовывать dds файлы в tga.&lt;br /&gt;
&lt;br /&gt;
Выявляем(смотрим выше в логе компилятора) все текстуры на которые ругается редактор, далее берём их из распакованной игры и помещаем в папку утилиты dds2tga, запускаем CONV_ALL.BAT, в этой же папке появятся файлы *.tga. Копируем их в папку import/ пакета SDK. Запускаем Level Editor и даём команду images\ check new textures.&lt;br /&gt;
&lt;br /&gt;
===Совместил SDK с игрой, но вылетает с ошибкой===&lt;br /&gt;
&lt;br /&gt;
Полный репорт ошибки:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
FATAL ERROR&lt;br /&gt;
Expression    : hXRSE_FACTORY&lt;br /&gt;
Function      : I:\xray-svn-trunk\editors\LevelEditor\Edit\ESceneSpawnTools.cpp&lt;br /&gt;
File          : I:\xray-svn-trunk\editors\LevelEditor\Edit\ESceneSpawnTools.cpp&lt;br /&gt;
Line          : 38&lt;br /&gt;
Description   : Can't load library:&lt;br /&gt;
Arguments     : xrSE_Factory.dll&amp;lt;/code&amp;gt;&lt;br /&gt;
Вы просто забыли удалить либо переместить все '''.db''' фаилы в другую папку.&lt;br /&gt;
&lt;br /&gt;
--Neo][ 21:41, 9 сентября 2007 (MSD)&lt;br /&gt;
&lt;br /&gt;
--Loxotron 7:12 8 января 2008 (MSD)&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:FAQ</id>
		<title>Категория:FAQ</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:FAQ"/>
				<updated>2008-01-08T04:12:12Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: /* SDK */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Скрипты ==&lt;br /&gt;
&lt;br /&gt;
=== [[Новые монстры|Как сделать, чтобы игра не вылетала при введении вырезанных монстров]] ===&lt;br /&gt;
&lt;br /&gt;
Многие часто сталкиваются с тем, что при попытке добавления монстров не попавшими в финальную версию игра может вылетать. Попробую рассказать, как это дело можно исправить. [[Новые монстры|Читаем...]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SDK ==&lt;br /&gt;
&lt;br /&gt;
=== При компиляции уровня получаю ошибку связанную с  функцией: b_BuildTexture::Vflip ===&lt;br /&gt;
Полный репорт ошибки:&lt;br /&gt;
&amp;lt;code&amp;gt;FATAL ERROR&lt;br /&gt;
&lt;br /&gt;
[error]Expression : assertion failed&lt;br /&gt;
[error]Function : b_BuildTexture::Vflip&lt;br /&gt;
[error]File : d:\xray-svn\xrlc\build.h&lt;br /&gt;
[error]Line : 30&lt;br /&gt;
[error]Description : pSurface&amp;lt;/code&amp;gt;&lt;br /&gt;
Весь смысл заключается в том, что в СДК оставили много лишнего, т.е. для текстур оставили сгенерированные thumbail-ы, а самих текстур нет. И вроде бы всё просто - нужно просто их добавить, но редактор понимает только *.tga файлы.&amp;lt;br /&amp;gt;&lt;br /&gt;
Нам поможет [http://stalkerin.gameru.net/modules.php?name=Downloads&amp;amp;d_op=viewtheoned&amp;amp;lid=106 утилита dds2tga], которая может пакетно преобразовывать dds файлы в tga.&lt;br /&gt;
&lt;br /&gt;
Выявляем(смотрим выше в логе компилятора) все текстуры на которые ругается редактор, далее берём их из распакованной игры и помещаем в папку утилиты dds2tga, запускаем CONV_ALL.BAT, в этой же папке появятся файлы *.tga. Копируем их в папку import/ пакета SDK. Запускаем Level Editor и даём команду images\ check new textures.&lt;br /&gt;
&lt;br /&gt;
===Совместил SDK с игрой, но вылетает с ошибкой===&lt;br /&gt;
&lt;br /&gt;
Полный репорт ошибки:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
FATAL ERROR&lt;br /&gt;
Expression    : hXRSE_FACTORY&lt;br /&gt;
Function      : I:\xray-svn-trunk\editors\LevelEditor\Edit\ESceneSpawnTools.cpp&lt;br /&gt;
File          : I:\xray-svn-trunk\editors\LevelEditor\Edit\ESceneSpawnTools.cpp&lt;br /&gt;
Line          : 38&lt;br /&gt;
Description   : Can't load library:&lt;br /&gt;
Arguments     : xrSE_Factory.dll&amp;lt;/code&amp;gt;&lt;br /&gt;
Вы просто забыли удалить либо переместить все '''.db''' фаилы в другую папку.&lt;br /&gt;
&lt;br /&gt;
--Neo][ 21:41, 9 сентября 2007 (MSD)&lt;br /&gt;
&lt;br /&gt;
--Loxotron 7.12 8 января 2008 (MSD)&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-</id>
		<title>Компиляция -=inGame АИ=-</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-"/>
				<updated>2008-01-08T04:04:31Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, приступим... Раз вы здесь, значит есть на то причина:&lt;br /&gt;
*1)либо вы нуп, увидевший аи-компилер и решивший забацать чтото крутое&lt;br /&gt;
*2)вы не нуп, но всё забыли или почти всё&lt;br /&gt;
*3)вы супер-аццкий про решивший глянуть на весь этот детсад свысока )&lt;br /&gt;
*4)вы обычный модер, решивший расширить свои текущие познания. ;)&lt;br /&gt;
&lt;br /&gt;
==Основы==&lt;br /&gt;
Ну что ж... начнем с самого простого, скомпилим левел с аи, монстрами на&lt;br /&gt;
карте '''mp_atp'''. Открываем левел.. первое что надо сделать убрать все &lt;br /&gt;
'''rpoint'''(мультиплеерные точки спавна). Убрали? Отлично. Создаем&lt;br /&gt;
'''Spawn elements -&amp;gt; actor''' ну и по желанию в свойствах ('''Properties''')&lt;br /&gt;
в '''custom data''' прописываем ему предположим вот это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[spawn]&lt;br /&gt;
wpn_ak74&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тем самым при появлении игрока у него в руках уже будет калаш. Далее,&lt;br /&gt;
создаем монстра... любого по желанию, предположим кровососа и ставим на уровень.&lt;br /&gt;
Теперь дело за '''AI map''' - аи сетка, которая необходима для того, чтобы&lt;br /&gt;
нпс, монстры могли ориентироваться по уровню. Жмем Object и кликаем на  земле(тем самым мы ее &amp;quot;выбрали&amp;quot; для дальнейших манипуляций), затем '''AI Map''' -&amp;gt; '''Commands''' -&amp;gt; '''Make list from selected''', жмем '''add''' в разделе '''AI Map Nodes''' и '''add''' для добавления объектов слева вверху(чайник) и ставим на карте ноды в нужном вам порядке(достаточно одного), жмем '''Generate Full'''. Всё, аи-сетка сгенерированна. Теперь добавляем на левел обязательно! 1 graph point ('''Spawns-&amp;gt;ai-&amp;gt;graph point'''), в нем можно ничего не писать. Сохраняем уровень, билдим ('''build'''). &lt;br /&gt;
&lt;br /&gt;
Следующим шагом будет правка конфигов.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
'''game_maps_single.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[level_maps_single]&lt;br /&gt;
...&lt;br /&gt;
testing_ai &lt;br /&gt;
//название вашего уровня&lt;br /&gt;
&lt;br /&gt;
[testing_ai]&lt;br /&gt;
global_rect  = -6,1220.0, 248.0,1481.0&lt;br /&gt;
texture      = map\map_escape&lt;br /&gt;
//текстура при загрузке&lt;br /&gt;
bound_rect  = -502.148,-412.284,379.976,474,479&lt;br /&gt;
weathers  = default&lt;br /&gt;
//погода&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''game_levels.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[levels]&lt;br /&gt;
...&lt;br /&gt;
level190&lt;br /&gt;
//номер вашего уровня&lt;br /&gt;
&lt;br /&gt;
[level190]&lt;br /&gt;
name   = testing_ai&lt;br /&gt;
caption = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
offset  = 2000.0, 800.0, 1000.0&lt;br /&gt;
id   = 193&lt;br /&gt;
//индентифакционный номер, должен быть уникальным&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''game_graphs.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
018   = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь открываем AI Compiler, указываем папку с '''сдк'''(.../level_editor, либо если он объединен с игрой, путь до нее). Выбираем ваш уровень.&lt;br /&gt;
Проходим 1ую стадию чернового просчета аи карты('''шаг 1'''), либо если вы хотите долго ждать и просчитать укрытия для нпс то выбираем '''шаг 2'''.&lt;br /&gt;
Далее строим граф и кросс-таблицу уровня шаг 3, потом граф игры '''шаг 4''' и наконец фаил .spawn '''шаг 5'''. После всех стадий заходим в gamedata\spawns\ и переименовываем '''test.spawn''' в '''all.spawn'''&lt;br /&gt;
&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id	=pseudoscience|&lt;br /&gt;
align = left|&lt;br /&gt;
backgroundcolor	= #f9f9f9|&lt;br /&gt;
image	=Lamp.gif|&lt;br /&gt;
heading	= Важные моменты -- Loxotron|&lt;br /&gt;
message = При правке конфигов не забывайте указывать реально существующую там погоду и картинку загрузки, иначе вылетит; также не пытайтесь запустить уровень через .bat фаил, подобный указанному ниже, тоже будет вылет&lt;br /&gt;
&amp;lt;pre&amp;gt;bin\xr_3da.exe -ltx user.ltx -nointro -external -start server(level/single) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правильный .bat фаил&lt;br /&gt;
&amp;lt;pre&amp;gt;@start bin\XR_3DA.exe -start server(%1/single/alife) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
%1 - название левела&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Углубленное изучение==&lt;br /&gt;
Далее мы рассмотрим как собирать несколько уровней и устанавливать между ними переходы.&lt;br /&gt;
&lt;br /&gt;
Итак у вас два уровня... на одном из них стоит '''actor'''. Начнем с него:&lt;br /&gt;
создаем '''ai-&amp;gt;level changer''', затем '''shape-&amp;gt;sphere''', с помощью '''scale''' увеличиваем до необходимых размеров, теперь переключаемся в режим редактирования '''spawn element''', выделяем '''level changer''' и жмем '''commands-&amp;gt;attach object''', а затем кликаем на сферу... Всё, сфера и level changer теперь связаны. Далее идем в закладку '''properties''', указываем название, например '''to_atp_2''', теперь нужно прописать в '''custom data''' вейпоинт для возврата, в случае отказа игрока от перемещения с локации на локации(обязательно). Вписываем вот это:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_1_way_if_reject&lt;br /&gt;
//в случае отказа от перемещения на вторую локу, возвращаемся назад&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В '''Level to change''' вписываем наименование уровня, куда мы хотим переместиться с этого левела, например '''atp_2'''. &lt;br /&gt;
В '''Level Point to change''' указываем точку, в которой игрок появится...&lt;br /&gt;
'''start_actor_01'''. С '''level changer''' на этом уровне всё, пошли далее.&lt;br /&gt;
Создаем '''graph point''' или используем пустой существующий если у вас есть.&lt;br /&gt;
В него вписываем '''start_actor_01''', этот поинт для того чтобы мы смогли со второго левела '''atp_2''' перейти на '''atp_1'''(первый). Создаем еще один '''graph point''' c названием '''exit_atp_1_01''', в разделе '''location''' выбираем, например &amp;quot;экскейп&amp;quot;. В '''Connection -&amp;gt; Level name''' указываем уровень, с которым будет связан '''atp_1''', то есть выбираем '''atp_2''', в '''Connection-&amp;gt;Point Name''' вписываем точку связи из второго уровня, которую мы создадим потом '''exit_atp_2_01'''. С первым уровнем всё...&lt;br /&gt;
&lt;br /&gt;
Для чего нам нужен graph point'ы ''exit_xxx''?&lt;br /&gt;
''exit_xxx'' представляет собой '''connection_point'''(точку связи) - для того, чтобы компилятор знал, какие уровни он соединяет, а если по другому: начальный граф уровня, от него потом считаются все ноды.&lt;br /&gt;
&lt;br /&gt;
'''start_actor_xx''' - точка появления актера после перехода.&lt;br /&gt;
&lt;br /&gt;
Помните мы вписали в '''custom data''' '''level changer''''а вейпоинт? Вот теперь нам придется его создать. Выбираем '''Way Points''' -&amp;gt; жмем &amp;quot;чайник&amp;quot; и стави 1 вейпоинт рядом с level changer(так мы создали начальную точку пути), теперь жмем '''point mode''' и ставим второй. Если они не соеденились стрелочкой, жмем '''create 1-link'''. Теперь у нас получился путь, который мы прописали в custom data '''level changer''', заходим в свойства и обзываем его также как и в '''custom data''', тоесть '''atp_1_way_if_reject'''. Всё с первым уровнем покончили.&lt;br /&gt;
&lt;br /&gt;
Итак, открываем второй уровень и поехали по новой...&lt;br /&gt;
&lt;br /&gt;
Создаем там путь из двух вейпоинтов по схеме выше и обзываем '''atp_2_way_if_reject'''. Создаем level changer называем его '''to_atp_1''',&lt;br /&gt;
в '''custom data''' пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_2_way_if_reject //название вэйпоинта&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В '''level to change''' указываем atp_1 //куда переходим с atp_2&lt;br /&gt;
В '''level point to change''' - '''start_actor_01'''(дада, тот который мы создали на первом левеле :) )&lt;br /&gt;
&lt;br /&gt;
Теперь здесь же на atp_2 создаем graph point с названием '''start_actor_01'''.&lt;br /&gt;
И еще один где вписываем следущие значения:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Name: exit_atp_2_01&lt;br /&gt;
Location: &amp;quot;свалка&amp;quot; //наименование локации&lt;br /&gt;
&lt;br /&gt;
Connection:&lt;br /&gt;
 Level name: atp_1 //первый уровень&lt;br /&gt;
 Point name: exit_atp_1_01 //связующая точка с первого уровня&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Незабудьте, что '''ACTOR''' должен быть только на одной локации(в нашем случае на atp_1), иначе компилятор выдаст ошибку. Всё!... Сохраняем, прекомпилим.&lt;br /&gt;
&lt;br /&gt;
Запускаем '''Ai Compiler''', выбираем по очереди наши два уровня и просчитываем шаг 1, проверям сетку. Теперь создаем ''текстовый документ'' и вписываем туда&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_1&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем его как .bat и запускаем, в результате у каждого уровня &lt;br /&gt;
появится свой '''level.graph'''(граф и кросс-таблица).&lt;br /&gt;
&lt;br /&gt;
Создаем еще один текстовик, пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -m&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем как .bat и стартуем. Так мы собрали '''game.graph''' из '''level.graph''''ов.&lt;br /&gt;
&lt;br /&gt;
И наконец.. создаем 3ий &amp;quot;бантик&amp;quot; для сборки '''all.spawn'''!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
bins\ai\1.exe -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Компилим, заходим в '''gamedata\spawns\''', переименовываем получившийся спавн в '''all.spawn''' и запускаем через новую игру. Как видите, вы можете перемещаться с уровня на уровень, туда сюда без каких-либо проблем.&lt;br /&gt;
&lt;br /&gt;
Чуть не забыл, обязательно временно, на время компиляции переместите все остальные левелы игры кроме ваших в любую другую папку, иначе &lt;br /&gt;
могут быть ошибки при сборе графов и спавна.&lt;br /&gt;
&lt;br /&gt;
Для сборки '''всех''' сингл уровней из оригинальной игры &lt;br /&gt;
используйте bat фаил написанный ''Zeed'''ом: [http://stalkerin.gameru.net/developer/mods/levelgraph_fullgame.bat fullgame.bat]&lt;br /&gt;
Если будут ошибки связанные с алайфом, жмем ''продолжить''. Потом выполняйте процедуры как написано выше, сборка '''game.graph''', а затем '''all.spawn'''.&lt;br /&gt;
''продолжение следует...''&lt;br /&gt;
&lt;br /&gt;
'''written by Loxotron'''&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-</id>
		<title>Компиляция -=inGame АИ=-</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-"/>
				<updated>2008-01-08T03:45:56Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, приступим... Раз вы здесь, значит есть на то причина:&lt;br /&gt;
*1)либо вы нуп, увидевший аи-компилер и решивший забацать чтото крутое&lt;br /&gt;
*2)вы не нуп, но всё забыли или почти всё&lt;br /&gt;
*3)вы супер-аццкий про решивший глянуть на весь этот детсад свысока )&lt;br /&gt;
*4)вы обычный модер, решивший расширить свои текущие познания. ;)&lt;br /&gt;
&lt;br /&gt;
==Основы==&lt;br /&gt;
Ну что ж... начнем с самого простого, скомпилим левел с аи, монстрами на&lt;br /&gt;
карте '''mp_atp'''. Открываем левел.. первое что надо сделать убрать все &lt;br /&gt;
'''rpoint'''(мультиплеерные точки спавна). Убрали? Отлично. Создаем&lt;br /&gt;
'''Spawn elements -&amp;gt; actor''' ну и по желанию в свойствах ('''Properties''')&lt;br /&gt;
в '''custom data''' прописываем ему предположим вот это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[spawn]&lt;br /&gt;
wpn_ak74&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тем самым при появлении игрока у него в руках уже будет калаш. Далее,&lt;br /&gt;
создаем монстра... любого по желанию, предположим кровососа и ставим на уровень.&lt;br /&gt;
Теперь дело за '''AI map''' - аи сетка, которая необходима для того, чтобы&lt;br /&gt;
нпс, монстры могли ориентироваться по уровню. Жмем Object и кликаем на  земле(тем самым мы ее &amp;quot;выбрали&amp;quot; для дальнейших манипуляций), затем '''AI Map''' -&amp;gt; '''Commands''' -&amp;gt; '''Make list from selected''', жмем '''add''' в разделе '''AI Map Nodes''' и '''add''' для добавления объектов слева вверху(чайник) и ставим на карте ноды в нужном вам порядке(достаточно одного), жмем '''Generate Full'''. Всё, аи-сетка сгенерированна. Теперь добавляем на левел обязательно! 1 graph point ('''Spawns-&amp;gt;ai-&amp;gt;graph point'''), в нем можно ничего не писать. Сохраняем уровень, билдим ('''build'''). &lt;br /&gt;
&lt;br /&gt;
Следующим шагом будет правка конфигов.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
'''game_maps_single.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[level_maps_single]&lt;br /&gt;
...&lt;br /&gt;
testing_ai &lt;br /&gt;
//название вашего уровня&lt;br /&gt;
&lt;br /&gt;
[testing_ai]&lt;br /&gt;
global_rect  = -6,1220.0, 248.0,1481.0&lt;br /&gt;
texture      = map\map_escape&lt;br /&gt;
//текстура при загрузке&lt;br /&gt;
bound_rect  = -502.148,-412.284,379.976,474,479&lt;br /&gt;
weathers  = default&lt;br /&gt;
//погода&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''game_levels.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[levels]&lt;br /&gt;
...&lt;br /&gt;
level190&lt;br /&gt;
//номер вашего уровня&lt;br /&gt;
&lt;br /&gt;
[level190]&lt;br /&gt;
name   = testing_ai&lt;br /&gt;
caption = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
offset  = 2000.0, 800.0, 1000.0&lt;br /&gt;
id   = 193&lt;br /&gt;
//индентифакционный номер, должен быть уникальным&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''game_graphs.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
018   = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь открываем AI Compiler, указываем папку с '''сдк'''(.../level_editor, либо если он объединен с игрой, путь до нее). Выбираем ваш уровень.&lt;br /&gt;
Проходим 1ую стадию чернового просчета аи карты('''шаг 1'''), либо если вы хотите долго ждать и просчитать укрытия для нпс то выбираем '''шаг 2'''.&lt;br /&gt;
Далее строим граф и кросс-таблицу уровня шаг 3, потом граф игры '''шаг 4''' и наконец фаил .spawn '''шаг 5'''. После всех стадий заходим в gamedata\spawns\ и переименовываем '''test.spawn''' в '''all.spawn'''&lt;br /&gt;
&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id	=pseudoscience|&lt;br /&gt;
align = left|&lt;br /&gt;
backgroundcolor	= #f9f9f9|&lt;br /&gt;
image	=Lamp.gif|&lt;br /&gt;
heading	= Важные моменты -- Loxotron|&lt;br /&gt;
message = При правке конфигов не забывайте указывать реально существующую там погоду и картинку загрузки, иначе вылетит; также не пытайтесь запустить уровень через .bat фаил, подобный указанному ниже, тоже будет вылет&lt;br /&gt;
&amp;lt;pre&amp;gt;bin\xr_3da.exe -ltx user.ltx -nointro -external -start server(level/single) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правильный .bat фаил&lt;br /&gt;
&amp;lt;pre&amp;gt;@start bin\XR_3DA.exe -start server(%1/single/alife) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
%1 - название левела&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Углубленное изучение==&lt;br /&gt;
Далее мы рассмотрим как собирать несколько уровней и устанавливать между ними переходы.&lt;br /&gt;
&lt;br /&gt;
Итак у вас два уровня... на одном из них стоит '''actor'''. Начнем с него:&lt;br /&gt;
создаем '''ai-&amp;gt;level changer''', затем '''shape-&amp;gt;sphere''', с помощью '''scale''' увеличиваем до необходимых размеров, теперь переключаемся в режим редактирования '''spawn element''', выделяем '''level changer''' и жмем '''commands-&amp;gt;attach object''', а затем кликаем на сферу... Всё, сфера и level changer теперь связаны. Далее идем в закладку '''properties''', указываем название, например '''to_atp_2''', теперь нужно прописать в '''custom data''' вейпоинт для возврата, в случае отказа игрока от перемещения с локации на локации(обязательно). Вписываем вот это:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_1_way_if_reject&lt;br /&gt;
//в случае отказа от перемещения на вторую локу, возвращаемся назад&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В '''Level to change''' вписываем наименование уровня, куда мы хотим переместиться с этого левела, например '''atp_2'''. &lt;br /&gt;
В '''Level Point to change''' указываем точку, в которой игрок появится...&lt;br /&gt;
'''start_actor_01'''. С '''level changer''' на этом уровне всё, пошли далее.&lt;br /&gt;
Создаем '''graph point''' или используем пустой существующий если у вас есть.&lt;br /&gt;
В него вписываем '''start_actor_01''', этот поинт для того чтобы мы смогли со второго левела '''atp_2''' перейти на '''atp_1'''(первый). Создаем еще один '''graph point''' c названием '''exit_atp_1_01''', в разделе '''location''' выбираем, например &amp;quot;экскейп&amp;quot;. В '''Connection -&amp;gt; Level name''' указываем уровень, с которым будет связан '''atp_1''', то есть выбираем '''atp_2''', в '''Connection-&amp;gt;Point Name''' вписываем точку связи из второго уровня, которую мы создадим потом '''exit_atp_2_01'''. С первым уровнем всё...&lt;br /&gt;
&lt;br /&gt;
Для чего нам нужен graph point'ы ''exit_xxx''?&lt;br /&gt;
''exit_xxx'' представляет собой '''connection_point'''(точку связи) - для того, чтобы компилятор знал, какие уровни он соединяет, а если по другому: начальный граф уровня, от него потом считаются все ноды.&lt;br /&gt;
&lt;br /&gt;
'''start_actor_xx''' - точка появления актера после перехода.&lt;br /&gt;
&lt;br /&gt;
Помните мы вписали в '''custom data''' '''level changer''''а вейпоинт? Вот теперь нам придется его создать. Выбираем '''Way Points''' -&amp;gt; жмем &amp;quot;чайник&amp;quot; и стави 1 вейпоинт рядом с level changer(так мы создали начальную точку пути), теперь жмем '''point mode''' и ставим второй. Если они не соеденились стрелочкой, жмем '''create 1-link'''. Теперь у нас получился путь, который мы прописали в custom data '''level changer''', заходим в свойства и обзываем его также как и в '''custom data''', тоесть '''atp_1_way_if_reject'''. Всё с первым уровнем покончили.&lt;br /&gt;
&lt;br /&gt;
Итак, открываем второй уровень и поехали по новой...&lt;br /&gt;
&lt;br /&gt;
Создаем там путь из двух вейпоинтов по схеме выше и обзываем '''atp_2_way_if_reject'''. Создаем level changer называем его '''to_atp_1''',&lt;br /&gt;
в '''custom data''' пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_2_way_if_reject //название вэйпоинта&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В '''level to change''' указываем atp_1 //куда переходим с atp_2&lt;br /&gt;
В '''level point to change''' - '''start_actor_01'''(дада, тот который мы создали на первом левеле :) )&lt;br /&gt;
&lt;br /&gt;
Теперь здесь же на atp_2 создаем graph point с названием '''start_actor_01'''.&lt;br /&gt;
И еще один где вписываем следущие значения:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Name: exit_atp_2_01&lt;br /&gt;
Location: &amp;quot;свалка&amp;quot; //наименование локации&lt;br /&gt;
&lt;br /&gt;
Connection:&lt;br /&gt;
 Level name: atp_1 //первый уровень&lt;br /&gt;
 Point name: exit_atp_1_01 //связующая точка с первого уровня&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Незабудьте, что '''ACTOR''' должен быть только на одной локации(в нашем случае на atp_1), иначе компилятор выдаст ошибку. Всё!... Сохраняем, прекомпилим.&lt;br /&gt;
&lt;br /&gt;
Запускаем '''Ai Compiler''', выбираем по очереди наши два уровня и просчитываем шаг 1, проверям сетку. Теперь создаем ''текстовый документ'' и вписываем туда&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_1&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем его как .bat и запускаем, в результате у каждого уровня &lt;br /&gt;
появится свой '''level.graph'''(граф и кросс-таблица).&lt;br /&gt;
&lt;br /&gt;
Создаем еще один текстовик, пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -m&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем как .bat и стартуем. Так мы собрали '''game.graph''' из '''level.graph''''ов.&lt;br /&gt;
&lt;br /&gt;
И наконец.. создаем 3ий &amp;quot;бантик&amp;quot; для сборки '''all.spawn'''!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
bins\ai\1.exe -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Компилим, заходим в '''gamedata\spawns\''', переименовываем получившийся спавн в '''all.spawn''' и запускаем через новую игру. Как видите, вы можете перемещаться с уровня на уровень, туда сюда без каких-либо проблем. &lt;br /&gt;
&lt;br /&gt;
Для сборки '''всех''' сингл уровней из оригинальной игры &lt;br /&gt;
используйте bat фаил написанный ''Zeed'''ом: [http://stalkerin.gameru.net/developer/mods/levelgraph_fullgame.bat fullgame.bat]&lt;br /&gt;
Если будут ошибки связанные с алайфом, жмем ''продолжить''. Потом выполняйте процедуры как написано выше, сборка '''game.graph''', а затем '''all.spawn'''.&lt;br /&gt;
''продолжение следует...''&lt;br /&gt;
&lt;br /&gt;
'''written by Loxotron'''&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-</id>
		<title>Компиляция -=inGame АИ=-</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-"/>
				<updated>2008-01-08T03:45:05Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, приступим... Раз вы здесь, значит есть на то причина:&lt;br /&gt;
*1)либо вы нуп, увидевший аи-компилер и решивший забацать чтото крутое&lt;br /&gt;
*2)вы не нуп, но всё забыли или почти всё&lt;br /&gt;
*3)вы супер-аццкий про решивший глянуть на весь этот детсад свысока )&lt;br /&gt;
*4)вы обычный модер, решивший расширить свои текущие познания. ;)&lt;br /&gt;
&lt;br /&gt;
==Основы==&lt;br /&gt;
Ну что ж... начнем с самого простого, скомпилим левел с аи, монстрами на&lt;br /&gt;
карте '''mp_atp'''. Открываем левел.. первое что надо сделать убрать все &lt;br /&gt;
'''rpoint'''(мультиплеерные точки спавна). Убрали? Отлично. Создаем&lt;br /&gt;
'''Spawn elements -&amp;gt; actor''' ну и по желанию в свойствах ('''Properties''')&lt;br /&gt;
в '''custom data''' прописываем ему предположим вот это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[spawn]&lt;br /&gt;
wpn_ak74&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тем самым при появлении игрока у него в руках уже будет калаш. Далее,&lt;br /&gt;
создаем монстра... любого по желанию, предположим кровососа и ставим на уровень.&lt;br /&gt;
Теперь дело за '''AI map''' - аи сетка, которая необходима для того, чтобы&lt;br /&gt;
нпс, монстры могли ориентироваться по уровню. Жмем Object и кликаем на  земле(тем самым мы ее &amp;quot;выбрали&amp;quot; для дальнейших манипуляций), затем '''AI Map''' -&amp;gt; '''Commands''' -&amp;gt; '''Make list from selected''', жмем '''add''' в разделе '''AI Map Nodes''' и '''add''' для добавления объектов слева вверху(чайник) и ставим на карте ноды в нужном вам порядке(достаточно одного), жмем '''Generate Full'''. Всё, аи-сетка сгенерированна. Теперь добавляем на левел обязательно! 1 graph point ('''Spawns-&amp;gt;ai-&amp;gt;graph point'''), в нем можно ничего не писать. Сохраняем уровень, билдим ('''build'''). &lt;br /&gt;
&lt;br /&gt;
Следующим шагом будет правка конфигов.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
'''game_maps_single.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[level_maps_single]&lt;br /&gt;
...&lt;br /&gt;
testing_ai &lt;br /&gt;
//название вашего уровня&lt;br /&gt;
&lt;br /&gt;
[testing_ai]&lt;br /&gt;
global_rect  = -6,1220.0, 248.0,1481.0&lt;br /&gt;
texture      = map\map_escape&lt;br /&gt;
//текстура при загрузке&lt;br /&gt;
bound_rect  = -502.148,-412.284,379.976,474,479&lt;br /&gt;
weathers  = default&lt;br /&gt;
//погода&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''game_levels.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[levels]&lt;br /&gt;
...&lt;br /&gt;
level190&lt;br /&gt;
//номер вашего уровня&lt;br /&gt;
&lt;br /&gt;
[level190]&lt;br /&gt;
name   = testing_ai&lt;br /&gt;
caption = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
offset  = 2000.0, 800.0, 1000.0&lt;br /&gt;
id   = 193&lt;br /&gt;
//индентифакционный номер, должен быть уникальным&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''game_graphs.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
018   = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь открываем AI Compiler, указываем папку с '''сдк'''(.../level_editor, либо если он объединен с игрой, путь до нее). Выбираем ваш уровень.&lt;br /&gt;
Проходим 1ую стадию чернового просчета аи карты('''шаг 1'''), либо если вы хотите долго ждать и просчитать укрытия для нпс то выбираем '''шаг 2'''.&lt;br /&gt;
Далее строим граф и кросс-таблицу уровня шаг 3, потом граф игры '''шаг 4''' и наконец фаил .spawn '''шаг 5'''. После всех стадий заходим в gamedata\spawns\ и переименовываем '''test.spawn''' в '''all.spawn'''&lt;br /&gt;
&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id	=pseudoscience|&lt;br /&gt;
align = left|&lt;br /&gt;
backgroundcolor	= #f9f9f9|&lt;br /&gt;
image	=Lamp.gif|&lt;br /&gt;
heading	= Важные моменты -- Loxotron|&lt;br /&gt;
message = При правке конфигов не забывайте указывать реально существующую там погоду и картинку загрузки, иначе вылетит; не пытайтесь запустить уровень через .bat фаил, подобный указанному ниже, тоже будет вылет)&lt;br /&gt;
&amp;lt;pre&amp;gt;bin\xr_3da.exe -ltx user.ltx -nointro -external -start server(level/single) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правильный .bat фаил&lt;br /&gt;
&amp;lt;pre&amp;gt;@start bin\XR_3DA.exe -start server(%1/single/alife) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
%1 - название левела&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Углубленное изучение==&lt;br /&gt;
Далее мы рассмотрим как собирать несколько уровней и устанавливать между ними переходы.&lt;br /&gt;
&lt;br /&gt;
Итак у вас два уровня... на одном из них стоит '''actor'''. Начнем с него:&lt;br /&gt;
создаем '''ai-&amp;gt;level changer''', затем '''shape-&amp;gt;sphere''', с помощью '''scale''' увеличиваем до необходимых размеров, теперь переключаемся в режим редактирования '''spawn element''', выделяем '''level changer''' и жмем '''commands-&amp;gt;attach object''', а затем кликаем на сферу... Всё, сфера и level changer теперь связаны. Далее идем в закладку '''properties''', указываем название, например '''to_atp_2''', теперь нужно прописать в '''custom data''' вейпоинт для возврата, в случае отказа игрока от перемещения с локации на локации(обязательно). Вписываем вот это:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_1_way_if_reject&lt;br /&gt;
//в случае отказа от перемещения на вторую локу, возвращаемся назад&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В '''Level to change''' вписываем наименование уровня, куда мы хотим переместиться с этого левела, например '''atp_2'''. &lt;br /&gt;
В '''Level Point to change''' указываем точку, в которой игрок появится...&lt;br /&gt;
'''start_actor_01'''. С '''level changer''' на этом уровне всё, пошли далее.&lt;br /&gt;
Создаем '''graph point''' или используем пустой существующий если у вас есть.&lt;br /&gt;
В него вписываем '''start_actor_01''', этот поинт для того чтобы мы смогли со второго левела '''atp_2''' перейти на '''atp_1'''(первый). Создаем еще один '''graph point''' c названием '''exit_atp_1_01''', в разделе '''location''' выбираем, например &amp;quot;экскейп&amp;quot;. В '''Connection -&amp;gt; Level name''' указываем уровень, с которым будет связан '''atp_1''', то есть выбираем '''atp_2''', в '''Connection-&amp;gt;Point Name''' вписываем точку связи из второго уровня, которую мы создадим потом '''exit_atp_2_01'''. С первым уровнем всё...&lt;br /&gt;
&lt;br /&gt;
Для чего нам нужен graph point'ы ''exit_xxx''?&lt;br /&gt;
''exit_xxx'' представляет собой '''connection_point'''(точку связи) - для того, чтобы компилятор знал, какие уровни он соединяет, а если по другому: начальный граф уровня, от него потом считаются все ноды.&lt;br /&gt;
&lt;br /&gt;
'''start_actor_xx''' - точка появления актера после перехода.&lt;br /&gt;
&lt;br /&gt;
Помните мы вписали в '''custom data''' '''level changer''''а вейпоинт? Вот теперь нам придется его создать. Выбираем '''Way Points''' -&amp;gt; жмем &amp;quot;чайник&amp;quot; и стави 1 вейпоинт рядом с level changer(так мы создали начальную точку пути), теперь жмем '''point mode''' и ставим второй. Если они не соеденились стрелочкой, жмем '''create 1-link'''. Теперь у нас получился путь, который мы прописали в custom data '''level changer''', заходим в свойства и обзываем его также как и в '''custom data''', тоесть '''atp_1_way_if_reject'''. Всё с первым уровнем покончили.&lt;br /&gt;
&lt;br /&gt;
Итак, открываем второй уровень и поехали по новой...&lt;br /&gt;
&lt;br /&gt;
Создаем там путь из двух вейпоинтов по схеме выше и обзываем '''atp_2_way_if_reject'''. Создаем level changer называем его '''to_atp_1''',&lt;br /&gt;
в '''custom data''' пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_2_way_if_reject //название вэйпоинта&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В '''level to change''' указываем atp_1 //куда переходим с atp_2&lt;br /&gt;
В '''level point to change''' - '''start_actor_01'''(дада, тот который мы создали на первом левеле :) )&lt;br /&gt;
&lt;br /&gt;
Теперь здесь же на atp_2 создаем graph point с названием '''start_actor_01'''.&lt;br /&gt;
И еще один где вписываем следущие значения:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Name: exit_atp_2_01&lt;br /&gt;
Location: &amp;quot;свалка&amp;quot; //наименование локации&lt;br /&gt;
&lt;br /&gt;
Connection:&lt;br /&gt;
 Level name: atp_1 //первый уровень&lt;br /&gt;
 Point name: exit_atp_1_01 //связующая точка с первого уровня&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Незабудьте, что '''ACTOR''' должен быть только на одной локации(в нашем случае на atp_1), иначе компилятор выдаст ошибку. Всё!... Сохраняем, прекомпилим.&lt;br /&gt;
&lt;br /&gt;
Запускаем '''Ai Compiler''', выбираем по очереди наши два уровня и просчитываем шаг 1, проверям сетку. Теперь создаем ''текстовый документ'' и вписываем туда&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_1&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем его как .bat и запускаем, в результате у каждого уровня &lt;br /&gt;
появится свой '''level.graph'''(граф и кросс-таблица).&lt;br /&gt;
&lt;br /&gt;
Создаем еще один текстовик, пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -m&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем как .bat и стартуем. Так мы собрали '''game.graph''' из '''level.graph''''ов.&lt;br /&gt;
&lt;br /&gt;
И наконец.. создаем 3ий &amp;quot;бантик&amp;quot; для сборки '''all.spawn'''!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
bins\ai\1.exe -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Компилим, заходим в '''gamedata\spawns\''', переименовываем получившийся спавн в '''all.spawn''' и запускаем через новую игру. Как видите, вы можете перемещаться с уровня на уровень, туда сюда без каких-либо проблем. &lt;br /&gt;
&lt;br /&gt;
Для сборки '''всех''' сингл уровней из оригинальной игры &lt;br /&gt;
используйте bat фаил написанный ''Zeed'''ом: [http://stalkerin.gameru.net/developer/mods/levelgraph_fullgame.bat fullgame.bat]&lt;br /&gt;
Если будут ошибки связанные с алайфом, жмем ''продолжить''. Потом выполняйте процедуры как написано выше, сборка '''game.graph''', а затем '''all.spawn'''.&lt;br /&gt;
''продолжение следует...''&lt;br /&gt;
&lt;br /&gt;
'''written by Loxotron'''&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-</id>
		<title>Компиляция -=inGame АИ=-</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-"/>
				<updated>2008-01-08T03:44:09Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, приступим... Раз вы здесь, значит есть на то причина:&lt;br /&gt;
*1)либо вы нуп, увидевший аи-компилер и решивший забацать чтото крутое&lt;br /&gt;
*2)вы не нуп, но всё забыли или почти всё&lt;br /&gt;
*3)вы супер-аццкий про решивший глянуть на весь этот детсад свысока )&lt;br /&gt;
*4)вы обычный модер, решивший расширить свои текущие познания. ;)&lt;br /&gt;
&lt;br /&gt;
==Основы==&lt;br /&gt;
Ну что ж... начнем с самого простого, скомпилим левел с аи, монстрами на&lt;br /&gt;
карте '''mp_atp'''. Открываем левел.. первое что надо сделать убрать все &lt;br /&gt;
'''rpoint'''(мультиплеерные точки спавна). Убрали? Отлично. Создаем&lt;br /&gt;
'''Spawn elements -&amp;gt; actor''' ну и по желанию в свойствах ('''Properties''')&lt;br /&gt;
в '''custom data''' прописываем ему предположим вот это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[spawn]&lt;br /&gt;
wpn_ak74&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тем самым при появлении игрока у него в руках уже будет калаш. Далее,&lt;br /&gt;
создаем монстра... любого по желанию, предположим кровососа и ставим на уровень.&lt;br /&gt;
Теперь дело за '''AI map''' - аи сетка, которая необходима для того, чтобы&lt;br /&gt;
нпс, монстры могли ориентироваться по уровню. Жмем Object и кликаем на  земле(тем самым мы ее &amp;quot;выбрали&amp;quot; для дальнейших манипуляций), затем '''AI Map''' -&amp;gt; '''Commands''' -&amp;gt; '''Make list from selected''', жмем '''add''' в разделе '''AI Map Nodes''' и '''add''' для добавления объектов слева вверху(чайник) и ставим на карте ноды в нужном вам порядке(достаточно одного), жмем '''Generate Full'''. Всё, аи-сетка сгенерированна. Теперь добавляем на левел обязательно! 1 graph point ('''Spawns-&amp;gt;ai-&amp;gt;graph point'''), в нем можно ничего не писать. Сохраняем уровень, билдим ('''build'''). &lt;br /&gt;
&lt;br /&gt;
Следующим шагом будет правка конфигов.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
'''game_maps_single.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[level_maps_single]&lt;br /&gt;
...&lt;br /&gt;
testing_ai &lt;br /&gt;
//название вашего уровня&lt;br /&gt;
&lt;br /&gt;
[testing_ai]&lt;br /&gt;
global_rect  = -6,1220.0, 248.0,1481.0&lt;br /&gt;
texture      = map\map_escape&lt;br /&gt;
//текстура при загрузке&lt;br /&gt;
bound_rect  = -502.148,-412.284,379.976,474,479&lt;br /&gt;
weathers  = default&lt;br /&gt;
//погода&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''game_levels.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[levels]&lt;br /&gt;
...&lt;br /&gt;
level190&lt;br /&gt;
//номер вашего уровня&lt;br /&gt;
&lt;br /&gt;
[level190]&lt;br /&gt;
name   = testing_ai&lt;br /&gt;
caption = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
offset  = 2000.0, 800.0, 1000.0&lt;br /&gt;
id   = 193&lt;br /&gt;
//индентифакционный номер, должен быть уникальным&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''game_graphs.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
018   = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь открываем AI Compiler, указываем папку с '''сдк'''(.../level_editor, либо если он объединен с игрой, путь до нее). Выбираем ваш уровень.&lt;br /&gt;
Проходим 1ую стадию чернового просчета аи карты('''шаг 1'''), либо если вы хотите долго ждать и просчитать укрытия для нпс то выбираем '''шаг 2'''.&lt;br /&gt;
Далее строим граф и кросс-таблицу уровня шаг 3, потом граф игры '''шаг 4''' и наконец фаил .spawn '''шаг 5'''. После всех стадий заходим в gamedata\spawns\ и переименовываем '''test.spawn''' в '''all.spawn'''&lt;br /&gt;
&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id	=pseudoscience|&lt;br /&gt;
align = left|&lt;br /&gt;
backgroundcolor	= #f9f9f9|&lt;br /&gt;
image	=Lamp.gif|&lt;br /&gt;
heading	= Важные моменты -- Loxotron|&lt;br /&gt;
message = При правке конфигов не забывайте указывать реально существующую там погоду и картинку загрузки, иначе вылетит; не пытайтесь запустить уровень через .bat фаилы подобный указанному ниже, тоже будет вылет)&lt;br /&gt;
&amp;lt;pre&amp;gt;bin\xr_3da.exe -ltx user.ltx -nointro -external -start server(level/single) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правильный .bat фаил&lt;br /&gt;
&amp;lt;pre&amp;gt;@start bin\XR_3DA.exe -start server(%1/single/alife) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
%1 - название левела&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Углубленное изучение==&lt;br /&gt;
Далее мы рассмотрим как собирать несколько уровней и устанавливать между ними переходы.&lt;br /&gt;
&lt;br /&gt;
Итак у вас два уровня... на одном из них стоит '''actor'''. Начнем с него:&lt;br /&gt;
создаем '''ai-&amp;gt;level changer''', затем '''shape-&amp;gt;sphere''', с помощью '''scale''' увеличиваем до необходимых размеров, теперь переключаемся в режим редактирования '''spawn element''', выделяем '''level changer''' и жмем '''commands-&amp;gt;attach object''', а затем кликаем на сферу... Всё, сфера и level changer теперь связаны. Далее идем в закладку '''properties''', указываем название, например '''to_atp_2''', теперь нужно прописать в '''custom data''' вейпоинт для возврата, в случае отказа игрока от перемещения с локации на локации(обязательно). Вписываем вот это:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_1_way_if_reject&lt;br /&gt;
//в случае отказа от перемещения на вторую локу, возвращаемся назад&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В '''Level to change''' вписываем наименование уровня, куда мы хотим переместиться с этого левела, например '''atp_2'''. &lt;br /&gt;
В '''Level Point to change''' указываем точку, в которой игрок появится...&lt;br /&gt;
'''start_actor_01'''. С '''level changer''' на этом уровне всё, пошли далее.&lt;br /&gt;
Создаем '''graph point''' или используем пустой существующий если у вас есть.&lt;br /&gt;
В него вписываем '''start_actor_01''', этот поинт для того чтобы мы смогли со второго левела '''atp_2''' перейти на '''atp_1'''(первый). Создаем еще один '''graph point''' c названием '''exit_atp_1_01''', в разделе '''location''' выбираем, например &amp;quot;экскейп&amp;quot;. В '''Connection -&amp;gt; Level name''' указываем уровень, с которым будет связан '''atp_1''', то есть выбираем '''atp_2''', в '''Connection-&amp;gt;Point Name''' вписываем точку связи из второго уровня, которую мы создадим потом '''exit_atp_2_01'''. С первым уровнем всё...&lt;br /&gt;
&lt;br /&gt;
Для чего нам нужен graph point'ы ''exit_xxx''?&lt;br /&gt;
''exit_xxx'' представляет собой '''connection_point'''(точку связи) - для того, чтобы компилятор знал, какие уровни он соединяет, а если по другому: начальный граф уровня, от него потом считаются все ноды.&lt;br /&gt;
&lt;br /&gt;
'''start_actor_xx''' - точка появления актера после перехода.&lt;br /&gt;
&lt;br /&gt;
Помните мы вписали в '''custom data''' '''level changer''''а вейпоинт? Вот теперь нам придется его создать. Выбираем '''Way Points''' -&amp;gt; жмем &amp;quot;чайник&amp;quot; и стави 1 вейпоинт рядом с level changer(так мы создали начальную точку пути), теперь жмем '''point mode''' и ставим второй. Если они не соеденились стрелочкой, жмем '''create 1-link'''. Теперь у нас получился путь, который мы прописали в custom data '''level changer''', заходим в свойства и обзываем его также как и в '''custom data''', тоесть '''atp_1_way_if_reject'''. Всё с первым уровнем покончили.&lt;br /&gt;
&lt;br /&gt;
Итак, открываем второй уровень и поехали по новой...&lt;br /&gt;
&lt;br /&gt;
Создаем там путь из двух вейпоинтов по схеме выше и обзываем '''atp_2_way_if_reject'''. Создаем level changer называем его '''to_atp_1''',&lt;br /&gt;
в '''custom data''' пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_2_way_if_reject //название вэйпоинта&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В '''level to change''' указываем atp_1 //куда переходим с atp_2&lt;br /&gt;
В '''level point to change''' - '''start_actor_01'''(дада, тот который мы создали на первом левеле :) )&lt;br /&gt;
&lt;br /&gt;
Теперь здесь же на atp_2 создаем graph point с названием '''start_actor_01'''.&lt;br /&gt;
И еще один где вписываем следущие значения:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Name: exit_atp_2_01&lt;br /&gt;
Location: &amp;quot;свалка&amp;quot; //наименование локации&lt;br /&gt;
&lt;br /&gt;
Connection:&lt;br /&gt;
 Level name: atp_1 //первый уровень&lt;br /&gt;
 Point name: exit_atp_1_01 //связующая точка с первого уровня&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Незабудьте, что '''ACTOR''' должен быть только на одной локации(в нашем случае на atp_1), иначе компилятор выдаст ошибку. Всё!... Сохраняем, прекомпилим.&lt;br /&gt;
&lt;br /&gt;
Запускаем '''Ai Compiler''', выбираем по очереди наши два уровня и просчитываем шаг 1, проверям сетку. Теперь создаем ''текстовый документ'' и вписываем туда&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_1&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем его как .bat и запускаем, в результате у каждого уровня &lt;br /&gt;
появится свой '''level.graph'''(граф и кросс-таблица).&lt;br /&gt;
&lt;br /&gt;
Создаем еще один текстовик, пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -m&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем как .bat и стартуем. Так мы собрали '''game.graph''' из '''level.graph''''ов.&lt;br /&gt;
&lt;br /&gt;
И наконец.. создаем 3ий &amp;quot;бантик&amp;quot; для сборки '''all.spawn'''!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
bins\ai\1.exe -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Компилим, заходим в '''gamedata\spawns\''', переименовываем получившийся спавн в '''all.spawn''' и запускаем через новую игру. Как видите, вы можете перемещаться с уровня на уровень, туда сюда без каких-либо проблем. &lt;br /&gt;
&lt;br /&gt;
Для сборки '''всех''' сингл уровней из оригинальной игры &lt;br /&gt;
используйте bat фаил написанный ''Zeed'''ом: [http://stalkerin.gameru.net/developer/mods/levelgraph_fullgame.bat fullgame.bat]&lt;br /&gt;
Если будут ошибки связанные с алайфом, жмем ''продолжить''. Потом выполняйте процедуры как написано выше, сборка '''game.graph''', а затем '''all.spawn'''.&lt;br /&gt;
''продолжение следует...''&lt;br /&gt;
&lt;br /&gt;
'''written by Loxotron'''&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-</id>
		<title>Компиляция -=inGame АИ=-</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-"/>
				<updated>2008-01-08T03:37:42Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, приступим... Раз вы здесь, значит есть на то причина:&lt;br /&gt;
*1)либо вы нуп, увидевший аи-компилер и решивший забацать чтото крутое&lt;br /&gt;
*2)вы не нуп, но всё забыли или почти всё&lt;br /&gt;
*3)вы супер-аццкий про решивший глянуть на весь этот детсад свысока )&lt;br /&gt;
*4)вы обычный модер, решивший расширить свои текущие познания. ;)&lt;br /&gt;
&lt;br /&gt;
==Основы==&lt;br /&gt;
Ну что ж... начнем с самого простого, скомпилим левел с аи, монстрами на&lt;br /&gt;
карте '''mp_atp'''. Открываем левел.. первое что надо сделать убрать все &lt;br /&gt;
'''rpoint'''(мультиплеерные точки спавна). Убрали? Отлично. Создаем&lt;br /&gt;
'''Spawn elements -&amp;gt; actor''' ну и по желанию в свойствах ('''Properties''')&lt;br /&gt;
в '''custom data''' прописываем ему предположим вот это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[spawn]&lt;br /&gt;
wpn_ak74&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тем самым при появлении игрока у него в руках уже будет калаш. Далее,&lt;br /&gt;
создаем монстра... любого по желанию, предположим кровососа и ставим на уровень.&lt;br /&gt;
Теперь дело за '''AI map''' - аи сетка, которая необходима для того, чтобы&lt;br /&gt;
нпс, монстры могли ориентироваться по уровню. Жмем Object и кликаем на  земле(тем самым мы ее &amp;quot;выбрали&amp;quot; для дальнейших манипуляций), затем '''AI Map''' -&amp;gt; '''Commands''' -&amp;gt; '''Make list from selected''', жмем '''add''' в разделе '''AI Map Nodes''' и '''add''' для добавления объектов слева вверху(чайник) и ставим на карте ноды в нужном вам порядке(достаточно одного), жмем '''Generate Full'''. Всё, аи-сетка сгенерированна. Теперь добавляем на левел обязательно! 1 graph point ('''Spawns-&amp;gt;ai-&amp;gt;graph point'''), в нем можно ничего не писать. Сохраняем уровень, билдим ('''build'''). &lt;br /&gt;
&lt;br /&gt;
Следующим шагом будет правка конфигов.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
'''game_maps_single.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[level_maps_single]&lt;br /&gt;
...&lt;br /&gt;
testing_ai &lt;br /&gt;
//название вашего уровня&lt;br /&gt;
&lt;br /&gt;
[testing_ai]&lt;br /&gt;
global_rect  = -6,1220.0, 248.0,1481.0&lt;br /&gt;
texture      = map\map_escape&lt;br /&gt;
//текстура при загрузке&lt;br /&gt;
bound_rect  = -502.148,-412.284,379.976,474,479&lt;br /&gt;
weathers  = default&lt;br /&gt;
//погода&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''game_levels.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[levels]&lt;br /&gt;
...&lt;br /&gt;
level190&lt;br /&gt;
//номер вашего уровня&lt;br /&gt;
&lt;br /&gt;
[level190]&lt;br /&gt;
name   = testing_ai&lt;br /&gt;
caption = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
offset  = 2000.0, 800.0, 1000.0&lt;br /&gt;
id   = 193&lt;br /&gt;
//индентифакционный номер, должен быть уникальным&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''game_graphs.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
018   = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь открываем AI Compiler, указываем папку с '''сдк'''(.../level_editor, либо если он объединен с игрой, путь до нее). Выбираем ваш уровень.&lt;br /&gt;
Проходим 1ую стадию чернового просчета аи карты('''шаг 1'''), либо если вы хотите долго ждать и просчитать укрытия для нпс то выбираем '''шаг 2'''.&lt;br /&gt;
Далее строим граф и кросс-таблицу уровня шаг 3, потом граф игры '''шаг 4''' и наконец фаил .spawn '''шаг 5'''. После всех стадий заходим в gamedata\spawns\ и переименовываем '''test.spawn''' в '''all.spawn'''&lt;br /&gt;
&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id	=pseudoscience|&lt;br /&gt;
align = left|&lt;br /&gt;
backgroundcolor	= #f9f9f9|&lt;br /&gt;
image	=Lamp.gif|&lt;br /&gt;
heading	= Важные моменты -- Loxotron|&lt;br /&gt;
message = При правке конфигов не забывайте указывать реально существующую там погоду и картинку загрузки, иначе вылетит; не пытайтесь запустить уровень через .bat фаилы подобный указанному ниже, тоже будет вылет)&lt;br /&gt;
&amp;lt;pre&amp;gt;bin\xr_3da.exe -ltx user.ltx -nointro -external -start server(level/single) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правильный .bat фаил&lt;br /&gt;
&amp;lt;pre&amp;gt;@start bin\XR_3DA.exe -start server(%1/single/alife) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Углубленное изучение==&lt;br /&gt;
Далее мы рассмотрим как собирать несколько уровней и устанавливать между ними переходы.&lt;br /&gt;
&lt;br /&gt;
Итак у вас два уровня... на одном из них стоит '''actor'''. Начнем с него:&lt;br /&gt;
создаем '''ai-&amp;gt;level changer''', затем '''shape-&amp;gt;sphere''', с помощью '''scale''' увеличиваем до необходимых размеров, теперь переключаемся в режим редактирования '''spawn element''', выделяем '''level changer''' и жмем '''commands-&amp;gt;attach object''', а затем кликаем на сферу... Всё, сфера и level changer теперь связаны. Далее идем в закладку '''properties''', указываем название, например '''to_atp_2''', теперь нужно прописать в '''custom data''' вейпоинт для возврата, в случае отказа игрока от перемещения с локации на локации(обязательно). Вписываем вот это:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_1_way_if_reject&lt;br /&gt;
//в случае отказа от перемещения на вторую локу, возвращаемся назад&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В '''Level to change''' вписываем наименование уровня, куда мы хотим переместиться с этого левела, например '''atp_2'''. &lt;br /&gt;
В '''Level Point to change''' указываем точку, в которой игрок появится...&lt;br /&gt;
'''start_actor_01'''. С '''level changer''' на этом уровне всё, пошли далее.&lt;br /&gt;
Создаем '''graph point''' или используем пустой существующий если у вас есть.&lt;br /&gt;
В него вписываем '''start_actor_01''', этот поинт для того чтобы мы смогли со второго левела '''atp_2''' перейти на '''atp_1'''(первый). Создаем еще один '''graph point''' c названием '''exit_atp_1_01''', в разделе '''location''' выбираем, например &amp;quot;экскейп&amp;quot;. В '''Connection -&amp;gt; Level name''' указываем уровень, с которым будет связан '''atp_1''', то есть выбираем '''atp_2''', в '''Connection-&amp;gt;Point Name''' вписываем точку связи из второго уровня, которую мы создадим потом '''exit_atp_2_01'''. С первым уровнем всё...&lt;br /&gt;
&lt;br /&gt;
Для чего нам нужен graph point'ы ''exit_xxx''?&lt;br /&gt;
''exit_xxx'' представляет собой '''connection_point'''(точку связи) - для того, чтобы компилятор знал, какие уровни он соединяет, а если по другому: начальный граф уровня, от него потом считаются все ноды.&lt;br /&gt;
&lt;br /&gt;
'''start_actor_xx''' - точка появления актера после перехода.&lt;br /&gt;
&lt;br /&gt;
Помните мы вписали в '''custom data''' '''level changer''''а вейпоинт? Вот теперь нам придется его создать. Выбираем '''Way Points''' -&amp;gt; жмем &amp;quot;чайник&amp;quot; и стави 1 вейпоинт рядом с level changer(так мы создали начальную точку пути), теперь жмем '''point mode''' и ставим второй. Если они не соеденились стрелочкой, жмем '''create 1-link'''. Теперь у нас получился путь, который мы прописали в custom data '''level changer''', заходим в свойства и обзываем его также как и в '''custom data''', тоесть '''atp_1_way_if_reject'''. Всё с первым уровнем покончили.&lt;br /&gt;
&lt;br /&gt;
Итак, открываем второй уровень и поехали по новой...&lt;br /&gt;
&lt;br /&gt;
Создаем там путь из двух вейпоинтов по схеме выше и обзываем '''atp_2_way_if_reject'''. Создаем level changer называем его '''to_atp_1''',&lt;br /&gt;
в '''custom data''' пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_2_way_if_reject //название вэйпоинта&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В '''level to change''' указываем atp_1 //куда переходим с atp_2&lt;br /&gt;
В '''level point to change''' - '''start_actor_01'''(дада, тот который мы создали на первом левеле :) )&lt;br /&gt;
&lt;br /&gt;
Теперь здесь же на atp_2 создаем graph point с названием '''start_actor_01'''.&lt;br /&gt;
И еще один где вписываем следущие значения:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Name: exit_atp_2_01&lt;br /&gt;
Location: &amp;quot;свалка&amp;quot; //наименование локации&lt;br /&gt;
&lt;br /&gt;
Connection:&lt;br /&gt;
 Level name: atp_1 //первый уровень&lt;br /&gt;
 Point name: exit_atp_1_01 //связующая точка с первого уровня&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Незабудьте, что '''ACTOR''' должен быть только на одной локации(в нашем случае на atp_1), иначе компилятор выдаст ошибку. Всё!... Сохраняем, прекомпилим.&lt;br /&gt;
&lt;br /&gt;
Запускаем '''Ai Compiler''', выбираем по очереди наши два уровня и просчитываем шаг 1, проверям сетку. Теперь создаем ''текстовый документ'' и вписываем туда&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_1&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем его как .bat и запускаем, в результате у каждого уровня &lt;br /&gt;
появится свой '''level.graph'''(граф и кросс-таблица).&lt;br /&gt;
&lt;br /&gt;
Создаем еще один текстовик, пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -m&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем как .bat и стартуем. Так мы собрали '''game.graph''' из '''level.graph''''ов.&lt;br /&gt;
&lt;br /&gt;
И наконец.. создаем 3ий &amp;quot;бантик&amp;quot; для сборки '''all.spawn'''!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
bins\ai\1.exe -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Компилим, заходим в '''gamedata\spawns\''', переименовываем получившийся спавн в '''all.spawn''' и запускаем через новую игру. Как видите, вы можете перемещаться с уровня на уровень, туда сюда без каких-либо проблем. &lt;br /&gt;
&lt;br /&gt;
Для сборки '''всех''' сингл уровней из оригинальной игры &lt;br /&gt;
используйте bat фаил написанный ''Zeed'''ом: [http://stalkerin.gameru.net/developer/mods/levelgraph_fullgame.bat fullgame.bat]&lt;br /&gt;
Если будут ошибки связанные с алайфом, жмем ''продолжить''. Потом выполняйте процедуры как написано выше, сборка '''game.graph''', а затем '''all.spawn'''.&lt;br /&gt;
''продолжение следует...''&lt;br /&gt;
&lt;br /&gt;
'''written by Loxotron'''&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-</id>
		<title>Компиляция -=inGame АИ=-</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-"/>
				<updated>2008-01-07T20:35:35Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, приступим... Раз вы здесь, значит есть на то причина:&lt;br /&gt;
*1)либо вы нуп, увидевший аи-компилер и решивший забацать чтото крутое&lt;br /&gt;
*2)вы не нуп, но всё забыли или почти всё&lt;br /&gt;
*3)вы супер-аццкий про решивший глянуть на весь этот детсад свысока )&lt;br /&gt;
*4)вы обычный модер, решивший расширить свои текущие познания. ;)&lt;br /&gt;
&lt;br /&gt;
==Основы==&lt;br /&gt;
Ну что ж... начнем с самого простого, скомпилим левел с аи, монстрами на&lt;br /&gt;
карте '''mp_atp'''. Открываем левел.. первое что надо сделать убрать все &lt;br /&gt;
'''rpoint'''(мультиплеерные точки спавна). Убрали? Отлично. Создаем&lt;br /&gt;
'''Spawn elements -&amp;gt; actor''' ну и по желанию в свойствах ('''Properties''')&lt;br /&gt;
в '''custom data''' прописываем ему предположим вот это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[spawn]&lt;br /&gt;
wpn_ak74&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тем самым при появлении игрока у него в руках уже будет калаш. Далее,&lt;br /&gt;
создаем монстра... любого по желанию, предположим кровососа и ставим на уровень.&lt;br /&gt;
Теперь дело за '''AI map''' - аи сетка, которая необходима для того, чтобы&lt;br /&gt;
нпс, монстры могли ориентироваться по уровню. Жмем Object и кликаем на  земле(тем самым мы ее &amp;quot;выбрали&amp;quot; для дальнейших манипуляций), затем '''AI Map''' -&amp;gt; '''Commands''' -&amp;gt; '''Make list from selected''', жмем '''add''' в разделе '''AI Map Nodes''' и '''add''' для добавления объектов слева вверху(чайник) и ставим на карте ноды в нужном вам порядке(достаточно одного), жмем '''Generate Full'''. Всё, аи-сетка сгенерированна. Теперь добавляем на левел обязательно! 1 graph point ('''Spawns-&amp;gt;ai-&amp;gt;graph point'''), в нем можно ничего не писать. Сохраняем уровень, билдим ('''build'''). &lt;br /&gt;
&lt;br /&gt;
Следующим шагом будет правка конфигов.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
'''game_maps_single.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[level_maps_single]&lt;br /&gt;
...&lt;br /&gt;
testing_ai &lt;br /&gt;
//название вашего уровня&lt;br /&gt;
&lt;br /&gt;
[testing_ai]&lt;br /&gt;
global_rect  = -6,1220.0, 248.0,1481.0&lt;br /&gt;
texture      = map\map_escape&lt;br /&gt;
//текстура при загрузке&lt;br /&gt;
bound_rect  = -502.148,-412.284,379.976,474,479&lt;br /&gt;
weathers  = default&lt;br /&gt;
//погода&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''game_levels.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[levels]&lt;br /&gt;
...&lt;br /&gt;
level190&lt;br /&gt;
//номер вашего уровня&lt;br /&gt;
&lt;br /&gt;
[level190]&lt;br /&gt;
name   = testing_ai&lt;br /&gt;
caption = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
offset  = 2000.0, 800.0, 1000.0&lt;br /&gt;
id   = 193&lt;br /&gt;
//индентифакционный номер, должен быть уникальным&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''game_graphs.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
018   = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь открываем AI Compiler, указываем папку с '''сдк'''(.../level_editor, либо если он объединен с игрой, путь до нее). Выбираем ваш уровень.&lt;br /&gt;
Проходим 1ую стадию чернового просчета аи карты('''шаг 1'''), либо если вы хотите долго ждать и просчитать укрытия для нпс то выбираем '''шаг 2'''.&lt;br /&gt;
Далее строим граф и кросс-таблицу уровня шаг 3, потом граф игры '''шаг 4''' и наконец фаил .spawn '''шаг 5'''. После всех стадий заходим в gamedata\spawns\ и переименовываем '''test.spawn''' в '''all.spawn'''&lt;br /&gt;
&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id	=pseudoscience|&lt;br /&gt;
align = left|&lt;br /&gt;
backgroundcolor	= #f9f9f9|&lt;br /&gt;
image	=Lamp.gif|&lt;br /&gt;
heading	= Важные моменты -- Loxotron|&lt;br /&gt;
message = При правке конфигов не забывайте указывать реально существующую там погоду и картинку загрузки, иначе вылетит; не пытайтесь запустить уровень через .bat фаилы подобные указанному ниже, тоже будет вылет)&lt;br /&gt;
&amp;lt;pre&amp;gt;bin\xr_3da.exe -ltx user.ltx -nointro -external -start server(level/single) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Углубленное изучение==&lt;br /&gt;
Далее мы рассмотрим как собирать несколько уровней и устанавливать между ними переходы.&lt;br /&gt;
&lt;br /&gt;
Итак у вас два уровня... на одном из них стоит '''actor'''. Начнем с него:&lt;br /&gt;
создаем '''ai-&amp;gt;level changer''', затем '''shape-&amp;gt;sphere''', с помощью '''scale''' увеличиваем до необходимых размеров, теперь переключаемся в режим редактирования '''spawn element''', выделяем '''level changer''' и жмем '''commands-&amp;gt;attach object''', а затем кликаем на сферу... Всё, сфера и level changer теперь связаны. Далее идем в закладку '''properties''', указываем название, например '''to_atp_2''', теперь нужно прописать в '''custom data''' вейпоинт для возврата, в случае отказа игрока от перемещения с локации на локации(обязательно). Вписываем вот это:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_1_way_if_reject&lt;br /&gt;
//в случае отказа от перемещения на вторую локу, возвращаемся назад&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В '''Level to change''' вписываем наименование уровня, куда мы хотим переместиться с этого левела, например '''atp_2'''. &lt;br /&gt;
В '''Level Point to change''' указываем точку, в которой игрок появится...&lt;br /&gt;
'''start_actor_01'''. С '''level changer''' на этом уровне всё, пошли далее.&lt;br /&gt;
Создаем '''graph point''' или используем пустой существующий если у вас есть.&lt;br /&gt;
В него вписываем '''start_actor_01''', этот поинт для того чтобы мы смогли со второго левела '''atp_2''' перейти на '''atp_1'''(первый). Создаем еще один '''graph point''' c названием '''exit_atp_1_01''', в разделе '''location''' выбираем, например &amp;quot;экскейп&amp;quot;. В '''Connection -&amp;gt; Level name''' указываем уровень, с которым будет связан '''atp_1''', то есть выбираем '''atp_2''', в '''Connection-&amp;gt;Point Name''' вписываем точку связи из второго уровня, которую мы создадим потом '''exit_atp_2_01'''. С первым уровнем всё...&lt;br /&gt;
&lt;br /&gt;
Для чего нам нужен graph point'ы ''exit_xxx''?&lt;br /&gt;
''exit_xxx'' представляет собой '''connection_point'''(точку связи) - для того, чтобы компилятор знал, какие уровни он соединяет, а если по другому: начальный граф уровня, от него потом считаются все ноды.&lt;br /&gt;
&lt;br /&gt;
'''start_actor_xx''' - точка появления актера после перехода.&lt;br /&gt;
&lt;br /&gt;
Помните мы вписали в '''custom data''' '''level changer''''а вейпоинт? Вот теперь нам придется его создать. Выбираем '''Way Points''' -&amp;gt; жмем &amp;quot;чайник&amp;quot; и стави 1 вейпоинт рядом с level changer(так мы создали начальную точку пути), теперь жмем '''point mode''' и ставим второй. Если они не соеденились стрелочкой, жмем '''create 1-link'''. Теперь у нас получился путь, который мы прописали в custom data '''level changer''', заходим в свойства и обзываем его также как и в '''custom data''', тоесть '''atp_1_way_if_reject'''. Всё с первым уровнем покончили.&lt;br /&gt;
&lt;br /&gt;
Итак, открываем второй уровень и поехали по новой...&lt;br /&gt;
&lt;br /&gt;
Создаем там путь из двух вейпоинтов по схеме выше и обзываем '''atp_2_way_if_reject'''. Создаем level changer называем его '''to_atp_1''',&lt;br /&gt;
в '''custom data''' пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_2_way_if_reject //название вэйпоинта&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В '''level to change''' указываем atp_1 //куда переходим с atp_2&lt;br /&gt;
В '''level point to change''' - '''start_actor_01'''(дада, тот который мы создали на первом левеле :) )&lt;br /&gt;
&lt;br /&gt;
Теперь здесь же на atp_2 создаем graph point с названием '''start_actor_01'''.&lt;br /&gt;
И еще один где вписываем следущие значения:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Name: exit_atp_2_01&lt;br /&gt;
Location: &amp;quot;свалка&amp;quot; //наименование локации&lt;br /&gt;
&lt;br /&gt;
Connection:&lt;br /&gt;
 Level name: atp_1 //первый уровень&lt;br /&gt;
 Point name: exit_atp_1_01 //связующая точка с первого уровня&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Незабудьте, что '''ACTOR''' должен быть только на одной локации(в нашем случае на atp_1), иначе компилятор выдаст ошибку. Всё!... Сохраняем, прекомпилим.&lt;br /&gt;
&lt;br /&gt;
Запускаем '''Ai Compiler''', выбираем по очереди наши два уровня и просчитываем шаг 1, проверям сетку. Теперь создаем ''текстовый документ'' и вписываем туда&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_1&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем его как .bat и запускаем, в результате у каждого уровня &lt;br /&gt;
появится свой '''level.graph'''(граф и кросс-таблица).&lt;br /&gt;
&lt;br /&gt;
Создаем еще один текстовик, пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -m&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем как .bat и стартуем. Так мы собрали '''game.graph''' из '''level.graph''''ов.&lt;br /&gt;
&lt;br /&gt;
И наконец.. создаем 3ий &amp;quot;бантик&amp;quot; для сборки '''all.spawn'''!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
bins\ai\1.exe -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Компилим, заходим в '''gamedata\spawns\''', переименовываем получившийся спавн в '''all.spawn''' и запускаем через новую игру. Как видите, вы можете перемещаться с уровня на уровень, туда сюда без каких-либо проблем. &lt;br /&gt;
&lt;br /&gt;
Для сборки '''всех''' сингл уровней из оригинальной игры &lt;br /&gt;
используйте bat фаил написанный ''Zeed'''ом: [http://stalkerin.gameru.net/developer/mods/levelgraph_fullgame.bat fullgame.bat]&lt;br /&gt;
Если будут ошибки связанные с алайфом, жмем ''продолжить''. Потом выполняйте процедуры как написано выше, сборка '''game.graph''', а затем '''all.spawn'''.&lt;br /&gt;
''продолжение следует...''&lt;br /&gt;
&lt;br /&gt;
'''written by Loxotron'''&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-</id>
		<title>Компиляция -=inGame АИ=-</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-"/>
				<updated>2008-01-07T20:35:13Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, приступим... Раз вы здесь, значит есть на то причина:&lt;br /&gt;
*1)либо вы нуп, увидевший аи-компилер и решивший забацать чтото крутое&lt;br /&gt;
*2)вы не нуп, но всё забыли или почти всё&lt;br /&gt;
*3)вы супер-аццкий про решивший глянуть на весь этот детсад свысока )&lt;br /&gt;
*4)вы обычный модер, решивший расширить свои текущие познания. ;)&lt;br /&gt;
&lt;br /&gt;
==Основы==&lt;br /&gt;
Ну что ж... начнем с самого простого, скомпилим левел с аи, монстрами на&lt;br /&gt;
карте '''mp_atp'''. Открываем левел.. первое что надо сделать убрать все &lt;br /&gt;
'''rpoint'''(мультиплеерные точки спавна). Убрали? Отлично. Создаем&lt;br /&gt;
'''Spawn elements -&amp;gt; actor''' ну и по желанию в свойствах ('''Properties''')&lt;br /&gt;
в '''custom data''' прописываем ему предположим вот это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[spawn]&lt;br /&gt;
wpn_ak74&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тем самым при появлении игрока у него в руках уже будет калаш. Далее,&lt;br /&gt;
создаем монстра... любого по желанию, предположим кровососа и ставим на уровень.&lt;br /&gt;
Теперь дело за '''AI map''' - аи сетка, которая необходима для того, чтобы&lt;br /&gt;
нпс, монстры могли ориентироваться по уровню. Жмем Object и кликаем на  земле(тем самым мы ее &amp;quot;выбрали&amp;quot; для дальнейших манипуляций), затем '''AI Map''' -&amp;gt; '''Commands''' -&amp;gt; '''Make list from selected''', жмем '''add''' в разделе '''AI Map Nodes''' и '''add''' для добавления объектов слева вверху(чайник) и ставим на карте ноды в нужном вам порядке(достаточно одного), жмем '''Generate Full'''. Всё, аи-сетка сгенерированна. Теперь добавляем на левел обязательно! 1 graph point ('''Spawns-&amp;gt;ai-&amp;gt;graph point'''), в нем можно ничего не писать. Сохраняем уровень, билдим ('''build'''). &lt;br /&gt;
&lt;br /&gt;
Следующим шагом будет правка конфигов.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
'''game_maps_single.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[level_maps_single]&lt;br /&gt;
...&lt;br /&gt;
testing_ai &lt;br /&gt;
//название вашего уровня&lt;br /&gt;
&lt;br /&gt;
[testing_ai]&lt;br /&gt;
global_rect  = -6,1220.0, 248.0,1481.0&lt;br /&gt;
texture      = map\map_escape&lt;br /&gt;
//текстура при загрузке&lt;br /&gt;
bound_rect  = -502.148,-412.284,379.976,474,479&lt;br /&gt;
weathers  = default&lt;br /&gt;
//погода&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''game_levels.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[levels]&lt;br /&gt;
...&lt;br /&gt;
level190&lt;br /&gt;
//номер вашего уровня&lt;br /&gt;
&lt;br /&gt;
[level190]&lt;br /&gt;
name   = testing_ai&lt;br /&gt;
caption = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
offset  = 2000.0, 800.0, 1000.0&lt;br /&gt;
id   = 193&lt;br /&gt;
//индентифакционный номер, должен быть уникальным&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''game_graphs.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
018   = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь открываем AI Compiler, указываем папку с '''сдк'''(.../level_editor, либо если он объединен с игрой, путь до нее). Выбираем ваш уровень.&lt;br /&gt;
Проходим 1ую стадию чернового просчета аи карты('''шаг 1'''), либо если вы хотите долго ждать и просчитать укрытия для нпс то выбираем '''шаг 2'''.&lt;br /&gt;
Далее строим граф и кросс-таблицу уровня шаг 3, потом граф игры '''шаг 4''' и наконец фаил .spawn '''шаг 5'''. После всех стадий заходим в gamedata\spawns\ и переименовываем '''test.spawn''' в '''all.spawn'''&lt;br /&gt;
&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id	=pseudoscience|&lt;br /&gt;
align = left|&lt;br /&gt;
backgroundcolor	= #f9f9f9|&lt;br /&gt;
image	=Lamp.gif|&lt;br /&gt;
heading	= Важные моменты -- Loxotron|&lt;br /&gt;
message = При правке конфигов не забывайте указывать реально существующую там погоду и картинку загрузки, иначе вылетит; не пытайтесь запустить уровень через .bat фаилы подобные указанному ниже, тоже будет вылет)&lt;br /&gt;
&amp;lt;pre&amp;gt;bin\xr_3da.exe -ltx user.ltx -nointro -external -start server(level/single) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Углубленное изучение==&lt;br /&gt;
Далее мы рассмотрим как собирать несколько уровней и устанавливать между ними переходы.&lt;br /&gt;
&lt;br /&gt;
Итак у вас два уровня... на одном из них стоит '''actor'''. Начнем с него:&lt;br /&gt;
создаем '''ai-&amp;gt;level changer''', затем '''shape-&amp;gt;sphere''', с помощью '''scale''' увеличиваем до необходимых размеров, теперь переключаемся в режим редактирования '''spawn element''', выделяем '''level changer''' и жмем '''commands-&amp;gt;attach object''', а затем кликаем на сферу... Всё, сфера и level changer теперь связаны. Далее идем в закладку '''properties''', указываем название, например '''to_atp_2''', теперь нужно прописать в '''custom data''' вейпоинт для возврата, в случае отказа игрока от перемещения с локации на локации(обязательно). Вписываем вот это:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_1_way_if_reject&lt;br /&gt;
//в случае отказа от перемещения на вторую локу, возвращаемся назад&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В '''Level to change''' вписываем наименование уровня, куда мы хотим переместиться с этого левела, например '''atp_2'''. &lt;br /&gt;
В '''Level Point to change''' указываем точку, в которой игрок появится...&lt;br /&gt;
'''start_actor_01'''. С '''level changer''' на этом уровне всё, пошли далее.&lt;br /&gt;
Создаем '''graph point''' или используем пустой существующий если у вас есть.&lt;br /&gt;
В него вписываем '''start_actor_01''', этот поинт для того чтобы мы смогли со второго левела '''atp_2''' перейти на '''atp_1'''(первый). Создаем еще один '''graph point''' c названием '''exit_atp_1_01''', в разделе '''location''' выбираем, например &amp;quot;экскейп&amp;quot;. В '''Connection -&amp;gt; Level name''' указываем уровень, с которым будет связан '''atp_1''', то есть выбираем '''atp_2''', в '''Connection-&amp;gt;Point Name''' вписываем точку связи из второго уровня, которую мы создадим потом '''exit_atp_2_01'''. С первым уровнем всё...&lt;br /&gt;
&lt;br /&gt;
Для чего нам нужен graph point'ы ''exit_xxx''?&lt;br /&gt;
''exit_xxx'' представляет собой '''connection_point'''(точку связи) - для того, чтобы компилятор знал, какие уровни он соединяет, а если по другому: начальный граф уровня, от него потом считаются все ноды.&lt;br /&gt;
&lt;br /&gt;
'''start_actor_xx''' - точка появления актера после перехода.&lt;br /&gt;
&lt;br /&gt;
Помните мы вписали в '''custom data''' '''level changer''''а вейпоинт? Вот теперь нам придется его создать. Выбираем '''Way Points''' -&amp;gt; жмем &amp;quot;чайник&amp;quot; и стави 1 вейпоинт рядом с level changer(так мы создали начальную точку пути), теперь жмем '''point mode''' и ставим второй. Если они не соеденились стрелочкой, жмем '''create 1-link'''. Теперь у нас получился путь, который мы прописали в custom data '''level changer''', заходим в свойства и обзываем его также как и в '''custom data''', тоесть '''atp_1_way_if_reject'''. Всё с первым уровнем покончили.&lt;br /&gt;
&lt;br /&gt;
Итак, открываем второй уровень и поехали по новой...&lt;br /&gt;
&lt;br /&gt;
Создаем там путь из двух вейпоинтов по схеме выше и обзываем '''atp_2_way_if_reject'''. Создаем level changer называем его '''to_atp_1''',&lt;br /&gt;
в '''custom data''' пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_2_way_if_reject //название вэйпоинта&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В '''level to change''' указываем atp_1 //куда переходим с atp_2&lt;br /&gt;
В '''level point to change''' - '''start_actor_01'''(дада, тот который мы создали на первом левеле :) )&lt;br /&gt;
&lt;br /&gt;
Теперь здесь же на atp_2 создаем graph point с названием '''start_actor_01'''.&lt;br /&gt;
И еще один где вписываем следущие значения:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Name: exit_atp_2_01&lt;br /&gt;
Location: &amp;quot;свалка&amp;quot; //наименование локации&lt;br /&gt;
&lt;br /&gt;
Connection:&lt;br /&gt;
 Level name: atp_1 //первый уровень&lt;br /&gt;
 Point name: exit_atp_1_01 //связующая точка с первого уровня&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Незабудьте, что '''ACTOR''' должен быть только на одной локации(в нашем случае на atp_1), иначе компилятор выдаст ошибку. Всё!... Сохраняем, прекомпилим.&lt;br /&gt;
&lt;br /&gt;
Запускаем '''Ai Compiler''', выбираем по очереди наши два уровня и просчитываем шаг 1, проверям сетку. Теперь создаем ''текстовый документ'' и вписываем туда&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_1&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем его как .bat и запускаем, в результате у каждого уровня &lt;br /&gt;
появится свой '''level.graph'''(граф и кросс-таблица).&lt;br /&gt;
&lt;br /&gt;
Создаем еще один текстовик, пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -m&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем как .bat и стартуем. Так мы собрали '''game.graph''' из '''level.graph''''ов.&lt;br /&gt;
&lt;br /&gt;
И наконец.. создаем 3ий &amp;quot;бантик&amp;quot; для сборки '''all.spawn'''!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
bins\ai\1.exe -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Компилим, заходим в '''gamedata\spawns\''', переименовываем получившийся спавн в '''all.spawn''' и запускаем через новую игру. Как видите, вы можете перемещаться с уровня на уровень, туда сюда без каких-либо проблем. &lt;br /&gt;
&lt;br /&gt;
Для сборки '''всех''' сингл уровней из оригинальной игры &lt;br /&gt;
используйте bat фаил написанный ''Zeed'''ом: [http://stalkerin.gameru.net/developer/mods/levelgraph_fullgame.bat fullgame.bat]&lt;br /&gt;
Если будут ошибки связанные с алайфом, жмем ''продолжить''. Потом выполняйте процедуры как написано выше, сборка '''game.graph''', а затем '''all.spawn'''.&lt;br /&gt;
''продолжение следует...''&lt;br /&gt;
&lt;br /&gt;
'''written by Loxotron'''&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-</id>
		<title>Компиляция -=inGame АИ=-</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-"/>
				<updated>2008-01-07T20:34:47Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, приступим... Раз вы здесь, значит есть на то причина:&lt;br /&gt;
*1)либо вы нуп, увидевший аи-компилер и решивший забацать чтото крутое&lt;br /&gt;
*2)вы не нуп, но всё забыли или почти всё&lt;br /&gt;
*3)вы супер-аццкий про решивший глянуть на весь этот детсад свысока )&lt;br /&gt;
*4)вы обычный модер, решивший расширить свои текущие познания. ;)&lt;br /&gt;
&lt;br /&gt;
==Основы==&lt;br /&gt;
Ну что ж... начнем с самого простого, скомпилим левел с аи, монстрами на&lt;br /&gt;
карте '''mp_atp'''. Открываем левел.. первое что надо сделать убрать все &lt;br /&gt;
'''rpoint'''(мультиплеерные точки спавна). Убрали? Отлично. Создаем&lt;br /&gt;
'''Spawn elements -&amp;gt; actor''' ну и по желанию в свойствах ('''Properties''')&lt;br /&gt;
в '''custom data''' прописываем ему предположим вот это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[spawn]&lt;br /&gt;
wpn_ak74&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тем самым при появлении игрока у него в руках уже будет калаш. Далее,&lt;br /&gt;
создаем монстра... любого по желанию, предположим кровососа и ставим на уровень.&lt;br /&gt;
Теперь дело за '''AI map''' - аи сетка, которая необходима для того, чтобы&lt;br /&gt;
нпс, монстры могли ориентироваться по уровню. Жмем Object и кликаем на  земле(тем самым мы ее &amp;quot;выбрали&amp;quot; для дальнейших манипуляций), затем '''AI Map''' -&amp;gt; '''Commands''' -&amp;gt; '''Make list from selected''', жмем '''add''' в разделе '''AI Map Nodes''' и '''add''' для добавления объектов слева вверху(чайник) и ставим на карте ноды в нужном вам порядке(достаточно одного), жмем '''Generate Full'''. Всё, аи-сетка сгенерированна. Теперь добавляем на левел обязательно! 1 graph point ('''Spawns-&amp;gt;ai-&amp;gt;graph point'''), в нем можно ничего не писать. Сохраняем уровень, билдим ('''build'''). &lt;br /&gt;
&lt;br /&gt;
Следующим шагом будет правка конфигов.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
'''game_maps_single.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[level_maps_single]&lt;br /&gt;
...&lt;br /&gt;
testing_ai &lt;br /&gt;
//название вашего уровня&lt;br /&gt;
&lt;br /&gt;
[testing_ai]&lt;br /&gt;
global_rect  = -6,1220.0, 248.0,1481.0&lt;br /&gt;
texture      = map\map_escape&lt;br /&gt;
//текстура при загрузке&lt;br /&gt;
bound_rect  = -502.148,-412.284,379.976,474,479&lt;br /&gt;
weathers  = default&lt;br /&gt;
//погода&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''game_levels.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[levels]&lt;br /&gt;
...&lt;br /&gt;
level190&lt;br /&gt;
//номер вашего уровня&lt;br /&gt;
&lt;br /&gt;
[level190]&lt;br /&gt;
name   = testing_ai&lt;br /&gt;
caption = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
offset  = 2000.0, 800.0, 1000.0&lt;br /&gt;
id   = 193&lt;br /&gt;
//индентифакционный номер, должен быть уникальным&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''game_graphs.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
018   = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь открываем AI Compiler, указываем папку с '''сдк'''(.../level_editor, либо если он объединен с игрой, путь до нее). Выбираем ваш уровень.&lt;br /&gt;
Проходим 1ую стадию чернового просчета аи карты('''шаг 1'''), либо если вы хотите долго ждать и просчитать укрытия для нпс то выбираем '''шаг 2'''.&lt;br /&gt;
Далее строим граф и кросс-таблицу уровня шаг 3, потом граф игры '''шаг 4''' и наконец фаил .spawn '''шаг 5'''. После всех стадий заходим в gamedata\spawns\ и переименовываем '''test.spawn''' в '''all.spawn'''&lt;br /&gt;
&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id	=pseudoscience|&lt;br /&gt;
align = left|&lt;br /&gt;
backgroundcolor	= #f9f9f9|&lt;br /&gt;
image	=Lamp.gif|&lt;br /&gt;
heading	= Важные моменты -- Loxotron|&lt;br /&gt;
message = При правке конфигов не забывайте указывать реально существующую там погоду и картинку загрузки, иначе вылетит; не пытайтесь запустить уровень через .bat фаилы подобные указанному ниже, тоже будет вылет)&lt;br /&gt;
&amp;lt;pre&amp;gt;bin\xr_3da.exe -ltx user.ltx -nointro -external -start server(level/single/newgame) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Углубленное изучение==&lt;br /&gt;
Далее мы рассмотрим как собирать несколько уровней и устанавливать между ними переходы.&lt;br /&gt;
&lt;br /&gt;
Итак у вас два уровня... на одном из них стоит '''actor'''. Начнем с него:&lt;br /&gt;
создаем '''ai-&amp;gt;level changer''', затем '''shape-&amp;gt;sphere''', с помощью '''scale''' увеличиваем до необходимых размеров, теперь переключаемся в режим редактирования '''spawn element''', выделяем '''level changer''' и жмем '''commands-&amp;gt;attach object''', а затем кликаем на сферу... Всё, сфера и level changer теперь связаны. Далее идем в закладку '''properties''', указываем название, например '''to_atp_2''', теперь нужно прописать в '''custom data''' вейпоинт для возврата, в случае отказа игрока от перемещения с локации на локации(обязательно). Вписываем вот это:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_1_way_if_reject&lt;br /&gt;
//в случае отказа от перемещения на вторую локу, возвращаемся назад&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В '''Level to change''' вписываем наименование уровня, куда мы хотим переместиться с этого левела, например '''atp_2'''. &lt;br /&gt;
В '''Level Point to change''' указываем точку, в которой игрок появится...&lt;br /&gt;
'''start_actor_01'''. С '''level changer''' на этом уровне всё, пошли далее.&lt;br /&gt;
Создаем '''graph point''' или используем пустой существующий если у вас есть.&lt;br /&gt;
В него вписываем '''start_actor_01''', этот поинт для того чтобы мы смогли со второго левела '''atp_2''' перейти на '''atp_1'''(первый). Создаем еще один '''graph point''' c названием '''exit_atp_1_01''', в разделе '''location''' выбираем, например &amp;quot;экскейп&amp;quot;. В '''Connection -&amp;gt; Level name''' указываем уровень, с которым будет связан '''atp_1''', то есть выбираем '''atp_2''', в '''Connection-&amp;gt;Point Name''' вписываем точку связи из второго уровня, которую мы создадим потом '''exit_atp_2_01'''. С первым уровнем всё...&lt;br /&gt;
&lt;br /&gt;
Для чего нам нужен graph point'ы ''exit_xxx''?&lt;br /&gt;
''exit_xxx'' представляет собой '''connection_point'''(точку связи) - для того, чтобы компилятор знал, какие уровни он соединяет, а если по другому: начальный граф уровня, от него потом считаются все ноды.&lt;br /&gt;
&lt;br /&gt;
'''start_actor_xx''' - точка появления актера после перехода.&lt;br /&gt;
&lt;br /&gt;
Помните мы вписали в '''custom data''' '''level changer''''а вейпоинт? Вот теперь нам придется его создать. Выбираем '''Way Points''' -&amp;gt; жмем &amp;quot;чайник&amp;quot; и стави 1 вейпоинт рядом с level changer(так мы создали начальную точку пути), теперь жмем '''point mode''' и ставим второй. Если они не соеденились стрелочкой, жмем '''create 1-link'''. Теперь у нас получился путь, который мы прописали в custom data '''level changer''', заходим в свойства и обзываем его также как и в '''custom data''', тоесть '''atp_1_way_if_reject'''. Всё с первым уровнем покончили.&lt;br /&gt;
&lt;br /&gt;
Итак, открываем второй уровень и поехали по новой...&lt;br /&gt;
&lt;br /&gt;
Создаем там путь из двух вейпоинтов по схеме выше и обзываем '''atp_2_way_if_reject'''. Создаем level changer называем его '''to_atp_1''',&lt;br /&gt;
в '''custom data''' пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_2_way_if_reject //название вэйпоинта&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В '''level to change''' указываем atp_1 //куда переходим с atp_2&lt;br /&gt;
В '''level point to change''' - '''start_actor_01'''(дада, тот который мы создали на первом левеле :) )&lt;br /&gt;
&lt;br /&gt;
Теперь здесь же на atp_2 создаем graph point с названием '''start_actor_01'''.&lt;br /&gt;
И еще один где вписываем следущие значения:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Name: exit_atp_2_01&lt;br /&gt;
Location: &amp;quot;свалка&amp;quot; //наименование локации&lt;br /&gt;
&lt;br /&gt;
Connection:&lt;br /&gt;
 Level name: atp_1 //первый уровень&lt;br /&gt;
 Point name: exit_atp_1_01 //связующая точка с первого уровня&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Незабудьте, что '''ACTOR''' должен быть только на одной локации(в нашем случае на atp_1), иначе компилятор выдаст ошибку. Всё!... Сохраняем, прекомпилим.&lt;br /&gt;
&lt;br /&gt;
Запускаем '''Ai Compiler''', выбираем по очереди наши два уровня и просчитываем шаг 1, проверям сетку. Теперь создаем ''текстовый документ'' и вписываем туда&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_1&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем его как .bat и запускаем, в результате у каждого уровня &lt;br /&gt;
появится свой '''level.graph'''(граф и кросс-таблица).&lt;br /&gt;
&lt;br /&gt;
Создаем еще один текстовик, пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -m&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем как .bat и стартуем. Так мы собрали '''game.graph''' из '''level.graph''''ов.&lt;br /&gt;
&lt;br /&gt;
И наконец.. создаем 3ий &amp;quot;бантик&amp;quot; для сборки '''all.spawn'''!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
bins\ai\1.exe -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Компилим, заходим в '''gamedata\spawns\''', переименовываем получившийся спавн в '''all.spawn''' и запускаем через новую игру. Как видите, вы можете перемещаться с уровня на уровень, туда сюда без каких-либо проблем. &lt;br /&gt;
&lt;br /&gt;
Для сборки '''всех''' сингл уровней из оригинальной игры &lt;br /&gt;
используйте bat фаил написанный ''Zeed'''ом: [http://stalkerin.gameru.net/developer/mods/levelgraph_fullgame.bat fullgame.bat]&lt;br /&gt;
Если будут ошибки связанные с алайфом, жмем ''продолжить''. Потом выполняйте процедуры как написано выше, сборка '''game.graph''', а затем '''all.spawn'''.&lt;br /&gt;
''продолжение следует...''&lt;br /&gt;
&lt;br /&gt;
'''written by Loxotron'''&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-</id>
		<title>Компиляция -=inGame АИ=-</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-"/>
				<updated>2008-01-07T20:33:46Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, приступим... Раз вы здесь, значит есть на то причина:&lt;br /&gt;
*1)либо вы нуп, увидевший аи-компилер и решивший забацать чтото крутое&lt;br /&gt;
*2)вы не нуп, но всё забыли или почти всё&lt;br /&gt;
*3)вы супер-аццкий про решивший глянуть на весь этот детсад свысока :)&lt;br /&gt;
&lt;br /&gt;
==Основы==&lt;br /&gt;
Ну что ж... начнем с самого простого, скомпилим левел с аи, монстрами на&lt;br /&gt;
карте '''mp_atp'''. Открываем левел.. первое что надо сделать убрать все &lt;br /&gt;
'''rpoint'''(мультиплеерные точки спавна). Убрали? Отлично. Создаем&lt;br /&gt;
'''Spawn elements -&amp;gt; actor''' ну и по желанию в свойствах ('''Properties''')&lt;br /&gt;
в '''custom data''' прописываем ему предположим вот это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[spawn]&lt;br /&gt;
wpn_ak74&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тем самым при появлении игрока у него в руках уже будет калаш. Далее,&lt;br /&gt;
создаем монстра... любого по желанию, предположим кровососа и ставим на уровень.&lt;br /&gt;
Теперь дело за '''AI map''' - аи сетка, которая необходима для того, чтобы&lt;br /&gt;
нпс, монстры могли ориентироваться по уровню. Жмем Object и кликаем на  земле(тем самым мы ее &amp;quot;выбрали&amp;quot; для дальнейших манипуляций), затем '''AI Map''' -&amp;gt; '''Commands''' -&amp;gt; '''Make list from selected''', жмем '''add''' в разделе '''AI Map Nodes''' и '''add''' для добавления объектов слева вверху(чайник) и ставим на карте ноды в нужном вам порядке(достаточно одного), жмем '''Generate Full'''. Всё, аи-сетка сгенерированна. Теперь добавляем на левел обязательно! 1 graph point ('''Spawns-&amp;gt;ai-&amp;gt;graph point'''), в нем можно ничего не писать. Сохраняем уровень, билдим ('''build'''). &lt;br /&gt;
&lt;br /&gt;
Следующим шагом будет правка конфигов.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
'''game_maps_single.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[level_maps_single]&lt;br /&gt;
...&lt;br /&gt;
testing_ai &lt;br /&gt;
//название вашего уровня&lt;br /&gt;
&lt;br /&gt;
[testing_ai]&lt;br /&gt;
global_rect  = -6,1220.0, 248.0,1481.0&lt;br /&gt;
texture      = map\map_escape&lt;br /&gt;
//текстура при загрузке&lt;br /&gt;
bound_rect  = -502.148,-412.284,379.976,474,479&lt;br /&gt;
weathers  = default&lt;br /&gt;
//погода&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''game_levels.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[levels]&lt;br /&gt;
...&lt;br /&gt;
level190&lt;br /&gt;
//номер вашего уровня&lt;br /&gt;
&lt;br /&gt;
[level190]&lt;br /&gt;
name   = testing_ai&lt;br /&gt;
caption = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
offset  = 2000.0, 800.0, 1000.0&lt;br /&gt;
id   = 193&lt;br /&gt;
//индентифакционный номер, должен быть уникальным&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''game_graphs.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
018   = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь открываем AI Compiler, указываем папку с '''сдк'''(.../level_editor, либо если он объединен с игрой, путь до нее). Выбираем ваш уровень.&lt;br /&gt;
Проходим 1ую стадию чернового просчета аи карты('''шаг 1'''), либо если вы хотите долго ждать и просчитать укрытия для нпс то выбираем '''шаг 2'''.&lt;br /&gt;
Далее строим граф и кросс-таблицу уровня шаг 3, потом граф игры '''шаг 4''' и наконец фаил .spawn '''шаг 5'''. После всех стадий заходим в gamedata\spawns\ и переименовываем '''test.spawn''' в '''all.spawn'''&lt;br /&gt;
&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id	=pseudoscience|&lt;br /&gt;
align = left|&lt;br /&gt;
backgroundcolor	= #f9f9f9|&lt;br /&gt;
image	=Lamp.gif|&lt;br /&gt;
heading	= Важные моменты -- Loxotron|&lt;br /&gt;
message = При правке конфигов не забывайте указывать реально существующую там погоду и картинку загрузки, иначе вылетит; не пытайтесь запустить уровень через .bat фаилы подобные указанному ниже, тоже будет вылет)&lt;br /&gt;
&amp;lt;pre&amp;gt;bin\xr_3da.exe -ltx user.ltx -nointro -external -start server(level/single/newgame) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Углубленное изучение==&lt;br /&gt;
Далее мы рассмотрим как собирать несколько уровней и устанавливать между ними переходы.&lt;br /&gt;
&lt;br /&gt;
Итак у вас два уровня... на одном из них стоит '''actor'''. Начнем с него:&lt;br /&gt;
создаем '''ai-&amp;gt;level changer''', затем '''shape-&amp;gt;sphere''', с помощью '''scale''' увеличиваем до необходимых размеров, теперь переключаемся в режим редактирования '''spawn element''', выделяем '''level changer''' и жмем '''commands-&amp;gt;attach object''', а затем кликаем на сферу... Всё, сфера и level changer теперь связаны. Далее идем в закладку '''properties''', указываем название, например '''to_atp_2''', теперь нужно прописать в '''custom data''' вейпоинт для возврата, в случае отказа игрока от перемещения с локации на локации(обязательно). Вписываем вот это:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_1_way_if_reject&lt;br /&gt;
//в случае отказа от перемещения на вторую локу, возвращаемся назад&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В '''Level to change''' вписываем наименование уровня, куда мы хотим переместиться с этого левела, например '''atp_2'''. &lt;br /&gt;
В '''Level Point to change''' указываем точку, в которой игрок появится...&lt;br /&gt;
'''start_actor_01'''. С '''level changer''' на этом уровне всё, пошли далее.&lt;br /&gt;
Создаем '''graph point''' или используем пустой существующий если у вас есть.&lt;br /&gt;
В него вписываем '''start_actor_01''', этот поинт для того чтобы мы смогли со второго левела '''atp_2''' перейти на '''atp_1'''(первый). Создаем еще один '''graph point''' c названием '''exit_atp_1_01''', в разделе '''location''' выбираем, например &amp;quot;экскейп&amp;quot;. В '''Connection -&amp;gt; Level name''' указываем уровень, с которым будет связан '''atp_1''', то есть выбираем '''atp_2''', в '''Connection-&amp;gt;Point Name''' вписываем точку связи из второго уровня, которую мы создадим потом '''exit_atp_2_01'''. С первым уровнем всё...&lt;br /&gt;
&lt;br /&gt;
Для чего нам нужен graph point'ы ''exit_xxx''?&lt;br /&gt;
''exit_xxx'' представляет собой '''connection_point'''(точку связи) - для того, чтобы компилятор знал, какие уровни он соединяет, а если по другому: начальный граф уровня, от него потом считаются все ноды.&lt;br /&gt;
&lt;br /&gt;
'''start_actor_xx''' - точка появления актера после перехода.&lt;br /&gt;
&lt;br /&gt;
Помните мы вписали в '''custom data''' '''level changer''''а вейпоинт? Вот теперь нам придется его создать. Выбираем '''Way Points''' -&amp;gt; жмем &amp;quot;чайник&amp;quot; и стави 1 вейпоинт рядом с level changer(так мы создали начальную точку пути), теперь жмем '''point mode''' и ставим второй. Если они не соеденились стрелочкой, жмем '''create 1-link'''. Теперь у нас получился путь, который мы прописали в custom data '''level changer''', заходим в свойства и обзываем его также как и в '''custom data''', тоесть '''atp_1_way_if_reject'''. Всё с первым уровнем покончили.&lt;br /&gt;
&lt;br /&gt;
Итак, открываем второй уровень и поехали по новой...&lt;br /&gt;
&lt;br /&gt;
Создаем там путь из двух вейпоинтов по схеме выше и обзываем '''atp_2_way_if_reject'''. Создаем level changer называем его '''to_atp_1''',&lt;br /&gt;
в '''custom data''' пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_2_way_if_reject //название вэйпоинта&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В '''level to change''' указываем atp_1 //куда переходим с atp_2&lt;br /&gt;
В '''level point to change''' - '''start_actor_01'''(дада, тот который мы создали на первом левеле :) )&lt;br /&gt;
&lt;br /&gt;
Теперь здесь же на atp_2 создаем graph point с названием '''start_actor_01'''.&lt;br /&gt;
И еще один где вписываем следущие значения:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Name: exit_atp_2_01&lt;br /&gt;
Location: &amp;quot;свалка&amp;quot; //наименование локации&lt;br /&gt;
&lt;br /&gt;
Connection:&lt;br /&gt;
 Level name: atp_1 //первый уровень&lt;br /&gt;
 Point name: exit_atp_1_01 //связующая точка с первого уровня&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Незабудьте, что '''ACTOR''' должен быть только на одной локации(в нашем случае на atp_1), иначе компилятор выдаст ошибку. Всё!... Сохраняем, прекомпилим.&lt;br /&gt;
&lt;br /&gt;
Запускаем '''Ai Compiler''', выбираем по очереди наши два уровня и просчитываем шаг 1, проверям сетку. Теперь создаем ''текстовый документ'' и вписываем туда&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_1&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем его как .bat и запускаем, в результате у каждого уровня &lt;br /&gt;
появится свой '''level.graph'''(граф и кросс-таблица).&lt;br /&gt;
&lt;br /&gt;
Создаем еще один текстовик, пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -m&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем как .bat и стартуем. Так мы собрали '''game.graph''' из '''level.graph''''ов.&lt;br /&gt;
&lt;br /&gt;
И наконец.. создаем 3ий &amp;quot;бантик&amp;quot; для сборки '''all.spawn'''!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
bins\ai\1.exe -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Компилим, заходим в '''gamedata\spawns\''', переименовываем получившийся спавн в '''all.spawn''' и запускаем через новую игру. Как видите, вы можете перемещаться с уровня на уровень, туда сюда без каких-либо проблем. &lt;br /&gt;
&lt;br /&gt;
Для сборки '''всех''' сингл уровней из оригинальной игры &lt;br /&gt;
используйте bat фаил написанный ''Zeed'''ом: [http://stalkerin.gameru.net/developer/mods/levelgraph_fullgame.bat fullgame.bat]&lt;br /&gt;
Если будут ошибки связанные с алайфом, жмем ''продолжить''. Потом выполняйте процедуры как написано выше, сборка '''game.graph''', а затем '''all.spawn'''.&lt;br /&gt;
''продолжение следует...''&lt;br /&gt;
&lt;br /&gt;
'''written by Loxotron'''&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-</id>
		<title>Компиляция -=inGame АИ=-</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-"/>
				<updated>2008-01-07T20:29:56Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, приступим... Раз вы здесь, значит есть на то причина:&lt;br /&gt;
*1)либо вы нуп, увидевший аи-компилер и решивший забацать чтото крутое&lt;br /&gt;
*2)вы не нуп, но всё забыли или почти всё&lt;br /&gt;
*3)вы супер-аццкий про решивший глянуть на весь этот детсад свысока :)&lt;br /&gt;
&lt;br /&gt;
Ну чтож... начнем с самого простого, скомпилим левел с аи, монстрами на&lt;br /&gt;
карте mp_atp. Открываем левел.. первое что надо сделать убрать все &lt;br /&gt;
'''rpoint'''(мультиплеерные точки спавна). Убрали? Отлично. Создаем&lt;br /&gt;
'''Spawn elements -&amp;gt; actor''' ну и по желанию в свойствах ('''Properties''')&lt;br /&gt;
в '''custom data''' прописываем ему предположим вот это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[spawn]&lt;br /&gt;
wpn_ak74&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тем самым при появлении игрока у него в руках уже будет калаш. Далее,&lt;br /&gt;
создаем монстра... любого по желанию, предположим кровососа и ставим на уровень.&lt;br /&gt;
Теперь дело за '''AI map''' - аи сетка, которая необходима для того, чтобы&lt;br /&gt;
нпс, монстры могли ориентироваться по уровню. Жмем Object и кликаем на  земле(тем самым мы ее &amp;quot;выбрали&amp;quot; для дальнейших манипуляций), затем '''AI Map''' -&amp;gt; '''Commands''' -&amp;gt; '''Make list from selected''', жмем '''add''' в разделе AI Map Nodes и add для добавления объектов слева вверху(чайник) и ставим на карте ноды в нужном вам порядке(достаточно одного), жмем '''Generate Full'''. &lt;br /&gt;
Всё, аи-сетка сгенерированна. Теперь добавляем на левел обязательно! 1 graph point ('''Spawns-&amp;gt;ai-&amp;gt;graph point'''), в нем можно ничего не писать. Сохраняем уровень, билдим ('''build'''). &lt;br /&gt;
&lt;br /&gt;
Следующим шагом будет правка конфигов.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
'''game_maps_single.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[level_maps_single]&lt;br /&gt;
...&lt;br /&gt;
testing_ai &lt;br /&gt;
//название вашего уровня&lt;br /&gt;
&lt;br /&gt;
[testing_ai]&lt;br /&gt;
global_rect  = -6,1220.0, 248.0,1481.0&lt;br /&gt;
texture      = map\map_escape&lt;br /&gt;
//текстура при загрузке&lt;br /&gt;
bound_rect  = -502.148,-412.284,379.976,474,479&lt;br /&gt;
weathers  = default&lt;br /&gt;
//погода&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''game_levels.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[levels]&lt;br /&gt;
...&lt;br /&gt;
level190&lt;br /&gt;
//номер вашего уровня&lt;br /&gt;
&lt;br /&gt;
[level190]&lt;br /&gt;
name   = testing_ai&lt;br /&gt;
caption = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
offset  = 2000.0, 800.0, 1000.0&lt;br /&gt;
id   = 193&lt;br /&gt;
//индентифакционный номер, должен быть уникальным&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''game_graphs.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
018   = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь открываем AI Compiler, указываем папку с '''сдк'''(.../level_editor, либо если он объединен с игрой, путь до нее). Выбираем ваш уровень.&lt;br /&gt;
Проходим 1ую стадию чернового просчета аи карты('''шаг 1'''), либо если вы хотите долго ждать и просчитать укрытия для нпс то выбираем '''шаг 2'''.&lt;br /&gt;
Далее строим граф и кросс-таблицу уровня шаг 3, потом граф игры '''шаг 4''' и наконец фаил .spawn '''шаг 5'''. После всех стадий заходим в gamedata\spawns\ и переименовываем '''test.spawn''' в '''all.spawn'''&lt;br /&gt;
&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id	=pseudoscience|&lt;br /&gt;
align = left|&lt;br /&gt;
backgroundcolor	= #f9f9f9|&lt;br /&gt;
image	=Lamp.gif|&lt;br /&gt;
heading	= Важные моменты -- Loxotron|&lt;br /&gt;
message = При правке конфигов не забывайте указывать реально существующую там погоду и картинку загрузки, иначе вылетит; не пытайтесь запустить уровень через .bat фаилы подобные указанному ниже, тоже будет вылет)&lt;br /&gt;
&amp;lt;pre&amp;gt;bin\xr_3da.exe -ltx user.ltx -nointro -external -start server(level/single/newgame) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее мы рассмотрим как собирать несколько уровней и устанавливать между ними переходы.&lt;br /&gt;
&lt;br /&gt;
Итак у вас два уровня... на одном из них стоит '''actor'''. Начнем с него:&lt;br /&gt;
создаем '''ai-&amp;gt;level changer''', затем '''shape-&amp;gt;sphere''', с помощью '''scale''' увеличиваем до необходимых размеров, теперь переключаемся в режим редактирования '''spawn element''', выделяем '''level changer''' и жмем '''commands-&amp;gt;attach object''', а затем кликаем на сферу... Всё, сфера и level changer теперь связаны. Далее идем в закладку '''properties''', указываем название, например '''to_atp_2''', теперь нужно прописать в '''custom data''' вейпоинт для возврата, в случае отказа игрока от перемещения с локации на локации(обязательно). Вписываем вот это:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_1_way_if_reject&lt;br /&gt;
//в случае отказа от перемещения на вторую локу, возвращаемся назад&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В '''Level to change''' вписываем наименование уровня, куда мы хотим переместиться с этого левела, например '''atp_2'''. &lt;br /&gt;
В '''Level Point to change''' указываем точку, в которой игрок появится...&lt;br /&gt;
'''start_actor_01'''. С '''level changer''' на этом уровне всё, пошли далее.&lt;br /&gt;
Создаем '''graph point''' или используем пустой существующий если у вас есть.&lt;br /&gt;
В него вписываем '''start_actor_01''', этот поинт для того чтобы мы смогли со второго левела '''atp_2''' перейти на '''atp_1'''(первый). Создаем еще один '''graph point''' c названием '''exit_atp_1_01''', в разделе '''location''' выбираем, например &amp;quot;экскейп&amp;quot;. В '''Connection -&amp;gt; Level name''' указываем уровень, с которым будет связан '''atp_1''', то есть выбираем '''atp_2''', в '''Connection-&amp;gt;Point Name''' вписываем точку связи из второго уровня, которую мы создадим потом '''exit_atp_2_01'''. С первым уровнем всё...&lt;br /&gt;
&lt;br /&gt;
Для чего нам нужен graph point'ы ''exit_xxx''?&lt;br /&gt;
''exit_xxx'' представляет собой '''connection_point'''(точку связи) - для того, чтобы компилятор знал, какие уровни он соединяет, а если по другому: начальный граф уровня, от него потом считаются все ноды.&lt;br /&gt;
&lt;br /&gt;
'''start_actor_xx''' - точка появления актера после перехода.&lt;br /&gt;
&lt;br /&gt;
Помните мы вписали в '''custom data''' '''level changer''''а вейпоинт? Вот теперь нам придется его создать. Выбираем '''Way Points''' -&amp;gt; жмем &amp;quot;чайник&amp;quot; и стави 1 вейпоинт рядом с level changer(так мы создали начальную точку пути), теперь жмем '''point mode''' и ставим второй. Если они не соеденились стрелочкой, жмем '''create 1-link'''. Теперь у нас получился путь, который мы прописали в custom data '''level changer''', заходим в свойства и обзываем его также как и в '''custom data''', тоесть '''atp_1_way_if_reject'''. Всё с первым уровнем покончили.&lt;br /&gt;
&lt;br /&gt;
Итак, открываем второй уровень и поехали по новой...&lt;br /&gt;
&lt;br /&gt;
Создаем там путь из двух вейпоинтов по схеме выше и обзываем '''atp_2_way_if_reject'''. Создаем level changer называем его '''to_atp_1''',&lt;br /&gt;
в '''custom data''' пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_2_way_if_reject //название вэйпоинта&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В '''level to change''' указываем atp_1 //куда переходим с atp_2&lt;br /&gt;
В '''level point to change''' - '''start_actor_01'''(дада, тот который мы создали на первом левеле :) )&lt;br /&gt;
&lt;br /&gt;
Теперь здесь же на atp_2 создаем graph point с названием '''start_actor_01'''.&lt;br /&gt;
И еще один где вписываем следущие значения:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Name: exit_atp_2_01&lt;br /&gt;
Location: &amp;quot;свалка&amp;quot; //наименование локации&lt;br /&gt;
&lt;br /&gt;
Connection:&lt;br /&gt;
 Level name: atp_1 //первый уровень&lt;br /&gt;
 Point name: exit_atp_1_01 //связующая точка с первого уровня&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Незабудьте, что '''ACTOR''' должен быть только на одной локации(в нашем случае на atp_1), иначе компилятор выдаст ошибку. Всё!... Сохраняем, прекомпилим.&lt;br /&gt;
&lt;br /&gt;
Запускаем '''Ai Compiler''', выбираем по очереди наши два уровня и просчитываем шаг 1, проверям сетку. Теперь создаем ''текстовый документ'' и вписываем туда&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_1&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем его как .bat и запускаем, в результате у каждого уровня &lt;br /&gt;
появится свой '''level.graph'''(граф и кросс-таблица).&lt;br /&gt;
&lt;br /&gt;
Создаем еще один текстовик, пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -m&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем как .bat и стартуем. Так мы собрали '''game.graph''' из '''level.graph''''ов.&lt;br /&gt;
&lt;br /&gt;
И наконец.. создаем 3ий &amp;quot;бантик&amp;quot; для сборки '''all.spawn'''!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
bins\ai\1.exe -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Компилим, заходим в '''gamedata\spawns\''', переименовываем получившийся спавн в '''all.spawn''' и запускаем через новую игру. Как видите, вы можете перемещаться с уровня на уровень, туда сюда без каких-либо проблем. &lt;br /&gt;
&lt;br /&gt;
Для сборки '''всех''' сингл уровней из оригинальной игры &lt;br /&gt;
используйте bat фаил написанный ''Zeed'''ом: [http://stalkerin.gameru.net/developer/mods/levelgraph_fullgame.bat fullgame.bat]&lt;br /&gt;
Если будут ошибки связанные с алайфом, жмем ''продолжить''. Потом выполняйте процедуры как написано выше, сборка '''game.graph''', а затем '''all.spawn'''.&lt;br /&gt;
''продолжение следует...''&lt;br /&gt;
&lt;br /&gt;
'''written by Loxotron'''&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-</id>
		<title>Компиляция -=inGame АИ=-</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-"/>
				<updated>2008-01-07T20:22:18Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, приступим... Раз вы здесь, значит есть на то причина:&lt;br /&gt;
*1)либо вы нуп, увидевший аи-компилер и решивший забацать чтото крутое&lt;br /&gt;
*2)вы не нуп, но всё забыли или почти всё&lt;br /&gt;
*3)вы супер-аццкий про решивший глянуть на весь этот детсад свысока :)&lt;br /&gt;
&lt;br /&gt;
Ну чтож... начнем с самого простого, скомпилим левел с аи, монстрами на&lt;br /&gt;
карте mp_atp. Открываем левел.. первое что надо сделать убрать все &lt;br /&gt;
'''rpoint'''(мультиплеерные точки спавна). Убрали? Отлично. Создаем&lt;br /&gt;
'''Spawn elements -&amp;gt; actor''' ну и пожеланию в свойствах ('''Properties''')&lt;br /&gt;
в '''custom data''' прописываем ему предположим вот это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[spawn]&lt;br /&gt;
wpn_ak74&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тем самым при появлении игрока у него в руках уже будет калаш. Далее,&lt;br /&gt;
создаем монстра... любого по желанию, предположим кровососа и ставим на уровень.&lt;br /&gt;
Теперь дело за '''AI map''' - аи сетка, которая необходима для того, чтобы&lt;br /&gt;
нпс, монстры могли ориентироваться по уровню. Жмем Object и кликаем на  земле(тем самым мы ее &amp;quot;выбрали&amp;quot; для дальнейших манипуляций), затем '''AI Map''' -&amp;gt; '''Commands''' -&amp;gt; '''Make list from selected''', жмем '''add''' в разделе AI Map Nodes и add для добавления объектов слева вверху(чайник) и ставим на карте ноды в нужном вам порядке(достаточно одного), жмем '''Generate Full'''. &lt;br /&gt;
Всё, аи-сетка сгенерированна. Теперь добавляем на левел обязательно! 1 graph point ('''Spawns-&amp;gt;ai-&amp;gt;graph point'''), в нем можно ничего не писать. Сохраняем уровень, билдим ('''build'''). &lt;br /&gt;
&lt;br /&gt;
Следующим шагом будет правка конфигов.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
'''game_maps_single.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[level_maps_single]&lt;br /&gt;
...&lt;br /&gt;
testing_ai &lt;br /&gt;
//название вашего уровня&lt;br /&gt;
&lt;br /&gt;
[testing_ai]&lt;br /&gt;
global_rect  = -6,1220.0, 248.0,1481.0&lt;br /&gt;
texture      = map\map_escape&lt;br /&gt;
//текстура при загрузке&lt;br /&gt;
bound_rect  = -502.148,-412.284,379.976,474,479&lt;br /&gt;
weathers  = default&lt;br /&gt;
//погода&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''game_levels.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[levels]&lt;br /&gt;
...&lt;br /&gt;
level190&lt;br /&gt;
//номер вашего уровня&lt;br /&gt;
&lt;br /&gt;
[level190]&lt;br /&gt;
name   = testing_ai&lt;br /&gt;
caption = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
offset  = 2000.0, 800.0, 1000.0&lt;br /&gt;
id   = 193&lt;br /&gt;
//индентифакционный номер, должен быть уникальным&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''game_graphs.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
018   = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь открываем AI Compiler, указываем папку с '''сдк'''(.../level_editor, либо если он объединен с игрой, путь до нее). Выбираем ваш уровень.&lt;br /&gt;
Проходим 1ую стадию чернового просчета аи карты('''шаг 1'''), либо если вы хотите долго ждать и просчитать укрытия для нпс то выбираем '''шаг 2'''.&lt;br /&gt;
Далее строим граф и кросс-таблицу уровня шаг 3, потом граф игры '''шаг 4''' и наконец фаил .spawn '''шаг 5'''. После всех стадий заходим в gamedata\spawns\ и переименовываем '''test.spawn''' в '''all.spawn'''&lt;br /&gt;
&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id	=pseudoscience|&lt;br /&gt;
align = left|&lt;br /&gt;
backgroundcolor	= #f9f9f9|&lt;br /&gt;
image	=Lamp.gif|&lt;br /&gt;
heading	= Важные моменты -- Loxotron|&lt;br /&gt;
message = При правке конфигов не забывайте указывать реально существующую там погоду и картинку загрузки, иначе вылетит; не пытайтесь запустить уровень через .bat фаилы подобные указанному ниже, тоже будет вылет)&lt;br /&gt;
&amp;lt;pre&amp;gt;bin\xr_3da.exe -ltx user.ltx -nointro -external -start server(level/single/newgame) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее мы рассмотрим как собирать несколько уровней и устанавливать между ними переходы.&lt;br /&gt;
&lt;br /&gt;
Итак у вас два уровня... на одном из них стоит '''actor'''. Начнем с него:&lt;br /&gt;
создаем '''ai-&amp;gt;level changer''', затем '''shape-&amp;gt;sphere''', с помощью '''scale''' увеличиваем до необходимых размеров, теперь переключаемся в режим редактирования '''spawn element''', выделяем '''level changer''' и жмем '''commands-&amp;gt;attach object''', а затем кликаем на сферу... Всё, сфера и level changer теперь связаны. Далее идем в закладку '''properties''', указываем название, например '''to_atp_2''', теперь нужно прописать в '''custom data''' вейпоинт для возврата, в случае отказа игрока от перемещения с локации на локации(обязательно). Вписываем вот это:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_1_way_if_reject&lt;br /&gt;
//в случае отказа от перемещения на вторую локу, возвращаемся назад&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В '''Level to change''' вписываем наименование уровня, куда мы хотим переместиться с этого левела, например '''atp_2'''. &lt;br /&gt;
В '''Level Point to change''' указываем точку, в которой игрок появится...&lt;br /&gt;
'''start_actor_01'''. С '''level changer''' на этом уровне всё, пошли далее.&lt;br /&gt;
Создаем '''graph point''' или используем пустой существующий если у вас есть.&lt;br /&gt;
В него вписываем '''start_actor_01''', этот поинт для того чтобы мы смогли со второго левела '''atp_2''' перейти на '''atp_1'''(первый). Создаем еще один '''graph point''' c названием '''exit_atp_1_01''', в разделе '''location''' выбираем, например &amp;quot;экскейп&amp;quot;. В '''Connection -&amp;gt; Level name''' указываем уровень, с которым будет связан '''atp_1''', то есть выбираем '''atp_2''', в '''Connection-&amp;gt;Point Name''' вписываем точку связи из второго уровня, которую мы создадим потом '''exit_atp_2_01'''. С первым уровнем всё...&lt;br /&gt;
&lt;br /&gt;
Для чего нам нужен graph point'ы ''exit_xxx''?&lt;br /&gt;
''exit_xxx'' представляет собой '''connection_point'''(точку связи) - для того, чтобы компилятор знал, какие уровни он соединяет, а если по другому: начальный граф уровня, от него потом считаются все ноды.&lt;br /&gt;
&lt;br /&gt;
'''start_actor_xx''' - точка появления актера после перехода.&lt;br /&gt;
&lt;br /&gt;
Помните мы вписали в '''custom data''' '''level changer''''а вейпоинт? Вот теперь нам придется его создать. Выбираем '''Way Points''' -&amp;gt; жмем &amp;quot;чайник&amp;quot; и стави 1 вейпоинт рядом с level changer(так мы создали начальную точку пути), теперь жмем '''point mode''' и ставим второй. Если они не соеденились стрелочкой, жмем '''create 1-link'''. Теперь у нас получился путь, который мы прописали в custom data '''level changer''', заходим в свойства и обзываем его также как и в '''custom data''', тоесть '''atp_1_way_if_reject'''. Всё с первым уровнем покончили.&lt;br /&gt;
&lt;br /&gt;
Итак, открываем второй уровень и поехали по новой...&lt;br /&gt;
&lt;br /&gt;
Создаем там путь из двух вейпоинтов по схеме выше и обзываем '''atp_2_way_if_reject'''. Создаем level changer называем его '''to_atp_1''',&lt;br /&gt;
в '''custom data''' пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_2_way_if_reject //название вэйпоинта&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В '''level to change''' указываем atp_1 //куда переходим с atp_2&lt;br /&gt;
В '''level point to change''' - '''start_actor_01'''(дада, тот который мы создали на первом левеле :) )&lt;br /&gt;
&lt;br /&gt;
Теперь здесь же на atp_2 создаем graph point с названием '''start_actor_01'''.&lt;br /&gt;
И еще один где вписываем следущие значения:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Name: exit_atp_2_01&lt;br /&gt;
Location: &amp;quot;свалка&amp;quot; //наименование локации&lt;br /&gt;
&lt;br /&gt;
Connection:&lt;br /&gt;
 Level name: atp_1 //первый уровень&lt;br /&gt;
 Point name: exit_atp_1_01 //связующая точка с первого уровня&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Незабудьте, что '''ACTOR''' должен быть только на одной локации(в нашем случае на atp_1), иначе компилятор выдаст ошибку. Всё!... Сохраняем, прекомпилим.&lt;br /&gt;
&lt;br /&gt;
Запускаем '''Ai Compiler''', выбираем по очереди наши два уровня и просчитываем шаг 1, проверям сетку. Теперь создаем ''текстовый документ'' и вписываем туда&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_1&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем его как .bat и запускаем, в результате у каждого уровня &lt;br /&gt;
появится свой '''level.graph'''(граф и кросс-таблица).&lt;br /&gt;
&lt;br /&gt;
Создаем еще один текстовик, пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -m&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем как .bat и стартуем. Так мы собрали '''game.graph''' из '''level.graph''''ов.&lt;br /&gt;
&lt;br /&gt;
И наконец.. создаем 3ий &amp;quot;бантик&amp;quot; для сборки '''all.spawn'''!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
bins\ai\1.exe -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Компилим, заходим в '''gamedata\spawns\''', переименовываем получившийся спавн в '''all.spawn''' и запускаем через новую игру. Как видите, вы можете перемещаться с уровня на уровень, туда сюда без каких-либо проблем. &lt;br /&gt;
&lt;br /&gt;
Для сборки '''всех''' сингл уровней из оригинальной игры &lt;br /&gt;
используйте bat фаил написанный ''Zeed'''ом: [http://stalkerin.gameru.net/developer/mods/levelgraph_fullgame.bat fullgame.bat]&lt;br /&gt;
Если будут ошибки связанные с алайфом, жмем ''продолжить''. Потом выполняйте процедуры как написано выше, сборка '''game.graph''', а затем '''all.spawn'''.&lt;br /&gt;
''продолжение следует...''&lt;br /&gt;
&lt;br /&gt;
'''written by Loxotron'''&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-</id>
		<title>Компиляция -=inGame АИ=-</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-"/>
				<updated>2008-01-07T20:22:03Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, приступим... Раз вы здесь, значит есть на то причина:&lt;br /&gt;
*1)либо вы нуп, увидевший аи-компилер и решивший забацать чтото крутое&lt;br /&gt;
*2)вы не нуп, но всё забыли или почти всё&lt;br /&gt;
*3)вы супер-аццкий про решивший глянуть на весь этот детсад свысока :)&lt;br /&gt;
&lt;br /&gt;
Ну чтож... начнем с самого простого, скомпилим левел с аи, монстрами на&lt;br /&gt;
карте mp_atp. Открываем левел.. первое что надо сделать убрать все &lt;br /&gt;
'''rpoint'''(мультиплеерные точки спавна). Убрали? Отлично. Создаем&lt;br /&gt;
'''Spawn elements -&amp;gt; actor''' ну и пожеланию в свойствах ('''Properties''')&lt;br /&gt;
в '''custom data''' прописываем ему предположим вот это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[spawn]&lt;br /&gt;
wpn_ak74&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тем самым при появлении игрока у него в руках уже будет калаш. Далее,&lt;br /&gt;
создаем монстра... любого по желанию, предположим кровососа и ставим на уровень.&lt;br /&gt;
Теперь дело за '''AI map''' - аи сетка, которая необходима для того, чтобы&lt;br /&gt;
нпс, монстры могли ориентироваться по уровню. Жмем Object и кликаем на  земле(тем самым мы ее &amp;quot;выбрали&amp;quot; для дальнейших манипуляций), затем '''AI Map''' -&amp;gt; '''Commands''' -&amp;gt; '''Make list from selected''', жмем '''add''' в разделе AI Map Nodes и add для добавления объектов слева вверху(чайник) и ставим на карте ноды в нужном вам порядке(достаточно одного), жмем '''Generate Full'''. &lt;br /&gt;
Всё, аи-сетка сгенерированна. Теперь добавляем на левел обязательно! 1 graph point ('''Spawns-&amp;gt;ai-&amp;gt;graph point'''), в нем можно ничего не писать. Сохраняем уровень, билдим ('''build'''). &lt;br /&gt;
&lt;br /&gt;
Следующим шагом будет правка конфигов.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
'''game_maps_single.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[level_maps_single]&lt;br /&gt;
...&lt;br /&gt;
testing_ai &lt;br /&gt;
//название вашего уровня&lt;br /&gt;
&lt;br /&gt;
[testing_ai]&lt;br /&gt;
global_rect  = -6,1220.0, 248.0,1481.0&lt;br /&gt;
texture      = map\map_escape&lt;br /&gt;
//текстура при загрузке&lt;br /&gt;
bound_rect  = -502.148,-412.284,379.976,474,479&lt;br /&gt;
weathers  = default&lt;br /&gt;
//погода&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''game_levels.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[levels]&lt;br /&gt;
...&lt;br /&gt;
level190&lt;br /&gt;
//номер вашего уровня&lt;br /&gt;
&lt;br /&gt;
[level190]&lt;br /&gt;
name   = testing_ai&lt;br /&gt;
caption = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
offset  = 2000.0, 800.0, 1000.0&lt;br /&gt;
id   = 193&lt;br /&gt;
//индентифакционный номер, должен быть уникальным&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''game_graphs.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
018   = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь открываем AI Compiler, указываем папку с '''сдк'''(.../level_editor, либо если он объединен с игрой, путь до нее). Выбираем ваш уровень.&lt;br /&gt;
Проходим 1ую стадию чернового просчета аи карты('''шаг 1'''), либо если вы хотите долго ждать и просчитать укрытия для нпс то выбираем '''шаг 2'''.&lt;br /&gt;
Далее строим граф и кросс-таблицу уровня шаг 3, потом граф игры '''шаг 4''' и наконец фаил .spawn '''шаг 5'''. После всех стадий заходим в gamedata\spawns\ и переименовываем '''test.spawn''' в '''all.spawn'''&lt;br /&gt;
&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id	=pseudoscience|&lt;br /&gt;
align = left|&lt;br /&gt;
backgroundcolor	= #f9f9f9|&lt;br /&gt;
image	=Lamp.gif|&lt;br /&gt;
heading	= Важные моменты -- Loxotron|&lt;br /&gt;
message = При правке конфигов не забывайте указывать реально существующую там погоду и картинку загрузки, иначе вылетит; не пытайтесь запустить уровень через .bat фаилы подобные указанному ниже, тоже будет вылет)&lt;br /&gt;
&amp;lt;pre&amp;gt;bin\xr_3da.exe -ltx user.ltx -nointro -external -start server(level/single/newgame) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее мы рассмотрим как собирать несколько уровней и устанавливать между ними переходы.&lt;br /&gt;
&lt;br /&gt;
Итак у вас два уровня... на одном из них стоит '''actor'''. Начнем с него:&lt;br /&gt;
создаем '''ai-&amp;gt;level changer''', затем '''shape-&amp;gt;sphere''', с помощью '''scale''' увеличиваем до необходимых размеров, теперь переключаемся в режим редактирования '''spawn element''', выделяем '''level changer''' и жмем '''commands-&amp;gt;attach object''', а затем кликаем на сферу... Всё, сфера и level changer теперь связаны. Далее идем в закладку '''properties''', указываем название, например '''to_atp_2''', теперь нужно прописать в '''custom data''' вейпоинт для возврата, в случае отказа игрока от перемещения с локации на локации(обязательно). Вписываем вот это:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_1_way_if_reject&lt;br /&gt;
//в случае отказа от перемещения на вторую локу, возвращаемся назад&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В '''Level to change''' вписываем наименование уровня, куда мы хотим переместиться с этого левела, например '''atp_2'''. &lt;br /&gt;
В '''Level Point to change''' указываем точку, в которой игрок появится...&lt;br /&gt;
'''start_actor_01'''. С '''level changer''' на этом уровне всё, пошли далее.&lt;br /&gt;
Создаем '''graph point''' или используем пустой существующий если у вас есть.&lt;br /&gt;
В него вписываем '''start_actor_01''', этот поинт для того чтобы мы смогли со второго левела '''atp_2''' перейти на '''atp_1'''(первый). Создаем еще один '''graph point''' c названием '''exit_atp_1_01''', в разделе '''location''' выбираем, например &amp;quot;экскейп&amp;quot;. В '''Connection -&amp;gt; Level name''' указываем уровень, с которым будет связан '''atp_1''', то есть выбираем '''atp_2''', в '''Connection-&amp;gt;Point Name''' вписываем точку связи из второго уровня, которую мы создадим потом '''exit_atp_2_01'''. С первым уровнем всё...&lt;br /&gt;
&lt;br /&gt;
Для чего нам нужен graph point'ы ''exit_xxx''?&lt;br /&gt;
''exit_xxx'' представляет собой '''connection_point'''(точку связи) - для того, чтобы компилятор знал, какие уровни он соединяет, а если по другому: начальный граф уровня, от него потом считаются все ноды.&lt;br /&gt;
&lt;br /&gt;
'''start_actor_xx''' - точка появления актера после перехода.&lt;br /&gt;
&lt;br /&gt;
Помните мы вписали в '''custom data''' '''level changer''''а вейпоинт? Вот теперь нам придется его создать. Выбираем '''Way Points''' -&amp;gt; жмем &amp;quot;чайник&amp;quot; и стави 1 вейпоинт рядом с level changer(так мы создали начальную точку пути), теперь жмем '''point mode''' и ставим второй. Если они не соеденились стрелочкой, жмем '''create 1-link'''. Теперь у нас получился путь, который мы прописали в custom data '''level changer''', заходим в свойства и обзываем его также как и в '''custom data''', тоесть '''atp_1_way_if_reject'''. Всё с первым уровнем покончили.&lt;br /&gt;
&lt;br /&gt;
Итак, открываем второй уровень и поехали по новой...&lt;br /&gt;
&lt;br /&gt;
Создаем там путь из двух вейпоинтов по схеме выше и обзываем '''atp_2_way_if_reject'''. Создаем level changer называем его '''to_atp_1''',&lt;br /&gt;
в '''custom data''' пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_2_way_if_reject //название вэйпоинта&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В '''level to change''' указываем atp_1 //куда переходим с atp_2&lt;br /&gt;
В '''level point to change''' - '''start_actor_01'''(дада, тот который мы создали на первом левеле :) )&lt;br /&gt;
&lt;br /&gt;
Теперь здесь же на atp_2 создаем graph point с названием '''start_actor_01'''.&lt;br /&gt;
И еще один где вписываем следущие значения:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Name: exit_atp_2_01&lt;br /&gt;
Location: &amp;quot;свалка&amp;quot; //наименование локации&lt;br /&gt;
&lt;br /&gt;
Connection:&lt;br /&gt;
 Level name: atp_1 //первый уровень&lt;br /&gt;
 Point name: exit_atp_1_01 //связующая точка с первого уровня&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Незабудьте, что '''ACTOR''' должен быть только на одной локации(в нашем случае на atp_1), иначе компилятор выдаст ошибку. Всё!... Сохраняем, прекомпилим.&lt;br /&gt;
&lt;br /&gt;
Запускаем '''Ai Compiler''', выбираем по очереди наши два уровня и просчитываем шаг 1, проверям сетку. Теперь создаем ''текстовый документ'' и вписываем туда&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_1&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем его как .bat и запускаем, в результате у каждого уровня &lt;br /&gt;
появится свой '''level.graph'''(граф и кросс-таблица).&lt;br /&gt;
&lt;br /&gt;
Создаем еще один текстовик, пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -m&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем как .bat и стартуем. Так мы собрали '''game.graph''' из '''level.graph''''ов.&lt;br /&gt;
&lt;br /&gt;
И наконец.. создаем 3ий &amp;quot;бантик&amp;quot; для сборки '''all.spawn'''!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
bins\ai\1.exe -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Компилим, заходим в '''gamedata\spawns\''', переименовываем получившийся спавн в '''all.spawn''' и запускаем через новую игру. Как видите, вы можете перемещаться с уровня на уровень, туда сюда без каких-либо проблем. &lt;br /&gt;
&lt;br /&gt;
Для сборки '''всех''' сингл уровней из оригинальной игры &lt;br /&gt;
используйте bat фаил написанный ''Zeed'''ом: [http://stalkerin.gameru.net/developer/mods/levelgraph_fullgame.bat fullgame.bat]&lt;br /&gt;
Если будут ошибки связанные с алайфом, жмем ''продолжить''. Потом выполняйте процедуры как написано выше, сборка '''game.graph''', а затем '''all.spawn'''.&lt;br /&gt;
''продолжение следует...''&lt;br /&gt;
&lt;br /&gt;
'''written Loxotron'''&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-</id>
		<title>Компиляция -=inGame АИ=-</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-"/>
				<updated>2008-01-07T20:19:50Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, приступим... Раз вы здесь, значит есть на то причина:&lt;br /&gt;
*1)либо вы нуп, увидевший аи-компилер и решивший забацать чтото крутое&lt;br /&gt;
*2)вы не нуп, но всё забыли или почти всё&lt;br /&gt;
*3)вы супер-аццкий про решивший глянуть на весь этот детсад свысока :)&lt;br /&gt;
&lt;br /&gt;
Ну чтож... начнем с самого простого, скомпилим левел с аи, монстрами на&lt;br /&gt;
карте mp_atp. Открываем левел.. первое что надо сделать убрать все &lt;br /&gt;
'''rpoint'''(мультиплеерные точки спавна). Убрали? Отлично. Создаем&lt;br /&gt;
'''Spawn elements -&amp;gt; actor''' ну и пожеланию в свойствах ('''Properties''')&lt;br /&gt;
в '''custom data''' прописываем ему предположим вот это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[spawn]&lt;br /&gt;
wpn_ak74&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тем самым при появлении игрока у него в руках уже будет калаш. Далее,&lt;br /&gt;
создаем монстра... любого по желанию, предположим кровососа и ставим на уровень.&lt;br /&gt;
Теперь дело за '''AI map''' - аи сетка, которая необходима для того, чтобы&lt;br /&gt;
нпс, монстры могли ориентироваться по уровню. Жмем Object и кликаем на  земле(тем самым мы ее &amp;quot;выбрали&amp;quot; для дальнейших манипуляций), затем '''AI Map''' -&amp;gt; '''Commands''' -&amp;gt; '''Make list from selected''', жмем '''add''' в разделе AI Map Nodes и add для добавления объектов слева вверху(чайник) и ставим на карте ноды в нужном вам порядке(достаточно одного), жмем '''Generate Full'''. &lt;br /&gt;
Всё, аи-сетка сгенерированна. Теперь добавляем на левел обязательно! 1 graph point ('''Spawns-&amp;gt;ai-&amp;gt;graph point'''), в нем можно ничего не писать. Сохраняем уровень, билдим ('''build'''). &lt;br /&gt;
&lt;br /&gt;
Следующим шагом будет правка конфигов.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
'''game_maps_single.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[level_maps_single]&lt;br /&gt;
...&lt;br /&gt;
testing_ai &lt;br /&gt;
//название вашего уровня&lt;br /&gt;
&lt;br /&gt;
[testing_ai]&lt;br /&gt;
global_rect  = -6,1220.0, 248.0,1481.0&lt;br /&gt;
texture      = map\map_escape&lt;br /&gt;
//текстура при загрузке&lt;br /&gt;
bound_rect  = -502.148,-412.284,379.976,474,479&lt;br /&gt;
weathers  = default&lt;br /&gt;
//погода&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''game_levels.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[levels]&lt;br /&gt;
...&lt;br /&gt;
level190&lt;br /&gt;
//номер вашего уровня&lt;br /&gt;
&lt;br /&gt;
[level190]&lt;br /&gt;
name   = testing_ai&lt;br /&gt;
caption = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
offset  = 2000.0, 800.0, 1000.0&lt;br /&gt;
id   = 193&lt;br /&gt;
//индентифакционный номер, должен быть уникальным&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''game_graphs.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
018   = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь открываем AI Compiler, указываем папку с '''сдк'''(.../level_editor, либо если он объединен с игрой, путь до нее). Выбираем ваш уровень.&lt;br /&gt;
Проходим 1ую стадию чернового просчета аи карты('''шаг 1'''), либо если вы хотите долго ждать и просчитать укрытия для нпс то выбираем '''шаг 2'''.&lt;br /&gt;
Далее строим граф и кросс-таблицу уровня шаг 3, потом граф игры '''шаг 4''' и наконец фаил .spawn '''шаг 5'''. После всех стадий заходим в gamedata\spawns\ и переименовываем '''test.spawn''' в '''all.spawn'''&lt;br /&gt;
&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id	=pseudoscience|&lt;br /&gt;
align = left|&lt;br /&gt;
backgroundcolor	= #f9f9f9|&lt;br /&gt;
image	=Lamp.gif|&lt;br /&gt;
heading	= Важные моменты -- Loxotron|&lt;br /&gt;
message = При правке конфигов не забывайте указывать реально существующую там погоду и картинку загрузки, иначе вылетит; не пытайтесь запустить уровень через .bat фаилы подобные указанному ниже, тоже будет вылет)&lt;br /&gt;
&amp;lt;pre&amp;gt;bin\xr_3da.exe -ltx user.ltx -nointro -external -start server(level/single/newgame) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее мы рассмотрим как собирать несколько уровней и устанавливать между ними переходы.&lt;br /&gt;
&lt;br /&gt;
Итак у вас два уровня... на одном из них стоит '''actor'''. Начнем с него:&lt;br /&gt;
создаем '''ai-&amp;gt;level changer''', затем '''shape-&amp;gt;sphere''', с помощью '''scale''' увеличиваем до необходимых размеров, теперь переключаемся в режим редактирования '''spawn element''', выделяем '''level changer''' и жмем '''commands-&amp;gt;attach object''', а затем кликаем на сферу... Всё, сфера и level changer теперь связаны. Далее идем в закладку '''properties''', указываем название, например '''to_atp_2''', теперь нужно прописать в '''custom data''' вейпоинт для возврата, в случае отказа игрока от перемещения с локации на локации(обязательно). Вписываем вот это:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_1_way_if_reject&lt;br /&gt;
//в случае отказа от перемещения на вторую локу, возвращаемся назад&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В '''Level to change''' вписываем наименование уровня, куда мы хотим переместиться с этого левела, например '''atp_2'''. &lt;br /&gt;
В '''Level Point to change''' указываем точку, в которой игрок появится...&lt;br /&gt;
'''start_actor_01'''. С '''level changer''' на этом уровне всё, пошли далее.&lt;br /&gt;
Создаем '''graph point''' или используем пустой существующий если у вас есть.&lt;br /&gt;
В него вписываем '''start_actor_01''', этот поинт для того чтобы мы смогли со второго левела '''atp_2''' перейти на '''atp_1'''(первый). Создаем еще один '''graph point''' c названием '''exit_atp_1_01''', в разделе '''location''' выбираем, например &amp;quot;экскейп&amp;quot;. В '''Connection -&amp;gt; Level name''' указываем уровень, с которым будет связан '''atp_1''', то есть выбираем '''atp_2''', в '''Connection-&amp;gt;Point Name''' вписываем точку связи из второго уровня, которую мы создадим потом '''exit_atp_2_01'''. С первым уровнем всё...&lt;br /&gt;
&lt;br /&gt;
Для чего нам нужен graph point'ы ''exit_xxx''?&lt;br /&gt;
''exit_xxx'' представляет собой '''connection_point'''(точку связи) - для того, чтобы компилятор знал, какие уровни он соединяет, а если по другому: начальный граф уровня, от него потом считаются все ноды.&lt;br /&gt;
&lt;br /&gt;
'''start_actor_xx''' - точка появления актера после перехода.&lt;br /&gt;
&lt;br /&gt;
Помните мы вписали в '''custom data''' '''level changer''''а вейпоинт? Вот теперь нам придется его создать. Выбираем '''Way Points''' -&amp;gt; жмем &amp;quot;чайник&amp;quot; и стави 1 вейпоинт рядом с level changer(так мы создали начальную точку пути), теперь жмем '''point mode''' и ставим второй. Если они не соеденились стрелочкой, жмем '''create 1-link'''. Теперь у нас получился путь, который мы прописали в custom data '''level changer''', заходим в свойства и обзываем его также как и в '''custom data''', тоесть '''atp_1_way_if_reject'''. Всё с первым уровнем покончили.&lt;br /&gt;
&lt;br /&gt;
Итак, открываем второй уровень и поехали по новой...&lt;br /&gt;
&lt;br /&gt;
Создаем там путь из двух вейпоинтов по схеме выше и обзываем '''atp_2_way_if_reject'''. Создаем level changer называем его '''to_atp_1''',&lt;br /&gt;
в '''custom data''' пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_2_way_if_reject //название вэйпоинта&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В '''level to change''' указываем atp_1 //куда переходим с atp_2&lt;br /&gt;
В '''level point to change''' - '''start_actor_01'''(дада, тот который мы создали на первом левеле :) )&lt;br /&gt;
&lt;br /&gt;
Теперь здесь же на atp_2 создаем graph point с названием '''start_actor_01'''.&lt;br /&gt;
И еще один где вписываем следущие значения:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Name: exit_atp_2_01&lt;br /&gt;
Location: &amp;quot;свалка&amp;quot; //наименование локации&lt;br /&gt;
&lt;br /&gt;
Connection:&lt;br /&gt;
 Level name: atp_1 //первый уровень&lt;br /&gt;
 Point name: exit_atp_1_01 //связующая точка с первого уровня&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Незабудьте, что '''ACTOR''' должен быть только на одной локации(в нашем случае на atp_1), иначе компилятор выдаст ошибку. Всё!... Сохраняем, прекомпилим.&lt;br /&gt;
&lt;br /&gt;
Запускаем '''Ai Compiler''', выбираем по очереди наши два уровня и просчитываем шаг 1, проверям сетку. Теперь создаем ''текстовый документ'' и вписываем туда&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_1&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем его как .bat и запускаем, в результате у каждого уровня &lt;br /&gt;
появится свой '''level.graph'''(граф и кросс-таблица).&lt;br /&gt;
&lt;br /&gt;
Создаем еще один текстовик, пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -m&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем как .bat и стартуем. Так мы собрали '''game.graph''' из '''level.graph''''ов.&lt;br /&gt;
&lt;br /&gt;
И наконец.. создаем 3ий &amp;quot;бантик&amp;quot; для сборки '''all.spawn'''!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
bins\ai\1.exe -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Компилим, заходим в '''gamedata\spawns\''', переименовываем получившийся спавн в '''all.spawn''' и запускаем через новую игру. Как видите, вы можете перемещаться с уровня на уровень, туда сюда без каких-либо проблем. &lt;br /&gt;
&lt;br /&gt;
Для сборки '''всех''' сингл уровней из оригинальной игры &lt;br /&gt;
используйте bat фаил написанный ''Zeed'''ом: [http://stalkerin.gameru.net/developer/mods/levelgraph_fullgame.bat fullgame.bat]&lt;br /&gt;
Если будут ошибки связанные с алайфом, жмем ''продолжить''. Потом выполняйте процедуры как написано выше, сборка '''game.graph''', а затем '''all.spawn'''.&lt;br /&gt;
''продолжение следует...''&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-</id>
		<title>Компиляция -=inGame АИ=-</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-"/>
				<updated>2008-01-07T20:19:21Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, приступим... Раз вы здесь, значит есть на то причина:&lt;br /&gt;
*1)либо вы нуп, увидевший аи-компилер и решивший забацать чтото крутое&lt;br /&gt;
*2)вы не нуп, но всё забыли или почти всё&lt;br /&gt;
*3)вы супер-аццкий про решивший глянуть на весь этот детсад свысока :)&lt;br /&gt;
&lt;br /&gt;
Ну чтож... начнем с самого простого, скомпилим левел с аи, монстрами на&lt;br /&gt;
карте mp_atp. Открываем левел.. первое что надо сделать убрать все &lt;br /&gt;
'''rpoint'''(мультиплеерные точки спавна). Убрали? Отлично. Создаем&lt;br /&gt;
'''Spawn elements -&amp;gt; actor''' ну и пожеланию в свойствах ('''Properties''')&lt;br /&gt;
в '''custom data''' прописываем ему предположим вот это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[spawn]&lt;br /&gt;
wpn_ak74&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тем самым при появлении игрока у него в руках уже будет калаш. Далее,&lt;br /&gt;
создаем монстра... любого по желанию, предположим кровососа и ставим на уровень.&lt;br /&gt;
Теперь дело за '''AI map''' - аи сетка, которая необходима для того, чтобы&lt;br /&gt;
нпс, монстры могли ориентироваться по уровню. Жмем Object и кликаем на  земле(тем самым мы ее &amp;quot;выбрали&amp;quot; для дальнейших манипуляций), затем '''AI Map''' -&amp;gt; '''Commands''' -&amp;gt; '''Make list from selected''', жмем '''add''' в разделе AI Map Nodes и add для добавления объектов слева вверху(чайник) и ставим на карте ноды в нужном вам порядке(достаточно одного), жмем '''Generate Full'''. &lt;br /&gt;
Всё, аи-сетка сгенерированна. Теперь добавляем на левел обязательно! 1 graph point ('''Spawns-&amp;gt;ai-&amp;gt;graph point'''), в нем можно ничего не писать. Сохраняем уровень, билдим ('''build'''). &lt;br /&gt;
&lt;br /&gt;
Следующим шагом будет правка конфигов.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
'''game_maps_single.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[level_maps_single]&lt;br /&gt;
...&lt;br /&gt;
testing_ai &lt;br /&gt;
//название вашего уровня&lt;br /&gt;
&lt;br /&gt;
[testing_ai]&lt;br /&gt;
global_rect  = -6,1220.0, 248.0,1481.0&lt;br /&gt;
texture      = map\map_escape&lt;br /&gt;
//текстура при загрузке&lt;br /&gt;
bound_rect  = -502.148,-412.284,379.976,474,479&lt;br /&gt;
weathers  = default&lt;br /&gt;
//погода&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''game_levels.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[levels]&lt;br /&gt;
...&lt;br /&gt;
level190&lt;br /&gt;
//номер вашего уровня&lt;br /&gt;
&lt;br /&gt;
[level190]&lt;br /&gt;
name   = testing_ai&lt;br /&gt;
caption = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
offset  = 2000.0, 800.0, 1000.0&lt;br /&gt;
id   = 193&lt;br /&gt;
//индентифакционный номер, должен быть уникальным&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''game_graphs.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
018   = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь открываем AI Compiler, указываем папку с '''сдк'''(.../level_editor, либо если он объединен с игрой, путь до нее). Выбираем ваш уровень.&lt;br /&gt;
Проходим 1ую стадию чернового просчета аи карты('''шаг 1'''), либо если вы хотите долго ждать и просчитать укрытия для нпс то выбираем '''шаг 2'''.&lt;br /&gt;
Далее строим граф и кросс-таблицу уровня шаг 3, потом граф игры '''шаг 4''' и наконец фаил .spawn '''шаг 5'''. После всех стадий заходим в gamedata\spawns\ и переименовываем '''test.spawn''' в '''all.spawn'''&lt;br /&gt;
&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id	=pseudoscience|&lt;br /&gt;
align = left|&lt;br /&gt;
backgroundcolor	= #f9f9f9|&lt;br /&gt;
image	=Lamp.gif|&lt;br /&gt;
heading	= Важные моменты -- Loxotron|&lt;br /&gt;
message = При правке конфигов не забывайте указывать реально существующую там погоду и картинку загрузки, иначе вылетит; не пытайтесь запустить уровень через .bat фаилы подобные указанному ниже, тоже будет вылет)&lt;br /&gt;
&amp;lt;pre&amp;gt;bin\xr_3da.exe -ltx user.ltx -nointro -external -start server(level/single/newgame) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее мы рассмотрим как собирать несколько уровней и устанавливать между ними переходы.&lt;br /&gt;
&lt;br /&gt;
Итак у вас два уровня... на одном из них стоит '''actor'''. Начнем с него:&lt;br /&gt;
создаем '''ai-&amp;gt;level changer''', затем '''shape-&amp;gt;sphere''', с помощью '''scale''' увеличиваем до необходимых размеров, теперь переключаемся в режим редактирования '''spawn element''', выделяем '''level changer''' и жмем '''commands-&amp;gt;attach object''', а затем кликаем на сферу... Всё, сфера и level changer теперь связаны. Далее идем в закладку '''properties''', указываем название, например '''to_atp_2''', теперь нужно прописать в '''custom data''' вейпоинт для возврата, в случае отказа игрока от перемещения с локации на локации(обязательно). Вписываем вот это:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_1_way_if_reject&lt;br /&gt;
//в случае отказа от перемещения на вторую локу, возвращаемся назад&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В '''Level to change''' вписываем наименование уровня, куда мы хотим переместиться с этого левела, например '''atp_2'''. &lt;br /&gt;
В '''Level Point to change''' указываем точку, в которой игрок появится...&lt;br /&gt;
'''start_actor_01'''. С '''level changer''' на этом уровне всё, пошли далее.&lt;br /&gt;
Создаем '''graph point''' или используем пустой существующий если у вас есть.&lt;br /&gt;
В него вписываем '''start_actor_01''', этот поинт для того чтобы мы смогли со второго левела '''atp_2''' перейти на '''atp_1'''(первый). Создаем еще один '''graph point''' c названием '''exit_atp_1_01''', в разделе '''location''' выбираем, например &amp;quot;экскейп&amp;quot;. В '''Connection -&amp;gt; Level name''' указываем уровень, с которым будет связан '''atp_1''', то есть выбираем '''atp_2''', в '''Connection-&amp;gt;Point Name''' вписываем точку связи из второго уровня, которую мы создадим потом '''exit_atp_2_01'''. С первым уровнем всё...&lt;br /&gt;
&lt;br /&gt;
Для чего нам нужен graph point'ы ''exit_xxx''?&lt;br /&gt;
''exit_xxx'' представляет собой '''connection_point'''(точку связи) - для того, чтобы компилятор знал, какие уровни он соединяет, а если по другому: начальный граф уровня, от него потом считаются все ноды.&lt;br /&gt;
&lt;br /&gt;
'''start_actor_xx''' - точка появления актера после перехода.&lt;br /&gt;
&lt;br /&gt;
Помните мы вписали в '''custom data''' '''level changer''''а вейпоинт? Вот теперь нам придется его создать. Выбираем '''Way Points''' -&amp;gt; жмем &amp;quot;чайник&amp;quot; и стави 1 вейпоинт рядом с level changer(так мы создали начальную точку пути), теперь жмем '''point mode''' и ставим второй. Если они не соеденились стрелочкой, жмем '''create 1-link'''. Теперь у нас получился путь, который мы прописали в custom data '''level changer''', заходим в свойства и обзываем его также как и в '''custom data''', тоесть '''atp_1_way_if_reject'''. Всё с первым уровнем покончили.&lt;br /&gt;
&lt;br /&gt;
Итак, открываем второй уровень и поехали по новой...&lt;br /&gt;
&lt;br /&gt;
Создаем там путь из двух вейпоинтов по схеме выше и обзываем '''atp_2_way_if_reject'''. Создаем level changer называем его '''to_atp_1''',&lt;br /&gt;
в '''custom data''' пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_2_way_if_reject //название вэйпоинта&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В '''level to change''' указываем atp_1 //куда переходим с atp_2&lt;br /&gt;
В '''level point to change''' - '''start_actor_01'''(дада, тот который мы создали на первом левеле :) )&lt;br /&gt;
&lt;br /&gt;
Теперь здесь же на atp_2 создаем graph point с названием '''start_actor_01'''.&lt;br /&gt;
И еще один где вписываем следущие значения:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Name: exit_atp_2_01&lt;br /&gt;
Location: &amp;quot;свалка&amp;quot; //наименование локации&lt;br /&gt;
&lt;br /&gt;
Connection:&lt;br /&gt;
 Level name: atp_1 //первый уровень&lt;br /&gt;
 Point name: exit_atp_1_01 //связующая точка с первого уровня&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Незабудьте, что '''ACTOR''' должен быть только на одной локации(в нашем случае на atp_1), иначе компилятор выдаст ошибку. Всё!... Сохраняем, прекомпилим.&lt;br /&gt;
&lt;br /&gt;
Запускаем '''Ai Compiler''', выбираем по очереди наши два уровня и просчитываем шаг 1, проверям сетку. Теперь создаем ''текстовый документ'' и вписываем туда&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_1&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем его как .bat и запускаем, в результате у каждого уровня &lt;br /&gt;
появится свой '''level.graph'''(граф и кросс-таблица).&lt;br /&gt;
&lt;br /&gt;
Создаем еще один текстовик, пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -m&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем как .bat и стартуем. Так мы собрали '''game.graph''' из '''level.graph''''ов.&lt;br /&gt;
&lt;br /&gt;
И наконец.. создаем 3ий &amp;quot;бантик&amp;quot; для сборки '''all.spawn'''!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
bins\ai\1.exe -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Компилим, заходим в '''gamedata\spawns\''', переименовываем получившийся спавн в '''all.spawn''' и запускаем через новую игру. Как видите, вы можете перемещаться с уровня на уровень, туда сюда без каких-либо проблем. &lt;br /&gt;
&lt;br /&gt;
Для сборки '''всех''' сингл уровней из оригинальной игры &lt;br /&gt;
используйте bat фаил написанный ''Zeed'''ом: [http://stalkerin.gameru.net/developer/mods/levelgraph_fullgame.bat] fullgame.bat&lt;br /&gt;
Если будут ошибки связанные с алайфом, жмем ''продолжить''. Потом выполняйте процедуры как написано выше, сборка '''game.graph''', а затем '''all.spawn'''.&lt;br /&gt;
''продолжение следует...''&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-</id>
		<title>Компиляция -=inGame АИ=-</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-"/>
				<updated>2008-01-07T20:10:50Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, приступим... Раз вы здесь, значит есть на то причина:&lt;br /&gt;
*1)либо вы нуп, увидевший аи-компилер и решивший забацать чтото крутое&lt;br /&gt;
*2)вы не нуп, но всё забыли или почти всё&lt;br /&gt;
*3)вы супер-аццкий про решивший глянуть на весь этот детсад свысока :)&lt;br /&gt;
&lt;br /&gt;
Ну чтож... начнем с самого простого, скомпилим левел с аи, монстрами на&lt;br /&gt;
карте mp_atp. Открываем левел.. первое что надо сделать убрать все &lt;br /&gt;
'''rpoint'''(мультиплеерные точки спавна). Убрали? Отлично. Создаем&lt;br /&gt;
'''Spawn elements -&amp;gt; actor''' ну и пожеланию в свойствах ('''Properties''')&lt;br /&gt;
в '''custom data''' прописываем ему предположим вот это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[spawn]&lt;br /&gt;
wpn_ak74&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тем самым при появлении игрока у него в руках уже будет калаш. Далее,&lt;br /&gt;
создаем монстра... любого по желанию, предположим кровососа и ставим на уровень.&lt;br /&gt;
Теперь дело за '''AI map''' - аи сетка, которая необходима для того, чтобы&lt;br /&gt;
нпс, монстры могли ориентироваться по уровню. Жмем Object и кликаем на  земле(тем самым мы ее &amp;quot;выбрали&amp;quot; для дальнейших манипуляций), затем '''AI Map''' -&amp;gt; '''Commands''' -&amp;gt; '''Make list from selected''', жмем '''add''' в разделе AI Map Nodes и add для добавления объектов слева вверху(чайник) и ставим на карте ноды в нужном вам порядке(достаточно одного), жмем '''Generate Full'''. &lt;br /&gt;
Всё, аи-сетка сгенерированна. Теперь добавляем на левел обязательно! 1 graph point ('''Spawns-&amp;gt;ai-&amp;gt;graph point'''), в нем можно ничего не писать. Сохраняем уровень, билдим ('''build'''). &lt;br /&gt;
&lt;br /&gt;
Следующим шагом будет правка конфигов.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
'''game_maps_single.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[level_maps_single]&lt;br /&gt;
...&lt;br /&gt;
testing_ai &lt;br /&gt;
//название вашего уровня&lt;br /&gt;
&lt;br /&gt;
[testing_ai]&lt;br /&gt;
global_rect  = -6,1220.0, 248.0,1481.0&lt;br /&gt;
texture      = map\map_escape&lt;br /&gt;
//текстура при загрузке&lt;br /&gt;
bound_rect  = -502.148,-412.284,379.976,474,479&lt;br /&gt;
weathers  = default&lt;br /&gt;
//погода&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''game_levels.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[levels]&lt;br /&gt;
...&lt;br /&gt;
level190&lt;br /&gt;
//номер вашего уровня&lt;br /&gt;
&lt;br /&gt;
[level190]&lt;br /&gt;
name   = testing_ai&lt;br /&gt;
caption = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
offset  = 2000.0, 800.0, 1000.0&lt;br /&gt;
id   = 193&lt;br /&gt;
//индентифакционный номер, должен быть уникальным&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''game_graphs.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
018   = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь открываем AI Compiler, указываем папку с '''сдк'''(.../level_editor, либо если он объединен с игрой, путь до нее). Выбираем ваш уровень.&lt;br /&gt;
Проходим 1ую стадию чернового просчета аи карты('''шаг 1'''), либо если вы хотите долго ждать и просчитать укрытия для нпс то выбираем '''шаг 2'''.&lt;br /&gt;
Далее строим граф и кросс-таблицу уровня шаг 3, потом граф игры '''шаг 4''' и наконец фаил .spawn '''шаг 5'''. После всех стадий заходим в gamedata\spawns\ и переименовываем '''test.spawn''' в '''all.spawn'''&lt;br /&gt;
&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id	=pseudoscience|&lt;br /&gt;
align = left|&lt;br /&gt;
backgroundcolor	= #f9f9f9|&lt;br /&gt;
image	=Lamp.gif|&lt;br /&gt;
heading	= Важные моменты -- Loxotron|&lt;br /&gt;
message = При правке конфигов не забывайте указывать реально существующую там погоду и картинку загрузки, иначе вылетит; не пытайтесь запустить уровень через .bat фаилы подобные указанному ниже, тоже будет вылет)&lt;br /&gt;
&amp;lt;pre&amp;gt;bin\xr_3da.exe -ltx user.ltx -nointro -external -start server(level/single/newgame) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее мы рассмотрим как собирать несколько уровней и устанавливать между ними переходы.&lt;br /&gt;
&lt;br /&gt;
Итак у вас два уровня... на одном из них стоит '''actor'''. Начнем с него:&lt;br /&gt;
создаем '''ai-&amp;gt;level changer''', затем '''shape-&amp;gt;sphere''', с помощью '''scale''' увеличиваем до необходимых размеров, теперь переключаемся в режим редактирования '''spawn element''', выделяем '''level changer''' и жмем '''commands-&amp;gt;attach object''', а затем кликаем на сферу... Всё, сфера и level changer теперь связаны. Далее идем в закладку '''properties''', указываем название, например '''to_atp_2''', теперь нужно прописать в '''custom data''' вейпоинт для возврата, в случае отказа игрока от перемещения с локации на локации(обязательно). Вписываем вот это:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_1_way_if_reject&lt;br /&gt;
//в случае отказа от перемещения на вторую локу, возвращаемся назад&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В '''Level to change''' вписываем наименование уровня, куда мы хотим переместиться с этого левела, например '''atp_2'''. &lt;br /&gt;
В '''Level Point to change''' указываем точку, в которой игрок появится...&lt;br /&gt;
'''start_actor_01'''. С '''level changer''' на этом уровне всё, пошли далее.&lt;br /&gt;
Создаем '''graph point''' или используем пустой существующий если у вас есть.&lt;br /&gt;
В него вписываем '''start_actor_01''', этот поинт для того чтобы мы смогли со второго левела '''atp_2''' перейти на '''atp_1'''(первый). Создаем еще один '''graph point''' c названием '''exit_atp_1_01''', в разделе '''location''' выбираем, например &amp;quot;экскейп&amp;quot;. В '''Connection -&amp;gt; Level name''' указываем уровень, с которым будет связан '''atp_1''', то есть выбираем '''atp_2''', в '''Connection-&amp;gt;Point Name''' вписываем точку связи из второго уровня, которую мы создадим потом '''exit_atp_2_01'''. С первым уровнем всё...&lt;br /&gt;
&lt;br /&gt;
Для чего нам нужен graph point'ы ''exit_xxx''?&lt;br /&gt;
''exit_xxx'' представляет собой '''connection_point'''(точку связи) - для того, чтобы компилятор знал, какие уровни он соединяет, а если по другому: начальный граф уровня, от него потом считаются все ноды.&lt;br /&gt;
&lt;br /&gt;
'''start_actor_xx''' - точка появления актера после перехода.&lt;br /&gt;
&lt;br /&gt;
Помните мы вписали в '''custom data''' '''level changer''''а вейпоинт? Вот теперь нам придется его создать. Выбираем '''Way Points''' -&amp;gt; жмем &amp;quot;чайник&amp;quot; и стави 1 вейпоинт рядом с level changer(так мы создали начальную точку пути), теперь жмем '''point mode''' и ставим второй. Если они не соеденились стрелочкой, жмем '''create 1-link'''. Теперь у нас получился путь, который мы прописали в custom data '''level changer''', заходим в свойства и обзываем его также как и в '''custom data''', тоесть '''atp_1_way_if_reject'''. Всё с первым уровнем покончили.&lt;br /&gt;
&lt;br /&gt;
Итак, открываем второй уровень и поехали по новой...&lt;br /&gt;
&lt;br /&gt;
Создаем там путь из двух вейпоинтов по схеме выше и обзываем '''atp_2_way_if_reject'''. Создаем level changer называем его '''to_atp_1''',&lt;br /&gt;
в '''custom data''' пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_2_way_if_reject //название вэйпоинта&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В '''level to change''' указываем atp_1 //куда переходим с atp_2&lt;br /&gt;
В '''level point to change''' - '''start_actor_01'''(дада, тот который мы создали на первом левеле :) )&lt;br /&gt;
&lt;br /&gt;
Теперь здесь же на atp_2 создаем graph point с названием '''start_actor_01'''.&lt;br /&gt;
И еще один где вписываем следущие значения:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Name: exit_atp_2_01&lt;br /&gt;
Location: &amp;quot;свалка&amp;quot; //наименование локации&lt;br /&gt;
&lt;br /&gt;
Connection:&lt;br /&gt;
 Level name: atp_1 //первый уровень&lt;br /&gt;
 Point name: exit_atp_1_01 //связующая точка с первого уровня&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Незабудьте, что '''ACTOR''' должен быть только на одной локации(в нашем случае на atp_1), иначе компилятор выдаст ошибку. Всё!... Сохраняем, прекомпилим.&lt;br /&gt;
&lt;br /&gt;
Запускаем '''Ai Compiler''', выбираем по очереди наши два уровня и просчитываем шаг 1, проверям сетку. Теперь создаем ''текстовый документ'' и вписываем туда&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_1&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем его как .bat и запускаем, в результате у каждого уровня &lt;br /&gt;
появится свой '''level.graph'''(граф и кросс-таблица).&lt;br /&gt;
&lt;br /&gt;
Создаем еще один текстовик, пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -m&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем как .bat и стартуем. Так мы собрали '''game.graph''' из '''level.graph''''ов.&lt;br /&gt;
&lt;br /&gt;
И наконец.. создаем 3ий &amp;quot;бантик&amp;quot; для сборки '''all.spawn'''!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
bins\ai\1.exe -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Компилим, заходим в '''gamedata\spawns\''', переименовываем получившийся спавн в '''all.spawn''' и запускаем через новую игру. Как видите, вы можете перемещаться с уровня на уровень, туда сюда без каких-либо проблем. ''продолжение следует...''&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-</id>
		<title>Компиляция -=inGame АИ=-</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-"/>
				<updated>2008-01-07T20:08:40Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, приступим... Раз вы здесь, значит есть на то причина:&lt;br /&gt;
*1)либо вы нуп, увидевший аи-компилер и решивший забацать чтото крутое&lt;br /&gt;
*2)вы не нуп, но всё забыли или почти всё&lt;br /&gt;
*3)вы супер-аццкий про решивший глянуть на весь этот детсад свысока :)&lt;br /&gt;
&lt;br /&gt;
Ну чтож... начнем с самого простого, скомпилим левел с аи, монстрами на&lt;br /&gt;
карте mp_atp. Открываем левел.. первое что надо сделать убрать все &lt;br /&gt;
'''rpoint'''(мультиплеерные точки спавна). Убрали? Отлично. Создаем&lt;br /&gt;
'''Spawn elements -&amp;gt; actor''' ну и пожеланию в свойствах ('''Properties''')&lt;br /&gt;
в '''custom data''' прописываем ему предположим вот это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[spawn]&lt;br /&gt;
wpn_ak74&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тем самым при появлении игрока у него в руках уже будет калаш. Далее,&lt;br /&gt;
создаем монстра... любого по желанию, предположим кровососа и ставим на уровень.&lt;br /&gt;
Теперь дело за '''AI map''' - аи сетка, которая необходима для того, чтобы&lt;br /&gt;
нпс, монстры могли ориентироваться по уровню. Жмем Object и кликаем на  земле(тем самым мы ее &amp;quot;выбрали&amp;quot; для дальнейших манипуляций), затем '''AI Map''' -&amp;gt; '''Commands''' -&amp;gt; '''Make list from selected''', жмем '''add''' в разделе AI Map Nodes и add для добавления объектов слева вверху(чайник) и ставим на карте ноды в нужном вам порядке(достаточно одного), жмем '''Generate Full'''. &lt;br /&gt;
Всё, аи-сетка сгенерированна. Теперь добавляем на левел обязательно! 1 graph point ('''Spawns-&amp;gt;ai-&amp;gt;graph point'''), в нем можно ничего не писать. Сохраняем уровень, билдим ('''build'''). &lt;br /&gt;
&lt;br /&gt;
Следующим шагом будет правка конфигов.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
'''game_maps_single.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[level_maps_single]&lt;br /&gt;
...&lt;br /&gt;
testing_ai &lt;br /&gt;
//название вашего уровня&lt;br /&gt;
&lt;br /&gt;
[testing_ai]&lt;br /&gt;
global_rect  = -6,1220.0, 248.0,1481.0&lt;br /&gt;
texture      = map\map_escape&lt;br /&gt;
//текстура при загрузке&lt;br /&gt;
bound_rect  = -502.148,-412.284,379.976,474,479&lt;br /&gt;
weathers  = default&lt;br /&gt;
//погода&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''game_levels.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[levels]&lt;br /&gt;
...&lt;br /&gt;
level190&lt;br /&gt;
//номер вашего уровня&lt;br /&gt;
&lt;br /&gt;
[level190]&lt;br /&gt;
name   = testing_ai&lt;br /&gt;
caption = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
offset  = 2000.0, 800.0, 1000.0&lt;br /&gt;
id   = 193&lt;br /&gt;
//индентифакционный номер, должен быть уникальным&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''game_graphs.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
018   = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь открываем AI Compiler, указываем папку с '''сдк'''(.../level_editor, либо если он объединен с игрой, путь до нее). Выбираем ваш уровень.&lt;br /&gt;
Проходим 1ую стадию чернового просчета аи карты('''шаг 1'''), либо если вы хотите долго ждать и просчитать укрытия для нпс то выбираем '''шаг 2'''.&lt;br /&gt;
Далее строим граф и кросс-таблицу уровня шаг 3, потом граф игры '''шаг 4''' и наконец фаил .spawn '''шаг 5'''. После всех стадий заходим в gamedata\spawns\ и переименовываем '''test.spawn''' в '''all.spawn'''&lt;br /&gt;
&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id	=pseudoscience|&lt;br /&gt;
align = left|&lt;br /&gt;
backgroundcolor	= #f9f9f9|&lt;br /&gt;
image	=Lamp.gif|&lt;br /&gt;
heading	= Важные моменты -- Loxotron|&lt;br /&gt;
message = При правке конфигов не забывайте указывать реально существующую там погоду и картинку загрузки, иначе вылетит; не пытайтесь запустить уровень через .bat фаилы подобные указанному ниже, тоже будет вылет)&lt;br /&gt;
&amp;lt;pre&amp;gt;bin\xr_3da.exe -ltx user.ltx -nointro -external -start server(level/single/newgame) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее мы рассмотрим как собирать несколько уровней и устанавливать между ними переходы.&lt;br /&gt;
&lt;br /&gt;
Итак у вас два уровня... на одном из них стоит '''actor'''. Начнем с него:&lt;br /&gt;
создаем '''ai-&amp;gt;level changer''', затем '''shape-&amp;gt;sphere''', с помощью '''scale''' увеличиваем до необходимых размеров, теперь переключаемся в режим редактирования '''spawn element''', выделяем '''level changer''' и жмем '''commands-&amp;gt;attach object''', а затем кликаем на сферу... Всё, сфера и level changer теперь связаны. Далее идем в закладку '''properties''', указываем название, например '''to_atp_2''', теперь нужно прописать в '''custom data''' вейпоинт для возврата, в случае отказа игрока от перемещения с локации на локации(обязательно). Вписываем вот это:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_1_way_if_reject&lt;br /&gt;
//в случае отказа от перемещения на вторую локу, возвращаемся назад&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В '''Level to change''' вписываем наименование уровня, куда мы хотим переместиться с этого левела, например '''atp_2'''. &lt;br /&gt;
В '''Level Point to change''' указываем точку, в которой игрок появится...&lt;br /&gt;
'''start_actor_01'''. С '''level changer''' на этом уровне всё, пошли далее.&lt;br /&gt;
Создаем '''graph point''' или используем пустой существующий если у вас есть.&lt;br /&gt;
В него вписываем '''start_actor_01''', этот поинт для того чтобы мы смогли со второго левела '''atp_2''' перейти на '''atp_1'''(первый). Создаем еще один '''graph point''' c названием '''exit_atp_1_01''', в разделе '''location''' выбираем, например &amp;quot;экскейп&amp;quot;. В '''Connection -&amp;gt; Level name''' указываем уровень, с которым будет связан '''atp_1''', то есть выбираем '''atp_2''', в '''Connection-&amp;gt;Point Name''' вписываем точку связи из второго уровня, которую мы создадим потом '''exit_atp_2_01'''. С первым уровнем всё...&lt;br /&gt;
&lt;br /&gt;
Для чего нам нужен graph point'ы ''exit_xxx''?&lt;br /&gt;
''exit_xxx'' представляет собой '''connection_point'''(точку связи) - для того, чтобы компилятор знал, какие уровни он соединяет, а если по другому: начальный граф уровня, от него потом считаются все ноды.&lt;br /&gt;
&lt;br /&gt;
'''start_actor_xx''' - точка появления актера после перехода.&lt;br /&gt;
&lt;br /&gt;
Помните мы вписали в '''custom data''' '''level changer''''а вейпоинт? Вот теперь нам придется его создать. Выбираем '''Way Points''' -&amp;gt; жмем &amp;quot;чайник&amp;quot; и стави 1 вейпоинт рядом с level changer(так мы создали начальную точку пути), теперь жмем '''point mode''' и ставим второй. Если они не соеденились стрелочкой, жмем '''create 1-link'''. Теперь у нас получился путь, который мы прописали в custom data '''level changer''', заходим в свойства и обзываем его также как и в '''custom data''', тоесть '''atp_1_way_if_reject'''. Всё с первым уровнем покончили.&lt;br /&gt;
&lt;br /&gt;
Итак, открываем второй уровень и поехали по новой...&lt;br /&gt;
&lt;br /&gt;
Создаем там путь из двух вейпоинтов по схеме выше и обзываем '''atp_2_way_if_reject'''. Создаем level changer называем его '''to_atp_1''',&lt;br /&gt;
в '''custom data''' пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_2_way_if_reject //название вэйпоинта&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В '''level to change''' указываем atp_1 //куда переходим с atp_2&lt;br /&gt;
В '''level point to change''' - '''start_actor_01'''(дада, тот который мы создали на первом левеле :) )&lt;br /&gt;
&lt;br /&gt;
Теперь здесь же на atp_2 создаем graph point с названием '''start_actor_01'''.&lt;br /&gt;
И еще один где вписываем следущие значения:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Name: exit_atp_2_01&lt;br /&gt;
Location: &amp;quot;свалка&amp;quot; //наименование локации&lt;br /&gt;
&lt;br /&gt;
Connection:&lt;br /&gt;
 Level name: atp_1 //первый уровень&lt;br /&gt;
 Point name: exit_atp_1_01 //связующая точка с первого уровня&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Незабудьте, что '''ACTOR''' должен быть только на одной локации(в нашем случае на atp_1), иначе компилятор выдаст ошибку. Всё!... Сохраняем, прекомпилим.&lt;br /&gt;
&lt;br /&gt;
Запускаем '''Ai Compiler''', выбираем по очереди наши два уровня и просчитываем шаг 1, проверям сетку. Теперь создаем ''текстовый документ'' и вписываем туда&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_1&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем его как .bat и запускаем, в результате у каждого уровня &lt;br /&gt;
появится свой '''level.graph'''(граф и кросс-таблица).&lt;br /&gt;
&lt;br /&gt;
Создаем еще один текстовик, пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -m&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем как .bat и стартуем. Так мы собрали '''game.graph''' из '''level.graph''''ов.&lt;br /&gt;
&lt;br /&gt;
И наконец.. создаем 3ий &amp;quot;бантик&amp;quot; для сборки '''all.spawn'''!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
bins\ai\1.exe -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Компилим, заходим в '''gamedata\spawns\''', переименовываем получившийся спавн в all.spawn и запускаем через новую игру. Как видит мы можете перемещаться с уровня на уровень туда сюда без каких-либо проблем.&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-</id>
		<title>Компиляция -=inGame АИ=-</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-"/>
				<updated>2008-01-07T20:04:54Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, приступим... Раз вы здесь, значит есть на то причина:&lt;br /&gt;
*1)либо вы нуп, увидевший аи-компилер и решивший забацать чтото крутое&lt;br /&gt;
*2)вы не нуп, но всё забыли или почти всё&lt;br /&gt;
*3)вы супер-аццкий про решивший глянуть на весь этот детсад свысока :)&lt;br /&gt;
&lt;br /&gt;
Ну чтож... начнем с самого простого, скомпилим левел с аи, монстрами на&lt;br /&gt;
карте mp_atp. Открываем левел.. первое что надо сделать убрать все &lt;br /&gt;
'''rpoint'''(мультиплеерные точки спавна). Убрали? Отлично. Создаем&lt;br /&gt;
'''Spawn elements -&amp;gt; actor''' ну и пожеланию в свойствах ('''Properties''')&lt;br /&gt;
в '''custom data''' прописываем ему предположим вот это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[spawn]&lt;br /&gt;
wpn_ak74&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тем самым при появлении игрока у него в руках уже будет калаш. Далее,&lt;br /&gt;
создаем монстра... любого по желанию, предположим кровососа и ставим на уровень.&lt;br /&gt;
Теперь дело за '''AI map''' - аи сетка, которая необходима для того, чтобы&lt;br /&gt;
нпс, монстры могли ориентироваться по уровню. Жмем Object и кликаем на  земле(тем самым мы ее &amp;quot;выбрали&amp;quot; для дальнейших манипуляций), затем '''AI Map''' -&amp;gt; '''Commands''' -&amp;gt; '''Make list from selected''', жмем '''add''' в разделе AI Map Nodes и add для добавления объектов слева вверху(чайник) и ставим на карте ноды в нужном вам порядке(достаточно одного), жмем '''Generate Full'''. &lt;br /&gt;
Всё, аи-сетка сгенерированна. Теперь добавляем на левел обязательно! 1 graph point ('''Spawns-&amp;gt;ai-&amp;gt;graph point'''), в нем можно ничего не писать. Сохраняем уровень, билдим ('''build'''). &lt;br /&gt;
&lt;br /&gt;
Следующим шагом будет правка конфигов.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
'''game_maps_single.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[level_maps_single]&lt;br /&gt;
...&lt;br /&gt;
testing_ai &lt;br /&gt;
//название вашего уровня&lt;br /&gt;
&lt;br /&gt;
[testing_ai]&lt;br /&gt;
global_rect  = -6,1220.0, 248.0,1481.0&lt;br /&gt;
texture      = map\map_escape&lt;br /&gt;
//текстура при загрузке&lt;br /&gt;
bound_rect  = -502.148,-412.284,379.976,474,479&lt;br /&gt;
weathers  = default&lt;br /&gt;
//погода&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''game_levels.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[levels]&lt;br /&gt;
...&lt;br /&gt;
level190&lt;br /&gt;
//номер вашего уровня&lt;br /&gt;
&lt;br /&gt;
[level190]&lt;br /&gt;
name   = testing_ai&lt;br /&gt;
caption = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
offset  = 2000.0, 800.0, 1000.0&lt;br /&gt;
id   = 193&lt;br /&gt;
//индентифакционный номер, должен быть уникальным&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''game_graphs.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
018   = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь открываем AI Compiler, указываем папку с '''сдк'''(.../level_editor, либо если он объединен с игрой, путь до нее). Выбираем ваш уровень.&lt;br /&gt;
Проходим 1ую стадию чернового просчета аи карты('''шаг 1'''), либо если вы хотите долго ждать и просчитать укрытия для нпс то выбираем '''шаг 2'''.&lt;br /&gt;
Далее строим граф и кросс-таблицу уровня шаг 3, потом граф игры '''шаг 4''' и наконец фаил .spawn '''шаг 5'''. После всех стадий заходим в gamedata\spawns\ и переименовываем '''test.spawn''' в '''all.spawn'''&lt;br /&gt;
&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id	=pseudoscience|&lt;br /&gt;
align = left|&lt;br /&gt;
backgroundcolor	= #f9f9f9|&lt;br /&gt;
image	=Lamp.gif|&lt;br /&gt;
heading	= Важные моменты -- Loxotron|&lt;br /&gt;
message = При правке конфигов не забывайте указывать реально существующую там погоду и картинку загрузки, иначе вылетит; не пытайтесь запустить уровень через .bat фаилы подобные указанному ниже, тоже будет вылет)&lt;br /&gt;
&amp;lt;pre&amp;gt;bin\xr_3da.exe -ltx user.ltx -nointro -external -start server(level/single/newgame) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее мы рассмотрим как собирать несколько уровней и устанавливать между ними переходы.&lt;br /&gt;
&lt;br /&gt;
Итак у вас два уровня... на одном из них стоит '''actor'''. Начнем с него:&lt;br /&gt;
создаем '''ai-&amp;gt;level changer''', затем '''shape-&amp;gt;sphere''', с помощью '''scale''' увеличиваем до необходимых размеров, теперь переключаемся в режим редактирования '''spawn element''', выделяем '''level changer''' и жмем '''commands-&amp;gt;attach object''', а затем кликаем на сферу... Всё, сфера и level changer теперь связаны. Далее идем в закладку '''properties''', указываем название, например '''to_atp_2''', теперь нужно прописать в '''custom data''' вейпоинт для возврата, в случае отказа игрока от перемещения с локации на локации(обязательно). Вписываем вот это:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_1_way_if_reject&lt;br /&gt;
//в случае отказа от перемещения на вторую локу, возвращаемся назад&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В '''Level to change''' вписываем наименование уровня, куда мы хотим переместиться с этого левела, например '''atp_2'''. &lt;br /&gt;
В '''Level Point to change''' указываем точку, в которой игрок появится...&lt;br /&gt;
'''start_actor_01'''. С '''level changer''' на этом уровне всё, пошли далее.&lt;br /&gt;
Создаем '''graph point''' или используем пустой существующий если у вас есть.&lt;br /&gt;
В него вписываем '''start_actor_01''', этот поинт для того чтобы мы смогли со второго левела '''atp_2''' перейти на '''atp_1'''(первый). Создаем еще один '''graph point''' c названием '''exit_atp_1_01''', в разделе '''location''' выбираем, например &amp;quot;экскейп&amp;quot;. В '''Connection -&amp;gt; Level name''' указываем уровень, с которым будет связан '''atp_1''', то есть выбираем '''atp_2''', в '''Connection-&amp;gt;Point Name''' вписываем точку связи из второго уровня, которую мы создадим потом '''exit_atp_2_01'''. С первым уровнем всё...&lt;br /&gt;
&lt;br /&gt;
Для чего нам нужен graph point'ы ''exit_xxx''?&lt;br /&gt;
''exit_xxx'' представляет собой '''connection_point'''(точку связи) - для того, чтобы компилятор знал, какие уровни он соединяет, а если по другому: начальный граф уровня, от него потом считаются все ноды.&lt;br /&gt;
&lt;br /&gt;
'''start_actor_xx''' - точка появления актера после перехода.&lt;br /&gt;
&lt;br /&gt;
Помните мы вписали в '''custom data''' '''level changer''''а вейпоинт? Вот теперь нам придется его создать. Выбираем '''Way Points''' -&amp;gt; жмем &amp;quot;чайник&amp;quot; и стави 1 вейпоинт рядом с level changer(так мы создали начальную точку пути), теперь жмем '''point mode''' и ставим второй. Если они не соеденились стрелочкой, жмем '''create 1-link'''. Теперь у нас получился путь, который мы прописали в custom data '''level changer''', заходим в свойства и обзываем его также как и в '''custom data''', тоесть '''atp_1_way_if_reject'''. Всё с первым уровнем покончили.&lt;br /&gt;
&lt;br /&gt;
Итак, открываем второй уровень и поехали по новой...&lt;br /&gt;
&lt;br /&gt;
Создаем там путь из двух вейпоинтов по схеме выше и обзываем '''atp_2_way_if_reject'''. Создаем level changer называем его '''to_atp_1''',&lt;br /&gt;
в '''custom data''' пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_2_way_if_reject //название вэйпоинта&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В '''level to change''' указываем atp_1 //куда переходим с atp_2&lt;br /&gt;
В '''level point to change''' - '''start_actor_01'''(дада, тот который мы создали на первом левеле :) )&lt;br /&gt;
&lt;br /&gt;
Теперь здесь же на atp_2 создаем graph point с названием '''start_actor_01'''.&lt;br /&gt;
И еще один где вписываем следущие значения:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Name: exit_atp_2_01&lt;br /&gt;
Location: &amp;quot;свалка&amp;quot; //наименование локации&lt;br /&gt;
&lt;br /&gt;
Connection:&lt;br /&gt;
 Level name: atp_1 //первый уровень&lt;br /&gt;
 Point name: exit_atp_1_01 //связующая точка с первого уровня&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Незабудьте, что '''ACTOR''' должен быть только на одной локации(в нашем случае на atp_1), иначе компилятор выдаст ошибку. Всё!... Сохраняем, прекомпилим.&lt;br /&gt;
&lt;br /&gt;
Запускаем '''Ai Compiler''', выбираем по очереди наши два уровня и просчитываем шаг 1, проверям сетку. Теперь создаем ''текстовый документ'' и вписываем туда&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_1&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем его как .bat и запускаем.&lt;br /&gt;
&lt;br /&gt;
Создаем еще один текстовик пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -m&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем как .bat и стартуем.&lt;br /&gt;
&lt;br /&gt;
И наконец.. создаем 3ий &amp;quot;бантик&amp;quot;!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
bins\ai\1.exe -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Компилим, заходим в '''gamedata\spawns\''', переименовываем получившийся спавн в all.spawn и запускаем через новую игру. Как видит мы можете перемещаться с уровня на уровень туда сюда без каких-либо проблем.&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-</id>
		<title>Компиляция -=inGame АИ=-</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-"/>
				<updated>2008-01-07T20:04:04Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, приступим... Раз вы здесь, значит есть на то причина:&lt;br /&gt;
*1)либо вы нуп, увидевший аи-компилер и решивший забацать чтото крутое&lt;br /&gt;
*2)вы не нуп, но всё забыли или почти всё&lt;br /&gt;
*3)вы супер-аццкий про решивший глянуть на весь этот детсад свысока :)&lt;br /&gt;
&lt;br /&gt;
Ну чтож... начнем с самого простого, скомпилим левел с аи, монстрами на&lt;br /&gt;
карте mp_atp. Открываем левел.. первое что надо сделать убрать все &lt;br /&gt;
'''rpoint'''(мультиплеерные точки спавна). Убрали? Отлично. Создаем&lt;br /&gt;
'''Spawn elements -&amp;gt; actor''' ну и пожеланию в свойствах ('''Properties''')&lt;br /&gt;
в '''custom data''' прописываем ему предположим вот это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[spawn]&lt;br /&gt;
wpn_ak74&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тем самым при появлении игрока у него в руках уже будет калаш. Далее,&lt;br /&gt;
создаем монстра... любого по желанию, предположим кровососа и ставим на уровень.&lt;br /&gt;
Теперь дело за '''AI map''' - аи сетка, которая необходима для того, чтобы&lt;br /&gt;
нпс, монстры могли ориентироваться по уровню. Жмем Object и кликаем на  земле(тем самым мы ее &amp;quot;выбрали&amp;quot; для дальнейших манипуляций), затем '''AI Map''' -&amp;gt; '''Commands''' -&amp;gt; '''Make list from selected''', жмем '''add''' в разделе AI Map Nodes и add для добавления объектов слева вверху(чайник) и ставим на карте ноды в нужном вам порядке(достаточно одного), жмем '''Generate Full'''. &lt;br /&gt;
Всё, аи-сетка сгенерированна. Теперь добавляем на левел обязательно! 1 graph point ('''Spawns-&amp;gt;ai-&amp;gt;graph point'''), в нем можно ничего не писать. Сохраняем уровень, билдим ('''build'''). &lt;br /&gt;
&lt;br /&gt;
Следующим шагом будет правка конфигов.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
'''game_maps_single.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[level_maps_single]&lt;br /&gt;
...&lt;br /&gt;
testing_ai &lt;br /&gt;
//название вашего уровня&lt;br /&gt;
&lt;br /&gt;
[testing_ai]&lt;br /&gt;
global_rect  = -6,1220.0, 248.0,1481.0&lt;br /&gt;
texture      = map\map_escape&lt;br /&gt;
//текстура при загрузке&lt;br /&gt;
bound_rect  = -502.148,-412.284,379.976,474,479&lt;br /&gt;
weathers  = default&lt;br /&gt;
//погода&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''game_levels.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[levels]&lt;br /&gt;
...&lt;br /&gt;
level190&lt;br /&gt;
//номер вашего уровня&lt;br /&gt;
&lt;br /&gt;
[level190]&lt;br /&gt;
name   = testing_ai&lt;br /&gt;
caption = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
offset  = 2000.0, 800.0, 1000.0&lt;br /&gt;
id   = 193&lt;br /&gt;
//индентифакционный номер, должен быть уникальным&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''game_graphs.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
018   = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь открываем AI Compiler, указываем папку с '''сдк'''(.../level_editor, либо если он объединен с игрой, путь до нее). Выбираем ваш уровень.&lt;br /&gt;
Проходим 1ую стадию чернового просчета аи карты('''шаг 1'''), либо если вы хотите долго ждать и просчитать укрытия для нпс то выбираем '''шаг 2'''.&lt;br /&gt;
Далее строим граф и кросс-таблицу уровня шаг 3, потом граф игры '''шаг 4''' и наконец фаил .spawn '''шаг 5'''. После всех стадий заходим в gamedata\spawns\ и переименовываем '''test.spawn''' в '''all.spawn'''&lt;br /&gt;
&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id	=pseudoscience|&lt;br /&gt;
align = left|&lt;br /&gt;
backgroundcolor	= #f9f9f9|&lt;br /&gt;
image	=Lamp.gif|&lt;br /&gt;
heading	= Важные моменты -- Loxotron|&lt;br /&gt;
message = При правке конфигов не забывайте указывать реально существующую там погоду и картинку загрузки, иначе вылетит; не пытайтесь запустить уровень через .bat фаилы подобные указанному ниже, тоже будет вылет)&lt;br /&gt;
&amp;lt;pre&amp;gt;bin\xr_3da.exe -ltx user.ltx -nointro -external -start server(level/single/newgame) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее мы рассмотрим как собирать несколько уровней и устанавливать между ними переходы.&lt;br /&gt;
&lt;br /&gt;
Итак у вас два уровня... на одном из них стоит '''actor'''. Начнем с него:&lt;br /&gt;
создаем '''ai-&amp;gt;level changer''', затем '''shape-&amp;gt;sphere''', с помощью '''scale''' увеличиваем до необходимых размеров, теперь переключаемся в режим редактирования '''spawn element''', выделяем '''level changer''' и жмем '''commands-&amp;gt;attach object''', а затем кликаем на сферу... Всё, сфера и level changer теперь связаны. Далее идем в закладку '''properties''', указываем название, например '''to_atp_2''', теперь нужно прописать в '''custom data''' вейпоинт для возврата, в случае отказа игрока от перемещения с локации на локации(обязательно). Вписываем вот это:&lt;br /&gt;
&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_1_way_if_reject&lt;br /&gt;
//в случае отказа от перемещения, возвращаемся назад&lt;br /&gt;
&lt;br /&gt;
В '''Level to change''' вписываем наименование уровня, куда мы хотим переместиться с этого левела, например '''atp_2'''. &lt;br /&gt;
В '''Level Point to change''' указываем точку, в которой игрок появится...&lt;br /&gt;
'''start_actor_01'''. С '''level changer''' на этом уровне всё, пошли далее.&lt;br /&gt;
Создаем '''graph point''' или используем пустой существующий если у вас есть.&lt;br /&gt;
В него вписываем '''start_actor_01''', этот поинт для того чтобы мы смогли со второго левела '''atp_2''' перейти на '''atp_1'''(первый). Создаем еще один '''graph point''' c названием '''exit_atp_1_01''', в разделе '''location''' выбираем, например &amp;quot;экскейп&amp;quot;. В '''Connection -&amp;gt; Level name''' указываем уровень, с которым будет связан '''atp_1''', то есть выбираем '''atp_2''', в '''Connection-&amp;gt;Point Name''' вписываем точку связи из второго уровня, которую мы создадим потом '''exit_atp_2_01'''. С первым уровнем всё...&lt;br /&gt;
&lt;br /&gt;
Для чего нам нужен graph point'ы ''exit_xxx''?&lt;br /&gt;
''exit_xxx'' представляет собой '''connection_point'''(точку связи) - для того, чтобы компилятор знал, какие уровни он соединяет, а если по другому: начальный граф уровня, от него потом считаются все ноды.&lt;br /&gt;
&lt;br /&gt;
'''start_actor_xx''' - точка появления актера после перехода.&lt;br /&gt;
&lt;br /&gt;
Помните мы вписали в '''custom data''' '''level changer''''а вейпоинт? Вот теперь нам придется его создать. Выбираем '''Way Points''' -&amp;gt; жмем &amp;quot;чайник&amp;quot; и стави 1 вейпоинт рядом с level changer(так мы создали начальную точку пути), теперь жмем '''point mode''' и ставим второй. Если они не соеденились стрелочкой, жмем '''create 1-link'''. Теперь у нас получился путь, который мы прописали в custom data '''level changer''', заходим в свойства и обзываем его также как и в '''custom data''', тоесть '''atp_1_way_if_reject'''. Всё с первым уровнем покончили.&lt;br /&gt;
&lt;br /&gt;
Итак, открываем второй уровень и поехали по новой...&lt;br /&gt;
&lt;br /&gt;
Создаем там путь из двух вейпоинтов по схеме выше и обзываем '''atp_2_way_if_reject'''. Создаем level changer называем его '''to_atp_1''',&lt;br /&gt;
в custom data пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_2_way_if_reject //название вэйпоинта&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В '''level to change''' указываем atp_1 //куда переходим с atp_2&lt;br /&gt;
В '''level point to change''' - '''start_actor_01'''(дада, тот который мы создали на первом левеле :) )&lt;br /&gt;
&lt;br /&gt;
Теперь здесь же на atp_2 создаем graph point с названием '''start_actor_01'''.&lt;br /&gt;
И еще один где вписываем следущие значения:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Name: exit_atp_2_01&lt;br /&gt;
Location: &amp;quot;свалка&amp;quot; //наименование локации&lt;br /&gt;
&lt;br /&gt;
Connection:&lt;br /&gt;
 Level name: atp_1 //первый уровень&lt;br /&gt;
 Point name: exit_atp_1_01 //связующая точка с первого уровня&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Незабудьте, что '''ACTOR''' должен быть только на одной локации(в нашем случае на atp_1), иначе компилятор выдаст ошибку. Всё!... Сохраняем, прекомпилим.&lt;br /&gt;
&lt;br /&gt;
Запускаем '''Ai Compiler''', выбираем по очереди наши два уровня и просчитываем шаг 1, проверям сетку. Теперь создаем ''текстовый документ'' и вписываем туда&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_1&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем его как .bat и запускаем.&lt;br /&gt;
&lt;br /&gt;
Создаем еще один текстовик пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -m&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем как .bat и стартуем.&lt;br /&gt;
&lt;br /&gt;
И наконец.. создаем 3ий &amp;quot;бантик&amp;quot;!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
bins\ai\1.exe -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Компилим, заходим в '''gamedata\spawns\''', переименовываем получившийся спавн в all.spawn и запускаем через новую игру. Как видит мы можете перемещаться с уровня на уровень туда сюда без каких-либо проблем.&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-</id>
		<title>Компиляция -=inGame АИ=-</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-"/>
				<updated>2008-01-07T19:52:04Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, приступим... Раз вы здесь, значит есть на то причина:&lt;br /&gt;
*1)либо вы нуп, увидевший аи-компилер и решивший забацать чтото крутое&lt;br /&gt;
*2)вы не нуп, но всё забыли или почти всё&lt;br /&gt;
*3)вы супер-аццкий про решивший глянуть на весь этот детсад свысока :)&lt;br /&gt;
&lt;br /&gt;
Ну чтож... начнем с самого простого, скомпилим левел с аи, монстрами на&lt;br /&gt;
карте mp_atp. Открываем левел.. первое что надо сделать убрать все &lt;br /&gt;
'''rpoint'''(мультиплеерные точки спавна). Убрали? Отлично. Создаем&lt;br /&gt;
'''Spawn elements -&amp;gt; actor''' ну и пожеланию в свойствах ('''Properties''')&lt;br /&gt;
в '''custom data''' прописываем ему предположим вот это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[spawn]&lt;br /&gt;
wpn_ak74&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тем самым при появлении игрока у него в руках уже будет калаш. Далее,&lt;br /&gt;
создаем монстра... любого по желанию, предположим кровососа и ставим на уровень.&lt;br /&gt;
Теперь дело за '''AI map''' - аи сетка, которая необходима для того, чтобы&lt;br /&gt;
нпс, монстры могли ориентироваться по уровню. Жмем Object и кликаем на  земле(тем самым мы ее &amp;quot;выбрали&amp;quot; для дальнейших манипуляций), затем '''AI Map''' -&amp;gt; '''Commands''' -&amp;gt; '''Make list from selected''', жмем '''add''' в разделе AI Map Nodes и add для добавления объектов слева вверху(чайник) и ставим на карте ноды в нужном вам порядке(достаточно одного), жмем '''Generate Full'''. &lt;br /&gt;
Всё, аи-сетка сгенерированна. Теперь добавляем на левел обязательно! 1 graph point ('''Spawns-&amp;gt;ai-&amp;gt;graph point'''), в нем можно ничего не писать. Сохраняем уровень, билдим ('''build'''). &lt;br /&gt;
&lt;br /&gt;
Следующим шагом будет правка конфигов.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
'''game_maps_single.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[level_maps_single]&lt;br /&gt;
...&lt;br /&gt;
testing_ai &lt;br /&gt;
//название вашего уровня&lt;br /&gt;
&lt;br /&gt;
[testing_ai]&lt;br /&gt;
global_rect  = -6,1220.0, 248.0,1481.0&lt;br /&gt;
texture      = map\map_escape&lt;br /&gt;
//текстура при загрузке&lt;br /&gt;
bound_rect  = -502.148,-412.284,379.976,474,479&lt;br /&gt;
weathers  = default&lt;br /&gt;
//погода&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''game_levels.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[levels]&lt;br /&gt;
...&lt;br /&gt;
level190&lt;br /&gt;
//номер вашего уровня&lt;br /&gt;
&lt;br /&gt;
[level190]&lt;br /&gt;
name   = testing_ai&lt;br /&gt;
caption = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
offset  = 2000.0, 800.0, 1000.0&lt;br /&gt;
id   = 193&lt;br /&gt;
//индентифакционный номер, должен быть уникальным&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''game_graphs.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
018   = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь открываем AI Compiler, указываем папку с '''сдк'''(.../level_editor, либо если он объединен с игрой, путь до нее). Выбираем ваш уровень.&lt;br /&gt;
Проходим 1ую стадию чернового просчета аи карты('''шаг 1'''), либо если вы хотите долго ждать и просчитать укрытия для нпс то выбираем '''шаг 2'''.&lt;br /&gt;
Далее строим граф и кросс-таблицу уровня шаг 3, потом граф игры '''шаг 4''' и наконец фаил .spawn '''шаг 5'''. После всех стадий заходим в gamedata\spawns\ и переименовываем '''test.spawn''' в '''all.spawn'''&lt;br /&gt;
&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id	=pseudoscience|&lt;br /&gt;
align = left|&lt;br /&gt;
backgroundcolor	= #f9f9f9|&lt;br /&gt;
image	=Lamp.gif|&lt;br /&gt;
heading	= Важные моменты -- Loxotron|&lt;br /&gt;
message = При правке конфигов не забывайте указывать реально существующую там погоду и картинку загрузки, иначе вылетит; не пытайтесь запустить уровень через .bat фаилы подобные указанному ниже, тоже будет вылет)&lt;br /&gt;
&amp;lt;pre&amp;gt;bin\xr_3da.exe -ltx user.ltx -nointro -external -start server(level/single/newgame) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее мы рассмотрим как собирать несколько уровней и устанавливать между ними переходы.&lt;br /&gt;
&lt;br /&gt;
Итак у вас два уровня... на одном из них стоит '''actor'''. Начнем с него:&lt;br /&gt;
создаем '''ai-&amp;gt;level changer''', затем '''shape-&amp;gt;sphere''', с помощью '''scale''' увеличиваем до необходимых размеров, теперь переключаемся в режим редактирования spawn element, выделяем '''level changer''' и жмем '''commands-&amp;gt;attach object''', а затем кликаем на сферу... Всё, сфера и level changer теперь связаны. Далее идем в закладку '''properties''', указываем название, например '''to_atp_2''', теперь нужно прописать в custom data вейпоинт для возврата, в случае отказа игрока от перемещения с локации на локации(обязательно). Вписываем вот это:&lt;br /&gt;
&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_1_way_if_reject&lt;br /&gt;
//в случае отказа от перемещения, возвращаемся назад&lt;br /&gt;
&lt;br /&gt;
В '''Level to change''' вписываем наименование уровня, куда мы хотим переместиться с этого левела, например '''atp_2'''. &lt;br /&gt;
В '''Level Point to change''' указываем точку, в которой игрок появится...&lt;br /&gt;
'''start_actor_01'''. С level changer на этом уровне всё, пошли далее.&lt;br /&gt;
Создаем '''graph point''' или используем пустой существующий если у вас есть.&lt;br /&gt;
В него вписываем '''start_actor_01''', этот поинт для того чтобы мы смогли со второго левела '''atp_2''' -&amp;gt; на '''atp_1'''. Создаем еще один '''graph point''' c названием '''exit_atp_1_01''', в разделе location выбираем, например &amp;quot;экскейп&amp;quot;. В '''Connection -&amp;gt; Level name''' указываем уровень, с которым будет связан atp_1, то есть выбираем '''atp_2''', в '''Connection-&amp;gt;Point Name''' вписываем точку связи из второго уровня, которую мы создадим потом '''exit_atp_2_01'''. С первым уровнем всё...&lt;br /&gt;
&lt;br /&gt;
Для чего нам нужен graph point'ы ''exit_xxx''?&lt;br /&gt;
''exit_xxx'' представляет собой '''connection_point'''(точку связи) - для того, чтобы компилятор знал, какие уровни он соединяет, а если по другому: начальный граф уровня, от него потом считаются все ноды.&lt;br /&gt;
&lt;br /&gt;
'''start_actor_xx''' - точка появления актера после перехода.&lt;br /&gt;
&lt;br /&gt;
Помните мы вписали в custom data level changer'а вейпоинт? Вот теперь нам придется его создать. Выбираем '''Way Points''' -&amp;gt; жмем &amp;quot;чайник&amp;quot; и стави 1 вейпоинт рядом с level changer(так мы создали начальную точку пути), теперь жмем '''point mode''' и ставим второй. Если они не соеденились стрелочкой, жмем '''create 1-link'''. Теперь у нас получился путь, который мы прописали в custom data '''level changer''', заходим в свойства и обзываем его также как и в custom data, тоесть atp_1_way_if_reject. Всё с первым уровнем покончили.&lt;br /&gt;
&lt;br /&gt;
Итак, открываем второй уровень и поехали по новой...&lt;br /&gt;
&lt;br /&gt;
Создаем там путь из двух вейпоинтов по схеме выше и обзываем '''atp_2_way_if_reject'''. Создаем level changer называем его '''to_atp_1''',&lt;br /&gt;
в custom data пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_2_way_if_reject //название вэйпоинта&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В '''level to change''' указываем atp_1 //куда переходим с atp_2&lt;br /&gt;
В '''level point to change''' - '''start_actor_01'''(дада, тот который мы создали на первом левеле :) )&lt;br /&gt;
&lt;br /&gt;
Теперь здесь же на atp_2 создаем graph point с названием '''start_actor_01'''.&lt;br /&gt;
И еще один где вписываем следущие значения:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Name: exit_atp_2_01&lt;br /&gt;
Location: &amp;quot;свалка&amp;quot; //наименование локации&lt;br /&gt;
&lt;br /&gt;
Connection:&lt;br /&gt;
 Level name: atp_1 //первый уровень&lt;br /&gt;
 Point name: exit_atp_1_01 //связующая точка с первого уровня&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Незабудьте, что '''ACTOR''' должен быть только на одной локации(в нашем случае на atp_1), иначе компилятор выдаст ошибку. Всё!... Сохраняем, прекомпилим.&lt;br /&gt;
&lt;br /&gt;
Запускаем '''Ai Compiler''', выбираем по очереди наши два уровня и просчитываем шаг 1, проверям сетку. Теперь создаем ''текстовый документ'' и вписываем туда&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_1&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем его как .bat и запускаем.&lt;br /&gt;
&lt;br /&gt;
Создаем еще один текстовик пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -m&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем как .bat и стартуем.&lt;br /&gt;
&lt;br /&gt;
И наконец.. создаем 3ий &amp;quot;бантик&amp;quot;!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
bins\ai\1.exe -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Компилим, заходим в '''gamedata\spawns\''', переименовываем получившийся спавн в all.spawn и запускаем через новую игру. Как видит мы можете перемещаться с уровня на уровень туда сюда без каких-либо проблем.&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-</id>
		<title>Компиляция -=inGame АИ=-</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-"/>
				<updated>2008-01-07T19:51:32Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, приступим... Раз вы здесь, значит есть на то причина:&lt;br /&gt;
*1)либо вы нуп, увидевший аи-компилер и решивший забацать чтото крутое&lt;br /&gt;
*2)вы не нуп, но всё забыли или почти всё&lt;br /&gt;
*3)вы супер-аццкий про решивший глянуть на весь этот детсад свысока :)&lt;br /&gt;
&lt;br /&gt;
Ну чтож... начнем с самого простого, скомпилим левел с аи, монстрами на&lt;br /&gt;
карте mp_atp. Открываем левел.. первое что надо сделать убрать все &lt;br /&gt;
'''rpoint'''(мультиплеерные точки спавна). Убрали? Отлично. Создаем&lt;br /&gt;
'''Spawn elements -&amp;gt; actor''' ну и пожеланию в свойствах ('''Properties''')&lt;br /&gt;
в '''custom data''' прописываем ему предположим вот это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[spawn]&lt;br /&gt;
wpn_ak74&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тем самым при появлении игрока у него в руках уже будет калаш. Далее,&lt;br /&gt;
создаем монстра... любого по желанию, предположим кровососа и ставим на уровень.&lt;br /&gt;
Теперь дело за '''AI map''' - аи сетка, которая необходима для того, чтобы&lt;br /&gt;
нпс, монстры могли ориентироваться по уровню. Жмем Object и кликаем на  земле(тем самым мы ее &amp;quot;выбрали&amp;quot; для дальнейших манипуляций), затем '''AI Map''' -&amp;gt; '''Commands''' -&amp;gt; '''Make list from selected''', жмем '''add''' в разделе AI Map Nodes и add для добавления объектов слева вверху(чайник) и ставим на карте ноды в нужном вам порядке(достаточно одного), жмем '''Generate Full'''. &lt;br /&gt;
Всё, аи-сетка сгенерированна. Теперь добавляем на левел обязательно! 1 graph point ('''Spawns-&amp;gt;ai-&amp;gt;graph point'''), в нем можно ничего не писать. Сохраняем уровень, билдим ('''build'''). &lt;br /&gt;
&lt;br /&gt;
Следующим шагом будет правка конфигов.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
'''game_maps_single.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[level_maps_single]&lt;br /&gt;
...&lt;br /&gt;
testing_ai &lt;br /&gt;
//название вашего уровня&lt;br /&gt;
&lt;br /&gt;
[testing_ai]&lt;br /&gt;
global_rect  = -6,1220.0, 248.0,1481.0&lt;br /&gt;
texture      = map\map_escape&lt;br /&gt;
//текстура при загрузке&lt;br /&gt;
bound_rect  = -502.148,-412.284,379.976,474,479&lt;br /&gt;
weathers  = default&lt;br /&gt;
//погода&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''game_levels.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[levels]&lt;br /&gt;
...&lt;br /&gt;
level190&lt;br /&gt;
//номер вашего уровня&lt;br /&gt;
&lt;br /&gt;
[level190]&lt;br /&gt;
name   = testing_ai&lt;br /&gt;
caption = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
offset  = 2000.0, 800.0, 1000.0&lt;br /&gt;
id   = 193&lt;br /&gt;
//индентифакционный номер, должен быть уникальным&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''game_graphs.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
018   = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь открываем AI Compiler, указываем папку с '''сдк'''(.../level_editor, либо если он объединен с игрой, путь до нее). Выбираем ваш уровень.&lt;br /&gt;
Проходим 1ую стадию чернового просчета аи карты('''шаг 1'''), либо если вы хотите долго ждать и просчитать укрытия для нпс то выбираем '''шаг 2'''.&lt;br /&gt;
Далее строим граф и кросс-таблицу уровня шаг 3, потом граф игры '''шаг 4''' и наконец фаил .spawn '''шаг 5'''. После всех стадий заходим в gamedata\spawns\ и переименовываем '''test.spawn''' в '''all.spawn'''&lt;br /&gt;
&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id	=pseudoscience|&lt;br /&gt;
align = left|&lt;br /&gt;
backgroundcolor	= #f9f9f9|&lt;br /&gt;
image	=Lamp.gif|&lt;br /&gt;
heading	= Важные моменты -- Loxotron|&lt;br /&gt;
message = При правке конфигов не забывайте указывать реально существующую там погоду и картинку загрузки, иначе вылетит; не пытайтесь запустить уровень через .bat фаилы подобные указанному ниже, тоже будет вылет)&lt;br /&gt;
&amp;lt;pre&amp;gt;bin\xr_3da.exe -ltx user.ltx -nointro -external -start server(level/single/newgame) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее мы рассмотрим как собирать несколько уровней и устанавливать между ними переходы.&lt;br /&gt;
&lt;br /&gt;
Итак у вас два уровня... на одном из них стоит '''actor'''. Начнем с него:&lt;br /&gt;
создаем '''ai-&amp;gt;level changer''', затем '''shape-&amp;gt;sphere''', с помощью '''scale''' увеличиваем до необходимых размеров, теперь переключаемся в режим редактирования spawn element, выделяем '''level changer''' и жмем '''commands-&amp;gt;attach object''', а затем кликаем на сферу... Всё, сфера и level changer теперь связаны. Далее идем в закладку '''properties''', указываем название, например '''to_atp_2''', теперь нужно прописать в custom data вейпоинт для возврата, в случае отказа игрока от перемещения с локации на локации(обязательно). Вписываем вот это:&lt;br /&gt;
&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_1_way_if_reject&lt;br /&gt;
//в случае отказа от перемещения, возвращаемся назад&lt;br /&gt;
&lt;br /&gt;
В '''Level to change''' вписываем наименование уровня, куда мы хотим переместиться с этого левела, например '''atp_2'''. &lt;br /&gt;
В '''Level Point to change''' указываем точку, в которой игрок появится...&lt;br /&gt;
'''start_actor_01'''. С level changer на этом уровне всё, пошли далее.&lt;br /&gt;
Создаем '''graph point''' или используем пустой существующий если у вас есть.&lt;br /&gt;
В него вписываем '''start_actor_01''', этот поинт для того чтобы мы смогли со второго левела '''atp_2''' -&amp;gt; на '''atp_1'''. Создаем еще один '''graph point''' c названием '''exit_atp_1_01''', в разделе location выбираем, например &amp;quot;экскейп&amp;quot;. В '''Connection -&amp;gt; Level name''' указываем уровень, с которым будет связан atp_1, то есть выбираем '''atp_2''', в '''Connection-&amp;gt;Point Name''' вписываем точку связи из второго уровня, которую мы создадим потом '''exit_atp_2_01'''. С первым уровнем всё...&lt;br /&gt;
&lt;br /&gt;
Для чего нам нужен graph point'ы ''exit_xxx''?&lt;br /&gt;
''exit_xxx'' представляет собой '''connection_point'''(точку связи) - для того, чтобы компилятор знал, какие уровни он соединяет, а если по другому: начальный граф уровня, от него потом считаются все ноды.&lt;br /&gt;
&lt;br /&gt;
'''start_actor_xx''' - точка появления актера после перехода.&lt;br /&gt;
&lt;br /&gt;
Помните мы вписали в custom data level changer'а вейпоинт? Вот теперь нам придется его создать. Выбираем '''Way Points''' -&amp;gt; жмем &amp;quot;чайник&amp;quot; и стави 1 вейпоинт рядом с level changer(так мы создали начальную точку пути), теперь жмем '''point mode''' и ставим второй. Если они не соеденились стрелочкой, жмем '''create 1-link'''. Теперь у нас получился путь, который мы прописали в custom data '''level changer''', заходим в свойства и обзываем его также как и в custom data, тоесть atp_1_way_if_reject. Всё с первым уровнем покончили.&lt;br /&gt;
&lt;br /&gt;
Итак, открываем второй уровень и поехали по новой...&lt;br /&gt;
&lt;br /&gt;
Создаем там путь из двух вейпоинтов по схеме выше и обзываем '''atp_2_way_if_reject'''. Создаем level changer называем его '''to_atp_1''',&lt;br /&gt;
в custom data пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_2_way_if_reject //название вэйпоинта&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В '''level to change''' указываем atp_1 //куда переходим с atp_2&lt;br /&gt;
В '''level point to change''' - '''start_actor_01'''(дада, тот который мы создали на первом левеле :) )&lt;br /&gt;
&lt;br /&gt;
Теперь здесь же на atp_2 создаем graph point с названием '''start_actor_01'''.&lt;br /&gt;
И еще один где вписываем следущие значения:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
'''Name:''' exit_atp_2_01&lt;br /&gt;
'''Location:''' &amp;quot;свалка&amp;quot; //наименование локации&lt;br /&gt;
&lt;br /&gt;
Connection:&lt;br /&gt;
'''Level name:''' atp_1 //первый уровень&lt;br /&gt;
'''Point name:''' exit_atp_1_01 //связующая точка с первого уровня&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Незабудьте, что '''ACTOR''' должен быть только на одной локации(в нашем случае на atp_1), иначе компилятор выдаст ошибку. Всё!... Сохраняем, прекомпилим.&lt;br /&gt;
&lt;br /&gt;
Запускаем '''Ai Compiler''', выбираем по очереди наши два уровня и просчитываем шаг 1, проверям сетку. Теперь создаем ''текстовый документ'' и вписываем туда&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_1&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем его как .bat и запускаем.&lt;br /&gt;
&lt;br /&gt;
Создаем еще один текстовик пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -m&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем как .bat и стартуем.&lt;br /&gt;
&lt;br /&gt;
И наконец.. создаем 3ий &amp;quot;бантик&amp;quot;!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
bins\ai\1.exe -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Компилим, заходим в '''gamedata\spawns\''', переименовываем получившийся спавн в all.spawn и запускаем через новую игру. Как видит мы можете перемещаться с уровня на уровень туда сюда без каких-либо проблем.&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-</id>
		<title>Компиляция -=inGame АИ=-</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-"/>
				<updated>2008-01-07T19:50:03Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, приступим... Раз вы здесь, значит есть на то причина:&lt;br /&gt;
*1)либо вы нуп, увидевший аи-компилер и решивший забацать чтото крутое&lt;br /&gt;
*2)вы не нуп, но всё забыли или почти всё&lt;br /&gt;
*3)вы супер-аццкий про решивший глянуть на весь этот детсад свысока :)&lt;br /&gt;
&lt;br /&gt;
Ну чтож... начнем с самого простого, скомпилим левел с аи, монстрами на&lt;br /&gt;
карте mp_atp. Открываем левел.. первое что надо сделать убрать все &lt;br /&gt;
'''rpoint'''(мультиплеерные точки спавна). Убрали? Отлично. Создаем&lt;br /&gt;
'''Spawn elements -&amp;gt; actor''' ну и пожеланию в свойствах ('''Properties''')&lt;br /&gt;
в '''custom data''' прописываем ему предположим вот это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[spawn]&lt;br /&gt;
wpn_ak74&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тем самым при появлении игрока у него в руках уже будет калаш. Далее,&lt;br /&gt;
создаем монстра... любого по желанию, предположим кровососа и ставим на уровень.&lt;br /&gt;
Теперь дело за '''AI map''' - аи сетка, которая необходима для того, чтобы&lt;br /&gt;
нпс, монстры могли ориентироваться по уровню. Жмем Object и кликаем на  земле(тем самым мы ее &amp;quot;выбрали&amp;quot; для дальнейших манипуляций), затем '''AI Map''' -&amp;gt; '''Commands''' -&amp;gt; '''Make list from selected''', жмем '''add''' в разделе AI Map Nodes и add для добавления объектов слева вверху(чайник) и ставим на карте ноды в нужном вам порядке(достаточно одного), жмем '''Generate Full'''. &lt;br /&gt;
Всё, аи-сетка сгенерированна. Теперь добавляем на левел обязательно! 1 graph point ('''Spawns-&amp;gt;ai-&amp;gt;graph point'''), в нем можно ничего не писать. Сохраняем уровень, билдим ('''build'''). &lt;br /&gt;
&lt;br /&gt;
Следующим шагом будет правка конфигов.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
'''game_maps_single.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[level_maps_single]&lt;br /&gt;
...&lt;br /&gt;
testing_ai &lt;br /&gt;
//название вашего уровня&lt;br /&gt;
&lt;br /&gt;
[testing_ai]&lt;br /&gt;
global_rect  = -6,1220.0, 248.0,1481.0&lt;br /&gt;
texture      = map\map_escape&lt;br /&gt;
//текстура при загрузке&lt;br /&gt;
bound_rect  = -502.148,-412.284,379.976,474,479&lt;br /&gt;
weathers  = default&lt;br /&gt;
//погода&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''game_levels.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[levels]&lt;br /&gt;
...&lt;br /&gt;
level190&lt;br /&gt;
//номер вашего уровня&lt;br /&gt;
&lt;br /&gt;
[level190]&lt;br /&gt;
name   = testing_ai&lt;br /&gt;
caption = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
offset  = 2000.0, 800.0, 1000.0&lt;br /&gt;
id   = 193&lt;br /&gt;
//индентифакционный номер, должен быть уникальным&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''game_graphs.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
018   = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь открываем AI Compiler, указываем папку с '''сдк'''(.../level_editor, либо если он объединен с игрой, путь до нее). Выбираем ваш уровень.&lt;br /&gt;
Проходим 1ую стадию чернового просчета аи карты('''шаг 1'''), либо если вы хотите долго ждать и просчитать укрытия для нпс то выбираем '''шаг 2'''.&lt;br /&gt;
Далее строим граф и кросс-таблицу уровня шаг 3, потом граф игры '''шаг 4''' и наконец фаил .spawn '''шаг 5'''. После всех стадий заходим в gamedata\spawns\ и переименовываем '''test.spawn''' в '''all.spawn'''&lt;br /&gt;
&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id	=pseudoscience|&lt;br /&gt;
align = left|&lt;br /&gt;
backgroundcolor	= #f9f9f9|&lt;br /&gt;
image	=Lamp.gif|&lt;br /&gt;
heading	= Важные моменты -- Loxotron|&lt;br /&gt;
message = При правке конфигов не забывайте указывать реально существующую там погоду и картинку загрузки, иначе вылетит; не пытайтесь запустить уровень через .bat фаилы подобные указанному ниже, тоже будет вылет)&lt;br /&gt;
&amp;lt;pre&amp;gt;bin\xr_3da.exe -ltx user.ltx -nointro -external -start server(level/single/newgame) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее мы рассмотрим как собирать несколько уровней и устанавливать между ними переходы.&lt;br /&gt;
&lt;br /&gt;
Итак у вас два уровня... на одном из них стоит '''actor'''. Начнем с него:&lt;br /&gt;
создаем '''ai-&amp;gt;level changer''', затем '''shape-&amp;gt;sphere''', с помощью '''scale''' увеличиваем до необходимых размеров, теперь переключаемся в режим редактирования spawn element, выделяем '''level changer''' и жмем '''commands-&amp;gt;attach object''', а затем кликаем на сферу... Всё, сфера и level changer теперь связаны. Далее идем в закладку '''properties''', указываем название, например '''to_atp_2''', теперь нужно прописать в custom data вейпоинт для возврата, в случае отказа игрока от перемещения с локации на локации(обязательно). Вписываем вот это:&lt;br /&gt;
&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_1_way_if_reject&lt;br /&gt;
//в случае отказа от перемещения, возвращаемся назад&lt;br /&gt;
&lt;br /&gt;
В '''Level to change''' вписываем наименование уровня, куда мы хотим переместиться с этого левела, например '''atp_2'''. &lt;br /&gt;
В '''Level Point to change''' указываем точку, в которой игрок появится...&lt;br /&gt;
'''start_actor_01'''. С level changer на этом уровне всё, пошли далее.&lt;br /&gt;
Создаем '''graph point''' или используем пустой существующий если у вас есть.&lt;br /&gt;
В него вписываем '''start_actor_01''', этот поинт для того чтобы мы смогли со второго левела '''atp_2''' -&amp;gt; на '''atp_1'''. Создаем еще один '''graph point''' c названием '''exit_atp_1_01''', в разделе location выбираем, например &amp;quot;экскейп&amp;quot;. В '''Connection -&amp;gt; Level name''' указываем уровень, с которым будет связан atp_1, то есть выбираем '''atp_2''', в '''Connection-&amp;gt;Point Name''' вписываем точку связи из второго уровня, которую мы создадим потом '''exit_atp_2_01'''. С первым уровнем всё...&lt;br /&gt;
&lt;br /&gt;
Для чего нам нужен graph point'ы ''exit_xxx''?&lt;br /&gt;
''exit_xxx'' представляет собой '''connection_point'''(точку связи) - для того, чтобы компилятор знал, какие уровни он соединяет, а если по другому: начальный граф уровня, от него потом считаются все ноды.&lt;br /&gt;
&lt;br /&gt;
start_actor_xx - точка появления актера после перехода.&lt;br /&gt;
&lt;br /&gt;
Помните мы вписали в custom data level changer'а вейпоинт? Вот теперь нам придется его создать. Выбираем '''Way Points''' -&amp;gt; жмем &amp;quot;чайник&amp;quot; и стави 1 вейпоинт рядом с level changer(так мы создали начальную точку пути), теперь жмем '''point mode''' и ставим второй. Если они не соеденились стрелочкой, жмем '''create 1-link'''. Теперь у нас получился путь, который мы прописали в custom data '''level changer''', заходим в свойства и обзываем его также как и в custom data, тоесть atp_1_way_if_reject. Всё с первым уровнем покончили.&lt;br /&gt;
&lt;br /&gt;
Итак, открываем второй уровень и поехали по новой...&lt;br /&gt;
&lt;br /&gt;
Создаем там путь из двух вейпоинтов по схеме выше и обзываем '''atp_2_way_if_reject'''. Создаем level changer называем его '''to_atp_1''',&lt;br /&gt;
в custom data пишем&lt;br /&gt;
&lt;br /&gt;
[pt_move_if_reject]&lt;br /&gt;
path = atp_2_way_if_reject //название вэйпоинта&lt;br /&gt;
&lt;br /&gt;
В '''level to change''' указываем atp_1 //куда переходим с atp_2&lt;br /&gt;
В '''level point to change''' - '''start_actor_01'''(дада, тот который мы создали на первом левеле :) )&lt;br /&gt;
&lt;br /&gt;
Теперь здесь же на atp_2 создаем graph point с названием '''start_actor_01'''.&lt;br /&gt;
И еще один где вписываем следущие значения:&lt;br /&gt;
'''Name:''' exit_atp_2_01&lt;br /&gt;
'''Location:''' &amp;quot;свалка&amp;quot; //наименование локации&lt;br /&gt;
&lt;br /&gt;
Connection:&lt;br /&gt;
'''Level name:''' atp_1 //первый уровень&lt;br /&gt;
'''Point name:''' exit_atp_1_01 //связующая точка с первого уровня&lt;br /&gt;
&lt;br /&gt;
Незабудьте, что '''ACTOR''' должен быть только на одной локации(в нашем случае на atp_1), иначе компилятор выдаст ошибку. Всё!... Сохраняем, прекомпилим.&lt;br /&gt;
&lt;br /&gt;
Запускаем '''Ai Compiler''', выбираем по очереди наши два уровня и просчитываем шаг 1, проверям сетку. Теперь создаем ''текстовый документ'' и вписываем туда&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_1&lt;br /&gt;
@start /wait bins\ai\1.exe -g atp_2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем его как .bat и запускаем.&lt;br /&gt;
&lt;br /&gt;
Создаем еще один текстовик пишем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
@start /wait bins\ai\1.exe -m&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
сохраняем как .bat и стартуем.&lt;br /&gt;
&lt;br /&gt;
И наконец.. создаем 3ий &amp;quot;бантик&amp;quot;!&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
bins\ai\1.exe -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Компилим, заходим в gamedata\spawns\, переименовываем получивший спавн в all.spawn и запускаем через новую игру. Как видит мы можете перемещаться с уровня на уровень туда сюда без каких-либо проблем.&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-</id>
		<title>Компиляция -=inGame АИ=-</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-"/>
				<updated>2008-01-07T18:58:15Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, приступим... Раз вы здесь, значит есть на то причина:&lt;br /&gt;
*1)либо вы нуп, увидевший аи-компилер и решивший забацать чтото крутое&lt;br /&gt;
*2)вы не нуп, но всё забыли или почти всё&lt;br /&gt;
*3)вы супер-аццкий про решивший глянуть на весь этот детсад свысока :)&lt;br /&gt;
&lt;br /&gt;
Ну чтож... начнем с самого простого, скомпилим левел с аи, монстрами на&lt;br /&gt;
карте mp_atp. Открываем левел.. первое что надо сделать убрать все &lt;br /&gt;
'''rpoint'''(мультиплеерные точки спавна). Убрали? Отлично. Создаем&lt;br /&gt;
'''Spawn elements -&amp;gt; actor''' ну и пожеланию в свойствах ('''Properties''')&lt;br /&gt;
в '''custom data''' прописываем ему предположим вот это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[spawn]&lt;br /&gt;
wpn_ak74&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тем самым при появлении игрока у него в руках уже будет калаш. Далее,&lt;br /&gt;
создаем монстра... любого по желанию, предположим кровососа и ставим на уровень.&lt;br /&gt;
Теперь дело за '''AI map''' - аи сетка, которая необходима для того, чтобы&lt;br /&gt;
нпс, монстры могли ориентироваться по уровню. Жмем Object и кликаем на  земле(тем самым мы ее &amp;quot;выбрали&amp;quot; для дальнейших манипуляций), затем '''AI Map''' -&amp;gt; '''Commands''' -&amp;gt; '''Make list from selected''', жмем '''add''' в разделе AI Map Nodes и add для добавления объектов слева вверху(чайник) и ставим на карте ноды в нужном вам порядке(достаточно одного), жмем '''Generate Full'''. &lt;br /&gt;
Всё, аи-сетка сгенерированна. Теперь добавляем на левел обязательно! 1 graph point ('''Spawns-&amp;gt;ai-&amp;gt;graph point'''), в нем можно ничего не писать. Сохраняем уровень, билдим ('''build'''). &lt;br /&gt;
&lt;br /&gt;
Следующим шагом будет правка конфигов.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
'''game_maps_single.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[level_maps_single]&lt;br /&gt;
...&lt;br /&gt;
testing_ai &lt;br /&gt;
//название вашего уровня&lt;br /&gt;
&lt;br /&gt;
[testing_ai]&lt;br /&gt;
global_rect  = -6,1220.0, 248.0,1481.0&lt;br /&gt;
texture      = map\map_escape&lt;br /&gt;
//текстура при загрузке&lt;br /&gt;
bound_rect  = -502.148,-412.284,379.976,474,479&lt;br /&gt;
weathers  = default&lt;br /&gt;
//погода&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''game_levels.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[levels]&lt;br /&gt;
...&lt;br /&gt;
level190&lt;br /&gt;
//номер вашего уровня&lt;br /&gt;
&lt;br /&gt;
[level190]&lt;br /&gt;
name   = testing_ai&lt;br /&gt;
caption = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
offset  = 2000.0, 800.0, 1000.0&lt;br /&gt;
id   = 193&lt;br /&gt;
//индентифакционный номер, должен быть уникальным&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''game_graphs.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
018   = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь открываем AI Compiler, указываем папку с '''сдк'''(.../level_editor, либо если он объединен с игрой, путь до нее). Выбираем ваш уровень.&lt;br /&gt;
Проходим 1ую стадию чернового просчета аи карты('''шаг 1'''), либо если вы хотите долго ждать и просчитать укрытия для нпс то выбираем '''шаг 2'''.&lt;br /&gt;
Далее строим граф и кросс-таблицу уровня шаг 3, потом граф игры '''шаг 4''' и наконец фаил .spawn '''шаг 5'''. После всех стадий заходим в gamedata\spawns\ и переименовываем '''test.spawn''' в '''all.spawn'''&lt;br /&gt;
&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id	=pseudoscience|&lt;br /&gt;
align = left|&lt;br /&gt;
backgroundcolor	= #f9f9f9|&lt;br /&gt;
image	=Lamp.gif|&lt;br /&gt;
heading	= Важные моменты -- Loxotron|&lt;br /&gt;
message = При правке конфигов не забывайте указывать реально существующую там погоду и картинку загрузки, иначе вылетит; не пытайтесь запустить уровень через .bat фаилы подобные указанному ниже, тоже будет вылет)&lt;br /&gt;
&amp;lt;pre&amp;gt;bin\xr_3da.exe -ltx user.ltx -nointro -external -start server(level/single/newgame) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее мы рассмотрим как собирать несколько уровней и устанавливать между ними переходы&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-</id>
		<title>Компиляция -=inGame АИ=-</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-"/>
				<updated>2008-01-07T18:57:32Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, приступим... Раз вы здесь, значит есть на то причина:&lt;br /&gt;
*1)либо вы нуп, увидевший аи-компилер и решивший забацать чтото крутое&lt;br /&gt;
*2)вы не нуп, но всё забыли или почти всё&lt;br /&gt;
*3)вы супер-аццкий про решивший глянуть на весь этот детсад свысока :)&lt;br /&gt;
&lt;br /&gt;
Ну чтож... начнем с самого простого, скомпилим левел с аи, монстрами на&lt;br /&gt;
карте mp_atp. Открываем левел.. первое что надо сделать убрать все &lt;br /&gt;
'''rpoint'''(мультиплеерные точки спавна). Убрали? Отлично. Создаем&lt;br /&gt;
'''Spawn elements -&amp;gt; actor''' ну и пожеланию в свойствах ('''Properties''')&lt;br /&gt;
в '''custom data''' прописываем ему предположим вот это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[spawn]&lt;br /&gt;
wpn_ak74&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тем самым при появлении игрока у него в руках уже будет калаш. Далее,&lt;br /&gt;
создаем монстра... любого по желанию, предположим кровососа и ставим на уровень.&lt;br /&gt;
Теперь дело за '''AI map''' - аи сетка, которая необходима для того, чтобы&lt;br /&gt;
нпс, монстры могли ориентироваться по уровню. Жмем Object и кликаем на  земле(тем самым мы ее &amp;quot;выбрали&amp;quot; для дальнейших манипуляций), затем '''AI Map''' -&amp;gt; '''Commands''' -&amp;gt; '''Make list from selected''', жмем '''add''' в разделе AI Map Nodes и add для добавления объектов слева вверху(чайник) и ставим на карте ноды в нужном вам порядке(достаточно одного), жмем '''Generate Full'''. &lt;br /&gt;
Всё, аи-сетка сгенерированна. Теперь добавляем на левел обязательно! 1 graph point ('''Spawns-&amp;gt;ai-&amp;gt;graph point'''), в нем можно ничего не писать. Сохраняем уровень, билдим ('''build'''). &lt;br /&gt;
&lt;br /&gt;
Следующим шагом будет правка конфигов.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
'''game_maps_single.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[level_maps_single]&lt;br /&gt;
...&lt;br /&gt;
testing_ai &lt;br /&gt;
//название вашего уровня&lt;br /&gt;
&lt;br /&gt;
[testing_ai]&lt;br /&gt;
global_rect  = -6,1220.0, 248.0,1481.0&lt;br /&gt;
texture      = map\map_escape&lt;br /&gt;
//текстура при загрузке&lt;br /&gt;
bound_rect  = -502.148,-412.284,379.976,474,479&lt;br /&gt;
weathers  = default&lt;br /&gt;
//погода&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''game_levels.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[levels]&lt;br /&gt;
...&lt;br /&gt;
level190&lt;br /&gt;
//номер вашего уровня&lt;br /&gt;
&lt;br /&gt;
[level190]&lt;br /&gt;
name   = testing_ai&lt;br /&gt;
caption = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
offset  = 2000.0, 800.0, 1000.0&lt;br /&gt;
id   = 193&lt;br /&gt;
//индентифакционный номер, должен быть уникальным&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''game_graphs.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
018   = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь открываем AI Compiler, указываем папку с '''сдк'''(.../level_editor, либо если он объединен с игрой, путь до нее). Выбираем ваш уровень.&lt;br /&gt;
Проходим 1ую стадию чернового просчета аи карты('''шаг 1'''), либо если вы хотите долго ждать и просчитать укрытия для нпс то выбираем '''шаг 2'''.&lt;br /&gt;
Далее строим граф и кросс-таблицу уровня шаг 3, потом граф игры '''шаг 4''' и наконец фаил .spawn '''шаг 5'''. После всех стадий заходим в gamedata\spawns\ и переименовываем '''test.spawn''' в '''all.spawn'''&lt;br /&gt;
&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id	=pseudoscience|&lt;br /&gt;
align = left|&lt;br /&gt;
backgroundcolor	= #f9f9f9|&lt;br /&gt;
image	=Lamp.gif|&lt;br /&gt;
heading	= Важные моменты -- Loxotron|&lt;br /&gt;
message = При правке конфигов не забывайте указывать реально существующую там погоду и картинку загрузки, иначе вылетит; не пытайтесь запустить уровень через .bat фаилы подбные указанному ниже, будет вылет)&lt;br /&gt;
&amp;lt;pre&amp;gt;bin\xr_3da.exe -ltx user.ltx -nointro -external -start server(level/single/newgame) client(localhost)&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее мы рассмотрим как собирать несколько уровней и устанавливать между ними переходы&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-</id>
		<title>Компиляция -=inGame АИ=-</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-"/>
				<updated>2008-01-07T18:46:36Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, приступим... Раз вы здесь, значит есть на то причина:&lt;br /&gt;
*1)либо вы нуп, увидевший аи-компилер и решивший забацать чтото крутое&lt;br /&gt;
*2)вы не нуп, но всё забыли или почти всё&lt;br /&gt;
*3)вы супер-аццкий про решивший глянуть на весь этот детсад свысока :)&lt;br /&gt;
&lt;br /&gt;
Ну чтож... начнем с самого простого, скомпилим левел с аи, монстрами на&lt;br /&gt;
карте mp_atp. Открываем левел.. первое что надо сделать убрать все &lt;br /&gt;
'''rpoint'''(мультиплеерные точки спавна). Убрали? Отлично. Создаем&lt;br /&gt;
'''Spawn elements -&amp;gt; actor''' ну и пожеланию в свойствах ('''Properties''')&lt;br /&gt;
в '''custom data''' прописываем ему предположим вот это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[spawn]&lt;br /&gt;
wpn_ak74&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тем самым при появлении игрока у него в руках уже будет калаш. Далее,&lt;br /&gt;
создаем монстра... любого по желанию, предположим кровососа и ставим на уровень.&lt;br /&gt;
Теперь дело за '''AI map''' - аи сетка, которая необходима для того, чтобы&lt;br /&gt;
нпс, монстры могли ориентироваться по уровню. Жмем Object и кликаем на  земле(тем самым мы ее &amp;quot;выбрали&amp;quot; для дальнейших манипуляций), затем '''AI Map''' -&amp;gt; '''Commands''' -&amp;gt; '''Make list from selected''', жмем '''add''' в разделе AI Map Nodes и add для добавления объектов слева вверху(чайник) и ставим на карте ноды в нужном вам порядке(достаточно одного), жмем '''Generate Full'''. &lt;br /&gt;
Всё, аи-сетка сгенерированна. Теперь добавляем на левел обязательно! 1 graph point ('''Spawns-&amp;gt;ai-&amp;gt;graph point'''), в нем можно ничего не писать. Сохраняем уровень, билдим ('''build'''). &lt;br /&gt;
&lt;br /&gt;
Следующим шагом будет правка конфигов.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
'''game_maps_single.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[level_maps_single]&lt;br /&gt;
...&lt;br /&gt;
testing_ai &lt;br /&gt;
//название вашего уровня&lt;br /&gt;
&lt;br /&gt;
[testing_ai]&lt;br /&gt;
global_rect  = -6,1220.0, 248.0,1481.0&lt;br /&gt;
texture      = map\map_escape&lt;br /&gt;
//текстура при загрузке&lt;br /&gt;
bound_rect  = -502.148,-412.284,379.976,474,479&lt;br /&gt;
weathers  = default&lt;br /&gt;
//погода&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''game_levels.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[levels]&lt;br /&gt;
...&lt;br /&gt;
level190&lt;br /&gt;
//номер вашего уровня&lt;br /&gt;
&lt;br /&gt;
[level190]&lt;br /&gt;
name   = testing_ai&lt;br /&gt;
caption = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
offset  = 2000.0, 800.0, 1000.0&lt;br /&gt;
id   = 193&lt;br /&gt;
//индентифакционный номер, должен быть уникальным&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''game_graphs.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
018   = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь открываем AI Compiler, указываем папку с '''сдк'''(.../level_editor, либо если он объединен с игрой, путь до нее). Выбираем ваш уровень.&lt;br /&gt;
Проходим 1ую стадию чернового просчета аи карты('''шаг 1'''), либо если вы хотите долго ждать и просчитать укрытия для нпс то выбираем '''шаг 2'''.&lt;br /&gt;
Далее строим граф и кросс-таблицу уровня шаг 3, потом граф игры шаг 4 и наконец фаил .spawn шаг 5. После всех стадий заходим в gamedata\spawns\ и переименовываем '''test.spawn''' в '''all.spawn'''&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-</id>
		<title>Компиляция -=inGame АИ=-</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-"/>
				<updated>2008-01-07T18:45:31Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, приступим... Раз вы здесь, значит есть на то причина:&lt;br /&gt;
*1)либо вы нуп, увидевший аи-компилер и решивший забацать чтото крутое&lt;br /&gt;
*2)вы не нуп, но всё забыли или почти всё&lt;br /&gt;
*3)вы супер-аццкий про решивший глянуть на весь этот детсад свысока :)&lt;br /&gt;
&lt;br /&gt;
Ну чтож... начнем с самого простого, скомпилим левел с аи, монстрами на&lt;br /&gt;
карте mp_atp. Открываем левел.. первое что надо сделать убрать все &lt;br /&gt;
'''rpoint'''(мультиплеерные точки спавна). Убрали? Отлично. Создаем&lt;br /&gt;
'''Spawn elements -&amp;gt; actor''' ну и пожеланию в свойствах ('''Properties''')&lt;br /&gt;
в '''custom data''' прописываем ему предположим вот это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[spawn]&lt;br /&gt;
wpn_ak74&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тем самым при появлении игрока у него в руках уже будет калаш. Далее,&lt;br /&gt;
создаем монстра... любого по желанию, предположим кровососа и ставим на уровень.&lt;br /&gt;
Теперь дело за '''AI map''' - аи сетка, которая необходима для того, чтобы&lt;br /&gt;
нпс, монстры могли ориентироваться по уровню. Жмем Object и кликаем на  земле(тем самым мы ее &amp;quot;выбрали&amp;quot; для дальнейших манипуляций), затем '''AI Map''' -&amp;gt; '''Commands''' -&amp;gt; '''Make list from selected''', жмем '''add''' в разделе AI Map Nodes и add для добавления объектов слева вверху(чайник) и ставим на карте ноды в нужном вам порядке(достаточно одного), жмем '''Generate Full'''. &lt;br /&gt;
Всё, аи-сетка сгенерированна. Теперь добавляем на левел обязательно! 1 graph point ('''Spawns-&amp;gt;ai-&amp;gt;graph point'''), в нем можно ничего не писать. Сохраняем уровень, билдим ('''build'''). &lt;br /&gt;
&lt;br /&gt;
Следующим шагом будет правка конфигов.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
'''game_maps_single.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[level_maps_single]&lt;br /&gt;
...&lt;br /&gt;
testing_ai &lt;br /&gt;
//название вашего уровня&lt;br /&gt;
&lt;br /&gt;
[testing_ai]&lt;br /&gt;
global_rect  = -6,1220.0, 248.0,1481.0&lt;br /&gt;
texture      = map\map_escape&lt;br /&gt;
//текстура при загрузке&lt;br /&gt;
bound_rect  = -502.148,-412.284,379.976,474,479&lt;br /&gt;
weathers  = default&lt;br /&gt;
//погода&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''game_levels.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[levels]&lt;br /&gt;
...&lt;br /&gt;
level190&lt;br /&gt;
&lt;br /&gt;
[level190]&lt;br /&gt;
name   = testing_ai&lt;br /&gt;
caption = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
offset  = 2000.0, 800.0, 1000.0&lt;br /&gt;
id   = 193&lt;br /&gt;
//индентифакционный номер, должен быть уникальным&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''game_graphs.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
018   = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь открываем AI Compiler, указываем папку с '''сдк'''(.../level_editor, либо если он объединен с игрой, путь до нее). Выбираем ваш уровень.&lt;br /&gt;
Проходим 1ую стадию чернового просчета аи карты('''шаг 1'''), либо если вы хотите долго ждать и просчитать укрытия для нпс то выбираем '''шаг 2'''.&lt;br /&gt;
Далее строим граф и кросс-таблицу уровня шаг 3, потом граф игры шаг 4 и наконец фаил .spawn шаг 5. После всех стадий заходим в gamedata\spawns\ и переименовываем '''test.spawn''' в '''all.spawn'''&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-</id>
		<title>Компиляция -=inGame АИ=-</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_-%3DinGame_%D0%90%D0%98%3D-"/>
				<updated>2008-01-07T18:44:52Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак, приступим... Раз вы здесь, значит есть на то причина:&lt;br /&gt;
*1)либо вы нуп, увидевший аи-компилер и решивший забацать чтото крутое&lt;br /&gt;
*2)вы не нуп, но всё забыли или почти всё&lt;br /&gt;
*3)вы супер-аццкий про решивший глянуть на весь этот детсад свысока :)&lt;br /&gt;
&lt;br /&gt;
Ну чтож... начнем с самого простого, скомпилим левел с аи, монстрами на&lt;br /&gt;
карте mp_atp. Открываем левел.. первое что надо сделать убрать все &lt;br /&gt;
'''rpoint'''(мультиплеерные точки спавна). Убрали? Отлично. Создаем&lt;br /&gt;
'''Spawn elements -&amp;gt; actor''' ну и пожеланию в свойствах ('''Properties''')&lt;br /&gt;
в '''custom data''' прописываем ему предположим вот это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code lua&amp;gt;&lt;br /&gt;
[spawn]&lt;br /&gt;
wpn_ak74&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тем самым при появлении игрока у него в руках уже будет калаш. Далее,&lt;br /&gt;
создаем монстра... любого по желанию, предположим кровососа и ставим на уровень.&lt;br /&gt;
Теперь дело за '''AI map''' - аи сетка, которая необходима для того, чтобы&lt;br /&gt;
нпс, монстры могли ориентироваться по уровню. Жмем Object и кликаем на  земле(тем самым мы ее &amp;quot;выбрали&amp;quot; для дальнейших манипуляций), затем '''AI Map''' -&amp;gt; '''Commands''' -&amp;gt; '''Make list from selected''', жмем '''add''' в разделе AI Map Nodes и add для добавления объектов слева вверху(чайник) и ставим на карте ноды в нужном вам порядке(достаточно одного), жмем '''Generate Full'''. &lt;br /&gt;
Всё, аи-сетка сгенерированна. Теперь добавляем на левел обязательно! 1 graph point ('''Spawns-&amp;gt;ai-&amp;gt;graph point'''), в нем можно ничего не писать. Сохраняем уровень, билдим ('''build'''). &lt;br /&gt;
&lt;br /&gt;
Следующим шагом будет правка конфигов.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
'''game_maps_single.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code lua&amp;gt;&lt;br /&gt;
[level_maps_single]&lt;br /&gt;
...&lt;br /&gt;
testing_ai &lt;br /&gt;
//название вашего уровня&lt;br /&gt;
&lt;br /&gt;
[testing_ai]&lt;br /&gt;
global_rect  = -6,1220.0, 248.0,1481.0&lt;br /&gt;
texture      = map\map_escape&lt;br /&gt;
//текстура при загрузке&lt;br /&gt;
bound_rect  = -502.148,-412.284,379.976,474,479&lt;br /&gt;
weathers  = default&lt;br /&gt;
//погода&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''game_levels.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code lua&amp;gt;&lt;br /&gt;
[levels]&lt;br /&gt;
...&lt;br /&gt;
level190&lt;br /&gt;
&lt;br /&gt;
[level190]&lt;br /&gt;
name   = testing_ai&lt;br /&gt;
caption = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
offset  = 2000.0, 800.0, 1000.0&lt;br /&gt;
id   = 193&lt;br /&gt;
//индентифакционный номер, должен быть уникальным&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''game_graphs.ltx'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code lua&amp;gt;&lt;br /&gt;
018   = &amp;quot;testing_ai&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь открываем AI Compiler, указываем папку с '''сдк'''(.../level_editor, либо если он объединен с игрой, путь до нее). Выбираем ваш уровень.&lt;br /&gt;
Проходим 1ую стадию чернового просчета аи карты('''шаг 1'''), либо если вы хотите долго ждать и просчитать укрытия для нпс то выбираем '''шаг 2'''.&lt;br /&gt;
Далее строим граф и кросс-таблицу уровня шаг 3, потом граф игры шаг 4 и наконец фаил .spawn шаг 5. После всех стадий заходим в gamedata\spawns\ и переименовываем '''test.spawn''' в '''all.spawn'''&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D1%8F,_%D0%BF%D0%BE%D1%88%D0%B0%D0%B3%D0%BE%D0%B2%D0%BE%D0%B5_%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE</id>
		<title>Создание уровня, пошаговое руководство</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D1%8F,_%D0%BF%D0%BE%D1%88%D0%B0%D0%B3%D0%BE%D0%B2%D0%BE%D0%B5_%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE"/>
				<updated>2008-01-07T14:18:53Z</updated>
		
		<summary type="html">&lt;p&gt;89.178.96.171: /* Создаём уровень */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|align=right&lt;br /&gt;
 |''Автор:'' '''[[Участник:Neo|Neo][]]'''&lt;br /&gt;
 |}&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id	=pseudoscience|&lt;br /&gt;
align = center|&lt;br /&gt;
backgroundcolor	= rgb(235, 235, 255);|&lt;br /&gt;
image	=Question.gif|&lt;br /&gt;
heading	=Возникли вопросы/предложения|&lt;br /&gt;
message =Пиши [[Обсуждение:Создание уровня, пошаговое руководство|тут]].}}&lt;br /&gt;
__TOC__&lt;br /&gt;
В данном уроке попытаюсь рассказать об основах работы с Level Editor-ом пакета SDK, на примере создания простейшего уровня.&lt;br /&gt;
&lt;br /&gt;
В пакете SDK уже довольно много готовой геометрии, которую можно размещать на своём уровне, но иногда хочется вставить что-то своё, это можно сделать, смоделировав объект в пакете 3D моделирования Maya или 3D Studio Max.&lt;br /&gt;
&lt;br /&gt;
== Создание геометрии ==&lt;br /&gt;
Научить работать в 3D редакторах я не смогу, поэтому подробно остановлюсь только на процессах установки и настройки плагина, текстурировании и назначении шейдеров геометрии.&lt;br /&gt;
=== Установка и настройка плагина === &lt;br /&gt;
&lt;br /&gt;
==== Установка для Maya ==== &lt;br /&gt;
Установка плагина заключается в копировании:&lt;br /&gt;
*Всех файлов из папки scripts_plugins\scripts в папку C:\Documents and Settings\UserName\My Documents\maya\scripts&lt;br /&gt;
*Всех файлов из папки scripts_plugins\ver-ххх в папку C:\Program Files\Autodesk\Maya_ххх\bin&lt;br /&gt;
*Файла scripts_plugins\xray_path.ltx в папку C:\Program Files\Autodesk\Maya_ххх\bin&lt;br /&gt;
==== Установка для 3D Studio Max ====&lt;br /&gt;
[http://stalkerin.gameru.net/modules.php?name=Downloads&amp;amp;d_op=viewtheoned&amp;amp;lid=100 Качаем] плагин. Распаковываем архив, копируем содержимое папки '''plugin'''(именно plugin) в папку макса.&lt;br /&gt;
==== Настройка ====&lt;br /&gt;
Далее в официальном руководстве написано, что требуется диск Х, мы приложили батник для создания этого диска и т.д.&lt;br /&gt;
Возможно кто-то согласится с таким вариантом, но я решил просто отредактировать файл xray_path.ltx и не мучатся с батником и диском.&lt;br /&gt;
&lt;br /&gt;
Необходимо изменить только первые две строчки файла xray_path.ltx:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$server_root$	= false| false|	e:\sdk\(это путь до папки в которой у вас находится SDK)&lt;br /&gt;
$local_root$	= false| false|	e:\sdk\(это путь до папки в которой у вас находится SDK)&lt;br /&gt;
После некоторого шаманства заработало в таком виде:&lt;br /&gt;
$server_root$	= false| false|	C:\Program Files\X-Ray SDK\level_editor\&lt;br /&gt;
$local_root$	= false| false|	C:\Program Files\X-Ray SDK\level_editor\&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Всё, можно пользоваться плагином.&lt;br /&gt;
&lt;br /&gt;
=== Настройка единиц измерения ===&lt;br /&gt;
Для того, чтобы размеры объектов в редакторе совпадали с теми, что используются в X-Ray SDK, необходимо выполнить соответствующую настройку.&lt;br /&gt;
&lt;br /&gt;
==== Настройка Maya ====&lt;br /&gt;
&lt;br /&gt;
Для начала необходимо единицы измерения перевести в метры (по умолчанию в Maya 8.5 используются сантиметры). Делается это в 2 этапа:&lt;br /&gt;
* Заходим в меню Window -&amp;gt; Settings/Preferences -&amp;gt; Preferences. В открывшемся диалоге, в категории Settings, находим список Working Units -&amp;gt; Linear и выбираем Meter, как показано на скриншоте (шаг 1, шаг 2).&lt;br /&gt;
* Теперь, для удобства работы, в настройках камеры необходимо изменить дальность отображения с 10м на 1000м (смотри скриншот шаг 3)&lt;br /&gt;
{|&lt;br /&gt;
|valign=top|[[Изображение:SantimToM1.gif|thumb|400px|Шаг 1: выбираем указанный пункт меню]]&lt;br /&gt;
|valign=top|[[Изображение:SantimToM2.gif|thumb|400px|Шаг 2: выбираем еденицы измерения - метры]]&lt;br /&gt;
|valign=top|[[Изображение:SantimToM3.gif|thumb|400px|Шаг 3: настраиваем камеру]]&lt;br /&gt;
|}&lt;br /&gt;
Замечен глюк: после настройки камеры изображение может пропасть, в чём дело пока не разобрался, но ситуацию помогает победить выбор в меню камеры следующих двух пунктов:&lt;br /&gt;
* Panel -&amp;gt; Perspective -&amp;gt; New&lt;br /&gt;
* View -&amp;gt; Camera Settings -&amp;gt; View Compass&lt;br /&gt;
&lt;br /&gt;
==== Настройка 3D Studio Max ====&lt;br /&gt;
Настройка заключается только в выборе в качестве единиц измерения метров.&lt;br /&gt;
*Заходим в меню Customize -&amp;gt; Units Setup... В группе Display Unit Scale ставим переключатель на Metric, в выпадающем списке ищем Meters.&lt;br /&gt;
[[Изображение:3d-max-unit-setup.gif|thumb|left|400px|Меняем единицы измерения]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
=== Моделирование ===&lt;br /&gt;
Для нашего простейшего уровня нам понадобится создать просто бокс в качестве террейна.&lt;br /&gt;
&lt;br /&gt;
Создадим box размеров 50м*50м*0,1м.&lt;br /&gt;
&lt;br /&gt;
==== Замечания и правила ====&lt;br /&gt;
&lt;br /&gt;
* Вся геометрия должна быть создана в реальных мировых размерах (если стол в реальной жизни высотой 1 метр, значит его надо и в Maya делать высотой 1 метр, всё предельно ясно и просто)&lt;br /&gt;
* Bounding box персонажа имеет три состояния: стоя (1.8х0.7х0.7 в метрах), сидя (1.5х0.7х0.7 в метрах) и очень сидя (1.2х0.7х0.7 в метрах).&lt;br /&gt;
* Весь уровень должен быть не больше 150 тысяч треугольников.&lt;br /&gt;
* Сцена должна состоять из групп. Название группы формируется по такому принципу: mp_имяуровня_назвгеометрии. Например, в нашей тестовой сцене такие группы: mp_atp_terrain, mp_atp_buildings. В группе может находится как и один объект, так и несколько. Имена объектов внутри группы никоем образом не должны совпадать с именем группы. В переделах одной группы все имена должны быть уникальны. &lt;br /&gt;
* Шейп объекта должен содержать правильное имя. Формируется по такому принципу: объект - имя_объекта, шейп - имя_объектаShape&lt;br /&gt;
&lt;br /&gt;
=== Текстурирование и назначение шейдеров ===&lt;br /&gt;
&lt;br /&gt;
==== 3D Studio Max ====&lt;br /&gt;
Открываем Material Editor(M) выделив один из образцов материала, открываем диалог Material/Map Browser, щелчком на кнопке Standart. Создадим новый материал XRayMtl, дважды щёлкнув по нему в списке. &lt;br /&gt;
&lt;br /&gt;
Займёмся настройкой параметров материала. X-ray материал, кроме текстуры использует надстройку состоящую из трёх шейдеров - Engine, Compiler, Material.&lt;br /&gt;
* Engine - отображение текстуры в движке игры.&lt;br /&gt;
* Compiler - используется при компиляции уровня.&lt;br /&gt;
* Material - игровой материал (wallmark, sound и др.).&lt;br /&gt;
Для начала настроим шейдеры. В Material Editor-e разворачиваем свиток XRay Params. В выпадающих списках представлены различные варианты шейдеров. Более подробно параметры шейдеров рассмотрены в статье [[Описание шейдеров XRayMtl]]. Для нашего примера ограничимся установкой следующих значений:&lt;br /&gt;
* Engine - default&lt;br /&gt;
* Compiler - default&lt;br /&gt;
* Material - material/asphalt&lt;br /&gt;
{|&lt;br /&gt;
| valign=top |[[Изображение:3d-max-create-xraymtl.gif|thumb|400px|Создание нового материала XRayMtl]]&lt;br /&gt;
| valign=top |[[Изображение:3d-max-xray-params.gif|thumb|Настройка XRay шейдеров материала]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Текстурирование заключается в назначении текстуры каналу Diffuse Color.&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id	=pseudoscience|&lt;br /&gt;
align = center|&lt;br /&gt;
backgroundcolor	= rgb(235, 235, 255);|&lt;br /&gt;
image	=Question.gif|&lt;br /&gt;
heading	=Надо ли расписать процесс назначения текстуры каналу?|&lt;br /&gt;
message =Пиши [[Обсуждение:Создание уровня, пошаговое руководство|тут]].}}&lt;br /&gt;
&lt;br /&gt;
=== Экспорт ===&lt;br /&gt;
&lt;br /&gt;
==== 3D Studio Max ====&lt;br /&gt;
Для начала выделяем все объекты, которые мы хотим экспортировать в виде единого объекта, т.е. всё, что мы выберем сейчас в редакторе будет представленно как одна модель. В нашем случае это один box.&lt;br /&gt;
&lt;br /&gt;
Переходим на командную панель Utilities, нажимаем кнопку More... В появившемся списке в самом конце видим XRay Export, выбираем, жмём ОК.&lt;br /&gt;
После запуска модуля на панели появится новый свиток XRay Export, в списке Selected можно проконтролировать какие объекты выбраны, нажимаем кнопку Export Editor Object... cохраняем файл в папку {SDK folder}\import.&lt;br /&gt;
{|&lt;br /&gt;
| valign=top |[[Изображение:3d-max-xray-export.gif|thumb|400px|Запускаем модуль экспорта]]&lt;br /&gt;
| valign=top |[[Изображение:3d-max-xray-export2.gif|thumb|400px|Экспорт объектов]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Импорт геометрии и текстур в пакет ==&lt;br /&gt;
При экспорте из редактора(Maya &amp;amp;&amp;amp; 3D Max) мы получим файлы *.object.&lt;br /&gt;
&lt;br /&gt;
Запускаем Level Editor и добавим нашу геометрию в Objects Library, делается это так: Objects -&amp;gt; Library Editor, откроется диалог Object Library.&lt;br /&gt;
[[Изображение:SDK-Find-new-texture.gif|thumb|Редактор нашёл текстуру]]&lt;br /&gt;
Для удобства создадим новую группу для наших объектов, щёлкаем в левой части окна ПКМ и выбираем Create Folder, переименуем в my_first_level.&lt;br /&gt;
Выделяем группу, и нажимаем кнопку Import Object, ищём наши *.object файлы, после того как объекты добавлены можно посмотреть, как они примерно будут выглядеть в игре, для этого ставим галочку Preview и любуемся нашим объектом. Теперь можно закрыть диалог Object Library.&lt;br /&gt;
&lt;br /&gt;
Если использовали свою текстуру, то её также надо добавить в пакет, Images -&amp;gt; Check New Textures. Данная команда заставляет редактор просмотреть папку SDK/Import и добавить новые файлы в Texture List, файлы должны быть в формате Targa(*.tga).&lt;br /&gt;
Не меняя ничего в диалоге импорта текстур нажимаем ОК. Всё теперь наша текстура есть в списке текстур редактора. Можно переходить к следующему шагу.&lt;br /&gt;
{|&lt;br /&gt;
|valign=top|[[Изображение:SDK-Object-Library.gif|thumb|left|Диалог Object Library]]&lt;br /&gt;
|valign=top|[[Изображение:SDK-OL-crt-grp.gif|thumb|left|Создание группы для объектов]]&lt;br /&gt;
|valign=top|[[Изображение:SDK-Update-Image-Dialog.gif|thumb|300px|Диалог импорта текстур]]&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;
сохранении и компиляции читаем по ссылке ниже с '''шага 6'''&lt;br /&gt;
*[[Maya. Глава 1: Hello World или первый кубик.]]&lt;br /&gt;
&lt;br /&gt;
== Подключение уровня к игре ==&lt;br /&gt;
Чтобы уровень можно было создавать прямо из игры, его необходимо добавить в список уровней.&lt;br /&gt;
Существует четыре случая, рассмотрим каждый.&lt;br /&gt;
&lt;br /&gt;
=== SDK объединён с игрой ===&lt;br /&gt;
В данном случае надо только отредактировать файл gamedata\config\mp\map_list.ltx, вписав в каждой из секции [deathmatch], [teamdeathmatch], [artefacthunt] название своего уровня.&lt;br /&gt;
=== SDK не объединён с игрой, игра распакована ===&lt;br /&gt;
В данном случае надо также отредактировать файл gamedata\config\mp\map_list.ltx, вписав в каждой из секции [deathmatch], [teamdeathmatch], [artefacthunt] название своего уровня + скопировать содержимое папки [SDK folder]\gamedata\levels\название уровня\ в папку [STALKER folder]\gamedata\levels\название уровня\.&lt;br /&gt;
=== SDK не объединён с игрой, игра не распакована ===&lt;br /&gt;
Повторяем действия предыдущего случая, только папки надо будет создавать самому, файл gamedata\config\mp\map_list.ltx можно взять из папки [SDK folder]\gamedata\config\mp\map_list.ltx&lt;br /&gt;
=== SDK не объединён с игрой + использовались свои текстуры ===&lt;br /&gt;
В данном случае необходимо скопировать:&lt;br /&gt;
*Текстуры из [SDK folder]\gamedata\textures\user\ в папку [STALKER folder]\gamedata\textures\user\ &lt;br /&gt;
*Файл [SDK folder]\gamedata\textures\textures.ltx в папку [STALKER folder]\gamedata\textures\&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
*[[Описание шейдеров XRayMtl]]&lt;br /&gt;
*[[Глобальное озеленение, добавляем траву на уровень]]&lt;br /&gt;
*[[Добавляем аномалии на уровень]]&lt;br /&gt;
*[[Учимся подвешивать объекты]]&lt;br /&gt;
&amp;lt;!--{{Описание шейдеров XRayMtl}}--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:SDK]][[Категория:Незаконченные статьи]]&lt;/div&gt;</summary>
		<author><name>89.178.96.171</name></author>	</entry>

	</feed>