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

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A0%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8(%D1%87._3)</id>
		<title>Расширенные настройки(ч. 3)</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A0%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8(%D1%87._3)"/>
				<updated>2012-09-13T04:32:31Z</updated>
		
		<summary type="html">&lt;p&gt;Malandrinus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; align=&amp;quot;right&amp;quot; width=&amp;quot;260&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;background:#5e5e5e;&amp;quot;&lt;br /&gt;
 |-&lt;br /&gt;
 ! style=&amp;quot;background:#ffffff;&amp;quot; align=&amp;quot;left&amp;quot; | Содержание&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;background:#ffffff;&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
{{Шаблон:Содержание руководства по настройке}}&lt;br /&gt;
 |-&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
== Переключатели командной строки ==&lt;br /&gt;
&lt;br /&gt;
Ряд дополнительных команд, которые ты можешь запускать при старте STALKER'а называются Переключателями Командной Строки. Эти «переключатели» - это команды посланные главному исполняемому файлу ''XR_3DA.exe'', говорящие движку выполнить определённые действия при запуске игры. Для использования переключателей командной строки, кликните правой кнопкой мыши на ярлыке STALKER'a и выберите ''«Свойства»''. Далее в поле ''«Объект»'', через пробел от последнего символа, вставьте переключатель(и) которые вы хотите использовать. Например:&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;C:\Program Files\THQ\S.T.A.L.K.E.R. - Shadow of Chernobyl\bin\XR_3DA.exe&amp;quot; -nointro -noprefetch -noshadows''&lt;br /&gt;
&lt;br /&gt;
Переключатели ''-nointro'', ''-noprefetch'' и ''-noshadows'' добавлены для отключения вводных заставок с логотипами, предварительной загрузки информации (ускоряет запуск и загрузку сохранений) и отключения всех не солнечных теней в игре. По другому не возможно использовать предигровые настройки. Ты можешь вернуть настройки в любой момент просто удалив переключатель с ненужной настройкой из ярлыка или создав другой с требуемыми переключателями и использовать его когда ты захочешь запустить игру с другими настройками.&lt;br /&gt;
{{Message_box|&lt;br /&gt;
id = pseudoscience|&lt;br /&gt;
align = left|&lt;br /&gt;
width = 40%|&lt;br /&gt;
backgroundcolor	= #f9f9f9|&lt;br /&gt;
image = Lamp.gif|&lt;br /&gt;
heading	= дополнение от --HikeR 14:17, 31 мая 2007 (MSD)][|&lt;br /&gt;
message = Для различных ситуаций можно создать несколько копий ярлыков для запуска игры с различными параметрами. Например я использую ключ ''-nointro'' для всех вариантов, комбинацию ''-noprefetch -noshadows -nosound -r4xx'' для всяких экспериментов (отключен звук, префетч, тени, форсированно используется DX8, максимально быстрая загрузка), и просто ярлык для обычной игры&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Изображение:STALKER_12.jpg|center|300px]]&lt;br /&gt;
&lt;br /&gt;
Полный список Переключателей Командной Строки для  STALKER'а приведённый ниже сопровождается также кратким пояснение для каждого, где это было возможно. Я протестировал каждый и все переключатели, но некоторые переключатели не имеют видимого эффекта или просто подвешивают игру во время загрузки. Инструкции по предполагаемому использованию наиболее полезных переключателей приведены на протяжении этого гида:&lt;br /&gt;
&lt;br /&gt;
== Полный список ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standart&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Опция||Описание&lt;br /&gt;
|-&lt;br /&gt;
| -_g||Отключает проверку по _g.script?&lt;br /&gt;
|-&lt;br /&gt;
| -batch_benchmark||Запускает бенчмарк&lt;br /&gt;
|-&lt;br /&gt;
| -bug||баг? что-то связанное с отладкой скриптов&lt;br /&gt;
|-&lt;br /&gt;
| -build||Копирует все загружаемые файлы с сервера в корневую папку на локальный комп, т.е с fs_server_root (сервак) -&amp;gt; на ваш комп (fs_root)&lt;br /&gt;
|-&lt;br /&gt;
| -center_screen||Центрирует экран, когда игра запущена в оконном режиме.&lt;br /&gt;
|-&lt;br /&gt;
| -debug_ge||Используется для отладки игровых событий&lt;br /&gt;
|-&lt;br /&gt;
| -depth16||Глубина цветопередачи 16 бит&lt;br /&gt;
|-&lt;br /&gt;
| -designer||Зов Припяти! - убирает многие скриптовые проверки: апдейт погоды, убирание оружия и много чего&lt;br /&gt;
|-&lt;br /&gt;
| -demomode [ ]||Запускает в начале игры заданный в [скобках] ролик с облетом локации&lt;br /&gt;
|-&lt;br /&gt;
| -disasm||записывает в папке логов папку с декомпилеными шейдерами в тестовом виде&lt;br /&gt;
|-&lt;br /&gt;
| -dsound||Использовать DirectSound вместо OpenAL.&lt;br /&gt;
|-&lt;br /&gt;
| -ebuild||Выполняет частичную проверку целостности ресурсов&lt;br /&gt;
|-&lt;br /&gt;
| -file_activity||Записывает в файл активность консоли на протяжении игры.&lt;br /&gt;
|-&lt;br /&gt;
| -fsltx||Инициализация игры через fs.ltx вместо fsgame.ltx Актуально при совмещении X-Ray SDK с игрой. &lt;br /&gt;
|-&lt;br /&gt;
| -gloss||+ ставим любое число и R2_gloss_factor (отражение, намокание поверхностей) становится равным ему без ограничений&lt;br /&gt;
|-&lt;br /&gt;
| -gpu_nopure||Переключает GPU состояние из Pure Hardware (полное ускорение) в simply Hardware (упрощенное ускорение) режим.&lt;br /&gt;
|-&lt;br /&gt;
| -gpu_ref||Switches the GPU state to Reference mode.&lt;br /&gt;
|-&lt;br /&gt;
| -gpu_sw||Переключает GPU режим в Software Renderer(Программное Ускорение).&lt;br /&gt;
|-&lt;br /&gt;
| -i||Отключает захват устройств ввода&lt;br /&gt;
|-&lt;br /&gt;
| -keep_lua||Lua State машина не пересоздаётся при пересоздании симулятора жизни&lt;br /&gt;
|-&lt;br /&gt;
| -launcher||в билдах запускал функцию из библиотеки XRLauncher.dll (появлялось серое окно с настройками)&lt;br /&gt;
|-&lt;br /&gt;
| -load [savegame]||Загружает указанные сохранения при запуске.&lt;br /&gt;
|-&lt;br /&gt;
| -ltx [filename.ltx]||Загружает и исполняет указанный filename.ltx конфигурационный файл. (имеется ввиду свой аналог system.ltx)&lt;br /&gt;
|-&lt;br /&gt;
| -mblur||Позволяет команде r2_mblur исполнятся правильно, если использована.&lt;br /&gt;
|-&lt;br /&gt;
| -mem_debug||Отладка операций с памятью. В релизной версии не работает&lt;br /&gt;
|-&lt;br /&gt;
| -mt_cdb||Разрешает многопоточное создание Collision-базы. Ускоряет загрузку, но очень негативно влияет на фрагментацию памяти&lt;br /&gt;
|-&lt;br /&gt;
| -nes_texture_storing||Заполняет массив необходимых для уровня текстур&lt;br /&gt;
|-&lt;br /&gt;
| -netsim||Включает симуляцию сети&lt;br /&gt;
|-&lt;br /&gt;
| -no_call_stack_assert||Отключает копирование содержимого Call Stack в буфер обмена и вывод его в лог в случае ошибки&lt;br /&gt;
|-&lt;br /&gt;
| -no_direct_connect||Активирует подключение к localhost даже для сингла (на некоторых машинах и настройках не работает)&lt;br /&gt;
|-&lt;br /&gt;
| -no_memory_usage||Отключает сбор статистики использования памяти (т.к. она иногда валится на компьютерах, где другие процессы создают потоки в процессе S.T.A.L.K.E.R., и в этих потоках |- во время сбора статистики по памяти выделяют память из кучи CRT или кучи, полученной с помощью GetProcessHeap())&lt;br /&gt;
|-&lt;br /&gt;
| -no_occq||ЗП c каким-то патчем - запуск без эффекта ambient occqlusion&lt;br /&gt;
|-&lt;br /&gt;
| -nodf24||Включает оптимизацию карт теней для видеокарт ATI&lt;br /&gt;
|-&lt;br /&gt;
| -nodistort||Удаляет эффекты искажения, например тёплый воздух вокруг огня и сворачивания возле аномалий.&lt;br /&gt;
|-&lt;br /&gt;
| -nointro||Пропустить все вступительные ролики/заставки. в Зове Припяти не работает...&lt;br /&gt;
|-&lt;br /&gt;
| -nojit||Отключает Just-In-Time Debugger. То-есть, если игра слетит - лога в буфере обмена не будет.&lt;br /&gt;
|-&lt;br /&gt;
| -nolog||Отключает ведение лога.&lt;br /&gt;
|-&lt;br /&gt;
| -nonvs||Что-то со stansil-буфером для nvidia (либо исправление бага в драйверах, либо оптимизация)&lt;br /&gt;
|-&lt;br /&gt;
| -noprefetch||Отключает предварительную загрузку ресурсов. Игра загружаются быстрее, игровые тормоза могут усилится или привести к зависанию.&lt;br /&gt;
|-&lt;br /&gt;
| -noshadows||Отключает тени от динамических источников света (кроме солнца). Может добавить FPS.&lt;br /&gt;
|-&lt;br /&gt;
| -nosound||Отключает весь звук в игре.&lt;br /&gt;
|-&lt;br /&gt;
| -overlay [директория]||Назначить другую директорию для сохранённых игр/профилей/конфигурационных файлов. (app_data_root)&lt;br /&gt;
|-&lt;br /&gt;
| -pure_alloc||Устанавливает использование visual allocator по умолчанию&lt;br /&gt;
|-&lt;br /&gt;
| -perfhud_hack||Параметр для обмана nVidia PerfHUD-а, говорит о том, что все рендеры доступны. Видимо, при работе с PerfHUD-ом настоящая проверка доступности рендеров не работает&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| -pack [ ]||паковка.. во что не ясно, возможно в .xdb&lt;br /&gt;
|-&lt;br /&gt;
| -psp||Включает режим вида от третьего лица, но есть баги.&lt;br /&gt;
|-&lt;br /&gt;
| -r2||Запускает STALKER в режиме DX9 Полного динамического освещения.&lt;br /&gt;
|-&lt;br /&gt;
| -r2a||Запускает STALKER в режиме DX9 Объектного динамического освещения.&lt;br /&gt;
|-&lt;br /&gt;
| -r4xx||Запускает STALKER в режиме DX8 Статического освещения.&lt;br /&gt;
|-&lt;br /&gt;
| -silent_error_mode||Окно об ошибке не перекрывает все окна (в билдах именно так работало, думаю ЧН и ЗП работать не будет из-за стороннего отладчика)&lt;br /&gt;
|-&lt;br /&gt;
| -sjitter||Устанавливает #define USE_SJITTER=1 при компиляции шейдеров&lt;br /&gt;
|-&lt;br /&gt;
| -skinw||Устанавливает #define SKIN_COLOR=1 при компиляции шейдеров&lt;br /&gt;
|-&lt;br /&gt;
| -skip_memtest|| ЗП отключает проверку кол-ва памяти перед запуском игры - выдает много тормозов, но позволяет ставить текстуры на максимум&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|Следующие переключатели устанавливают размер [http://en.wikipedia.org/wiki/Shadow_mapping карты теней], которая влияет на качество всех теней, похожи на внутриигровую настройку ''качество теней''. Здесь ты можешь точно указать точное высшее разрешение качества теней (т.е. ''-smap2048'', ''-smap3072'' и ''-smap4096'') которое увиличивает качество теней, но уменьшает FPS:&lt;br /&gt;
|-&lt;br /&gt;
| -smap1536||Устанавливает размер карты теней 1536x1536&lt;br /&gt;
|-&lt;br /&gt;
| -smap2048||Устанавливает размер карты теней 2048x2048&lt;br /&gt;
|-&lt;br /&gt;
| -smap2560||Устанавливает размер карты теней 2560x2560&lt;br /&gt;
|-&lt;br /&gt;
| -smap3072||Устанавливает размер карты теней 3072x3072&lt;br /&gt;
|-&lt;br /&gt;
| -smap4096||Устанавливает размер карты теней 4096x4096&lt;br /&gt;
|-&lt;br /&gt;
| -ss_tga||Все скриншоты в игре будут делаться в оба формата: .JPG и высокого качества .TGA формат.&lt;br /&gt;
|-&lt;br /&gt;
| -start [ ]||Загрузка уровня в обход меню, требуется много параметров&lt;br /&gt;
|-&lt;br /&gt;
| -sunfilter||Устанавливает #define USE_SUNFILTER=1 при компиляции шейдеров (На земле появляется большое кол-во перпендикулярных взгляду полос, движутся вместе с камерой) &lt;br /&gt;
|-&lt;br /&gt;
| -svcfg||Устанавливает путь к конфигурационному файлу user.ltx&lt;br /&gt;
|-&lt;br /&gt;
| -tsh||Устанавливает #define USE_TSHADOWS=1 при компиляции шейдеров&lt;br /&gt;
|-&lt;br /&gt;
| -tdemo||В старых билдах, что-то связанно с запуском техдемок&lt;br /&gt;
|-&lt;br /&gt;
| -tdemof||В старых билдах, что-то связанно с запуском техдемок&lt;br /&gt;
|-&lt;br /&gt;
| -techdemo||В старых билдах, что-то связанно с запуском техдемок&lt;br /&gt;
|-&lt;br /&gt;
| -tune||Вылет при запуске. по сути отладочный параметр - включает поддержку внешнего профилировщика&lt;br /&gt;
|-&lt;br /&gt;
| -x86||Запрещает использовать оптимизированные функции движка под разный набор инструкций процессора (MMX, 3DNow, SSE, SSE2, SSE3, SSE4_1, SSE4_2 )&lt;br /&gt;
|-&lt;br /&gt;
| -xclsx||Отладочный параметр - скрывает предупреждения и ошибки, не работает в релизной версии&lt;br /&gt;
|-&lt;br /&gt;
| -$||префикс для консольной команды, которая выполнится при старте уровня&lt;br /&gt;
|}&lt;br /&gt;
Eсли у вас есть определённые знания (а не предположения) о том, что эти переключатели делают и это может быть полезно процитировать, тогда пишите [[Обсуждение:Расширенные настройки(ч. 3)|сюда]].&lt;br /&gt;
&lt;br /&gt;
[[Заключение|Следующая страница]] содержит некоторые умозаключения с несколькими полезными подсказками.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Руководства]]&lt;br /&gt;
[[Категория:Справочники]]&lt;/div&gt;</summary>
		<author><name>Malandrinus</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_%D0%BF%D0%BE_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F%D0%BC_%D0%B8_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B0%D0%BC</id>
		<title>Справочник по функциям и классам</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_%D0%BF%D0%BE_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F%D0%BC_%D0%B8_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B0%D0%BC"/>
				<updated>2009-09-01T22:36:39Z</updated>
		
		<summary type="html">&lt;p&gt;Malandrinus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Посты с форума AMK&lt;br /&gt;
&lt;br /&gt;
==Структура Lua_help==&lt;br /&gt;
Сам фаил можно найти в '''gamedata\scripts\lua_help.script'''&lt;br /&gt;
&amp;lt;code&amp;gt;C++ class [класс] {&lt;br /&gt;
     const [описание1] = [константа1];&lt;br /&gt;
     const [описание2] = [константа2];&lt;br /&gt;
     ...&lt;br /&gt;
     [константы заменяют описания при вызове методов классов];&lt;br /&gt;
     &lt;br /&gt;
     property [свойство1];&lt;br /&gt;
     property [свойство2];&lt;br /&gt;
     ...&lt;br /&gt;
[свойства (property) - это характеристика какого-либо класса, которая может подвергаться мат. операциям, слияниям, присвояниям и пр.&lt;br /&gt;
     читаются через точку: obj.health];&lt;br /&gt;
&lt;br /&gt;
     [глобальная(-ые) функция(-ии), которой вызывается класс];&lt;br /&gt;
     function [метод1] ([аргумент 1 функции 1], [аргумент 2 функции 1]...);&lt;br /&gt;
     function [метод2] ([аргумент 1 функции2]...);&lt;br /&gt;
             ...&lt;br /&gt;
     [методы - это специальные функции, выполняющие операции с классами и возвращающие значения после операций над классами.&lt;br /&gt;
     вызываются через двоеточие: obj:add_animation(...)];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Создание своего класса==&lt;br /&gt;
Свой класс можно добавить так:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
class &amp;quot;my_cool_class&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Здесь &amp;quot;my_cool_class&amp;quot; - имя моего нового класса. Записывается в кавычках, т.е. это строка.&lt;br /&gt;
&lt;br /&gt;
Потом можно добавлять к этому классу свои методы:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
-- это специальный метод - конструктор. Будет вызван при создании класса.&lt;br /&gt;
function my_cool_class:__init(num)&lt;br /&gt;
    self.my_param = num -- добавили в свой класс переменную&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- обычный метод&lt;br /&gt;
function my_cool_class:cool_method_of_my_class()&lt;br /&gt;
    get_console():execute(&amp;quot;lua_bind_in_action_&amp;quot;..self.my_param)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- деструктор, вызывается при сборке объекта сборщиком мусора. Аргументов не имеет (кроме скрытого self. об этом см. далее)&lt;br /&gt;
function my_cool_class:__finalize()&lt;br /&gt;
    get_console():execute(&amp;quot;good_by_&amp;quot;..self.my_param)&lt;br /&gt;
end&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;
local obj1 = my_cool_class(1) -- здесь создаётся новый объект. При этом вызывается конструктор и &lt;br /&gt;
                              -- ему передаются аргументы этого вызова (в данном случае число 1).&lt;br /&gt;
local obj2 = my_cool_class(4)&lt;br /&gt;
obj1:cool_method_of_my_class()&lt;br /&gt;
obj2:cool_method_of_my_class()&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как только объект становится ненужным (т.е. на него больше нет ссылок) он удаляется сборщиком мусора. При этом вызывается его метод __finalize&lt;br /&gt;
&lt;br /&gt;
При чём здесь self.&lt;br /&gt;
self - это скрытый первый аргумент. Конструкция вида:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
function class_name:fun_name(&amp;lt;список аргументов&amp;gt;)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
на самом деле эквивалентна конструкции &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
function class_name.fun_name(self, &amp;lt;список аргументов&amp;gt;)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Обратите внимание на двоеточие в первом случае и точку во втором.&amp;lt;br&amp;gt;&lt;br /&gt;
При вызове метода конструкция вида:&lt;br /&gt;
&lt;br /&gt;
'''object_name:fun_name(&amp;lt;список аргументов&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
эквивалентна конструкции&lt;br /&gt;
&lt;br /&gt;
'''object_name.fun_name(object_name, &amp;lt;список аргументов&amp;gt;)'''&lt;br /&gt;
&lt;br /&gt;
Это означает, что в качестве self как правило передаётся сам же объект. &amp;quot;Как правило&amp;quot; - это потому, что можно в принципе передать что-то другое. Но лучше этого соглашения не нарушать.&lt;br /&gt;
&lt;br /&gt;
Всё это здорово, но какая от этого польза? Ну сделал я свой класс, и что с ним делать?&lt;br /&gt;
&lt;br /&gt;
В общем, классы - это неплохое средство организации своего кода. Владеющие объектно-ориентированным подходом найдут это расширение весьма удобным. В частности такие, ни к чему не привязанные классы, в скриптах сталкера используются в некоторых местах. Однако, настоящая сила этой технологии не в этом. С помощью этой технологии можно расширять классы, экспортированные в Lua со стороны движка игры. Об этом пойдет речь в следующей части.&lt;br /&gt;
&lt;br /&gt;
==Наследование от экспортированных классов==&lt;br /&gt;
Итак, кроме создания собственных классов технология Luabind позволяет создавать класы на основе уже существующих. Это реализовано в виде своеобразного наследования. Делается это с помощью следующей конструкции:&lt;br /&gt;
&lt;br /&gt;
'''class &amp;quot;my_derived_class&amp;quot; (base_class)'''&lt;br /&gt;
&lt;br /&gt;
Здесь:&lt;br /&gt;
&amp;quot;my_derived_class&amp;quot; как и раньше - это имя нового класса.&amp;lt;br&amp;gt;&lt;br /&gt;
base_class - это уже существующий класс, который будет базовым для вновь созданного. Имя выбрано произвольно, но подразумевается, что такой класс экспортирован и предназначен для наследования.&amp;lt;br&amp;gt;&lt;br /&gt;
Далеко не любой класс из экспортированных со стороны хост-приложения можно использовать в качестве базового. На стороне хост-приложения должен быть создан специальный класс-обёртка. Если его нет, то ничего хорошего не выйдет. Скорее всего при попытке использовать унаследованный класс в Lua будут малопонятные проблемы и вылеты, так что надо знать совершенно точно, можно ли от конкретного класса наследовать.&amp;lt;br&amp;gt;&lt;br /&gt;
Вопрос, какой глубины может быть наследование, т.е. можно ли наследовать от производного класса, мне пока до конца не ясен. С другой стороны, в этом практически нет необходимости.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Итак после выполнения указанной конструкции появляется класс my_derived_class, который является копией класса base_class. У него есть в точности те же методы, что и у его базового класса. Пока от этого мало толку. Но теперь можно переопределить методы нашего класса, изменив таким образом его поведение. Делается это так же, как и ранее, но с некоторыми дополнениями.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
-- конструктор&lt;br /&gt;
function my_derived_class:__init(num) super(num)&lt;br /&gt;
end&lt;br /&gt;
-- обычный метод&lt;br /&gt;
function my_cool_class:some_method(&amp;lt;список аргументов&amp;gt;)&lt;br /&gt;
    base_class.some_method(self, &amp;lt;список аргументов&amp;gt;)&lt;br /&gt;
end&lt;br /&gt;
-- деструктор&lt;br /&gt;
function my_cool_class:__finalize()&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На что стОит обратить внимание.&amp;lt;br&amp;gt;&lt;br /&gt;
Во-первых, конструкция super(num). Это вызов конструктора базового класса.&amp;lt;br&amp;gt;&lt;br /&gt;
Во-вторых, для вызова метода базового класса из метода унаследованного используется другая конструкция base_class.some_method(self, ). Здесь надо использовать альтернативную форму вызова метода (с точкой и явным указанием первого аргумента self).&amp;lt;br&amp;gt;&lt;br /&gt;
Наконец, метод __finalize() не требует вызова этого же метода для базового класса, поскольку тот будет вызван автоматически при удалении объекта сборщиком мусора.&lt;br /&gt;
&lt;br /&gt;
Собственно и всё. Теперь можно пользоваться созданным классом: создавать объекты этого класса, вызывать их методы и пр. Здесь уже всё зависит от конкретных целей и требует знания конкретных классов.&lt;br /&gt;
&lt;br /&gt;
==сlass alife_simulator==&lt;br /&gt;
alife_simulator - класс для управления серверными объектами. В игре существует всего один экземпляр такого класса, и получить его можно с помощью вызова глобальной функции alife().&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
level_name(level_id) -- возвращает имя уровня по его id&lt;br /&gt;
create_ammo(&amp;lt;имя секции патронов&amp;gt;, position, lvid, gvid, id, amount) - создание пачек с патронами&lt;br /&gt;
create(&amp;lt;имя секции объекта&amp;gt;, position, lvid, gvid, id) -- создание объектов в инвентаре&lt;br /&gt;
create(&amp;lt;имя секции объекта&amp;gt;, position, lvid, gvid) -- создание объектов на уровне&lt;br /&gt;
во всех функция создания объектов&lt;br /&gt;
position - объект класса vector. Не может быть nil, иначе вылет&lt;br /&gt;
lvid - level vertex id&lt;br /&gt;
gvid - game vertex id&lt;br /&gt;
id - это куда спавним. Если в инвентарь, то указываем id непися или ноль (для актора)&lt;br /&gt;
release(sobj, boolean) -- удаляет объект sobj. Зачем второй булевский аргумент - не известно. &lt;br /&gt;
                          Во всех примерах он либо отсутствует, либо установлен в true&lt;br /&gt;
object(id) -- возвращает серверный объект по его id. Если не нашёл nil&lt;br /&gt;
story_object(sid) -- возвращает серверный объект по его story id. Если не нашёл nil&lt;br /&gt;
actor() -- возвращает серверный объект актора&lt;br /&gt;
set_switch_online(id, boolean) -- переводит в онлайн объект с идентификатором id&lt;br /&gt;
set_switch_offline(id, boolean) -- то же , но в онлайн&lt;br /&gt;
dont_has_info(const number&amp;amp;, string); -- проверка на Неполученный инфопоршень(db.actor:dont_has_info(&amp;quot;infoportion&amp;quot;) &lt;br /&gt;
                                      -- или alife():actor():dont_has_info(&amp;quot;infoportion&amp;quot;)).&lt;br /&gt;
has_info - противоположная&lt;br /&gt;
&lt;br /&gt;
предположительно:&lt;br /&gt;
switch_distance() -- радиус переключения в оффлайн?&lt;br /&gt;
switch_distance(number) -- установка этого радиуса?&lt;br /&gt;
level_id() -- текущий номер уровня ?&lt;br /&gt;
object(string) -- получение объекта оп его имени. Не помню точно, что за имя.&lt;br /&gt;
object(number, boolean) - то же, что и object(number)? на что влияет второй аргумент?&lt;br /&gt;
valid_object_id(number) -- проверка наличия объекта по id?&lt;br /&gt;
alife():create( &amp;lt;индекс объекта в all.spawn&amp;gt; ) -- &lt;br /&gt;
spawn_id(number) -- индекс объекта в all.spawn для объекта с заданным id ?&lt;br /&gt;
&lt;br /&gt;
неизвестно:&lt;br /&gt;
add_out_restriction(cse_alife_monster_abstract*, number);&lt;br /&gt;
set_interactive(number, boolean);&lt;br /&gt;
add_in_restriction(cse_alife_monster_abstract*, number);&lt;br /&gt;
function remove_in_restriction(cse_alife_monster_abstract*, number);&lt;br /&gt;
remove_out_restriction(cse_alife_monster_abstract*, number);&lt;br /&gt;
kill_entity(cse_alife_monster_abstract*, const number&amp;amp;, cse_alife_schedulable*);&lt;br /&gt;
kill_entity(alife_simulator*, cse_alife_monster_abstract*, const number&amp;amp;);&lt;br /&gt;
kill_entity(alife_simulator*, cse_alife_monster_abstract*);&lt;br /&gt;
has_info(const number&amp;amp;, string);&lt;br /&gt;
remove_all_restrictions(number, const enum RestrictionSpace::ERestrictorTypes&amp;amp;);&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;
local sim = alife() -- получаем сам объект класса alife_simulator&lt;br /&gt;
local sactor = sim:actor() -- получаем серверный объект для актора&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==class vector==&lt;br /&gt;
vector - вспомогательный класс, содержащий три координаты, и позволяющий выполнять с ними различные манипуляции. Объекты класса vector являются аргументами многих функций и возвращаются многими функциями. См. например выше про метод create класса alife_simulator. Отдельный объект класса вектор создаётся вызовом глобальной функции vector(). При создании имеет координаты [0,0,0].&lt;br /&gt;
&lt;br /&gt;
===Список методов класса vector===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
v:set_length(number) - оставить направление, изменить длину&lt;br /&gt;
v:normalize(); - сделать длину единичной&lt;br /&gt;
&lt;br /&gt;
v:magnitude() -- длина вектора v&lt;br /&gt;
v1:distance_to(v2) -- расстояние между v1 и v2&lt;br /&gt;
v1:distance_to_sqr(v2) -- квадрат расстояния между v1 и v2&lt;br /&gt;
v1:crossproduct(v2) -- векторное произведение. Возвращает вектор&lt;br /&gt;
v1:dotproduct(v2) -- скалярное произведение. Возвращает число&lt;br /&gt;
v:sub(number); -- вычесть из каждого компонента v число number&lt;br /&gt;
v1:sub(v2); -- вычесть почленно вектор v2 из v1 и поместить в v1&lt;br /&gt;
v1:sub(v2, v3) -- вычесть из v2 - v3 и поместить в v1&lt;br /&gt;
аналогично:&lt;br /&gt;
add - почленное сложение&lt;br /&gt;
mul - почленное умножение&lt;br /&gt;
div - почленное деление&lt;br /&gt;
max/min - почленный максимум/минимум&lt;br /&gt;
v1:clamp(v2) -- почленное обрезание первого вторым&lt;br /&gt;
average -- почленное среднее&lt;br /&gt;
invert -- почленная инверсия знака&lt;br /&gt;
&lt;br /&gt;
v1:abs(v2); -- копирует почленно положительные компоненты в v1 из v2&lt;br /&gt;
lerp(v1, v2, number) -- линейная интерполяция между двумя векторами&lt;br /&gt;
-- если number больше 1, то выходит за них - экстраполяция&lt;br /&gt;
&lt;br /&gt;
v1:reflect(v2, v3) - должно быть отражение одного вектора от плоскости, определяемой другим. Не проверял&lt;br /&gt;
v1:slide(v2, v3); - вероятно, проекция одного вектора на плоскость, определяемую другим. Не уверен&lt;br /&gt;
v1:distance_to_xz(v2) - учитывая, что плоскость XZ - это плоскость параллельная земле, то возможно это &lt;br /&gt;
                        длина проекции на землю пути от точки до точки. Не проверял&lt;br /&gt;
&lt;br /&gt;
v:getP() - зенитный угол в радианах (угол наклона над плоскостью XZ )&lt;br /&gt;
v:getH() - азимутальный угол в радианах (угол в плоскости XZ между проекцией вектора на эту плоскость и осью Z)&lt;br /&gt;
setHP - соответственно для установки этих значений&lt;br /&gt;
v1:align() - выравнивает вектор вдоль оси x или z и нормирует его. Значение по y игнорируется. &lt;br /&gt;
             В итоге всегда возвращается одно из четырёх значений ([1,0,0], [-1,0,0], [0,0,1], [0,0,-1])&lt;br /&gt;
v4:mad(v1,v2,v3) -- бешеная операция =) умножить почленно второе на третье и сложить с &lt;br /&gt;
                    первым, т.е. v4 = v1 + v2*v3 (название операции mad == mul + add)&lt;br /&gt;
v1:inertion(v2, number) -- v1 = v2 + (v1-v2)*number (тоже почленно)&lt;br /&gt;
v1:similar(v2, number) -- сравнение векторов на равенство с погрешностью number. Выдаёт 1 или 0&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;
local v1 = vector()&lt;br /&gt;
v1:set(1,2,3)&lt;br /&gt;
local v2 = vector():set(4,5,6)&lt;br /&gt;
local dist = v1:distance_to(v2)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==class fcolor==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
C++ class fcolor {&lt;br /&gt;
    property a; --альфа-цвет, отвечающий за прозрачность.&lt;br /&gt;
    property b; --blue-цвет, отвечающий за синий оттенок цвета.&lt;br /&gt;
    property g; --green-цвет, отвечающий за зелёный оттенок цвета.&lt;br /&gt;
    property r; --red-цвет, отвечающий за красный оттенок цвет.&lt;br /&gt;
&lt;br /&gt;
    fcolor ();&lt;br /&gt;
&lt;br /&gt;
    function set(number, number, number, number); --установка цвета (r,g,b,a)&lt;br /&gt;
    function set(const fcolor&amp;amp;); --установка цвета по уже имеющемуся классу &amp;quot;fcolor()&amp;quot;&lt;br /&gt;
    function set(number); -- не знаю. предполагаю, что есть несколько заранее подготовленных цветов с индексами для каждого.&lt;br /&gt;
&lt;br /&gt;
};&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;
color = fcolor()&lt;br /&gt;
color.a = 50&lt;br /&gt;
color.g = 255&lt;br /&gt;
color.r = 100&lt;br /&gt;
color.b = 50&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
или&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
color = fcolor()&lt;br /&gt;
color:set(100,255,50,50)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==class hit==&lt;br /&gt;
Бывают случаи, при которых необходимо нанести некоторый урон неписю или мобу, при этом имитировав попадание в него. Для этого существует метод класса game_object:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
function hit(hit*);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Чтобы использовать этот метод, нужно указать аргументы. В данном случае имеет объект другого класса - hit. Вот его описание:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
C++ class hit {&lt;br /&gt;
    const burn = 0; --здесь идут константы типов урона, используемых в свойстве &amp;quot;type&amp;quot;. Все мы прекрасно знаем, что означает каждый.&lt;br /&gt;
    const chemical_burn = 6;&lt;br /&gt;
    const dummy = 11;&lt;br /&gt;
    const explosion = 7;&lt;br /&gt;
    const fire_wound = 8;&lt;br /&gt;
    const radiation = 4;&lt;br /&gt;
    const shock = 1;&lt;br /&gt;
    const strike = 2;&lt;br /&gt;
    const telepatic = 5;&lt;br /&gt;
    const wound = 3;&lt;br /&gt;
&lt;br /&gt;
    property direction; --дирекция урона&lt;br /&gt;
    property draftsman; --обозначает персонажа, нанёсшего урон.&lt;br /&gt;
    property impulse; --импульс урона&lt;br /&gt;
    property power; --сила урона&lt;br /&gt;
    property type; -- тип урона (см. константы)&lt;br /&gt;
&lt;br /&gt;
    hit ();&lt;br /&gt;
    hit (const hit*);&lt;br /&gt;
&lt;br /&gt;
    function bone(string); --метод с указанием кости урона&lt;br /&gt;
&lt;br /&gt;
};&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;
hit = hit() -- создание объекта класса hit&lt;br /&gt;
hit.direction = vector():set(1,0,0) --дирекция по оси x&lt;br /&gt;
hit.draftsman = db.actor --нанёс урон актор&lt;br /&gt;
hit.impulse = 600 --импульс&lt;br /&gt;
hit.power = 1.45 --хит&lt;br /&gt;
hit.type = 2 --тип урона - выстрел&lt;br /&gt;
hit:bone(&amp;quot;bip01_head&amp;quot;) -- удар приходится на голову&lt;br /&gt;
obj:hit(hit)&lt;br /&gt;
-- наносим урон&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Функции времени&amp;quot;==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
time_global() -- реальное время (в миллисекундах) с начала запуска программы&lt;br /&gt;
game.time() -- игровое время (в игровых миллисекундах) с начала игры (т.е. с начала прохождения игры)&lt;br /&gt;
level.get_time_days() -- день месяца по игровому времени&lt;br /&gt;
level.get_time_hours() -- час текущего игрового дня&lt;br /&gt;
level.get_time_minutes() -- минута текущего игрового часа&lt;br /&gt;
&lt;br /&gt;
level.get_time_factor() -- возвращает отношение скорости течения игрового времени к скорости реального &lt;br /&gt;
                        --(game_time_speed / real_time_speed)&lt;br /&gt;
level.set_time_factor(number) -- устанавливает это отношение&lt;br /&gt;
&lt;br /&gt;
game.get_game_time() -- возвращает игровое время в виде объекта класса CTime. Класс CTime я опишу подробно &lt;br /&gt;
                     -- как-нибудь потом, а пока опишу только пару его методов.&lt;br /&gt;
конструктор. Вызывается через пространство имён game&lt;br /&gt;
game.CTime()&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;
year, month, day = 1 &lt;br /&gt;
hour, min, sek, ms = 0&lt;br /&gt;
CTime.set(year, month, day, hour, min, sek, ms) -- устанавливает все данные о времени&lt;br /&gt;
метод CTime.get описан так:&lt;br /&gt;
function get(number&amp;amp;, number&amp;amp;, number&amp;amp;, number&amp;amp;, number&amp;amp;, number&amp;amp;, number&amp;amp;);&lt;br /&gt;
что наводит на мысль о семи аргументах. однако с точки зрения Lua этот метод не принимает аргументов, зато возвращает семь значений. &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
====Пример использования обоих методов:====&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
local t = game.CTime() -- создания объекта с дефолтовыми значнеиями&lt;br /&gt;
t:set(2009, 7, 11, 8, 11, 22, 333) -- установили все значения&lt;br /&gt;
&lt;br /&gt;
local y,m,d,h,min,sec,ms = t:get() -- получили все значения&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
===Класс CTime (неразобранный)===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
C++ class CTime {&lt;br /&gt;
const DateToDay = 0;&lt;br /&gt;
const DateToMonth = 1;&lt;br /&gt;
const DateToYear = 2;&lt;br /&gt;
const TimeToHours = 0;&lt;br /&gt;
const TimeToMilisecs = 3;&lt;br /&gt;
const TimeToMinutes = 1;&lt;br /&gt;
const TimeToSeconds = 2;&lt;br /&gt;
&lt;br /&gt;
CTime ();&lt;br /&gt;
CTime (const CTime&amp;amp;);&lt;br /&gt;
&lt;br /&gt;
function sub(CTime*);&lt;br /&gt;
function timeToString(number);&lt;br /&gt;
function dateToString(number);&lt;br /&gt;
operator ==(const CTime&amp;amp;, CTime);&lt;br /&gt;
function get(number&amp;amp;, number&amp;amp;, number&amp;amp;, number&amp;amp;, number&amp;amp;, number&amp;amp;, number&amp;amp;);&lt;br /&gt;
function set(number, number, number, number, number, number, number);&lt;br /&gt;
function setHMSms(number, number, number, number);&lt;br /&gt;
function diffSec(CTime*);&lt;br /&gt;
operator &amp;lt;(const CTime&amp;amp;, CTime);&lt;br /&gt;
operator +(CTime&amp;amp;, CTime);&lt;br /&gt;
operator &amp;gt;=(const CTime&amp;amp;, CTime);&lt;br /&gt;
function setHMS(number, number, number);&lt;br /&gt;
operator &amp;gt;(const CTime&amp;amp;, CTime);&lt;br /&gt;
operator -(CTime&amp;amp;, CTime);&lt;br /&gt;
operator &amp;lt;=(const CTime&amp;amp;, CTime);&lt;br /&gt;
function add(CTime*);&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==класс CUIScriptWnd==&lt;br /&gt;
CUIScriptWnd(); --для работы с окном...&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    function _construct();&lt;br /&gt;
    function Register(CUIWindow*);&lt;br /&gt;
    function Register(CUIWindow*, string);&lt;br /&gt;
    function Enable(boolean);        --вкл/выкл&lt;br /&gt;
    function SetHeight(number);  --установка высоты&lt;br /&gt;
    function GetFrameLineWnd(string);&lt;br /&gt;
    function SetHolder(CDialogHolder*);&lt;br /&gt;
    function GetWidth() const;  --получение ширины контрола&lt;br /&gt;
    function GetCheckButton(string);--Получение состояния checkBox ,на выходе true или false?&lt;br /&gt;
    function DetachChild(CUIWindow*);&lt;br /&gt;
    function SetPPMode();&lt;br /&gt;
    function SetFont(CGameFont*);  --установка шрифта по имени&lt;br /&gt;
    function IsShown();                --проверка видно ли контрол иль нет?&lt;br /&gt;
    function Show(boolean);            --показывать контолили нет?&lt;br /&gt;
    function GetHeight() const;        --возвращает высоту&lt;br /&gt;
    function SetWidth(number);        --устанавливает ширину&lt;br /&gt;
    function GetListWndEx(string);&lt;br /&gt;
    function IsEnabled();&lt;br /&gt;
    function ResetPPMode();&lt;br /&gt;
    function GetPropertiesBox(string);&lt;br /&gt;
    function GetFont();                --возвращает шрифт установленный setFont?&lt;br /&gt;
    function Update();&lt;br /&gt;
    function AddCallback(string, number, const function&amp;lt;void&amp;gt;&amp;amp;); --соответские контрола с действие?&lt;br /&gt;
    function AddCallback(string, number, const function&amp;lt;void&amp;gt;&amp;amp;, object);--соответские контрола с действие?&lt;br /&gt;
    function GetButton(string);--Получаем последнюю нажатую кнопку?&lt;br /&gt;
    function SetAutoDelete(boolean);&lt;br /&gt;
    function OnKeyboard(number, enum EUIMessages);--Колбек нажатия на клавиатуре&lt;br /&gt;
    function Dispatch(number, number);&lt;br /&gt;
    function GetListWnd(string);--получение окна ListBoxa?&lt;br /&gt;
    function AttachChild(CUIWindow*);&lt;br /&gt;
    function GetStatic(string);--получение текста метки&lt;br /&gt;
    function SetWndPos(number, number);--установка позиции окна(x,y)&lt;br /&gt;
    function GetTabControl(string);&lt;br /&gt;
    function GetRadioButton(string);--состояние RadioButtton на выходите true или false&lt;br /&gt;
    function Init(number, number, number, number);--инициализация окна...читай FormInitializatione (x,y,width,height)&lt;br /&gt;
    function Init(Frect*);--инициализация окна&lt;br /&gt;
    function GetFrameWindow(string);&lt;br /&gt;
    function WindowName();&lt;br /&gt;
    function GetDialogWnd(string);&lt;br /&gt;
    function GetHolder();&lt;br /&gt;
    function SetWndRect(Frect);--установка координат углов&lt;br /&gt;
    function SetWndRect(number, number, number, number);--установка координат углов&lt;br /&gt;
    function GetEditBox(string);--получение текста из ЭдитБокса&lt;br /&gt;
    function SetWindowName(string);--Устанавливаем имя форме(caption)&lt;br /&gt;
    function GetProgressBar(string);&lt;br /&gt;
    function GetMessageBox(string);&lt;br /&gt;
    function SetWndSize(number, number);&lt;br /&gt;
    function Load(string);&lt;br /&gt;
    function IsAutoDelete();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Авторы==&lt;br /&gt;
Статья создана: [[Участник:malandrinus|malandrinus]], [[Участник:IQDDD|IQDDD]], [[Участник:меченый|меченый]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Скрипты]]&lt;/div&gt;</summary>
		<author><name>Malandrinus</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=All.spawn</id>
		<title>All.spawn</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=All.spawn"/>
				<updated>2009-08-02T23:18:00Z</updated>
		
		<summary type="html">&lt;p&gt;Malandrinus: /* ;Что то вроде заголовка */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Формат разобрал Zeed'''&lt;br /&gt;
&lt;br /&gt;
==Формат All.spawn ==&lt;br /&gt;
&amp;lt;big&amp;gt;Содержит в себе точки респавна алайфа(монстров, нпс, заскриптованной техники и т.п.) То есть это наподобие сохраненной игры, изначальное положение всех объектов в мире, после загрузки игра начинает использовать level.spawn от каждого уровня по отдельности, а не общую их сборку - all.spawn&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Cтартовый инвентарь Главного Героя ==&lt;br /&gt;
&lt;br /&gt;
В файле all.spawn по смещению 2E52 прописана часть стартового инвентаря гг:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[spawn]&lt;br /&gt;
wpn_pm&lt;br /&gt;
detector_simple&lt;br /&gt;
novice_outfit&lt;br /&gt;
device_torch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Чтобы найти это место, можно также запустить поиск по слову binoc&lt;br /&gt;
&lt;br /&gt;
Затирая ненужные записи по данному смещению мы убираем ненужные вещи из стартового инвентаря - при старте новой игры в инвентаре их небудет.&lt;br /&gt;
&lt;br /&gt;
===Структура фаила===&lt;br /&gt;
&lt;br /&gt;
===;Что то вроде заголовка===&lt;br /&gt;
&amp;lt;table width=&amp;quot;395&amp;quot;  border=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid black&amp;quot; style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;00 00 00 00&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;Номер раздела&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;2C 00 00 00&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;Длина раздела, начиная с следующей строки&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;08 00 00 00&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;9A 80 C8 32&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;game GUID 1&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;91 73 8F 42&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;game GUID 2&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;B3 3B 35 90&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;game GUID 3&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;3C EA D5 44&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;game GUID 4&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;E2 55 71 D4&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;graph GUID 1&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;50 9A D5 44&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;graph GUID 2&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;AD 4E 45 BD&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;graph GUID 3&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;15 41 3C 23&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;graph GUID 4&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;C1 21 00 00&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;Количество блоков  в разделе spawn&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;12 00 00 00&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;Количество уровней (в данном случае 18)&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===;[[Раздел SPAWN]] (аналог level.spawn)===&lt;br /&gt;
&amp;lt;table width=&amp;quot;405&amp;quot;  border=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid black&amp;quot; style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;   &lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot; width=&amp;quot;116&amp;quot;&amp;gt;01 00 00 00&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot; width=&amp;quot;259&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;Номер раздела&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;94 F6 26 00&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;Длина раздела, начиная со следующей строки&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;00 00 00 00&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;04 00 00 00&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;C1 21 00 00&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;01 00 00 00&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;78 F6 26 00&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;- - - - - -&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;- - - - - -&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;02 00 00 00&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;00 00 00 00&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===;Раздел 2===&lt;br /&gt;
&amp;lt;table width=&amp;quot;391&amp;quot;  border=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid black&amp;quot; style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
   &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot; width=&amp;quot;116&amp;quot;&amp;gt;02 00 00 00&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot; width=&amp;quot;259&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;Номер раздела&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;00 FC 0C 00&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;Длина раздела, начиная со следующей строки&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;- - - - - -&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;- - - - - -&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;99 99 49 41&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===;Раздел GAME (аналог level.game)===&lt;br /&gt;
&amp;lt;table width=&amp;quot;395&amp;quot;  border=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid black&amp;quot; style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&lt;br /&gt;
   &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot; width=&amp;quot;116&amp;quot;&amp;gt;03 00 00 00&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot; width=&amp;quot;259&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;Номер раздела&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;B8 55 10 00&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;Длина раздела, начиная с следующей строки&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;- - - - - -&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;- - - - - -&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td style=&amp;quot;border: 1px solid black&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;Конец файла&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[[Пример #1(вертолет)]]===&lt;br /&gt;
&lt;br /&gt;
===[[БТР в качестве примера]]===&lt;br /&gt;
&lt;br /&gt;
== [[All.spawn(2)|Вторая попытка разбора]] ==&lt;br /&gt;
&lt;br /&gt;
[[Категория:Форматы файлов]]&lt;/div&gt;</summary>
		<author><name>Malandrinus</name></author>	</entry>

	</feed>