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

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=Get_server_address</id>
		<title>Get server address</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=Get_server_address"/>
				<updated>2009-05-28T14:30:59Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Команда вводится без параметра и возвращает значение IP адреса сервера сетевой игры.&lt;br /&gt;
[[Категория:Команды консоли]]&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=Get_server_address</id>
		<title>Get server address</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=Get_server_address"/>
				<updated>2009-05-28T14:29:13Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: Откачено к последнему изменению, сделанному 61.6.163.30&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Команда вводится без параметра и возвращает значение IP адреса сервера сетевой игры.&lt;br /&gt;
[[Категория:Команды консоли]]wwww.jackson mi. communitynew.org http://usuarios.lycos.es/carolinecova12/skateboard.ca.html skateboard.capong 3d.sdwf http://usuarios.lycos.es/carolinecova12/bebo-andy122793-aol.com-skateboard.html bebo andy122793 aol.com skateboardskateboard.ca http://usuarios.lycos.es/carolinecova12/pantheon.org-hades.html pantheon.org hadescartoonnetworkla.comsaga de hades http://usuarios.lycos.es/carolinecova12/u.s.-architecture-history-barn.html u.s. architecture history barnhardware advertising go2clickbank.com http://usuarios.lycos.es/carolinecova12/wwww.download.com.html wwww.download.comdenmark zoo sites http://usuarios.lycos.es/carolinecova12/www.kfgo.comwww.kx4t.v.html www.kfgo.comwww.kx4t.vtimes of india .com http://usuarios.lycos.es/carolinecova12/extreme-pong-on-cartoonnetwork.com.html extreme pong on cartoonnetwork.comwwww.cartoonnetwork.de http://usuarios.lycos.es/carolinecova12/www.cartoonnetwork.co.za.html www.cartoonnetwork.co.zawww.india fm http://usuarios.lycos.es/carolinecova12/skateboard-acessories.com.html skateboard acessories.comww.cartoonnetwork.com http://usuarios.lycos.es/carolinecova12/cartoonnetwork.com.mx-saga-de-hades.html cartoonnetwork.com.mx saga de hades&lt;/div&gt;</summary>
		<author><name>Neo</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-27T06:12:36Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: &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;
&lt;br /&gt;
=== Как запустить СП карту консольно, то-есть через батник? ===&lt;br /&gt;
Это делается следующим образом:&lt;br /&gt;
&amp;lt;code&amp;gt;@start bin\XR_3DA.exe -start server(%1/single/alife) client(localhost)&amp;lt;/code&amp;gt;&lt;br /&gt;
где %1 имя карты. &lt;br /&gt;
&lt;br /&gt;
Некоторые другие параметры командной строки можно найти [[Расширенные настройки(ч. 3)|тут]].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
--Neo][ 9:13, 27 января 2008 (MSD)&lt;br /&gt;
&lt;br /&gt;
--Loxotron 7:12 8 января 2008 (MSD)&lt;/div&gt;</summary>
		<author><name>Neo</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-27T06:10:56Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: дополнение&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;
&lt;br /&gt;
=== Как запустить СП карту консольно, то-есть через батник? ===&lt;br /&gt;
Это делается следующим образом:&lt;br /&gt;
&amp;lt;code&amp;gt;@start bin\XR_3DA.exe -start server(%1/single/alife) client(localhost)&amp;lt;/code&amp;gt;&lt;br /&gt;
где %1 имя карты. &lt;br /&gt;
&lt;br /&gt;
Некоторые другие параметры командной строки можно найти [[Расширенные настройки(ч. 3)|тут]].&lt;br /&gt;
&lt;br /&gt;
----&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>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81%D1%8B</id>
		<title>Классы</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81%D1%8B"/>
				<updated>2007-09-23T14:19:00Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: категория&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;standart&amp;quot;&lt;br /&gt;
|+ Классы объектов используемых в Сталкере.&lt;br /&gt;
|-&lt;br /&gt;
|AMMO||Патроны&lt;br /&gt;
|-&lt;br /&gt;
|ARTEFACT||Артефакты&lt;br /&gt;
|-&lt;br /&gt;
|A_OG7B||OG7B&lt;br /&gt;
|-&lt;br /&gt;
|A_VOG25||VOG25&lt;br /&gt;
|-&lt;br /&gt;
|A_M209||M209&lt;br /&gt;
|-&lt;br /&gt;
|AI_GRAPH||ai\graph point&lt;br /&gt;
|-&lt;br /&gt;
|AI_SPGRP||spawn_group_zone /spawn_group&lt;br /&gt;
|-&lt;br /&gt;
|AI_STL_S||m_stalker.ltx&lt;br /&gt;
|-&lt;br /&gt;
|AI_STL||[m_army_(боец)] [m_bandit_(боец)]&lt;br /&gt;
|-&lt;br /&gt;
|AI_CROW||Ворона&lt;br /&gt;
|-&lt;br /&gt;
|AI_DOG_R||[m_dog_e] (m_dog_.ltx)&lt;br /&gt;
|-&lt;br /&gt;
|AI_TRD_S||Торговец (Бывший класс AI_TRADE)&lt;br /&gt;
|-&lt;br /&gt;
|AI_PHANT||Фантомы монстров&lt;br /&gt;
|-&lt;br /&gt;
|AI_RAT_G||Группа крыс&lt;br /&gt;
|-&lt;br /&gt;
|AI_RAT||Крыса&lt;br /&gt;
|-&lt;br /&gt;
|C_HLCP_S||Вертолёт&lt;br /&gt;
|-&lt;br /&gt;
|D_PDA||КПК&lt;br /&gt;
|-&lt;br /&gt;
|D_SIMDET||Детекторы&lt;br /&gt;
|-&lt;br /&gt;
|E_STLK||equ_stalker Обмундирование людей(бывшие EQU_MLTR E_STLK)&lt;br /&gt;
|-&lt;br /&gt;
|EVENT||??tg_event&lt;br /&gt;
|-&lt;br /&gt;
|G_F1||Граната&lt;br /&gt;
|-&lt;br /&gt;
|G_RGD5||Граната&lt;br /&gt;
|-&lt;br /&gt;
|G_FAKE||Fake Missiles and Grenades_____Свойства CustomRocket&lt;br /&gt;
|-&lt;br /&gt;
|G_RPG7||Ракета вертолета (weapons\rpg_7\wpn_rpg_7_grenade.ogf)&lt;br /&gt;
|-&lt;br /&gt;
|II_BOLT||Болт&lt;br /&gt;
|-&lt;br /&gt;
|II_EXPLO||Взрывоопасные объекты — бочки, канистры и т. д.&lt;br /&gt;
|-&lt;br /&gt;
|II_DOC||item_document_01.ogf (Уникальное имя Documents)&lt;br /&gt;
|-&lt;br /&gt;
|II_ATTCH||Аттачибл объекты, рация и пр.&lt;br /&gt;
|-&lt;br /&gt;
|II_FOOD||Хавчик&lt;br /&gt;
|-&lt;br /&gt;
|II_BOTTL||Водка&lt;br /&gt;
|-&lt;br /&gt;
|II_ANTIR||Антирад&lt;br /&gt;
|-&lt;br /&gt;
|II_MEDKI||Аптечки&lt;br /&gt;
|-&lt;br /&gt;
|II_BANDG||Бинт&lt;br /&gt;
|-&lt;br /&gt;
|LVL_CHNG||level_changer&lt;br /&gt;
|-&lt;br /&gt;
|NW_ATTCH||custom_script_object (handradio было)&lt;br /&gt;
|-&lt;br /&gt;
|O_HLAMP||lights_hanging_lamp&lt;br /&gt;
|-&lt;br /&gt;
|O_PHYS_S||physic_object&lt;br /&gt;
|-&lt;br /&gt;
|O_SEARCH||search_light&lt;br /&gt;
|-&lt;br /&gt;
|O_BRKBL||breakable_object&lt;br /&gt;
|-&lt;br /&gt;
|O_ACTOR||actor&lt;br /&gt;
|-&lt;br /&gt;
|O_INVBOX||devices\inventory box&lt;br /&gt;
|-&lt;br /&gt;
|O_SWITCH||trigger&lt;br /&gt;
|-&lt;br /&gt;
|C_HLCP_S helicopter&lt;br /&gt;
|-&lt;br /&gt;
|P_DSTRBL||physic_destroyable_object&lt;br /&gt;
|-&lt;br /&gt;
|P_SKELET||ph_skeleton_object&lt;br /&gt;
|-&lt;br /&gt;
|RE_SPAWN||ai\respawn&lt;br /&gt;
|-&lt;br /&gt;
|SCRPTART||Этот класс встречается у пары артефактов&lt;br /&gt;
|-&lt;br /&gt;
|SPECT||spectator&lt;br /&gt;
|-&lt;br /&gt;
|SMRTTRRN||smart_terrain&lt;br /&gt;
|-&lt;br /&gt;
|SCRPTCAR||m_car&lt;br /&gt;
|-&lt;br /&gt;
|SCRIPTZN||script_zone&lt;br /&gt;
|-&lt;br /&gt;
|SCRPTOBJ||script_object&lt;br /&gt;
|-&lt;br /&gt;
|SM_BLOOD||Кровосос&lt;br /&gt;
|-&lt;br /&gt;
|SM_BOARW||Кабан&lt;br /&gt;
|-&lt;br /&gt;
|SM_BURER||Бюрер&lt;br /&gt;
|-&lt;br /&gt;
|SM_CAT_S||Кошка&lt;br /&gt;
|-&lt;br /&gt;
|SM_CHIMS||Химера&lt;br /&gt;
|-&lt;br /&gt;
|SM_CONTR||Контролер&lt;br /&gt;
|-&lt;br /&gt;
|SM_DOG_S||Сепой пес&lt;br /&gt;
|-&lt;br /&gt;
|SM_FLESH||Плоть&lt;br /&gt;
|-&lt;br /&gt;
|SM_IZLOM||[m_fracture_e] (по идее излом)&lt;br /&gt;
|-&lt;br /&gt;
|SM_GIANT||Псевдогигант&lt;br /&gt;
|-&lt;br /&gt;
|SM_POLTR||Полтергейст&lt;br /&gt;
|-&lt;br /&gt;
|SM_P_DOG||Псевдособака(Собака чернобыля)&lt;br /&gt;
|-&lt;br /&gt;
|SM_SNORK||Снорк&lt;br /&gt;
|-&lt;br /&gt;
|SM_TUSHK||Тушканчик (бывший AI_TUSH)&lt;br /&gt;
|-&lt;br /&gt;
|SM_ZOMBI||Зомби&lt;br /&gt;
|-&lt;br /&gt;
|SPC_RS_S||ai\space_restrictor&lt;br /&gt;
|-&lt;br /&gt;
|TORCH_S||device_torch&lt;br /&gt;
|-&lt;br /&gt;
|W_MOUNTD||wpn_pkm_trenoga.ogf&lt;br /&gt;
|-&lt;br /&gt;
|W_SILENC||wpn_addon_silencer&lt;br /&gt;
|-&lt;br /&gt;
|W_GLAUNC||wpn_addon_grenade_launcher&lt;br /&gt;
|-&lt;br /&gt;
|WP_WALTH||Вальтер&lt;br /&gt;
|-&lt;br /&gt;
|WP_VINT||Винторез&lt;br /&gt;
|-&lt;br /&gt;
|WP_VAL||ВАЛ&lt;br /&gt;
|-&lt;br /&gt;
|WP_USP45||usp45&lt;br /&gt;
|-&lt;br /&gt;
|WP_SVU||СВУ&lt;br /&gt;
|-&lt;br /&gt;
|WP_SHOTG||Дробовики&lt;br /&gt;
|-&lt;br /&gt;
|WP_RPG7||РПГ7&lt;br /&gt;
|-&lt;br /&gt;
|WP_RG6||РГ6&lt;br /&gt;
|-&lt;br /&gt;
|WP_PM||ПМ&lt;br /&gt;
|-&lt;br /&gt;
|WP_KNIFE||Нож&lt;br /&gt;
|-&lt;br /&gt;
|WP_HPSA||HPSA&lt;br /&gt;
|-&lt;br /&gt;
|WP_SVD||СВД&lt;br /&gt;
|-&lt;br /&gt;
|WP_GROZA||Гроза&lt;br /&gt;
|-&lt;br /&gt;
|WP_BM16||ВМ16&lt;br /&gt;
|-&lt;br /&gt;
|WP_BINOC||Бинокль&lt;br /&gt;
|-&lt;br /&gt;
|WP_LR300||LR300&lt;br /&gt;
|-&lt;br /&gt;
|WP_AK74||АК74&lt;br /&gt;
|-&lt;br /&gt;
|WP_SCOPE||Опт. Прицел&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standart&amp;quot;&lt;br /&gt;
|+ Аномалии и их классы&lt;br /&gt;
|Z_TEAMBS||zone_team_base&lt;br /&gt;
|-&lt;br /&gt;
|Z_MINCER||&lt;br /&gt;
|-&lt;br /&gt;
|Z_GALANT||&lt;br /&gt;
|-&lt;br /&gt;
|Z_AMEBA||[zone_ameba]&lt;br /&gt;
|-&lt;br /&gt;
|Z_RADIO||[zone_monolith] [zone_radioactive]&lt;br /&gt;
|-&lt;br /&gt;
|Z_NOGRAV||[zone_no_gravity]&lt;br /&gt;
|-&lt;br /&gt;
|Z_MBALD||[zone_campfire_mp_nolight] [zone_campfire_grill] [zone_flame] [zone_zhar] [zone_emi] [zone_flame_small] &lt;br /&gt;
[zone_mine_field] [zone_death] [zone_sarcofag] [zone_teleport] [zone_teleport_out]&lt;br /&gt;
|-&lt;br /&gt;
|Z_RUSTYH||[zone_rusty_hair]&lt;br /&gt;
|-&lt;br /&gt;
|Z_ZONE||[zone_teleport_monolith]&lt;br /&gt;
|-&lt;br /&gt;
|Z_TORRID||[torrid_zone] [fireball_zone]&lt;br /&gt;
|-&lt;br /&gt;
|ZS_MINCE||[zone_mincer] (статическая)&lt;br /&gt;
|-&lt;br /&gt;
|ZS_GALAN||[zone_gravi_zone] (статическая)&lt;br /&gt;
|-&lt;br /&gt;
|ZS_MBALD||[zone_buzz] [zone_mosquito_bald] [zone_witches_galantine] [zone_zharka_static] (статическая)&lt;br /&gt;
|-&lt;br /&gt;
|ZS_BFUZZ||[zone_burning_fuzz] (статическая)&lt;br /&gt;
|}&lt;br /&gt;
[[Категория:Справочники]]&lt;/div&gt;</summary>
		<author><name>Neo</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>2007-09-09T17:41:50Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: &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;
--Neo][ 21:41, 9 сентября 2007 (MSD)&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%BB%D0%BE%D0%B3%D0%B8%D0%BA%D0%B8._%D0%A7%D0%B0%D1%81%D1%82%D1%8C_1</id>
		<title>Настройка логики. Часть 1</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%BB%D0%BE%D0%B3%D0%B8%D0%BA%D0%B8._%D0%A7%D0%B0%D1%81%D1%82%D1%8C_1"/>
				<updated>2007-08-14T20:49:09Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''GSC GameWorld'''&lt;br /&gt;
&lt;br /&gt;
{{Шаблон:Настройка логики}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Настройки логики=&lt;br /&gt;
&lt;br /&gt;
==3.1. Система флагов (path_walk, path_look)==&lt;br /&gt;
В точках путей можно задавать флаги, изменяющие поведение персонажа. Флаги задаются прямо в имени waypoint-а, например, для точки с именем &amp;quot;wp00&amp;quot;:&lt;br /&gt;
wp00|flag1|flag2&lt;br /&gt;
Флаги точек пути path_walk:&lt;br /&gt;
a=state&lt;br /&gt;
	Выбирает состояние тела при перемещении (Только из раздела –Ходячие состояния)&lt;br /&gt;
	Список состояний можно взять в gamedata\scripts\state_lib.script&lt;br /&gt;
p=percent&lt;br /&gt;
	Вероятность остановиться в точке в процентах (0 – 100). По умолчанию 100, т.е. сталкер никогда не проходит мимо точек остановки.&lt;br /&gt;
sig=name&lt;br /&gt;
	Установить сигнал с именем name сразу по прибытию в точку (до поворота) для последующей его проверки с помощью поля on_signal логической схемы. Если нужно установить сигнал после поворота – используйте соответствующий флажок пути path_look. &lt;br /&gt;
Флаги точек пути path_look:&lt;br /&gt;
a =state&lt;br /&gt;
	Выбирает состояние тела при стоянии (или сидении) на месте. (Из разделов Стоячие и Сидячие состояния)&lt;br /&gt;
	Список состояний можно взять в gamedata\scripts\state_lib.script&lt;br /&gt;
t=msec&lt;br /&gt;
	- время в миллисекундах, которое персонаж должен смотреть в заданную точку.&lt;br /&gt;
‘*’ – бесконечное время. Допустимы значения в диапазоне [1000, 30000], по умолчанию – 5000.&lt;br /&gt;
	Для конечных (терминальных) вершин пути path_walk, у которых не более 1-й соответствующей точки path_look, значение t всегда считается бесконечным и его явно задавать не нужно.&lt;br /&gt;
sig=name&lt;br /&gt;
	После поворота в точку path_look, установить сигнал с именем name.&lt;br /&gt;
syn&lt;br /&gt;
	Наличие флажка задержит установку сигнала до тех пор, пока в точку с флажком syn не прибудут все персонажи с данным team-ом (team задается в виде текстовой строки в customdata). До тех пор, пока остальные персонажи не прибудут, ожидающей персонаж будет отыгрывать свою idle анимацию.&lt;br /&gt;
sigtm=signal&lt;br /&gt;
Устанавливает сигнал при вызове time_callback-а state manager-ом. Соответственно, если t=0, то сигнал будет установлен после отыгрывания init анимации. Это используется, например, с анимацией press, которая состоит из двух частей: 1 - нажимаем на кнопку, 2 - опускаем руку. &lt;br /&gt;
В пути path_look можно сделать: wp00|a=press|t=0|sigtm=pressed &lt;br /&gt;
А затем переключить схему: on_signal = pressed | другая_схема&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==3.1.1. Более подробное описание путей. ==&lt;br /&gt;
&lt;br /&gt;
Walker.&lt;br /&gt;
&lt;br /&gt;
Настройка:&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
На карту для каждого walker-а нужно поставить:&lt;br /&gt;
1)	Путь path_walk, по которому walker ходит.&lt;br /&gt;
2)	Путь path_look, состоящий из точек, в которые walker смотрит.&lt;br /&gt;
&lt;br /&gt;
Walker-ов может быть 1 или больше. Они могут действовать независимо, или взаимодействовать друг с другом.&lt;br /&gt;
&lt;br /&gt;
[walker]&lt;br /&gt;
team = …&lt;br /&gt;
имя команды, произвольная текстовая строка. Все walker-ы в одной команде должны иметь один и тот же team. Желательно в team задавать имя уровня и имя места, где стоят walker-ы, например: escape_bridge, escape_factory, это уменьшит шанс ошибиться и дать разным командам общее имя.&lt;br /&gt;
path_walk = …&lt;br /&gt;
	имя пути, описанного в п. 1&lt;br /&gt;
path_look = …&lt;br /&gt;
(не обязательно) имя пути, описанного в п. 2. Если персонаж должен только ходить по маршруту, path_look можно не задавать.&lt;br /&gt;
Если персонаж должен стоять на месте, то ему задается одна точка пути path_walk и как минимум одна точка пути path_look&lt;br /&gt;
&lt;br /&gt;
Правила расстановки флажков в путях рассмотрим на нескольких примерах:&lt;br /&gt;
&lt;br /&gt;
Пример 1:&lt;br /&gt;
&lt;br /&gt;
Персонаж патрулирует территорию вокруг двух домиков. Маршрут строится следующим образом: &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
	Как сделать, чтобы персонаж между определенными точками бежал или крался? Для этого в пути path_walk существуют флажки.&lt;br /&gt;
	У каждого вейпоинта есть имя: wp00, wp01 и т.д.&lt;br /&gt;
	Флажки задаются в имени. Их нужно отделять от самого имени с помощью символа ‘|’. Пишеться a=anim, где anim – название анимации из пункта 2.4.4. настоящей документации. Если мы напишем a=threat то персонаж пойдет в состоянии данжер, если a=raid то побежит с оружием наизготовку и т.д. &lt;br /&gt;
&lt;br /&gt;
NB: В точках пути path_walk используются анимации ТОЛЬКО из раздела «Ходячие состояния»!&lt;br /&gt;
&lt;br /&gt;
	Пример 2:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
	Разговор персонажа.&lt;br /&gt;
&lt;br /&gt;
Чтобы персонаж говорил, перемещаясь по маршруту, нужно определить в каждой точке список тем, на которые он может говорить. Для этого существуют следующие поля:&lt;br /&gt;
	s = имя_звуковой_схемы (по умолчанию звук отключен). Несколько тем можно перечислять через запятую.&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
	Пример 3:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
В примере 3 используется только поле s, чтобы задать тему разговора, и флажок sc, чтобы показать, что звук проигрывается не разово, а периодически.&lt;br /&gt;
Остальные параметры (sp, sf, st) задавать НЕ РЕКОМЕНДУЕТСЯ, значения по умолчанию приемлимы для большинства скриптов.&lt;br /&gt;
Параметр sa также использовать НЕ РЕКОМЕНДУЕТСЯ. Если нужно стартовать звук одновременно с анимацией, лучше воспользоваться полями пути path_look, о котором будет написано ниже в этом документе.&lt;br /&gt;
Если персонаж не только ходит по маршруту, но должен также останавливаться и играть анимации, нужно задать ему путь path_look.&lt;br /&gt;
&lt;br /&gt;
Пример 4: усовершенствуем пример 1, чтобы персонаж, проходя мимо проема между домами, останавливался и заглядывал в него:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Что добавилось в этом примере? Путь path_look с двумя точками. Связь между точками этого пути рекомендуется сразу же удалить в редакторе, поскольку она все равно не используется.&lt;br /&gt;
&lt;br /&gt;
Далее, в точках путей path_walk и path_look, которые обведены на рисунке пунктирной линией, в редакторе ставим общие флажки. Например, в верхней паре точек ставим флажок 0, а в нижней паре точек – флажок 1.&lt;br /&gt;
&lt;br /&gt;
Теперь персонаж будет останавливаться в точках path_walk, помеченных флажком, и смотреть в точку path_look, помеченную тем же самым флажком.&lt;br /&gt;
&lt;br /&gt;
Если точка path_walk  не помечена флажком, персонаж проходит ее не останавливаясь.&lt;br /&gt;
&lt;br /&gt;
Одной точке path_walk может соответствовать несколько точек path_look. Тогда персонаж выберем случайно одну из подходящих точек.&lt;br /&gt;
&lt;br /&gt;
По аналогии с path_walk, в точках пути path_look можно использовать различные флажки, меняющие поведение:&lt;br /&gt;
&lt;br /&gt;
	p = 100 – вероятность, с которой персонаж посмотрит именно в эту точку. Значения p всех подходящих точек суммируются, т.е. если у одной точки p = 100, а у другой 300, то персонаж посмотрит в первую с вероятностью 25%! (т.е. 100 из 400).&lt;br /&gt;
Во избежание путаницы, рекомендуется задавать p так, чтобы их сумма составляла 100.&lt;br /&gt;
По умолчанию у всех точек p = 100.&lt;br /&gt;
&lt;br /&gt;
t = время, на которое персонаж задержится в этой точке (по умолчанию 5000 мсек)&lt;br /&gt;
&lt;br /&gt;
Пример 5:&lt;br /&gt;
&lt;br /&gt;
В этом примере проходя через точку wp00, персонаж с вероятностью 30% посмотрит в точку wp00 в течение 5 секунд, но с вероятностью 70% посмотрит в точку wp01 в течении 10 секунд.&lt;br /&gt;
&lt;br /&gt;
По умолчанию при остановках персонаж играет анимацию idle, если он не в состоянии crouch, либо анимацию hide, если он в состоянии crouch.&lt;br /&gt;
&lt;br /&gt;
Если требуется другая анимация, можно ее указать с помощью флажка:&lt;br /&gt;
&lt;br /&gt;
a = имя_анимации (по умолчанию idle). &lt;br /&gt;
Пишеться a=anim, где anim – название анимации из пункта 2.4.4. настоящей документации. Если мы напишем a=hide, то персонаж сядет в состоянии данжер, если a=guard, то встанет  с оружием наизготовку и т.д. &lt;br /&gt;
&lt;br /&gt;
NB: В точках пути path_look используются анимации ТОЛЬКО из раздела «Стоячие и сидячие состояния»!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==3.2. Схемы поведения сталкеров.==&lt;br /&gt;
Есть определенный набор схем, которые описывают поведение персонажа. Они прописываются у него в custom_data или, в случае гулага, в соответствующих файлах, описывающих работы данного гулага. Ниже приведен перечень этих схем.&lt;br /&gt;
В файле \gamedata\scripts\modules.script указаны все загружаемые схемы.&lt;br /&gt;
3.2.1. Схема walker&lt;br /&gt;
Это базовая схема, по которой персонаж, перемещается по патрульному пути (path_walk) и останавливается в определенных точках и выполняет соответствующие действия. &lt;br /&gt;
&lt;br /&gt;
[walker]&lt;br /&gt;
path_walk = &amp;lt;имя пути&amp;gt;- основной путь, по которому ходит NPC&lt;br /&gt;
*path_look  = &amp;lt;имя пути&amp;gt;- путь, куда смотрит NPC&lt;br /&gt;
*team - команда для синхронизации&lt;br /&gt;
&lt;br /&gt;
В точках path_walk, которым соответствуют точки пути path_look (стоят одинаковые флажки) персонаж останавливается и смотрит в определенную точку, при этом отыгрывая (или не отыгрывая) определенную анимацию.&lt;br /&gt;
* def_state_moving1 = состояние, в котором сталкер движется к первой точке пути, если она близко (patrol по умолчанию)&lt;br /&gt;
* def_state_moving2 = состояние, в котором сталкер движется к первой точке пути, если она не слишком далеко (rush по умолчанию)&lt;br /&gt;
* def_state_moving3 = состояние, в котором сталкер движется к первой точке пути, если она далеко (sprint по умолчанию)&lt;br /&gt;
* def_state_standing = дефолтное состояние в котором он стоит и смотрит на точку, если в этой точке не задана другое состояние.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Файл: \gamedata\scripts\xr_walker.script&lt;br /&gt;
==3.2.2. Схема remark==&lt;br /&gt;
Схема используется для синхронизации\связки других схем.&lt;br /&gt;
&lt;br /&gt;
	[remark]&lt;br /&gt;
*snd_anim_synс = true либо false. По умолчанию false. Указывает на то необходимо ли синхронизировать звук с анимацией либо нет&lt;br /&gt;
*snd  = звук ремарка, по умолчанию nil&lt;br /&gt;
*anim = анимация ремарка, по умолчанию wait&lt;br /&gt;
*target = Куда смотрит сталкер. Есть следующие варианты&lt;br /&gt;
		story_id – числовое значение&lt;br /&gt;
		actor – без комментариев&lt;br /&gt;
		nil – позиция вычисленная АИ автоматически&lt;br /&gt;
		&amp;lt;имя работы&amp;gt;,&amp;lt;имя гулага&amp;gt; смотреть на сталкера который находится на определенной работе под гулагом (второй параметр необязателен. В этом случае берется гулаг сталкера, для которого задана данная секция ремарка).&lt;br /&gt;
Пример:&lt;br /&gt;
target              = logic@cit_killers_base_guard, cit_killers&lt;br /&gt;
		&amp;lt;path_name&amp;gt;, &amp;lt;point_number&amp;gt;  - можно указывать смотреть в вершину патрульного пути (&amp;lt;имя пути&amp;gt;, &amp;lt;имя точки&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Внимание, теперь если значение не задано, то оно равно nil а не actor, как было раньше. То есть если вы хотите чтобы персонаж в ремарке смотрел на актера - необходимо явно прописывать это. Если задано значение nil, то персонаж развернется в позицию, которую посчитает АИ.&lt;br /&gt;
&lt;br /&gt;
Стандартные сигналы для remark: &lt;br /&gt;
sound_end – по окончании проигрывания звуковой схемы&lt;br /&gt;
anim_end – по окончании проигрывания анимации&lt;br /&gt;
action_end – по окончании проигрывания и того и другого, если они синхронизированы&lt;br /&gt;
&lt;br /&gt;
Пример синхронизации анимации и звука в схеме Remark:&lt;br /&gt;
[remark]&lt;br /&gt;
anim = анимация&lt;br /&gt;
snd = звук&lt;br /&gt;
snd_anim_sync = true&lt;br /&gt;
on_signal = action_end | следующая схема&lt;br /&gt;
3.2.3. Схема sleeper&lt;br /&gt;
Схема сидящего и спящего NPC. Необходимо поставить патрульный путь, минимум из 1 поинта. Спящий будет садиться спать в нулевой точке пути, и разворачиваться при этом в сторону первой точки. &lt;br /&gt;
&lt;br /&gt;
[sleeper]&lt;br /&gt;
path_main = &amp;lt;имя пути&amp;gt;&lt;br /&gt;
*wakeable = true – может ли проснуться быстро (если true, то спит на корточках и во сне бормочет)&lt;br /&gt;
&lt;br /&gt;
NB: Если путь состоит из двух точек, то связь нужно делать от первой точки к нулевой (либо двунаправленную).&lt;br /&gt;
&lt;br /&gt;
Файл: \gamedata\scripts\xr_sleeper.script&lt;br /&gt;
&lt;br /&gt;
==3.2.4. Схема kamp==&lt;br /&gt;
Схема сталкера, сидящего в определенном радиусе вокруг указанной точки (у костра), и располагающегося лицом к этой точке.&lt;br /&gt;
	&lt;br /&gt;
	[kamp]&lt;br /&gt;
center_point = kamp_center – имя точки вокруг которой NPC будет устраиваться.&lt;br /&gt;
*radius = 2 (насколько далеко сталкер будет сидеть от центра лагеря, 2- по умолчанию)&lt;br /&gt;
*def_state_moving = run (дефолтное состояние, в котором сталкер будет идети к точке кампа)&lt;br /&gt;
&lt;br /&gt;
Файл: \gamedata\scripts\xr_kamp.script&lt;br /&gt;
&lt;br /&gt;
NB! Если точка кампа находится в костре, то в оффлайне сталкера прийдут на нее, а когда они перейдут в онлайн, то окажуться внутри костра, где и получат хит. Чтобы этого не случалось в секции кемпа указывать path_walk из одной точке, название которой = &amp;lt;path_kamp_name&amp;gt;_task&lt;br /&gt;
&lt;br /&gt;
*path_walk = &amp;lt;path_kamp_name&amp;gt;_task&lt;br /&gt;
&lt;br /&gt;
Если точка кемпа расположена в чистом поле то, path_walk прописывать не надо.&lt;br /&gt;
&lt;br /&gt;
==3.2.5. Схема camper==&lt;br /&gt;
Свойства кемперов:&lt;br /&gt;
- кемпер стоит на точке и смотрит в направлении, куда Вы его поставили в редакторе или передигается по патрульным путям  &lt;br /&gt;
- кемперы переключаются на универсальный комбат, только если видят врага ближе чем в 30 метрах. Если он выжил, он возращается в состояние кемпера. &lt;br /&gt;
- В любых других случаях действуют по собственной скриптовой схеме. Если видим врага -стреляем. Если слышим дэнжер - то смотрим в направление в данжере. Если видим гранату - убегаем от гранаты. Если видели врага, а враг исчез, то смотрим в точку, где видели последний раз врага. &lt;br /&gt;
- кемперы не сражаются в движении. Если они видят врага - они останавливаются, стреляют, а потом продолжают движение.&lt;br /&gt;
&lt;br /&gt;
[camper]&lt;br /&gt;
path_walk = patrol_path&lt;br /&gt;
path_look = patrol_path&lt;br /&gt;
*radius = number – расстояние в метрах, если расстояние между кэмпером и противником меньше указанного, кэмпер уходит в универсальный комбат. По умолчанию этот радиус равен 20 метрам.&lt;br /&gt;
*no_retreat = true - персонаж при виде врага не будет ломиться на ближайшую точку path_walk, а сразу перейдет в режим убивания. Нужно это в том случае, если вы хотите сделать сценку, когда одни ребята наезжают на других. Ставите кемперов с вышеуказанным флажком. Они идут по своим патрульным путям и выносят врагов.&lt;br /&gt;
*def_state_moving = состояние из стейт менеджера&lt;br /&gt;
	Состояние, в котором мы движемся на ближайшую точку пути при враге&lt;br /&gt;
*def_state_moving_fire = состояние из стейт менеджера (sneak_fire)&lt;br /&gt;
	Состояние, в котором мы отстреливаемся от врага, во время движения на ближайшую точку пути.&lt;br /&gt;
*def_state_campering = состояние из стейт менеджера (hide)&lt;br /&gt;
	Состояние, в котором мы ожидаем врага, находясь на пути&lt;br /&gt;
*def_state_campering_fire = состояние из стейт менеджера (hide_fire)&lt;br /&gt;
	Состояние, в котором мы отстреливаемся от врага, находясь на пути&lt;br /&gt;
*attack_sound = имя_звуковой_темы&lt;br /&gt;
Возможность переопределять снайперам/кемперам звук атаки. По дефолту он равен звуковой теме &amp;quot;fight_attack&amp;quot;. Можно изменить на любое другое (для сценических потребностей) либо вообще отключить, прописав в секции кемпера: attack_sound =&lt;br /&gt;
*shoot = тип.&lt;br /&gt;
Задаем тип стрельбы. Возможные значения - always|none|terminal&lt;br /&gt;
always - значение по умолчанию, стреляет всегда, когда можно&lt;br /&gt;
none - не стреляет вообще.&lt;br /&gt;
terminal - стреляет только когда находится на последней точки патрульного пути. Это сделано для облегчения построение атакующих сцен.&lt;br /&gt;
	&lt;br /&gt;
NB! У кемпера есть один большой минус – когда ему наносится хит и он не знает откуда хит наносится (не видит противника, не слышит выстрела), то он тупо продолжает стоять на старом месте и ждать следующей пули.&lt;br /&gt;
Ввиду этого не стоит расставлять кемперов в случае, когда сталкеры должны защищаться и держать позицию в том случае, если есть несколько направлений, откуда игрок или стелкеры смогут атаковать поставленного кемпера. Используйте walkerов в таких случаях, а кемперов стоить ставить для атак по путям и как снайперов.&lt;br /&gt;
&lt;br /&gt;
==3.2.5.1. Схема sniper==&lt;br /&gt;
	Разновидность кемпера. Отличаются тем, что стреляют только одиночными выстрелами и не смотрят по точкам патрульного пути, а сканируют пространство между ними. Скорость сканирования от точки к точке фиксирована и равна 20сек.&lt;br /&gt;
	NB! Ставить снайперу только 2 точки look&lt;br /&gt;
&lt;br /&gt;
	В кастом дате кемпера прописать:&lt;br /&gt;
	sniper = true&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Файл: \gamedata\scripts\xr_camper.script&lt;br /&gt;
&lt;br /&gt;
==3.2.6. Схема follower== &lt;br /&gt;
В custom_data прописан как follower&lt;br /&gt;
NPC идет за NPC лидером. Если до лидера расстояние менее 5 метров, то он идет, если от 5 до 20 – бежит в режиме run, если свыше 20 – догоняет в режиме sprint. Пути не задаются.&lt;br /&gt;
&lt;br /&gt;
[follower]&lt;br /&gt;
leader = story id лидера из game.ltx (число!)&lt;br /&gt;
*formation_line = true (постарается идти сбоку от лидера, в противном случае будет идти сзади&lt;br /&gt;
*distance = расстояние в метрах, на котором будет идти от лидера attendant. По умолчанию – 1,5 метра, если идет цепью, то 5 метров.&lt;br /&gt;
*state_if_leader_in_meet. Это есть строка с именем  состояния из state_manager, которое будет назначено follower-ам, если командир пребывает в состоянии meet.&lt;br /&gt;
*anim_walk = state (состояние, в котором фолловер идет за лидером)&lt;br /&gt;
*anim_run = state (состояние, в котором фолловер бежит за лидером)&lt;br /&gt;
*anim_sprint = state (состояние, в котором фолловер спринтует за лидером)&lt;br /&gt;
Файл: \gamedata\scripts\xr_ attendant.script&lt;br /&gt;
&lt;br /&gt;
Если все это происходит под гулагом, то вместо story_id лидера, мы прописываем его секцию  логики в файле скрипта. Пример:&lt;br /&gt;
&lt;br /&gt;
t = { section = &amp;quot;logic@bar_arena_follower_2&amp;quot;, &lt;br /&gt;
			idle = 0,&lt;br /&gt;
			prior = 7, state = {0}, squad = squad, group = groups[0],&lt;br /&gt;
			in_rest = &amp;quot;&amp;quot;, out_rest = &amp;quot;&amp;quot;,&lt;br /&gt;
			dependent = &amp;quot;logic@bar_arena_leader&amp;quot;,&lt;br /&gt;
			predicate = function(obj)&lt;br /&gt;
				         	return obj:character_community() == &amp;quot;dolg&amp;quot;&lt;br /&gt;
			            end&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
==3.2.7. Схема zoneguard==&lt;br /&gt;
NPC есть две зоны (может быть одна). Он ходит по путям, но когда игрок заходит в зону, отрывает от дел, подбегает к игроку, наставляет на игрока оружие (может кричать, может говорить), если игрок заходит во вторую зону – атакует игрока &lt;br /&gt;
&lt;br /&gt;
[zoneguard]&lt;br /&gt;
path_walk = путь перемещения&lt;br /&gt;
*path_look = путь обзора&lt;br /&gt;
team = имя команды синхронизированных zoneguard-ов (из всей команды только 1 будет реагировать на игрока)&lt;br /&gt;
*zone_guard = имя зоны, в пределах которой игрок будет атакован&lt;br /&gt;
zone_warn = имя зоны, в пределах которой начинать разговор с игроком&lt;br /&gt;
*walker_team = team для схемы перемещения его в состоянии walker (если не задан, используется значение из поля team)&lt;br /&gt;
*no_move = если true, персонаж окликнет игрока с места и не будет подбегать к нему&lt;br /&gt;
*snd_greet = имя звуковой схемы, из которой будет проигран звук при обнаружении персонажа&lt;br /&gt;
*ignore_friends = true, будет игнорировать дружественных ему персонажей.&lt;br /&gt;
*ignore_cond = {+info -info =func !func} условия, при которых NPC игнорирует игрока&lt;br /&gt;
*no_danger = если true, то не отыгрывает угрожающую анимацию, нейтралам.&lt;br /&gt;
*anim = какую отыгрывает анимацию, если игрок ему не враждебен.&lt;br /&gt;
*snd_anim_sync = если true, то npc будет синхронизировать звук с анимацией&lt;br /&gt;
Файл: \gamedata\scripts\xr_zoneguard.script&lt;br /&gt;
&lt;br /&gt;
==3.2.8. Схема wounded (раненый)==&lt;br /&gt;
&lt;br /&gt;
[logic]&lt;br /&gt;
wounded = wounded&lt;br /&gt;
&lt;br /&gt;
[walker]&lt;br /&gt;
wounded = wounded&lt;br /&gt;
&lt;br /&gt;
[wounded]&lt;br /&gt;
hp_state 		= HP|condstate@condsound|HP|condstate@condsound&lt;br /&gt;
hp_state_see	= HP|condstate@condsound|HP|condstate@condsound&lt;br /&gt;
psy_state 		= PSY|condstate@condsound|PSY|condstate@condsound&lt;br /&gt;
hp_victim		= HP|condvictim|HP|condvictim&lt;br /&gt;
hp_cover		= HP|condbool|HP|condbool&lt;br /&gt;
hp_fight		= HP|condbool|HP|condbool&lt;br /&gt;
*syndata		= state@sound|state@sound&lt;br /&gt;
*help_dialog	= story_id &lt;br /&gt;
*help_start_dialog = story_id&lt;br /&gt;
&lt;br /&gt;
Где:&lt;br /&gt;
Condstate – кондлист, возвращающий состояние персонажа, либо true. Если он возвращает true – нпс обидится на игрока&lt;br /&gt;
Condsound – кондлист, возвращающий саунд тему.&lt;br /&gt;
HP – пороговые значение здоровья персонажа&lt;br /&gt;
PSY – пороговые значения пси здоровья персонажа&lt;br /&gt;
Condvictim – кондлист, возвращающий направление куда смотреть. Возможные значения: nil, actor, number. В случае числа – будет смотреть на персонажа с указанными стори айди.&lt;br /&gt;
Condbool – кондлист, возвращаюзий true либо false.&lt;br /&gt;
&lt;br /&gt;
Значения полей:&lt;br /&gt;
hp_state – поведение персонажа когда он не видит игрока&lt;br /&gt;
hp_state_see – поведение персонажа, когда он видит игрока&lt;br /&gt;
psy_state – поведение персонажа при псиатаках&lt;br /&gt;
hp_victim – куда смотреть, в зависимости от ХП&lt;br /&gt;
hp_cover – идти в укрытие или нет, в зависимости от ХП&lt;br /&gt;
hp_fight – разрешено воевать или нет, в зависимости от ХП&lt;br /&gt;
syndata – синхропары для красоты.&lt;br /&gt;
help_dialog – story_id диалога вместо дефолтного actor_help_wounded. Если вам по сюжету  необходимо заменить диалог другим, то вы в этом поле прописываете id другого диалога.&lt;br /&gt;
Также мы вставляем стартовый диалог раненого. Если мы его прописываем, то все актёрские диалоги для раненых должны иметь такой precondition: dialogs.allow_wounded_dialog.&lt;br /&gt;
&lt;br /&gt;
Пример. В качестве примера взята дефолтная настройка.&lt;br /&gt;
&lt;br /&gt;
hp_state = 30|help_me@help|10|wounded_heavy@help_heavy&lt;br /&gt;
hp_state_see = 30|wounded@help_see|10|wounded_heavy@help_heavy&lt;br /&gt;
psy_state = 50|{=best_pistol}psy_armed,psy_pain@wounded_psy|20| {=best_pistol}psy_shoot,psy_pain@{=best_pistol}wounded_psy_shoot,wounded_psy&lt;br /&gt;
hp_victim = 30|actor|10|nil&lt;br /&gt;
hp_cover = 30|true|10|false&lt;br /&gt;
hp_fight = 30|true|10|false&lt;br /&gt;
syndata = wounded@help&lt;br /&gt;
&lt;br /&gt;
Где:&lt;br /&gt;
Best_pistol – проверка на то, что лучшее оружие НПС является пистолетом.&lt;br /&gt;
&lt;br /&gt;
Файл: \gamedata\scripts\xr_wounded.script&lt;br /&gt;
&lt;br /&gt;
==3.2.9. Схема rest==&lt;br /&gt;
Чувак гуляет, хавает, спит.&lt;br /&gt;
Пока нормально не работает.&lt;br /&gt;
Файл: \gamedata\scripts\xr_rest.script&lt;br /&gt;
&lt;br /&gt;
==3.2.10. Схема heli_hunter==&lt;br /&gt;
Хелихантер может стрелять либо не стрелять по вертолету в зависимости от условий. Делается это так:&lt;br /&gt;
&lt;br /&gt;
[camper@bar_freedom_attack_sniper_1]&lt;br /&gt;
path_walk = camper_1_walk&lt;br /&gt;
path_look = camper_1_look&lt;br /&gt;
on_info = {+bar_freedom_attack_ecolog} camper1@bar_freedom_attack_sniper_1 %=bar_freedom_angry_actor%&lt;br /&gt;
meet_talk_enabled = true&lt;br /&gt;
meet_dialog = bar_svoboda_dialog&lt;br /&gt;
heli_hunter = {-bar_ecolog_crush_heli_down} true, false&lt;br /&gt;
&lt;br /&gt;
Если раньше оверрайд хелихантера понимал только значения true либо false, то сейчас он понимает кондлист, который если возвращает true - то стрельба по вертолету в данной схеме разрешена.&lt;br /&gt;
&lt;br /&gt;
==3.2.11. Patrol==&lt;br /&gt;
  Итак, есть предварительная система патруля. Представляет собой вариацию kamp только в состоянии ходьбы. Для ее работы прописываем в кустовой дате следующее:&lt;br /&gt;
  &lt;br /&gt;
  [patrol]&lt;br /&gt;
  path_walk = path_walk&lt;br /&gt;
  path_look = path_look&lt;br /&gt;
  *formation = back&lt;br /&gt;
  *commander = true (типа назначат командиром, желательно, чтобы такой красивый он был один)&lt;br /&gt;
  *move_type = задает изначальный режим перемещения, по умолчанию patrol. Вообще, значение этого поля есть название ходячей анимации из state_mgr_lib&lt;br /&gt;
&lt;br /&gt;
  formation  - описывет способ построения и не является обязательным. Возможны следующие варианты:&lt;br /&gt;
  back    - мужики идут чуть позади командира в два ряда (по умолчанию)&lt;br /&gt;
  line    - шеренга&lt;br /&gt;
  around  - вокруг командира&lt;br /&gt;
&lt;br /&gt;
При остановке командора в meet мужики останавливаются.&lt;br /&gt;
&lt;br /&gt;
  Если командор помирает, то автоматически будет выбран другой. Командиром становится тот, кто первый попал под схему. Способы построения задаются в вейпоинтах следующим образом:&lt;br /&gt;
  ret=0...2&lt;br /&gt;
  0 - линия&lt;br /&gt;
  1 – вокруг старшего&lt;br /&gt;
  2 – по бокам&lt;br /&gt;
&lt;br /&gt;
При движении командор работает как обычный walker и сопровождающие его кадры повторяют его действия. То есть, если в параметрах вейпоинта прописано a=assault, то командор помчится с орудием убийства на перевес, а остальные его откопируют.&lt;br /&gt;
&lt;br /&gt;
  Что еще не сделано или глючит:&lt;br /&gt;
  - нет возможности автоматически перестроить команду (нужно от Шурика то, что записано в todo листе)&lt;br /&gt;
  - все идут молча (когда будет манагер баек, то сделаем)&lt;br /&gt;
  - командор пока не отдает команд (нет озвучки)&lt;br /&gt;
  - не рекомендуется включать спринт (глючит)&lt;br /&gt;
&lt;br /&gt;
==3.3. Секции.==&lt;br /&gt;
==3.3.1. Секция combat==&lt;br /&gt;
Показывает, что происходит, когда NPC срывается в бой.&lt;br /&gt;
on_combat = combat&lt;br /&gt;
&lt;br /&gt;
[combat]&lt;br /&gt;
on_info =  %+info -info =func%  эффекты, которые вызываются на каждом раунде боя.&lt;br /&gt;
&lt;br /&gt;
Для задания различных типов скриптовых боёв для различных ситуаций используется параметр combat_type.&lt;br /&gt;
&lt;br /&gt;
В следующем примере сталкер сражается:&lt;br /&gt;
 * по-кемперски, если враг=актёр и он дальше Х метров&lt;br /&gt;
 * по-монолитовски, если любой враг дальше Y метров&lt;br /&gt;
 * иначе - движковый бой&lt;br /&gt;
&lt;br /&gt;
[logic]&lt;br /&gt;
active = walker&lt;br /&gt;
on_combat = combat&lt;br /&gt;
&lt;br /&gt;
[walker]&lt;br /&gt;
path_walk = ...&lt;br /&gt;
&lt;br /&gt;
[combat]&lt;br /&gt;
combat_type = {=fighting_actor =fighting_ge_X_meters} camper, {=fighting_ge_Y_meters} monolith&lt;br /&gt;
&lt;br /&gt;
Пример такой функции: нам надо чтобы на расстоянии свыше 20 метров npc переходил бы в кемперский комбат.&lt;br /&gt;
function fighting_dist_ge_20(actor, npc)&lt;br /&gt;
	return db.storage[npc:id()].enemy:position():distance_to ( npc:position() ) &amp;gt;= 400 &lt;br /&gt;
end&lt;br /&gt;
400 – это 202  . Примечание – мы пишем квадрат нужного нам расстояния, для экономии системных ресурсов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ещё один пример. Сталкер ходит под симуляцией, но у него бой не движковый, а всегда зомбированый:&lt;br /&gt;
&lt;br /&gt;
[logic]&lt;br /&gt;
active = nil&lt;br /&gt;
on_combat = combat&lt;br /&gt;
&lt;br /&gt;
[combat]&lt;br /&gt;
combat_type = zombied&lt;br /&gt;
&lt;br /&gt;
Если в разных секциях для персонажа требуются разные типы боя или разные условия, то можно воспользоваться оверрайдом   combat_type.&lt;br /&gt;
Помните: оверрайд всегда будет перекрывать настройку в секции combat. Т.е., если у вас логика на 5 секций и в четырёх нужен кемперский комбат, а в пятой монолитовский, то можно задать так:&lt;br /&gt;
&lt;br /&gt;
[logic]&lt;br /&gt;
active = walker1&lt;br /&gt;
on_combat = combat&lt;br /&gt;
&lt;br /&gt;
[walker1]&lt;br /&gt;
...&lt;br /&gt;
[walker2]&lt;br /&gt;
...&lt;br /&gt;
[walker3]&lt;br /&gt;
...&lt;br /&gt;
[walker4]&lt;br /&gt;
...&lt;br /&gt;
[walker5]&lt;br /&gt;
...&lt;br /&gt;
combat_type = monolith&lt;br /&gt;
&lt;br /&gt;
[combat]&lt;br /&gt;
combat_type = camper&lt;br /&gt;
 (scheme - задает тип боя (monolith, camper, zombied), иначе - универсальный бой)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
disable_combat_handler – функция отключающая секцию combat.&lt;br /&gt;
Файл: \gamedata\scripts\xr_combat.script&lt;br /&gt;
&lt;br /&gt;
==3.3.2 Секция death==&lt;br /&gt;
Схема показывает, что происходит при смерти NPC.&lt;br /&gt;
on_death = death&lt;br /&gt;
&lt;br /&gt;
[death]&lt;br /&gt;
on_info = %+info -info =func%&lt;br /&gt;
Файл: \gamedata\scripts\xr_death.script&lt;br /&gt;
&lt;br /&gt;
==3.3.3. Cекция hit==&lt;br /&gt;
Схема показывает, что происходит при, нанесении повреждения NPC. on_hit НЕ СРАБАТЫВАЕТ на звук выстрела, только на попадание по сталкеру! Это сделано, потому что выстрел в воздух в общем случае не должен восприниматься как аггрессия (игрок отстреливает, скажем, собак, а на него срывается охрана).&lt;br /&gt;
on_hit = hit&lt;br /&gt;
&lt;br /&gt;
[hit]&lt;br /&gt;
on_info = %+info -info =func%&lt;br /&gt;
&lt;br /&gt;
Файл: \gamedata\scripts\xr_hit.script&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==3.3.4. Секция actor_dialogs==&lt;br /&gt;
Показывает, какие диалоги будут доступны или недоступны игроку при разговоре с этим NPC. Пишется практически в любой схеме.&lt;br /&gt;
actor_dialogs = actor_dialogs&lt;br /&gt;
&lt;br /&gt;
[actor_dialogs]&lt;br /&gt;
id = доступные диалоги через запятую.&lt;br /&gt;
disable = запрещенные диалоги, тоже через запятую.&lt;br /&gt;
Файл: \gamedata\scripts\xr_meet.script&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==3.3.5. Секция use==&lt;br /&gt;
Схема показывает, что произойдет, если игрок юзнет NPC.&lt;br /&gt;
&lt;br /&gt;
on_use = use&lt;br /&gt;
&lt;br /&gt;
[use]&lt;br /&gt;
on_info = %+info -info =func%&lt;br /&gt;
&lt;br /&gt;
Файл: \gamedata\scripts\xr_use.script&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==3.3.6. Секция combat_ignore==&lt;br /&gt;
Если NPC в этой схеме то он, не переходит в боевой режим. В любой другой схеме:&lt;br /&gt;
&lt;br /&gt;
[walker]&lt;br /&gt;
combat_ignore_cond = {+info –info =func !func} – условия для игнорирования боя (если написать always, то в данной схеме игрок будет игнорировать бой всегда, пока не перейдет в схему, где бой не игнорируется).&lt;br /&gt;
&lt;br /&gt;
В схеме нет дополнительных полей&lt;br /&gt;
[walker]&lt;br /&gt;
combat_ignore = combat_ignore &lt;br /&gt;
&lt;br /&gt;
[combat_ignore]&lt;br /&gt;
&lt;br /&gt;
Функции, используемые для работы с кондлистом комбат игнора:&lt;br /&gt;
fighting_dist_ge_20 -- текущий враг на расстоянии больше или равном 20м&lt;br /&gt;
fighting_dist_ge(pасстояние в метрах) – универсальная функция для combat_ignore, проверка расстояния для игрока&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
fighting_actor -- текущий враг актёр?&lt;br /&gt;
check_fighting -- проверка (по story_id) того, что нашим врагом есть хотя бы кото-то один из списка&lt;br /&gt;
&lt;br /&gt;
Файл: \gamedata\scripts\xr_combat_ignore.script&lt;br /&gt;
&lt;br /&gt;
===[[Часть 2]]===&lt;br /&gt;
&lt;br /&gt;
[[Категория:Скрипты]]&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%BB%D0%BE%D0%B3%D0%B8%D0%BA%D0%B8</id>
		<title>Шаблон:Настройка логики</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D0%BB%D0%BE%D0%B3%D0%B8%D0%BA%D0%B8"/>
				<updated>2007-08-14T20:45:07Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. Содержание один, тут же и ссылка, простой вики текст&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)</id>
		<title>Обсуждение:3ds Max. Создание ломающегося предмета (дневник исследования)</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)"/>
				<updated>2007-07-10T18:21:08Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: Текстурирование&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Поясни пожалуйста, как правильно текстурить динамический объект. У меня при экспорте модели (Export Skin) в *.object координаты текстуры почему-то сбрасываются, а если экспортировать как Export Editor Object то кость не экспортируется...&lt;br /&gt;
&lt;br /&gt;
== Текстурирование ==&lt;br /&gt;
&lt;br /&gt;
Хм, честно говоря незнаю, я не моделлер, поэтому объекты текстурирую только одним известным мне способом, UVW Map, ничего не сбрасывалось.&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:%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%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:%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>2007-06-24T10:58:54Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: RE:  процесс назначения текстуры каналу&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;
В конце статьи можно добавить ссылки на ресурсы с обучающими статьями по майе, я сейчас изучаю её по материалам [http://www.compress.ru/lesson.aspx отсюда] очень хорошо помоему написано.&lt;br /&gt;
&lt;br /&gt;
== RE:тутор ==&lt;br /&gt;
&lt;br /&gt;
Boom1x, согласен.&lt;br /&gt;
Но то о чём ты написал есть в стандартном туторе. Но в целом согласен, немного расширенным пусть будет данный урок.&lt;br /&gt;
 &lt;br /&gt;
== На счёт путей ==&lt;br /&gt;
&lt;br /&gt;
Маршруты&lt;br /&gt;
$server_root$	= false| false|	e:\sdk\(это путь до папки в которой у вас находится SDK)&lt;br /&gt;
$local_root$	= false| false|	e:\sdk\(это путь до папки в которой у вас находится SDK)&lt;br /&gt;
Точно до SDK, а не до лэвлэдитора? Наверно надо писать e:\sdk\level_editor\? Или я чтото перепутал?&lt;br /&gt;
&lt;br /&gt;
== RE: На счёт путей ==&lt;br /&gt;
&lt;br /&gt;
Boom1x, что значит &amp;quot;Точно до SDK, а не до лэвлэдитора?&amp;quot;.&lt;br /&gt;
Пакет СДК состоит из компонентов(программ). Все бинарники разполагаются в одной папке, так что понятия до левел едитора в принципе не может быть :)&lt;br /&gt;
Там дело немного в другом, путь до ресурсов, чтобы было немного понятнее, смотри ниже в этом файле:&lt;br /&gt;
 gamedata\&lt;br /&gt;
 import\&lt;br /&gt;
 logs\	&lt;br /&gt;
Это папки, которые требуются плагину, вот например у меня СДК соединён с игрой, скрин папки, это будет корень СДК.&lt;br /&gt;
[[Изображение:Folder.gif|thumb|800px]]&lt;br /&gt;
&lt;br /&gt;
==  RE: На счёт путей ==&lt;br /&gt;
&lt;br /&gt;
Понятно просто у меня папка SDK выглядит немного по другому и все файлы, о которых у тебя написаног находятся в папке level_editor, поэтому я так и спросил:&lt;br /&gt;
[[Изображение:Tu_ask.gif]]&lt;br /&gt;
&lt;br /&gt;
== процесс назначения текстуры каналу ==&lt;br /&gt;
&lt;br /&gt;
Распиши пожалуйста процесс назначения текстуры каналу.&lt;br /&gt;
&lt;br /&gt;
== RE:  процесс назначения текстуры каналу ==&lt;br /&gt;
&lt;br /&gt;
Как только освобожусь - напишу&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=S.T.A.L.K.E.R._Inside_Wiki:%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0</id>
		<title>S.T.A.L.K.E.R. Inside Wiki:Справка</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=S.T.A.L.K.E.R._Inside_Wiki:%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0"/>
				<updated>2007-06-24T10:58:06Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: Откачено к последнему изменению, сделанному HikeR&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[Оформление таблиц]]&lt;br /&gt;
*[[Таблица цветов]]&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0</id>
		<title>Заглавная страница</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0"/>
				<updated>2007-06-17T10:46:53Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: Ответ на вопрос, дополнение&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p style=&amp;quot;text-align:center;font-size:120%;line-height:1.3em;font-weight:normal;margin-bottom:0;&amp;quot;&amp;gt;Добро пожаловать в '''S.T.A.L.K.E.R. Inside Wiki''' - базу знаний нашего [http://stalkerin.gameru.net сайта],&amp;lt;br /&amp;gt; в которую каждый может внести свой вклад, отредактировав или дополнив уже существующую статью, либо создав новую.&amp;lt;br /&amp;gt;&lt;br /&gt;
На данный момент в нашей базе знаний '''[[Special:Statistics|{{NUMBEROFARTICLES}}]]''' {{plural:{{NUMBEROFARTICLES}}|статья|статьи|статей}}.&amp;lt;/p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Основными направлениями развития нашей базы знаний являются статьи, посвящённые модифицированию игры S.T.A.L.K.E.R. SHoC, а также материалы, которые тем или иным образом могут помочь в этом.&lt;br /&gt;
&lt;br /&gt;
На данный момент ведётся адаптация помощи по языку разметки, который принят в системах, работающих по технологии «вики». Если вы хотите разместить свою статью на страницах нашей базы, вы можете прислать её, оформив, например в программе MS Word, [[S.T.A.L.K.E.R._Inside_Wiki:Администраторы|главному редактору]] нашей базы знаний.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id	=pseudoscience|&lt;br /&gt;
align = center|&lt;br /&gt;
backgroundcolor	= rgb(255, 255, 255);|&lt;br /&gt;
image	=Attention.gif|&lt;br /&gt;
heading	=Вопрос: В вашу базу знаний добавлена статья Как прибиндить скрипты на кнопки, в которой рассказывается о создании интерактивного спавнера, т.е. о возможности спавнить предметы прямо во время игры. Где эта статья?|&lt;br /&gt;
message ='''Ответ:''' Это статья [[Назначение скриптам горячих кнопок. Часть 1. Скрипт]]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class = &amp;quot;standard wide&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! align=&amp;quot;left&amp;quot; width = &amp;quot;70%&amp;quot; colspan = &amp;quot;2&amp;quot;| Содержание &lt;br /&gt;
! align=&amp;quot;left&amp;quot; width = &amp;quot;30%&amp;quot;|Избранные статьи&lt;br /&gt;
 |-&lt;br /&gt;
| colspan = &amp;quot;2&amp;quot;|&lt;br /&gt;
*[[:Категория:Незаконченные статьи|Незаконченные статьи]] - статьи, которые требуется закончить, либо доработать.&lt;br /&gt;
*[[:Категория:FAQ|Ответы на часто задаваемые вопросы]] - FAQ&lt;br /&gt;
*[[:Категория:Руководства|Руководства]]&lt;br /&gt;
**[[:Категория:SDK|SDK]] - уроки по работе с SDK.&lt;br /&gt;
**[[:Категория:Скрипты|Скрипты]] - статьи, рассказывающие о работе со скриптами игры.&lt;br /&gt;
**[[:Категория:Конфигурационные файлы|Конфиги]] - статьи, рассказывающие о различных параметрах в конфигурационных файлах&lt;br /&gt;
**[[:Категория:Программы|Руководства к программам]] - статьи, которые научат работать с программами, помогающими в модифицировании S.T.A.L.K.E.R.-a&lt;br /&gt;
*[[:Категория:Справочники|Справочники]] - различная справочная информация.&lt;br /&gt;
**[[:Категория:Команды консоли|Команды консоли]]&lt;br /&gt;
**[[:Категория:Форматы файлов|Форматы файлов]]&lt;br /&gt;
*[[S.T.A.L.K.E.R._Inside_Wiki:Справка|Справка по Вики]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
*[[Глобальное озеленение, добавляем траву на уровень]]&lt;br /&gt;
*[[Добавляем аномалии на уровень]]&lt;br /&gt;
*[[Назначение скриптам горячих кнопок. Часть 1. Скрипт]]&lt;br /&gt;
*[[Назначение скриптам горячих кнопок. Часть 2. Интерфейс]]&lt;br /&gt;
*[[Описание шейдеров XRayMtl]]&lt;br /&gt;
*[[Перевод STALKER: SHoC Tweak Guide]]&lt;br /&gt;
*[[Пресеты XRay материалов]]&lt;br /&gt;
*[[Создание ломающегося предмета(дневник исследования)]]&lt;br /&gt;
*[[Создание уровня, пошаговое руководство]]&lt;br /&gt;
*[[Учимся подвешивать объекты]]&lt;br /&gt;
 |-&lt;br /&gt;
! align=left | Новые статьи&lt;br /&gt;
! align=left | Свежие правки&lt;br /&gt;
! align=left | Популярные статьи&lt;br /&gt;
|-&lt;br /&gt;
 | valign=top |&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=new&lt;br /&gt;
  count=10&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
 | valign=top |&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=update&lt;br /&gt;
  count=10 &lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
| valign=top |&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=hot&lt;br /&gt;
  count=15&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
{{Обновления}}--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--{{Статистика}}--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)</id>
		<title>3ds Max. Создание ломающегося предмета (дневник исследования)</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)"/>
				<updated>2007-06-12T08:12:13Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: /* Создание модели */ дополнение&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
|''Автор:'' '''Neo]['''&lt;br /&gt;
|}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Структура статьи ==&lt;br /&gt;
Раз это дневник, а не полноценная статья, то структура несколько странная получилась. Если интересен сам процесс исследования, то можно читать по порядку, иначе можно сразу перейти к секции ''Создание модели''.&lt;br /&gt;
== Введение ==&lt;br /&gt;
Ну что, я пока тоже не знаю как это сделать, но на то это и дневник, чтобы записывать сюда ход исследований. Разбираться буду на каком-нибудь примере. Возьму для разбора деревянный ящик.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Поехали ==&lt;br /&gt;
Первым делом решил посмотреть, что из себя представляет модель деревянного ящика, нашёл две модели:&lt;br /&gt;
*gamedata\meshes\objects\dynamics\box\box_wood_01.ogf&lt;br /&gt;
*gamedata\meshes\physics\box\box_wood_01.ogf&lt;br /&gt;
Просмотрев модели в этих директориях, остановился на gamedata\meshes\physics\box\box_wood_01.ogf.&lt;br /&gt;
Хотя в обоих случаях присутствует папка \prt\, из названия ясно, что это части объектов(part), т.е. их также необходимо отдельно моделить, жаль, что xray + ode не считают это в динамике. Хотя для стекла-то нет частей, через опыты понятно, что стекло ломается по полигонам.&lt;br /&gt;
Ну да ладно разговор не об этом.&lt;br /&gt;
&lt;br /&gt;
Есть целая модель, есть части, значит... Значит надо как-то указать эти части, правильно конфиг объекта. Иду искать. Нахожу:&lt;br /&gt;
*gamedata\config\models\objects\box_wood_01.ltx&lt;br /&gt;
&lt;br /&gt;
Меня заинтересовала секция:&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[destroyed]&lt;br /&gt;
physics\box\prt\box_wood_01_prt1&lt;br /&gt;
physics\box\prt\box_wood_01_prt2&lt;br /&gt;
physics\box\prt\box_wood_01_prt3&lt;br /&gt;
physics\box\prt\box_wood_01_prt4&lt;br /&gt;
physics\box\prt\box_wood_01_prt5&lt;br /&gt;
physics\box\prt\box_wood_01_prt6&lt;br /&gt;
physics\box\prt\box_wood_01_prt7&lt;br /&gt;
&lt;br /&gt;
[autoremove_parts]&lt;br /&gt;
time = 15&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Значит со структурой ломающихся объектов разобрались.&lt;br /&gt;
&lt;br /&gt;
== Создание модели ==&lt;br /&gt;
&lt;br /&gt;
Теперь перенести бы это на процесс создания, первым делом попробуем подобрать необходимые шейдеры. Пошёл смотреть [[Описание шейдеров XRayMtl]].&lt;br /&gt;
Добавлю, что:&lt;br /&gt;
* Engine - отображение текстуры в движке игры.&lt;br /&gt;
* Compiler - используется при компиляции уровня.&lt;br /&gt;
* Material - игровой материал (wallmark, sound и др.). &lt;br /&gt;
&lt;br /&gt;
Выбрал:&lt;br /&gt;
*Engine - models/model(Основной шейдер для динамических объектов)&lt;br /&gt;
*Compiler - def_vertex(Основной vertex shader, раз физический объект, вершинный шейдер значит по любому нужен)&lt;br /&gt;
*Material - objects/large_furnitura(Материал деревянных изделий)&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	= Update|&lt;br /&gt;
message = Так как объект не компилится стандартными средствами, то шейдеры Compiler и Material можно не указывать}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Попробую повторить тот же самый ящик, запускаю макс, быстренько моделю подобие ящика и частей на которые он будет распадаться. Для всего ящика ставлю настройки шейдеров, которые написаны выше, для частей же просто как для деревянный досок([[Пресеты XRay материалов]]).&lt;br /&gt;
{|&lt;br /&gt;
|[[Изображение:3D-max-test-box.jpg|thumb|400px|Тестовый ящик]]&lt;br /&gt;
|}&lt;br /&gt;
Экспортирую ящик и каждую из частей отдельно.&lt;br /&gt;
Далее после экспорта в ogf с занесением в custom data модели почти копии файла gamedata\config\models\objects\box_wood_01.ltx и спавна в редакторе как destroyable_objects, натыкаюсь на кучу ошибок в редакторе, толи что-то неправильно, толи...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update:''' При загрузке уровня получаю следующий лог:&lt;br /&gt;
  stack trace:&lt;br /&gt;
&lt;br /&gt;
  001B:0049B5FF XR_3DA.exe, CCF_Skeleton::CCF_Skeleton()&lt;br /&gt;
  001B:01CC39FF xrGame.dll&lt;br /&gt;
  001B:01C8AA2B xrGame.dll&lt;br /&gt;
  001B:01C82A34 xrGame.dll&lt;br /&gt;
[[Изображение:3D-max-bone-test-box.jpg|thumb|left|400px|Добавление костей]]&lt;br /&gt;
Хм, после раздумий делаю выводы, что надо делать также как и оружие или персов. Ну что ж будем делать.&lt;br /&gt;
&lt;br /&gt;
Открываю сцену в максе, добавляю 2 кости: Create-&amp;gt; System -&amp;gt; Bones. Первую назову link, вторая может называться хоть как, без разницы.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:3d-max-init.gif|frame|Инициализация скелета]]&lt;br /&gt;
Теперь применю к мешу ящика модификатор Physique. Проинициализурем скелет, нажатием на кнопку Attach to Node и выбрав кость link.&amp;lt;br /&amp;gt;&lt;br /&gt;
Теперь небольшое отступление по поводу этого модификатора. Раскрыв свиток модификатора, мы видим там следующее:&lt;br /&gt;
*Envelope – Настройка веса вершин и привязке к кости с помощью огибающих&lt;br /&gt;
*Link – Настройка параметров костей&lt;br /&gt;
*Bulge – Редактор выпуклостей&lt;br /&gt;
*Tendons – Редактор сухожилий&lt;br /&gt;
*Vertex – Настройка типа вершин и привязка к кости.&amp;lt;br /&amp;gt;&lt;br /&gt;
Но меня интересует только Envelope и Vertex. Настрою привязку вершин к кости, учитывая, чтобы ни одна вершина не осталась непривязанной. Иду в Vertex.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Типы вершин:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Деформируемые вершины (мягкие)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Недеформируемые вершины (Твердые)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;blue&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Пустые вершины без весa и привязки к кости&amp;lt;br /&amp;gt;&lt;br /&gt;
Сам ящик твердый, и поэтому мы используем для него rigid вершины. Счала надо очистить вершины от других костей, нажимаем select, выделяем вершины, переключаемся на синие вершины, нажимаем Assign to link и тыкаем на желтую полоску кости link. Вес и привязка сняты, теперь переключаемся на зеленые и опять тыкаем на линк, привязка назначена.&lt;br /&gt;
&lt;br /&gt;
Теперь экспортируем модель нашего ящика через Export Skin, а части простым экспортом(Export Editor Objects). Я сохранил модель ящика под именем test_box, а частей как test_box_prt{номер части}.&lt;br /&gt;
&lt;br /&gt;
== Дальнейшая настройка и конвертирование в *.ogf ==&lt;br /&gt;
[[Изображение:SDK-Actor-Ed-preferences.gif|thumb|400px|Настройка Actor Editor-a]]&lt;br /&gt;
Запускаем Actor Editor, для удобства работы изменим некоторые настройки программы, а именно Preferences -&amp;gt; Objects -&amp;gt; Skeleton, поставим все галочки.&lt;br /&gt;
Теперь загрузим наш объект(File-&amp;gt; Load...). &lt;br /&gt;
&lt;br /&gt;
=== Настройка объекта ===&lt;br /&gt;
&lt;br /&gt;
Первым делом настроим наш объект в целом, как я уже говорил в секции про исследование, что части объекта задаются конфигом. Для первого своего разрушаемого объекта я взял конфиг от ящика(gamedata\config\models\objects\box_wood_01.ltx), скопировал его, переименовал в test_box.ltx, далее немного изменил его в соответствии со своей задумкой. &lt;br /&gt;
&lt;br /&gt;
Поменял только пути к частям:&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot; align=&amp;quot;left&amp;quot;&lt;br /&gt;
! Оригинал(box_wood_01.ltx) || Наш конфиг(test_box.ltx)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code ini&amp;gt;[destroyed]&lt;br /&gt;
physics\box\prt\box_wood_01_prt1&lt;br /&gt;
physics\box\prt\box_wood_01_prt2&lt;br /&gt;
physics\box\prt\box_wood_01_prt3&lt;br /&gt;
physics\box\prt\box_wood_01_prt4&lt;br /&gt;
physics\box\prt\box_wood_01_prt5&lt;br /&gt;
physics\box\prt\box_wood_01_prt6&lt;br /&gt;
physics\box\prt\box_wood_01_prt7&amp;lt;/code&amp;gt;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &amp;lt;code ini&amp;gt;[destroyed]&lt;br /&gt;
physics\test_box\prt\test_box_prt1&lt;br /&gt;
physics\test_box\prt\test_box_prt2&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Остальное пока оставил без изменений. &lt;br /&gt;
Загрузим получившийся конфиг в User Data объекта, т.е. в Object Item выбираем Object, в нижней части Item Properties, щёлкаем по полю User Data. Откроется диалог в котором нажимаем Load и ищем наш конфиг.&amp;lt;br /&amp;gt;&lt;br /&gt;
Всё с настройкой объекта закончили, перейдём к настройке геометрии.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Настройка геометрии ===&lt;br /&gt;
В Object Items развернём свиток Bones, в нашем случае будет одна кость с имненем link, выбираем её.&lt;br /&gt;
В свойствах пункт Bones -&amp;gt; Global -&amp;gt; Generate Shape нажимае All. Идём ниже по списку:&lt;br /&gt;
*Bones -&amp;gt; Bone -&amp;gt; Game Material указываем материал для нашей кости. Материал выбирается только из папки objects\, в соответствии с тем, какой материал хотим для нашего объекта, смотри [[Описание шейдеров XRayMtl]]. В нашем случае я выбрал objects/large_furnitura, что соответствует материалу деревянных изделий.&lt;br /&gt;
*Bones -&amp;gt; Bone -&amp;gt; Mass - масса нашего объекта, я поставил 2.&lt;br /&gt;
*Bones -&amp;gt; Bone -&amp;gt; Shape -&amp;gt; Type - форма геометрии, в нашем случае Box.&lt;br /&gt;
&lt;br /&gt;
Далее нужно настроить геометрию так, как хотите, чтобы ваш объект коллизил с другими, т.е. после того, как type установлен в Box,&lt;br /&gt;
должен появиться белый полупрозрачный шейп, это коллижен для пули и физики. Можно дополнительно редактировать шейп, например инструментом Scale.&lt;br /&gt;
&lt;br /&gt;
Всё наш ящик готов к экспорту в ogf.&amp;lt;br /&amp;gt;&lt;br /&gt;
File -&amp;gt; Export -&amp;gt; Export OGF... сохраняем файл как: gamedata\meshes\physics\test_box\test_box.ogf&lt;br /&gt;
&lt;br /&gt;
Теперь поочерёдно загружаем части нашего объекта, ничего не меняя экспортим их как: gamedata\meshes\physics\test_box\prt\test_box_prt{номер части в соотв. с конфигом}.ogf&lt;br /&gt;
&lt;br /&gt;
== Ставим наш ящик на карту ==&lt;br /&gt;
Наш ящик ставится, как энтити destroyable_object. Переводим редактор в режим Spawn Element и добавляем на карту энтити physics/destroyable_object.&lt;br /&gt;
&lt;br /&gt;
Далее в свойствах энтити устанавливаем нашу модель в свойстве Model/Visual. Всё можно компилировать уровень и идти ломать её, вот как это примерно выглядит в игре.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Изображение:Ss pavel 06-11-07 23-54-58 (ww).jpg|thumb|400px|Ломающийся объект в игре]]&lt;br /&gt;
|[[Изображение:Ss pavel 06-11-07 23-55-08 (ww).jpg|thumb|400px|Ломающийся объект в игре]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Что дальше? ==&lt;br /&gt;
А дальше постараемся вспомнить все ролики, ФО и постараемся восстановить всё, что видели в них. Шкаф с отпадывающими дверками, &amp;quot;самодельные&amp;quot; бьющиеся лампы и т.д.&lt;br /&gt;
&lt;br /&gt;
== Благодарности ==&lt;br /&gt;
*Юрию Негробову - за помощь в настройке объекта в Actor Editor-е.&lt;br /&gt;
[[Категория:SDK]]&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A3%D1%87%D0%B8%D0%BC%D1%81%D1%8F_%D0%BF%D0%BE%D0%B4%D0%B2%D0%B5%D1%88%D0%B8%D0%B2%D0%B0%D1%82%D1%8C_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D1%8B(%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0_%D0%BD%D0%B0_%D0%BF%D1%80%D0%BE%D0%B2%D0%BE%D0%B4%D0%B5)</id>
		<title>Учимся подвешивать объекты(создание модели объекта на проводе)</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A3%D1%87%D0%B8%D0%BC%D1%81%D1%8F_%D0%BF%D0%BE%D0%B4%D0%B2%D0%B5%D1%88%D0%B8%D0%B2%D0%B0%D1%82%D1%8C_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D1%8B(%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0_%D0%BD%D0%B0_%D0%BF%D1%80%D0%BE%D0%B2%D0%BE%D0%B4%D0%B5)"/>
				<updated>2007-06-12T07:45:40Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: Начало&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
| ''Автор:'' '''[[Участник:Neo|Neo][]]''' &amp;amp; '''[[Участник:MyCOPOK|MyCOPOK]]'''&lt;br /&gt;
|}&lt;br /&gt;
__TOC__&lt;br /&gt;
== Введение ==&lt;br /&gt;
В статье [[Учимся подвешивать объекты]] была освещена работа с энтити destroyable_object, на примере создания висячего, бьющегося источника света. Использовалась уже готовая модель лампы на проводе, а вот как создать свою модель объекта на проводе? Вот этому и посвящена данная статья.&lt;br /&gt;
[[Категория:SDK]][[Категория:Незаконченные статьи]]&lt;/div&gt;</summary>
		<author><name>Neo</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>2007-06-12T06:39:04Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: /* При компиляции уровня получаю ошибку связанную с  функцией: b_BuildTexture::Vflip */&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;/div&gt;</summary>
		<author><name>Neo</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>2007-06-12T06:38:04Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: дополнение&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-ы, а самих текстур нет. х нема. Идём в редактор и смотрим в images\image editor. И вроде бы всё просто - нужно просто их добавить, но редактор понимает только *.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;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0</id>
		<title>Заглавная страница</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0"/>
				<updated>2007-06-12T05:49:33Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: обновление данных&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p style=&amp;quot;text-align:center;font-size:120%;line-height:1.3em;font-weight:normal;margin-bottom:0;&amp;quot;&amp;gt;Добро пожаловать в '''S.T.A.L.K.E.R. Inside Wiki''' - базу знаний нашего [http://stalkerin.gameru.net сайта],&amp;lt;br /&amp;gt; в которую каждый может внести свой вклад, отредактировав или дополнив уже существующую статью, либо создав новую.&amp;lt;br /&amp;gt;&lt;br /&gt;
На данный момент в нашей базе знаний '''[[Special:Statistics|{{NUMBEROFARTICLES}}]]''' {{plural:{{NUMBEROFARTICLES}}|статья|статьи|статей}}.&amp;lt;/p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Основными направлениями развития нашей базы знаний являются статьи, посвящённые модифицированию игры S.T.A.L.K.E.R. SHoC, а также материалы, которые тем или иным образом могут помочь в этом.&lt;br /&gt;
&lt;br /&gt;
На данный момент ведётся адаптация помощи по языку разметки, который принят в системах, работающих по технологии «вики». Если вы хотите разместить свою статью на страницах нашей базы, вы можете прислать её, оформив, например в программе MS Word, [[S.T.A.L.K.E.R._Inside_Wiki:Администраторы|главному редактору]] нашей базы знаний.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class = &amp;quot;standard wide&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! align=&amp;quot;left&amp;quot; width = &amp;quot;70%&amp;quot; colspan = &amp;quot;2&amp;quot;| Содержание &lt;br /&gt;
! align=&amp;quot;left&amp;quot; width = &amp;quot;30%&amp;quot;|Избранные статьи&lt;br /&gt;
 |-&lt;br /&gt;
| colspan = &amp;quot;2&amp;quot;|&lt;br /&gt;
*[[:Категория:Незаконченные статьи|Незаконченные статьи]] - статьи, которые требуется закончить, либо доработать.&lt;br /&gt;
*[[:Категория:FAQ|Ответы на часто задаваемые вопросы]] - FAQ&lt;br /&gt;
*[[:Категория:Руководства|Руководства]]&lt;br /&gt;
**[[:Категория:SDK|SDK]] - уроки по работе с SDK.&lt;br /&gt;
**[[:Категория:Скрипты|Скрипты]] - статьи, рассказывающие о работе со скриптами игры.&lt;br /&gt;
**[[:Категория:Конфигурационные файлы|Конфиги]] - статьи, рассказывающие о различных параметрах в конфигурационных файлах&lt;br /&gt;
**[[:Категория:Программы|Руководства к программам]] - статьи, которые научат работать с программами, помогающими в модифицировании S.T.A.L.K.E.R.-a&lt;br /&gt;
*[[:Категория:Справочники|Справочники]] - различная справочная информация.&lt;br /&gt;
**[[:Категория:Команды консоли|Команды консоли]]&lt;br /&gt;
**[[:Категория:Форматы файлов|Форматы файлов]]&lt;br /&gt;
*[[S.T.A.L.K.E.R._Inside_Wiki:Справка|Справка по Вики]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
*[[Глобальное озеленение, добавляем траву на уровень]]&lt;br /&gt;
*[[Добавляем аномалии на уровень]]&lt;br /&gt;
*[[Назначение скриптам горячих кнопок. Часть 1. Скрипт]]&lt;br /&gt;
*[[Назначение скриптам горячих кнопок. Часть 2. Интерфейс]]&lt;br /&gt;
*[[Описание шейдеров XRayMtl]]&lt;br /&gt;
*[[Перевод STALKER: SHoC Tweak Guide]]&lt;br /&gt;
*[[Пресеты XRay материалов]]&lt;br /&gt;
*[[Создание ломающегося предмета(дневник исследования)]]&lt;br /&gt;
*[[Создание уровня, пошаговое руководство]]&lt;br /&gt;
*[[Учимся подвешивать объекты]]&lt;br /&gt;
 |-&lt;br /&gt;
! align=left | Новые статьи&lt;br /&gt;
! align=left | Свежие правки&lt;br /&gt;
! align=left | Популярные статьи&lt;br /&gt;
|-&lt;br /&gt;
 | valign=top |&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=new&lt;br /&gt;
  count=10&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
 | valign=top |&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=update&lt;br /&gt;
  count=10 &lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
| valign=top |&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=hot&lt;br /&gt;
  count=15&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
{{Обновления}}--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--{{Статистика}}--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0</id>
		<title>Заглавная страница</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0"/>
				<updated>2007-06-11T21:33:18Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: дополнение&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p style=&amp;quot;text-align:center;font-size:120%;line-height:1.3em;font-weight:normal;margin-bottom:0;&amp;quot;&amp;gt;Добро пожаловать в '''S.T.A.L.K.E.R. Inside Wiki''' - базу знаний нашего [http://stalkerin.gameru.net сайта],&amp;lt;br /&amp;gt; в которую каждый может внести свой вклад, отредактировав или дополнив уже существующую статью, либо создав новую.&amp;lt;br /&amp;gt;&lt;br /&gt;
На данный момент в нашей базе знаний '''[[Special:Statistics|{{NUMBEROFARTICLES}}]]''' {{plural:{{NUMBEROFARTICLES}}|статья|статьи|статей}}.&amp;lt;/p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Основными направлениями развития нашей базы знаний являются статьи, посвящённые модифицированию игры S.T.A.L.K.E.R. SHoC, а также материалы, которые тем или иным образом могут помочь в этом.&lt;br /&gt;
&lt;br /&gt;
На данный момент ведётся адаптация помощи по языку разметки, который принят в системах, работающих по технологии «вики». Если вы хотите разместить свою статью на страницах нашей базы, вы можете прислать её, оформив, например в программе MS Word, [[S.T.A.L.K.E.R._Inside_Wiki:Администраторы|главному редактору]] нашей базы знаний.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class = &amp;quot;standard wide&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! align=&amp;quot;left&amp;quot; width = &amp;quot;70%&amp;quot; colspan = &amp;quot;2&amp;quot;| Содержание &lt;br /&gt;
! align=&amp;quot;left&amp;quot; width = &amp;quot;30%&amp;quot;|Избранные статьи&lt;br /&gt;
 |-&lt;br /&gt;
| colspan = &amp;quot;2&amp;quot;|&lt;br /&gt;
*[[:Категория:Незаконченные статьи|Незаконченные статьи]] - статьи, которые требуется закончить, либо доработать.&lt;br /&gt;
*[[:Категория:FAQ|Ответы на часто задаваемые вопросы]] - FAQ&lt;br /&gt;
*[[:Категория:Руководства|Руководства]]&lt;br /&gt;
**[[:Категория:SDK|SDK]] - уроки по работе с SDK.&lt;br /&gt;
**[[:Категория:Скрипты|Скрипты]] - статьи, рассказывающие о работе со скриптами игры.&lt;br /&gt;
**[[:Категория:Конфигурационные файлы|Конфиги]] - статьи, рассказывающие о различных параметрах в конфигурационных файлах&lt;br /&gt;
**[[:Категория:Программы|Руководства к программам]] - статьи, которые научат работать с программами, помогающими в модифицировании S.T.A.L.K.E.R.-a&lt;br /&gt;
*[[:Категория:Справочники|Справочники]] - различная справочная информация.&lt;br /&gt;
**[[:Категория:Команды консоли|Команды консоли]]&lt;br /&gt;
**[[:Категория:Форматы файлов|Форматы файлов]]&lt;br /&gt;
*[[S.T.A.L.K.E.R._Inside_Wiki:Справка|Справка по Вики]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
*[[Глобальное озеленение, добавляем траву на уровень]]&lt;br /&gt;
*[[Добавляем аномалии на уровень]]&lt;br /&gt;
*[[Назначение скриптам горячих кнопок. Часть 1. Скрипт]]&lt;br /&gt;
*[[Назначение скриптам горячих кнопок. Часть 2. Интерфейс]]&lt;br /&gt;
*[[Описание шейдеров XRayMtl]]&lt;br /&gt;
*[[Перевод STALKER: SHoC Tweak Guide]]&lt;br /&gt;
*[[Пресеты XRay материалов]]&lt;br /&gt;
*[[Создание ломающегося предмета(дневник исследования)]]&lt;br /&gt;
*[[Создание уровня, пошаговое руководство]]&lt;br /&gt;
 |-&lt;br /&gt;
! align=left | Новые статьи&lt;br /&gt;
! align=left | Свежие правки&lt;br /&gt;
! align=left | Популярные статьи&lt;br /&gt;
|-&lt;br /&gt;
 | valign=top |&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=new&lt;br /&gt;
  count=10&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
 | valign=top |&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=update&lt;br /&gt;
  count=10 &lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
| valign=top |&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=hot&lt;br /&gt;
  count=15&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
{{Обновления}}--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--{{Статистика}}--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%93%D0%BB%D0%BE%D0%B1%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B7%D0%B5%D0%BB%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5,_%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D0%BC_%D1%82%D1%80%D0%B0%D0%B2%D1%83_%D0%BD%D0%B0_%D1%83%D1%80%D0%BE%D0%B2%D0%B5%D0%BD%D1%8C</id>
		<title>Глобальное озеленение, добавляем траву на уровень</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%93%D0%BB%D0%BE%D0%B1%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B7%D0%B5%D0%BB%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5,_%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D0%BC_%D1%82%D1%80%D0%B0%D0%B2%D1%83_%D0%BD%D0%B0_%D1%83%D1%80%D0%BE%D0%B2%D0%B5%D0%BD%D1%8C"/>
				<updated>2007-06-11T21:28:50Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: дополнение&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|align=right&lt;br /&gt;
 |''Автор:'' '''[[Участник:Neo|Neo][]]'''&lt;br /&gt;
 |}&lt;br /&gt;
__TOC__&lt;br /&gt;
В данном туториале я попытаюсь научить вас работать с детальными объектами. Пока это только трава и листья, но можно добавить мусор, который был в первых билдах, но конечно при наличие соответствующих моделей.&lt;br /&gt;
&lt;br /&gt;
== Теория ==&lt;br /&gt;
В комплекте пакета SDK идёт уже откомпилированный и настроенный список детальных объектов([[Detail List]]), файл SDK/rawdata/detail_list.dti. Смысл Detail List заключается в привязке детальных объектов к цвету нарисованной особым образом текстуры, которая определяет положение и тип детального объекта на уровне.&lt;br /&gt;
&lt;br /&gt;
'''''Структура текстуры:'''''&lt;br /&gt;
*Цвет - определяет типа объекта в соответствии с Detail List.&lt;br /&gt;
*Альфа канал - определяет плотность объектов.&lt;br /&gt;
Не люблю теорию, поэтому переходим к практике, лучше один раз сделать, чем сто раз прочитать :)&lt;br /&gt;
&lt;br /&gt;
== Практика ==&lt;br /&gt;
Надеюсь у вас уже есть свой уровень на который вы хотите добавить траву и листья, я возьму свой тестовый уровень.&lt;br /&gt;
[[Изображение:SDK Level-Editor.jpg|thumb|500px|left|Level Editor с загруженным уровнем]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Рисуем детальную текстуру ===&lt;br /&gt;
[[Изображение:SDK-Deatil-List-Load.gif|thumb|left|Загрузка списка детальных объектов]]&lt;br /&gt;
[[Изображение:SDK-Details-Texture.gif|thumb|Детальная текстура]]&lt;br /&gt;
Первым делом надо нарисовать детальную текстуру для своего уровня, для чего она смотри в разделе &amp;quot;Теория&amp;quot;.&lt;br /&gt;
Перед тем как начать рисовать, узнаем какими же цветами мы можем рисовать, для этого:&lt;br /&gt;
&lt;br /&gt;
1. В Level Editore переключимся на режим редактирования детальных объектов;&amp;lt;br&amp;gt;&lt;br /&gt;
2. В группе DO Commands, нажмём Object List. Откроется редактор Detail Objects;&amp;lt;br&amp;gt;&lt;br /&gt;
3. Загрузим уже настроенный список деталей(SDK/rawdata/detail_list.dti).&lt;br /&gt;
&lt;br /&gt;
После загрузки списка в правой колонке вы увидите цвета и соответствующие им объекты, можно создавать новые цвета и им присваивать произвольные объекты, это даёт возможность иметь различные объекты в любых сочетаниях.&lt;br /&gt;
Ну что ж, теперь мы знаем какому цвету что соответствует можем приступить и к рисованию. Запустим Photoshop, создадим новый файл размером 512х512. Вообще размер может быть любым кратным степени двойки, т.е. 128х128, 512х512, 1024х1024 и т.д.&lt;br /&gt;
&lt;br /&gt;
Начинаем рисовать расположение объектов на уровне в соответствии с тем цветом, который назначен в редакторе Detail Objects. Напомню, что альфа канал отвечает за плотность объектов.&lt;br /&gt;
Мой вариант текстуры можно увидеть справа(рисовал для наглядности).&lt;br /&gt;
&lt;br /&gt;
Сохраняем получившуюся текстуру в папку SDK/import в формате Targa(TGA - 32bit/px, без сжатия).&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
=== Применяем детальную текстуру к уровню ===&lt;br /&gt;
{|align=left&lt;br /&gt;
 |[[Изображение:SDK-Find-new-texture.gif|thumb|left|200px|Редактор нашёл текстуру]]&lt;br /&gt;
 |-&lt;br /&gt;
 |[[Изображение:SDK-Properties-DO.gif|thumb|200px|left|Свойства детальных объектов]]&lt;br /&gt;
 |}&lt;br /&gt;
[[Изображение:SDK-Update-Image-Dialog.gif|thumb|300px|Диалог импорта текстур]]&lt;br /&gt;
&lt;br /&gt;
Переходим к работе с Level Editor-ом. Сначала добавим нашу текстуру в редактор, Images -&amp;gt; Check New Textures. Данная команда заставляет редактор просмотреть папку SDK/Import и добавить новые файлы в Texture List.&lt;br /&gt;
Не меняя ничего в диалоге импорта текстур нажимаем ОК. Всё теперь наша карта есть в списке текстур редактора. &lt;br /&gt;
Напоминаю, что редактор должен быть в режиме работы с детальными объектами.&lt;br /&gt;
&lt;br /&gt;
Лезем Tools-&amp;gt;Properties, либо просто нажимаем &amp;quot;Enter&amp;quot;, если не меняли настройки горячих клавиш. В свойствах детальных объектов нам необходимо выбрать в качестве базовой текстуры нашу, щёлкаем по полю Base Texture. &lt;br /&gt;
Откроется диалог Select Texture, в котором находим нашу текстуру.&lt;br /&gt;
&amp;lt;!--[[Изображение:SDK-Select-texture-Dialog.gif|thumb|300px|center|Диалог Select Texture]]--&amp;gt;&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
[[Изображение:SDK-Fill-Snap-List.gif|frame|Snap List -&amp;gt; Commands -&amp;gt; Make List From Selected]]&lt;br /&gt;
Теперь переключаемся на режим редактировани Object, выбираем объекты, которые хотим покрыть детальными объектами, т.е. в нашем примере, что на данном этапе выберем, то и будет покрыто травой. Переключаемся обратно в режим редактирования Detail Objects, необходимо заполнить Snap List, для этого даём команду Snap List -&amp;gt; Commands -&amp;gt; Make List From Selected.&lt;br /&gt;
&lt;br /&gt;
Список заполнен, проводим первую инициализацию(DO Commands -&amp;gt; First Initialize). В итоге у нас должно получиться что-то типа того, что изображено на левом скриншоте ниже, я специально вставил скрин исходника текстуры для сравнения.&lt;br /&gt;
&lt;br /&gt;
Работа закончена, осталось собрать и откомпилировать уровень.&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
 |[[Изображение:SDK Level-Editor DO.jpg|thumb|500px|Вид на наш уровень сверху]]&lt;br /&gt;
 |[[Изображение:SDK Level-Editor DO zoom.jpg|thumb|500px|Более близкий взгляд]]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
== Компиляция ==&lt;br /&gt;
Компиляция детальных объектов осуществляется компилятором xrDO_light. Т.е. после сборки уровня(Compile -&amp;gt; Build) компилируется уровень(xrLC), а потом просчитывается освещение для детальных объектов(xrDO_light). Таким образом, если пришлось поменять что-то в детальных объектах, нет необходимости заново компилировать уровень, достаточно просчитать освещение детальных объектов и всё, т.е. Compile -&amp;gt; Make Detail + xrDO_light&lt;br /&gt;
&lt;br /&gt;
Вот как это выглядит в игре.&lt;br /&gt;
{|&lt;br /&gt;
|[[Изображение:Ss pavel 06-12-07 03-13-49 (ai).jpg|thumb|400px|Детальные объекты в игре]]&lt;br /&gt;
|[[Изображение:Ss pavel 06-12-07 03-15-39 (ai).jpg|thumb|400px|Разная плотность детальных объектов]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Категория: SDK]]&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_pavel_06-12-07_03-15-39_(ai).jpg</id>
		<title>Файл:Ss pavel 06-12-07 03-15-39 (ai).jpg</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_pavel_06-12-07_03-15-39_(ai).jpg"/>
				<updated>2007-06-11T21:27:22Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: Разная плотность детальных объектов&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Разная плотность детальных объектов&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_pavel_06-12-07_03-13-49_(ai).jpg</id>
		<title>Файл:Ss pavel 06-12-07 03-13-49 (ai).jpg</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_pavel_06-12-07_03-13-49_(ai).jpg"/>
				<updated>2007-06-11T21:25:50Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: Детальные объекты в игре&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Детальные объекты в игре&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)</id>
		<title>3ds Max. Создание ломающегося предмета (дневник исследования)</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)"/>
				<updated>2007-06-11T20:19:26Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: категория&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
|''Автор:'' '''Neo]['''&lt;br /&gt;
|}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Структура статьи ==&lt;br /&gt;
Раз это дневник, а не полноценная статья, то структура несколько странная получилась. Если интересен сам процесс исследования, то можно читать по порядку, иначе можно сразу перейти к секции ''Создание модели''.&lt;br /&gt;
== Введение ==&lt;br /&gt;
Ну что, я пока тоже не знаю как это сделать, но на то это и дневник, чтобы записывать сюда ход исследований. Разбираться буду на каком-нибудь примере. Возьму для разбора деревянный ящик.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Поехали ==&lt;br /&gt;
Первым делом решил посмотреть, что из себя представляет модель деревянного ящика, нашёл две модели:&lt;br /&gt;
*gamedata\meshes\objects\dynamics\box\box_wood_01.ogf&lt;br /&gt;
*gamedata\meshes\physics\box\box_wood_01.ogf&lt;br /&gt;
Просмотрев модели в этих директориях, остановился на gamedata\meshes\physics\box\box_wood_01.ogf.&lt;br /&gt;
Хотя в обоих случаях присутствует папка \prt\, из названия ясно, что это части объектов(part), т.е. их также необходимо отдельно моделить, жаль, что xray + ode не считают это в динамике. Хотя для стекла-то нет частей, через опыты понятно, что стекло ломается по полигонам.&lt;br /&gt;
Ну да ладно разговор не об этом.&lt;br /&gt;
&lt;br /&gt;
Есть целая модель, есть части, значит... Значит надо как-то указать эти части, правильно конфиг объекта. Иду искать. Нахожу:&lt;br /&gt;
*gamedata\config\models\objects\box_wood_01.ltx&lt;br /&gt;
&lt;br /&gt;
Меня заинтересовала секция:&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[destroyed]&lt;br /&gt;
physics\box\prt\box_wood_01_prt1&lt;br /&gt;
physics\box\prt\box_wood_01_prt2&lt;br /&gt;
physics\box\prt\box_wood_01_prt3&lt;br /&gt;
physics\box\prt\box_wood_01_prt4&lt;br /&gt;
physics\box\prt\box_wood_01_prt5&lt;br /&gt;
physics\box\prt\box_wood_01_prt6&lt;br /&gt;
physics\box\prt\box_wood_01_prt7&lt;br /&gt;
&lt;br /&gt;
[autoremove_parts]&lt;br /&gt;
time = 15&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Значит со структурой ломающихся объектов разобрались.&lt;br /&gt;
&lt;br /&gt;
== Создание модели ==&lt;br /&gt;
&lt;br /&gt;
Теперь перенести бы это на процесс создания, первым делом попробуем подобрать необходимые шейдеры. Пошёл смотреть [[Описание шейдеров XRayMtl]].&lt;br /&gt;
Добавлю, что:&lt;br /&gt;
* Engine - отображение текстуры в движке игры.&lt;br /&gt;
* Compiler - используется при компиляции уровня.&lt;br /&gt;
* Material - игровой материал (wallmark, sound и др.). &lt;br /&gt;
&lt;br /&gt;
Выбрал:&lt;br /&gt;
*Engine - models/model(Основной шейдер для динамических объектов)&lt;br /&gt;
*Compiler - def_vertex(Основной vertex shader, раз физический объект, вершинный шейдер значит по любому нужен)&lt;br /&gt;
*Material - objects/large_furnitura(Материал деревянных изделий)&lt;br /&gt;
&lt;br /&gt;
Попробую повторить тот же самый ящик, запускаю макс, быстренько моделю подобие ящика и частей на которые он будет распадаться. Для всего ящика ставлю настройки шейдеров, которые написаны выше, для частей же просто как для деревянный досок([[Пресеты XRay материалов]]).&lt;br /&gt;
{|&lt;br /&gt;
|[[Изображение:3D-max-test-box.jpg|thumb|400px|Тестовый ящик]]&lt;br /&gt;
|}&lt;br /&gt;
Экспортирую ящик и каждую из частей отдельно.&lt;br /&gt;
Далее после экспорта в ogf с занесением в custom data модели почти копии файла gamedata\config\models\objects\box_wood_01.ltx и спавна в редакторе как destroyable_objects, натыкаюсь на кучу ошибок в редакторе, толи что-то неправильно, толи...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update:''' При загрузке уровня получаю следующий лог:&lt;br /&gt;
  stack trace:&lt;br /&gt;
&lt;br /&gt;
  001B:0049B5FF XR_3DA.exe, CCF_Skeleton::CCF_Skeleton()&lt;br /&gt;
  001B:01CC39FF xrGame.dll&lt;br /&gt;
  001B:01C8AA2B xrGame.dll&lt;br /&gt;
  001B:01C82A34 xrGame.dll&lt;br /&gt;
[[Изображение:3D-max-bone-test-box.jpg|thumb|left|400px|Добавление костей]]&lt;br /&gt;
Хм, после раздумий делаю выводы, что надо делать также как и оружие или персов. Ну что ж будем делать.&lt;br /&gt;
&lt;br /&gt;
Открываю сцену в максе, добавляю 2 кости: Create-&amp;gt; System -&amp;gt; Bones. Первую назову link, вторая может называться хоть как, без разницы.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:3d-max-init.gif|frame|Инициализация скелета]]&lt;br /&gt;
Теперь применю к мешу ящика модификатор Physique. Проинициализурем скелет, нажатием на кнопку Attach to Node и выбрав кость link.&amp;lt;br /&amp;gt;&lt;br /&gt;
Теперь небольшое отступление по поводу этого модификатора. Раскрыв свиток модификатора, мы видим там следующее:&lt;br /&gt;
*Envelope – Настройка веса вершин и привязке к кости с помощью огибающих&lt;br /&gt;
*Link – Настройка параметров костей&lt;br /&gt;
*Bulge – Редактор выпуклостей&lt;br /&gt;
*Tendons – Редактор сухожилий&lt;br /&gt;
*Vertex – Настройка типа вершин и привязка к кости.&amp;lt;br /&amp;gt;&lt;br /&gt;
Но меня интересует только Envelope и Vertex. Настрою привязку вершин к кости, учитывая, чтобы ни одна вершина не осталась непривязанной. Иду в Vertex.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Типы вершин:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Деформируемые вершины (мягкие)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Недеформируемые вершины (Твердые)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;blue&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Пустые вершины без весa и привязки к кости&amp;lt;br /&amp;gt;&lt;br /&gt;
Сам ящик твердый, и поэтому мы используем для него rigid вершины. Счала надо очистить вершины от других костей, нажимаем select, выделяем вершины, переключаемся на синие вершины, нажимаем Assign to link и тыкаем на желтую полоску кости link. Вес и привязка сняты, теперь переключаемся на зеленые и опять тыкаем на линк, привязка назначена.&lt;br /&gt;
&lt;br /&gt;
Теперь экспортируем модель нашего ящика через Export Skin, а части простым экспортом(Export Editor Objects). Я сохранил модель ящика под именем test_box, а частей как test_box_prt{номер части}.&lt;br /&gt;
&lt;br /&gt;
== Дальнейшая настройка и конвертирование в *.ogf ==&lt;br /&gt;
[[Изображение:SDK-Actor-Ed-preferences.gif|thumb|400px|Настройка Actor Editor-a]]&lt;br /&gt;
Запускаем Actor Editor, для удобства работы изменим некоторые настройки программы, а именно Preferences -&amp;gt; Objects -&amp;gt; Skeleton, поставим все галочки.&lt;br /&gt;
Теперь загрузим наш объект(File-&amp;gt; Load...). &lt;br /&gt;
&lt;br /&gt;
=== Настройка объекта ===&lt;br /&gt;
&lt;br /&gt;
Первым делом настроим наш объект в целом, как я уже говорил в секции про исследование, что части объекта задаются конфигом. Для первого своего разрушаемого объекта я взял конфиг от ящика(gamedata\config\models\objects\box_wood_01.ltx), скопировал его, переименовал в test_box.ltx, далее немного изменил его в соответствии со своей задумкой. &lt;br /&gt;
&lt;br /&gt;
Поменял только пути к частям:&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot; align=&amp;quot;left&amp;quot;&lt;br /&gt;
! Оригинал(box_wood_01.ltx) || Наш конфиг(test_box.ltx)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code ini&amp;gt;[destroyed]&lt;br /&gt;
physics\box\prt\box_wood_01_prt1&lt;br /&gt;
physics\box\prt\box_wood_01_prt2&lt;br /&gt;
physics\box\prt\box_wood_01_prt3&lt;br /&gt;
physics\box\prt\box_wood_01_prt4&lt;br /&gt;
physics\box\prt\box_wood_01_prt5&lt;br /&gt;
physics\box\prt\box_wood_01_prt6&lt;br /&gt;
physics\box\prt\box_wood_01_prt7&amp;lt;/code&amp;gt;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &amp;lt;code ini&amp;gt;[destroyed]&lt;br /&gt;
physics\test_box\prt\test_box_prt1&lt;br /&gt;
physics\test_box\prt\test_box_prt2&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Остальное пока оставил без изменений. &lt;br /&gt;
Загрузим получившийся конфиг в User Data объекта, т.е. в Object Item выбираем Object, в нижней части Item Properties, щёлкаем по полю User Data. Откроется диалог в котором нажимаем Load и ищем наш конфиг.&amp;lt;br /&amp;gt;&lt;br /&gt;
Всё с настройкой объекта закончили, перейдём к настройке геометрии.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Настройка геометрии ===&lt;br /&gt;
В Object Items развернём свиток Bones, в нашем случае будет одна кость с имненем link, выбираем её.&lt;br /&gt;
В свойствах пункт Bones -&amp;gt; Global -&amp;gt; Generate Shape нажимае All. Идём ниже по списку:&lt;br /&gt;
*Bones -&amp;gt; Bone -&amp;gt; Game Material указываем материал для нашей кости. Материал выбирается только из папки objects\, в соответствии с тем, какой материал хотим для нашего объекта, смотри [[Описание шейдеров XRayMtl]]. В нашем случае я выбрал objects/large_furnitura, что соответствует материалу деревянных изделий.&lt;br /&gt;
*Bones -&amp;gt; Bone -&amp;gt; Mass - масса нашего объекта, я поставил 2.&lt;br /&gt;
*Bones -&amp;gt; Bone -&amp;gt; Shape -&amp;gt; Type - форма геометрии, в нашем случае Box.&lt;br /&gt;
&lt;br /&gt;
Далее нужно настроить геометрию так, как хотите, чтобы ваш объект коллизил с другими, т.е. после того, как type установлен в Box,&lt;br /&gt;
должен появиться белый полупрозрачный шейп, это коллижен для пули и физики. Можно дополнительно редактировать шейп, например инструментом Scale.&lt;br /&gt;
&lt;br /&gt;
Всё наш ящик готов к экспорту в ogf.&amp;lt;br /&amp;gt;&lt;br /&gt;
File -&amp;gt; Export -&amp;gt; Export OGF... сохраняем файл как: gamedata\meshes\physics\test_box\test_box.ogf&lt;br /&gt;
&lt;br /&gt;
Теперь поочерёдно загружаем части нашего объекта, ничего не меняя экспортим их как: gamedata\meshes\physics\test_box\prt\test_box_prt{номер части в соотв. с конфигом}.ogf&lt;br /&gt;
&lt;br /&gt;
== Ставим наш ящик на карту ==&lt;br /&gt;
Наш ящик ставится, как энтити destroyable_object. Переводим редактор в режим Spawn Element и добавляем на карту энтити physics/destroyable_object.&lt;br /&gt;
&lt;br /&gt;
Далее в свойствах энтити устанавливаем нашу модель в свойстве Model/Visual. Всё можно компилировать уровень и идти ломать её, вот как это примерно выглядит в игре.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Изображение:Ss pavel 06-11-07 23-54-58 (ww).jpg|thumb|400px|Ломающийся объект в игре]]&lt;br /&gt;
|[[Изображение:Ss pavel 06-11-07 23-55-08 (ww).jpg|thumb|400px|Ломающийся объект в игре]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Что дальше? ==&lt;br /&gt;
А дальше постараемся вспомнить все ролики, ФО и постараемся восстановить всё, что видели в них. Шкаф с отпадывающими дверками, &amp;quot;самодельные&amp;quot; бьющиеся лампы и т.д.&lt;br /&gt;
&lt;br /&gt;
== Благодарности ==&lt;br /&gt;
*Юрию Негробову - за помощь в настройке объекта в Actor Editor-е.&lt;br /&gt;
[[Категория:SDK]]&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)</id>
		<title>3ds Max. Создание ломающегося предмета (дневник исследования)</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)"/>
				<updated>2007-06-11T20:13:13Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: /* Что дальше? */ орфография&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
|''Автор:'' '''Neo]['''&lt;br /&gt;
|}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Структура статьи ==&lt;br /&gt;
Раз это дневник, а не полноценная статья, то структура несколько странная получилась. Если интересен сам процесс исследования, то можно читать по порядку, иначе можно сразу перейти к секции ''Создание модели''.&lt;br /&gt;
== Введение ==&lt;br /&gt;
Ну что, я пока тоже не знаю как это сделать, но на то это и дневник, чтобы записывать сюда ход исследований. Разбираться буду на каком-нибудь примере. Возьму для разбора деревянный ящик.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Поехали ==&lt;br /&gt;
Первым делом решил посмотреть, что из себя представляет модель деревянного ящика, нашёл две модели:&lt;br /&gt;
*gamedata\meshes\objects\dynamics\box\box_wood_01.ogf&lt;br /&gt;
*gamedata\meshes\physics\box\box_wood_01.ogf&lt;br /&gt;
Просмотрев модели в этих директориях, остановился на gamedata\meshes\physics\box\box_wood_01.ogf.&lt;br /&gt;
Хотя в обоих случаях присутствует папка \prt\, из названия ясно, что это части объектов(part), т.е. их также необходимо отдельно моделить, жаль, что xray + ode не считают это в динамике. Хотя для стекла-то нет частей, через опыты понятно, что стекло ломается по полигонам.&lt;br /&gt;
Ну да ладно разговор не об этом.&lt;br /&gt;
&lt;br /&gt;
Есть целая модель, есть части, значит... Значит надо как-то указать эти части, правильно конфиг объекта. Иду искать. Нахожу:&lt;br /&gt;
*gamedata\config\models\objects\box_wood_01.ltx&lt;br /&gt;
&lt;br /&gt;
Меня заинтересовала секция:&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[destroyed]&lt;br /&gt;
physics\box\prt\box_wood_01_prt1&lt;br /&gt;
physics\box\prt\box_wood_01_prt2&lt;br /&gt;
physics\box\prt\box_wood_01_prt3&lt;br /&gt;
physics\box\prt\box_wood_01_prt4&lt;br /&gt;
physics\box\prt\box_wood_01_prt5&lt;br /&gt;
physics\box\prt\box_wood_01_prt6&lt;br /&gt;
physics\box\prt\box_wood_01_prt7&lt;br /&gt;
&lt;br /&gt;
[autoremove_parts]&lt;br /&gt;
time = 15&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Значит со структурой ломающихся объектов разобрались.&lt;br /&gt;
&lt;br /&gt;
== Создание модели ==&lt;br /&gt;
&lt;br /&gt;
Теперь перенести бы это на процесс создания, первым делом попробуем подобрать необходимые шейдеры. Пошёл смотреть [[Описание шейдеров XRayMtl]].&lt;br /&gt;
Добавлю, что:&lt;br /&gt;
* Engine - отображение текстуры в движке игры.&lt;br /&gt;
* Compiler - используется при компиляции уровня.&lt;br /&gt;
* Material - игровой материал (wallmark, sound и др.). &lt;br /&gt;
&lt;br /&gt;
Выбрал:&lt;br /&gt;
*Engine - models/model(Основной шейдер для динамических объектов)&lt;br /&gt;
*Compiler - def_vertex(Основной vertex shader, раз физический объект, вершинный шейдер значит по любому нужен)&lt;br /&gt;
*Material - objects/large_furnitura(Материал деревянных изделий)&lt;br /&gt;
&lt;br /&gt;
Попробую повторить тот же самый ящик, запускаю макс, быстренько моделю подобие ящика и частей на которые он будет распадаться. Для всего ящика ставлю настройки шейдеров, которые написаны выше, для частей же просто как для деревянный досок([[Пресеты XRay материалов]]).&lt;br /&gt;
{|&lt;br /&gt;
|[[Изображение:3D-max-test-box.jpg|thumb|400px|Тестовый ящик]]&lt;br /&gt;
|}&lt;br /&gt;
Экспортирую ящик и каждую из частей отдельно.&lt;br /&gt;
Далее после экспорта в ogf с занесением в custom data модели почти копии файла gamedata\config\models\objects\box_wood_01.ltx и спавна в редакторе как destroyable_objects, натыкаюсь на кучу ошибок в редакторе, толи что-то неправильно, толи...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update:''' При загрузке уровня получаю следующий лог:&lt;br /&gt;
  stack trace:&lt;br /&gt;
&lt;br /&gt;
  001B:0049B5FF XR_3DA.exe, CCF_Skeleton::CCF_Skeleton()&lt;br /&gt;
  001B:01CC39FF xrGame.dll&lt;br /&gt;
  001B:01C8AA2B xrGame.dll&lt;br /&gt;
  001B:01C82A34 xrGame.dll&lt;br /&gt;
[[Изображение:3D-max-bone-test-box.jpg|thumb|left|400px|Добавление костей]]&lt;br /&gt;
Хм, после раздумий делаю выводы, что надо делать также как и оружие или персов. Ну что ж будем делать.&lt;br /&gt;
&lt;br /&gt;
Открываю сцену в максе, добавляю 2 кости: Create-&amp;gt; System -&amp;gt; Bones. Первую назову link, вторая может называться хоть как, без разницы.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:3d-max-init.gif|frame|Инициализация скелета]]&lt;br /&gt;
Теперь применю к мешу ящика модификатор Physique. Проинициализурем скелет, нажатием на кнопку Attach to Node и выбрав кость link.&amp;lt;br /&amp;gt;&lt;br /&gt;
Теперь небольшое отступление по поводу этого модификатора. Раскрыв свиток модификатора, мы видим там следующее:&lt;br /&gt;
*Envelope – Настройка веса вершин и привязке к кости с помощью огибающих&lt;br /&gt;
*Link – Настройка параметров костей&lt;br /&gt;
*Bulge – Редактор выпуклостей&lt;br /&gt;
*Tendons – Редактор сухожилий&lt;br /&gt;
*Vertex – Настройка типа вершин и привязка к кости.&amp;lt;br /&amp;gt;&lt;br /&gt;
Но меня интересует только Envelope и Vertex. Настрою привязку вершин к кости, учитывая, чтобы ни одна вершина не осталась непривязанной. Иду в Vertex.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Типы вершин:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Деформируемые вершины (мягкие)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Недеформируемые вершины (Твердые)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;blue&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Пустые вершины без весa и привязки к кости&amp;lt;br /&amp;gt;&lt;br /&gt;
Сам ящик твердый, и поэтому мы используем для него rigid вершины. Счала надо очистить вершины от других костей, нажимаем select, выделяем вершины, переключаемся на синие вершины, нажимаем Assign to link и тыкаем на желтую полоску кости link. Вес и привязка сняты, теперь переключаемся на зеленые и опять тыкаем на линк, привязка назначена.&lt;br /&gt;
&lt;br /&gt;
Теперь экспортируем модель нашего ящика через Export Skin, а части простым экспортом(Export Editor Objects). Я сохранил модель ящика под именем test_box, а частей как test_box_prt{номер части}.&lt;br /&gt;
&lt;br /&gt;
== Дальнейшая настройка и конвертирование в *.ogf ==&lt;br /&gt;
[[Изображение:SDK-Actor-Ed-preferences.gif|thumb|400px|Настройка Actor Editor-a]]&lt;br /&gt;
Запускаем Actor Editor, для удобства работы изменим некоторые настройки программы, а именно Preferences -&amp;gt; Objects -&amp;gt; Skeleton, поставим все галочки.&lt;br /&gt;
Теперь загрузим наш объект(File-&amp;gt; Load...). &lt;br /&gt;
&lt;br /&gt;
=== Настройка объекта ===&lt;br /&gt;
&lt;br /&gt;
Первым делом настроим наш объект в целом, как я уже говорил в секции про исследование, что части объекта задаются конфигом. Для первого своего разрушаемого объекта я взял конфиг от ящика(gamedata\config\models\objects\box_wood_01.ltx), скопировал его, переименовал в test_box.ltx, далее немного изменил его в соответствии со своей задумкой. &lt;br /&gt;
&lt;br /&gt;
Поменял только пути к частям:&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot; align=&amp;quot;left&amp;quot;&lt;br /&gt;
! Оригинал(box_wood_01.ltx) || Наш конфиг(test_box.ltx)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code ini&amp;gt;[destroyed]&lt;br /&gt;
physics\box\prt\box_wood_01_prt1&lt;br /&gt;
physics\box\prt\box_wood_01_prt2&lt;br /&gt;
physics\box\prt\box_wood_01_prt3&lt;br /&gt;
physics\box\prt\box_wood_01_prt4&lt;br /&gt;
physics\box\prt\box_wood_01_prt5&lt;br /&gt;
physics\box\prt\box_wood_01_prt6&lt;br /&gt;
physics\box\prt\box_wood_01_prt7&amp;lt;/code&amp;gt;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &amp;lt;code ini&amp;gt;[destroyed]&lt;br /&gt;
physics\test_box\prt\test_box_prt1&lt;br /&gt;
physics\test_box\prt\test_box_prt2&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Остальное пока оставил без изменений. &lt;br /&gt;
Загрузим получившийся конфиг в User Data объекта, т.е. в Object Item выбираем Object, в нижней части Item Properties, щёлкаем по полю User Data. Откроется диалог в котором нажимаем Load и ищем наш конфиг.&amp;lt;br /&amp;gt;&lt;br /&gt;
Всё с настройкой объекта закончили, перейдём к настройке геометрии.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Настройка геометрии ===&lt;br /&gt;
В Object Items развернём свиток Bones, в нашем случае будет одна кость с имненем link, выбираем её.&lt;br /&gt;
В свойствах пункт Bones -&amp;gt; Global -&amp;gt; Generate Shape нажимае All. Идём ниже по списку:&lt;br /&gt;
*Bones -&amp;gt; Bone -&amp;gt; Game Material указываем материал для нашей кости. Материал выбирается только из папки objects\, в соответствии с тем, какой материал хотим для нашего объекта, смотри [[Описание шейдеров XRayMtl]]. В нашем случае я выбрал objects/large_furnitura, что соответствует материалу деревянных изделий.&lt;br /&gt;
*Bones -&amp;gt; Bone -&amp;gt; Mass - масса нашего объекта, я поставил 2.&lt;br /&gt;
*Bones -&amp;gt; Bone -&amp;gt; Shape -&amp;gt; Type - форма геометрии, в нашем случае Box.&lt;br /&gt;
&lt;br /&gt;
Далее нужно настроить геометрию так, как хотите, чтобы ваш объект коллизил с другими, т.е. после того, как type установлен в Box,&lt;br /&gt;
должен появиться белый полупрозрачный шейп, это коллижен для пули и физики. Можно дополнительно редактировать шейп, например инструментом Scale.&lt;br /&gt;
&lt;br /&gt;
Всё наш ящик готов к экспорту в ogf.&amp;lt;br /&amp;gt;&lt;br /&gt;
File -&amp;gt; Export -&amp;gt; Export OGF... сохраняем файл как: gamedata\meshes\physics\test_box\test_box.ogf&lt;br /&gt;
&lt;br /&gt;
Теперь поочерёдно загружаем части нашего объекта, ничего не меняя экспортим их как: gamedata\meshes\physics\test_box\prt\test_box_prt{номер части в соотв. с конфигом}.ogf&lt;br /&gt;
&lt;br /&gt;
== Ставим наш ящик на карту ==&lt;br /&gt;
Наш ящик ставится, как энтити destroyable_object. Переводим редактор в режим Spawn Element и добавляем на карту энтити physics/destroyable_object.&lt;br /&gt;
&lt;br /&gt;
Далее в свойствах энтити устанавливаем нашу модель в свойстве Model/Visual. Всё можно компилировать уровень и идти ломать её, вот как это примерно выглядит в игре.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Изображение:Ss pavel 06-11-07 23-54-58 (ww).jpg|thumb|400px|Ломающийся объект в игре]]&lt;br /&gt;
|[[Изображение:Ss pavel 06-11-07 23-55-08 (ww).jpg|thumb|400px|Ломающийся объект в игре]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Что дальше? ==&lt;br /&gt;
А дальше постараемся вспомнить все ролики, ФО и постараемся восстановить всё, что видели в них. Шкаф с отпадывающими дверками, &amp;quot;самодельные&amp;quot; бьющиеся лампы и т.д.&lt;br /&gt;
&lt;br /&gt;
== Благодарности ==&lt;br /&gt;
*Юрию Негробову - за помощь в настройке объекта в Actor Editor-е.&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)</id>
		<title>3ds Max. Создание ломающегося предмета (дневник исследования)</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)"/>
				<updated>2007-06-11T20:12:06Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: дополнение&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
|''Автор:'' '''Neo]['''&lt;br /&gt;
|}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Структура статьи ==&lt;br /&gt;
Раз это дневник, а не полноценная статья, то структура несколько странная получилась. Если интересен сам процесс исследования, то можно читать по порядку, иначе можно сразу перейти к секции ''Создание модели''.&lt;br /&gt;
== Введение ==&lt;br /&gt;
Ну что, я пока тоже не знаю как это сделать, но на то это и дневник, чтобы записывать сюда ход исследований. Разбираться буду на каком-нибудь примере. Возьму для разбора деревянный ящик.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Поехали ==&lt;br /&gt;
Первым делом решил посмотреть, что из себя представляет модель деревянного ящика, нашёл две модели:&lt;br /&gt;
*gamedata\meshes\objects\dynamics\box\box_wood_01.ogf&lt;br /&gt;
*gamedata\meshes\physics\box\box_wood_01.ogf&lt;br /&gt;
Просмотрев модели в этих директориях, остановился на gamedata\meshes\physics\box\box_wood_01.ogf.&lt;br /&gt;
Хотя в обоих случаях присутствует папка \prt\, из названия ясно, что это части объектов(part), т.е. их также необходимо отдельно моделить, жаль, что xray + ode не считают это в динамике. Хотя для стекла-то нет частей, через опыты понятно, что стекло ломается по полигонам.&lt;br /&gt;
Ну да ладно разговор не об этом.&lt;br /&gt;
&lt;br /&gt;
Есть целая модель, есть части, значит... Значит надо как-то указать эти части, правильно конфиг объекта. Иду искать. Нахожу:&lt;br /&gt;
*gamedata\config\models\objects\box_wood_01.ltx&lt;br /&gt;
&lt;br /&gt;
Меня заинтересовала секция:&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[destroyed]&lt;br /&gt;
physics\box\prt\box_wood_01_prt1&lt;br /&gt;
physics\box\prt\box_wood_01_prt2&lt;br /&gt;
physics\box\prt\box_wood_01_prt3&lt;br /&gt;
physics\box\prt\box_wood_01_prt4&lt;br /&gt;
physics\box\prt\box_wood_01_prt5&lt;br /&gt;
physics\box\prt\box_wood_01_prt6&lt;br /&gt;
physics\box\prt\box_wood_01_prt7&lt;br /&gt;
&lt;br /&gt;
[autoremove_parts]&lt;br /&gt;
time = 15&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Значит со структурой ломающихся объектов разобрались.&lt;br /&gt;
&lt;br /&gt;
== Создание модели ==&lt;br /&gt;
&lt;br /&gt;
Теперь перенести бы это на процесс создания, первым делом попробуем подобрать необходимые шейдеры. Пошёл смотреть [[Описание шейдеров XRayMtl]].&lt;br /&gt;
Добавлю, что:&lt;br /&gt;
* Engine - отображение текстуры в движке игры.&lt;br /&gt;
* Compiler - используется при компиляции уровня.&lt;br /&gt;
* Material - игровой материал (wallmark, sound и др.). &lt;br /&gt;
&lt;br /&gt;
Выбрал:&lt;br /&gt;
*Engine - models/model(Основной шейдер для динамических объектов)&lt;br /&gt;
*Compiler - def_vertex(Основной vertex shader, раз физический объект, вершинный шейдер значит по любому нужен)&lt;br /&gt;
*Material - objects/large_furnitura(Материал деревянных изделий)&lt;br /&gt;
&lt;br /&gt;
Попробую повторить тот же самый ящик, запускаю макс, быстренько моделю подобие ящика и частей на которые он будет распадаться. Для всего ящика ставлю настройки шейдеров, которые написаны выше, для частей же просто как для деревянный досок([[Пресеты XRay материалов]]).&lt;br /&gt;
{|&lt;br /&gt;
|[[Изображение:3D-max-test-box.jpg|thumb|400px|Тестовый ящик]]&lt;br /&gt;
|}&lt;br /&gt;
Экспортирую ящик и каждую из частей отдельно.&lt;br /&gt;
Далее после экспорта в ogf с занесением в custom data модели почти копии файла gamedata\config\models\objects\box_wood_01.ltx и спавна в редакторе как destroyable_objects, натыкаюсь на кучу ошибок в редакторе, толи что-то неправильно, толи...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update:''' При загрузке уровня получаю следующий лог:&lt;br /&gt;
  stack trace:&lt;br /&gt;
&lt;br /&gt;
  001B:0049B5FF XR_3DA.exe, CCF_Skeleton::CCF_Skeleton()&lt;br /&gt;
  001B:01CC39FF xrGame.dll&lt;br /&gt;
  001B:01C8AA2B xrGame.dll&lt;br /&gt;
  001B:01C82A34 xrGame.dll&lt;br /&gt;
[[Изображение:3D-max-bone-test-box.jpg|thumb|left|400px|Добавление костей]]&lt;br /&gt;
Хм, после раздумий делаю выводы, что надо делать также как и оружие или персов. Ну что ж будем делать.&lt;br /&gt;
&lt;br /&gt;
Открываю сцену в максе, добавляю 2 кости: Create-&amp;gt; System -&amp;gt; Bones. Первую назову link, вторая может называться хоть как, без разницы.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:3d-max-init.gif|frame|Инициализация скелета]]&lt;br /&gt;
Теперь применю к мешу ящика модификатор Physique. Проинициализурем скелет, нажатием на кнопку Attach to Node и выбрав кость link.&amp;lt;br /&amp;gt;&lt;br /&gt;
Теперь небольшое отступление по поводу этого модификатора. Раскрыв свиток модификатора, мы видим там следующее:&lt;br /&gt;
*Envelope – Настройка веса вершин и привязке к кости с помощью огибающих&lt;br /&gt;
*Link – Настройка параметров костей&lt;br /&gt;
*Bulge – Редактор выпуклостей&lt;br /&gt;
*Tendons – Редактор сухожилий&lt;br /&gt;
*Vertex – Настройка типа вершин и привязка к кости.&amp;lt;br /&amp;gt;&lt;br /&gt;
Но меня интересует только Envelope и Vertex. Настрою привязку вершин к кости, учитывая, чтобы ни одна вершина не осталась непривязанной. Иду в Vertex.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Типы вершин:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Деформируемые вершины (мягкие)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Недеформируемые вершины (Твердые)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;blue&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Пустые вершины без весa и привязки к кости&amp;lt;br /&amp;gt;&lt;br /&gt;
Сам ящик твердый, и поэтому мы используем для него rigid вершины. Счала надо очистить вершины от других костей, нажимаем select, выделяем вершины, переключаемся на синие вершины, нажимаем Assign to link и тыкаем на желтую полоску кости link. Вес и привязка сняты, теперь переключаемся на зеленые и опять тыкаем на линк, привязка назначена.&lt;br /&gt;
&lt;br /&gt;
Теперь экспортируем модель нашего ящика через Export Skin, а части простым экспортом(Export Editor Objects). Я сохранил модель ящика под именем test_box, а частей как test_box_prt{номер части}.&lt;br /&gt;
&lt;br /&gt;
== Дальнейшая настройка и конвертирование в *.ogf ==&lt;br /&gt;
[[Изображение:SDK-Actor-Ed-preferences.gif|thumb|400px|Настройка Actor Editor-a]]&lt;br /&gt;
Запускаем Actor Editor, для удобства работы изменим некоторые настройки программы, а именно Preferences -&amp;gt; Objects -&amp;gt; Skeleton, поставим все галочки.&lt;br /&gt;
Теперь загрузим наш объект(File-&amp;gt; Load...). &lt;br /&gt;
&lt;br /&gt;
=== Настройка объекта ===&lt;br /&gt;
&lt;br /&gt;
Первым делом настроим наш объект в целом, как я уже говорил в секции про исследование, что части объекта задаются конфигом. Для первого своего разрушаемого объекта я взял конфиг от ящика(gamedata\config\models\objects\box_wood_01.ltx), скопировал его, переименовал в test_box.ltx, далее немного изменил его в соответствии со своей задумкой. &lt;br /&gt;
&lt;br /&gt;
Поменял только пути к частям:&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot; align=&amp;quot;left&amp;quot;&lt;br /&gt;
! Оригинал(box_wood_01.ltx) || Наш конфиг(test_box.ltx)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code ini&amp;gt;[destroyed]&lt;br /&gt;
physics\box\prt\box_wood_01_prt1&lt;br /&gt;
physics\box\prt\box_wood_01_prt2&lt;br /&gt;
physics\box\prt\box_wood_01_prt3&lt;br /&gt;
physics\box\prt\box_wood_01_prt4&lt;br /&gt;
physics\box\prt\box_wood_01_prt5&lt;br /&gt;
physics\box\prt\box_wood_01_prt6&lt;br /&gt;
physics\box\prt\box_wood_01_prt7&amp;lt;/code&amp;gt;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &amp;lt;code ini&amp;gt;[destroyed]&lt;br /&gt;
physics\test_box\prt\test_box_prt1&lt;br /&gt;
physics\test_box\prt\test_box_prt2&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Остальное пока оставил без изменений. &lt;br /&gt;
Загрузим получившийся конфиг в User Data объекта, т.е. в Object Item выбираем Object, в нижней части Item Properties, щёлкаем по полю User Data. Откроется диалог в котором нажимаем Load и ищем наш конфиг.&amp;lt;br /&amp;gt;&lt;br /&gt;
Всё с настройкой объекта закончили, перейдём к настройке геометрии.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Настройка геометрии ===&lt;br /&gt;
В Object Items развернём свиток Bones, в нашем случае будет одна кость с имненем link, выбираем её.&lt;br /&gt;
В свойствах пункт Bones -&amp;gt; Global -&amp;gt; Generate Shape нажимае All. Идём ниже по списку:&lt;br /&gt;
*Bones -&amp;gt; Bone -&amp;gt; Game Material указываем материал для нашей кости. Материал выбирается только из папки objects\, в соответствии с тем, какой материал хотим для нашего объекта, смотри [[Описание шейдеров XRayMtl]]. В нашем случае я выбрал objects/large_furnitura, что соответствует материалу деревянных изделий.&lt;br /&gt;
*Bones -&amp;gt; Bone -&amp;gt; Mass - масса нашего объекта, я поставил 2.&lt;br /&gt;
*Bones -&amp;gt; Bone -&amp;gt; Shape -&amp;gt; Type - форма геометрии, в нашем случае Box.&lt;br /&gt;
&lt;br /&gt;
Далее нужно настроить геометрию так, как хотите, чтобы ваш объект коллизил с другими, т.е. после того, как type установлен в Box,&lt;br /&gt;
должен появиться белый полупрозрачный шейп, это коллижен для пули и физики. Можно дополнительно редактировать шейп, например инструментом Scale.&lt;br /&gt;
&lt;br /&gt;
Всё наш ящик готов к экспорту в ogf.&amp;lt;br /&amp;gt;&lt;br /&gt;
File -&amp;gt; Export -&amp;gt; Export OGF... сохраняем файл как: gamedata\meshes\physics\test_box\test_box.ogf&lt;br /&gt;
&lt;br /&gt;
Теперь поочерёдно загружаем части нашего объекта, ничего не меняя экспортим их как: gamedata\meshes\physics\test_box\prt\test_box_prt{номер части в соотв. с конфигом}.ogf&lt;br /&gt;
&lt;br /&gt;
== Ставим наш ящик на карту ==&lt;br /&gt;
Наш ящик ставится, как энтити destroyable_object. Переводим редактор в режим Spawn Element и добавляем на карту энтити physics/destroyable_object.&lt;br /&gt;
&lt;br /&gt;
Далее в свойствах энтити устанавливаем нашу модель в свойстве Model/Visual. Всё можно компилировать уровень и идти ломать её, вот как это примерно выглядит в игре.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Изображение:Ss pavel 06-11-07 23-54-58 (ww).jpg|thumb|400px|Ломающийся объект в игре]]&lt;br /&gt;
|[[Изображение:Ss pavel 06-11-07 23-55-08 (ww).jpg|thumb|400px|Ломающийся объект в игре]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Что дальше? ==&lt;br /&gt;
А дальше постараемся вспомнить все ролики ФО и постараемся восстановить всё, что видели в них. Шкаф с отпадывающими дверками, &amp;quot;самодельные&amp;quot; бьющиеся лампы и т.д.&lt;br /&gt;
&lt;br /&gt;
== Благодарности ==&lt;br /&gt;
*Юрию Негробову - за помощь в настройке объекта в Actor Editor-е.&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)</id>
		<title>3ds Max. Создание ломающегося предмета (дневник исследования)</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)"/>
				<updated>2007-06-11T20:09:11Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: дополнение&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
|''Автор:'' '''Neo]['''&lt;br /&gt;
|}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Структура статьи ==&lt;br /&gt;
Раз это дневник, а не полноценная статья, то структура несколько странная получилась. Если интересен сам процесс исследования, то можно читать по порядку, иначе можно сразу перейти к секции ''Создание модели''.&lt;br /&gt;
== Введение ==&lt;br /&gt;
Ну что, я пока тоже не знаю как это сделать, но на то это и дневник, чтобы записывать сюда ход исследований. Разбираться буду на каком-нибудь примере. Возьму для разбора деревянный ящик.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Поехали ==&lt;br /&gt;
Первым делом решил посмотреть, что из себя представляет модель деревянного ящика, нашёл две модели:&lt;br /&gt;
*gamedata\meshes\objects\dynamics\box\box_wood_01.ogf&lt;br /&gt;
*gamedata\meshes\physics\box\box_wood_01.ogf&lt;br /&gt;
Просмотрев модели в этих директориях, остановился на gamedata\meshes\physics\box\box_wood_01.ogf.&lt;br /&gt;
Хотя в обоих случаях присутствует папка \prt\, из названия ясно, что это части объектов(part), т.е. их также необходимо отдельно моделить, жаль, что xray + ode не считают это в динамике. Хотя для стекла-то нет частей, через опыты понятно, что стекло ломается по полигонам.&lt;br /&gt;
Ну да ладно разговор не об этом.&lt;br /&gt;
&lt;br /&gt;
Есть целая модель, есть части, значит... Значит надо как-то указать эти части, правильно конфиг объекта. Иду искать. Нахожу:&lt;br /&gt;
*gamedata\config\models\objects\box_wood_01.ltx&lt;br /&gt;
&lt;br /&gt;
Меня заинтересовала секция:&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[destroyed]&lt;br /&gt;
physics\box\prt\box_wood_01_prt1&lt;br /&gt;
physics\box\prt\box_wood_01_prt2&lt;br /&gt;
physics\box\prt\box_wood_01_prt3&lt;br /&gt;
physics\box\prt\box_wood_01_prt4&lt;br /&gt;
physics\box\prt\box_wood_01_prt5&lt;br /&gt;
physics\box\prt\box_wood_01_prt6&lt;br /&gt;
physics\box\prt\box_wood_01_prt7&lt;br /&gt;
&lt;br /&gt;
[autoremove_parts]&lt;br /&gt;
time = 15&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Значит со структурой ломающихся объектов разобрались.&lt;br /&gt;
&lt;br /&gt;
== Создание модели ==&lt;br /&gt;
&lt;br /&gt;
Теперь перенести бы это на процесс создания, первым делом попробуем подобрать необходимые шейдеры. Пошёл смотреть [[Описание шейдеров XRayMtl]].&lt;br /&gt;
Добавлю, что:&lt;br /&gt;
* Engine - отображение текстуры в движке игры.&lt;br /&gt;
* Compiler - используется при компиляции уровня.&lt;br /&gt;
* Material - игровой материал (wallmark, sound и др.). &lt;br /&gt;
&lt;br /&gt;
Выбрал:&lt;br /&gt;
*Engine - models/model(Основной шейдер для динамических объектов)&lt;br /&gt;
*Compiler - def_vertex(Основной vertex shader, раз физический объект, вершинный шейдер значит по любому нужен)&lt;br /&gt;
*Material - objects/large_furnitura(Материал деревянных изделий)&lt;br /&gt;
&lt;br /&gt;
Попробую повторить тот же самый ящик, запускаю макс, быстренько моделю подобие ящика и частей на которые он будет распадаться. Для всего ящика ставлю настройки шейдеров, которые написаны выше, для частей же просто как для деревянный досок([[Пресеты XRay материалов]]).&lt;br /&gt;
{|&lt;br /&gt;
|[[Изображение:3D-max-test-box.jpg|thumb|400px|Тестовый ящик]]&lt;br /&gt;
|}&lt;br /&gt;
Экспортирую ящик и каждую из частей отдельно.&lt;br /&gt;
Далее после экспорта в ogf с занесением в custom data модели почти копии файла gamedata\config\models\objects\box_wood_01.ltx и спавна в редакторе как destroyable_objects, натыкаюсь на кучу ошибок в редакторе, толи что-то неправильно, толи...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update:''' При загрузке уровня получаю следующий лог:&lt;br /&gt;
  stack trace:&lt;br /&gt;
&lt;br /&gt;
  001B:0049B5FF XR_3DA.exe, CCF_Skeleton::CCF_Skeleton()&lt;br /&gt;
  001B:01CC39FF xrGame.dll&lt;br /&gt;
  001B:01C8AA2B xrGame.dll&lt;br /&gt;
  001B:01C82A34 xrGame.dll&lt;br /&gt;
[[Изображение:3D-max-bone-test-box.jpg|thumb|left|400px|Добавление костей]]&lt;br /&gt;
Хм, после раздумий делаю выводы, что надо делать также как и оружие или персов. Ну что ж будем делать.&lt;br /&gt;
&lt;br /&gt;
Открываю сцену в максе, добавляю 2 кости: Create-&amp;gt; System -&amp;gt; Bones. Первую назову link, вторая может называться хоть как, без разницы.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:3d-max-init.gif|frame|Инициализация скелета]]&lt;br /&gt;
Теперь применю к мешу ящика модификатор Physique. Проинициализурем скелет, нажатием на кнопку Attach to Node и выбрав кость link.&amp;lt;br /&amp;gt;&lt;br /&gt;
Теперь небольшое отступление по поводу этого модификатора. Раскрыв свиток модификатора, мы видим там следующее:&lt;br /&gt;
*Envelope – Настройка веса вершин и привязке к кости с помощью огибающих&lt;br /&gt;
*Link – Настройка параметров костей&lt;br /&gt;
*Bulge – Редактор выпуклостей&lt;br /&gt;
*Tendons – Редактор сухожилий&lt;br /&gt;
*Vertex – Настройка типа вершин и привязка к кости.&amp;lt;br /&amp;gt;&lt;br /&gt;
Но меня интересует только Envelope и Vertex. Настрою привязку вершин к кости, учитывая, чтобы ни одна вершина не осталась непривязанной. Иду в Vertex.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Типы вершин:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Деформируемые вершины (мягкие)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Недеформируемые вершины (Твердые)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;blue&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Пустые вершины без весa и привязки к кости&amp;lt;br /&amp;gt;&lt;br /&gt;
Сам ящик твердый, и поэтому мы используем для него rigid вершины. Счала надо очистить вершины от других костей, нажимаем select, выделяем вершины, переключаемся на синие вершины, нажимаем Assign to link и тыкаем на желтую полоску кости link. Вес и привязка сняты, теперь переключаемся на зеленые и опять тыкаем на линк, привязка назначена.&lt;br /&gt;
&lt;br /&gt;
Теперь экспортируем модель нашего ящика через Export Skin, а части простым экспортом(Export Editor Objects). Я сохранил модель ящика под именем test_box, а частей как test_box_prt{номер части}.&lt;br /&gt;
&lt;br /&gt;
== Дальнейшая настройка и конвертирование в *.ogf ==&lt;br /&gt;
[[Изображение:SDK-Actor-Ed-preferences.gif|thumb|400px|Настройка Actor Editor-a]]&lt;br /&gt;
Запускаем Actor Editor, для удобства работы изменим некоторые настройки программы, а именно Preferences -&amp;gt; Objects -&amp;gt; Skeleton, поставим все галочки.&lt;br /&gt;
Теперь загрузим наш объект(File-&amp;gt; Load...). &lt;br /&gt;
&lt;br /&gt;
=== Настройка объекта ===&lt;br /&gt;
&lt;br /&gt;
Первым делом настроим наш объект в целом, как я уже говорил в секции про исследование, что части объекта задаются конфигом. Для первого своего разрушаемого объекта я взял конфиг от ящика(gamedata\config\models\objects\box_wood_01.ltx), скопировал его, переименовал в test_box.ltx, далее немного изменил его в соответствии со своей задумкой. &lt;br /&gt;
&lt;br /&gt;
Поменял только пути к частям:&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot; align=&amp;quot;left&amp;quot;&lt;br /&gt;
! Оригинал(box_wood_01.ltx) || Наш конфиг(test_box.ltx)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code ini&amp;gt;[destroyed]&lt;br /&gt;
physics\box\prt\box_wood_01_prt1&lt;br /&gt;
physics\box\prt\box_wood_01_prt2&lt;br /&gt;
physics\box\prt\box_wood_01_prt3&lt;br /&gt;
physics\box\prt\box_wood_01_prt4&lt;br /&gt;
physics\box\prt\box_wood_01_prt5&lt;br /&gt;
physics\box\prt\box_wood_01_prt6&lt;br /&gt;
physics\box\prt\box_wood_01_prt7&amp;lt;/code&amp;gt;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &amp;lt;code ini&amp;gt;[destroyed]&lt;br /&gt;
physics\test_box\prt\test_box_prt1&lt;br /&gt;
physics\test_box\prt\test_box_prt2&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Остальное пока оставил без изменений. &lt;br /&gt;
Загрузим получившийся конфиг в User Data объекта, т.е. в Object Item выбираем Object, в нижней части Item Properties, щёлкаем по полю User Data. Откроется диалог в котором нажимаем Load и ищем наш конфиг.&amp;lt;br /&amp;gt;&lt;br /&gt;
Всё с настройкой объекта закончили, перейдём к настройке геометрии.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Настройка геометрии ===&lt;br /&gt;
В Object Items развернём свиток Bones, в нашем случае будет одна кость с имненем link, выбираем её.&lt;br /&gt;
В свойствах пункт Bones -&amp;gt; Global -&amp;gt; Generate Shape нажимае All. Идём ниже по списку:&lt;br /&gt;
*Bones -&amp;gt; Bone -&amp;gt; Game Material указываем материал для нашей кости. Материал выбирается только из папки objects\, в соответствии с тем, какой материал хотим для нашего объекта, смотри [[Описание шейдеров XRayMtl]]. В нашем случае я выбрал objects/large_furnitura, что соответствует материалу деревянных изделий.&lt;br /&gt;
*Bones -&amp;gt; Bone -&amp;gt; Mass - масса нашего объекта, я поставил 2.&lt;br /&gt;
*Bones -&amp;gt; Bone -&amp;gt; Shape -&amp;gt; Type - форма геометрии, в нашем случае Box.&lt;br /&gt;
&lt;br /&gt;
Далее нужно настроить геометрию так, как хотите, чтобы ваш объект коллизил с другими, т.е. после того, как type установлен в Box,&lt;br /&gt;
должен появиться белый полупрозрачный шейп, это коллижен для пули и физики. Можно дополнительно редактировать шейп, например инструментом Scale.&lt;br /&gt;
&lt;br /&gt;
Всё наш ящик готов к экспорту в ogf.&amp;lt;br /&amp;gt;&lt;br /&gt;
File -&amp;gt; Export -&amp;gt; Export OGF... сохраняем файл как: gamedata\meshes\physics\test_box\test_box.ogf&lt;br /&gt;
&lt;br /&gt;
Теперь поочерёдно загружаем части нашего объекта, ничего не меняя экспортим их как: gamedata\meshes\physics\test_box\prt\test_box_prt{номер части в соотв. с конфигом}.ogf&lt;br /&gt;
&lt;br /&gt;
== Ставим наш ящик на карту ==&lt;br /&gt;
Наш ящик ставится, как энтити destroyable_object. Переводим редактор в режим Spawn Element и добавляем на карту энтити physics/destroyable_object.&lt;br /&gt;
&lt;br /&gt;
Далее в свойствах энтити устанавливаем нашу модель в свойстве Model/Visual. Всё можно компилировать уровень и идти ломать её, вот как это примерно выглядит в игре.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Изображение:Ss pavel 06-11-07 23-54-58 (ww).jpg|thumb|400px|Ломающийся объект в игре]]&lt;br /&gt;
|[[Изображение:Ss pavel 06-11-07 23-55-08 (ww).jpg|thumb|400px|Ломающийся объект в игре]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Благодарности ==&lt;br /&gt;
*Юрию Негробову - за помощь в настройке объекта в Actor Editor-е.&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)</id>
		<title>3ds Max. Создание ломающегося предмета (дневник исследования)</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)"/>
				<updated>2007-06-11T20:05:25Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: /* Настройка геометрии */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
|''Автор:'' '''Neo]['''&lt;br /&gt;
|}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Структура статьи ==&lt;br /&gt;
Раз это дневник, а не полноценная статья, то структура несколько странная получилась. Если интересен сам процесс исследования, то можно читать по порядку, иначе можно сразу перейти к секции ''Создание модели''.&lt;br /&gt;
== Введение ==&lt;br /&gt;
Ну что, я пока тоже не знаю как это сделать, но на то это и дневник, чтобы записывать сюда ход исследований. Разбираться буду на каком-нибудь примере. Возьму для разбора деревянный ящик.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Поехали ==&lt;br /&gt;
Первым делом решил посмотреть, что из себя представляет модель деревянного ящика, нашёл две модели:&lt;br /&gt;
*gamedata\meshes\objects\dynamics\box\box_wood_01.ogf&lt;br /&gt;
*gamedata\meshes\physics\box\box_wood_01.ogf&lt;br /&gt;
Просмотрев модели в этих директориях, остановился на gamedata\meshes\physics\box\box_wood_01.ogf.&lt;br /&gt;
Хотя в обоих случаях присутствует папка \prt\, из названия ясно, что это части объектов(part), т.е. их также необходимо отдельно моделить, жаль, что xray + ode не считают это в динамике. Хотя для стекла-то нет частей, через опыты понятно, что стекло ломается по полигонам.&lt;br /&gt;
Ну да ладно разговор не об этом.&lt;br /&gt;
&lt;br /&gt;
Есть целая модель, есть части, значит... Значит надо как-то указать эти части, правильно конфиг объекта. Иду искать. Нахожу:&lt;br /&gt;
*gamedata\config\models\objects\box_wood_01.ltx&lt;br /&gt;
&lt;br /&gt;
Меня заинтересовала секция:&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[destroyed]&lt;br /&gt;
physics\box\prt\box_wood_01_prt1&lt;br /&gt;
physics\box\prt\box_wood_01_prt2&lt;br /&gt;
physics\box\prt\box_wood_01_prt3&lt;br /&gt;
physics\box\prt\box_wood_01_prt4&lt;br /&gt;
physics\box\prt\box_wood_01_prt5&lt;br /&gt;
physics\box\prt\box_wood_01_prt6&lt;br /&gt;
physics\box\prt\box_wood_01_prt7&lt;br /&gt;
&lt;br /&gt;
[autoremove_parts]&lt;br /&gt;
time = 15&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Значит со структурой ломающихся объектов разобрались.&lt;br /&gt;
&lt;br /&gt;
== Создание модели ==&lt;br /&gt;
&lt;br /&gt;
Теперь перенести бы это на процесс создания, первым делом попробуем подобрать необходимые шейдеры. Пошёл смотреть [[Описание шейдеров XRayMtl]].&lt;br /&gt;
Добавлю, что:&lt;br /&gt;
* Engine - отображение текстуры в движке игры.&lt;br /&gt;
* Compiler - используется при компиляции уровня.&lt;br /&gt;
* Material - игровой материал (wallmark, sound и др.). &lt;br /&gt;
&lt;br /&gt;
Выбрал:&lt;br /&gt;
*Engine - models/model(Основной шейдер для динамических объектов)&lt;br /&gt;
*Compiler - def_vertex(Основной vertex shader, раз физический объект, вершинный шейдер значит по любому нужен)&lt;br /&gt;
*Material - objects/large_furnitura(Материал деревянных изделий)&lt;br /&gt;
&lt;br /&gt;
Попробую повторить тот же самый ящик, запускаю макс, быстренько моделю подобие ящика и частей на которые он будет распадаться. Для всего ящика ставлю настройки шейдеров, которые написаны выше, для частей же просто как для деревянный досок([[Пресеты XRay материалов]]).&lt;br /&gt;
{|&lt;br /&gt;
|[[Изображение:3D-max-test-box.jpg|thumb|400px|Тестовый ящик]]&lt;br /&gt;
|}&lt;br /&gt;
Экспортирую ящик и каждую из частей отдельно.&lt;br /&gt;
Далее после экспорта в ogf с занесением в custom data модели почти копии файла gamedata\config\models\objects\box_wood_01.ltx и спавна в редакторе как destroyable_objects, натыкаюсь на кучу ошибок в редакторе, толи что-то неправильно, толи...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update:''' При загрузке уровня получаю следующий лог:&lt;br /&gt;
  stack trace:&lt;br /&gt;
&lt;br /&gt;
  001B:0049B5FF XR_3DA.exe, CCF_Skeleton::CCF_Skeleton()&lt;br /&gt;
  001B:01CC39FF xrGame.dll&lt;br /&gt;
  001B:01C8AA2B xrGame.dll&lt;br /&gt;
  001B:01C82A34 xrGame.dll&lt;br /&gt;
[[Изображение:3D-max-bone-test-box.jpg|thumb|left|400px|Добавление костей]]&lt;br /&gt;
Хм, после раздумий делаю выводы, что надо делать также как и оружие или персов. Ну что ж будем делать.&lt;br /&gt;
&lt;br /&gt;
Открываю сцену в максе, добавляю 2 кости: Create-&amp;gt; System -&amp;gt; Bones. Первую назову link, вторая может называться хоть как, без разницы.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:3d-max-init.gif|frame|Инициализация скелета]]&lt;br /&gt;
Теперь применю к мешу ящика модификатор Physique. Проинициализурем скелет, нажатием на кнопку Attach to Node и выбрав кость link.&amp;lt;br /&amp;gt;&lt;br /&gt;
Теперь небольшое отступление по поводу этого модификатора. Раскрыв свиток модификатора, мы видим там следующее:&lt;br /&gt;
*Envelope – Настройка веса вершин и привязке к кости с помощью огибающих&lt;br /&gt;
*Link – Настройка параметров костей&lt;br /&gt;
*Bulge – Редактор выпуклостей&lt;br /&gt;
*Tendons – Редактор сухожилий&lt;br /&gt;
*Vertex – Настройка типа вершин и привязка к кости.&amp;lt;br /&amp;gt;&lt;br /&gt;
Но меня интересует только Envelope и Vertex. Настрою привязку вершин к кости, учитывая, чтобы ни одна вершина не осталась непривязанной. Иду в Vertex.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Типы вершин:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Деформируемые вершины (мягкие)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Недеформируемые вершины (Твердые)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;blue&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Пустые вершины без весa и привязки к кости&amp;lt;br /&amp;gt;&lt;br /&gt;
Сам ящик твердый, и поэтому мы используем для него rigid вершины. Счала надо очистить вершины от других костей, нажимаем select, выделяем вершины, переключаемся на синие вершины, нажимаем Assign to link и тыкаем на желтую полоску кости link. Вес и привязка сняты, теперь переключаемся на зеленые и опять тыкаем на линк, привязка назначена.&lt;br /&gt;
&lt;br /&gt;
Теперь экспортируем модель нашего ящика через Export Skin, а части простым экспортом(Export Editor Objects). Я сохранил модель ящика под именем test_box, а частей как test_box_prt{номер части}.&lt;br /&gt;
&lt;br /&gt;
== Дальнейшая настройка и конвертирование в *.ogf ==&lt;br /&gt;
[[Изображение:SDK-Actor-Ed-preferences.gif|thumb|400px|Настройка Actor Editor-a]]&lt;br /&gt;
Запускаем Actor Editor, для удобства работы изменим некоторые настройки программы, а именно Preferences -&amp;gt; Objects -&amp;gt; Skeleton, поставим все галочки.&lt;br /&gt;
Теперь загрузим наш объект(File-&amp;gt; Load...). &lt;br /&gt;
&lt;br /&gt;
=== Настройка объекта ===&lt;br /&gt;
&lt;br /&gt;
Первым делом настроим наш объект в целом, как я уже говорил в секции про исследование, что части объекта задаются конфигом. Для первого своего разрушаемого объекта я взял конфиг от ящика(gamedata\config\models\objects\box_wood_01.ltx), скопировал его, переименовал в test_box.ltx, далее немного изменил его в соответствии со своей задумкой. &lt;br /&gt;
&lt;br /&gt;
Поменял только пути к частям:&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot; align=&amp;quot;left&amp;quot;&lt;br /&gt;
! Оригинал(box_wood_01.ltx) || Наш конфиг(test_box.ltx)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code ini&amp;gt;[destroyed]&lt;br /&gt;
physics\box\prt\box_wood_01_prt1&lt;br /&gt;
physics\box\prt\box_wood_01_prt2&lt;br /&gt;
physics\box\prt\box_wood_01_prt3&lt;br /&gt;
physics\box\prt\box_wood_01_prt4&lt;br /&gt;
physics\box\prt\box_wood_01_prt5&lt;br /&gt;
physics\box\prt\box_wood_01_prt6&lt;br /&gt;
physics\box\prt\box_wood_01_prt7&amp;lt;/code&amp;gt;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &amp;lt;code ini&amp;gt;[destroyed]&lt;br /&gt;
physics\test_box\prt\test_box_prt1&lt;br /&gt;
physics\test_box\prt\test_box_prt2&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Остальное пока оставил без изменений. &lt;br /&gt;
Загрузим получившийся конфиг в User Data объекта, т.е. в Object Item выбираем Object, в нижней части Item Properties, щёлкаем по полю User Data. Откроется диалог в котором нажимаем Load и ищем наш конфиг.&amp;lt;br /&amp;gt;&lt;br /&gt;
Всё с настройкой объекта закончили, перейдём к настройке геометрии.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Настройка геометрии ===&lt;br /&gt;
В Object Items развернём свиток Bones, в нашем случае будет одна кость с имненем link, выбираем её.&lt;br /&gt;
В свойствах пункт Bones -&amp;gt; Global -&amp;gt; Generate Shape нажимае All. Идём ниже по списку:&lt;br /&gt;
*Bones -&amp;gt; Bone -&amp;gt; Game Material указываем материал для нашей кости. Материал выбирается только из папки objects\, в соответствии с тем, какой материал хотим для нашего объекта, смотри [[Описание шейдеров XRayMtl]]. В нашем случае я выбрал objects/large_furnitura, что соответствует материалу деревянных изделий.&lt;br /&gt;
*Bones -&amp;gt; Bone -&amp;gt; Mass - масса нашего объекта, я поставил 2.&lt;br /&gt;
*Bones -&amp;gt; Bone -&amp;gt; Shape -&amp;gt; Type - форма геометрии, в нашем случае Box.&lt;br /&gt;
&lt;br /&gt;
Далее нужно настроить геометрию так, как хотите, чтобы ваш объект коллизил с другими, т.е. после того, как type установлен в Box,&lt;br /&gt;
должен появиться белый полупрозрачный шейп, это коллижен для пули и физики. Можно дополнительно редактировать шейп, например инструментом Scale.&lt;br /&gt;
&lt;br /&gt;
Всё наш ящик готов к экспорту в ogf.&amp;lt;br /&amp;gt;&lt;br /&gt;
File -&amp;gt; Export -&amp;gt; Export OGF... сохраняем файл как: gamedata\meshes\physics\test_box\test_box.ogf&lt;br /&gt;
&lt;br /&gt;
Теперь поочерёдно загружаем части нашего объекта, ничего не меняя экспортим их как: gamedata\meshes\physics\test_box\prt\test_box_prt{номер части в соотв. с конфигом}.ogf&lt;br /&gt;
&lt;br /&gt;
== Ставим наш ящик на карту ==&lt;br /&gt;
Наш ящик ставится, как энтити destroyable_object. Переводим редактор в режим Spawn Element и добавляем на карту энтити physics/destroyable_object.&lt;br /&gt;
&lt;br /&gt;
Далее в свойствах энтити устанавливаем нашу модель в свойстве Model/Visual. Всё можно компилировать уровень и идти ломать её, вот как это примерно выглядит в игре.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Изображение:Ss pavel 06-11-07 23-54-58 (ww).jpg|thumb|400px|Ломающийся объект в игре]]&lt;br /&gt;
|[[Изображение:Ss pavel 06-11-07 23-55-08 (ww).jpg|thumb|400px|Ломающийся объект в игре]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)</id>
		<title>3ds Max. Создание ломающегося предмета (дневник исследования)</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)"/>
				<updated>2007-06-11T20:03:50Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: Готово&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
|''Автор:'' '''Neo]['''&lt;br /&gt;
|}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Структура статьи ==&lt;br /&gt;
Раз это дневник, а не полноценная статья, то структура несколько странная получилась. Если интересен сам процесс исследования, то можно читать по порядку, иначе можно сразу перейти к секции ''Создание модели''.&lt;br /&gt;
== Введение ==&lt;br /&gt;
Ну что, я пока тоже не знаю как это сделать, но на то это и дневник, чтобы записывать сюда ход исследований. Разбираться буду на каком-нибудь примере. Возьму для разбора деревянный ящик.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Поехали ==&lt;br /&gt;
Первым делом решил посмотреть, что из себя представляет модель деревянного ящика, нашёл две модели:&lt;br /&gt;
*gamedata\meshes\objects\dynamics\box\box_wood_01.ogf&lt;br /&gt;
*gamedata\meshes\physics\box\box_wood_01.ogf&lt;br /&gt;
Просмотрев модели в этих директориях, остановился на gamedata\meshes\physics\box\box_wood_01.ogf.&lt;br /&gt;
Хотя в обоих случаях присутствует папка \prt\, из названия ясно, что это части объектов(part), т.е. их также необходимо отдельно моделить, жаль, что xray + ode не считают это в динамике. Хотя для стекла-то нет частей, через опыты понятно, что стекло ломается по полигонам.&lt;br /&gt;
Ну да ладно разговор не об этом.&lt;br /&gt;
&lt;br /&gt;
Есть целая модель, есть части, значит... Значит надо как-то указать эти части, правильно конфиг объекта. Иду искать. Нахожу:&lt;br /&gt;
*gamedata\config\models\objects\box_wood_01.ltx&lt;br /&gt;
&lt;br /&gt;
Меня заинтересовала секция:&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[destroyed]&lt;br /&gt;
physics\box\prt\box_wood_01_prt1&lt;br /&gt;
physics\box\prt\box_wood_01_prt2&lt;br /&gt;
physics\box\prt\box_wood_01_prt3&lt;br /&gt;
physics\box\prt\box_wood_01_prt4&lt;br /&gt;
physics\box\prt\box_wood_01_prt5&lt;br /&gt;
physics\box\prt\box_wood_01_prt6&lt;br /&gt;
physics\box\prt\box_wood_01_prt7&lt;br /&gt;
&lt;br /&gt;
[autoremove_parts]&lt;br /&gt;
time = 15&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Значит со структурой ломающихся объектов разобрались.&lt;br /&gt;
&lt;br /&gt;
== Создание модели ==&lt;br /&gt;
&lt;br /&gt;
Теперь перенести бы это на процесс создания, первым делом попробуем подобрать необходимые шейдеры. Пошёл смотреть [[Описание шейдеров XRayMtl]].&lt;br /&gt;
Добавлю, что:&lt;br /&gt;
* Engine - отображение текстуры в движке игры.&lt;br /&gt;
* Compiler - используется при компиляции уровня.&lt;br /&gt;
* Material - игровой материал (wallmark, sound и др.). &lt;br /&gt;
&lt;br /&gt;
Выбрал:&lt;br /&gt;
*Engine - models/model(Основной шейдер для динамических объектов)&lt;br /&gt;
*Compiler - def_vertex(Основной vertex shader, раз физический объект, вершинный шейдер значит по любому нужен)&lt;br /&gt;
*Material - objects/large_furnitura(Материал деревянных изделий)&lt;br /&gt;
&lt;br /&gt;
Попробую повторить тот же самый ящик, запускаю макс, быстренько моделю подобие ящика и частей на которые он будет распадаться. Для всего ящика ставлю настройки шейдеров, которые написаны выше, для частей же просто как для деревянный досок([[Пресеты XRay материалов]]).&lt;br /&gt;
{|&lt;br /&gt;
|[[Изображение:3D-max-test-box.jpg|thumb|400px|Тестовый ящик]]&lt;br /&gt;
|}&lt;br /&gt;
Экспортирую ящик и каждую из частей отдельно.&lt;br /&gt;
Далее после экспорта в ogf с занесением в custom data модели почти копии файла gamedata\config\models\objects\box_wood_01.ltx и спавна в редакторе как destroyable_objects, натыкаюсь на кучу ошибок в редакторе, толи что-то неправильно, толи...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update:''' При загрузке уровня получаю следующий лог:&lt;br /&gt;
  stack trace:&lt;br /&gt;
&lt;br /&gt;
  001B:0049B5FF XR_3DA.exe, CCF_Skeleton::CCF_Skeleton()&lt;br /&gt;
  001B:01CC39FF xrGame.dll&lt;br /&gt;
  001B:01C8AA2B xrGame.dll&lt;br /&gt;
  001B:01C82A34 xrGame.dll&lt;br /&gt;
[[Изображение:3D-max-bone-test-box.jpg|thumb|left|400px|Добавление костей]]&lt;br /&gt;
Хм, после раздумий делаю выводы, что надо делать также как и оружие или персов. Ну что ж будем делать.&lt;br /&gt;
&lt;br /&gt;
Открываю сцену в максе, добавляю 2 кости: Create-&amp;gt; System -&amp;gt; Bones. Первую назову link, вторая может называться хоть как, без разницы.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:3d-max-init.gif|frame|Инициализация скелета]]&lt;br /&gt;
Теперь применю к мешу ящика модификатор Physique. Проинициализурем скелет, нажатием на кнопку Attach to Node и выбрав кость link.&amp;lt;br /&amp;gt;&lt;br /&gt;
Теперь небольшое отступление по поводу этого модификатора. Раскрыв свиток модификатора, мы видим там следующее:&lt;br /&gt;
*Envelope – Настройка веса вершин и привязке к кости с помощью огибающих&lt;br /&gt;
*Link – Настройка параметров костей&lt;br /&gt;
*Bulge – Редактор выпуклостей&lt;br /&gt;
*Tendons – Редактор сухожилий&lt;br /&gt;
*Vertex – Настройка типа вершин и привязка к кости.&amp;lt;br /&amp;gt;&lt;br /&gt;
Но меня интересует только Envelope и Vertex. Настрою привязку вершин к кости, учитывая, чтобы ни одна вершина не осталась непривязанной. Иду в Vertex.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Типы вершин:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Деформируемые вершины (мягкие)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Недеформируемые вершины (Твердые)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;blue&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Пустые вершины без весa и привязки к кости&amp;lt;br /&amp;gt;&lt;br /&gt;
Сам ящик твердый, и поэтому мы используем для него rigid вершины. Счала надо очистить вершины от других костей, нажимаем select, выделяем вершины, переключаемся на синие вершины, нажимаем Assign to link и тыкаем на желтую полоску кости link. Вес и привязка сняты, теперь переключаемся на зеленые и опять тыкаем на линк, привязка назначена.&lt;br /&gt;
&lt;br /&gt;
Теперь экспортируем модель нашего ящика через Export Skin, а части простым экспортом(Export Editor Objects). Я сохранил модель ящика под именем test_box, а частей как test_box_prt{номер части}.&lt;br /&gt;
&lt;br /&gt;
== Дальнейшая настройка и конвертирование в *.ogf ==&lt;br /&gt;
[[Изображение:SDK-Actor-Ed-preferences.gif|thumb|400px|Настройка Actor Editor-a]]&lt;br /&gt;
Запускаем Actor Editor, для удобства работы изменим некоторые настройки программы, а именно Preferences -&amp;gt; Objects -&amp;gt; Skeleton, поставим все галочки.&lt;br /&gt;
Теперь загрузим наш объект(File-&amp;gt; Load...). &lt;br /&gt;
&lt;br /&gt;
=== Настройка объекта ===&lt;br /&gt;
&lt;br /&gt;
Первым делом настроим наш объект в целом, как я уже говорил в секции про исследование, что части объекта задаются конфигом. Для первого своего разрушаемого объекта я взял конфиг от ящика(gamedata\config\models\objects\box_wood_01.ltx), скопировал его, переименовал в test_box.ltx, далее немного изменил его в соответствии со своей задумкой. &lt;br /&gt;
&lt;br /&gt;
Поменял только пути к частям:&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot; align=&amp;quot;left&amp;quot;&lt;br /&gt;
! Оригинал(box_wood_01.ltx) || Наш конфиг(test_box.ltx)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code ini&amp;gt;[destroyed]&lt;br /&gt;
physics\box\prt\box_wood_01_prt1&lt;br /&gt;
physics\box\prt\box_wood_01_prt2&lt;br /&gt;
physics\box\prt\box_wood_01_prt3&lt;br /&gt;
physics\box\prt\box_wood_01_prt4&lt;br /&gt;
physics\box\prt\box_wood_01_prt5&lt;br /&gt;
physics\box\prt\box_wood_01_prt6&lt;br /&gt;
physics\box\prt\box_wood_01_prt7&amp;lt;/code&amp;gt;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &amp;lt;code ini&amp;gt;[destroyed]&lt;br /&gt;
physics\test_box\prt\test_box_prt1&lt;br /&gt;
physics\test_box\prt\test_box_prt2&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Остальное пока оставил без изменений. &lt;br /&gt;
Загрузим получившийся конфиг в User Data объекта, т.е. в Object Item выбираем Object, в нижней части Item Properties, щёлкаем по полю User Data. Откроется диалог в котором нажимаем Load и ищем наш конфиг.&amp;lt;br /&amp;gt;&lt;br /&gt;
Всё с настройкой объекта закончили, перейдём к настройке геометрии.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Настройка геометрии ===&lt;br /&gt;
В Object Items развернём свиток Bones, в нашем случае будет одна кость с имненем link, выбираем её.&lt;br /&gt;
В свойствах пункт Bones -&amp;gt; Global -&amp;gt; Generate Shape нажимае All. Идём ниже по списку:&lt;br /&gt;
*Bones -&amp;gt; Bone -&amp;gt; Game Material указываем материал для нашей кости. Материал выбирается только из папки objects\, в соответствии с тем, какой материал хотим для нашего объекта, смотри [[Описание шейдеров XRayMtl]]. В нашем случае я выбрал objects/large_furnitura, что соответствует материалу деревянных изделий.&lt;br /&gt;
*Bones -&amp;gt; Bone -&amp;gt; Mass - масса нашего объекта, я поставил 2.&lt;br /&gt;
*Bones -&amp;gt; Bone -&amp;gt; Shape -&amp;gt; Type - форма геометрии, в нашем случае Box.&lt;br /&gt;
&lt;br /&gt;
Далее нужно настроить геометрию так, как хотите, чтобы ваш объект коллизил с другими, т.е. после того, как type установлен в Box,&lt;br /&gt;
должен появиться белый полупрозрачный шейп, это коллижен для пули и физики. Можно дополнительно редактировать шейп, например инструментом Scale.&lt;br /&gt;
&lt;br /&gt;
Всё наш ящик готов к экспорту в ogf.&amp;lt;br /&amp;gt;&lt;br /&gt;
File -&amp;gt; Export -&amp;gt; Export OGF... сохраняем файл как: gamedata\meshes\physics\test_box\test_box.ogf&lt;br /&gt;
Теперь поочерёдно загружаем части нашего объекта, ничего не меняя экспортим их как: gamedata\meshes\physics\test_box\prt\test_box_prt{номер части в соотв. с конфигом}.ogf&lt;br /&gt;
&lt;br /&gt;
== Ставим наш ящик на карту ==&lt;br /&gt;
Наш ящик ставится, как энтити destroyable_object. Переводим редактор в режим Spawn Element и добавляем на карту энтити physics/destroyable_object.&lt;br /&gt;
&lt;br /&gt;
Далее в свойствах энтити устанавливаем нашу модель в свойстве Model/Visual. Всё можно компилировать уровень и идти ломать её, вот как это примерно выглядит в игре.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Изображение:Ss pavel 06-11-07 23-54-58 (ww).jpg|thumb|400px|Ломающийся объект в игре]]&lt;br /&gt;
|[[Изображение:Ss pavel 06-11-07 23-55-08 (ww).jpg|thumb|400px|Ломающийся объект в игре]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)</id>
		<title>3ds Max. Создание ломающегося предмета (дневник исследования)</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)"/>
				<updated>2007-06-11T20:03:35Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: Готово&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
|''Автор:'' '''Neo]['''&lt;br /&gt;
|}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Структура статьи ==&lt;br /&gt;
Раз это дневник, а не полноценная статья, то структура несколько странная получилась. Если интересен сам процесс исследования, то можно читать по порядку, иначе можно сразу перейти к секции ''Создание модели''.&lt;br /&gt;
== Введение ==&lt;br /&gt;
Ну что, я пока тоже не знаю как это сделать, но на то это и дневник, чтобы записывать сюда ход исследований. Разбираться буду на каком-нибудь примере. Возьму для разбора деревянный ящик.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Поехали ==&lt;br /&gt;
Первым делом решил посмотреть, что из себя представляет модель деревянного ящика, нашёл две модели:&lt;br /&gt;
*gamedata\meshes\objects\dynamics\box\box_wood_01.ogf&lt;br /&gt;
*gamedata\meshes\physics\box\box_wood_01.ogf&lt;br /&gt;
Просмотрев модели в этих директориях, остановился на gamedata\meshes\physics\box\box_wood_01.ogf.&lt;br /&gt;
Хотя в обоих случаях присутствует папка \prt\, из названия ясно, что это части объектов(part), т.е. их также необходимо отдельно моделить, жаль, что xray + ode не считают это в динамике. Хотя для стекла-то нет частей, через опыты понятно, что стекло ломается по полигонам.&lt;br /&gt;
Ну да ладно разговор не об этом.&lt;br /&gt;
&lt;br /&gt;
Есть целая модель, есть части, значит... Значит надо как-то указать эти части, правильно конфиг объекта. Иду искать. Нахожу:&lt;br /&gt;
*gamedata\config\models\objects\box_wood_01.ltx&lt;br /&gt;
&lt;br /&gt;
Меня заинтересовала секция:&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[destroyed]&lt;br /&gt;
physics\box\prt\box_wood_01_prt1&lt;br /&gt;
physics\box\prt\box_wood_01_prt2&lt;br /&gt;
physics\box\prt\box_wood_01_prt3&lt;br /&gt;
physics\box\prt\box_wood_01_prt4&lt;br /&gt;
physics\box\prt\box_wood_01_prt5&lt;br /&gt;
physics\box\prt\box_wood_01_prt6&lt;br /&gt;
physics\box\prt\box_wood_01_prt7&lt;br /&gt;
&lt;br /&gt;
[autoremove_parts]&lt;br /&gt;
time = 15&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Значит со структурой ломающихся объектов разобрались.&lt;br /&gt;
&lt;br /&gt;
== Создание модели ==&lt;br /&gt;
&lt;br /&gt;
Теперь перенести бы это на процесс создания, первым делом попробуем подобрать необходимые шейдеры. Пошёл смотреть [[Описание шейдеров XRayMtl]].&lt;br /&gt;
Добавлю, что:&lt;br /&gt;
* Engine - отображение текстуры в движке игры.&lt;br /&gt;
* Compiler - используется при компиляции уровня.&lt;br /&gt;
* Material - игровой материал (wallmark, sound и др.). &lt;br /&gt;
&lt;br /&gt;
Выбрал:&lt;br /&gt;
*Engine - models/model(Основной шейдер для динамических объектов)&lt;br /&gt;
*Compiler - def_vertex(Основной vertex shader, раз физический объект, вершинный шейдер значит по любому нужен)&lt;br /&gt;
*Material - objects/large_furnitura(Материал деревянных изделий)&lt;br /&gt;
&lt;br /&gt;
Попробую повторить тот же самый ящик, запускаю макс, быстренько моделю подобие ящика и частей на которые он будет распадаться. Для всего ящика ставлю настройки шейдеров, которые написаны выше, для частей же просто как для деревянный досок([[Пресеты XRay материалов]]).&lt;br /&gt;
{|&lt;br /&gt;
|[[Изображение:3D-max-test-box.jpg|thumb|400px|Тестовый ящик]]&lt;br /&gt;
|}&lt;br /&gt;
Экспортирую ящик и каждую из частей отдельно.&lt;br /&gt;
Далее после экспорта в ogf с занесением в custom data модели почти копии файла gamedata\config\models\objects\box_wood_01.ltx и спавна в редакторе как destroyable_objects, натыкаюсь на кучу ошибок в редакторе, толи что-то неправильно, толи...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update:''' При загрузке уровня получаю следующий лог:&lt;br /&gt;
  stack trace:&lt;br /&gt;
&lt;br /&gt;
  001B:0049B5FF XR_3DA.exe, CCF_Skeleton::CCF_Skeleton()&lt;br /&gt;
  001B:01CC39FF xrGame.dll&lt;br /&gt;
  001B:01C8AA2B xrGame.dll&lt;br /&gt;
  001B:01C82A34 xrGame.dll&lt;br /&gt;
[[Изображение:3D-max-bone-test-box.jpg|thumb|left|400px|Добавление костей]]&lt;br /&gt;
Хм, после раздумий делаю выводы, что надо делать также как и оружие или персов. Ну что ж будем делать.&lt;br /&gt;
&lt;br /&gt;
Открываю сцену в максе, добавляю 2 кости: Create-&amp;gt; System -&amp;gt; Bones. Первую назову link, вторая может называться хоть как, без разницы.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:3d-max-init.gif|frame|Инициализация скелета]]&lt;br /&gt;
Теперь применю к мешу ящика модификатор Physique. Проинициализурем скелет, нажатием на кнопку Attach to Node и выбрав кость link.&amp;lt;br /&amp;gt;&lt;br /&gt;
Теперь небольшое отступление по поводу этого модификатора. Раскрыв свиток модификатора, мы видим там следующее:&lt;br /&gt;
*Envelope – Настройка веса вершин и привязке к кости с помощью огибающих&lt;br /&gt;
*Link – Настройка параметров костей&lt;br /&gt;
*Bulge – Редактор выпуклостей&lt;br /&gt;
*Tendons – Редактор сухожилий&lt;br /&gt;
*Vertex – Настройка типа вершин и привязка к кости.&amp;lt;br /&amp;gt;&lt;br /&gt;
Но меня интересует только Envelope и Vertex. Настрою привязку вершин к кости, учитывая, чтобы ни одна вершина не осталась непривязанной. Иду в Vertex.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Типы вершин:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Деформируемые вершины (мягкие)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Недеформируемые вершины (Твердые)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;blue&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Пустые вершины без весa и привязки к кости&amp;lt;br /&amp;gt;&lt;br /&gt;
Сам ящик твердый, и поэтому мы используем для него rigid вершины. Счала надо очистить вершины от других костей, нажимаем select, выделяем вершины, переключаемся на синие вершины, нажимаем Assign to link и тыкаем на желтую полоску кости link. Вес и привязка сняты, теперь переключаемся на зеленые и опять тыкаем на линк, привязка назначена.&lt;br /&gt;
&lt;br /&gt;
Теперь экспортируем модель нашего ящика через Export Skin, а части простым экспортом(Export Editor Objects). Я сохранил модель ящика под именем test_box, а частей как test_box_prt{номер части}.&lt;br /&gt;
&lt;br /&gt;
== Дальнейшая настройка и конвертирование в *.ogf ==&lt;br /&gt;
[[Изображение:SDK-Actor-Ed-preferences.gif|thumb|400px|Настройка Actor Editor-a]]&lt;br /&gt;
Запускаем Actor Editor, для удобства работы изменим некоторые настройки программы, а именно Preferences -&amp;gt; Objects -&amp;gt; Skeleton, поставим все галочки.&lt;br /&gt;
Теперь загрузим наш объект(File-&amp;gt; Load...). &lt;br /&gt;
&lt;br /&gt;
=== Настройка объекта ===&lt;br /&gt;
&lt;br /&gt;
Первым делом настроим наш объект в целом, как я уже говорил в секции про исследование, что части объекта задаются конфигом. Для первого своего разрушаемого объекта я взял конфиг от ящика(gamedata\config\models\objects\box_wood_01.ltx), скопировал его, переименовал в test_box.ltx, далее немного изменил его в соответствии со своей задумкой. &lt;br /&gt;
&lt;br /&gt;
Поменял только пути к частям:&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot; align=&amp;quot;left&amp;quot;&lt;br /&gt;
! Оригинал(box_wood_01.ltx) || Наш конфиг(test_box.ltx)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code ini&amp;gt;[destroyed]&lt;br /&gt;
physics\box\prt\box_wood_01_prt1&lt;br /&gt;
physics\box\prt\box_wood_01_prt2&lt;br /&gt;
physics\box\prt\box_wood_01_prt3&lt;br /&gt;
physics\box\prt\box_wood_01_prt4&lt;br /&gt;
physics\box\prt\box_wood_01_prt5&lt;br /&gt;
physics\box\prt\box_wood_01_prt6&lt;br /&gt;
physics\box\prt\box_wood_01_prt7&amp;lt;/code&amp;gt;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &amp;lt;code ini&amp;gt;[destroyed]&lt;br /&gt;
physics\test_box\prt\test_box_prt1&lt;br /&gt;
physics\test_box\prt\test_box_prt2&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Остальное пока оставил без изменений. &lt;br /&gt;
Загрузим получившийся конфиг в User Data объекта, т.е. в Object Item выбираем Object, в нижней части Item Properties, щёлкаем по полю User Data. Откроется диалог в котором нажимаем Load и ищем наш конфиг.&amp;lt;br /&amp;gt;&lt;br /&gt;
Всё с настройкой объекта закончили, перейдём к настройке геометрии.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Настройка геометрии ===&lt;br /&gt;
В Object Items развернём свиток Bones, в нашем случае будет одна кость с имненем link, выбираем её.&lt;br /&gt;
В свойствах пункт Bones -&amp;gt; Global -&amp;gt; Generate Shape нажимае All. Идём ниже по списку:&lt;br /&gt;
*Bones -&amp;gt; Bone -&amp;gt; Game Material указываем материал для нашей кости. Материал выбирается только из папки objects\, в соответствии с тем, какой материал хотим для нашего объекта, смотри [[Описание шейдеров XRayMtl]]. В нашем случае я выбрал objects/large_furnitura, что соответствует материалу деревянных изделий.&lt;br /&gt;
*Bones -&amp;gt; Bone -&amp;gt; Mass - масса нашего объекта, я поставил 2.&lt;br /&gt;
*Bones -&amp;gt; Bone -&amp;gt; Shape -&amp;gt; Type - форма геометрии, в нашем случае Box.&lt;br /&gt;
&lt;br /&gt;
Далее нужно настроить геометрию так, как хотите, чтобы ваш объект коллизил с другими, т.е. после того, как type установлен в Box,&lt;br /&gt;
должен появиться белый полупрозрачный шейп, это коллижен для пули и физики. Можно дополнительно редактировать шейп, например инструментом Scale.&lt;br /&gt;
&lt;br /&gt;
Всё наш ящик готов к экспорту в ogf.&amp;lt;br /&amp;gt;&lt;br /&gt;
File -&amp;gt; Export -&amp;gt; Export OGF... сохраняем файл как: gamedata\meshes\physics\test_box\test_box.ogf&lt;br /&gt;
Теперь поочерёдно загружаем части нашего объекта, ничего не меняя экспортим их как: gamedata\meshes\physics\test_box\prt\test_box_prt{номер части в соотв. с конфигом}.ogf&lt;br /&gt;
&lt;br /&gt;
== Ставим наш ящик на карту ==&lt;br /&gt;
Наш ящик ставится, как энтити destroyable_object. Переводим редактор в режим Spawn Element и добавляем на карту энтити physics/destroyable_object.&lt;br /&gt;
&lt;br /&gt;
Далее в свойствах энтити устанавливаем нашу модель в свойстве Model/Visual. Всё можно компилировать уровень и идти ломать всё, вот как это примерно выглядит в игре.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Изображение:Ss pavel 06-11-07 23-54-58 (ww).jpg|thumb|400px|Ломающийся объект в игре]]&lt;br /&gt;
|[[Изображение:Ss pavel 06-11-07 23-55-08 (ww).jpg|thumb|400px|Ломающийся объект в игре]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_pavel_06-11-07_23-55-08_(ww).jpg</id>
		<title>Файл:Ss pavel 06-11-07 23-55-08 (ww).jpg</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_pavel_06-11-07_23-55-08_(ww).jpg"/>
				<updated>2007-06-11T20:03:09Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: Ломающийся объект в игре&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ломающийся объект в игре&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_pavel_06-11-07_23-54-58_(ww).jpg</id>
		<title>Файл:Ss pavel 06-11-07 23-54-58 (ww).jpg</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Ss_pavel_06-11-07_23-54-58_(ww).jpg"/>
				<updated>2007-06-11T20:02:07Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: Ломающийся объект в игре&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ломающийся объект в игре&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)</id>
		<title>3ds Max. Создание ломающегося предмета (дневник исследования)</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)"/>
				<updated>2007-06-11T19:52:01Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: Готово создание объекта&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
|''Автор:'' '''Neo]['''&lt;br /&gt;
|}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Структура статьи ==&lt;br /&gt;
Раз это дневник, а не полноценная статья, то структура несколько странная получилась. Если интересен сам процесс исследования, то можно читать по порядку, иначе можно сразу перейти к секции ''Создание модели''.&lt;br /&gt;
== Введение ==&lt;br /&gt;
Ну что, я пока тоже не знаю как это сделать, но на то это и дневник, чтобы записывать сюда ход исследований. Разбираться буду на каком-нибудь примере. Возьму для разбора деревянный ящик.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Поехали ==&lt;br /&gt;
Первым делом решил посмотреть, что из себя представляет модель деревянного ящика, нашёл две модели:&lt;br /&gt;
*gamedata\meshes\objects\dynamics\box\box_wood_01.ogf&lt;br /&gt;
*gamedata\meshes\physics\box\box_wood_01.ogf&lt;br /&gt;
Просмотрев модели в этих директориях, остановился на gamedata\meshes\physics\box\box_wood_01.ogf.&lt;br /&gt;
Хотя в обоих случаях присутствует папка \prt\, из названия ясно, что это части объектов(part), т.е. их также необходимо отдельно моделить, жаль, что xray + ode не считают это в динамике. Хотя для стекла-то нет частей, через опыты понятно, что стекло ломается по полигонам.&lt;br /&gt;
Ну да ладно разговор не об этом.&lt;br /&gt;
&lt;br /&gt;
Есть целая модель, есть части, значит... Значит надо как-то указать эти части, правильно конфиг объекта. Иду искать. Нахожу:&lt;br /&gt;
*gamedata\config\models\objects\box_wood_01.ltx&lt;br /&gt;
&lt;br /&gt;
Меня заинтересовала секция:&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[destroyed]&lt;br /&gt;
physics\box\prt\box_wood_01_prt1&lt;br /&gt;
physics\box\prt\box_wood_01_prt2&lt;br /&gt;
physics\box\prt\box_wood_01_prt3&lt;br /&gt;
physics\box\prt\box_wood_01_prt4&lt;br /&gt;
physics\box\prt\box_wood_01_prt5&lt;br /&gt;
physics\box\prt\box_wood_01_prt6&lt;br /&gt;
physics\box\prt\box_wood_01_prt7&lt;br /&gt;
&lt;br /&gt;
[autoremove_parts]&lt;br /&gt;
time = 15&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Значит со структурой ломающихся объектов разобрались.&lt;br /&gt;
&lt;br /&gt;
== Создание модели ==&lt;br /&gt;
&lt;br /&gt;
Теперь перенести бы это на процесс создания, первым делом попробуем подобрать необходимые шейдеры. Пошёл смотреть [[Описание шейдеров XRayMtl]].&lt;br /&gt;
Добавлю, что:&lt;br /&gt;
* Engine - отображение текстуры в движке игры.&lt;br /&gt;
* Compiler - используется при компиляции уровня.&lt;br /&gt;
* Material - игровой материал (wallmark, sound и др.). &lt;br /&gt;
&lt;br /&gt;
Выбрал:&lt;br /&gt;
*Engine - models/model(Основной шейдер для динамических объектов)&lt;br /&gt;
*Compiler - def_vertex(Основной vertex shader, раз физический объект, вершинный шейдер значит по любому нужен)&lt;br /&gt;
*Material - objects/large_furnitura(Материал деревянных изделий)&lt;br /&gt;
&lt;br /&gt;
Попробую повторить тот же самый ящик, запускаю макс, быстренько моделю подобие ящика и частей на которые он будет распадаться. Для всего ящика ставлю настройки шейдеров, которые написаны выше, для частей же просто как для деревянный досок([[Пресеты XRay материалов]]).&lt;br /&gt;
{|&lt;br /&gt;
|[[Изображение:3D-max-test-box.jpg|thumb|400px|Тестовый ящик]]&lt;br /&gt;
|}&lt;br /&gt;
Экспортирую ящик и каждую из частей отдельно.&lt;br /&gt;
Далее после экспорта в ogf с занесением в custom data модели почти копии файла gamedata\config\models\objects\box_wood_01.ltx и спавна в редакторе как destroyable_objects, натыкаюсь на кучу ошибок в редакторе, толи что-то неправильно, толи...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update:''' При загрузке уровня получаю следующий лог:&lt;br /&gt;
  stack trace:&lt;br /&gt;
&lt;br /&gt;
  001B:0049B5FF XR_3DA.exe, CCF_Skeleton::CCF_Skeleton()&lt;br /&gt;
  001B:01CC39FF xrGame.dll&lt;br /&gt;
  001B:01C8AA2B xrGame.dll&lt;br /&gt;
  001B:01C82A34 xrGame.dll&lt;br /&gt;
[[Изображение:3D-max-bone-test-box.jpg|thumb|left|400px|Добавление костей]]&lt;br /&gt;
Хм, после раздумий делаю выводы, что надо делать также как и оружие или персов. Ну что ж будем делать.&lt;br /&gt;
&lt;br /&gt;
Открываю сцену в максе, добавляю 2 кости: Create-&amp;gt; System -&amp;gt; Bones. Первую назову link, вторая может называться хоть как, без разницы.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:3d-max-init.gif|frame|Инициализация скелета]]&lt;br /&gt;
Теперь применю к мешу ящика модификатор Physique. Проинициализурем скелет, нажатием на кнопку Attach to Node и выбрав кость link.&amp;lt;br /&amp;gt;&lt;br /&gt;
Теперь небольшое отступление по поводу этого модификатора. Раскрыв свиток модификатора, мы видим там следующее:&lt;br /&gt;
*Envelope – Настройка веса вершин и привязке к кости с помощью огибающих&lt;br /&gt;
*Link – Настройка параметров костей&lt;br /&gt;
*Bulge – Редактор выпуклостей&lt;br /&gt;
*Tendons – Редактор сухожилий&lt;br /&gt;
*Vertex – Настройка типа вершин и привязка к кости.&amp;lt;br /&amp;gt;&lt;br /&gt;
Но меня интересует только Envelope и Vertex. Настрою привязку вершин к кости, учитывая, чтобы ни одна вершина не осталась непривязанной. Иду в Vertex.&amp;lt;br /&amp;gt;&lt;br /&gt;
Типы вершин:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Деформируемые вершины (мягкие)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Недеформируемые вершины (Твердые)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;blue&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Пустые вершины без весa и привязки к кости&amp;lt;br /&amp;gt;&lt;br /&gt;
Сам ящик твердый, и поэтому мы используем для него rigid вершины. Счала надо очистить вершины от других костей, нажимаем select, выделяем вершины, переключаемся на синие вершины, нажимаем Assign to link и тыкаем на желтую полоску кости link. Вес и привязка сняты, теперь переключаемся на зеленые и опять тыкаем на линк, привязка назначена.&lt;br /&gt;
&lt;br /&gt;
Теперь экспортируем модель нашего ящика через Export Skin, а части простым экспортом(Export Editor Objects). Я сохранил модель ящика под именем test_box, а частей как test_box_prt{номер части}.&lt;br /&gt;
&lt;br /&gt;
== Дальнейшая настройка и конвертирование в *.ogf ==&lt;br /&gt;
[[Изображение:SDK-Actor-Ed-preferences.gif|thumb|400px|Настройка Actor Editor-a]]&lt;br /&gt;
Запускаем Actor Editor, для удобства работы изменим некоторые настройки программы, а именно Preferences -&amp;gt; Objects -&amp;gt; Skeleton, поставим все галочки.&lt;br /&gt;
Теперь загрузим наш объект(File-&amp;gt; Load...). &lt;br /&gt;
&lt;br /&gt;
=== Настройка объекта ===&lt;br /&gt;
&lt;br /&gt;
Первым делом настроим наш объект в целом, как я уже говорил в секции про исследование, что части объекта задаются конфигом. Для первого своего разрушаемого объекта я взял конфиг от ящика(gamedata\config\models\objects\box_wood_01.ltx), скопировал его, переименовал в test_box.ltx, далее немного изменил его в соответствии со своей задумкой. &lt;br /&gt;
&lt;br /&gt;
Поменял только пути к частям:&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot; align=&amp;quot;left&amp;quot;&lt;br /&gt;
! Оригинал(box_wood_01.ltx) || Наш конфиг(test_box.ltx)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code ini&amp;gt;[destroyed]&lt;br /&gt;
physics\box\prt\box_wood_01_prt1&lt;br /&gt;
physics\box\prt\box_wood_01_prt2&lt;br /&gt;
physics\box\prt\box_wood_01_prt3&lt;br /&gt;
physics\box\prt\box_wood_01_prt4&lt;br /&gt;
physics\box\prt\box_wood_01_prt5&lt;br /&gt;
physics\box\prt\box_wood_01_prt6&lt;br /&gt;
physics\box\prt\box_wood_01_prt7&amp;lt;/code&amp;gt;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &amp;lt;code ini&amp;gt;[destroyed]&lt;br /&gt;
physics\test_box\prt\test_box_prt1&lt;br /&gt;
physics\test_box\prt\test_box_prt2&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Остальное пока оставил без изменений. &lt;br /&gt;
Загрузим получившийся конфиг в User Data объекта, т.е. в Object Item выбираем Object, в нижней части Item Properties, щёлкаем по полю User Data. Откроется диалог в котором нажимаем Load и ищем наш конфиг.&amp;lt;br /&amp;gt;&lt;br /&gt;
Всё с настройкой объекта закончили, перейдём к настройке геометрии.&lt;br /&gt;
&lt;br /&gt;
=== Настройка геометрии ===&lt;br /&gt;
В Object Items развернём свиток Bones, в нашем случае будет одна кость с имненем link, выбираем её.&lt;br /&gt;
В свойствах пункт Bones -&amp;gt; Global -&amp;gt; Generate Shape нажимае All. Идём ниже по списку:&lt;br /&gt;
*Bones -&amp;gt; Bone -&amp;gt; Game Material указываем материал для нашей кости. Материал выбирается только из папки objects\, в соответствии с тем, какой материал хотим для нашего объекта, смотри [[Описание шейдеров XRayMtl]]. В нашем случае я выбрал objects/large_furnitura, что соответствует материалу деревянных изделий.&lt;br /&gt;
*Bones -&amp;gt; Bone -&amp;gt; Mass - масса нашего объекта, я поставил 2.&lt;br /&gt;
*Bones -&amp;gt; Bone -&amp;gt; Shape -&amp;gt; Type - форма геометрии, в нашем случае Box.&lt;br /&gt;
&lt;br /&gt;
Далее нужно настроить геометрию так, как хотите, чтобы ваш объект коллизил с другими, т.е. после того, как type установлен в Box,&lt;br /&gt;
должен появиться белый полупрозрачный шейп, это коллижен для пули и физики. Можно дополнительно редактировать шейп, например инструментом Scale.&lt;br /&gt;
&lt;br /&gt;
Всё наш ящик готов к экспорту в ogf.&amp;lt;br /&amp;gt;&lt;br /&gt;
File -&amp;gt; Export -&amp;gt; Export OGF... сохраняем файл как: gamedata\meshes\physics\test_box\test_box.ogf&lt;br /&gt;
Теперь поочерёдно загружаем части нашего объекта, ничего не меняя экспортим их как: gamedata\meshes\physics\test_box\prt\test_box_prt{номер части в соотв. с конфигом}.ogf&lt;br /&gt;
&lt;br /&gt;
== Ставим наш ящик на карту ==&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:SDK-Actor-Ed-preferences.gif</id>
		<title>Файл:SDK-Actor-Ed-preferences.gif</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:SDK-Actor-Ed-preferences.gif"/>
				<updated>2007-06-11T18:04:45Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: Настройка Actor Editor-a&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Настройка Actor Editor-a&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)</id>
		<title>3ds Max. Создание ломающегося предмета (дневник исследования)</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)"/>
				<updated>2007-06-11T13:20:30Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
|''Автор:'' '''Neo]['''&lt;br /&gt;
|}&lt;br /&gt;
__TOC__&lt;br /&gt;
== Введение ==&lt;br /&gt;
Ну что, я пока тоже не знаю как это сделать, но на то это и дневник, чтобы записывать сюда ход исследований. Разбираться буду на каком-нибудь примере. Возьму для разбора деревянный ящик.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Поехали ==&lt;br /&gt;
Первым делом решил посмотреть, что из себя представляет модель деревянного ящика, нашёл две модели:&lt;br /&gt;
*gamedata\meshes\objects\dynamics\box\box_wood_01.ogf&lt;br /&gt;
*gamedata\meshes\physics\box\box_wood_01.ogf&lt;br /&gt;
Просмотрев модели в этих директориях, остановился на gamedata\meshes\physics\box\box_wood_01.ogf.&lt;br /&gt;
Хотя в обоих случаях присутствует папка \prt\, из названия ясно, что это части объектов(part), т.е. их также необходимо отдельно моделить, жаль, что xray + ode не считают это в динамике. Хотя для стекла-то нет частей, через опыты понятно, что стекло ломается по полигонам.&lt;br /&gt;
Ну да ладно разговор не об этом.&lt;br /&gt;
&lt;br /&gt;
Есть целая модель, есть части, значит... Значит надо как-то указать эти части, правильно конфиг объекта. Иду искать. Нахожу:&lt;br /&gt;
*gamedata\config\models\objects\box_wood_01.ltx&lt;br /&gt;
&lt;br /&gt;
Меня заинтересовала секция:&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[destroyed]&lt;br /&gt;
physics\box\prt\box_wood_01_prt1&lt;br /&gt;
physics\box\prt\box_wood_01_prt2&lt;br /&gt;
physics\box\prt\box_wood_01_prt3&lt;br /&gt;
physics\box\prt\box_wood_01_prt4&lt;br /&gt;
physics\box\prt\box_wood_01_prt5&lt;br /&gt;
physics\box\prt\box_wood_01_prt6&lt;br /&gt;
physics\box\prt\box_wood_01_prt7&lt;br /&gt;
&lt;br /&gt;
[autoremove_parts]&lt;br /&gt;
time = 15&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Значит со структурой ломающихся объектов разобрались.&lt;br /&gt;
&lt;br /&gt;
== Создание модели ==&lt;br /&gt;
&lt;br /&gt;
Теперь перенести бы это на процесс создания, первым делом попробуем подобрать необходимые шейдеры. Пошёл смотреть [[Описание шейдеров XRayMtl]].&lt;br /&gt;
Добавлю, что:&lt;br /&gt;
* Engine - отображение текстуры в движке игры.&lt;br /&gt;
* Compiler - используется при компиляции уровня.&lt;br /&gt;
* Material - игровой материал (wallmark, sound и др.). &lt;br /&gt;
&lt;br /&gt;
Выбрал:&lt;br /&gt;
*Engine - models/model(Основной шейдер для динамических объектов)&lt;br /&gt;
*Compiler - def_vertex(Основной vertex shader, раз физический объект, вершинный шейдер значит по любому нужен)&lt;br /&gt;
*Material - objects/large_furnitura(Материал деревянных изделий)&lt;br /&gt;
&lt;br /&gt;
Попробую повторить тот же самый ящик, запускаю макс, быстренько моделю подобие ящика и частей на которые он будет распадаться. Для всего ящика ставлю настройки шейдеров, которые написаны выше, для частей же просто как для деревянный досок([[Пресеты XRay материалов]]).&lt;br /&gt;
{|&lt;br /&gt;
|[[Изображение:3D-max-test-box.jpg|thumb|400px|Тестовый ящик]]&lt;br /&gt;
|}&lt;br /&gt;
Экспортирую ящик и каждую из частей отдельно.&lt;br /&gt;
Далее после экспорта в ogf с занесением в custom data модели почти копии файла gamedata\config\models\objects\box_wood_01.ltx и спавна в редакторе как destroyable_objects, натыкаюсь на кучу ошибок в редакторе, толи что-то неправильно, толи...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update:''' При загрузке уровня получаю следующий лог:&lt;br /&gt;
  stack trace:&lt;br /&gt;
&lt;br /&gt;
  001B:0049B5FF XR_3DA.exe, CCF_Skeleton::CCF_Skeleton()&lt;br /&gt;
  001B:01CC39FF xrGame.dll&lt;br /&gt;
  001B:01C8AA2B xrGame.dll&lt;br /&gt;
  001B:01C82A34 xrGame.dll&lt;br /&gt;
&lt;br /&gt;
Хм, после раздумий делаю выводы, что надо делать также как и оружие или персов. Ну что ж будем делать.&lt;br /&gt;
&lt;br /&gt;
Открываю сцену в максе, добавляю кость: Create-&amp;gt; System -&amp;gt; Bones. Переименую её в link.&lt;br /&gt;
{|&lt;br /&gt;
|[[Изображение:3D-max-bone-test-box.jpg|thumb|400px|Добавление костей]]&lt;br /&gt;
|[[Изображение:3d-max-init.gif|frame|Инициализация скелета]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
Теперь применю к мешу ящика модификатор Physique. Проинициализурем скелет, нажатием на кнопку Attach to Node и выбрав кость link.&amp;lt;br /&amp;gt;&lt;br /&gt;
Теперь небольшое отступление по поводу этого модификатора. Раскрыв свиток модификатора, мы видим там следующее:&lt;br /&gt;
*Envelope – Настройка веса вершин и привязке к кости с помощью огибающих&lt;br /&gt;
*Link – Настройка параметров костей&lt;br /&gt;
*Bulge – Редактор выпуклостей&lt;br /&gt;
*Tendons – Редактор сухожилий&lt;br /&gt;
*Vertex – Настройка типа вершин и привязка к кости.&amp;lt;br /&amp;gt;&lt;br /&gt;
Но меня интересует только Envelope и Vertex. Настрою привязку вершин к кости, учитывая, чтобы ни одна вершина не осталась непривязанной. Иду в Vertex.&amp;lt;br /&amp;gt;&lt;br /&gt;
Типы вершин:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Деформируемые вершины (мягкие)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Недеформируемые вершины (Твердые)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;blue&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Пустые вершины без весa и привязки к кости&amp;lt;br /&amp;gt;&lt;br /&gt;
Сам ящик твердый, и поэтому мы используем для него rigid вершины. Счала надо очистить вершины от других костей, нажимаем select, выделяем вершины, переключаемся на синие вершины, нажимаем Assign to link и тыкаем на желтую полоску кости link. Вес и привязка сняты, теперь переключаемся на зеленые и опять тыкаем на линк, привязка назначена.&lt;br /&gt;
&lt;br /&gt;
Теперь экспортируем модель нашего ящика через Export Skin, а части простым экспортом(Export Editor Objects). Я сохранил модель ящика под именем test_box, а частей как test_box_prt{номер части}.&lt;br /&gt;
&lt;br /&gt;
== Дальнейшая настройка и конвертирование в *.ogf ==&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)</id>
		<title>3ds Max. Создание ломающегося предмета (дневник исследования)</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)"/>
				<updated>2007-06-11T12:45:47Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: Модель готова&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
|''Автор:'' '''Neo]['''&lt;br /&gt;
|}&lt;br /&gt;
__TOC__&lt;br /&gt;
== Введение ==&lt;br /&gt;
Ну что, я пока тоже не знаю как это сделать, но на то это и дневник, чтобы записывать сюда ход исследований. Разбираться буду на каком-нибудь примере. Возьму для разбора деревянный ящик.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Поехали ==&lt;br /&gt;
Первым делом решил посмотреть, что из себя представляет модель деревянного ящика, нашёл две модели:&lt;br /&gt;
*gamedata\meshes\objects\dynamics\box\box_wood_01.ogf&lt;br /&gt;
*gamedata\meshes\physics\box\box_wood_01.ogf&lt;br /&gt;
Просмотрев модели в этих директориях, остановился на gamedata\meshes\physics\box\box_wood_01.ogf.&lt;br /&gt;
Хотя в обоих случаях присутствует папка \prt\, из названия ясно, что это части объектов(part), т.е. их также необходимо отдельно моделить, жаль, что xray + ode не считают это в динамике. Хотя для стекла-то нет частей, через опыты понятно, что стекло ломается по полигонам.&lt;br /&gt;
Ну да ладно разговор не об этом.&lt;br /&gt;
&lt;br /&gt;
Есть целая модель, есть части, значит... Значит надо как-то указать эти части, правильно конфиг объекта. Иду искать. Нахожу:&lt;br /&gt;
*gamedata\config\models\objects\box_wood_01.ltx&lt;br /&gt;
&lt;br /&gt;
Меня заинтересовала секция:&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[destroyed]&lt;br /&gt;
physics\box\prt\box_wood_01_prt1&lt;br /&gt;
physics\box\prt\box_wood_01_prt2&lt;br /&gt;
physics\box\prt\box_wood_01_prt3&lt;br /&gt;
physics\box\prt\box_wood_01_prt4&lt;br /&gt;
physics\box\prt\box_wood_01_prt5&lt;br /&gt;
physics\box\prt\box_wood_01_prt6&lt;br /&gt;
physics\box\prt\box_wood_01_prt7&lt;br /&gt;
&lt;br /&gt;
[autoremove_parts]&lt;br /&gt;
time = 15&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Значит со структурой ломающихся объектов разобрались.&lt;br /&gt;
&lt;br /&gt;
== Создаём, да прибудет SDK в помощь ==&lt;br /&gt;
&lt;br /&gt;
Теперь перенести бы это на процесс создания, первым делом попробуем подобрать необходимые шейдеры. Пошёл смотреть [[Описание шейдеров XRayMtl]].&lt;br /&gt;
Добавлю, что:&lt;br /&gt;
* Engine - отображение текстуры в движке игры.&lt;br /&gt;
* Compiler - используется при компиляции уровня.&lt;br /&gt;
* Material - игровой материал (wallmark, sound и др.). &lt;br /&gt;
&lt;br /&gt;
Выбрал:&lt;br /&gt;
*Engine - models/model(Основной шейдер для динамических объектов)&lt;br /&gt;
*Compiler - def_vertex(Основной vertex shader, раз физический объект, вершинный шейдер значит по любому нужен)&lt;br /&gt;
*Material - objects/large_furnitura(Материал деревянных изделий)&lt;br /&gt;
&lt;br /&gt;
Попробую повторить тот же самый ящик, запускаю макс, быстренько моделю подобие ящика и частей на которые он будет распадаться. Для всего ящика ставлю настройки шейдеров, которые написаны выше, для частей же просто как для деревянный досок([[Пресеты XRay материалов]]).&lt;br /&gt;
{|&lt;br /&gt;
|[[Изображение:3D-max-test-box.jpg|thumb|400px|Тестовый ящик]]&lt;br /&gt;
|}&lt;br /&gt;
Экспортирую ящик и каждую из частей отдельно.&lt;br /&gt;
Далее после экспорта в ogf с занесением в custom data модели почти копии файла gamedata\config\models\objects\box_wood_01.ltx и спавна в редакторе как destroyable_objects, натыкаюсь на кучу ошибок в редакторе, толи что-то неправильно, толи...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update:''' При загрузке уровня получаю следующий лог:&lt;br /&gt;
  stack trace:&lt;br /&gt;
&lt;br /&gt;
  001B:0049B5FF XR_3DA.exe, CCF_Skeleton::CCF_Skeleton()&lt;br /&gt;
  001B:01CC39FF xrGame.dll&lt;br /&gt;
  001B:01C8AA2B xrGame.dll&lt;br /&gt;
  001B:01C82A34 xrGame.dll&lt;br /&gt;
&lt;br /&gt;
Хм, после раздумий делаю выводы, что надо делать также как и оружие или персов. Ну что ж будем делать.&lt;br /&gt;
&lt;br /&gt;
Открываю сцену в максе, добавляю кость: Create-&amp;gt; System -&amp;gt; Bones. Переименую её в link.&lt;br /&gt;
{|&lt;br /&gt;
|[[Изображение:3D-max-bone-test-box.jpg|thumb|400px|Добавление костей]]&lt;br /&gt;
|[[Изображение:3d-max-init.gif|frame|Инициализация скелета]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
Теперь применю к мешу ящика модификатор Physique. Проинициализурем скелет, нажатием на кнопку Attach to Node и выбрав кость link.&amp;lt;br /&amp;gt;&lt;br /&gt;
Теперь небольшое отступление по поводу этого модификатора. Раскрыв свиток модификатора, мы видим там следующее:&lt;br /&gt;
*Envelope – Настройка веса вершин и привязке к кости с помощью огибающих&lt;br /&gt;
*Link – Настройка параметров костей&lt;br /&gt;
*Bulge – Редактор выпуклостей&lt;br /&gt;
*Tendons – Редактор сухожилий&lt;br /&gt;
*Vertex – Настройка типа вершин и привязка к кости.&amp;lt;br /&amp;gt;&lt;br /&gt;
Но меня интересует только Envelope и Vertex. Настрою привязку вершин к кости, учитывая, чтобы ни одна вершина не осталась непривязанной. Иду в Vertex.&amp;lt;br /&amp;gt;&lt;br /&gt;
Типы вершин:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Деформируемые вершины (мягкие)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Недеформируемые вершины (Твердые)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;blue&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Пустые вершины без весa и привязки к кости&amp;lt;br /&amp;gt;&lt;br /&gt;
Сам ящик твердый, и поэтому мы используем для него rigid вершины. Счала надо очистить вершины от других костей, нажимаем select, выделяем вершины, переключаемся на синие вершины, нажимаем Assign to link и тыкаем на желтую полоску кости link. Вес и привязка сняты, теперь переключаемся на зеленые и опять тыкаем на линк, привязка назначена.&lt;br /&gt;
&lt;br /&gt;
Теперь экспортируем модель нашего ящика через Export Skin, а части простым экспортом(Export Editor Objects). Я сохранил модель ящика под именем test_box, а частей как test_box_prt{номер части}.&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)</id>
		<title>3ds Max. Создание ломающегося предмета (дневник исследования)</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)"/>
				<updated>2007-06-11T12:28:28Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
|''Автор:'' '''Neo]['''&lt;br /&gt;
|}&lt;br /&gt;
__TOC__&lt;br /&gt;
== Введение ==&lt;br /&gt;
Ну что, я пока тоже не знаю как это сделать, но на то это и дневник, чтобы записывать сюда ход исследований. Разбираться буду на каком-нибудь примере. Возьму для разбора деревянный ящик.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Поехали ==&lt;br /&gt;
Первым делом решил посмотреть, что из себя представляет модель деревянного ящика, нашёл две модели:&lt;br /&gt;
*gamedata\meshes\objects\dynamics\box\box_wood_01.ogf&lt;br /&gt;
*gamedata\meshes\physics\box\box_wood_01.ogf&lt;br /&gt;
Просмотрев модели в этих директориях, остановился на gamedata\meshes\physics\box\box_wood_01.ogf.&lt;br /&gt;
Хотя в обоих случаях присутствует папка \prt\, из названия ясно, что это части объектов(part), т.е. их также необходимо отдельно моделить, жаль, что xray + ode не считают это в динамике. Хотя для стекла-то нет частей, через опыты понятно, что стекло ломается по полигонам.&lt;br /&gt;
Ну да ладно разговор не об этом.&lt;br /&gt;
&lt;br /&gt;
Есть целая модель, есть части, значит... Значит надо как-то указать эти части, правильно конфиг объекта. Иду искать. Нахожу:&lt;br /&gt;
*gamedata\config\models\objects\box_wood_01.ltx&lt;br /&gt;
&lt;br /&gt;
Меня заинтересовала секция:&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[destroyed]&lt;br /&gt;
physics\box\prt\box_wood_01_prt1&lt;br /&gt;
physics\box\prt\box_wood_01_prt2&lt;br /&gt;
physics\box\prt\box_wood_01_prt3&lt;br /&gt;
physics\box\prt\box_wood_01_prt4&lt;br /&gt;
physics\box\prt\box_wood_01_prt5&lt;br /&gt;
physics\box\prt\box_wood_01_prt6&lt;br /&gt;
physics\box\prt\box_wood_01_prt7&lt;br /&gt;
&lt;br /&gt;
[autoremove_parts]&lt;br /&gt;
time = 15&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Значит со структурой ломающихся объектов разобрались.&lt;br /&gt;
&lt;br /&gt;
== Создаём, да прибудет SDK в помощь ==&lt;br /&gt;
&lt;br /&gt;
Теперь перенести бы это на процесс создания, первым делом попробуем подобрать необходимые шейдеры. Пошёл смотреть [[Описание шейдеров XRayMtl]].&lt;br /&gt;
Добавлю, что:&lt;br /&gt;
* Engine - отображение текстуры в движке игры.&lt;br /&gt;
* Compiler - используется при компиляции уровня.&lt;br /&gt;
* Material - игровой материал (wallmark, sound и др.). &lt;br /&gt;
&lt;br /&gt;
Выбрал:&lt;br /&gt;
*Engine - models/model(Основной шейдер для динамических объектов)&lt;br /&gt;
*Compiler - def_vertex(Основной vertex shader, раз физический объект, вершинный шейдер значит по любому нужен)&lt;br /&gt;
*Material - objects/large_furnitura(Материал деревянных изделий)&lt;br /&gt;
&lt;br /&gt;
Попробую повторить тот же самый ящик, запускаю макс, быстренько моделю подобие ящика и частей на которые он будет распадаться. Для всего ящика ставлю настройки шейдеров, которые написаны выше, для частей же просто как для деревянный досок([[Пресеты XRay материалов]]).&lt;br /&gt;
{|&lt;br /&gt;
|[[Изображение:3D-max-test-box.jpg|thumb|400px|Тестовый ящик]]&lt;br /&gt;
|}&lt;br /&gt;
Экспортирую ящик и каждую из частей отдельно.&lt;br /&gt;
Далее после экспорта в ogf с занесением в custom data модели почти копии файла gamedata\config\models\objects\box_wood_01.ltx и спавна в редакторе как destroyable_objects, натыкаюсь на кучу ошибок в редакторе, толи что-то неправильно, толи...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update:''' При загрузке уровня получаю следующий лог:&lt;br /&gt;
  stack trace:&lt;br /&gt;
&lt;br /&gt;
  001B:0049B5FF XR_3DA.exe, CCF_Skeleton::CCF_Skeleton()&lt;br /&gt;
  001B:01CC39FF xrGame.dll&lt;br /&gt;
  001B:01C8AA2B xrGame.dll&lt;br /&gt;
  001B:01C82A34 xrGame.dll&lt;br /&gt;
&lt;br /&gt;
Хм, после раздумий делаю выводы, что надо делать также как и оружие или персов. Ну что ж будем делать.&lt;br /&gt;
&lt;br /&gt;
Открываю сцену в максе, добавляю кость: Create-&amp;gt; System -&amp;gt; Bones. Переименую её в link.&lt;br /&gt;
{|&lt;br /&gt;
|[[Изображение:3D-max-bone-test-box.jpg|thumb|400px|Добавление кости]]&lt;br /&gt;
|[[Изображение:3d-max-init.gif|frame|Инициализация скелета]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
Теперь применю к мешу ящика модификатор Physique. Проинициализурем скелет, нажатием на кнопку Attach to Node и выбрав кость link.&amp;lt;br /&amp;gt;&lt;br /&gt;
Теперь небольшое отступление по поводу этого модификатора. Раскрыв свиток модификатора, мы видим там следующее:&lt;br /&gt;
*Envelope – Настройка веса вершин и привязке к кости с помощью огибающих&lt;br /&gt;
*Link – Настройка параметров костей&lt;br /&gt;
*Bulge – Редактор выпуклостей&lt;br /&gt;
*Tendons – Редактор сухожилий&lt;br /&gt;
*Vertex – Настройка типа вершин и привязка к кости.&amp;lt;br /&amp;gt;&lt;br /&gt;
Но меня интересует только Envelope и Vertex. Настрою привязку вершин к кости, учитывая, чтобы ни одна вершина не осталась непривязанной. Иду в Vertex.&amp;lt;br /&amp;gt;&lt;br /&gt;
Типы вершин:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Деформируемые вершины (мягкие)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Недеформируемые вершины (Твердые)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;blue&amp;quot; size=&amp;quot;101%&amp;quot;&amp;gt;+&amp;lt;/font&amp;gt;  Пустые вершины без весa и привязки к кости&amp;lt;br /&amp;gt;&lt;br /&gt;
Сам ящик твердый, и поэтому мы используем для него rigid вершины. Счала надо очистить вершины от других костей, нажимаем select, выделяем вершины, переключаемся на синие вершины, нажимаем Assign to link и тыкаем на желтую полоску кости link. Вес и привязка сняты, теперь переключаемся на зеленые и опять тыкаем на линк, привязка назначена, делаем тоже самое с плафоном только тыкаем уже на соответствующую кость plafon. Теперь провод, здесь нам нужно перейти на Envelopes,  тыкаете на нужные кости провода, переключаетесь на cross Section масштабируете енвайлоп как надо, периодически вращая кости подгоняете все как нужно у каждой кости.&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:3d-max-init.gif</id>
		<title>Файл:3d-max-init.gif</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:3d-max-init.gif"/>
				<updated>2007-06-11T12:27:14Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: Инициализация скелета&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Инициализация скелета&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:3D-max-bone-test-box.jpg</id>
		<title>Файл:3D-max-bone-test-box.jpg</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:3D-max-bone-test-box.jpg"/>
				<updated>2007-06-11T11:45:15Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: Добавление костей&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Добавление костей&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)</id>
		<title>3ds Max. Создание ломающегося предмета (дневник исследования)</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)"/>
				<updated>2007-06-09T14:06:16Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
|''Автор:'' '''Neo]['''&lt;br /&gt;
|}&lt;br /&gt;
__TOC__&lt;br /&gt;
== Введение ==&lt;br /&gt;
&amp;lt;pre&amp;gt;Далее после экспорта в ogf с занесением в custom data модели почти копии файла &lt;br /&gt;
gamedata\config\models\objects\box_wood_01.ltx и спавна в редакторе как &lt;br /&gt;
destroyable_objects, натыкаюсь на кучу ошибок в редакторе, толи что-то неправильно делаю, толи...&lt;br /&gt;
&lt;br /&gt;
'''Update:''' При загрузке уровня получаю следующий лог:&lt;br /&gt;
  stack trace:&lt;br /&gt;
&lt;br /&gt;
  001B:0049B5FF XR_3DA.exe, CCF_Skeleton::CCF_Skeleton()&lt;br /&gt;
  001B:01CC39FF xrGame.dll&lt;br /&gt;
  001B:01C8AA2B xrGame.dll&lt;br /&gt;
  001B:01C82A34 xrGame.dll&lt;br /&gt;
&lt;br /&gt;
Хм, после раздумий делаю выводы, что надо делать также как и оружие или персов.&lt;br /&gt;
&lt;br /&gt;
В общем пока приостанавливаю дневник, допишу когда разберусь.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ну что, я пока тоже не знаю как это сделать, но на то это и дневник, чтобы записывать сюда ход исследований. Разбираться буду на каком-нибудь примере. Возьму для разбора деревянный ящик.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Поехали ==&lt;br /&gt;
Первым делом решил посмотреть, что из себя представляет модель деревянного ящика, нашёл две модели:&lt;br /&gt;
*gamedata\meshes\objects\dynamics\box\box_wood_01.ogf&lt;br /&gt;
*gamedata\meshes\physics\box\box_wood_01.ogf&lt;br /&gt;
Просмотрев модели в этих директориях, остановился на gamedata\meshes\physics\box\box_wood_01.ogf.&lt;br /&gt;
Хотя в обоих случаях присутствует папка \prt\, из названия ясно, что это части объектов(part), т.е. их также необходимо отдельно моделить, жаль, что xray + ode не считают это в динамике. Хотя для стекла-то нет частей, через опыты понятно, что стекло ломается по полигонам.&lt;br /&gt;
Ну да ладно разговор не об этом.&lt;br /&gt;
&lt;br /&gt;
Есть целая модель, есть части, значит... Значит надо как-то указать эти части, правильно конфиг объекта. Иду искать. Нахожу:&lt;br /&gt;
*gamedata\config\models\objects\box_wood_01.ltx&lt;br /&gt;
&lt;br /&gt;
Меня заинтересовала секция:&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[destroyed]&lt;br /&gt;
physics\box\prt\box_wood_01_prt1&lt;br /&gt;
physics\box\prt\box_wood_01_prt2&lt;br /&gt;
physics\box\prt\box_wood_01_prt3&lt;br /&gt;
physics\box\prt\box_wood_01_prt4&lt;br /&gt;
physics\box\prt\box_wood_01_prt5&lt;br /&gt;
physics\box\prt\box_wood_01_prt6&lt;br /&gt;
physics\box\prt\box_wood_01_prt7&lt;br /&gt;
&lt;br /&gt;
[autoremove_parts]&lt;br /&gt;
time = 15&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Значит со структурой ломающихся объектов разобрались.&lt;br /&gt;
&lt;br /&gt;
== Создаём, да прибудет SDK в помощь ==&lt;br /&gt;
&lt;br /&gt;
Теперь перенести бы это на процесс создания, первым делом попробуем подобрать необходимые шейдеры. Пошёл смотреть [[Описание шейдеров XRayMtl]].&lt;br /&gt;
Добавлю, что:&lt;br /&gt;
* Engine - отображение текстуры в движке игры.&lt;br /&gt;
* Compiler - используется при компиляции уровня.&lt;br /&gt;
* Material - игровой материал (wallmark, sound и др.). &lt;br /&gt;
&lt;br /&gt;
Выбрал:&lt;br /&gt;
*Engine - models/model(Основной шейдер для динамических объектов)&lt;br /&gt;
*Compiler - def_vertex(Основной vertex shader, раз физический объект, вершинный шейдер значит по любому нужен)&lt;br /&gt;
*Material - objects/large_furnitura(Материал деревянных изделий)&lt;br /&gt;
&lt;br /&gt;
Попробую повторить тот же самый ящик, запускаю макс, быстренько моделю подобие ящика и частей на которые он будет распадаться. Для всего ящика ставлю настройки шейдеров, которые написаны выше, для частей же просто как для деревянный досок([[Пресеты XRay материалов]]).&lt;br /&gt;
{|&lt;br /&gt;
|[[Изображение:3D-max-test-box.jpg|thumb|400px|Тестовый ящик]]&lt;br /&gt;
|}&lt;br /&gt;
Экспортирую ящик и каждую из частей отдельно.&lt;br /&gt;
Далее после экспорта в ogf с занесением в custom data модели почти копии файла gamedata\config\models\objects\box_wood_01.ltx и спавна в редакторе как destroyable_objects, натыкаюсь на кучу ошибок в редакторе, толи что-то неправильно, толи...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update:''' При загрузке уровня получаю следующий лог:&lt;br /&gt;
  stack trace:&lt;br /&gt;
&lt;br /&gt;
  001B:0049B5FF XR_3DA.exe, CCF_Skeleton::CCF_Skeleton()&lt;br /&gt;
  001B:01CC39FF xrGame.dll&lt;br /&gt;
  001B:01C8AA2B xrGame.dll&lt;br /&gt;
  001B:01C82A34 xrGame.dll&lt;br /&gt;
&lt;br /&gt;
Хм, после раздумий делаю выводы, что надо делать также как и оружие или персов.&lt;br /&gt;
&lt;br /&gt;
В общем пока приостанавливаю дневник, допишу когда разберусь.&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)</id>
		<title>3ds Max. Создание ломающегося предмета (дневник исследования)</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)"/>
				<updated>2007-06-09T14:01:01Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: стоп - ошибки&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
|''Автор:'' '''Neo]['''&lt;br /&gt;
|}&lt;br /&gt;
__TOC__&lt;br /&gt;
== Введение ==&lt;br /&gt;
&amp;lt;pre&amp;gt;Далее после экспорта в ogf с занесением в custom data модели почти копии файла &lt;br /&gt;
gamedata\config\models\objects\box_wood_01.ltx и спавна в редакторе как &lt;br /&gt;
destroyable_objects, натыкаюсь на кучу ошибок в редакторе, толи что-то неправильно делаю, толи...&lt;br /&gt;
&lt;br /&gt;
В общем пока приостанавливаю дневник, допишу когда разберусь.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ну что, я пока тоже не знаю как это сделать, но на то это и дневник, чтобы записывать сюда ход исследований. Разбираться буду на каком-нибудь примере. Возьму для разбора деревянный ящик.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Поехали ==&lt;br /&gt;
Первым делом решил посмотреть, что из себя представляет модель деревянного ящика, нашёл две модели:&lt;br /&gt;
*gamedata\meshes\objects\dynamics\box\box_wood_01.ogf&lt;br /&gt;
*gamedata\meshes\physics\box\box_wood_01.ogf&lt;br /&gt;
Просмотрев модели в этих директориях, остановился на gamedata\meshes\physics\box\box_wood_01.ogf.&lt;br /&gt;
Хотя в обоих случаях присутствует папка \prt\, из названия ясно, что это части объектов(part), т.е. их также необходимо отдельно моделить, жаль, что xray + ode не считают это в динамике. Хотя для стекла-то нет частей, через опыты понятно, что стекло ломается по полигонам.&lt;br /&gt;
Ну да ладно разговор не об этом.&lt;br /&gt;
&lt;br /&gt;
Есть целая модель, есть части, значит... Значит надо как-то указать эти части, правильно конфиг объекта. Иду искать. Нахожу:&lt;br /&gt;
*gamedata\config\models\objects\box_wood_01.ltx&lt;br /&gt;
&lt;br /&gt;
Меня заинтересовала секция:&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[destroyed]&lt;br /&gt;
physics\box\prt\box_wood_01_prt1&lt;br /&gt;
physics\box\prt\box_wood_01_prt2&lt;br /&gt;
physics\box\prt\box_wood_01_prt3&lt;br /&gt;
physics\box\prt\box_wood_01_prt4&lt;br /&gt;
physics\box\prt\box_wood_01_prt5&lt;br /&gt;
physics\box\prt\box_wood_01_prt6&lt;br /&gt;
physics\box\prt\box_wood_01_prt7&lt;br /&gt;
&lt;br /&gt;
[autoremove_parts]&lt;br /&gt;
time = 15&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Значит со структурой ломающихся объектов разобрались.&lt;br /&gt;
&lt;br /&gt;
== Создаём, да прибудет SDK в помощь ==&lt;br /&gt;
&lt;br /&gt;
Теперь перенести бы это на процесс создания, первым делом попробуем подобрать необходимые шейдеры. Пошёл смотреть [[Описание шейдеров XRayMtl]].&lt;br /&gt;
Добавлю, что:&lt;br /&gt;
* Engine - отображение текстуры в движке игры.&lt;br /&gt;
* Compiler - используется при компиляции уровня.&lt;br /&gt;
* Material - игровой материал (wallmark, sound и др.). &lt;br /&gt;
&lt;br /&gt;
Выбрал:&lt;br /&gt;
*Engine - models/model(Основной шейдер для динамических объектов)&lt;br /&gt;
*Compiler - def_vertex(Основной vertex shader, раз физический объект, вершинный шейдер значит по любому нужен)&lt;br /&gt;
*Material - objects/large_furnitura(Материал деревянных изделий)&lt;br /&gt;
&lt;br /&gt;
Попробую повторить тот же самый ящик, запускаю макс, быстренько моделю подобие ящика и частей на которые он будет распадаться. Для всего ящика ставлю настройки шейдеров, которые написаны выше, для частей же просто как для деревянный досок([[Пресеты XRay материалов]]).&lt;br /&gt;
{|&lt;br /&gt;
|[[Изображение:3D-max-test-box.jpg|thumb|400px|Тестовый ящик]]&lt;br /&gt;
|}&lt;br /&gt;
Экспортирую ящик и каждую из частей отдельно.&lt;br /&gt;
Далее после экспорта в ogf с занесением в custom data модели почти копии файла gamedata\config\models\objects\box_wood_01.ltx и спавна в редакторе как destroyable_objects, натыкаюсь на кучу ошибок в редакторе, толи что-то неправильно, толи...&lt;br /&gt;
&lt;br /&gt;
В общем пока приостанавливаю дневник, допишу когда разберусь.&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:3D-max-test-box.jpg</id>
		<title>Файл:3D-max-test-box.jpg</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:3D-max-test-box.jpg"/>
				<updated>2007-06-09T13:35:57Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: Тестовый ящик&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Тестовый ящик&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)</id>
		<title>3ds Max. Создание ломающегося предмета (дневник исследования)</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)"/>
				<updated>2007-06-09T12:46:57Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
|''Автор:'' '''Neo]['''&lt;br /&gt;
|}&lt;br /&gt;
__TOC__&lt;br /&gt;
== Введение ==&lt;br /&gt;
Ну что, я пока тоже не знаю как это сделать, но на то это и дневник, чтобы записывать сюда ход исследований. Разбираться буду на каком-нибудь примере. Возьму для разбора деревянный ящик.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Поехали ==&lt;br /&gt;
Первым делом решил посмотреть, что из себя представляет модель деревянного ящика, нашёл две модели:&lt;br /&gt;
*gamedata\meshes\objects\dynamics\box\box_wood_01.ogf&lt;br /&gt;
*gamedata\meshes\physics\box\box_wood_01.ogf&lt;br /&gt;
Просмотрев модели в этих директориях, остановился на gamedata\meshes\physics\box\box_wood_01.ogf.&lt;br /&gt;
Хотя в обоих случаях присутствует папка \prt\, из названия ясно, что это части объектов(part), т.е. их также необходимо отдельно моделить, жаль, что xray + ode не считают это в динамике. Хотя для стекла-то нет частей, через опыты понятно, что стекло ломается по полигонам.&lt;br /&gt;
Ну да ладно разговор не об этом.&lt;br /&gt;
&lt;br /&gt;
Есть целая модель, есть части, значит... Значит надо как-то указать эти части, правильно конфиг объекта. Иду искать. Нахожу:&lt;br /&gt;
*gamedata\config\models\objects\box_wood_01.ltx&lt;br /&gt;
&lt;br /&gt;
Меня заинтересовала секция:&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[destroyed]&lt;br /&gt;
physics\box\prt\box_wood_01_prt1&lt;br /&gt;
physics\box\prt\box_wood_01_prt2&lt;br /&gt;
physics\box\prt\box_wood_01_prt3&lt;br /&gt;
physics\box\prt\box_wood_01_prt4&lt;br /&gt;
physics\box\prt\box_wood_01_prt5&lt;br /&gt;
physics\box\prt\box_wood_01_prt6&lt;br /&gt;
physics\box\prt\box_wood_01_prt7&lt;br /&gt;
&lt;br /&gt;
[autoremove_parts]&lt;br /&gt;
time = 15&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Значит со структурой ломающихся объектов разобрались.&lt;br /&gt;
&lt;br /&gt;
== Создаём, да прибудет SDK в помощь ==&lt;br /&gt;
&lt;br /&gt;
Теперь перенести бы это на процесс создания, первым делом попробуем подобрать необходимые шейдеры. Пошёл смотреть [[Описание шейдеров XRayMtl]].&lt;br /&gt;
Добавлю, что:&lt;br /&gt;
* Engine - отображение текстуры в движке игры.&lt;br /&gt;
* Compiler - используется при компиляции уровня.&lt;br /&gt;
* Material - игровой материал (wallmark, sound и др.). &lt;br /&gt;
&lt;br /&gt;
Выбрал:&lt;br /&gt;
*Engine - models/model(Основной шейдер для динамических объектов)&lt;br /&gt;
*Compiler - def_vertex(Основной vertex shader, раз физический объект, вершинный шейдер значит по любому нужен)&lt;br /&gt;
*Material - objects/large_furnitura(Материал деревянных изделий)&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0</id>
		<title>Заглавная страница</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0"/>
				<updated>2007-06-09T12:40:04Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: обновление данных&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p style=&amp;quot;text-align:center;font-size:120%;line-height:1.3em;font-weight:normal;margin-bottom:0;&amp;quot;&amp;gt;Добро пожаловать в '''S.T.A.L.K.E.R. Inside Wiki''' - базу знаний нашего [http://stalkerin.gameru.net сайта],&amp;lt;br /&amp;gt; в которую каждый может внести свой вклад, отредактировав или дополнив уже существующую статью, либо создав новую.&amp;lt;br /&amp;gt;&lt;br /&gt;
На данный момент в нашей базе знаний '''[[Special:Statistics|{{NUMBEROFARTICLES}}]]''' {{plural:{{NUMBEROFARTICLES}}|статья|статьи|статей}}.&amp;lt;/p&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Основными направлениями развития нашей базы знаний являются статьи, посвящённые модифицированию игры S.T.A.L.K.E.R. SHoC, а также материалы, которые тем или иным образом могут помочь в этом.&lt;br /&gt;
&lt;br /&gt;
На данный момент ведётся адаптация помощи по языку разметки, который принят в системах, работающих по технологии «вики». Если вы хотите разместить свою статью на страницах нашей базы, вы можете прислать её, оформив, например в программе MS Word, [[S.T.A.L.K.E.R._Inside_Wiki:Администраторы|главному редактору]] нашей базы знаний.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class = &amp;quot;standard wide&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! align=&amp;quot;left&amp;quot; width = &amp;quot;70%&amp;quot; colspan = &amp;quot;2&amp;quot;| Содержание &lt;br /&gt;
! align=&amp;quot;left&amp;quot; width = &amp;quot;30%&amp;quot;|Избранные статьи&lt;br /&gt;
 |-&lt;br /&gt;
| colspan = &amp;quot;2&amp;quot;|&lt;br /&gt;
*[[:Категория:Незаконченные статьи|Незаконченные статьи]] - статьи, которые требуется закончить, либо доработать.&lt;br /&gt;
*[[:Категория:FAQ|Ответы на часто задаваемые вопросы]] - FAQ&lt;br /&gt;
*[[:Категория:Руководства|Руководства]]&lt;br /&gt;
**[[:Категория:SDK|SDK]] - уроки по работе с SDK.&lt;br /&gt;
**[[:Категория:Скрипты|Скрипты]] - статьи, рассказывающие о работе со скриптами игры.&lt;br /&gt;
**[[:Категория:Конфигурационные файлы|Конфиги]] - статьи, рассказывающие о различных параметрах в конфигурационных файлах&lt;br /&gt;
**[[:Категория:Программы|Руководства к программам]] - статьи, которые научат работать с программами, помогающими в модифицировании S.T.A.L.K.E.R.-a&lt;br /&gt;
*[[:Категория:Справочники|Справочники]] - различная справочная информация.&lt;br /&gt;
**[[:Категория:Команды консоли|Команды консоли]]&lt;br /&gt;
**[[:Категория:Форматы файлов|Форматы файлов]]&lt;br /&gt;
*[[S.T.A.L.K.E.R._Inside_Wiki:Справка|Справка по Вики]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
*[[Глобальное озеленение, добавляем траву на уровень]]&lt;br /&gt;
*[[Добавляем аномалии на уровень]]&lt;br /&gt;
*[[Назначение скриптам горячих кнопок. Часть 1. Скрипт]]&lt;br /&gt;
*[[Назначение скриптам горячих кнопок. Часть 2. Интерфейс]]&lt;br /&gt;
*[[Описание шейдеров XRayMtl]]&lt;br /&gt;
*[[Перевод STALKER: SHoC Tweak Guide]]&lt;br /&gt;
*[[Создание уровня, пошаговое руководство]]&lt;br /&gt;
 |-&lt;br /&gt;
! align=left | Новые статьи&lt;br /&gt;
! align=left | Свежие правки&lt;br /&gt;
! align=left | Популярные статьи&lt;br /&gt;
|-&lt;br /&gt;
 | valign=top |&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=new&lt;br /&gt;
  count=10&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
 | valign=top |&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=update&lt;br /&gt;
  count=10 &lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
| valign=top |&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  type=hot&lt;br /&gt;
  count=15&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
{{Обновления}}--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--{{Статистика}}--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)</id>
		<title>3ds Max. Создание ломающегося предмета (дневник исследования)</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)"/>
				<updated>2007-06-09T12:29:30Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
|''Автор:'' '''Neo]['''&lt;br /&gt;
|}&lt;br /&gt;
__TOC__&lt;br /&gt;
== Введение ==&lt;br /&gt;
Ну что, я пока тоже не знаю как это сделать, но на то это и дневник, чтобы записывать сюда ход исследований. Разбираться буду на каком-нибудь примере. Возьму для разбора деревянный ящик.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Поехали ==&lt;br /&gt;
Первым делом решил посмотреть, что из себя представляет модель деревянного ящика, нашёл две модели:&lt;br /&gt;
*gamedata\meshes\objects\dynamics\box\box_wood_01.ogf&lt;br /&gt;
*gamedata\meshes\physics\box\box_wood_01.ogf&lt;br /&gt;
Просмотрев модели в этих директориях, остановился на gamedata\meshes\physics\box\box_wood_01.ogf.&lt;br /&gt;
Хотя в обоих случаях присутствует папка \prt\, из названия ясно, что это части объектов(part), т.е. их также необходимо отдельно моделить, жаль, что xray + ode не считают это в динамике. Хотя для стекла-то нет частей, через опыты понятно, что стекло ломается по полигонам.&lt;br /&gt;
Ну да ладно разговор не об этом. Есть целая модель, есть части, значит... Значит надо как-то указать эти части, правильно конфиг объекта.&lt;br /&gt;
&lt;br /&gt;
Иду искать. Нахожу:&lt;br /&gt;
*gamedata\config\models\objects\box_wood_01.ltx&lt;br /&gt;
&lt;br /&gt;
Меня заинтересовала секция:&lt;br /&gt;
&amp;lt;code ini&amp;gt;&lt;br /&gt;
[destroyed]&lt;br /&gt;
physics\box\prt\box_wood_01_prt1&lt;br /&gt;
physics\box\prt\box_wood_01_prt2&lt;br /&gt;
physics\box\prt\box_wood_01_prt3&lt;br /&gt;
physics\box\prt\box_wood_01_prt4&lt;br /&gt;
physics\box\prt\box_wood_01_prt5&lt;br /&gt;
physics\box\prt\box_wood_01_prt6&lt;br /&gt;
physics\box\prt\box_wood_01_prt7&lt;br /&gt;
&lt;br /&gt;
[autoremove_parts]&lt;br /&gt;
time = 15&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)</id>
		<title>3ds Max. Создание ломающегося предмета (дневник исследования)</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=3ds_Max._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BC%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%D1%81%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0_(%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%B8%D0%BA_%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)"/>
				<updated>2007-06-09T12:09:16Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: Введение&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
|''Автор:'' '''Neo]['''&lt;br /&gt;
|}&lt;br /&gt;
== Введение ==&lt;br /&gt;
Ну что я пока тоже не знаю как это сделать, но на то это и дневник, чтобы записывать сюда ход исследований. Разбираться буду на каком-нибудь примере. Возьму для разбора деревянный ящик.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Поехали ==&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:Eugaliod</id>
		<title>Обсуждение участника:Eugaliod</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:Eugaliod"/>
				<updated>2007-06-08T08:46:33Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Содержимое файлов gamedata.db* ==&lt;br /&gt;
Перенесено в [[:Категория:Справочники]]&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%BE%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%BC%D0%BE%D0%B5_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2_gamedata.db*</id>
		<title>Содержимое файлов gamedata.db*</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%BE%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%BC%D0%BE%D0%B5_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2_gamedata.db*"/>
				<updated>2007-06-08T08:45:31Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Разобрал '''Eugaliod'''&lt;br /&gt;
&lt;br /&gt;
== gamedata.db0 ==&lt;br /&gt;
&lt;br /&gt;
     -ai:&lt;br /&gt;
        | -alife&lt;br /&gt;
        | -common&lt;br /&gt;
     -anims:&lt;br /&gt;
        | -camera_effects&lt;br /&gt;
        | -editor&lt;br /&gt;
        | -helicopter&lt;br /&gt;
        | -path&lt;br /&gt;
     -config:&lt;br /&gt;
        | -creatures&lt;br /&gt;
        | -gameplay&lt;br /&gt;
        | -misc&lt;br /&gt;
        | -models:&lt;br /&gt;
        |    | -capture&lt;br /&gt;
        |    | -objects&lt;br /&gt;
        |    | -vehicles&lt;br /&gt;
        |    | -weapons&lt;br /&gt;
        | -mp:&lt;br /&gt;
        |    | -soundmessages&lt;br /&gt;
        |    | -weapons_mp&lt;br /&gt;
        | -prefetch&lt;br /&gt;
        | -scripts:&lt;br /&gt;
        |    | -agr&lt;br /&gt;
        |    | -cit&lt;br /&gt;
        |    | -dar&lt;br /&gt;
        |    | -ds&lt;br /&gt;
        |    | -mil&lt;br /&gt;
        |    | -pri&lt;br /&gt;
        |    | -rad&lt;br /&gt;
        |    | -val&lt;br /&gt;
        |    | -yan&lt;br /&gt;
        | -text:&lt;br /&gt;
        |    | -map_desc&lt;br /&gt;
        | -ui&lt;br /&gt;
        | -weapons&lt;br /&gt;
        | -weathers&lt;br /&gt;
     -levels:&lt;br /&gt;
        | -l01_escape:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -l02_garbage:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -l03_agroprom:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -l03u_agr_underground&lt;br /&gt;
        | -l04_darkvalley:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -l04u_labx18&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== gamedata.db1 ==&lt;br /&gt;
&lt;br /&gt;
     -levels:&lt;br /&gt;
        | -l04u_labx18:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        | -l05_bar:&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -l06_rostok:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -l07_military:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -l08_yantar:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -l08u_brainlab:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        | -l10_radar&lt;br /&gt;
&lt;br /&gt;
== gamedata.db2 ==&lt;br /&gt;
&lt;br /&gt;
     -levels:&lt;br /&gt;
        | -l10_radar:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -l10u_bunker&lt;br /&gt;
        | -l11_pripyat:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -l12_stancia:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -l12_stancia_2&lt;br /&gt;
&lt;br /&gt;
== gamedata.db3 ==&lt;br /&gt;
&lt;br /&gt;
     -levels:&lt;br /&gt;
        | -l12_stancia_2:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -l12u_control_monolith&lt;br /&gt;
        | -l12u_sarcofag&lt;br /&gt;
        | -testers_mp_agroprom:&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -testers_mp_atp:&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -testers_mp_bath:&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -testers_mp_darkvalley:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -testers_mp_factory:&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -testers_mp_lost_village:&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -testers_mp_military_1:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -testers_mp_military_2:&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -testers_mp_pool&lt;br /&gt;
        | -testers_mp_railroad:&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -testers_mp_rostok&lt;br /&gt;
&lt;br /&gt;
== gamedata.db4 ==&lt;br /&gt;
&lt;br /&gt;
     -levels:&lt;br /&gt;
        | -testers_mp_rostok:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -testers_mp_workshop:&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
     -meshes:&lt;br /&gt;
        | -actors:&lt;br /&gt;
        |    | -bandit&lt;br /&gt;
        |    | -barman&lt;br /&gt;
        |    | -dolg&lt;br /&gt;
        |    | -ecolog&lt;br /&gt;
        |    | -hero&lt;br /&gt;
        |    | -izgoy&lt;br /&gt;
        |    | -killer&lt;br /&gt;
        |    | -militari&lt;br /&gt;
        |    | -monolit&lt;br /&gt;
        |    | -nauchniy&lt;br /&gt;
        |    | -neytral&lt;br /&gt;
        |    | -novice&lt;br /&gt;
        |    | -protect&lt;br /&gt;
        |    | -soldier&lt;br /&gt;
        |    | -stalker_mp&lt;br /&gt;
        |    | -stalker_zombi&lt;br /&gt;
        |    | -svoboda&lt;br /&gt;
        |    | -trader&lt;br /&gt;
        |    | -ucheniy&lt;br /&gt;
        | -dm&lt;br /&gt;
        | -equipments&lt;br /&gt;
        | -food&lt;br /&gt;
        | -monsters:&lt;br /&gt;
        |    | -burer&lt;br /&gt;
        |    | -cat&lt;br /&gt;
        |    | -chimera&lt;br /&gt;
        |    | -crow&lt;br /&gt;
        |    | -dark_stalker&lt;br /&gt;
        |    | -dog&lt;br /&gt;
        |    | -flesh&lt;br /&gt;
        |    | -izlom&lt;br /&gt;
        |    | -kontroler&lt;br /&gt;
        |    | -krovosos&lt;br /&gt;
        |    | -mutant_boar&lt;br /&gt;
        |    | -phantom&lt;br /&gt;
        |    | -poltergeist&lt;br /&gt;
        |    | -pseudodog&lt;br /&gt;
        |    | -psevdogigant&lt;br /&gt;
        |    | -rat&lt;br /&gt;
        |    | -snork&lt;br /&gt;
        |    | -stalker_zombi&lt;br /&gt;
        |    | -topolinypuh&lt;br /&gt;
        |    | -tushkano&lt;br /&gt;
        |    | -zombi&lt;br /&gt;
        | -objects:&lt;br /&gt;
        |    | -dynamics:&lt;br /&gt;
        |    |    | -balon&lt;br /&gt;
        |    |    | -bed&lt;br /&gt;
        |    |    | -box:&lt;br /&gt;
        |    |    |    | -prt&lt;br /&gt;
        |    |    | -chair&lt;br /&gt;
        |    |    | -decor&lt;br /&gt;
        |    |    | -plitka&lt;br /&gt;
        | -physics:&lt;br /&gt;
        |    | -anomaly&lt;br /&gt;
        |    | -balon&lt;br /&gt;
        |    | -box:&lt;br /&gt;
        |    |    | -prt&lt;br /&gt;
        |    | -dead_body&lt;br /&gt;
        |    | -decor:&lt;br /&gt;
        |    |    | -prt&lt;br /&gt;
        |    | -door:&lt;br /&gt;
        |    |    | -prt&lt;br /&gt;
        |    | -equipment_cache&lt;br /&gt;
        |    | -keyboard&lt;br /&gt;
        |    | -krovati&lt;br /&gt;
        |    | -large_trash:&lt;br /&gt;
        |    |    | -prt&lt;br /&gt;
        |    | -light:&lt;br /&gt;
        |    |    | -new_light&lt;br /&gt;
        |    | -rope&lt;br /&gt;
        |    | -shkaf&lt;br /&gt;
        |    | -small_trash:&lt;br /&gt;
        |    |    | -prt&lt;br /&gt;
        |    | -stol&lt;br /&gt;
        |    | -stul&lt;br /&gt;
        |    | -target&lt;br /&gt;
        |    | -technica&lt;br /&gt;
        |    | -test:&lt;br /&gt;
        |    |    | -old&lt;br /&gt;
        |    | -vehicles:&lt;br /&gt;
        |    |    | -btr&lt;br /&gt;
        |    |    | -kamaz:&lt;br /&gt;
        |    |    |    | -old&lt;br /&gt;
        |    |    | -mi24:&lt;br /&gt;
        |    |    |    | -part&lt;br /&gt;
        |    |    | -moskvich&lt;br /&gt;
        |    |    | -niva&lt;br /&gt;
        |    |    | -tr13&lt;br /&gt;
        |    |    | -uaz&lt;br /&gt;
        |    |    | -zaz&lt;br /&gt;
        |    | -zabor:&lt;br /&gt;
        |    |    | -prt&lt;br /&gt;
        | -weapons:&lt;br /&gt;
        |    | -abakan&lt;br /&gt;
        |    | -ak-74u&lt;br /&gt;
        |    | -ak74&lt;br /&gt;
        |    | -ammo&lt;br /&gt;
        |    | -aptechka&lt;br /&gt;
        |    | -artefact&lt;br /&gt;
        |    | -bandage&lt;br /&gt;
        |    | -beretta92fs&lt;br /&gt;
        |    | -binoculars&lt;br /&gt;
        |    | -bm_16&lt;br /&gt;
        |    | -bolt&lt;br /&gt;
        |    | -bred&lt;br /&gt;
        |    | -colt1911&lt;br /&gt;
        |    | -desert_eagle&lt;br /&gt;
        |    | -fn2000&lt;br /&gt;
        |    | -fort&lt;br /&gt;
        |    | -g36&lt;br /&gt;
        |    | -gauss&lt;br /&gt;
        |    | -grenade&lt;br /&gt;
        |    | -groza&lt;br /&gt;
        |    | -hpsa&lt;br /&gt;
        |    | -knife&lt;br /&gt;
        |    | -kolbasa&lt;br /&gt;
        |    | -l85&lt;br /&gt;
        |    | -lr300&lt;br /&gt;
        |    | -mounted_weapons&lt;br /&gt;
        |    | -mp5&lt;br /&gt;
        |    | -p90&lt;br /&gt;
        |    | -pb&lt;br /&gt;
        |    | -pm&lt;br /&gt;
        |    | -rg-6&lt;br /&gt;
        |    | -rpg_7&lt;br /&gt;
        |    | -sig220&lt;br /&gt;
        |    | -sig550&lt;br /&gt;
        |    | -sigaret&lt;br /&gt;
        |    | -spas12&lt;br /&gt;
        |    | -svd&lt;br /&gt;
        |    | -svu&lt;br /&gt;
        |    | -toz34&lt;br /&gt;
        |    | -upgrade&lt;br /&gt;
        |    | -usp_45&lt;br /&gt;
        |    | -val&lt;br /&gt;
        |    | -vintorez&lt;br /&gt;
        |    | -vodka&lt;br /&gt;
        |    | -walter_99&lt;br /&gt;
        |    | -winchester1300&lt;br /&gt;
     -scripts&lt;br /&gt;
     -shaders:&lt;br /&gt;
        | -r1:&lt;br /&gt;
        |    | -shared&lt;br /&gt;
        | -r2:&lt;br /&gt;
        |    | -shared&lt;br /&gt;
        |    | -test&lt;br /&gt;
        | -shared&lt;br /&gt;
     -sounds:&lt;br /&gt;
        | -actor&lt;br /&gt;
        | -affects&lt;br /&gt;
        | -alexmx&lt;br /&gt;
        | -ambient:&lt;br /&gt;
        |    | -arena&lt;br /&gt;
        |    | -bar&lt;br /&gt;
        |    | -indoors&lt;br /&gt;
        |    | -random&lt;br /&gt;
        |    | -rnd_outdoor&lt;br /&gt;
        |    | -underground&lt;br /&gt;
        |    | -x16&lt;br /&gt;
        |    | -x18&lt;br /&gt;
        | -anomaly&lt;br /&gt;
        | -car&lt;br /&gt;
        | -characters_voice:&lt;br /&gt;
        |    | -human_01:&lt;br /&gt;
        |    |    | -bandit:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friendly_grenade&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -dolg:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -box&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -raid&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -ecolog:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy:&lt;br /&gt;
        |    |    |    |    |    | -aptechku&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -freedom:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -box&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -killer:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friendly_grenade&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy:&lt;br /&gt;
        |    |    |    |    |    | -aptechku&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -military:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy:&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -monolith:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy:&lt;br /&gt;
        |    |    |    |    |    | -aptechku&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -newbie&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -box&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    | -stalker&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -box&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    | -zombied&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -rising&lt;br /&gt;
        |    | -human_02:&lt;br /&gt;
        |    |    | -bandit:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friendly_grenade&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -dolg:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -box&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -raid&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -ecolog:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy:&lt;br /&gt;
        |    |    |    |    |    | -aptechku&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -freedom:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -box&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -killer:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friendly_grenade&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy:&lt;br /&gt;
        |    |    |    |    |    | -aptechku&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -military:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy:&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -monolith:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy:&lt;br /&gt;
        |    |    |    |    |    | -aptechku&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -newbie&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -box&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    | -stalker&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -box&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    | -zombied&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -rising&lt;br /&gt;
        |    | -human_03:&lt;br /&gt;
        |    |    | -bandit:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friendly_grenade&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -dolg:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -box&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -raid&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -ecolog:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy:&lt;br /&gt;
        |    |    |    |    |    | -aptechku&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -freedom:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -box&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -killer:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friendly_grenade&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy:&lt;br /&gt;
        |    |    |    |    |    | -aptechku&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -military:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy:&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -monolith:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy:&lt;br /&gt;
        |    |    |    |    |    | -aptechku&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -newbie&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -box&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    | -stalker&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -box&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== gamedata.db5 ==&lt;br /&gt;
&lt;br /&gt;
     -sounds:&lt;br /&gt;
        | -characters_voice:&lt;br /&gt;
        |    | -human_03:&lt;br /&gt;
        |    |    | -stalker:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -box&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -raid&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -zombied:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -rising&lt;br /&gt;
        | -detectors&lt;br /&gt;
        | -device:&lt;br /&gt;
        |    | -pda&lt;br /&gt;
        | -heart&lt;br /&gt;
        | -helicopter&lt;br /&gt;
        | -interface&lt;br /&gt;
        | -intro&lt;br /&gt;
        | -material:&lt;br /&gt;
        |    | -actor:&lt;br /&gt;
        |    |    | -step&lt;br /&gt;
        |    | -barrel:&lt;br /&gt;
        |    |    | -collide&lt;br /&gt;
        |    | -bottle:&lt;br /&gt;
        |    |    | -collide&lt;br /&gt;
        |    | -bullet:&lt;br /&gt;
        |    |    | -collide&lt;br /&gt;
        |    | -dead-body:&lt;br /&gt;
        |    |    | -collide&lt;br /&gt;
        |    | -glass&lt;br /&gt;
        |    | -hoof:&lt;br /&gt;
        |    |    | -step&lt;br /&gt;
        |    | -human:&lt;br /&gt;
        |    |    | -collide&lt;br /&gt;
        |    |    | -step&lt;br /&gt;
        |    | -large&lt;br /&gt;
        |    | -large_furniture&lt;br /&gt;
        |    | -large_metal_trash:&lt;br /&gt;
        |    |    | -collide&lt;br /&gt;
        |    | -large-weapon:&lt;br /&gt;
        |    |    | -collide&lt;br /&gt;
        |    | -medium&lt;br /&gt;
        |    | -metal_box:&lt;br /&gt;
        |    |    | -collide&lt;br /&gt;
        |    | -small-weapon:&lt;br /&gt;
        |    |    | -collide&lt;br /&gt;
        |    | -wood&lt;br /&gt;
        | -messages:&lt;br /&gt;
        |    | -multiplayer&lt;br /&gt;
        | -monsters:&lt;br /&gt;
        |    | -biting&lt;br /&gt;
        |    | -bloodsucker&lt;br /&gt;
        |    | -boar&lt;br /&gt;
        |    | -burer&lt;br /&gt;
        |    | -controller&lt;br /&gt;
        |    | -crow&lt;br /&gt;
        |    | -dog&lt;br /&gt;
        |    | -flesh&lt;br /&gt;
        |    | -giant&lt;br /&gt;
        |    | -human:&lt;br /&gt;
        |    |    | -combat:&lt;br /&gt;
        |    |    |    | -rus&lt;br /&gt;
        |    |    |    | -ukr&lt;br /&gt;
        |    |    |    | -ukr2&lt;br /&gt;
        |    | -poltergeist&lt;br /&gt;
        |    | -pseudodog&lt;br /&gt;
        |    | -rat&lt;br /&gt;
        |    | -snork&lt;br /&gt;
        |    | -stalker:&lt;br /&gt;
        |    |    | -combat&lt;br /&gt;
        |    |    | -death&lt;br /&gt;
        |    |    | -hiccup&lt;br /&gt;
        |    |    | -humming&lt;br /&gt;
        |    |    | -surrender&lt;br /&gt;
        |    |    | -wound&lt;br /&gt;
        |    | -tushkano&lt;br /&gt;
        |    | -zombie&lt;br /&gt;
        | -mp_actor&lt;br /&gt;
        | -music:&lt;br /&gt;
        |    | -save&lt;br /&gt;
        | -nature&lt;br /&gt;
        | -scripts:&lt;br /&gt;
        |    | -door_crash&lt;br /&gt;
        |    | -m_gameplay&lt;br /&gt;
        |    | -magnitofon&lt;br /&gt;
        | -script_replics:&lt;br /&gt;
        |    | -bandit_1:&lt;br /&gt;
        |    |    | -alarm&lt;br /&gt;
        |    |    | -combat&lt;br /&gt;
        |    |    | -idle&lt;br /&gt;
        |    |    | -replics&lt;br /&gt;
        |    | -comandir_1:&lt;br /&gt;
        |    |    | -drunk&lt;br /&gt;
        |    |    | -normal&lt;br /&gt;
        |    | -megafon:&lt;br /&gt;
        |    |    | -alarm&lt;br /&gt;
        |    |    | -comandir&lt;br /&gt;
        |    |    | -music&lt;br /&gt;
        |    | -military:&lt;br /&gt;
        |    |    | -replics&lt;br /&gt;
        |    | -radio:&lt;br /&gt;
        |    |    | -commander&lt;br /&gt;
        |    |    | -message&lt;br /&gt;
        |    | -soldier_1:&lt;br /&gt;
        |    |    | -alarm&lt;br /&gt;
        |    |    | -combat&lt;br /&gt;
        |    |    | -hear_something&lt;br /&gt;
        |    |    | -idle&lt;br /&gt;
        |    |    | -replics&lt;br /&gt;
        |    |    | -search_enemy&lt;br /&gt;
        |    | -stalker_1:&lt;br /&gt;
        |    |    | -newbie&lt;br /&gt;
        |    |    | -talk&lt;br /&gt;
        |    |    | -trade&lt;br /&gt;
        |    |    | -wound&lt;br /&gt;
        |    | -trader&lt;br /&gt;
        |    | -zombie:&lt;br /&gt;
        |    |    | -stalker_zombie&lt;br /&gt;
        | -script_sound:&lt;br /&gt;
        |    | -hail:&lt;br /&gt;
        |    |    | -soldier&lt;br /&gt;
        |    | -help:&lt;br /&gt;
        |    |    | -soldier&lt;br /&gt;
        |    | -reactions:&lt;br /&gt;
        |    |    | -dead_enemy:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -dead_friend:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -dead_mutant:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -dead_neutral:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -enemy:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -friendly_fire:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -hear_something:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -mutants:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -nothing:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -search_enemy:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -see_something:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    | -states:&lt;br /&gt;
        |    |    | -fatique:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -health:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -idle:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -sleep:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -starvation:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    | -talk:&lt;br /&gt;
        |    |    | -abuse&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -accept&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -greeting&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -leave&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -rejection&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -replics&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -trade&lt;br /&gt;
        |    |    |    | -no:&lt;br /&gt;
        |    |    |    |    | -soldier&lt;br /&gt;
        |    |    |    | -yes:&lt;br /&gt;
        |    |    |    |    | -soldier&lt;br /&gt;
        |    | -threat:&lt;br /&gt;
        |    |    | -backoff:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -drop_weapon:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -stop:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    | -waiting:&lt;br /&gt;
        |    |    | -soldier&lt;br /&gt;
        |    | -weather:&lt;br /&gt;
        |    |    | -bad:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -good:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        | -weapons&lt;br /&gt;
     -spawns&lt;br /&gt;
     -textures:&lt;br /&gt;
        | -act&lt;br /&gt;
        | -andy&lt;br /&gt;
        | -artifact&lt;br /&gt;
        | -car&lt;br /&gt;
        | -controller&lt;br /&gt;
        | -corp&lt;br /&gt;
        | -crete&lt;br /&gt;
        | -det&lt;br /&gt;
        | -detail&lt;br /&gt;
        | -door&lt;br /&gt;
        | -ed&lt;br /&gt;
        | -effects&lt;br /&gt;
        | -fbr&lt;br /&gt;
        | -flare&lt;br /&gt;
        | -fonts&lt;br /&gt;
        | -fx&lt;br /&gt;
        | -glas&lt;br /&gt;
        | -glow&lt;br /&gt;
        | -gr&lt;br /&gt;
        | -grnd&lt;br /&gt;
        | -hud&lt;br /&gt;
        | -human&lt;br /&gt;
        | -icon&lt;br /&gt;
        | -internal&lt;br /&gt;
        | -intro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== gamedata.db6 ==&lt;br /&gt;
&lt;br /&gt;
     -textures:&lt;br /&gt;
        | -intro&lt;br /&gt;
        | -item&lt;br /&gt;
        | -jeffry&lt;br /&gt;
        | -level&lt;br /&gt;
        | -lights&lt;br /&gt;
        | -map&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== gamedata.db7 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     -textures:&lt;br /&gt;
        | -mtl&lt;br /&gt;
        | -pda&lt;br /&gt;
        | -pfx&lt;br /&gt;
        | -prop&lt;br /&gt;
        | -sign&lt;br /&gt;
        | -sky:&lt;br /&gt;
        |    | -old&lt;br /&gt;
        | -sleep&lt;br /&gt;
        | -ston&lt;br /&gt;
        | -temp&lt;br /&gt;
        | -terrain&lt;br /&gt;
        | -tree&lt;br /&gt;
        | -trees&lt;br /&gt;
        | -ui:&lt;br /&gt;
        |    | -eng_pda&lt;br /&gt;
        |    | -rus_pda&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== gamedata.db8 ==&lt;br /&gt;
&lt;br /&gt;
     -textures:&lt;br /&gt;
        | -ui&lt;br /&gt;
        | -veh&lt;br /&gt;
        | -water&lt;br /&gt;
        | -wind&lt;br /&gt;
        | -wm&lt;br /&gt;
        | -wood&lt;br /&gt;
        | -wpn&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== gamedata.db9 ==&lt;br /&gt;
&lt;br /&gt;
     -config:&lt;br /&gt;
        | -misc&lt;br /&gt;
        | -text:&lt;br /&gt;
        |    | -rus&lt;br /&gt;
        | -ui&lt;br /&gt;
     -sounds:&lt;br /&gt;
        | -characters_voice:&lt;br /&gt;
        |    | -dialogs&lt;br /&gt;
        |    | -multiplayer:&lt;br /&gt;
        |    |    | -automatic&lt;br /&gt;
        |    |    | -team_1&lt;br /&gt;
        |    |    | -team_2&lt;br /&gt;
        |    | -scenario:&lt;br /&gt;
        |    |    | -aes:&lt;br /&gt;
        |    |    |    | -aes2&lt;br /&gt;
        |    |    | -agroprom&lt;br /&gt;
        |    |    | -army_commander:&lt;br /&gt;
        |    |    |    | -drunk&lt;br /&gt;
        |    |    |    | -normal&lt;br /&gt;
        |    |    | -bandits&lt;br /&gt;
        |    |    | -bar:&lt;br /&gt;
        |    |    |    | -arena_megafon&lt;br /&gt;
        |    |    |    | -arena_public&lt;br /&gt;
        |    |    |    | -arena_sound&lt;br /&gt;
        |    |    |    | -barman&lt;br /&gt;
        |    |    |    | -barman_megafon&lt;br /&gt;
        |    |    |    | -bar_guard&lt;br /&gt;
        |    |    |    | -bar_hunter&lt;br /&gt;
        |    |    |    | -bar_informer&lt;br /&gt;
        |    |    |    | -bar_veteran&lt;br /&gt;
        |    |    |    | -bar_visitor&lt;br /&gt;
        |    |    |    | -dolg_guard&lt;br /&gt;
        |    |    |    | -dolg_megafon&lt;br /&gt;
        |    |    |    | -dolg_petrenko&lt;br /&gt;
        |    |    |    | -dolg_voronin&lt;br /&gt;
        |    |    |    | -pda&lt;br /&gt;
        |    |    |    | -psycho&lt;br /&gt;
        |    |    |    | -radio_music&lt;br /&gt;
        |    |    | -bun&lt;br /&gt;
        |    |    | -camp&lt;br /&gt;
        |    |    | -cit&lt;br /&gt;
        |    |    | -darkscape&lt;br /&gt;
        |    |    | -dramatic_garbage&lt;br /&gt;
        |    |    | -duty&lt;br /&gt;
        |    |    | -escape&lt;br /&gt;
        |    |    | -garbage&lt;br /&gt;
        |    |    | -guard_novice_camp&lt;br /&gt;
        |    |    | -gunslinger&lt;br /&gt;
        |    |    | -helicopter&lt;br /&gt;
        |    |    | -magnitofon&lt;br /&gt;
        |    |    | -megafon&lt;br /&gt;
        |    |    | -military:&lt;br /&gt;
        |    |    |    | -after_attack&lt;br /&gt;
        |    |    |    | -before_collect&lt;br /&gt;
        |    |    |    | -collect&lt;br /&gt;
        |    |    |    | -controller&lt;br /&gt;
        |    |    |    | -crazy&lt;br /&gt;
        |    |    |    | -dolg_attack:&lt;br /&gt;
        |    |    |    |    | -base&lt;br /&gt;
        |    |    |    | -dolg_kill_patrol&lt;br /&gt;
        |    |    |    | -freedom_base&lt;br /&gt;
        |    |    |    | -khutor_attack&lt;br /&gt;
        |    |    |    | -lukash&lt;br /&gt;
        |    |    |    | -pavlik_morozov&lt;br /&gt;
        |    |    |    | -pda&lt;br /&gt;
        |    |    | -military_stalker&lt;br /&gt;
        |    |    | -newbie_on_garbage&lt;br /&gt;
        |    |    | -osoznanie&lt;br /&gt;
        |    |    | -pri&lt;br /&gt;
        |    |    | -radar:&lt;br /&gt;
        |    |    |    | -entrance&lt;br /&gt;
        |    |    | -radio:&lt;br /&gt;
        |    |    |    | -radio_commander&lt;br /&gt;
        |    |    |    | -talk_1&lt;br /&gt;
        |    |    | -rostok:&lt;br /&gt;
        |    |    |    | -heli_crush&lt;br /&gt;
        |    |    | -sarcofag&lt;br /&gt;
        |    |    | -scared_stalker_underground&lt;br /&gt;
        |    |    | -tolik&lt;br /&gt;
        |    |    | -trader&lt;br /&gt;
        |    |    | -tramp&lt;br /&gt;
        |    |    | -val:&lt;br /&gt;
        |    |    |    | -ambush&lt;br /&gt;
        |    |    |    | -bs_fall&lt;br /&gt;
        |    |    |    | -escort&lt;br /&gt;
        |    |    |    | -monolith&lt;br /&gt;
        |    |    |    | -prisoner&lt;br /&gt;
        |    |    |    | -rob&lt;br /&gt;
        |    |    |    | -sacrifice&lt;br /&gt;
        |    |    |    | -suicide&lt;br /&gt;
        |    |    | -video&lt;br /&gt;
        |    |    | -wolf&lt;br /&gt;
        |    |    | -wounded_veteran_escape&lt;br /&gt;
        |    |    | -yantar&lt;br /&gt;
        |    |    | -zombied_stalker&lt;br /&gt;
&lt;br /&gt;
[[Категория:Справочники]]&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%BE%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%BC%D0%BE%D0%B5_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2_gamedata.db*</id>
		<title>Содержимое файлов gamedata.db*</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%BE%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%BC%D0%BE%D0%B5_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2_gamedata.db*"/>
				<updated>2007-06-08T08:36:59Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== gamedata.db0 ==&lt;br /&gt;
&lt;br /&gt;
     -ai:&lt;br /&gt;
        | -alife&lt;br /&gt;
        | -common&lt;br /&gt;
     -anims:&lt;br /&gt;
        | -camera_effects&lt;br /&gt;
        | -editor&lt;br /&gt;
        | -helicopter&lt;br /&gt;
        | -path&lt;br /&gt;
     -config:&lt;br /&gt;
        | -creatures&lt;br /&gt;
        | -gameplay&lt;br /&gt;
        | -misc&lt;br /&gt;
        | -models:&lt;br /&gt;
        |    | -capture&lt;br /&gt;
        |    | -objects&lt;br /&gt;
        |    | -vehicles&lt;br /&gt;
        |    | -weapons&lt;br /&gt;
        | -mp:&lt;br /&gt;
        |    | -soundmessages&lt;br /&gt;
        |    | -weapons_mp&lt;br /&gt;
        | -prefetch&lt;br /&gt;
        | -scripts:&lt;br /&gt;
        |    | -agr&lt;br /&gt;
        |    | -cit&lt;br /&gt;
        |    | -dar&lt;br /&gt;
        |    | -ds&lt;br /&gt;
        |    | -mil&lt;br /&gt;
        |    | -pri&lt;br /&gt;
        |    | -rad&lt;br /&gt;
        |    | -val&lt;br /&gt;
        |    | -yan&lt;br /&gt;
        | -text:&lt;br /&gt;
        |    | -map_desc&lt;br /&gt;
        | -ui&lt;br /&gt;
        | -weapons&lt;br /&gt;
        | -weathers&lt;br /&gt;
     -levels:&lt;br /&gt;
        | -l01_escape:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -l02_garbage:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -l03_agroprom:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -l03u_agr_underground&lt;br /&gt;
        | -l04_darkvalley:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -l04u_labx18&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== gamedata.db1 ==&lt;br /&gt;
&lt;br /&gt;
     -levels:&lt;br /&gt;
        | -l04u_labx18:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        | -l05_bar:&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -l06_rostok:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -l07_military:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -l08_yantar:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -l08u_brainlab:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        | -l10_radar&lt;br /&gt;
&lt;br /&gt;
== gamedata.db2 ==&lt;br /&gt;
&lt;br /&gt;
     -levels:&lt;br /&gt;
        | -l10_radar:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -l10u_bunker&lt;br /&gt;
        | -l11_pripyat:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -l12_stancia:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -l12_stancia_2&lt;br /&gt;
&lt;br /&gt;
== gamedata.db3 ==&lt;br /&gt;
&lt;br /&gt;
     -levels:&lt;br /&gt;
        | -l12_stancia_2:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -l12u_control_monolith&lt;br /&gt;
        | -l12u_sarcofag&lt;br /&gt;
        | -testers_mp_agroprom:&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -testers_mp_atp:&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -testers_mp_bath:&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -testers_mp_darkvalley:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -testers_mp_factory:&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -testers_mp_lost_village:&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -testers_mp_military_1:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -testers_mp_military_2:&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -testers_mp_pool&lt;br /&gt;
        | -testers_mp_railroad:&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -testers_mp_rostok&lt;br /&gt;
&lt;br /&gt;
== gamedata.db4 ==&lt;br /&gt;
&lt;br /&gt;
     -levels:&lt;br /&gt;
        | -testers_mp_rostok:&lt;br /&gt;
        |    | -meshes&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
        | -testers_mp_workshop:&lt;br /&gt;
        |    | -terrain&lt;br /&gt;
     -meshes:&lt;br /&gt;
        | -actors:&lt;br /&gt;
        |    | -bandit&lt;br /&gt;
        |    | -barman&lt;br /&gt;
        |    | -dolg&lt;br /&gt;
        |    | -ecolog&lt;br /&gt;
        |    | -hero&lt;br /&gt;
        |    | -izgoy&lt;br /&gt;
        |    | -killer&lt;br /&gt;
        |    | -militari&lt;br /&gt;
        |    | -monolit&lt;br /&gt;
        |    | -nauchniy&lt;br /&gt;
        |    | -neytral&lt;br /&gt;
        |    | -novice&lt;br /&gt;
        |    | -protect&lt;br /&gt;
        |    | -soldier&lt;br /&gt;
        |    | -stalker_mp&lt;br /&gt;
        |    | -stalker_zombi&lt;br /&gt;
        |    | -svoboda&lt;br /&gt;
        |    | -trader&lt;br /&gt;
        |    | -ucheniy&lt;br /&gt;
        | -dm&lt;br /&gt;
        | -equipments&lt;br /&gt;
        | -food&lt;br /&gt;
        | -monsters:&lt;br /&gt;
        |    | -burer&lt;br /&gt;
        |    | -cat&lt;br /&gt;
        |    | -chimera&lt;br /&gt;
        |    | -crow&lt;br /&gt;
        |    | -dark_stalker&lt;br /&gt;
        |    | -dog&lt;br /&gt;
        |    | -flesh&lt;br /&gt;
        |    | -izlom&lt;br /&gt;
        |    | -kontroler&lt;br /&gt;
        |    | -krovosos&lt;br /&gt;
        |    | -mutant_boar&lt;br /&gt;
        |    | -phantom&lt;br /&gt;
        |    | -poltergeist&lt;br /&gt;
        |    | -pseudodog&lt;br /&gt;
        |    | -psevdogigant&lt;br /&gt;
        |    | -rat&lt;br /&gt;
        |    | -snork&lt;br /&gt;
        |    | -stalker_zombi&lt;br /&gt;
        |    | -topolinypuh&lt;br /&gt;
        |    | -tushkano&lt;br /&gt;
        |    | -zombi&lt;br /&gt;
        | -objects:&lt;br /&gt;
        |    | -dynamics:&lt;br /&gt;
        |    |    | -balon&lt;br /&gt;
        |    |    | -bed&lt;br /&gt;
        |    |    | -box:&lt;br /&gt;
        |    |    |    | -prt&lt;br /&gt;
        |    |    | -chair&lt;br /&gt;
        |    |    | -decor&lt;br /&gt;
        |    |    | -plitka&lt;br /&gt;
        | -physics:&lt;br /&gt;
        |    | -anomaly&lt;br /&gt;
        |    | -balon&lt;br /&gt;
        |    | -box:&lt;br /&gt;
        |    |    | -prt&lt;br /&gt;
        |    | -dead_body&lt;br /&gt;
        |    | -decor:&lt;br /&gt;
        |    |    | -prt&lt;br /&gt;
        |    | -door:&lt;br /&gt;
        |    |    | -prt&lt;br /&gt;
        |    | -equipment_cache&lt;br /&gt;
        |    | -keyboard&lt;br /&gt;
        |    | -krovati&lt;br /&gt;
        |    | -large_trash:&lt;br /&gt;
        |    |    | -prt&lt;br /&gt;
        |    | -light:&lt;br /&gt;
        |    |    | -new_light&lt;br /&gt;
        |    | -rope&lt;br /&gt;
        |    | -shkaf&lt;br /&gt;
        |    | -small_trash:&lt;br /&gt;
        |    |    | -prt&lt;br /&gt;
        |    | -stol&lt;br /&gt;
        |    | -stul&lt;br /&gt;
        |    | -target&lt;br /&gt;
        |    | -technica&lt;br /&gt;
        |    | -test:&lt;br /&gt;
        |    |    | -old&lt;br /&gt;
        |    | -vehicles:&lt;br /&gt;
        |    |    | -btr&lt;br /&gt;
        |    |    | -kamaz:&lt;br /&gt;
        |    |    |    | -old&lt;br /&gt;
        |    |    | -mi24:&lt;br /&gt;
        |    |    |    | -part&lt;br /&gt;
        |    |    | -moskvich&lt;br /&gt;
        |    |    | -niva&lt;br /&gt;
        |    |    | -tr13&lt;br /&gt;
        |    |    | -uaz&lt;br /&gt;
        |    |    | -zaz&lt;br /&gt;
        |    | -zabor:&lt;br /&gt;
        |    |    | -prt&lt;br /&gt;
        | -weapons:&lt;br /&gt;
        |    | -abakan&lt;br /&gt;
        |    | -ak-74u&lt;br /&gt;
        |    | -ak74&lt;br /&gt;
        |    | -ammo&lt;br /&gt;
        |    | -aptechka&lt;br /&gt;
        |    | -artefact&lt;br /&gt;
        |    | -bandage&lt;br /&gt;
        |    | -beretta92fs&lt;br /&gt;
        |    | -binoculars&lt;br /&gt;
        |    | -bm_16&lt;br /&gt;
        |    | -bolt&lt;br /&gt;
        |    | -bred&lt;br /&gt;
        |    | -colt1911&lt;br /&gt;
        |    | -desert_eagle&lt;br /&gt;
        |    | -fn2000&lt;br /&gt;
        |    | -fort&lt;br /&gt;
        |    | -g36&lt;br /&gt;
        |    | -gauss&lt;br /&gt;
        |    | -grenade&lt;br /&gt;
        |    | -groza&lt;br /&gt;
        |    | -hpsa&lt;br /&gt;
        |    | -knife&lt;br /&gt;
        |    | -kolbasa&lt;br /&gt;
        |    | -l85&lt;br /&gt;
        |    | -lr300&lt;br /&gt;
        |    | -mounted_weapons&lt;br /&gt;
        |    | -mp5&lt;br /&gt;
        |    | -p90&lt;br /&gt;
        |    | -pb&lt;br /&gt;
        |    | -pm&lt;br /&gt;
        |    | -rg-6&lt;br /&gt;
        |    | -rpg_7&lt;br /&gt;
        |    | -sig220&lt;br /&gt;
        |    | -sig550&lt;br /&gt;
        |    | -sigaret&lt;br /&gt;
        |    | -spas12&lt;br /&gt;
        |    | -svd&lt;br /&gt;
        |    | -svu&lt;br /&gt;
        |    | -toz34&lt;br /&gt;
        |    | -upgrade&lt;br /&gt;
        |    | -usp_45&lt;br /&gt;
        |    | -val&lt;br /&gt;
        |    | -vintorez&lt;br /&gt;
        |    | -vodka&lt;br /&gt;
        |    | -walter_99&lt;br /&gt;
        |    | -winchester1300&lt;br /&gt;
     -scripts&lt;br /&gt;
     -shaders:&lt;br /&gt;
        | -r1:&lt;br /&gt;
        |    | -shared&lt;br /&gt;
        | -r2:&lt;br /&gt;
        |    | -shared&lt;br /&gt;
        |    | -test&lt;br /&gt;
        | -shared&lt;br /&gt;
     -sounds:&lt;br /&gt;
        | -actor&lt;br /&gt;
        | -affects&lt;br /&gt;
        | -alexmx&lt;br /&gt;
        | -ambient:&lt;br /&gt;
        |    | -arena&lt;br /&gt;
        |    | -bar&lt;br /&gt;
        |    | -indoors&lt;br /&gt;
        |    | -random&lt;br /&gt;
        |    | -rnd_outdoor&lt;br /&gt;
        |    | -underground&lt;br /&gt;
        |    | -x16&lt;br /&gt;
        |    | -x18&lt;br /&gt;
        | -anomaly&lt;br /&gt;
        | -car&lt;br /&gt;
        | -characters_voice:&lt;br /&gt;
        |    | -human_01:&lt;br /&gt;
        |    |    | -bandit:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friendly_grenade&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -dolg:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -box&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -raid&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -ecolog:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy:&lt;br /&gt;
        |    |    |    |    |    | -aptechku&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -freedom:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -box&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -killer:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friendly_grenade&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy:&lt;br /&gt;
        |    |    |    |    |    | -aptechku&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -military:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy:&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -monolith:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy:&lt;br /&gt;
        |    |    |    |    |    | -aptechku&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -newbie&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -box&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    | -stalker&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -box&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    | -zombied&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -rising&lt;br /&gt;
        |    | -human_02:&lt;br /&gt;
        |    |    | -bandit:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friendly_grenade&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -dolg:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -box&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -raid&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -ecolog:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy:&lt;br /&gt;
        |    |    |    |    |    | -aptechku&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -freedom:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -box&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -killer:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friendly_grenade&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy:&lt;br /&gt;
        |    |    |    |    |    | -aptechku&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -military:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy:&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -monolith:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy:&lt;br /&gt;
        |    |    |    |    |    | -aptechku&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -newbie&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -box&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    | -stalker&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -box&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    | -zombied&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -rising&lt;br /&gt;
        |    | -human_03:&lt;br /&gt;
        |    |    | -bandit:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friendly_grenade&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -dolg:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -box&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -raid&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -ecolog:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy:&lt;br /&gt;
        |    |    |    |    |    | -aptechku&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -freedom:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -box&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -killer:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friendly_grenade&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy:&lt;br /&gt;
        |    |    |    |    |    | -aptechku&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -military:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy:&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -monolith:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy:&lt;br /&gt;
        |    |    |    |    |    | -aptechku&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -newbie&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -box&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    | -stalker&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -box&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== gamedata.db5 ==&lt;br /&gt;
&lt;br /&gt;
     -sounds:&lt;br /&gt;
        | -characters_voice:&lt;br /&gt;
        |    | -human_03:&lt;br /&gt;
        |    |    | -stalker:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -backup&lt;br /&gt;
        |    |    |    |    | -cover_fire&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -detour&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -enemy_down&lt;br /&gt;
        |    |    |    |    | -enemy_hit&lt;br /&gt;
        |    |    |    |    | -fire&lt;br /&gt;
        |    |    |    |    | -friendly_fire&lt;br /&gt;
        |    |    |    |    | -friend_hitted&lt;br /&gt;
        |    |    |    |    | -grenade&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    |    | -searching_enemy&lt;br /&gt;
        |    |    |    |    | -threat&lt;br /&gt;
        |    |    |    |    | -tolls&lt;br /&gt;
        |    |    |    | -hail&lt;br /&gt;
        |    |    |    | -help:&lt;br /&gt;
        |    |    |    |    | -not_wounded&lt;br /&gt;
        |    |    |    |    | -wounded&lt;br /&gt;
        |    |    |    |    | -wounded_heavy&lt;br /&gt;
        |    |    |    |    | -wounded_not_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_psy&lt;br /&gt;
        |    |    |    |    | -wounded_see_helper&lt;br /&gt;
        |    |    |    |    | -wounded_thanx&lt;br /&gt;
        |    |    |    | -music&lt;br /&gt;
        |    |    |    | -reactions:&lt;br /&gt;
        |    |    |    |    | -box&lt;br /&gt;
        |    |    |    |    | -dead_enemy&lt;br /&gt;
        |    |    |    |    | -dead_friend&lt;br /&gt;
        |    |    |    |    | -dead_mutant&lt;br /&gt;
        |    |    |    |    | -dead_neutral&lt;br /&gt;
        |    |    |    |    | -hear_something&lt;br /&gt;
        |    |    |    |    | -joke&lt;br /&gt;
        |    |    |    |    | -music&lt;br /&gt;
        |    |    |    |    | -nothing&lt;br /&gt;
        |    |    |    |    | -raid&lt;br /&gt;
        |    |    |    |    | -see_something&lt;br /&gt;
        |    |    |    |    | -story&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -breath&lt;br /&gt;
        |    |    |    |    | -fatique&lt;br /&gt;
        |    |    |    |    | -health&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -panic_human&lt;br /&gt;
        |    |    |    |    | -panic_monster&lt;br /&gt;
        |    |    |    |    | -radiation&lt;br /&gt;
        |    |    |    |    | -sleep&lt;br /&gt;
        |    |    |    |    | -starvation&lt;br /&gt;
        |    |    |    | -talk:&lt;br /&gt;
        |    |    |    |    | -abuse&lt;br /&gt;
        |    |    |    |    | -accept&lt;br /&gt;
        |    |    |    |    | -friendly_greeting&lt;br /&gt;
        |    |    |    |    | -intros&lt;br /&gt;
        |    |    |    |    | -jokes&lt;br /&gt;
        |    |    |    |    | -leave&lt;br /&gt;
        |    |    |    |    | -neutral_greeting&lt;br /&gt;
        |    |    |    |    | -raid:&lt;br /&gt;
        |    |    |    |    |    | -init&lt;br /&gt;
        |    |    |    |    |    | -reaction&lt;br /&gt;
        |    |    |    |    | -rejection&lt;br /&gt;
        |    |    |    |    | -stories&lt;br /&gt;
        |    |    |    |    | -trade:&lt;br /&gt;
        |    |    |    |    |    | -no&lt;br /&gt;
        |    |    |    |    |    | -yes&lt;br /&gt;
        |    |    |    |    | -use&lt;br /&gt;
        |    |    |    | -threat:&lt;br /&gt;
        |    |    |    |    | -back_off&lt;br /&gt;
        |    |    |    |    | -drop_weapon&lt;br /&gt;
        |    |    |    |    | -stop&lt;br /&gt;
        |    |    |    | -waiting:&lt;br /&gt;
        |    |    |    |    | -moveout&lt;br /&gt;
        |    |    | -zombied:&lt;br /&gt;
        |    |    |    | -fight:&lt;br /&gt;
        |    |    |    |    | -attack&lt;br /&gt;
        |    |    |    |    | -death&lt;br /&gt;
        |    |    |    |    | -enemy&lt;br /&gt;
        |    |    |    |    | -hit&lt;br /&gt;
        |    |    |    | -states:&lt;br /&gt;
        |    |    |    |    | -idle&lt;br /&gt;
        |    |    |    |    | -rising&lt;br /&gt;
        | -detectors&lt;br /&gt;
        | -device:&lt;br /&gt;
        |    | -pda&lt;br /&gt;
        | -heart&lt;br /&gt;
        | -helicopter&lt;br /&gt;
        | -interface&lt;br /&gt;
        | -intro&lt;br /&gt;
        | -material:&lt;br /&gt;
        |    | -actor:&lt;br /&gt;
        |    |    | -step&lt;br /&gt;
        |    | -barrel:&lt;br /&gt;
        |    |    | -collide&lt;br /&gt;
        |    | -bottle:&lt;br /&gt;
        |    |    | -collide&lt;br /&gt;
        |    | -bullet:&lt;br /&gt;
        |    |    | -collide&lt;br /&gt;
        |    | -dead-body:&lt;br /&gt;
        |    |    | -collide&lt;br /&gt;
        |    | -glass&lt;br /&gt;
        |    | -hoof:&lt;br /&gt;
        |    |    | -step&lt;br /&gt;
        |    | -human:&lt;br /&gt;
        |    |    | -collide&lt;br /&gt;
        |    |    | -step&lt;br /&gt;
        |    | -large&lt;br /&gt;
        |    | -large_furniture&lt;br /&gt;
        |    | -large_metal_trash:&lt;br /&gt;
        |    |    | -collide&lt;br /&gt;
        |    | -large-weapon:&lt;br /&gt;
        |    |    | -collide&lt;br /&gt;
        |    | -medium&lt;br /&gt;
        |    | -metal_box:&lt;br /&gt;
        |    |    | -collide&lt;br /&gt;
        |    | -small-weapon:&lt;br /&gt;
        |    |    | -collide&lt;br /&gt;
        |    | -wood&lt;br /&gt;
        | -messages:&lt;br /&gt;
        |    | -multiplayer&lt;br /&gt;
        | -monsters:&lt;br /&gt;
        |    | -biting&lt;br /&gt;
        |    | -bloodsucker&lt;br /&gt;
        |    | -boar&lt;br /&gt;
        |    | -burer&lt;br /&gt;
        |    | -controller&lt;br /&gt;
        |    | -crow&lt;br /&gt;
        |    | -dog&lt;br /&gt;
        |    | -flesh&lt;br /&gt;
        |    | -giant&lt;br /&gt;
        |    | -human:&lt;br /&gt;
        |    |    | -combat:&lt;br /&gt;
        |    |    |    | -rus&lt;br /&gt;
        |    |    |    | -ukr&lt;br /&gt;
        |    |    |    | -ukr2&lt;br /&gt;
        |    | -poltergeist&lt;br /&gt;
        |    | -pseudodog&lt;br /&gt;
        |    | -rat&lt;br /&gt;
        |    | -snork&lt;br /&gt;
        |    | -stalker:&lt;br /&gt;
        |    |    | -combat&lt;br /&gt;
        |    |    | -death&lt;br /&gt;
        |    |    | -hiccup&lt;br /&gt;
        |    |    | -humming&lt;br /&gt;
        |    |    | -surrender&lt;br /&gt;
        |    |    | -wound&lt;br /&gt;
        |    | -tushkano&lt;br /&gt;
        |    | -zombie&lt;br /&gt;
        | -mp_actor&lt;br /&gt;
        | -music:&lt;br /&gt;
        |    | -save&lt;br /&gt;
        | -nature&lt;br /&gt;
        | -scripts:&lt;br /&gt;
        |    | -door_crash&lt;br /&gt;
        |    | -m_gameplay&lt;br /&gt;
        |    | -magnitofon&lt;br /&gt;
        | -script_replics:&lt;br /&gt;
        |    | -bandit_1:&lt;br /&gt;
        |    |    | -alarm&lt;br /&gt;
        |    |    | -combat&lt;br /&gt;
        |    |    | -idle&lt;br /&gt;
        |    |    | -replics&lt;br /&gt;
        |    | -comandir_1:&lt;br /&gt;
        |    |    | -drunk&lt;br /&gt;
        |    |    | -normal&lt;br /&gt;
        |    | -megafon:&lt;br /&gt;
        |    |    | -alarm&lt;br /&gt;
        |    |    | -comandir&lt;br /&gt;
        |    |    | -music&lt;br /&gt;
        |    | -military:&lt;br /&gt;
        |    |    | -replics&lt;br /&gt;
        |    | -radio:&lt;br /&gt;
        |    |    | -commander&lt;br /&gt;
        |    |    | -message&lt;br /&gt;
        |    | -soldier_1:&lt;br /&gt;
        |    |    | -alarm&lt;br /&gt;
        |    |    | -combat&lt;br /&gt;
        |    |    | -hear_something&lt;br /&gt;
        |    |    | -idle&lt;br /&gt;
        |    |    | -replics&lt;br /&gt;
        |    |    | -search_enemy&lt;br /&gt;
        |    | -stalker_1:&lt;br /&gt;
        |    |    | -newbie&lt;br /&gt;
        |    |    | -talk&lt;br /&gt;
        |    |    | -trade&lt;br /&gt;
        |    |    | -wound&lt;br /&gt;
        |    | -trader&lt;br /&gt;
        |    | -zombie:&lt;br /&gt;
        |    |    | -stalker_zombie&lt;br /&gt;
        | -script_sound:&lt;br /&gt;
        |    | -hail:&lt;br /&gt;
        |    |    | -soldier&lt;br /&gt;
        |    | -help:&lt;br /&gt;
        |    |    | -soldier&lt;br /&gt;
        |    | -reactions:&lt;br /&gt;
        |    |    | -dead_enemy:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -dead_friend:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -dead_mutant:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -dead_neutral:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -enemy:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -friendly_fire:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -hear_something:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -mutants:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -nothing:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -search_enemy:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -see_something:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    | -states:&lt;br /&gt;
        |    |    | -fatique:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -health:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -idle:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -sleep:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -starvation:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    | -talk:&lt;br /&gt;
        |    |    | -abuse&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -accept&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -greeting&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -leave&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -rejection&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -replics&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -trade&lt;br /&gt;
        |    |    |    | -no:&lt;br /&gt;
        |    |    |    |    | -soldier&lt;br /&gt;
        |    |    |    | -yes:&lt;br /&gt;
        |    |    |    |    | -soldier&lt;br /&gt;
        |    | -threat:&lt;br /&gt;
        |    |    | -backoff:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -drop_weapon:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -stop:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    | -waiting:&lt;br /&gt;
        |    |    | -soldier&lt;br /&gt;
        |    | -weather:&lt;br /&gt;
        |    |    | -bad:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        |    |    | -good:&lt;br /&gt;
        |    |    |    | -soldier&lt;br /&gt;
        | -weapons&lt;br /&gt;
     -spawns&lt;br /&gt;
     -textures:&lt;br /&gt;
        | -act&lt;br /&gt;
        | -andy&lt;br /&gt;
        | -artifact&lt;br /&gt;
        | -car&lt;br /&gt;
        | -controller&lt;br /&gt;
        | -corp&lt;br /&gt;
        | -crete&lt;br /&gt;
        | -det&lt;br /&gt;
        | -detail&lt;br /&gt;
        | -door&lt;br /&gt;
        | -ed&lt;br /&gt;
        | -effects&lt;br /&gt;
        | -fbr&lt;br /&gt;
        | -flare&lt;br /&gt;
        | -fonts&lt;br /&gt;
        | -fx&lt;br /&gt;
        | -glas&lt;br /&gt;
        | -glow&lt;br /&gt;
        | -gr&lt;br /&gt;
        | -grnd&lt;br /&gt;
        | -hud&lt;br /&gt;
        | -human&lt;br /&gt;
        | -icon&lt;br /&gt;
        | -internal&lt;br /&gt;
        | -intro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== gamedata.db6 ==&lt;br /&gt;
&lt;br /&gt;
     -textures:&lt;br /&gt;
        | -intro&lt;br /&gt;
        | -item&lt;br /&gt;
        | -jeffry&lt;br /&gt;
        | -level&lt;br /&gt;
        | -lights&lt;br /&gt;
        | -map&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== gamedata.db7 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     -textures:&lt;br /&gt;
        | -mtl&lt;br /&gt;
        | -pda&lt;br /&gt;
        | -pfx&lt;br /&gt;
        | -prop&lt;br /&gt;
        | -sign&lt;br /&gt;
        | -sky:&lt;br /&gt;
        |    | -old&lt;br /&gt;
        | -sleep&lt;br /&gt;
        | -ston&lt;br /&gt;
        | -temp&lt;br /&gt;
        | -terrain&lt;br /&gt;
        | -tree&lt;br /&gt;
        | -trees&lt;br /&gt;
        | -ui:&lt;br /&gt;
        |    | -eng_pda&lt;br /&gt;
        |    | -rus_pda&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== gamedata.db8 ==&lt;br /&gt;
&lt;br /&gt;
     -textures:&lt;br /&gt;
        | -ui&lt;br /&gt;
        | -veh&lt;br /&gt;
        | -water&lt;br /&gt;
        | -wind&lt;br /&gt;
        | -wm&lt;br /&gt;
        | -wood&lt;br /&gt;
        | -wpn&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== gamedata.db9 ==&lt;br /&gt;
&lt;br /&gt;
     -config:&lt;br /&gt;
        | -misc&lt;br /&gt;
        | -text:&lt;br /&gt;
        |    | -rus&lt;br /&gt;
        | -ui&lt;br /&gt;
     -sounds:&lt;br /&gt;
        | -characters_voice:&lt;br /&gt;
        |    | -dialogs&lt;br /&gt;
        |    | -multiplayer:&lt;br /&gt;
        |    |    | -automatic&lt;br /&gt;
        |    |    | -team_1&lt;br /&gt;
        |    |    | -team_2&lt;br /&gt;
        |    | -scenario:&lt;br /&gt;
        |    |    | -aes:&lt;br /&gt;
        |    |    |    | -aes2&lt;br /&gt;
        |    |    | -agroprom&lt;br /&gt;
        |    |    | -army_commander:&lt;br /&gt;
        |    |    |    | -drunk&lt;br /&gt;
        |    |    |    | -normal&lt;br /&gt;
        |    |    | -bandits&lt;br /&gt;
        |    |    | -bar:&lt;br /&gt;
        |    |    |    | -arena_megafon&lt;br /&gt;
        |    |    |    | -arena_public&lt;br /&gt;
        |    |    |    | -arena_sound&lt;br /&gt;
        |    |    |    | -barman&lt;br /&gt;
        |    |    |    | -barman_megafon&lt;br /&gt;
        |    |    |    | -bar_guard&lt;br /&gt;
        |    |    |    | -bar_hunter&lt;br /&gt;
        |    |    |    | -bar_informer&lt;br /&gt;
        |    |    |    | -bar_veteran&lt;br /&gt;
        |    |    |    | -bar_visitor&lt;br /&gt;
        |    |    |    | -dolg_guard&lt;br /&gt;
        |    |    |    | -dolg_megafon&lt;br /&gt;
        |    |    |    | -dolg_petrenko&lt;br /&gt;
        |    |    |    | -dolg_voronin&lt;br /&gt;
        |    |    |    | -pda&lt;br /&gt;
        |    |    |    | -psycho&lt;br /&gt;
        |    |    |    | -radio_music&lt;br /&gt;
        |    |    | -bun&lt;br /&gt;
        |    |    | -camp&lt;br /&gt;
        |    |    | -cit&lt;br /&gt;
        |    |    | -darkscape&lt;br /&gt;
        |    |    | -dramatic_garbage&lt;br /&gt;
        |    |    | -duty&lt;br /&gt;
        |    |    | -escape&lt;br /&gt;
        |    |    | -garbage&lt;br /&gt;
        |    |    | -guard_novice_camp&lt;br /&gt;
        |    |    | -gunslinger&lt;br /&gt;
        |    |    | -helicopter&lt;br /&gt;
        |    |    | -magnitofon&lt;br /&gt;
        |    |    | -megafon&lt;br /&gt;
        |    |    | -military:&lt;br /&gt;
        |    |    |    | -after_attack&lt;br /&gt;
        |    |    |    | -before_collect&lt;br /&gt;
        |    |    |    | -collect&lt;br /&gt;
        |    |    |    | -controller&lt;br /&gt;
        |    |    |    | -crazy&lt;br /&gt;
        |    |    |    | -dolg_attack:&lt;br /&gt;
        |    |    |    |    | -base&lt;br /&gt;
        |    |    |    | -dolg_kill_patrol&lt;br /&gt;
        |    |    |    | -freedom_base&lt;br /&gt;
        |    |    |    | -khutor_attack&lt;br /&gt;
        |    |    |    | -lukash&lt;br /&gt;
        |    |    |    | -pavlik_morozov&lt;br /&gt;
        |    |    |    | -pda&lt;br /&gt;
        |    |    | -military_stalker&lt;br /&gt;
        |    |    | -newbie_on_garbage&lt;br /&gt;
        |    |    | -osoznanie&lt;br /&gt;
        |    |    | -pri&lt;br /&gt;
        |    |    | -radar:&lt;br /&gt;
        |    |    |    | -entrance&lt;br /&gt;
        |    |    | -radio:&lt;br /&gt;
        |    |    |    | -radio_commander&lt;br /&gt;
        |    |    |    | -talk_1&lt;br /&gt;
        |    |    | -rostok:&lt;br /&gt;
        |    |    |    | -heli_crush&lt;br /&gt;
        |    |    | -sarcofag&lt;br /&gt;
        |    |    | -scared_stalker_underground&lt;br /&gt;
        |    |    | -tolik&lt;br /&gt;
        |    |    | -trader&lt;br /&gt;
        |    |    | -tramp&lt;br /&gt;
        |    |    | -val:&lt;br /&gt;
        |    |    |    | -ambush&lt;br /&gt;
        |    |    |    | -bs_fall&lt;br /&gt;
        |    |    |    | -escort&lt;br /&gt;
        |    |    |    | -monolith&lt;br /&gt;
        |    |    |    | -prisoner&lt;br /&gt;
        |    |    |    | -rob&lt;br /&gt;
        |    |    |    | -sacrifice&lt;br /&gt;
        |    |    |    | -suicide&lt;br /&gt;
        |    |    | -video&lt;br /&gt;
        |    |    | -wolf&lt;br /&gt;
        |    |    | -wounded_veteran_escape&lt;br /&gt;
        |    |    | -yantar&lt;br /&gt;
        |    |    | -zombied_stalker&lt;br /&gt;
&lt;br /&gt;
[[Категория:Справочники]]&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2_*.object_(%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_SDK)</id>
		<title>Формат файлов *.object (формат объектов SDK)</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2_*.object_(%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_SDK)"/>
				<updated>2007-06-07T18:16:30Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: /* Код */ оформление&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Формат разобрал excid'''&lt;br /&gt;
&lt;br /&gt;
== О формате ==&lt;br /&gt;
Формат *.object используется в качестве основного формата хранения моделей на этапе редактирования (включая экспорт из Maya или 3ds Max и хранение моделей до компиляции уровня)&lt;br /&gt;
&lt;br /&gt;
== Описание структуры ==&lt;br /&gt;
Формат бинарный. Файл состоит из вложенных друг в друга блоков. Весь файл представляет собой единый блок.&lt;br /&gt;
&lt;br /&gt;
=== Структура блока ===&lt;br /&gt;
Блок имеет 3 обязательные части:&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Часть||Тип(размер)||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Идентификатор типа блока||(4)||2 байта идентификатора и 2 нулевых байта&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Размер блока||uint(4)||без учета этих частей — только то, что идет дальше&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;
В заголовке последующих пунктов в скобках содержатся идентификаторы типа блока в шестнадцатиричной форме, при этом байты представлены в обратном порядке (то есть так, как числа задаются в исходниках), поэтому идентификатор 0x0912 в файле будет выглядеть как 09 12 00 00.&lt;br /&gt;
&lt;br /&gt;
== Файл (0x7777) ==&lt;br /&gt;
=== Неизвестные данные (0x0900) ===&lt;br /&gt;
Возможно, это версия.&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно||(2)||0x10 0x00||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Пользовательские информация — User Data (0x0912) ===&lt;br /&gt;
В редакторе Game options &amp;gt; User Data.&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Данные||строка||||Произвольная строка&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Уровень детализации — LOD (0x0925) ===&lt;br /&gt;
В редакторе LOD &amp;gt; Reference.&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Ссылка||строка||||Путь к модели, содержащей следующий уровень детализации&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Тип объекта — Object Type (0x0903) ===&lt;br /&gt;
В редакторе Object Type.&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Тип||(4)||||Значение 0x00 для статической модели (тип Static)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Данные о геометрии — Geometry (0x0910) ===&lt;br /&gt;
В редакторе Geometry.&lt;br /&gt;
Все представленные ниже данные описывают 1 подобъект.&lt;br /&gt;
&lt;br /&gt;
==== Неизвестные данные (0x1000) ====&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно||(2)||0x11 0x00||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Название подобъекта — Name (0x1000) ====&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Название||строка||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Ограничивающий параллелепипед — Bounding Box (0x1004) ====&lt;br /&gt;
В редакторе Transform &amp;gt; BBox Min/Max&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Минимум||float(4)[3]||||Минимальные значения вершин по x, y, z&lt;br /&gt;
|-&lt;br /&gt;
|Максимум||float(4)[3]||||Максимальные значения вершин по x, y, z&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Неизвестные данные (0x1002) ====&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно||(1)||0x05||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Неизвестные данные (0x1010) ====&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно||(8)||0x00||Все нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Вершины — Vertices (0x1005) ====&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Количество вершин n||uint(4)||||&lt;br /&gt;
|-&lt;br /&gt;
|Координаты||float(4)[n * 3]||||Координаты x, y, z для каждой вершины&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Грани — Faces (0x1006) ====&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Количество граней m||uint(4)||||&lt;br /&gt;
|-&lt;br /&gt;
|Координаты||uint(4)[m * 6]||||Троки пар индекс вершины + индекс текстурной координаты&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Группы сглаживания — Smoothing Groups (0x1013) ====&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Группы||uint(4)[m]||||32-битная маска групп сглаживания для каждой грани&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Словарь текстурных координат — UVs map (0x1008) ====&lt;br /&gt;
Логика формирования и назначение этого и блока «Текстурные координаты» доконца не понятна.&lt;br /&gt;
Предположительный вариант представлен ниже.&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Количество записей k||uint(4)||||&lt;br /&gt;
|-&lt;br /&gt;
|Данные||(9)[k]||||Предположительная структура в следующей таблице&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно||byte(1)||0x1||&lt;br /&gt;
|-&lt;br /&gt;
|Индекс таблицы текстурных координат||uint(4)||0x0 или 0x1||Возможно, только первый байт содержит эти данные,&amp;lt;br /&amp;gt; остальные выполняют другие функции&amp;lt;br /&amp;gt;Встречались «некорректные» данные (например, 0x1 0x90 0xdb 0x11 0x7), но они не использовались&lt;br /&gt;
|-&lt;br /&gt;
|Индекс текстурных координаты||uint(4)||0x0 или 0x1||Индекс в таблице, определяемой предыдущим значением.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Материалы объекта — Object Materials (0x1009) ====&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Количество материалов p||ushort(2)||||&lt;br /&gt;
|-&lt;br /&gt;
|Материалы||[p]||||Cтруктура в следующей таблице&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Название материала||строка||||&lt;br /&gt;
|-&lt;br /&gt;
|Количество граней q||uint(4)||||Количество граней, имеющих этот материал&lt;br /&gt;
|-&lt;br /&gt;
|Индексы граней||uint(4)[q]||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Текстурные координаты — UVs (0x1008) ====&lt;br /&gt;
Количество таблиц, которое встречалось в тестовых файлах — 2.&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Количество таблиц t||uint(4)||0x2||&lt;br /&gt;
|-&lt;br /&gt;
|Таблицы||[t]||||Структура в следующей таблице&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно||строка||Texture||&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно||ubyte(1)||0x2||Возможно, количество компонентов в текс. координате?&lt;br /&gt;
|-&lt;br /&gt;
|Номер таблицы||ushort(1)||||&lt;br /&gt;
|-&lt;br /&gt;
|Количество текстурных координат s||uint(4)||||&lt;br /&gt;
|-&lt;br /&gt;
|Текстурные координаты||float(4)[s * 2]||||Пары значения текстурных координат u и v&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно||uint(4)[s]||||Какие-то индексы, не превышающие s&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно&amp;lt;br /&amp;gt;(только для второй таблицы)||uint(4)[s]||||Какие-то индексы, не превышающие s, отсорированные по возрастанию&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Материалы — Materials (0x0907) ===&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Количество материалов r||uint(4)||||&lt;br /&gt;
|-&lt;br /&gt;
|Материалы||[r]||||Структура в следующей таблице&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Название||строка||||&lt;br /&gt;
|-&lt;br /&gt;
|Характеристика для движка||строка||||Например, default&lt;br /&gt;
|-&lt;br /&gt;
|Характеристика для компилятора||строка||||Например, default&lt;br /&gt;
|-&lt;br /&gt;
|Характеристика для игры||строка||||Например, default&lt;br /&gt;
|-&lt;br /&gt;
|Путь к текстуре||строка||||&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно||строка||Texture||Значение Texture используется в блоке &amp;lt;br /&amp;gt;Текстурные координаты — UVs (0x1008)&lt;br /&gt;
|-&lt;br /&gt;
|Флаги||uint(4)||||0x1, если материал двустронний, иначе 0x0&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно||(4)||0x12 0x1 0x0 0x0 0x1 0x0 0x0 0x0||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Автор — Author (0x0907) ===&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Создатель||строка||||Вид \\компьютер\пользователь (например, \\NAPALI\excid)&lt;br /&gt;
|-&lt;br /&gt;
|Дата создания||(4)||||&lt;br /&gt;
|-&lt;br /&gt;
|Последний модифицирующий||строка||||Вид \\компьютер\пользователь (например, \\NAPALI\excid)&lt;br /&gt;
|-&lt;br /&gt;
|Дата модификации||(4)||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Скрипт разбора файла ==&lt;br /&gt;
Написан на Python. Не реализован полностью, завершение не планируется, так как свою миссию он выполнил.&amp;lt;br /&amp;gt;&lt;br /&gt;
Если запускать из Blender, то импортирует объект (без материалов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Не рекомендуется запускать для больших файлов, так как выводится вся информация из файла.&lt;br /&gt;
&lt;br /&gt;
=== Код ===&lt;br /&gt;
&amp;lt;code python&amp;gt;&lt;br /&gt;
#                                           #&lt;br /&gt;
#    XRay Engine (S.T.A.L.K.E.R.) object    #&lt;br /&gt;
#       test import plugin for Blender      #&lt;br /&gt;
#                                           #&lt;br /&gt;
#          Anton 'excid' Gorenko            #&lt;br /&gt;
#              excid@mail.ru                #&lt;br /&gt;
#                                           #&lt;br /&gt;
#               (2007 June)                 #&lt;br /&gt;
#                                           #&lt;br /&gt;
&lt;br /&gt;
from struct import *&lt;br /&gt;
import datetime&lt;br /&gt;
&lt;br /&gt;
useBlender = True&lt;br /&gt;
try:&lt;br /&gt;
    from Blender import *&lt;br /&gt;
    from Blender.Mathutils import *&lt;br /&gt;
except:&lt;br /&gt;
    useBlender = False&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
f = open('X:\\rawdata\\objects\\detail\\det_list_05.object', 'rb')&lt;br /&gt;
s = f.read()&lt;br /&gt;
f.close()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def parseMeshData(s):&lt;br /&gt;
    &lt;br /&gt;
    p = 0&lt;br /&gt;
    print '\nunknown block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4&lt;br /&gt;
    size = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    print 'unknown block size =', size&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'unknown data =', map(hex, unpack('%dB' % (size,), s[p : p + size]))&lt;br /&gt;
    p += size&lt;br /&gt;
    &lt;br /&gt;
    print '\nname block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4&lt;br /&gt;
    nameSize = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    print 'name block size =', nameSize&lt;br /&gt;
    p += 4&lt;br /&gt;
    name = unpack('%ds' % (nameSize,), s[p : p + nameSize])[0][:-1]&lt;br /&gt;
    p += int(nameSize)&lt;br /&gt;
    print 'name =', name&lt;br /&gt;
    &lt;br /&gt;
    if useBlender:&lt;br /&gt;
        obj = Object.New('Mesh', name)&lt;br /&gt;
        mesh = Mesh.New(name)&lt;br /&gt;
        obj.link(mesh)&lt;br /&gt;
        scene = Scene.GetCurrent()&lt;br /&gt;
        scene.objects.link(obj)&lt;br /&gt;
    &lt;br /&gt;
    print '\nbbox block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'bbox block size =', unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'bbox min = ', unpack('3f', s[p : p + 12])&lt;br /&gt;
    p += 12&lt;br /&gt;
    print 'bbox max = ', unpack('3f', s[p : p + 12])&lt;br /&gt;
    p += 12&lt;br /&gt;
    &lt;br /&gt;
    print '\nunknown block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4&lt;br /&gt;
    size = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    print 'unknown block size =', size&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'unknown data =', map(hex, unpack('%dB' % (size,), s[p : p + size]))&lt;br /&gt;
    p += size&lt;br /&gt;
    &lt;br /&gt;
    print '\nunknown block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4&lt;br /&gt;
    size = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    print 'unknown block size =', size&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'unknown data =', map(hex, unpack('%dB' % (size,), s[p : p + size]))&lt;br /&gt;
    p += size&lt;br /&gt;
    &lt;br /&gt;
    print '\nvertices block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4  &lt;br /&gt;
    print 'vertices block size =', unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4  &lt;br /&gt;
    verticesCount = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'vertices count =', verticesCount &lt;br /&gt;
    for i in range(verticesCount):&lt;br /&gt;
        coords = unpack('3f', s[p : p + 12])&lt;br /&gt;
        print 'vertex%d =' % (i,), coords&lt;br /&gt;
        p += 12&lt;br /&gt;
        &lt;br /&gt;
        if useBlender:&lt;br /&gt;
            mesh.verts.extend([coords])&lt;br /&gt;
    &lt;br /&gt;
    print '\ntriangles block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'triangles block size =', unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    &lt;br /&gt;
    trianglesCount = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'triangles count =', trianglesCount   &lt;br /&gt;
    &lt;br /&gt;
    faces = []&lt;br /&gt;
    for i in range(trianglesCount):&lt;br /&gt;
        vertices = unpack('6I', s[p : p + 24])&lt;br /&gt;
        print 'triangle%d =' % (i,), vertices&lt;br /&gt;
        p += 24&lt;br /&gt;
        &lt;br /&gt;
        faces.append(vertices)&lt;br /&gt;
        &lt;br /&gt;
    print '\nsmoothgroups block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4&lt;br /&gt;
    size = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'smoothgroups block size =', size&lt;br /&gt;
    for i in range(size / 4):&lt;br /&gt;
        x = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
        print 'triangle%d =' % (i,), hex(int(x))&lt;br /&gt;
        p += 4&lt;br /&gt;
    &lt;br /&gt;
    print '\nuv map block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4&lt;br /&gt;
    size = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'uv map block size =', size&lt;br /&gt;
    count = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'count =', count&lt;br /&gt;
    &lt;br /&gt;
    layerIndices = []&lt;br /&gt;
    uvIndices = []&lt;br /&gt;
    for i in range(count):&lt;br /&gt;
        unknown = unpack('5B', s[p : p + 5])&lt;br /&gt;
        p += 5&lt;br /&gt;
        &lt;br /&gt;
        uvIndex = int(unpack('I', s[p : p + 4])[0])&lt;br /&gt;
        p += 4&lt;br /&gt;
        &lt;br /&gt;
        print 'uv index =', map(hex, unknown), uvIndex&lt;br /&gt;
        &lt;br /&gt;
        layerIndices.append(unknown[1])&lt;br /&gt;
        uvIndices.append(uvIndex)&lt;br /&gt;
        &lt;br /&gt;
    &lt;br /&gt;
    print '\nmaterials block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4&lt;br /&gt;
    size = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'materials block size =', size&lt;br /&gt;
    materialsCount = unpack('H', s[p : p + 2])[0]&lt;br /&gt;
    p += 2&lt;br /&gt;
    print 'materials count =', materialsCount&lt;br /&gt;
    &lt;br /&gt;
    for i in range(materialsCount):&lt;br /&gt;
        materialName = ''&lt;br /&gt;
        b = unpack('B', s[p : p + 1])[0]&lt;br /&gt;
        p += 1&lt;br /&gt;
        while b != 0:&lt;br /&gt;
            materialName = materialName + chr(b)&lt;br /&gt;
            b = unpack('B', s[p : p + 1])[0]&lt;br /&gt;
            p += 1&lt;br /&gt;
        print 'material%d name =' % (i,), materialName&lt;br /&gt;
        &lt;br /&gt;
        trianglesCount = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
        p += 4&lt;br /&gt;
        print 'triangles count =', trianglesCount&lt;br /&gt;
        &lt;br /&gt;
        print 'triangles indices =', map(int, unpack('%dI' % (trianglesCount,), s[p : p + 4 * trianglesCount]))&lt;br /&gt;
        p += 4 * trianglesCount&lt;br /&gt;
        &lt;br /&gt;
    print '\ntexcoords block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4&lt;br /&gt;
    size = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'texcoords block size =', size&lt;br /&gt;
    uvTablesCount = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'uv tables count =', uvTablesCount&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    uvs = []&lt;br /&gt;
    for i in range(uvTablesCount):&lt;br /&gt;
        currentUv = []&lt;br /&gt;
        chanelName = ''&lt;br /&gt;
        b = unpack('B', s[p : p + 1])[0]&lt;br /&gt;
        p += 1&lt;br /&gt;
        while b != 0:&lt;br /&gt;
            chanelName = chanelName + chr(b)&lt;br /&gt;
            b = unpack('B', s[p : p + 1])[0]&lt;br /&gt;
            p += 1&lt;br /&gt;
        print 'name =', chanelName&lt;br /&gt;
        &lt;br /&gt;
        x = unpack('B', s[p : p + 1])[0]&lt;br /&gt;
        p += 1&lt;br /&gt;
        print 'unknown =', x&lt;br /&gt;
        layerIndex = unpack('H', s[p : p + 2])[0]&lt;br /&gt;
        p += 2&lt;br /&gt;
        print 'layer index =', layerIndex   &lt;br /&gt;
        count = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
        p += 4&lt;br /&gt;
        print 'uvs count =', count&lt;br /&gt;
        &lt;br /&gt;
        for j in range(count):&lt;br /&gt;
            uv = unpack('2f', s[p : p + 8])&lt;br /&gt;
            print 'uv%d =' % (j,), uv&lt;br /&gt;
            p += 8&lt;br /&gt;
            &lt;br /&gt;
            currentUv.append(uv)&lt;br /&gt;
        uvs.append(currentUv)&lt;br /&gt;
            &lt;br /&gt;
        for j in range(count):&lt;br /&gt;
            x = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
            print 'index%d =' % (j,), int(x)&lt;br /&gt;
            p += 4&lt;br /&gt;
&lt;br /&gt;
    i = 0&lt;br /&gt;
    while len(s) &amp;gt; p:&lt;br /&gt;
        x = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
        print 'unknown index%d =' % (i,), int(x)&lt;br /&gt;
        p += 4  &lt;br /&gt;
        i += 1&lt;br /&gt;
    &lt;br /&gt;
    if useBlender:&lt;br /&gt;
        faceIndex = 0&lt;br /&gt;
        for faceInfo in faces:&lt;br /&gt;
            if faceInfo[4] == 0:&lt;br /&gt;
                faceInfo = faceInfo[2:] + faceInfo[:2]&lt;br /&gt;
            mesh.faces.extend(faceInfo[::2])&lt;br /&gt;
            face = mesh.faces[-1]&lt;br /&gt;
&lt;br /&gt;
            faceUvs = []&lt;br /&gt;
            for i in faceInfo[1::2]:&lt;br /&gt;
                faceUvs.append(Vector(uvs[layerIndices[i]][uvIndices[i]]))&lt;br /&gt;
            face.uv = faceUvs&lt;br /&gt;
    &lt;br /&gt;
def parseString(s, p):&lt;br /&gt;
    string = ''&lt;br /&gt;
    b = unpack('B', s[p : p + 1])[0]&lt;br /&gt;
    p += 1&lt;br /&gt;
    while b != 0:&lt;br /&gt;
        string = string + chr(b)&lt;br /&gt;
        b = unpack('B', s[p : p + 1])[0]&lt;br /&gt;
        p += 1&lt;br /&gt;
    return string, p&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
def parseGeometryBlock(s):&lt;br /&gt;
    print '\ngeometry\n'&lt;br /&gt;
    p = 0&lt;br /&gt;
    while p &amp;lt; len(s):&lt;br /&gt;
        i = unpack('I', s[p : p + 4])[0]    &lt;br /&gt;
        p += 4&lt;br /&gt;
        dataSize = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
        print 'mesh%d data size = %d' % (i, dataSize)&lt;br /&gt;
        p += 4&lt;br /&gt;
        parseMeshData(s[p : p + dataSize])&lt;br /&gt;
        p += dataSize   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def parseMaterialBlock(s):&lt;br /&gt;
    print '\nmaterials\n'&lt;br /&gt;
    p = 0&lt;br /&gt;
    materialsCount = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'materials count =', materialsCount&lt;br /&gt;
&lt;br /&gt;
    for i in range(materialsCount):&lt;br /&gt;
        print '\n'&lt;br /&gt;
        materialName, p = parseString(s, p)&lt;br /&gt;
        print 'material%d name =' % (i,), materialName&lt;br /&gt;
        &lt;br /&gt;
        engineShader, p = parseString(s, p)&lt;br /&gt;
        print 'engine shader =', engineShader&lt;br /&gt;
        &lt;br /&gt;
        compilerShader, p = parseString(s, p)&lt;br /&gt;
        print 'compiler shader =', compilerShader&lt;br /&gt;
&lt;br /&gt;
        gameMaterial, p = parseString(s, p)&lt;br /&gt;
        print 'game material =', gameMaterial   &lt;br /&gt;
        &lt;br /&gt;
        texturePath, p = parseString(s, p)&lt;br /&gt;
        print 'texture path =', texturePath&lt;br /&gt;
        &lt;br /&gt;
        texture, p = parseString(s, p)&lt;br /&gt;
        print 'texture =', texture&lt;br /&gt;
&lt;br /&gt;
        print 'flags (2 sided, etc) =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
        p += 4  &lt;br /&gt;
        &lt;br /&gt;
        size = 8&lt;br /&gt;
        print 'unknown data =', map(hex, unpack('%dB' % (size,), s[p : p + size]))&lt;br /&gt;
        p += size   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
def parseAuthorBlock(s):&lt;br /&gt;
    print '\nauthor\n'&lt;br /&gt;
    p = 0&lt;br /&gt;
    authorName, p = parseString(s, p)&lt;br /&gt;
    print 'author name =', authorName&lt;br /&gt;
    &lt;br /&gt;
    size = 4&lt;br /&gt;
    print 'creation date =', map(hex, unpack('%dB' % (size,), s[p : p + size]))&lt;br /&gt;
    p += size   &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    modifierName, p = parseString(s, p)&lt;br /&gt;
    print 'modifier name =', modifierName&lt;br /&gt;
    &lt;br /&gt;
    print 'modification date =', map(hex, unpack('%dB' % (size,), s[p : p + size]))&lt;br /&gt;
    p += size   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
def parseUserDataBlock(s):&lt;br /&gt;
    print '\nuser data\n'&lt;br /&gt;
    p = 0&lt;br /&gt;
    userData, p = parseString(s, p)&lt;br /&gt;
    print 'user data =', userData&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
def parseLODBlock(s):&lt;br /&gt;
    print '\nlod\n'&lt;br /&gt;
    p = 0&lt;br /&gt;
    reference, p = parseString(s, p)&lt;br /&gt;
    print 'lod reference =', reference  &lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
def parseFlagsBlock(s):&lt;br /&gt;
    print '\nflags (model type)\n'&lt;br /&gt;
    p = 0&lt;br /&gt;
    flags = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    print 'model type =', hex(int(flags))&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
print '\n' * 3&lt;br /&gt;
&lt;br /&gt;
p = 0&lt;br /&gt;
header = unpack('I', s[p : p + 4])[0]   &lt;br /&gt;
print 'header =', hex(int(header))&lt;br /&gt;
p += 4&lt;br /&gt;
&lt;br /&gt;
dataSize = unpack('I', s[p : p + 4])[0] &lt;br /&gt;
print 'data size =', dataSize&lt;br /&gt;
p += 4&lt;br /&gt;
&lt;br /&gt;
while p &amp;lt; len(s):&lt;br /&gt;
    print '\n'&lt;br /&gt;
    print '=' * 79&lt;br /&gt;
    block = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    print 'block =', hex(int(block))&lt;br /&gt;
    p += 4&lt;br /&gt;
    &lt;br /&gt;
    blockSize = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    print 'block size =', blockSize&lt;br /&gt;
    p += 4  &lt;br /&gt;
&lt;br /&gt;
    if block == 0x0910:&lt;br /&gt;
        parseGeometryBlock(s[p : p + blockSize])&lt;br /&gt;
    elif block == 0x0907:&lt;br /&gt;
        parseMaterialBlock(s[p : p + blockSize])&lt;br /&gt;
    elif block == 0x0922:&lt;br /&gt;
        parseAuthorBlock(s[p : p + blockSize])&lt;br /&gt;
    elif block == 0x0912:&lt;br /&gt;
        parseUserDataBlock(s[p : p + blockSize])&lt;br /&gt;
    elif block == 0x0925:&lt;br /&gt;
        parseLODBlock(s[p : p + blockSize])&lt;br /&gt;
    elif block == 0x0903:&lt;br /&gt;
        parseFlagsBlock(s[p : p + blockSize])       &lt;br /&gt;
    else:&lt;br /&gt;
        print 'unknown data =', map(hex, unpack('%dB' % (blockSize,), s[p : p + blockSize]))&lt;br /&gt;
    p += blockSize&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Результат ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
header = 0x7777&lt;br /&gt;
data size = 1113&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===============================================================================&lt;br /&gt;
block = 0x900&lt;br /&gt;
block size = 2&lt;br /&gt;
unknown data = ['0x10', '0x0']&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===============================================================================&lt;br /&gt;
block = 0x912&lt;br /&gt;
block size = 1&lt;br /&gt;
&lt;br /&gt;
user data&lt;br /&gt;
&lt;br /&gt;
user data =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===============================================================================&lt;br /&gt;
block = 0x925&lt;br /&gt;
block size = 1&lt;br /&gt;
&lt;br /&gt;
lod&lt;br /&gt;
&lt;br /&gt;
lod reference =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===============================================================================&lt;br /&gt;
block = 0x903&lt;br /&gt;
block size = 4&lt;br /&gt;
&lt;br /&gt;
flags (model type)&lt;br /&gt;
&lt;br /&gt;
model type = 0x0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===============================================================================&lt;br /&gt;
block = 0x910&lt;br /&gt;
block size = 929&lt;br /&gt;
&lt;br /&gt;
geometry&lt;br /&gt;
&lt;br /&gt;
mesh0 data size = 921&lt;br /&gt;
&lt;br /&gt;
unknown block = 0x1000&lt;br /&gt;
unknown block size = 2&lt;br /&gt;
unknown data = ['0x11', '0x0']&lt;br /&gt;
&lt;br /&gt;
name block = 0x1001&lt;br /&gt;
name block size = 8&lt;br /&gt;
name = Plane10&lt;br /&gt;
&lt;br /&gt;
bbox block = 0x1004&lt;br /&gt;
bbox block size = 24&lt;br /&gt;
bbox min =  (-0.089013084769248962, 0.00091872771736234426, -0.05408264324069023&lt;br /&gt;
1)&lt;br /&gt;
bbox max =  (0.064492635428905487, 0.017687048763036728, 0.050194162875413895)&lt;br /&gt;
&lt;br /&gt;
unknown block = 0x1002&lt;br /&gt;
unknown block size = 1&lt;br /&gt;
unknown data = ['0x5']&lt;br /&gt;
&lt;br /&gt;
unknown block = 0x1010&lt;br /&gt;
unknown block size = 8&lt;br /&gt;
unknown data = ['0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0']&lt;br /&gt;
&lt;br /&gt;
vertices block = 0x1005&lt;br /&gt;
vertices block size = 88&lt;br /&gt;
vertices count = 7&lt;br /&gt;
vertex0 = (-0.0019903033971786499, 0.001169001217931509, 0.0068940594792366028)&lt;br /&gt;
vertex1 = (-0.089013084769248962, 0.00091872771736234426, 0.045723527669906616)&lt;br /&gt;
vertex2 = (0.006468137726187706, 0.0094316964969038963, 0.050194162875413895)&lt;br /&gt;
vertex3 = (-0.039456427097320557, 0.0043633054010570049, -0.039133470505475998)&lt;br /&gt;
vertex4 = (0.023728765547275543, 0.0064991358667612076, -0.054082643240690231)&lt;br /&gt;
vertex5 = (0.031571760773658752, 0.0060988827608525753, 0.0041843997314572334)&lt;br /&gt;
vertex6 = (0.064492635428905487, 0.017687048763036728, -0.038134712725877762)&lt;br /&gt;
&lt;br /&gt;
triangles block = 0x1006&lt;br /&gt;
triangles block size = 148&lt;br /&gt;
triangles count = 6&lt;br /&gt;
triangle0 = (0, 2, 1, 1, 2, 0)&lt;br /&gt;
triangle1 = (0, 8, 3, 7, 1, 6)&lt;br /&gt;
triangle2 = (0, 11, 4, 10, 3, 9)&lt;br /&gt;
triangle3 = (5, 14, 6, 13, 4, 12)&lt;br /&gt;
triangle4 = (0, 17, 2, 16, 5, 15)&lt;br /&gt;
triangle5 = (0, 20, 5, 19, 4, 18)&lt;br /&gt;
&lt;br /&gt;
smoothgroups block = 0x1013&lt;br /&gt;
smoothgroups block size = 24&lt;br /&gt;
triangle0 = 0x1&lt;br /&gt;
triangle1 = 0x1&lt;br /&gt;
triangle2 = 0x1&lt;br /&gt;
triangle3 = 0x1&lt;br /&gt;
triangle4 = 0x1&lt;br /&gt;
triangle5 = 0x1&lt;br /&gt;
&lt;br /&gt;
uv map block = 0x1008&lt;br /&gt;
uv map block size = 193&lt;br /&gt;
count = 21&lt;br /&gt;
uv index = ['0x1', '0x0', '0x0', '0x0', '0x0'] 2&lt;br /&gt;
uv index = ['0x1', '0x0', '0x0', '0x0', '0x0'] 1&lt;br /&gt;
uv index = ['0x1', '0x0', '0x0', '0x0', '0x0'] 0&lt;br /&gt;
uv index = ['0x1', '0x90', '0xdb', '0x11', '0x7'] 12&lt;br /&gt;
uv index = ['0x1', '0x18', '0x87', '0x10', '0x7'] 12&lt;br /&gt;
uv index = ['0x1', '0x80', '0x8c', '0x10', '0x7'] 12&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 1&lt;br /&gt;
uv index = ['0x1', '0x0', '0x0', '0x0', '0x0'] 3&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 0&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 3&lt;br /&gt;
uv index = ['0x1', '0x0', '0x0', '0x0', '0x0'] 4&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 2&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 4&lt;br /&gt;
uv index = ['0x1', '0x0', '0x0', '0x0', '0x0'] 6&lt;br /&gt;
uv index = ['0x1', '0x0', '0x0', '0x0', '0x0'] 5&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 7&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 6&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 5&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 10&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 9&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 8&lt;br /&gt;
&lt;br /&gt;
materials block = 0x1009&lt;br /&gt;
materials block size = 43&lt;br /&gt;
materials count = 1&lt;br /&gt;
material0 name = 01 - Default&lt;br /&gt;
triangles count = 6&lt;br /&gt;
triangles indices = [0, 1, 2, 3, 4, 5]&lt;br /&gt;
&lt;br /&gt;
texcoords block = 0x1012&lt;br /&gt;
texcoords block size = 294&lt;br /&gt;
uv tables count = 2&lt;br /&gt;
name = Texture&lt;br /&gt;
unknown = 2&lt;br /&gt;
layer index = 0&lt;br /&gt;
uvs count = 7&lt;br /&gt;
uv0 = (0.72911489009857178, 0.70259565114974976)&lt;br /&gt;
uv1 = (0.4648970365524292, 0.95080757141113281)&lt;br /&gt;
uv2 = (0.55649280548095703, 0.58906811475753784)&lt;br /&gt;
uv3 = (0.97081756591796875, 0.88250058889389038)&lt;br /&gt;
uv4 = (0.97814416885375977, 0.69620668888092041)&lt;br /&gt;
uv5 = (0.75604760646820068, 0.52614188194274902)&lt;br /&gt;
uv6 = (0.98893237113952637, 0.51763355731964111)&lt;br /&gt;
index0 = 0&lt;br /&gt;
index1 = 1&lt;br /&gt;
index2 = 2&lt;br /&gt;
index3 = 3&lt;br /&gt;
index4 = 4&lt;br /&gt;
index5 = 5&lt;br /&gt;
index6 = 6&lt;br /&gt;
name = Texture&lt;br /&gt;
unknown = 2&lt;br /&gt;
layer index = 1&lt;br /&gt;
uvs count = 11&lt;br /&gt;
uv0 = (0.72911489009857178, 0.70259565114974976)&lt;br /&gt;
uv1 = (0.4648970365524292, 0.95080757141113281)&lt;br /&gt;
uv2 = (0.72911489009857178, 0.70259565114974976)&lt;br /&gt;
uv3 = (0.97081756591796875, 0.88250058889389038)&lt;br /&gt;
uv4 = (0.97814416885375977, 0.69620668888092041)&lt;br /&gt;
uv5 = (0.72911489009857178, 0.70259565114974976)&lt;br /&gt;
uv6 = (0.5510140061378479, 0.58371180295944214)&lt;br /&gt;
uv7 = (0.75604760646820068, 0.52614188194274902)&lt;br /&gt;
uv8 = (0.72911489009857178, 0.70259565114974976)&lt;br /&gt;
uv9 = (0.75604760646820068, 0.52614188194274902)&lt;br /&gt;
uv10 = (0.97814416885375977, 0.69620668888092041)&lt;br /&gt;
index0 = 0&lt;br /&gt;
index1 = 1&lt;br /&gt;
index2 = 0&lt;br /&gt;
index3 = 3&lt;br /&gt;
index4 = 4&lt;br /&gt;
index5 = 0&lt;br /&gt;
index6 = 2&lt;br /&gt;
index7 = 5&lt;br /&gt;
index8 = 0&lt;br /&gt;
index9 = 5&lt;br /&gt;
index10 = 4&lt;br /&gt;
unknown index0 = 1&lt;br /&gt;
unknown index1 = 1&lt;br /&gt;
unknown index2 = 2&lt;br /&gt;
unknown index3 = 2&lt;br /&gt;
unknown index4 = 3&lt;br /&gt;
unknown index5 = 4&lt;br /&gt;
unknown index6 = 4&lt;br /&gt;
unknown index7 = 4&lt;br /&gt;
unknown index8 = 5&lt;br /&gt;
unknown index9 = 5&lt;br /&gt;
unknown index10 = 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===============================================================================&lt;br /&gt;
block = 0x907&lt;br /&gt;
block size = 82&lt;br /&gt;
&lt;br /&gt;
materials&lt;br /&gt;
&lt;br /&gt;
materials count = 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
material0 name = 01 - Default&lt;br /&gt;
engine shader = details\blend&lt;br /&gt;
compiler shader = default&lt;br /&gt;
game material = default&lt;br /&gt;
texture path = det\det_listya&lt;br /&gt;
texture = Texture&lt;br /&gt;
flags (2 sided, etc) = 0x0&lt;br /&gt;
unknown data = ['0x12', '0x1', '0x0', '0x0', '0x1', '0x0', '0x0', '0x0']&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===============================================================================&lt;br /&gt;
block = 0x922&lt;br /&gt;
block size = 38&lt;br /&gt;
&lt;br /&gt;
author&lt;br /&gt;
&lt;br /&gt;
author name = \\SUSHKA\cy-27&lt;br /&gt;
creation date = ['0xf', '0x28', '0x98', '0x43']&lt;br /&gt;
modifier name = \\SUSHKA\cy-27&lt;br /&gt;
modification date = ['0xf', '0x28', '0x98', '0x43']&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Категория:Форматы файлов]]&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2_*.object_(%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_SDK)</id>
		<title>Формат файлов *.object (формат объектов SDK)</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2_*.object_(%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_SDK)"/>
				<updated>2007-06-07T18:05:25Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Формат разобрал excid'''&lt;br /&gt;
&lt;br /&gt;
== О формате ==&lt;br /&gt;
Формат *.object используется в качестве основного формата хранения моделей на этапе редактирования (включая экспорт из Maya или 3ds Max и хранение моделей до компиляции уровня)&lt;br /&gt;
&lt;br /&gt;
== Описание структуры ==&lt;br /&gt;
Формат бинарный. Файл состоит из вложенных друг в друга блоков. Весь файл представляет собой единый блок.&lt;br /&gt;
&lt;br /&gt;
=== Структура блока ===&lt;br /&gt;
Блок имеет 3 обязательные части:&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Часть||Тип(размер)||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Идентификатор типа блока||(4)||2 байта идентификатора и 2 нулевых байта&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Размер блока||uint(4)||без учета этих частей — только то, что идет дальше&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;
В заголовке последующих пунктов в скобках содержатся идентификаторы типа блока в шестнадцатиричной форме, при этом байты представлены в обратном порядке (то есть так, как числа задаются в исходниках), поэтому идентификатор 0x0912 в файле будет выглядеть как 09 12 00 00.&lt;br /&gt;
&lt;br /&gt;
== Файл (0x7777) ==&lt;br /&gt;
=== Неизвестные данные (0x0900) ===&lt;br /&gt;
Возможно, это версия.&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно||(2)||0x10 0x00||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Пользовательские информация — User Data (0x0912) ===&lt;br /&gt;
В редакторе Game options &amp;gt; User Data.&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Данные||строка||||Произвольная строка&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Уровень детализации — LOD (0x0925) ===&lt;br /&gt;
В редакторе LOD &amp;gt; Reference.&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Ссылка||строка||||Путь к модели, содержащей следующий уровень детализации&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Тип объекта — Object Type (0x0903) ===&lt;br /&gt;
В редакторе Object Type.&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Тип||(4)||||Значение 0x00 для статической модели (тип Static)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Данные о геометрии — Geometry (0x0910) ===&lt;br /&gt;
В редакторе Geometry.&lt;br /&gt;
Все представленные ниже данные описывают 1 подобъект.&lt;br /&gt;
&lt;br /&gt;
==== Неизвестные данные (0x1000) ====&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно||(2)||0x11 0x00||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Название подобъекта — Name (0x1000) ====&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Название||строка||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Ограничивающий параллелепипед — Bounding Box (0x1004) ====&lt;br /&gt;
В редакторе Transform &amp;gt; BBox Min/Max&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Минимум||float(4)[3]||||Минимальные значения вершин по x, y, z&lt;br /&gt;
|-&lt;br /&gt;
|Максимум||float(4)[3]||||Максимальные значения вершин по x, y, z&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Неизвестные данные (0x1002) ====&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно||(1)||0x05||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Неизвестные данные (0x1010) ====&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно||(8)||0x00||Все нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Вершины — Vertices (0x1005) ====&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Количество вершин n||uint(4)||||&lt;br /&gt;
|-&lt;br /&gt;
|Координаты||float(4)[n * 3]||||Координаты x, y, z для каждой вершины&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Грани — Faces (0x1006) ====&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Количество граней m||uint(4)||||&lt;br /&gt;
|-&lt;br /&gt;
|Координаты||uint(4)[m * 6]||||Троки пар индекс вершины + индекс текстурной координаты&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Группы сглаживания — Smoothing Groups (0x1013) ====&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Группы||uint(4)[m]||||32-битная маска групп сглаживания для каждой грани&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Словарь текстурных координат — UVs map (0x1008) ====&lt;br /&gt;
Логика формирования и назначение этого и блока «Текстурные координаты» доконца не понятна.&lt;br /&gt;
Предположительный вариант представлен ниже.&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Количество записей k||uint(4)||||&lt;br /&gt;
|-&lt;br /&gt;
|Данные||(9)[k]||||Предположительная структура в следующей таблице&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно||byte(1)||0x1||&lt;br /&gt;
|-&lt;br /&gt;
|Индекс таблицы текстурных координат||uint(4)||0x0 или 0x1||Возможно, только первый байт содержит эти данные,&amp;lt;br /&amp;gt; остальные выполняют другие функции&amp;lt;br /&amp;gt;Встречались «некорректные» данные (например, 0x1 0x90 0xdb 0x11 0x7), но они не использовались&lt;br /&gt;
|-&lt;br /&gt;
|Индекс текстурных координаты||uint(4)||0x0 или 0x1||Индекс в таблице, определяемой предыдущим значением.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Материалы объекта — Object Materials (0x1009) ====&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Количество материалов p||ushort(2)||||&lt;br /&gt;
|-&lt;br /&gt;
|Материалы||[p]||||Cтруктура в следующей таблице&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Название материала||строка||||&lt;br /&gt;
|-&lt;br /&gt;
|Количество граней q||uint(4)||||Количество граней, имеющих этот материал&lt;br /&gt;
|-&lt;br /&gt;
|Индексы граней||uint(4)[q]||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Текстурные координаты — UVs (0x1008) ====&lt;br /&gt;
Количество таблиц, которое встречалось в тестовых файлах — 2.&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Количество таблиц t||uint(4)||0x2||&lt;br /&gt;
|-&lt;br /&gt;
|Таблицы||[t]||||Структура в следующей таблице&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно||строка||Texture||&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно||ubyte(1)||0x2||Возможно, количество компонентов в текс. координате?&lt;br /&gt;
|-&lt;br /&gt;
|Номер таблицы||ushort(1)||||&lt;br /&gt;
|-&lt;br /&gt;
|Количество текстурных координат s||uint(4)||||&lt;br /&gt;
|-&lt;br /&gt;
|Текстурные координаты||float(4)[s * 2]||||Пары значения текстурных координат u и v&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно||uint(4)[s]||||Какие-то индексы, не превышающие s&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно&amp;lt;br /&amp;gt;(только для второй таблицы)||uint(4)[s]||||Какие-то индексы, не превышающие s, отсорированные по возрастанию&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Материалы — Materials (0x0907) ===&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Количество материалов r||uint(4)||||&lt;br /&gt;
|-&lt;br /&gt;
|Материалы||[r]||||Структура в следующей таблице&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Название||строка||||&lt;br /&gt;
|-&lt;br /&gt;
|Характеристика для движка||строка||||Например, default&lt;br /&gt;
|-&lt;br /&gt;
|Характеристика для компилятора||строка||||Например, default&lt;br /&gt;
|-&lt;br /&gt;
|Характеристика для игры||строка||||Например, default&lt;br /&gt;
|-&lt;br /&gt;
|Путь к текстуре||строка||||&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно||строка||Texture||Значение Texture используется в блоке &amp;lt;br /&amp;gt;Текстурные координаты — UVs (0x1008)&lt;br /&gt;
|-&lt;br /&gt;
|Флаги||uint(4)||||0x1, если материал двустронний, иначе 0x0&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно||(4)||0x12 0x1 0x0 0x0 0x1 0x0 0x0 0x0||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Автор — Author (0x0907) ===&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Создатель||строка||||Вид \\компьютер\пользователь (например, \\NAPALI\excid)&lt;br /&gt;
|-&lt;br /&gt;
|Дата создания||(4)||||&lt;br /&gt;
|-&lt;br /&gt;
|Последний модифицирующий||строка||||Вид \\компьютер\пользователь (например, \\NAPALI\excid)&lt;br /&gt;
|-&lt;br /&gt;
|Дата модификации||(4)||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Скрипт разбора файла ==&lt;br /&gt;
Написан на Python. Не реализован полностью, завершение не планируется, так как свою миссию он выполнил.&amp;lt;br /&amp;gt;&lt;br /&gt;
Если запускать из Blender, то импортирует объект (без материалов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Не рекомендуется запускать для больших файлов, так как выводится вся информация из файла.&lt;br /&gt;
&lt;br /&gt;
=== Код ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#                                           #&lt;br /&gt;
#    XRay Engine (S.T.A.L.K.E.R.) object    #&lt;br /&gt;
#       test import plugin for Blender      #&lt;br /&gt;
#                                           #&lt;br /&gt;
#          Anton 'excid' Gorenko            #&lt;br /&gt;
#              excid@mail.ru                #&lt;br /&gt;
#                                           #&lt;br /&gt;
#               (2007 June)                 #&lt;br /&gt;
#                                           #&lt;br /&gt;
&lt;br /&gt;
from struct import *&lt;br /&gt;
import datetime&lt;br /&gt;
&lt;br /&gt;
useBlender = True&lt;br /&gt;
try:&lt;br /&gt;
    from Blender import *&lt;br /&gt;
    from Blender.Mathutils import *&lt;br /&gt;
except:&lt;br /&gt;
    useBlender = False&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
f = open('X:\\rawdata\\objects\\detail\\det_list_05.object', 'rb')&lt;br /&gt;
s = f.read()&lt;br /&gt;
f.close()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def parseMeshData(s):&lt;br /&gt;
    &lt;br /&gt;
    p = 0&lt;br /&gt;
    print '\nunknown block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4&lt;br /&gt;
    size = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    print 'unknown block size =', size&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'unknown data =', map(hex, unpack('%dB' % (size,), s[p : p + size]))&lt;br /&gt;
    p += size&lt;br /&gt;
    &lt;br /&gt;
    print '\nname block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4&lt;br /&gt;
    nameSize = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    print 'name block size =', nameSize&lt;br /&gt;
    p += 4&lt;br /&gt;
    name = unpack('%ds' % (nameSize,), s[p : p + nameSize])[0][:-1]&lt;br /&gt;
    p += int(nameSize)&lt;br /&gt;
    print 'name =', name&lt;br /&gt;
    &lt;br /&gt;
    if useBlender:&lt;br /&gt;
        obj = Object.New('Mesh', name)&lt;br /&gt;
        mesh = Mesh.New(name)&lt;br /&gt;
        obj.link(mesh)&lt;br /&gt;
        scene = Scene.GetCurrent()&lt;br /&gt;
        scene.objects.link(obj)&lt;br /&gt;
    &lt;br /&gt;
    print '\nbbox block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'bbox block size =', unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'bbox min = ', unpack('3f', s[p : p + 12])&lt;br /&gt;
    p += 12&lt;br /&gt;
    print 'bbox max = ', unpack('3f', s[p : p + 12])&lt;br /&gt;
    p += 12&lt;br /&gt;
    &lt;br /&gt;
    print '\nunknown block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4&lt;br /&gt;
    size = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    print 'unknown block size =', size&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'unknown data =', map(hex, unpack('%dB' % (size,), s[p : p + size]))&lt;br /&gt;
    p += size&lt;br /&gt;
    &lt;br /&gt;
    print '\nunknown block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4&lt;br /&gt;
    size = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    print 'unknown block size =', size&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'unknown data =', map(hex, unpack('%dB' % (size,), s[p : p + size]))&lt;br /&gt;
    p += size&lt;br /&gt;
    &lt;br /&gt;
    print '\nvertices block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4  &lt;br /&gt;
    print 'vertices block size =', unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4  &lt;br /&gt;
    verticesCount = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'vertices count =', verticesCount &lt;br /&gt;
    for i in range(verticesCount):&lt;br /&gt;
        coords = unpack('3f', s[p : p + 12])&lt;br /&gt;
        print 'vertex%d =' % (i,), coords&lt;br /&gt;
        p += 12&lt;br /&gt;
        &lt;br /&gt;
        if useBlender:&lt;br /&gt;
            mesh.verts.extend([coords])&lt;br /&gt;
    &lt;br /&gt;
    print '\ntriangles block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'triangles block size =', unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    &lt;br /&gt;
    trianglesCount = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'triangles count =', trianglesCount   &lt;br /&gt;
    &lt;br /&gt;
    faces = []&lt;br /&gt;
    for i in range(trianglesCount):&lt;br /&gt;
        vertices = unpack('6I', s[p : p + 24])&lt;br /&gt;
        print 'triangle%d =' % (i,), vertices&lt;br /&gt;
        p += 24&lt;br /&gt;
        &lt;br /&gt;
        faces.append(vertices)&lt;br /&gt;
        &lt;br /&gt;
    print '\nsmoothgroups block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4&lt;br /&gt;
    size = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'smoothgroups block size =', size&lt;br /&gt;
    for i in range(size / 4):&lt;br /&gt;
        x = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
        print 'triangle%d =' % (i,), hex(int(x))&lt;br /&gt;
        p += 4&lt;br /&gt;
    &lt;br /&gt;
    print '\nuv map block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4&lt;br /&gt;
    size = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'uv map block size =', size&lt;br /&gt;
    count = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'count =', count&lt;br /&gt;
    &lt;br /&gt;
    layerIndices = []&lt;br /&gt;
    uvIndices = []&lt;br /&gt;
    for i in range(count):&lt;br /&gt;
        unknown = unpack('5B', s[p : p + 5])&lt;br /&gt;
        p += 5&lt;br /&gt;
        &lt;br /&gt;
        uvIndex = int(unpack('I', s[p : p + 4])[0])&lt;br /&gt;
        p += 4&lt;br /&gt;
        &lt;br /&gt;
        print 'uv index =', map(hex, unknown), uvIndex&lt;br /&gt;
        &lt;br /&gt;
        layerIndices.append(unknown[1])&lt;br /&gt;
        uvIndices.append(uvIndex)&lt;br /&gt;
        &lt;br /&gt;
    &lt;br /&gt;
    print '\nmaterials block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4&lt;br /&gt;
    size = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'materials block size =', size&lt;br /&gt;
    materialsCount = unpack('H', s[p : p + 2])[0]&lt;br /&gt;
    p += 2&lt;br /&gt;
    print 'materials count =', materialsCount&lt;br /&gt;
    &lt;br /&gt;
    for i in range(materialsCount):&lt;br /&gt;
        materialName = ''&lt;br /&gt;
        b = unpack('B', s[p : p + 1])[0]&lt;br /&gt;
        p += 1&lt;br /&gt;
        while b != 0:&lt;br /&gt;
            materialName = materialName + chr(b)&lt;br /&gt;
            b = unpack('B', s[p : p + 1])[0]&lt;br /&gt;
            p += 1&lt;br /&gt;
        print 'material%d name =' % (i,), materialName&lt;br /&gt;
        &lt;br /&gt;
        trianglesCount = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
        p += 4&lt;br /&gt;
        print 'triangles count =', trianglesCount&lt;br /&gt;
        &lt;br /&gt;
        print 'triangles indices =', map(int, unpack('%dI' % (trianglesCount,), s[p : p + 4 * trianglesCount]))&lt;br /&gt;
        p += 4 * trianglesCount&lt;br /&gt;
        &lt;br /&gt;
    print '\ntexcoords block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4&lt;br /&gt;
    size = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'texcoords block size =', size&lt;br /&gt;
    uvTablesCount = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'uv tables count =', uvTablesCount&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    uvs = []&lt;br /&gt;
    for i in range(uvTablesCount):&lt;br /&gt;
        currentUv = []&lt;br /&gt;
        chanelName = ''&lt;br /&gt;
        b = unpack('B', s[p : p + 1])[0]&lt;br /&gt;
        p += 1&lt;br /&gt;
        while b != 0:&lt;br /&gt;
            chanelName = chanelName + chr(b)&lt;br /&gt;
            b = unpack('B', s[p : p + 1])[0]&lt;br /&gt;
            p += 1&lt;br /&gt;
        print 'name =', chanelName&lt;br /&gt;
        &lt;br /&gt;
        x = unpack('B', s[p : p + 1])[0]&lt;br /&gt;
        p += 1&lt;br /&gt;
        print 'unknown =', x&lt;br /&gt;
        layerIndex = unpack('H', s[p : p + 2])[0]&lt;br /&gt;
        p += 2&lt;br /&gt;
        print 'layer index =', layerIndex   &lt;br /&gt;
        count = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
        p += 4&lt;br /&gt;
        print 'uvs count =', count&lt;br /&gt;
        &lt;br /&gt;
        for j in range(count):&lt;br /&gt;
            uv = unpack('2f', s[p : p + 8])&lt;br /&gt;
            print 'uv%d =' % (j,), uv&lt;br /&gt;
            p += 8&lt;br /&gt;
            &lt;br /&gt;
            currentUv.append(uv)&lt;br /&gt;
        uvs.append(currentUv)&lt;br /&gt;
            &lt;br /&gt;
        for j in range(count):&lt;br /&gt;
            x = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
            print 'index%d =' % (j,), int(x)&lt;br /&gt;
            p += 4&lt;br /&gt;
&lt;br /&gt;
    i = 0&lt;br /&gt;
    while len(s) &amp;gt; p:&lt;br /&gt;
        x = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
        print 'unknown index%d =' % (i,), int(x)&lt;br /&gt;
        p += 4  &lt;br /&gt;
        i += 1&lt;br /&gt;
    &lt;br /&gt;
    if useBlender:&lt;br /&gt;
        faceIndex = 0&lt;br /&gt;
        for faceInfo in faces:&lt;br /&gt;
            if faceInfo[4] == 0:&lt;br /&gt;
                faceInfo = faceInfo[2:] + faceInfo[:2]&lt;br /&gt;
            mesh.faces.extend(faceInfo[::2])&lt;br /&gt;
            face = mesh.faces[-1]&lt;br /&gt;
&lt;br /&gt;
            faceUvs = []&lt;br /&gt;
            for i in faceInfo[1::2]:&lt;br /&gt;
                faceUvs.append(Vector(uvs[layerIndices[i]][uvIndices[i]]))&lt;br /&gt;
            face.uv = faceUvs&lt;br /&gt;
    &lt;br /&gt;
def parseString(s, p):&lt;br /&gt;
    string = ''&lt;br /&gt;
    b = unpack('B', s[p : p + 1])[0]&lt;br /&gt;
    p += 1&lt;br /&gt;
    while b != 0:&lt;br /&gt;
        string = string + chr(b)&lt;br /&gt;
        b = unpack('B', s[p : p + 1])[0]&lt;br /&gt;
        p += 1&lt;br /&gt;
    return string, p&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
def parseGeometryBlock(s):&lt;br /&gt;
    print '\ngeometry\n'&lt;br /&gt;
    p = 0&lt;br /&gt;
    while p &amp;lt; len(s):&lt;br /&gt;
        i = unpack('I', s[p : p + 4])[0]    &lt;br /&gt;
        p += 4&lt;br /&gt;
        dataSize = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
        print 'mesh%d data size = %d' % (i, dataSize)&lt;br /&gt;
        p += 4&lt;br /&gt;
        parseMeshData(s[p : p + dataSize])&lt;br /&gt;
        p += dataSize   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def parseMaterialBlock(s):&lt;br /&gt;
    print '\nmaterials\n'&lt;br /&gt;
    p = 0&lt;br /&gt;
    materialsCount = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'materials count =', materialsCount&lt;br /&gt;
&lt;br /&gt;
    for i in range(materialsCount):&lt;br /&gt;
        print '\n'&lt;br /&gt;
        materialName, p = parseString(s, p)&lt;br /&gt;
        print 'material%d name =' % (i,), materialName&lt;br /&gt;
        &lt;br /&gt;
        engineShader, p = parseString(s, p)&lt;br /&gt;
        print 'engine shader =', engineShader&lt;br /&gt;
        &lt;br /&gt;
        compilerShader, p = parseString(s, p)&lt;br /&gt;
        print 'compiler shader =', compilerShader&lt;br /&gt;
&lt;br /&gt;
        gameMaterial, p = parseString(s, p)&lt;br /&gt;
        print 'game material =', gameMaterial   &lt;br /&gt;
        &lt;br /&gt;
        texturePath, p = parseString(s, p)&lt;br /&gt;
        print 'texture path =', texturePath&lt;br /&gt;
        &lt;br /&gt;
        texture, p = parseString(s, p)&lt;br /&gt;
        print 'texture =', texture&lt;br /&gt;
&lt;br /&gt;
        print 'flags (2 sided, etc) =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
        p += 4  &lt;br /&gt;
        &lt;br /&gt;
        size = 8&lt;br /&gt;
        print 'unknown data =', map(hex, unpack('%dB' % (size,), s[p : p + size]))&lt;br /&gt;
        p += size   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
def parseAuthorBlock(s):&lt;br /&gt;
    print '\nauthor\n'&lt;br /&gt;
    p = 0&lt;br /&gt;
    authorName, p = parseString(s, p)&lt;br /&gt;
    print 'author name =', authorName&lt;br /&gt;
    &lt;br /&gt;
    size = 4&lt;br /&gt;
    print 'creation date =', map(hex, unpack('%dB' % (size,), s[p : p + size]))&lt;br /&gt;
    p += size   &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    modifierName, p = parseString(s, p)&lt;br /&gt;
    print 'modifier name =', modifierName&lt;br /&gt;
    &lt;br /&gt;
    print 'modification date =', map(hex, unpack('%dB' % (size,), s[p : p + size]))&lt;br /&gt;
    p += size   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
def parseUserDataBlock(s):&lt;br /&gt;
    print '\nuser data\n'&lt;br /&gt;
    p = 0&lt;br /&gt;
    userData, p = parseString(s, p)&lt;br /&gt;
    print 'user data =', userData&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
def parseLODBlock(s):&lt;br /&gt;
    print '\nlod\n'&lt;br /&gt;
    p = 0&lt;br /&gt;
    reference, p = parseString(s, p)&lt;br /&gt;
    print 'lod reference =', reference  &lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
def parseFlagsBlock(s):&lt;br /&gt;
    print '\nflags (model type)\n'&lt;br /&gt;
    p = 0&lt;br /&gt;
    flags = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    print 'model type =', hex(int(flags))&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
print '\n' * 3&lt;br /&gt;
&lt;br /&gt;
p = 0&lt;br /&gt;
header = unpack('I', s[p : p + 4])[0]   &lt;br /&gt;
print 'header =', hex(int(header))&lt;br /&gt;
p += 4&lt;br /&gt;
&lt;br /&gt;
dataSize = unpack('I', s[p : p + 4])[0] &lt;br /&gt;
print 'data size =', dataSize&lt;br /&gt;
p += 4&lt;br /&gt;
&lt;br /&gt;
while p &amp;lt; len(s):&lt;br /&gt;
    print '\n'&lt;br /&gt;
    print '=' * 79&lt;br /&gt;
    block = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    print 'block =', hex(int(block))&lt;br /&gt;
    p += 4&lt;br /&gt;
    &lt;br /&gt;
    blockSize = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    print 'block size =', blockSize&lt;br /&gt;
    p += 4  &lt;br /&gt;
&lt;br /&gt;
    if block == 0x0910:&lt;br /&gt;
        parseGeometryBlock(s[p : p + blockSize])&lt;br /&gt;
    elif block == 0x0907:&lt;br /&gt;
        parseMaterialBlock(s[p : p + blockSize])&lt;br /&gt;
    elif block == 0x0922:&lt;br /&gt;
        parseAuthorBlock(s[p : p + blockSize])&lt;br /&gt;
    elif block == 0x0912:&lt;br /&gt;
        parseUserDataBlock(s[p : p + blockSize])&lt;br /&gt;
    elif block == 0x0925:&lt;br /&gt;
        parseLODBlock(s[p : p + blockSize])&lt;br /&gt;
    elif block == 0x0903:&lt;br /&gt;
        parseFlagsBlock(s[p : p + blockSize])       &lt;br /&gt;
    else:&lt;br /&gt;
        print 'unknown data =', map(hex, unpack('%dB' % (blockSize,), s[p : p + blockSize]))&lt;br /&gt;
    p += blockSize&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Результат ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
header = 0x7777&lt;br /&gt;
data size = 1113&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===============================================================================&lt;br /&gt;
block = 0x900&lt;br /&gt;
block size = 2&lt;br /&gt;
unknown data = ['0x10', '0x0']&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===============================================================================&lt;br /&gt;
block = 0x912&lt;br /&gt;
block size = 1&lt;br /&gt;
&lt;br /&gt;
user data&lt;br /&gt;
&lt;br /&gt;
user data =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===============================================================================&lt;br /&gt;
block = 0x925&lt;br /&gt;
block size = 1&lt;br /&gt;
&lt;br /&gt;
lod&lt;br /&gt;
&lt;br /&gt;
lod reference =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===============================================================================&lt;br /&gt;
block = 0x903&lt;br /&gt;
block size = 4&lt;br /&gt;
&lt;br /&gt;
flags (model type)&lt;br /&gt;
&lt;br /&gt;
model type = 0x0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===============================================================================&lt;br /&gt;
block = 0x910&lt;br /&gt;
block size = 929&lt;br /&gt;
&lt;br /&gt;
geometry&lt;br /&gt;
&lt;br /&gt;
mesh0 data size = 921&lt;br /&gt;
&lt;br /&gt;
unknown block = 0x1000&lt;br /&gt;
unknown block size = 2&lt;br /&gt;
unknown data = ['0x11', '0x0']&lt;br /&gt;
&lt;br /&gt;
name block = 0x1001&lt;br /&gt;
name block size = 8&lt;br /&gt;
name = Plane10&lt;br /&gt;
&lt;br /&gt;
bbox block = 0x1004&lt;br /&gt;
bbox block size = 24&lt;br /&gt;
bbox min =  (-0.089013084769248962, 0.00091872771736234426, -0.05408264324069023&lt;br /&gt;
1)&lt;br /&gt;
bbox max =  (0.064492635428905487, 0.017687048763036728, 0.050194162875413895)&lt;br /&gt;
&lt;br /&gt;
unknown block = 0x1002&lt;br /&gt;
unknown block size = 1&lt;br /&gt;
unknown data = ['0x5']&lt;br /&gt;
&lt;br /&gt;
unknown block = 0x1010&lt;br /&gt;
unknown block size = 8&lt;br /&gt;
unknown data = ['0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0']&lt;br /&gt;
&lt;br /&gt;
vertices block = 0x1005&lt;br /&gt;
vertices block size = 88&lt;br /&gt;
vertices count = 7&lt;br /&gt;
vertex0 = (-0.0019903033971786499, 0.001169001217931509, 0.0068940594792366028)&lt;br /&gt;
vertex1 = (-0.089013084769248962, 0.00091872771736234426, 0.045723527669906616)&lt;br /&gt;
vertex2 = (0.006468137726187706, 0.0094316964969038963, 0.050194162875413895)&lt;br /&gt;
vertex3 = (-0.039456427097320557, 0.0043633054010570049, -0.039133470505475998)&lt;br /&gt;
vertex4 = (0.023728765547275543, 0.0064991358667612076, -0.054082643240690231)&lt;br /&gt;
vertex5 = (0.031571760773658752, 0.0060988827608525753, 0.0041843997314572334)&lt;br /&gt;
vertex6 = (0.064492635428905487, 0.017687048763036728, -0.038134712725877762)&lt;br /&gt;
&lt;br /&gt;
triangles block = 0x1006&lt;br /&gt;
triangles block size = 148&lt;br /&gt;
triangles count = 6&lt;br /&gt;
triangle0 = (0, 2, 1, 1, 2, 0)&lt;br /&gt;
triangle1 = (0, 8, 3, 7, 1, 6)&lt;br /&gt;
triangle2 = (0, 11, 4, 10, 3, 9)&lt;br /&gt;
triangle3 = (5, 14, 6, 13, 4, 12)&lt;br /&gt;
triangle4 = (0, 17, 2, 16, 5, 15)&lt;br /&gt;
triangle5 = (0, 20, 5, 19, 4, 18)&lt;br /&gt;
&lt;br /&gt;
smoothgroups block = 0x1013&lt;br /&gt;
smoothgroups block size = 24&lt;br /&gt;
triangle0 = 0x1&lt;br /&gt;
triangle1 = 0x1&lt;br /&gt;
triangle2 = 0x1&lt;br /&gt;
triangle3 = 0x1&lt;br /&gt;
triangle4 = 0x1&lt;br /&gt;
triangle5 = 0x1&lt;br /&gt;
&lt;br /&gt;
uv map block = 0x1008&lt;br /&gt;
uv map block size = 193&lt;br /&gt;
count = 21&lt;br /&gt;
uv index = ['0x1', '0x0', '0x0', '0x0', '0x0'] 2&lt;br /&gt;
uv index = ['0x1', '0x0', '0x0', '0x0', '0x0'] 1&lt;br /&gt;
uv index = ['0x1', '0x0', '0x0', '0x0', '0x0'] 0&lt;br /&gt;
uv index = ['0x1', '0x90', '0xdb', '0x11', '0x7'] 12&lt;br /&gt;
uv index = ['0x1', '0x18', '0x87', '0x10', '0x7'] 12&lt;br /&gt;
uv index = ['0x1', '0x80', '0x8c', '0x10', '0x7'] 12&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 1&lt;br /&gt;
uv index = ['0x1', '0x0', '0x0', '0x0', '0x0'] 3&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 0&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 3&lt;br /&gt;
uv index = ['0x1', '0x0', '0x0', '0x0', '0x0'] 4&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 2&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 4&lt;br /&gt;
uv index = ['0x1', '0x0', '0x0', '0x0', '0x0'] 6&lt;br /&gt;
uv index = ['0x1', '0x0', '0x0', '0x0', '0x0'] 5&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 7&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 6&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 5&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 10&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 9&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 8&lt;br /&gt;
&lt;br /&gt;
materials block = 0x1009&lt;br /&gt;
materials block size = 43&lt;br /&gt;
materials count = 1&lt;br /&gt;
material0 name = 01 - Default&lt;br /&gt;
triangles count = 6&lt;br /&gt;
triangles indices = [0, 1, 2, 3, 4, 5]&lt;br /&gt;
&lt;br /&gt;
texcoords block = 0x1012&lt;br /&gt;
texcoords block size = 294&lt;br /&gt;
uv tables count = 2&lt;br /&gt;
name = Texture&lt;br /&gt;
unknown = 2&lt;br /&gt;
layer index = 0&lt;br /&gt;
uvs count = 7&lt;br /&gt;
uv0 = (0.72911489009857178, 0.70259565114974976)&lt;br /&gt;
uv1 = (0.4648970365524292, 0.95080757141113281)&lt;br /&gt;
uv2 = (0.55649280548095703, 0.58906811475753784)&lt;br /&gt;
uv3 = (0.97081756591796875, 0.88250058889389038)&lt;br /&gt;
uv4 = (0.97814416885375977, 0.69620668888092041)&lt;br /&gt;
uv5 = (0.75604760646820068, 0.52614188194274902)&lt;br /&gt;
uv6 = (0.98893237113952637, 0.51763355731964111)&lt;br /&gt;
index0 = 0&lt;br /&gt;
index1 = 1&lt;br /&gt;
index2 = 2&lt;br /&gt;
index3 = 3&lt;br /&gt;
index4 = 4&lt;br /&gt;
index5 = 5&lt;br /&gt;
index6 = 6&lt;br /&gt;
name = Texture&lt;br /&gt;
unknown = 2&lt;br /&gt;
layer index = 1&lt;br /&gt;
uvs count = 11&lt;br /&gt;
uv0 = (0.72911489009857178, 0.70259565114974976)&lt;br /&gt;
uv1 = (0.4648970365524292, 0.95080757141113281)&lt;br /&gt;
uv2 = (0.72911489009857178, 0.70259565114974976)&lt;br /&gt;
uv3 = (0.97081756591796875, 0.88250058889389038)&lt;br /&gt;
uv4 = (0.97814416885375977, 0.69620668888092041)&lt;br /&gt;
uv5 = (0.72911489009857178, 0.70259565114974976)&lt;br /&gt;
uv6 = (0.5510140061378479, 0.58371180295944214)&lt;br /&gt;
uv7 = (0.75604760646820068, 0.52614188194274902)&lt;br /&gt;
uv8 = (0.72911489009857178, 0.70259565114974976)&lt;br /&gt;
uv9 = (0.75604760646820068, 0.52614188194274902)&lt;br /&gt;
uv10 = (0.97814416885375977, 0.69620668888092041)&lt;br /&gt;
index0 = 0&lt;br /&gt;
index1 = 1&lt;br /&gt;
index2 = 0&lt;br /&gt;
index3 = 3&lt;br /&gt;
index4 = 4&lt;br /&gt;
index5 = 0&lt;br /&gt;
index6 = 2&lt;br /&gt;
index7 = 5&lt;br /&gt;
index8 = 0&lt;br /&gt;
index9 = 5&lt;br /&gt;
index10 = 4&lt;br /&gt;
unknown index0 = 1&lt;br /&gt;
unknown index1 = 1&lt;br /&gt;
unknown index2 = 2&lt;br /&gt;
unknown index3 = 2&lt;br /&gt;
unknown index4 = 3&lt;br /&gt;
unknown index5 = 4&lt;br /&gt;
unknown index6 = 4&lt;br /&gt;
unknown index7 = 4&lt;br /&gt;
unknown index8 = 5&lt;br /&gt;
unknown index9 = 5&lt;br /&gt;
unknown index10 = 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===============================================================================&lt;br /&gt;
block = 0x907&lt;br /&gt;
block size = 82&lt;br /&gt;
&lt;br /&gt;
materials&lt;br /&gt;
&lt;br /&gt;
materials count = 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
material0 name = 01 - Default&lt;br /&gt;
engine shader = details\blend&lt;br /&gt;
compiler shader = default&lt;br /&gt;
game material = default&lt;br /&gt;
texture path = det\det_listya&lt;br /&gt;
texture = Texture&lt;br /&gt;
flags (2 sided, etc) = 0x0&lt;br /&gt;
unknown data = ['0x12', '0x1', '0x0', '0x0', '0x1', '0x0', '0x0', '0x0']&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===============================================================================&lt;br /&gt;
block = 0x922&lt;br /&gt;
block size = 38&lt;br /&gt;
&lt;br /&gt;
author&lt;br /&gt;
&lt;br /&gt;
author name = \\SUSHKA\cy-27&lt;br /&gt;
creation date = ['0xf', '0x28', '0x98', '0x43']&lt;br /&gt;
modifier name = \\SUSHKA\cy-27&lt;br /&gt;
modification date = ['0xf', '0x28', '0x98', '0x43']&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Категория:Форматы файлов]]&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9F%D1%80%D0%B5%D1%81%D0%B5%D1%82%D1%8B_XRay_%D0%BC%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%B0%D0%BB%D0%BE%D0%B2</id>
		<title>Пресеты XRay материалов</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9F%D1%80%D0%B5%D1%81%D0%B5%D1%82%D1%8B_XRay_%D0%BC%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%B0%D0%BB%D0%BE%D0%B2"/>
				<updated>2007-06-07T17:50:26Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: обновление данных&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Делитесь своими пресетами материалов. Начальные сведения взяты из официального руководства к SDK.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard wide&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; align=&amp;quot;left&amp;quot; | Terrain Grass&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Double side || no&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Engine || terrain/grass&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Compiler || default&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Material || material/grass&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; align=&amp;quot;left&amp;quot; | Terrain Sand&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Double side || no&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Engine || terrain/sand&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Compiler || default&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Material || material/earth&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; align=&amp;quot;left&amp;quot; | Terrain Asphalt&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Double side || no&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Engine || terrain/asfalt&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Compiler || default&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Material || material/asphalt&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; align=&amp;quot;left&amp;quot; | Пробиваемый металлический лист&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Double side || no&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Engine || default&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Compiler || default&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Material || material/metal_plate&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; align=&amp;quot;left&amp;quot; | Прозрачная металлическая сетка&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Double side || yes&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Engine || def_aref&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Compiler || default&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Material || material/setka_rabica&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; align=&amp;quot;left&amp;quot; | Обычная металлическая поверхность&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Double side || no&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Engine || default&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Compiler || default&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Material || material/metal&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; align=&amp;quot;left&amp;quot; | Деревянные доски&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Double side || no&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Engine || default&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Compiler || default&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Material || material/wooden_board&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; align=&amp;quot;left&amp;quot; | Толстые деревянные изделия&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Double side || no&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Engine || default&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Compiler || default&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Material || material/wood&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; align=&amp;quot;left&amp;quot; | Бетон&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Double side || no&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Engine || default&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Compiler || default&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Material || material/concrete&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; align=&amp;quot;left&amp;quot; | Кирпичная кладка&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Double side || no&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Engine || default&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Compiler || default&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Material || material/bricks&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; align=&amp;quot;left&amp;quot; | Шифер, толь&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Double side || no&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Engine || default&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Compiler || default&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Material || material/shifer&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; align=&amp;quot;left&amp;quot; | Штукатурка&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Double side || no&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Engine || default&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Compiler || default&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Material || material/stucco&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; align=&amp;quot;left&amp;quot; | Земляная насыпь&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Double side || no&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Engine || default&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Compiler || default&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Material || material/earth&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; align=&amp;quot;left&amp;quot; | Невидимая плоскость, указывающая лестницу&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Double side || no&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Engine || def_vertex&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Compiler || def_kolizion_vertex&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Material || material/fake_ladders&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; align=&amp;quot;left&amp;quot; | Невидимая плоскость, ограждающая проход персонажу&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Double side || yes&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Engine || def_vertex&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Compiler || def_kolizion_vertex&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Material || material/fake&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; align=&amp;quot;left&amp;quot; | Разбиваемое стекло&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Double side || yes&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Engine || models/window&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Compiler || def_vertex&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Material || objects/glass&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; align=&amp;quot;left&amp;quot; | Вода&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Double side || no&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Engine || effects/water&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Compiler || def_vertex&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Material || material/water&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[[Категория:SDK]]&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9F%D1%80%D0%BE%D0%B7%D1%80%D0%B0%D1%87%D0%BD%D1%8B%D0%B5_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B._%D0%94%D0%B5%D0%BB%D0%B0%D0%B5%D0%BC_%D0%B2%D0%BE%D0%B4%D1%83_%D0%B8_%D0%BE%D0%BA%D0%BD%D0%B0_%D0%BD%D0%B0_%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D0%B5.</id>
		<title>Прозрачные работы. Делаем воду и окна на уровне.</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9F%D1%80%D0%BE%D0%B7%D1%80%D0%B0%D1%87%D0%BD%D1%8B%D0%B5_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B._%D0%94%D0%B5%D0%BB%D0%B0%D0%B5%D0%BC_%D0%B2%D0%BE%D0%B4%D1%83_%D0%B8_%D0%BE%D0%BA%D0%BD%D0%B0_%D0%BD%D0%B0_%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D0%B5."/>
				<updated>2007-06-07T15:14:23Z</updated>
		
		<summary type="html">&lt;p&gt;Neo: /* Назначение материалов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Введение ==&lt;br /&gt;
В данном уроке попытаюсь показать, как добавить воду на свой уровень, а также застеклить окна в домах. Как всегда я не описываю подробно работу в пакетах 3D моделирования, так как сам только начал их осваивать, но при необходимости могу написать(пиши об этом на странице обсуждения статьи).&lt;br /&gt;
В принципе всё сводится к назначению соответствующих шейдеров на плоскость(см. [[Пресеты XRay материалов]]), о чём и пойдёт речь в данном уроке.&lt;br /&gt;
&lt;br /&gt;
== Создание геометрии ==&lt;br /&gt;
Запускаем свой любимый пакет 3D моделирования(3D Studio Max &amp;amp;&amp;amp; Maya - если ещё не установлены плагины или пакет не настроен соотв. образом, смотри эту [[Создание уровня, пошаговое руководство|статью]] по основам создания уровня). Я предпочитаю работать в максе.&lt;br /&gt;
&lt;br /&gt;
Создаём box, размером допустим 10м*10м*0,1м, он будет основой нашего тестового уровня. Сделаем небольшое углубление, это будет у нас типа яма с водой. Тут же создадим стену с оконными проёмами, выглядеть это будет примерно так:&lt;br /&gt;
{|&lt;br /&gt;
|[[Изображение:3D-max-test-level.jpg|thumb|400px|Тестовый уровень в максе]]&lt;br /&gt;
|[[Изображение:3D-max-planel.jpg|thumb|400px|Плоскости стёкол и воды]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
Теперь создадим плоскости(plane) для стекол и водной глади и займёмся назначением материалов.&lt;br /&gt;
&lt;br /&gt;
== Назначение материалов ==&lt;br /&gt;
Более подробно о создании и настройке XRay материала можно почитать всё в той же [[Создание уровня, пошаговое руководство|статье]] по основам создания уровня.&lt;br /&gt;
Здесь же я приведу только пресеты для стекла и воды.&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot; align=&amp;quot;left&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; align=&amp;quot;left&amp;quot; | Разбиваемое стекло&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Double side || yes&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Engine || models/window&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Compiler || def_vertex&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Material || objects/glass&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; align=&amp;quot;left&amp;quot; | Вода&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Double side || no&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Engine || effects/water&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Compiler || def_vertex&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot; | Material || material/water&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
В качестве текстур воды и стекла я взял стандартные текстуры:&lt;br /&gt;
 * gamedata\textures\water.dds&lt;br /&gt;
 * gamedata\textures\glas\glas_br_01.dds&lt;br /&gt;
Конвертировал их с помощью [http://stalkerin.gameru.net/modules.php?name=Downloads&amp;amp;d_op=viewtheoned&amp;amp;lid=106 этой] утилиты. Распакуйте архив в любое место, поместите нужные *.dds файлы в получившуюся папку и запустите CONV_ALL.BAT, в этой же папке появятся файлы *.tga.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Далее соответственно импортируем уровень и текстуры в редактор, компилируем и в результате получаем в игре результат приведённый на скриншотах ниже.&lt;br /&gt;
В дальнейших планах улучшить качество стекла, точнее качество эффекта разбития стекла, сейчас это непонятно что.&lt;br /&gt;
&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; align=&amp;quot;left&amp;quot;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; |[[Изображение:Ww-in-editor.jpg|thumb|400px|Уровень в редакторе]]&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; |[[Изображение:Ss pavel 06-07-07 12-08-03 (ww).jpg|thumb|400px|Вода в игре]]&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; |[[Изображение:Ss pavel 06-07-07 12-08-20 (ww).jpg|thumb|400px|Стекло в игре]]&lt;br /&gt;
|}&lt;br /&gt;
[[Категория:SDK]]&lt;/div&gt;</summary>
		<author><name>Neo</name></author>	</entry>

	</feed>