<?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=95.27.113.222&amp;*</id>
		<title>S.T.A.L.K.E.R. Inside Wiki - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://stalkerin.gameru.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=95.27.113.222&amp;*"/>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/95.27.113.222"/>
		<updated>2026-06-09T09:59:00Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.22.6</generator>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B1%D0%B0%D1%82%D0%BD%D0%B8%D0%BA%D0%B0_%D1%81_%D0%B0%D0%B2%D1%82%D0%BE%D0%BF%D0%B5%D1%80%D0%B5%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%BE%D0%BC_%D0%B4%D0%BB%D1%8F_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0_S.T.A.L.K.E.R.</id>
		<title>Создание батника с автоперезапуском для сервера S.T.A.L.K.E.R.</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B1%D0%B0%D1%82%D0%BD%D0%B8%D0%BA%D0%B0_%D1%81_%D0%B0%D0%B2%D1%82%D0%BE%D0%BF%D0%B5%D1%80%D0%B5%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%BE%D0%BC_%D0%B4%D0%BB%D1%8F_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0_S.T.A.L.K.E.R."/>
				<updated>2010-03-10T10:03:31Z</updated>
		
		<summary type="html">&lt;p&gt;95.27.113.222: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Зачем использовать батник для запуска сервера? ==&lt;br /&gt;
&lt;br /&gt;
Этот способ запуска сервера предназначен для решения следующих проблем:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;пропадание из мастер-листа и невозможности подключения клиентов при подключении самого себя к серверу с компьютера на котором запущен этот сервер&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;автоматического перезапуска сервера при вылетах&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;запуска нескольких серверов&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Синтаксис командного файла для ТЧ и ЧН одинаков, но имеются небольшие различия, которые будут указаны.&amp;lt;br&amp;gt;&lt;br /&gt;
Командный файл - это простой текстовый файл с любым именем и расширением *.CMD, который в нашем случае должен находиться в каталоге установки игры в папке \bin\, например:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;E:\Program Files\GSC World Publishing\STALKER\bin\myserver.cmd&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Создается он с помощью системного блокнота, который можно вызвать из меню Пуск&amp;amp;gt;Стандартные, или меню Пуск&amp;amp;gt;Выполнить&amp;amp;gt;notepad. При сохранении файла важно обратить внимание на кодировку, это такой выпадающий список в окне сохранения файла под именем файла, нужно выбрать ANSI. В дальнейшем для редактирования командного файла щелкните по нему правой кнопкой мыши выберите «Изменить» или открыть с помощью Блокнота. При двойном клике по файлу будет выполняться сценарий. &amp;lt;span lang=&amp;quot;ru&amp;quot;&amp;gt;Для тех у кого имя сервера на русском языке отображается некорректно рекомендуется создавать сценарий в текстовом редакторе Bred3 (http://www.astonshell.ru/freeware/bred3) и сохранять в нем в кодировке OEM.&amp;lt;br&amp;gt;&lt;br /&gt;
Сценарий в командном файле выглядит примерно так:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;dedicated\xrEngine.exe -i -nosound -silent_error_mode -fsltx ..\fsgame.ltx -ltx user.ltx -start server(mp_agroprom/dm/ver=1.0/параметр1=значение1/параметр2=значение2/параметр..n=значение..n) client(localhost)&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Здесь на сайте код сценария может отбражаться в несколько строк. В Блокноте этот код должен быть &amp;lt;u&amp;gt;в одной строке&amp;lt;/u&amp;gt;, иначе работать не будет.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Первая часть кода ==&lt;br /&gt;
&lt;br /&gt;
Разберем по порядку:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''dedicated\xrEngine.exe''' — относительный путь к исполняемому файлу сервера ЧН&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''dedicated\XR_3DA.exe''' — относительный путь к исполняемому файлу сервера ТЧ&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''-i''' — отменяет захват устройств ввода. Без этого параметра не будет работать мышь.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''-nosound''' — отключение проигрывания звука на сервере. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''-silent_error_mode''' — отключает окно сообщения об ошибке при вылете сервера, рекомендуется для сервера с автоперезапуском. В некоторых случаях при отсутствии этого параметра сервер не будет перезапущен, пока вы сами не закроете окно с сообщением об ошибке. Также рекомендуется отключить различных отладчиков, отправку отчетов в Microsoft и т. п. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Параметры:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''-fsltx ..\fsgame.ltx -ltx user.ltx''' имеют некоторую зависимость друг от друга, и очень важно их правильно настроить.&lt;br /&gt;
'''-fsltx -''' это параметр, '''..\fsgame.ltx''' — значение этого параметра, '''-ltx''' — параметр, '''user.ltx''' — значение.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Примечание: все файлы с расширением *.ltx являются простыми текстовыми файлами и открываются и редактируются с помощью Блокнота.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Подробнее об -fsltx ..\fsgame.ltx:'''&lt;br /&gt;
Сервер при своей работе производит чтение и запись параметров из различных файлов конфигурации, которые находятся на «путях поддержки».&lt;br /&gt;
Настройка путей поддержки важна для запуска нескольких серверов, использующих различные списки смены карт (мапцикл) и банлисты. Тем не менее, если у вас всего один сервер, либо все серверы используют один и тот же банлист и мапцикл — следует настроить один путь поддержки, отличающийся от пути по умолчанию.&lt;br /&gt;
В параметре '''-fsltx''' нужно указать значение, которое является относительным путем к файлу '''fsgame.ltx''', который находится в каталоге установки игры. Весь путь указывать не нужно, только имя файла. Создайте копию '''fsgame.ltx''', переименуйте его и укажите измененное имя.&lt;br /&gt;
Например:&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: courier new,courier;&amp;quot;&amp;gt;-fsltx ..\myserverfs.ltx&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;background-color: #ffffcc&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;justify&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Далее все файлы, являющиеся переименованными копиями fsgame.ltx, будем называть просто fsgame, независимо от того, как вы назовете файл и сколько копий будете использовать. &amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
Чтобы настроить путь поддержки для сервера, открываем '''fsgame'''. В первой строке вы увидите:&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: courier new,courier;&amp;quot;&amp;gt;$app_data_root$=true|false|C:\Users\Public\Documents\STALKER-STCS\&amp;lt;/span&amp;gt;&lt;br /&gt;
Как видно, в этой строке указан путь к папке, которая и является путем поддержки по умолчанию. Желательно этот путь поменять.&lt;br /&gt;
Например:&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: courier new,courier;&amp;quot;&amp;gt;$app_data_root$=true|false|D:\myservers\myserverDM&amp;lt;span style=&amp;quot;color: #ff0000;&amp;quot;&amp;gt;\&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #ff0000;&amp;quot;&amp;gt;В конце пути обязательно должна быть косая черта&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;table style=&amp;quot;background-color: #ffffcc&amp;quot; border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Далее папку, которую вы назначите путем поддержки для сервера, будем называть app_data, независимо от того, как вы ее назовете и сколько их будете использовать. &amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
Если вы собираетесь запускать несколько серверов, которые будут использовать разные мапциклы и банлисты — так же создайте новый '''fsgame''' и пропишите в нем другую '''app_data''', а в командных сценариях для запуска этих серверов в параметрах '''-fsltx''' впишите свой '''fsgame'''. Вы получите выделенные '''fsgame''' и '''app_data''' для каждого сервера.&lt;br /&gt;
Если вы запускаете несколько серверов, которые будут использовать общие мапцикл и банлист, вам достаточно создать один '''fsgame''' для всех серверов.&lt;br /&gt;
Есть еще один способ изменения '''app_data''' для сервера, отличный от предыдущего. При этом не нужно создавать копии '''fsgame''' и менять '''-fsltx ..\fsgame.ltx'''. Здесь используется дополнительный параметр '''-overlaypath''', в значении которого нужно просто указать путь к '''app_data''' сервера.&amp;lt;br&amp;gt;&lt;br /&gt;
Например:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: courier new,courier;&amp;quot;&amp;gt;-fsltx ..\fsgame.ltx -overlaypath D:\myservers\myserverDM&amp;lt;span style=&amp;quot;color: #ff0000;&amp;quot;&amp;gt;\&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #ff0000;&amp;quot;&amp;gt;В конце пути обязательно должна быть косая черта&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;table style=&amp;quot;background-color: #ffffcc; width: 797px; height: 66px;&amp;quot; border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 100%;&amp;quot;&amp;gt;Примечание: имена каталогов не должны содержать пробелов, в противном случае заключайте их в кавычки.&lt;br /&gt;
Например:&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: courier new,courier;&amp;quot;&amp;gt;-overlaypath «D:\my servers\my server DM\»&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/span&amp;gt;Вы также можете заменить пробелы ''символом подчеркивания'' ''('''_''')''&amp;lt;span style=&amp;quot;font-family: courier new,courier;&amp;quot;&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
Параметр '''-overlaypath''' имеет более высокий приоритет подмены '''app_data'''. Это значит, что если вы используете этот параметр, уже не важно, какой '''fsgame''' вы используете и какой в нем путь к '''app_data'''.&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #ff0000;&amp;quot;&amp;gt;Подменять '''app_data '''параметром '''-overlaypath''' намного проще, но иногда по непонятным причинам этот параметр не работает и сервер падает сразу при запуске. В этой ситуации используйте подмену через&amp;lt;/span&amp;gt;'''&amp;lt;span style=&amp;quot;color: #ff0000;&amp;quot;&amp;gt; fsgame.&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;'''&lt;br /&gt;
В обоих случаях создавать саму папку '''app_data''' на диске необязательно, она будет создана автоматически при запуске сервера.&lt;br /&gt;
'''-ltx user.ltx:'''&lt;br /&gt;
Здесь нужно указать имя файла конфигурации, который лежит в папке '''app_data'''. Именно в нем записаны все параметры сервера. Имя файла — любое, набранное латинскими буквами и не содержащее пробелов, например:&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: courier new,courier;&amp;quot;&amp;gt;-ltx myserverDM.ltx&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;table style=&amp;quot;background-color: #ffffcc&amp;quot; border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Далее файл, указанный в параметре -ltx будет иметь условное имя LTX, независимо от того, как вы его назовете.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
Если несколько серверов используют одну '''app_data''', для каждого сервера нужно указать различные имена файла '''LTX'''. Имя файла не имеет значения, если серверы используют разные '''app_data'''.&lt;br /&gt;
Сам файл '''ltx''' в '''app_data''' создавать  необязательно; если вы запустите сервер с пустой '''app_data''', то в этот файл будут скопированы команды из оригинального '''user.ltx''', который лежит в папке, указанной в оригинальном '''fsgame.ltx'''. В принципе, нет необходимости вписывать команды в '''LTX''', так как все необходимые параметры и настройки игры указываются в командном сценарии, хотя некоторые необязательные параметры читаются только из '''LTX'''. В '''LTX''' нельзя указывать некоторые функциональные команды консоли, такие как бан, кик, смена карты погоды, отмена голосования и т. п.&lt;br /&gt;
'''Зачем такие сложности?'''&lt;br /&gt;
Как говорилось выше, это нужно для серверов, использующих разные мапциклы и банлисты. Также замена '''app_data''' и '''LTX''' для сервера частично решает проблему подключения себя к своему серверу. Это связано с тем, что сама игра тоже использует файлы и параметры из оригинальной '''app_data''', путь к которой указан в оригинальном '''fsgame.ltx''' и '''user.ltx'''. В любом случае, вы можете не менять '''app_data''', но '''LTX''' желательно сменить.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Первая часть командного файла рассмотрена.&lt;br /&gt;
Она может выглядеть так:&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: courier new,courier;&amp;quot;&amp;gt;dedicated\xrEngine.exe -i -nosound -silent_error_mode -fsltx ..\myserverfs.ltx -ltx myserverDM.ltx&amp;lt;/span&amp;gt;&lt;br /&gt;
или так:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: courier new,courier;&amp;quot;&amp;gt;dedicated\xrEngine.exe -i -nosound -silent_error_mode -fsltx ..\fsgame.ltx -overlaypath D:\myservers\myserverDM\ -ltx myserverDM.ltx&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
В следующей части командного файла прописаны параметры и настройки самой игры и сетевые параметры сервера. Эти параметры являются аналогами настроек запуска сервера из интерфейса игры.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Вторая часть кода==&lt;br /&gt;
&lt;br /&gt;
Строка командного файла в этой части выглядит примерно таким образом:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: courier new,courier;&amp;quot;&amp;gt;-start server (mp_agroprom/dm/ver=1.0/параметр1=значение1/параметр2=значение2/параметр..n=значение..n) client(localhost)&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Все по порядку:&lt;br /&gt;
-start server — запускает сервер. Настроек и значений не имеет.&lt;br /&gt;
Первые параметры в скобках для ЧН и ТЧ различны. Они соответствуют параметрам вкладки Сервер интерфейса запуска сервера через игру.&lt;br /&gt;
Рассмотрим параметры для ЧН:&amp;lt;br&amp;gt;&lt;br /&gt;
mp_agroprom — начальная карта при первом запуске сервера. Не имеет значений, так как параметр сам является еще и значением.&lt;br /&gt;
Допустимые значения для карт, поставляемых на установочном диске:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table id=&amp;quot;table5&amp;quot; style=&amp;quot;width: 100%;&amp;quot; border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tbody&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
mp_agroprom — Завод «Агропром»&lt;br /&gt;
mp_atp — АТП&lt;br /&gt;
mp_autostation — Автостанция&lt;br /&gt;
mp_bath — Бассейн (большой)&lt;br /&gt;
mp_darkvalley — Темная долина&lt;br /&gt;
mp_factory -  Завод «Янтарь»&lt;br /&gt;
mp_firestation — Пожарная станция&lt;br /&gt;
mp_garbage — Свалка&lt;br /&gt;
mp_limansk — Лиманск&lt;br /&gt;
mp_lost_village — Заброшенная деревня&lt;br /&gt;
mp_military_1 — Военные склады&lt;br /&gt;
mp_military_2 — Старая деревня&lt;br /&gt;
mp_pool — Бассейн (маленький)&lt;br /&gt;
mp_railroad — Ж/Д станция&lt;br /&gt;
mp_rembasa — Ремонтная база&lt;br /&gt;
mp_rostok — Завод «Росток»&lt;br /&gt;
mp_sport_center — Спортивный центр&lt;br /&gt;
mp_training_camp — Тренировочный лагерь&lt;br /&gt;
mp_workshop — Заброшенная фабрика&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/tbody&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
dm — тип игры. Так же как и карта является значением.&amp;lt;br&amp;gt;&lt;br /&gt;
Допуситые значения:&amp;lt;br&amp;gt;&lt;br /&gt;
dm — Все против всех&amp;lt;br&amp;gt;&lt;br /&gt;
tdm — Команда пртив команды&amp;lt;br&amp;gt;&lt;br /&gt;
ah — Охота за артефактом&amp;lt;br&amp;gt;&lt;br /&gt;
cta — Захват артефакта&amp;lt;br&amp;gt;&lt;br /&gt;
ver=1.0 — просто ver=1.0. Указывается только в ЧН.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примеры:&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: courier new,courier;&amp;quot;&amp;gt;-start server(mp_agroprom/dm/ver=1.0/ &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: courier new,courier;&amp;quot;&amp;gt;-start server(mp_rembasa/tdm/ver=1.0/ &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: courier new,courier;&amp;quot;&amp;gt;-start server(mp_pool/ah/ver=1.0/ &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: courier new,courier;&amp;quot;&amp;gt;-start server(mp_limansk/cta/ver=1.0/ &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
Параметры для ТЧ:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;(testers_mp_agroprom/deathmatch&amp;lt;br&amp;gt;&lt;br /&gt;
testers_mp_agroprom — начальная карта.&amp;lt;br&amp;gt;&lt;br /&gt;
Названия карт, поставляемых на установочном диске:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
testers_mp_agroprom — Завод «Агропром»&amp;lt;br&amp;gt;&lt;br /&gt;
testers_mp_atp — АТП&amp;lt;br&amp;gt;&lt;br /&gt;
testers_mp_darkvalley — Темная долина&amp;lt;br&amp;gt;&lt;br /&gt;
testers_mp_factory -  Завод «Янтарь»&amp;lt;br&amp;gt;&lt;br /&gt;
testers_mp_lost_village — Покинутая деревня&amp;lt;br&amp;gt;&lt;br /&gt;
testers_mp_military_1 — Военные склады&amp;lt;br&amp;gt;&lt;br /&gt;
testers_mp_pool — Бассейн&amp;lt;br&amp;gt;&lt;br /&gt;
testers_mp_railroad — Ж/Д станция&amp;lt;br&amp;gt;&lt;br /&gt;
testers_mp_rostok — Завод «Росток»&amp;lt;br&amp;gt;&lt;br /&gt;
testers_mp_workshop — Брошенная фабрика&amp;lt;br&amp;gt;&lt;br /&gt;
mp_military_2 — mp_military_2&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
deathmatch — режим игры.&amp;lt;br&amp;gt;&lt;br /&gt;
Допустимые режимы:&amp;lt;br&amp;gt;&lt;br /&gt;
deathmatch — Все против всех&amp;lt;br /&amp;gt; teamdeathmatch — Команда против команды&amp;lt;br /&amp;gt; artefacthunt — Охота за артефактом&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Примеры:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: courier new,courier;&amp;quot;&amp;gt;-start server(testers_mp_agroprom/deathmatch&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: courier new,courier;&amp;quot;&amp;gt;-start server(testers_mp_pool/teamdeathmatch&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: courier new,courier;&amp;quot;&amp;gt;-start server(testers_mp_railroad/ artefacthunt&amp;lt;/span&amp;gt;&lt;br /&gt;
Чтобы организовать мапцикл (смена карт после окончания матча) нужно создать в папке app_data сервера текстовый файл maprot_list.ltx и в нем прописать карты в той последовательности, в которой они будут автоматически меняться по окончании матча.&amp;lt;br&amp;gt;&lt;br /&gt;
Содержимое файла maprot_list.ltx с полным списком карт мапцикла для ЧН, поставляемых на установочном диске:&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;table id=&amp;quot;table5&amp;quot; style=&amp;quot;width: 100%;&amp;quot; border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap mp_agroprom/ver=1.0&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap mp_atp/ver=1.0&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap mp_autostation/ver=1.0&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap mp_bath/ver=1.0&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap mp_darkvalley/ver=1.0&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap mp_factory/ver=1.0&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap mp_firestation/ver=1.0&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap mp_garbage/ver=1.0&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap mp_limansk/ver=1.0&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap mp_lost_village/ver=1.0&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap mp_military_1/ver=1.0&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap mp_military_2/ver=1.0&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap mp_pool/ver=1.0&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap mp_railroad/ver=1.0&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap mp_rembasa/ver=1.0&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap mp_rembasa/ver=1.0&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap mp_rostok/ver=1.0&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap mp_sport_center/ver=1.0&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap mp_training_camp/ver=1.0&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap mp_workshop/ver=1.0&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
Содержимое файла maprot_list.ltx с полным списком карт мапцикла для ТЧ, поставляемых на установочном диске:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table id=&amp;quot;table5&amp;quot; style=&amp;quot;width: 100%;&amp;quot; border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap testers_mp_agroprom&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap testers_mp_atp&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap testers_mp_darkvalley&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap testers_mp_factory&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap testers_mp_lost_village&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap testers_mp_military_1&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap testers_mp_pool&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap testers_mp_railroad&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap testers_mp_rostok&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap testers_mp_workshop&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;sv_addmap mp_military_2&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
Карты в maprot_list.ltx можно прописывать в любой последовательности и в любом количестве, также допускается повторно прописывать одну и ту же карту.&amp;lt;br&amp;gt;&lt;br /&gt;
Если в папке app_data отсутствует maprot_list.ltx, то мапцикла на сервере не будет, но игроки смогут переключаться на другие карты голосованием.&amp;lt;br&amp;gt;&lt;br /&gt;
Если несколько серверов используют одну app_data, то соответственно они смогут использовать только один на всех мапцикл.&amp;lt;/p&amp;gt;&lt;br /&gt;
Чтобы особо не мучиться с прописыванием карт в maprot_list.ltx, создайте сервер через игровой интерфейс, на вкладке сервер укажите нужные вам карты и запустите сервер. В оригинальной app_data найдите maprot_list.ltx и скопируйте его в app_data своего сервера. Выключите сервер, запущенный через интерфейс игры.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;hr width=&amp;quot;100%&amp;quot; size=&amp;quot;2&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/p&amp;gt;&lt;br /&gt;
Большинство следующих параметров командного файла соответствуют тем параметрам, которые находятся на вкладке '''Опции''' интерфейса запуска.&amp;lt;/p&amp;gt;&lt;br /&gt;
Они имеют следующий синтаксис:&amp;lt;/p&amp;gt;&lt;br /&gt;
/параметр1=значение1/параметр2=значение2/параметр..n=значение..n&amp;lt;/p&amp;gt;&lt;br /&gt;
Значения этих параметров дублируются в файле LTX. Значения прописанные в командном файле имеют более высокий приоритет чем значения в LTX, если они различны.&amp;lt;/p&amp;gt;&lt;br /&gt;
Каждый режим игры имеет свои специфические параметры.&amp;lt;/p&amp;gt;&lt;br /&gt;
Рассмотрим эти параметры:&amp;lt;/p&amp;gt;&lt;br /&gt;
'''Общие параметры для всех типов игры:'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table id=&amp;quot;table2&amp;quot; border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tbody&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot; bordercolor=&amp;quot;#000000&amp;quot;&amp;gt;Параметр&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot; bordercolor=&amp;quot;#000000&amp;quot;&amp;gt;Описание&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; bordercolor=&amp;quot;#000000&amp;quot;&amp;gt;Значения&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; width=&amp;quot;30%&amp;quot; align=&amp;quot;center&amp;quot; bordercolor=&amp;quot;#000000&amp;quot;&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&amp;gt;hname&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;Имя сервера&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Например: /hname=My Server/&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; width=&amp;quot;30%&amp;quot;&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&amp;gt;maxplayers&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;Максимальное количество игроков на сервере&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;2-32&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; width=&amp;quot;30%&amp;quot;&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&amp;gt;psw&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;Пароль для входа на сервер&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Необязательный&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; width=&amp;quot;30%&amp;quot;&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 rowspan=&amp;quot;2&amp;quot;&amp;gt;public&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; align=&amp;quot;left&amp;quot;&amp;gt;0 — Сервер в локальной сети&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; width=&amp;quot;30%&amp;quot;&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 colspan=&amp;quot;2&amp;quot; align=&amp;quot;left&amp;quot;&amp;gt;1 — Интернет сервер&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; width=&amp;quot;30%&amp;quot;&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&amp;gt;portsv&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;Номер порта сервера&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;1-65535&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;3&amp;quot; width=&amp;quot;30%&amp;quot;&amp;gt;Эти три параметра решают проблему выпадения сервера из мастер-листа, при подключении самого себя к серверу.&lt;br /&gt;
&amp;lt;p&amp;gt;Более подробная информация дана ниже.&amp;lt;/p&amp;gt;&lt;br /&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&amp;gt;portgs&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;Порт GameSpy&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;1-65535&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&amp;gt;portcl&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;Порт клиента. Прописывается в самом конце сценария.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;1-65535&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 rowspan=&amp;quot;2&amp;quot;&amp;gt;battleye&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Античит&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;1-включен&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;2&amp;quot; width=&amp;quot;30%&amp;quot;&amp;gt;Работает, если public=1&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 colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;0-выключен&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 rowspan=&amp;quot;5&amp;quot;&amp;gt;estime&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Начальное время суток в игре.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;00:00-23:59&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; width=&amp;quot;30%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p align=&amp;quot;center&amp;quot;&amp;gt;От времени суток зависит погода&amp;lt;/p&amp;gt;&lt;br /&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 width=&amp;quot;15%&amp;quot;&amp;gt;Ясная&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p align=&amp;quot;center&amp;quot;&amp;gt;9:00&amp;lt;/p&amp;gt;&lt;br /&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 width=&amp;quot;15%&amp;quot;&amp;gt;Облачная&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p align=&amp;quot;center&amp;quot;&amp;gt;13:00&amp;lt;/p&amp;gt;&lt;br /&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 width=&amp;quot;15%&amp;quot;&amp;gt;Дождь&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;16:00&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 width=&amp;quot;15%&amp;quot;&amp;gt;Ночь&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;01:00&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&amp;gt;etimef&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;Скорость изменения погоды&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;0.0-100.0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; width=&amp;quot;30%&amp;quot;&amp;gt;Десятичное число с одним знаком после точки. Оптимальное значение 1.0&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 rowspan=&amp;quot;2&amp;quot;&amp;gt;ans&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Аномалии&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;0-выключены&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;2&amp;quot; width=&amp;quot;30%&amp;quot;&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 colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;1-включены&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 rowspan=&amp;quot;2&amp;quot;&amp;gt;anslen&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Период работы аномалий&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;0-бесконечные&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;2&amp;quot; width=&amp;quot;30%&amp;quot;&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 colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;1-180 — время в минутах&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 rowspan=&amp;quot;2&amp;quot;&amp;gt;pdahunt&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;+100р за поднятый рюкзак&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;0-нет&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;2&amp;quot; width=&amp;quot;30%&amp;quot;&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 colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;1-да&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 rowspan=&amp;quot;2&amp;quot;&amp;gt;warmup&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Разогрев&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;0-выключен&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;2&amp;quot; width=&amp;quot;30%&amp;quot;&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 colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;1-3600 — время в секундах&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 rowspan=&amp;quot;2&amp;quot;&amp;gt;timelimit&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Время матча&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;0-бесконечный&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;2&amp;quot; width=&amp;quot;30%&amp;quot;&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 colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;1-180 — время в минутах&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 rowspan=&amp;quot;2&amp;quot;&amp;gt;dmgblock&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Время неуязвимости после рождения&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;0-отключено&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;2&amp;quot; width=&amp;quot;30%&amp;quot;&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 colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;1-600 время секундах&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 rowspan=&amp;quot;2&amp;quot;&amp;gt;dmbi&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Индикатор неуязвимости&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;0-выключен&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;2&amp;quot; width=&amp;quot;30%&amp;quot;&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 colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;1-включен&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 rowspan=&amp;quot;2&amp;quot;&amp;gt;fraglimit&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Лимит фрагов&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;0-бесконечные&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;2&amp;quot; width=&amp;quot;30%&amp;quot;&amp;gt;Используется только для режимов DM и TDM&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 colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;1-100&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 rowspan=&amp;quot;7&amp;quot;&amp;gt;spectrmds&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Настройка режимов наблюдения&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p align=&amp;quot;center&amp;quot;&amp;gt;Бит&amp;lt;a name=&amp;quot;spectrsumm&amp;quot; title=&amp;quot;spectrsumm&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p align=&amp;quot;center&amp;quot;&amp;gt;Значение&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;7&amp;quot; width=&amp;quot;30%&amp;quot;&amp;gt;Сумма битовых флагов. &amp;lt;a href=&amp;quot;#votesumm&amp;quot;&amp;gt;Подробнее&amp;lt;/a&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 width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&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 width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;От 1 лица&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 width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&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 width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;8&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;От 3 лица&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 width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;16&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&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 width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&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 rowspan=&amp;quot;10&amp;quot;&amp;gt;vote&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;10&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Включение определенных пунктов голосования&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p align=&amp;quot;center&amp;quot;&amp;gt;Бит&amp;lt;a name=&amp;quot;votetable&amp;quot; title=&amp;quot;votetable&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p align=&amp;quot;center&amp;quot;&amp;gt;Значение&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;10&amp;quot; width=&amp;quot;30%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Сумма битовых флагов. &amp;lt;a href=&amp;quot;#votesumm&amp;quot;&amp;gt;Подробнее&amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#checksumm&amp;quot;&amp;gt; &amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Аналог: команда консоли  SV_VOTE_ENABLED&amp;lt;/p&amp;gt;&lt;br /&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 width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&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 width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&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 width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&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 width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&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 width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;8&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&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 width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;16&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&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 width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;32&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&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 width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;64&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&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 width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;128&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&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 rowspan=&amp;quot;2&amp;quot;&amp;gt;frcrspwn&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Принудительное рождение&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;0-выключено&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;2&amp;quot; width=&amp;quot;30%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p align=&amp;quot;center&amp;quot;&amp;gt;Для DM и TDM&amp;lt;/p&amp;gt;&lt;br /&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 colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;1-3600-время в секундах. Не забывайте что иногда игрокам нужно зайти в магазин&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/tbody&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;'''Общие настройки всех командных режимов: '''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table id=&amp;quot;table3&amp;quot; border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tbody&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot; bordercolor=&amp;quot;#000000&amp;quot;&amp;gt;Параметр&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot; bordercolor=&amp;quot;#000000&amp;quot;&amp;gt;Описание&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot; bordercolor=&amp;quot;#000000&amp;quot;&amp;gt;Значения&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;30%&amp;quot; align=&amp;quot;center&amp;quot; bordercolor=&amp;quot;#000000&amp;quot;&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 rowspan=&amp;quot;2&amp;quot;&amp;gt;abalance&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Автобаланс команд&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;0-выключен&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;2&amp;quot; width=&amp;quot;30%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p align=&amp;quot;left&amp;quot;&amp;gt;Производится после окончания матча за счет игроков набравших наименьшее количество очков&amp;lt;/p&amp;gt;&lt;br /&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 align=&amp;quot;center&amp;quot;&amp;gt;1-включен&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 rowspan=&amp;quot;2&amp;quot;&amp;gt;aswap&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Автосмена команд&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;0-выключен&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;2&amp;quot; width=&amp;quot;30%&amp;quot;&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 align=&amp;quot;center&amp;quot;&amp;gt;1-включен&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 rowspan=&amp;quot;2&amp;quot;&amp;gt;fi&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Иконка над головами игроков своей команды&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;0-выключен&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;2&amp;quot; width=&amp;quot;30%&amp;quot;&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 align=&amp;quot;center&amp;quot;&amp;gt;1-включен&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 rowspan=&amp;quot;2&amp;quot;&amp;gt;fn&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Имена над головами игроков своей команды&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;0 — только тогда, когда клавиша CapsLock нажата&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;2&amp;quot; width=&amp;quot;30%&amp;quot;&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 align=&amp;quot;center&amp;quot;&amp;gt;1 — CapsLock действует как переключатель&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&amp;gt;ffire&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;Коэффициент повреждения, наносимого игроками одной команды друг другу.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;0.0-2.0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;1.0 = 100 %, 2.0 = 200 %&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/tbody&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;'''Настройки только для режимов AH и CTA:'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table id=&amp;quot;table4&amp;quot; border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tbody&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot; bordercolor=&amp;quot;#000000&amp;quot;&amp;gt;Параметр&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot; bordercolor=&amp;quot;#000000&amp;quot;&amp;gt;Описание&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot; bordercolor=&amp;quot;#000000&amp;quot;&amp;gt;Значения&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;30%&amp;quot; align=&amp;quot;center&amp;quot; bordercolor=&amp;quot;#000000&amp;quot;&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&amp;gt;anum&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;Количество артефактов&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;1-100&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;30%&amp;quot;&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 rowspan=&amp;quot;2&amp;quot;&amp;gt;astime&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Артефакт лежит пока его никто не поднимет&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;0-всегда&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;2&amp;quot; width=&amp;quot;30%&amp;quot;&amp;gt;Только для AH&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 align=&amp;quot;center&amp;quot;&amp;gt;1-180-время в минутах&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 rowspan=&amp;quot;2&amp;quot;&amp;gt;ardelta&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Задержка артефакта. Время до появления нового&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;0-выключен&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;2&amp;quot; width=&amp;quot;30%&amp;quot;&amp;gt;Только для AH&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 align=&amp;quot;center&amp;quot;&amp;gt;1-600-время в секундах&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 rowspan=&amp;quot;3&amp;quot;&amp;gt;reinf&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Рождение игроков&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;-1 — когда артефакт принесен на базу или одна из команд польностью уничтожена&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;3&amp;quot; width=&amp;quot;30%&amp;quot;&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 align=&amp;quot;center&amp;quot;&amp;gt;0-игроки рождаются когда захотят&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 align=&amp;quot;center&amp;quot;&amp;gt;1-3600-время через которое игроки будут принудительно рождены.&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 rowspan=&amp;quot;2&amp;quot;&amp;gt;artrettime&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Время через которое артефакт вернётся на вашу базу, если противник его потерял&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;0-сразу&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;2&amp;quot; width=&amp;quot;30%&amp;quot;&amp;gt;Только для CTA&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 align=&amp;quot;center&amp;quot;&amp;gt;1-300 время в секундах&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 rowspan=&amp;quot;2&amp;quot;&amp;gt;actret&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Артефакт нужно взять в руки и нажать огонь&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;0-нет&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=&amp;quot;2&amp;quot; width=&amp;quot;30%&amp;quot;&amp;gt;Только CTA&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 align=&amp;quot;center&amp;quot;&amp;gt;1-да&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/tbody&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;'''Настройки клиента:'''&amp;lt;/p&amp;gt;&lt;br /&gt;
К серверу, всегда, даже если на нем никого нет, подключен некий виртуальный игрок. Никто о нем не знает, никто его не видит, но он есть.&amp;lt;/p&amp;gt;&lt;br /&gt;
Параметры подключения такого скрытого игрока прописываются в самом конце строки сценария.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;client(localhost/portcl=4554/name=admin)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
client(localhost — обязательная запись.&amp;lt;/p&amp;gt;&lt;br /&gt;
вместо localhost можно прописать внешний IP-адрес сервера если используется NAT и есть проблемы с подключением самого себя.&amp;lt;/p&amp;gt;&lt;br /&gt;
Ваш внешний IP {rdaddphp file=/mpnscripts/iptxt.php}&amp;lt;/p&amp;gt;&lt;br /&gt;
portcl — описание в таблице выше&amp;lt;/p&amp;gt;&lt;br /&gt;
name — любой набор буквенно-цифровых символов. Необязательный параметр. Может быть опущен.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Все особенности создания командного файла здесь разобраны. Подведем итог.&amp;lt;/p&amp;gt;&lt;br /&gt;
Вот один из примеров запуска сервера DM.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table id=&amp;quot;table5&amp;quot; style=&amp;quot;width: 100%;&amp;quot; border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tbody&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;span style=&amp;quot;font-family: courier new,courier;&amp;quot;&amp;gt;dedicated\xrEngine.exe -i -nosound -silent_error_mode -fsltx ..\myserverfs.ltx -ltx myserver.ltx -start server(mp_agroprom/dm/ver=1.0/public=1/hname=first_dm_server/portsv=4554/portgs=4556/battleye=1/estime=9:00/spectrmds=0/fraglimit=0/timelimit=30/dmgblock=3/dmbi=0/ans=1/anslen=3/warmup=60/pdahunt=1) client(localhost/portcl=4557)&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/tbody&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;В эту строку можно добавить любые параметры из таблицы выше. Все зависит от вашего вкуса и предпочтений.&amp;lt;/p&amp;gt;&lt;br /&gt;
'''Автоперезапуск сервера'''&lt;br /&gt;
Пример:&lt;br /&gt;
:load&lt;br /&gt;
start /wait dedicated\xrEngine.exe -i -nosound -silent_error_mode -fsltx ..\myserverfs.ltx -ltx myserver.ltx -start server(mp_agroprom/dm/ver=1.0/public=1/hname=first_dm_server/portsv=4554/portgs=4556/battleye=1/estime=9:00/spectrmds=0/fraglimit=0/timelimit=30/dmgblock=3/dmbi=0/ans=1/anslen=3/warmup=60/pdahunt=1) client(localhost/portcl=4557)&lt;br /&gt;
goto load&lt;br /&gt;
&lt;br /&gt;
Если добавить строчку из примера перед строкой сценария и соответствующую строчку после, то ваш сервер будет автоматически перезапускаться после вылета.&lt;br /&gt;
Помешать перезапуску сервера может системная служба отправки отчетов в Microsoft, и различные системные отладчики, которые перед тем как закрыть приложение, сообщают об ошибке пользователю. Отключите эти функции в операционной системе.&lt;br /&gt;
&lt;br /&gt;
== Как командный файл может решить проблему выпадения из мастер-листа при подключении к локальному серверу ==&lt;br /&gt;
&lt;br /&gt;
Существует предположение о том, что серверу необходимо указать правильные порты. Для этого нужно в параметрах portsv portgs portcl прописать значения, '''не равные''' 5445 5446 5447 и не равные между собой. Если эти параметры в строке сценария вовсе не указывать, то сервер будет по умолчанию использовать значения 5445 5446 5447. При подключении с локального компьютера на этих портах возникают конфликты, так как игра по умолчанию тоже использует несовместимые порты.&amp;lt;br&amp;gt;&lt;br /&gt;
Порты 5445 5446 5447 предназначены только для подключения с удаленных компьютеров. Если вы запускаете несколько серверов, то значения этих параметров должны различаться не только между собой, но еще и в разных командных файлах. Если выразиться проще, то сервера не должны использовать одинаковые порты. Иначе говоря, серверы не должны использовать порты, занятые другими приложениями.&lt;br /&gt;
Еще одна проблема может возникнуть из-за запрета в роутере или модеме подключения самого себя через внешний адрес. В этой ситуации у вас будет неверный хост. Для решения этой проблемы обратитесь к документации к своему сетевому оборудованию.&lt;br /&gt;
&lt;br /&gt;
== Что такое сумма битовых флагов? ==&lt;br /&gt;
&lt;br /&gt;
Это целое число, являющееся суммой битов включенных элементов. Элементы, биты которых не участвуют в сумме, будут выключены.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;MsoNormal&amp;quot; align=&amp;quot;justify&amp;quot;&amp;gt;Рассмотрим на примере включения выключения пунктов голосования:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;MsoNormal&amp;quot; align=&amp;quot;justify&amp;quot;&amp;gt;Например нам надо выключить пункты '''Изменить погоду''' и '''Рестарт'''. Для составления суммы лучше всего эту ситуацию рассматривать с другой стороны — нужно не выключить эти пункты, а включить все другие кроме этих пунктов.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;MsoNormal&amp;quot; align=&amp;quot;justify&amp;quot;&amp;gt;Смотрим &amp;lt;a href=&amp;quot;#votetable&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color: #000000;&amp;quot;&amp;gt;биты&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt; всех других пунктов кроме  '''Изменить погоду''' и '''Рестарт'''. Такие пункты как '''Все выключены''' и '''Все включены''' в суммах никогда не участвуют.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table id=&amp;quot;table2&amp;quot; border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p align=&amp;quot;center&amp;quot;&amp;gt;Бит&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p align=&amp;quot;center&amp;quot;&amp;gt;Значение&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #0066ff&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: #0066cc&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color: #ffffff;&amp;quot;&amp;gt;0&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: #0066cc; width: 15%;&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color: #ffffff;&amp;quot;&amp;gt;Все выключены&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #0066cc&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color: #ffffff;&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color: #ffffff;&amp;quot;&amp;gt;Все включены&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #0066cc&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color: #ffffff;&amp;quot;&amp;gt;2&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color: #ffffff;&amp;quot;&amp;gt;Рестарт&amp;lt;/span&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 width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&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 width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;8&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&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 width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;16&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&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 width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;32&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Изменить карту&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: #0066cc&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color: #ffffff;&amp;quot;&amp;gt;64&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color: #ffffff;&amp;quot;&amp;gt;Изменить погоду&amp;lt;/span&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 width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;128&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td width=&amp;quot;15%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Режим&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
В итоге vote=4+8+16+32+128=188. Пункты голсования будут выглядеть таким образом:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Изображение:vote_188.jpg]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Включение выключение других пунктов голосования, а так же режимов наблюдения производится аналогичным способом.&amp;lt;br&amp;gt;&lt;br /&gt;
К сожалению, не все важные параметры можно прописать в командном файле, в нем прописываются только жизненно важные. Все остальные пишутся в LTX.&lt;br /&gt;
&lt;br /&gt;
== Параметры, на которые нужно обратить особое внимание (назначаются в LTX) ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table id=&amp;quot;table1&amp;quot; border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th width=&amp;quot;25%&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size: small;&amp;quot;&amp;gt;Команда&amp;lt;/span&amp;gt;&amp;lt;/th&amp;gt;&amp;lt;th width=&amp;quot;25%&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size: small;&amp;quot;&amp;gt;Параметры&amp;lt;/span&amp;gt;&amp;lt;/th&amp;gt;&amp;lt;th width=&amp;quot;50%&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size: small;&amp;quot;&amp;gt;Описание&amp;lt;/span&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;mm_net_con_spectator&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;1,32&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&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&amp;gt;mm_net_con_spectator_on&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;on, off&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&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&amp;gt;sv_bearercantsprint&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;0,1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&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&amp;gt;sv_client_reconnect_time&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;0,60&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&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&amp;gt;sv_console_update_rate&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;1,100&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&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&amp;gt;sv_hail_to_winner_time&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;0,60000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&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&amp;gt;sv_remove_corpse&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;-1,0,1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Удалять тело после смерти игрока (-1 — никогда, 0 — сразу, 1 — по времени в конфигах)&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&amp;gt;sv_remove_weapon&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;-1,0,1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Удалять оружие после смерти игрока (-1 — никогда, 0 — сразу, 1 — по времени в конфигах)&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&amp;gt;sv_dump_online_statistics_period&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;0,60&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Период через который будет сохраняться файл online_dump.ltx&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&amp;gt;sv_statistic_collect&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;0,1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;span lang=&amp;quot;ru&amp;quot;&amp;gt;Р&amp;lt;/span&amp;gt;асширенная статистика в online_dump.ltx&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&amp;gt;sv_vote_participants&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;0,1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&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&amp;gt;sv_vote_quota&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;0.000,1.000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&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&amp;gt;sv_vote_time&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;0.500,10.000&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&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&amp;gt;sv_teamkill_punish&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;0,1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;span lang=&amp;quot;ru&amp;quot;&amp;gt;Кикать за тимкилл&amp;lt;/span&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&amp;gt;sv_teamkill_limit&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;span lang=&amp;quot;ru&amp;quot;&amp;gt;Максимальное количество тимкиллов&amp;lt;/span&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;
&amp;lt;br&amp;gt;&lt;br /&gt;
Автор: Максим «Бармен» Максимов&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Источник: MPNetworks.ru[http://mpnetworks.ru]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Руководства]]&lt;/div&gt;</summary>
		<author><name>95.27.113.222</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_3</id>
		<title>Настройка логики. Часть 3</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_3"/>
				<updated>2010-03-10T09:55:10Z</updated>
		
		<summary type="html">&lt;p&gt;95.27.113.222: /* 3.9.11. Sr_psy_antenna */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Шаблон:Настройка логики}}&lt;br /&gt;
&lt;br /&gt;
==3.8.1. Синтаксис скрипта Logic==&lt;br /&gt;
&lt;br /&gt;
Пример: для того, чтобы персонаж ходил по пути walk1, а при приближении игрока на дистанцию 5 метров, переключался на путь walk2 (но только при условии, что он видит игрока), нужно написать следующее: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = walker1&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[walker1]&amp;lt;br&amp;gt;&lt;br /&gt;
path_walk = walk1&amp;lt;br&amp;gt;&lt;br /&gt;
path_look = look1&amp;lt;br&amp;gt;&lt;br /&gt;
on_actor_dist_le = 5 | walker2&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[walker2]&amp;lt;br&amp;gt;&lt;br /&gt;
path_walk = walk2&amp;lt;br&amp;gt;&lt;br /&gt;
path_look = look2&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Выше рассмотрено безусловное переключение секций. Перед именем секции в фигурных скобках {} можно задавать дополнительные условия, а после имени секции - так называемые &amp;quot;эффекты&amp;quot;, которые заключить в знаки процента: %%. Эффекты будут применены только в случае активации секции. Можно не задавать имя секции, а задать только условия и/или эффекты. Тогда активной останется старая секция, но условия и эффекты будут все равно обработаны. Если все условия в фигурных скобках не выполняются, секция активирована не будет. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
on_actor_dist_le = 5 | {условие} walker2 %эффекты%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Условия могут быть следующими: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+infoportion  - требуется присутствие infoportion у actor&amp;lt;br&amp;gt;&lt;br /&gt;
-infoportion  - требуется отсутствие infoportion у actor&amp;lt;br&amp;gt;&lt;br /&gt;
=func  - требуется, чтобы func вернула true&amp;lt;br&amp;gt;&lt;br /&gt;
!func  - требуется, чтобы func вернулся false&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Эффекты могут быть следующими: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+infoportion  - в случае включения секции у actor будет установлен infoportion&amp;lt;br&amp;gt;&lt;br /&gt;
-infoportion  - в случае включения секции у actor будет убран infoportion&amp;lt;br&amp;gt;&lt;br /&gt;
=func  - в случае включения секции стартует функция func&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Несколько условия или эффектов разделяются пробелами: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
on_actor_dist_le = 5 | {+info1 -info2 +info3} walker2 %+info4 =func%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Можно задавать сразу несколько секций, разделенных запятыми. Порядок обхода при этом - слева направо. После срабатывания первого из условий, обход прекращается. В примере ниже, если установлен info1, будет включена схема walker2, иначе, если установлен info2, будет включена схема walker3, иначе будет включен walker4: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
on_actor_dist_le = 5 | {+info1} walker2, {+info2} walker3, walker4&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В описанном выше поле active секции logic, можно также задавать условия, например: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = {=actor_friend} walker@friendly, walker@enemy&amp;lt;br&amp;gt;&lt;br /&gt;
В логических условиях теперь принимается ключевое слово never, которое означает, что условие ложно. Например:&amp;lt;br&amp;gt;&lt;br /&gt;
combat_ignore_cond = {=actor_enemy =actor_has_suit} always, {=actor_enemy} never %...эффекты...%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вышеприведенная конструкция включает игнорирование боя, если у NPC враг - игрок в костюме, но отключит его, если врагом является игрок, но без костюма, при этом сработают эффекты (%%) секции never. Таким образом, выбор секции never равносилен отсутствию секции (несрабатыванию условия), но эффекты в знаках процента при этом срабатывают.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример работы с секцией nil. Секция nil выводит из-под скриптовых схем персонажа, монстра или объект и отпускает его под управление движка. Это надо если какое-либо условие выполнившись 1 раз больше не нуждается в проверке, при этом экономятся ресурсы машины, которые на каждом апдейте проверяют это условие.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_idle&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_idle]&amp;lt;br&amp;gt;&lt;br /&gt;
on_actor_inside = nil %+esc_actor_inside%&amp;lt;br&amp;gt;&lt;br /&gt;
То есть, при входе актера в рестриктор выдается инфопоршн и рестриктор уходит в секцию nil, больше не проверяя наличие игрока.&amp;lt;br&amp;gt;&lt;br /&gt;
NB: Обратно из секции nil под скрипты объект вернуть уже невозможно! Учитывайте это, используя ее.&lt;br /&gt;
&lt;br /&gt;
==3.8.2. Вот пример достаточно сложной логики:== &lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = walker&amp;lt;br&amp;gt;&lt;br /&gt;
combat_ignore = combat_ignore&amp;lt;br&amp;gt;&lt;br /&gt;
on_hit = hit&amp;lt;br&amp;gt;&lt;br /&gt;
on_death = death&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[hit]&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = %+alert%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[death]&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = %+alert +trup3%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[walker]&amp;lt;br&amp;gt;&lt;br /&gt;
path_walk = walk_svoboda3&amp;lt;br&amp;gt;&lt;br /&gt;
path_look = look_svoboda3&amp;lt;br&amp;gt;&lt;br /&gt;
combat_ignore_cond = {-alert}&amp;lt;br&amp;gt;&lt;br /&gt;
on_timer = 25000 | remark&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[remark]&amp;lt;br&amp;gt;&lt;br /&gt;
anim = idle&amp;lt;br&amp;gt;&lt;br /&gt;
snd = stalker_talk_kampfire&amp;lt;br&amp;gt;&lt;br /&gt;
no_move = true&amp;lt;br&amp;gt;&lt;br /&gt;
no_rotate = true&amp;lt;br&amp;gt;&lt;br /&gt;
on_hit = hit&amp;lt;br&amp;gt;&lt;br /&gt;
on_death = death&amp;lt;br&amp;gt;&lt;br /&gt;
combat_ignore_cond = {-alert}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[combat_ignore]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим ее пошагово. Вначале сталкер работает по схеме walker-a. При этом он игнорирует бой, пока не будет поставлен инфопоршн alert. Он ждет 25 секунд, после чего переходит в схему remark. В ремарке он проигрывает идловую анимацию, говорит на указанные темы, не поворачивается и не двигается и точно также игнорирует бой. Если по нему попадут (on_hit) или убьют (on_death), будет поставлен инфопоршн alert и он перестанет игнорировать бой (понятно, что если он будет трупом, то это ему не поможет, но их в сценке трое, и тогда сорвутся в бой все остальные). Если его убьют, то также будет поставлен инфопоршн trup3 который сообщит о том, что этот сталкер убит.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А  вот логика его противника:&amp;lt;br&amp;gt;&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = walker&amp;lt;br&amp;gt;&lt;br /&gt;
combat_ignore = combat_ignore&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[walker]&amp;lt;br&amp;gt;&lt;br /&gt;
path_walk = soldier_walk1&amp;lt;br&amp;gt;&lt;br /&gt;
path_look = soldier_look1&amp;lt;br&amp;gt;&lt;br /&gt;
combat_ignore_cond = always&amp;lt;br&amp;gt;&lt;br /&gt;
team = assault_group&amp;lt;br&amp;gt;&lt;br /&gt;
on_signal = assault | camper&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[camper]&amp;lt;br&amp;gt;&lt;br /&gt;
path_walk = soldier_walk1_2&amp;lt;br&amp;gt;&lt;br /&gt;
path_look = soldier_look1_2&amp;lt;br&amp;gt;&lt;br /&gt;
radius = 5&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = {+trup1 +trup2 +trup3} walker2&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[walker2]&amp;lt;br&amp;gt;&lt;br /&gt;
path_walk = soldier_walk1_3&amp;lt;br&amp;gt;&lt;br /&gt;
path_look = soldier_look1_3&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[combat_ignore]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Он идет в схеме walker, игнорируя бой (причем игнорируя в любой ситуации). Идет в составе группы assault_group. Когда он приходит в конечную точку маршрута (там он синхронизируется с остальными из группы, это приписано в путях) и получает сигнал assault, то переходит в схему camper. В этой схеме у него не прописан combat_ignore, поэтому он начинает стрелять по противнику. После того, как все трое противников будут убиты, каждый из них, умирая ставит инфопоршн trup1, trup2 или trup3 и когда все трое будут убиты, то он переключится на схему walker2 (подойдет к костру).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9. Схемы логики space_restrictor==&lt;br /&gt;
&lt;br /&gt;
Общее замечание: Чтобы исключить ситуацию, когда актёр проскакивает через рестриктор и тот не успевает сработать, старайтесь ставить рестриктор так, чтоб минимальная ширина была больше 2 метров.&lt;br /&gt;
&lt;br /&gt;
==3.9.1. Схема [sr_idle]==	&lt;br /&gt;
Предназначение данной схемы – включить другую схему при срабатывании одного из стандартных условий логической схемы.&amp;lt;br&amp;gt;&lt;br /&gt;
	Сама по себе схема ничего не делает.&amp;lt;br&amp;gt;&lt;br /&gt;
	Пример настроек рестриктора:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_idle&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_idle]&amp;lt;br&amp;gt;&lt;br /&gt;
on_actor_inside = nil %+esc_actor_inside%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	Обратите внимание, что после срабатывания проверки активная схема переключается в nil, чтобы не продолжать бесполезную проверку на каждом апдейте. Можно не задавать nil.&amp;lt;br&amp;gt;&lt;br /&gt;
Часто эта схема работает вместе со спавнером, рестриктор выдает инфопоршн, при входе в зону, а спавнер по нему уже кого-то спавнит.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
файл \gamedata\scripts\sr_idle.script&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.2. Секция [sr_no_weapon]==&lt;br /&gt;
Данная схема убирает оружие у игрока при входе в зону.&amp;lt;br&amp;gt;&lt;br /&gt;
Пример настроек рестриктора:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_no_weapon&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_no_weapon]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
файл \gamedata\scripts\sr_no_weapon.script&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.3. Секция [sr_sound]==&lt;br /&gt;
&lt;br /&gt;
snd = Перечень имён звуков разделенных запятыми.&lt;br /&gt;
&lt;br /&gt;
type = Типы звуков через запятые. Для удобства введены типы наборов звуков. Т.е., например, чтобы не перечислять каждый раз весь набор звуков скрипа деревянного пола, можно указать тип floor_wooden.&lt;br /&gt;
&lt;br /&gt;
*delay = Задержка перед проигрыванием звука в секундах реального времени, по умолчанию 0.&lt;br /&gt;
&lt;br /&gt;
*idle =  Длина периода игнорирования входа в зону после начала последнего проигранного звука. Чтоб, например, завывание было не чаще, чем раз в несколько минут. В секундах игрового времени. По умолчанию 0.&lt;br /&gt;
&lt;br /&gt;
*rnd = Вероятность (в процентах) того, что звук отыграется. По умолчанию 100.&lt;br /&gt;
&lt;br /&gt;
*position = Задает имя пути, в вершинах которого может отыграться звук. Есть зарезервированное значение random. Оно означает случайное место в радиусе 15…50 метров от игрока. Если этот параметр не задан, то подразумевается позиция игрока.&lt;br /&gt;
&lt;br /&gt;
*slide_velocity = Скорость (м/с) передвижения звука по точкам патрульного пути. По умолчанию - 3&lt;br /&gt;
&lt;br /&gt;
*slide_sound_once = true\false&lt;br /&gt;
	true - проиграть звук один раз, даже если он не дошел до последней точки пути.&lt;br /&gt;
	false – если звук закончился, а до последней точки пути не дошел, запустить его ещё раз. По умолчанию false.&lt;br /&gt;
&lt;br /&gt;
*play_at_actor = true/false Заставляет звук играться от позиции актера постоянно. Если он будет равен true и будет задан путь перемещения звука (или рандом), то мы тупо вылетим.&lt;br /&gt;
&lt;br /&gt;
Предназначение данной схемы: отыграть звук при входе актёра в рестриктор.&lt;br /&gt;
&lt;br /&gt;
Поддерживается sound_end.&lt;br /&gt;
&lt;br /&gt;
Обязательно нужно задать либо snd, либо type. Можно их задать вместе. На базе этих параметров составляется список звуков. При входе актёра в рестриктор отыгрывается случайный звук из этого списка.&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;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_sound&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_sound]&amp;lt;br&amp;gt;&lt;br /&gt;
type = floor_wooden&amp;lt;br&amp;gt;&lt;br /&gt;
snd = ambient\wind1, ambient\sparks1&amp;lt;br&amp;gt;&lt;br /&gt;
rnd = 50&amp;lt;br&amp;gt;&lt;br /&gt;
position = random&amp;lt;br&amp;gt;&lt;br /&gt;
idle = 120&amp;lt;br&amp;gt;&lt;br /&gt;
delay = 3&lt;br /&gt;
&lt;br /&gt;
Есть возможность сделать «скользящий звук». Необходим патрульный путь. Звук начинает отыгрываться с начала пути и перемещается от одной точки пути к другой (по мере их установки на патрульном пути) со скоростью slide_velocity. &lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_sound&lt;br /&gt;
&lt;br /&gt;
[sr_sound]&amp;lt;br&amp;gt;&lt;br /&gt;
type = random&amp;lt;br&amp;gt;&lt;br /&gt;
position = way&amp;lt;br&amp;gt;&lt;br /&gt;
slide_velocity = 8&amp;lt;br&amp;gt;&lt;br /&gt;
slide_sound_once = true&lt;br /&gt;
&lt;br /&gt;
Файл \gamedata\scripts\sr_sound.script&lt;br /&gt;
&lt;br /&gt;
==3.9.4. Секция [sr_tip]==&lt;br /&gt;
Предназначение данной схемы – давать игроку сообщение (подсказку) при входе в рестриктор&lt;br /&gt;
&lt;br /&gt;
name = Название новости.&amp;lt;br&amp;gt;&lt;br /&gt;
type = по умолчанию «news»&amp;lt;br&amp;gt;&lt;br /&gt;
Тип  новостей: «news» – отсылается как глобальная новость, «tips» - отсылается то имени sender-a&lt;br /&gt;
*sender = если тип = «tips», то от sender задаёт условный строковый идентификатор иконки персонажа, от которого якобы пришло сообщение. По умолчанию это иконка торговца.&lt;br /&gt;
&lt;br /&gt;
*cond = Необходимые логические условия, при которых подсказка сработает. По дефолту, сработает при входе в зону.&lt;br /&gt;
&lt;br /&gt;
*single = true/false (по умолчанию false). Если параметр в true, то типс будет выдан только один раз,&lt;br /&gt;
&lt;br /&gt;
Пример настроек рестриктора:&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_tip&lt;br /&gt;
&lt;br /&gt;
[sr_tip]&amp;lt;br&amp;gt;&lt;br /&gt;
name = tips_esc_trader_about_pda&amp;lt;br&amp;gt;&lt;br /&gt;
type = tips&amp;lt;br&amp;gt;&lt;br /&gt;
cond = {+infoportion1 –infoportion2 }&amp;lt;br&amp;gt;&lt;br /&gt;
*showtime = msec – время в миллисекундах, в течение которого сообщение будет находится на экране. – ПОКА НЕ РАБОТАЕТ НОРМАЛЬНО!&lt;br /&gt;
&lt;br /&gt;
Если необходимо проиграть только 1 раз, а это случается часто, то можно добавить следующую строку:&lt;br /&gt;
on_actor_inside = nil &lt;br /&gt;
&lt;br /&gt;
файл \gamedata\scripts\sr_tip.script&lt;br /&gt;
&lt;br /&gt;
==3.9.5. Sr_light==&lt;br /&gt;
Зона, в которой фонарики у неписей будут включены независимо от времени суток.&lt;br /&gt;
&lt;br /&gt;
Работает следующим образом:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_light&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_light]&amp;lt;br&amp;gt;&lt;br /&gt;
light_on = true/false (свет включен/выключен)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Также работает вместе с кондлистом:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_light&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_light]&amp;lt;br&amp;gt;&lt;br /&gt;
light_on = true/false (свет включен/выключен)&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = {+info1} section %+info2%&lt;br /&gt;
&lt;br /&gt;
==3.9.6. Sr_territory==&lt;br /&gt;
&lt;br /&gt;
Занимается эта схема тем, что отлавливает всякие события, происходящие внутри рестриктора.&lt;br /&gt;
Пока что она отлавливает только хиты и смерть сталкеров. Пример использования примерно следующий:&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_territory@outside&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_territory@outside]&amp;lt;br&amp;gt;&lt;br /&gt;
on_actor_inside = sr_territory@inside&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_territory@inside]&amp;lt;br&amp;gt;&lt;br /&gt;
on_actor_outside = sr_territory@outside&amp;lt;br&amp;gt;&lt;br /&gt;
territory_hit = {-bar_dolg_territory_1_hit} %+bar_dolg_territory_1_hit%, {-bar_dolg_territory_2_hit}&amp;lt;br&amp;gt;&lt;br /&gt;
%+bar_dolg_territory_2_hit%, {-bar_dolg_territory_3_hit} %+bar_dolg_territory_3_hit%&lt;br /&gt;
territory_death = {-bar_dolg_territory_kill} %+bar_dolg_territory_kill%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
То есть здесь видно, что когда игрок находится внутри рестриктора, то считается количество нанесенных хитов, а также учитывается был ли кто-то убит или нет. Поскольку схема работает только с игроком – то хиты и смерть засчитываются только от игрока.&lt;br /&gt;
&lt;br /&gt;
==3.9.7. Sr_mapspot==&lt;br /&gt;
&lt;br /&gt;
При входе в рестриктор он сам себя подсвечивает на карте.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Параметры:&amp;lt;br&amp;gt;&lt;br /&gt;
hint - id подсказки в string table (обязательный параметр)&amp;lt;br&amp;gt;&lt;br /&gt;
location - название типа подсветки (не обязательный параметр, по умолчанию &amp;quot;crlc_small&amp;quot;)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример:&amp;lt;br&amp;gt;&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_mapspot&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_mapspot]&amp;lt;br&amp;gt;&lt;br /&gt;
hint = “gar_swamp”&amp;lt;br&amp;gt;&lt;br /&gt;
location = crcl_big&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.8. Sr_particle==&lt;br /&gt;
&lt;br /&gt;
Данная система отыгрывает партиклы как статичные так и движущиеся в указанном месте и в указанное время. Работет она следующим образом:&lt;br /&gt;
&lt;br /&gt;
1) для партикловой системы с путем камеры:&lt;br /&gt;
     [sr_particle]&lt;br /&gt;
     name = explosions\campfire_03          -имя партикловой системы&lt;br /&gt;
     path = particle_test.anm          -имя пути камеры&lt;br /&gt;
     mode = 1 				(обязательно !!!)&lt;br /&gt;
     looped = true/false               		-флаг зацикленности партиклов&lt;br /&gt;
&lt;br /&gt;
(обязательно с расширением ANM !!!) Здесь партиклы будут молча перемещаться по пути.&lt;br /&gt;
          &lt;br /&gt;
2) для партикловой системы с обычным патрульным путем:&lt;br /&gt;
     [sr_particle]&lt;br /&gt;
     name = explosions\campfire_03          -имя партикловой системы&lt;br /&gt;
     path = part_points                   -имя патрульного пути&lt;br /&gt;
     mode = 2 				(обязательно !!!)&lt;br /&gt;
     looped = true/false               -флаг зацикленности партиклов &lt;br /&gt;
&lt;br /&gt;
В вейпоинтах можно задавать флаг s=имя_звуковой_темы и d=число время задержки перед проигрыванием (задается в миллисекундах. Если не задано, то 0). s - имя звуковой темы в sound_themes.ph_snd_themes из которой будет случайно выбран звук для проигрывания во время проигрывания партикла. Звук не зацикливается и играет только один раз.. Результат = партиклы отыгрываются во всех вейпоинтах одновременно (или с задержкой см. выше).&amp;lt;br&amp;gt;&lt;br /&gt;
При looped=true по окончании проигрывания партиклов, они будут запускаться сначала, но уже без задержек. Сигнал particle_end выдаваться не будет. При looped=false сигнал будет выдан, когда все  источники партиклов отыграют. &amp;lt;br&amp;gt;     &lt;br /&gt;
Поддерживается кондлист. Если рестриктор переходит в другую секцию, то автоматически перестают отыгрываться партиклы и замолкают звуки при них. Этот рестриктор является объектом, отслеживающим партиклы и нет никакой необходимости чтобы игрок в него заходил.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.9. Sr_sound_act==&lt;br /&gt;
Итого, схема, которая играет саунд в голове актера. Всякие там переговоры по ПДА и прочие фейки&lt;br /&gt;
&lt;br /&gt;
[sr_sound_act]&amp;lt;br&amp;gt;&lt;br /&gt;
snd = ambient\random\new_drone1     --имя звукового файла&amp;lt;br&amp;gt;&lt;br /&gt;
*delay = 2000                          --задержка перед проигрыванием &amp;lt;br&amp;gt;&lt;br /&gt;
*delay_max = 4000		-- между проигрыванием звука будет взят случайный промежуток между delay и delay_max.&amp;lt;br&amp;gt;&lt;br /&gt;
*on_signal = sound_end | nil           --по сигналу можно перейти в другую секцию.&amp;lt;br&amp;gt;&lt;br /&gt;
theme =  &amp;lt;имя темы из ph_sound_themes&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* stereo = true/false (по умолчанию false). При установке этого параметра к файлу, который задан параметром snd или в звуковой теме будут добавляться (автоматически) суффиксы _r и _l для загрузки левого и правого каналов и, соответственно, вся эта фигня будет играться.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если указывается тема, то звук будет играть зациклено, случайным образом выбирая один из звуков прописанных в теме, если указывается звук, то он отыгрывается один раз. Схема поддерживает кондлист.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.10 Sr_timer==&lt;br /&gt;
&lt;br /&gt;
Пример использования:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_timer@1&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_timer@1]&amp;lt;br&amp;gt;&lt;br /&gt;
type = dec&amp;lt;br&amp;gt;&lt;br /&gt;
start_value = 10000&amp;lt;br&amp;gt;&lt;br /&gt;
on_value = 0 | sr_timer@2&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_timer@2]&amp;lt;br&amp;gt;&lt;br /&gt;
type = inc&amp;lt;br&amp;gt;&lt;br /&gt;
on_value = 15000 | nil %+info1%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Описания полей:&amp;lt;br&amp;gt;&lt;br /&gt;
type - тип счетчика, инкриментирующий(inc) или декриментирующий(dec).&amp;lt;br&amp;gt;&lt;br /&gt;
Если поле не задано -  счетчик будет инкриментирующий&amp;lt;br&amp;gt;&lt;br /&gt;
start_value - начальное значение счетчика в РЕАЛЬНЫХ милисекундах. Для декриментирующих счетчиков задавать обязательно. Для инкриментирующих, если не задано, то считается с 0.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Переходы из секции sr_timer могут быть как по обычным условиям (on_timer, on_info) так и по специфическому условию on_value. В общем случае on_value Можно использовать для производства каких либо действий в зависимости от состояния счетчика. Например:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
on_value = 5000| %+info1% | 1000| %+info2%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.11. Sr_psy_antenna==&lt;br /&gt;
Зоны с такой секцией позволяют управлять эффектами от пси-воздействия (на Янтаре и Радаре). Сейчас можно управлять интенсивностью излучения и интенсивностью получения повреждений.&lt;br /&gt;
&lt;br /&gt;
Способ применения: Расставить зоны, в каждой зоне написать, сколько процентов к интенсивности излучения и повреждения она добавляет/отнимает. Зоны могут быть вложены друг в друга, пересекать друг друга. &lt;br /&gt;
&lt;br /&gt;
eff_intensity = 	- увеличение/уменьшение в % от базового значения интенсивности излучения.&lt;br /&gt;
hit_ intensity = 	- увеличение/уменьшение в % от базового значения наносимого повреждения.&lt;br /&gt;
&lt;br /&gt;
Пример зоны, которая добавляет 70% излучения:&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_psy_antenna&lt;br /&gt;
&lt;br /&gt;
[sr_psy_antenna]&amp;lt;br&amp;gt;&lt;br /&gt;
eff_intensity = 70&amp;lt;br&amp;gt;&lt;br /&gt;
hit_ intensity = 70&lt;br /&gt;
&lt;br /&gt;
Пример зоны, которая убирает 30% излучения:&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_psy_antenna&lt;br /&gt;
&lt;br /&gt;
[sr_psy_antenna]&amp;lt;br&amp;gt;&lt;br /&gt;
intensity = -30&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
в версии '''SOC 1.0000''' добавлена возможность задавать вероятность проявления фантомов и тайминг их &amp;quot;живучести&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
phantom_prob = 40 - вероятность проявления фантомов в процентах&amp;lt;br&amp;gt;&lt;br /&gt;
min_phantom_idle = 3000 - мин время их существования в состоянии idle&amp;lt;br&amp;gt;&lt;br /&gt;
max_phantom_idle = 5000 - макс время их существования в состоянии idle&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.12. Sr_teleport==&lt;br /&gt;
Собственно, телепорт. Настраиваются следующим образом:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_teleport&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_teleport]&amp;lt;br&amp;gt;&lt;br /&gt;
timeout = 0&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
point1 = point1&amp;lt;br&amp;gt;&lt;br /&gt;
look1 = look1&amp;lt;br&amp;gt;&lt;br /&gt;
prob1 = 10&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
point2 = point2&amp;lt;br&amp;gt;&lt;br /&gt;
look2 = look2&amp;lt;br&amp;gt;&lt;br /&gt;
prob2 = 20&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где:&amp;lt;br&amp;gt;&lt;br /&gt;
timeout - задержка в срабатывании телепорта в миллисекундах.&amp;lt;br&amp;gt;&lt;br /&gt;
point - одноточечный патрульный путь куда переместить&amp;lt;br&amp;gt;&lt;br /&gt;
look - одноточечный патрульный путь куда повернуть.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее идут настройки точек назначения с удельными весами. То есть в перечисленном выше примере вероятность телепортнутся во вторую точку в два раза выше, чем в первую. Максимальное количество точек назначения - 10. Телепорты необходимо ставить совместно с особой аномальной зоной, которую сейчас делает Проф. Зона добавит визуализацию и создаст эффект втягивания.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.13. Sr_sleep и настройка снов.==&lt;br /&gt;
&lt;br /&gt;
Появилась возможность задавать зоны сна.&lt;br /&gt;
&lt;br /&gt;
[sr_sleep]&lt;br /&gt;
*cond = &amp;lt;condlist&amp;gt;&lt;br /&gt;
*type = nightmare/normal/happy/all - Задает тип сна разрешенный в данной зоне (по умолчанию all). Влияет (группирует) только на несценарные сны.&lt;br /&gt;
*dream_prob = &amp;lt;число от 0 до 100&amp;gt; - вероятность просмотра несценарных сновидений в данной зоне (по умолчанию 80). В противном случае будет только черный экран.&lt;br /&gt;
&lt;br /&gt;
Необязательное поле cond задает условие(я), при котором в этой зоне можно спать. Сейчас производится индикация зон, где разрешен сон. В левом нижнем углу отображается маленькая иконка легких при входе в такую зону. Вероятно, позже будет изменена на другую.&amp;lt;br&amp;gt;&lt;br /&gt;
Сновидения теперь делятся на сценарные и обычные. Сценарные сновидения отыгрываются один раз при выполнении необходимых условий. Обычные сновидения проигрываются, если нет сценарных или ни одно условие выполнения сценарных не сработало. Можно задавать вероятность отыгрывания обычных сновидений в целом, а также задавать вероятность срабатывания каждого конкретного сновидения в отдельности. Обычным сновидениям можно задавать тип и потом ограничивать по нему сны воспроизводимые в sr_sleep.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В файле misc\dream.ltx задаются настройки снов.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Секция videos.&amp;lt;br&amp;gt;&lt;br /&gt;
Полями задаются пути к видеофайлам со снами.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Секция dreams. Поля:&amp;lt;br&amp;gt;&lt;br /&gt;
regular_probability = &amp;lt;число от 0 до 100&amp;gt; - вероятность проигрывания обычных сновидений в целом &amp;lt;br&amp;gt;&lt;br /&gt;
regular - список секций с настройками для обычных сновидений&amp;lt;br&amp;gt;&lt;br /&gt;
scene - список секций с настройками для сценарных сновидений&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Настройки обычных сновидений:&amp;lt;br&amp;gt;&lt;br /&gt;
dream - имя поля из секции videos&amp;lt;br&amp;gt;&lt;br /&gt;
probability = &amp;lt;число больше 0&amp;gt; - чем больше, тем больше вероятность проигрывания сна.&amp;lt;br&amp;gt;&lt;br /&gt;
type = nightmare/normal/happy - тип сна.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Настройки сценарных сновидений:&amp;lt;br&amp;gt;&lt;br /&gt;
dream - имя поля из секции videos&amp;lt;br&amp;gt;&lt;br /&gt;
cond = &amp;lt;condlist&amp;gt; - условия срабатывания&amp;lt;br&amp;gt;&lt;br /&gt;
to_regular = &amp;lt;вероятность,тип&amp;gt; - необязательное поле. Дает возможность переводить сценарный сон после первого отыгрыша в разряд обычных. &amp;lt;вероятность, тип&amp;gt; аналогичны probability и type из настроек обычных сновидений соответственно.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.14. Sr_cutscene==&lt;br /&gt;
&lt;br /&gt;
	Эта схема предназначена для проведения анимации камеры c некоторым эффектом &lt;br /&gt;
(pp_effector). Последовательность действий, осуществляемых схемой, состоит из мгновенного перемещения игрока в начало пути point и ориентации его взгляда на начало пути look, потери управления игроком и начала анимации камеры cam_effector по завершении которой игрок вновь получает управление.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_cutscene]&amp;lt;br&amp;gt;&lt;br /&gt;
point = &amp;lt;имя пути&amp;gt; - путь в первую точку которого переносится игрок&amp;lt;br&amp;gt;&lt;br /&gt;
look = &amp;lt;имя пути&amp;gt; - путь в первую точку которого смотрит игрок&amp;lt;br&amp;gt;&lt;br /&gt;
*pp_effector = &amp;lt;имя файла с эффектом&amp;gt; - файл, расположенный в папке &amp;lt;br&amp;gt;&lt;br /&gt;
gamedata\anims\ и содержащий эффект (имя файла пишется без расширения)&amp;lt;br&amp;gt;&lt;br /&gt;
cam_effector = &amp;lt;имя файла с анимацией камеры&amp;gt; - файл, расположенный в папке gamedata\anims\camera_effects\ и содержащий анимацию камеры (имя файла пишется без расширения)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.10. Набор дополнительных настроек логики у разных объектов.==&lt;br /&gt;
Для всех физических объектов есть секция ph_idle, поддерживающая кондлист в которую можно при необходимости переводить объекты.&lt;br /&gt;
&lt;br /&gt;
==3.10.1. Схема работы двери, секция [ph_door]==&lt;br /&gt;
&lt;br /&gt;
NB! Для двухстворчатых ворот задается все аналогично.&lt;br /&gt;
&lt;br /&gt;
locked = false\true&amp;lt;br&amp;gt;&lt;br /&gt;
	Заперта ли дверь. По дефолту – false.&lt;br /&gt;
&lt;br /&gt;
Closed = false\true&amp;lt;br&amp;gt;&lt;br /&gt;
	Закрыта ли дверь. По дефолту - true&lt;br /&gt;
&lt;br /&gt;
tip_open = (если locked == false, то tip_door_open, иначе tip_door_locked)&amp;lt;br&amp;gt;&lt;br /&gt;
	Подсказка, которая появляется около прицела при наведении на дверь, если дверь закрыта.&lt;br /&gt;
&lt;br /&gt;
tip_close = (если locked == false, то tip_door_close, иначе пустое значение)&amp;lt;br&amp;gt;&lt;br /&gt;
	Подсказка, которая появляется около прицела при наведении на дверь, если дверь открыта.&lt;br /&gt;
&lt;br /&gt;
snd_init = Звук, который будет отыгран сразу при включении схемы.&lt;br /&gt;
&lt;br /&gt;
snd_open_start = Звук, который будет отыгран при попытке открыть дверь.&lt;br /&gt;
&lt;br /&gt;
snd_close_start = Звук, который будет отыгран при попытке закрыть дверь.&lt;br /&gt;
&lt;br /&gt;
snd_close_stop = Звук, который будет отыгран, когда дверь захлопнется до конца.&lt;br /&gt;
&lt;br /&gt;
Примеры:&amp;lt;br&amp;gt;&lt;br /&gt;
	Если нужно сделать дверь, которая при каком-то событии открывается со щелчком, то можно воспользоваться полем snd_init и переключением схем. В примере ниже при включении схемы ph_door@unlocked проиграется snd_init, т.е. trader_door_unlock:&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = ph_door@locked&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ph_door@locked]&amp;lt;br&amp;gt;&lt;br /&gt;
locked = true&amp;lt;br&amp;gt;&lt;br /&gt;
snd_open_start = trader_door_locked&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = {+esc_trader_can_leave} ph_door@unlocked&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ph_door@unlocked]&amp;lt;br&amp;gt;&lt;br /&gt;
locked = false&amp;lt;br&amp;gt;&lt;br /&gt;
snd_init = trader_door_unlock&amp;lt;br&amp;gt;&lt;br /&gt;
snd_open_start = trader_door_open_start&amp;lt;br&amp;gt;&lt;br /&gt;
snd_close_start = trader_door_close_start&amp;lt;br&amp;gt;&lt;br /&gt;
snd_close_stop = trader_door_close_stop&amp;lt;br&amp;gt;&lt;br /&gt;
файл \gamedata\scripts\ph_door.script&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.10.2. Схема работы кнопки, секция [ph_button]==&lt;br /&gt;
&lt;br /&gt;
При нажатии на кнопку переключает секции и выдает инфопоршн.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active      = ph_button@locked&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ph_button@locked]&amp;lt;br&amp;gt;&lt;br /&gt;
anim_blend  = false&amp;lt;br&amp;gt;&lt;br /&gt;
anim        = button_false&amp;lt;br&amp;gt;&lt;br /&gt;
on_press    = ph_button@unlocked %+cit_jail_door_opened%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
on_press – что происходит при нажатии&amp;lt;br&amp;gt;&lt;br /&gt;
anim – анимация, которая отигрывается при нажатии на кнопку&amp;lt;br&amp;gt;&lt;br /&gt;
anim_blend – плаваня, сглаженная анимация. Может принимать знаечения true\false&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл \Gamedata\scripts\ph_button.script&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*tooltip - gредназначено для того, чтобы задавать текстовую подсказку при наведении на кнопку. Текстовая подсказка нужна для того, чтобы как минимум было понятно, что этот девайс можно нажимать.&amp;lt;br&amp;gt;&lt;br /&gt;
Пример настройки кнопки:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = ph_button@active&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ph_button@active]&amp;lt;br&amp;gt;&lt;br /&gt;
anim = lab_switcher_idle&amp;lt;br&amp;gt;&lt;br /&gt;
tooltip = tips_labx16switcher_press&amp;lt;br&amp;gt;&lt;br /&gt;
on_press = ph_button@deactivated %+terrain_test%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ph_button@deactivated]&amp;lt;br&amp;gt;&lt;br /&gt;
anim = lab_switcher_off&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для того чтобы сообщение не потеряло адекватность при различных настройках клавиатуры сообщение следует писать с использованием токенов. Например:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;string id=&amp;quot;tips_labx16switcher_press&amp;quot;&amp;gt; &lt;br /&gt;
        &amp;lt;text&amp;gt;Чтобы отключить чудо установку нажмите ($$ACTION_USE$$)&amp;lt;/text&amp;gt;&lt;br /&gt;
    &amp;lt;/string&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вот пример кнопки, которая срабатывает не всегда, а по определенному условию:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = ph_button@locked&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ph_button@locked]&amp;lt;br&amp;gt;&lt;br /&gt;
anim = button_false – анимация несрабатывания кнопки.&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = {+val_prisoner_door_unlocked} ph_button@unlocked&amp;lt;br&amp;gt;&lt;br /&gt;
on_press = ph_button@unlocked %+val_prisoner_door_unlocked%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ph_button@unlocked]&amp;lt;br&amp;gt;&lt;br /&gt;
anim = button_true&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = {-val_prisoner_door_unlocked} ph_button@locked&amp;lt;br&amp;gt;&lt;br /&gt;
on_press = ph_button@locked %-val_prisoner_door_unlocked%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[[Часть 4]]===&lt;br /&gt;
&lt;br /&gt;
[[Категория:Скрипты]]&lt;/div&gt;</summary>
		<author><name>95.27.113.222</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_3</id>
		<title>Настройка логики. Часть 3</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_3"/>
				<updated>2010-03-10T09:53:51Z</updated>
		
		<summary type="html">&lt;p&gt;95.27.113.222: /* 3.9.11. Sr_psy_antenna */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Шаблон:Настройка логики}}&lt;br /&gt;
&lt;br /&gt;
==3.8.1. Синтаксис скрипта Logic==&lt;br /&gt;
&lt;br /&gt;
Пример: для того, чтобы персонаж ходил по пути walk1, а при приближении игрока на дистанцию 5 метров, переключался на путь walk2 (но только при условии, что он видит игрока), нужно написать следующее: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = walker1&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[walker1]&amp;lt;br&amp;gt;&lt;br /&gt;
path_walk = walk1&amp;lt;br&amp;gt;&lt;br /&gt;
path_look = look1&amp;lt;br&amp;gt;&lt;br /&gt;
on_actor_dist_le = 5 | walker2&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[walker2]&amp;lt;br&amp;gt;&lt;br /&gt;
path_walk = walk2&amp;lt;br&amp;gt;&lt;br /&gt;
path_look = look2&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Выше рассмотрено безусловное переключение секций. Перед именем секции в фигурных скобках {} можно задавать дополнительные условия, а после имени секции - так называемые &amp;quot;эффекты&amp;quot;, которые заключить в знаки процента: %%. Эффекты будут применены только в случае активации секции. Можно не задавать имя секции, а задать только условия и/или эффекты. Тогда активной останется старая секция, но условия и эффекты будут все равно обработаны. Если все условия в фигурных скобках не выполняются, секция активирована не будет. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
on_actor_dist_le = 5 | {условие} walker2 %эффекты%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Условия могут быть следующими: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+infoportion  - требуется присутствие infoportion у actor&amp;lt;br&amp;gt;&lt;br /&gt;
-infoportion  - требуется отсутствие infoportion у actor&amp;lt;br&amp;gt;&lt;br /&gt;
=func  - требуется, чтобы func вернула true&amp;lt;br&amp;gt;&lt;br /&gt;
!func  - требуется, чтобы func вернулся false&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Эффекты могут быть следующими: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+infoportion  - в случае включения секции у actor будет установлен infoportion&amp;lt;br&amp;gt;&lt;br /&gt;
-infoportion  - в случае включения секции у actor будет убран infoportion&amp;lt;br&amp;gt;&lt;br /&gt;
=func  - в случае включения секции стартует функция func&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Несколько условия или эффектов разделяются пробелами: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
on_actor_dist_le = 5 | {+info1 -info2 +info3} walker2 %+info4 =func%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Можно задавать сразу несколько секций, разделенных запятыми. Порядок обхода при этом - слева направо. После срабатывания первого из условий, обход прекращается. В примере ниже, если установлен info1, будет включена схема walker2, иначе, если установлен info2, будет включена схема walker3, иначе будет включен walker4: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
on_actor_dist_le = 5 | {+info1} walker2, {+info2} walker3, walker4&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В описанном выше поле active секции logic, можно также задавать условия, например: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = {=actor_friend} walker@friendly, walker@enemy&amp;lt;br&amp;gt;&lt;br /&gt;
В логических условиях теперь принимается ключевое слово never, которое означает, что условие ложно. Например:&amp;lt;br&amp;gt;&lt;br /&gt;
combat_ignore_cond = {=actor_enemy =actor_has_suit} always, {=actor_enemy} never %...эффекты...%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вышеприведенная конструкция включает игнорирование боя, если у NPC враг - игрок в костюме, но отключит его, если врагом является игрок, но без костюма, при этом сработают эффекты (%%) секции never. Таким образом, выбор секции never равносилен отсутствию секции (несрабатыванию условия), но эффекты в знаках процента при этом срабатывают.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример работы с секцией nil. Секция nil выводит из-под скриптовых схем персонажа, монстра или объект и отпускает его под управление движка. Это надо если какое-либо условие выполнившись 1 раз больше не нуждается в проверке, при этом экономятся ресурсы машины, которые на каждом апдейте проверяют это условие.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_idle&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_idle]&amp;lt;br&amp;gt;&lt;br /&gt;
on_actor_inside = nil %+esc_actor_inside%&amp;lt;br&amp;gt;&lt;br /&gt;
То есть, при входе актера в рестриктор выдается инфопоршн и рестриктор уходит в секцию nil, больше не проверяя наличие игрока.&amp;lt;br&amp;gt;&lt;br /&gt;
NB: Обратно из секции nil под скрипты объект вернуть уже невозможно! Учитывайте это, используя ее.&lt;br /&gt;
&lt;br /&gt;
==3.8.2. Вот пример достаточно сложной логики:== &lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = walker&amp;lt;br&amp;gt;&lt;br /&gt;
combat_ignore = combat_ignore&amp;lt;br&amp;gt;&lt;br /&gt;
on_hit = hit&amp;lt;br&amp;gt;&lt;br /&gt;
on_death = death&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[hit]&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = %+alert%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[death]&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = %+alert +trup3%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[walker]&amp;lt;br&amp;gt;&lt;br /&gt;
path_walk = walk_svoboda3&amp;lt;br&amp;gt;&lt;br /&gt;
path_look = look_svoboda3&amp;lt;br&amp;gt;&lt;br /&gt;
combat_ignore_cond = {-alert}&amp;lt;br&amp;gt;&lt;br /&gt;
on_timer = 25000 | remark&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[remark]&amp;lt;br&amp;gt;&lt;br /&gt;
anim = idle&amp;lt;br&amp;gt;&lt;br /&gt;
snd = stalker_talk_kampfire&amp;lt;br&amp;gt;&lt;br /&gt;
no_move = true&amp;lt;br&amp;gt;&lt;br /&gt;
no_rotate = true&amp;lt;br&amp;gt;&lt;br /&gt;
on_hit = hit&amp;lt;br&amp;gt;&lt;br /&gt;
on_death = death&amp;lt;br&amp;gt;&lt;br /&gt;
combat_ignore_cond = {-alert}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[combat_ignore]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим ее пошагово. Вначале сталкер работает по схеме walker-a. При этом он игнорирует бой, пока не будет поставлен инфопоршн alert. Он ждет 25 секунд, после чего переходит в схему remark. В ремарке он проигрывает идловую анимацию, говорит на указанные темы, не поворачивается и не двигается и точно также игнорирует бой. Если по нему попадут (on_hit) или убьют (on_death), будет поставлен инфопоршн alert и он перестанет игнорировать бой (понятно, что если он будет трупом, то это ему не поможет, но их в сценке трое, и тогда сорвутся в бой все остальные). Если его убьют, то также будет поставлен инфопоршн trup3 который сообщит о том, что этот сталкер убит.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А  вот логика его противника:&amp;lt;br&amp;gt;&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = walker&amp;lt;br&amp;gt;&lt;br /&gt;
combat_ignore = combat_ignore&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[walker]&amp;lt;br&amp;gt;&lt;br /&gt;
path_walk = soldier_walk1&amp;lt;br&amp;gt;&lt;br /&gt;
path_look = soldier_look1&amp;lt;br&amp;gt;&lt;br /&gt;
combat_ignore_cond = always&amp;lt;br&amp;gt;&lt;br /&gt;
team = assault_group&amp;lt;br&amp;gt;&lt;br /&gt;
on_signal = assault | camper&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[camper]&amp;lt;br&amp;gt;&lt;br /&gt;
path_walk = soldier_walk1_2&amp;lt;br&amp;gt;&lt;br /&gt;
path_look = soldier_look1_2&amp;lt;br&amp;gt;&lt;br /&gt;
radius = 5&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = {+trup1 +trup2 +trup3} walker2&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[walker2]&amp;lt;br&amp;gt;&lt;br /&gt;
path_walk = soldier_walk1_3&amp;lt;br&amp;gt;&lt;br /&gt;
path_look = soldier_look1_3&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[combat_ignore]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Он идет в схеме walker, игнорируя бой (причем игнорируя в любой ситуации). Идет в составе группы assault_group. Когда он приходит в конечную точку маршрута (там он синхронизируется с остальными из группы, это приписано в путях) и получает сигнал assault, то переходит в схему camper. В этой схеме у него не прописан combat_ignore, поэтому он начинает стрелять по противнику. После того, как все трое противников будут убиты, каждый из них, умирая ставит инфопоршн trup1, trup2 или trup3 и когда все трое будут убиты, то он переключится на схему walker2 (подойдет к костру).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9. Схемы логики space_restrictor==&lt;br /&gt;
&lt;br /&gt;
Общее замечание: Чтобы исключить ситуацию, когда актёр проскакивает через рестриктор и тот не успевает сработать, старайтесь ставить рестриктор так, чтоб минимальная ширина была больше 2 метров.&lt;br /&gt;
&lt;br /&gt;
==3.9.1. Схема [sr_idle]==	&lt;br /&gt;
Предназначение данной схемы – включить другую схему при срабатывании одного из стандартных условий логической схемы.&amp;lt;br&amp;gt;&lt;br /&gt;
	Сама по себе схема ничего не делает.&amp;lt;br&amp;gt;&lt;br /&gt;
	Пример настроек рестриктора:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_idle&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_idle]&amp;lt;br&amp;gt;&lt;br /&gt;
on_actor_inside = nil %+esc_actor_inside%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	Обратите внимание, что после срабатывания проверки активная схема переключается в nil, чтобы не продолжать бесполезную проверку на каждом апдейте. Можно не задавать nil.&amp;lt;br&amp;gt;&lt;br /&gt;
Часто эта схема работает вместе со спавнером, рестриктор выдает инфопоршн, при входе в зону, а спавнер по нему уже кого-то спавнит.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
файл \gamedata\scripts\sr_idle.script&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.2. Секция [sr_no_weapon]==&lt;br /&gt;
Данная схема убирает оружие у игрока при входе в зону.&amp;lt;br&amp;gt;&lt;br /&gt;
Пример настроек рестриктора:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_no_weapon&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_no_weapon]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
файл \gamedata\scripts\sr_no_weapon.script&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.3. Секция [sr_sound]==&lt;br /&gt;
&lt;br /&gt;
snd = Перечень имён звуков разделенных запятыми.&lt;br /&gt;
&lt;br /&gt;
type = Типы звуков через запятые. Для удобства введены типы наборов звуков. Т.е., например, чтобы не перечислять каждый раз весь набор звуков скрипа деревянного пола, можно указать тип floor_wooden.&lt;br /&gt;
&lt;br /&gt;
*delay = Задержка перед проигрыванием звука в секундах реального времени, по умолчанию 0.&lt;br /&gt;
&lt;br /&gt;
*idle =  Длина периода игнорирования входа в зону после начала последнего проигранного звука. Чтоб, например, завывание было не чаще, чем раз в несколько минут. В секундах игрового времени. По умолчанию 0.&lt;br /&gt;
&lt;br /&gt;
*rnd = Вероятность (в процентах) того, что звук отыграется. По умолчанию 100.&lt;br /&gt;
&lt;br /&gt;
*position = Задает имя пути, в вершинах которого может отыграться звук. Есть зарезервированное значение random. Оно означает случайное место в радиусе 15…50 метров от игрока. Если этот параметр не задан, то подразумевается позиция игрока.&lt;br /&gt;
&lt;br /&gt;
*slide_velocity = Скорость (м/с) передвижения звука по точкам патрульного пути. По умолчанию - 3&lt;br /&gt;
&lt;br /&gt;
*slide_sound_once = true\false&lt;br /&gt;
	true - проиграть звук один раз, даже если он не дошел до последней точки пути.&lt;br /&gt;
	false – если звук закончился, а до последней точки пути не дошел, запустить его ещё раз. По умолчанию false.&lt;br /&gt;
&lt;br /&gt;
*play_at_actor = true/false Заставляет звук играться от позиции актера постоянно. Если он будет равен true и будет задан путь перемещения звука (или рандом), то мы тупо вылетим.&lt;br /&gt;
&lt;br /&gt;
Предназначение данной схемы: отыграть звук при входе актёра в рестриктор.&lt;br /&gt;
&lt;br /&gt;
Поддерживается sound_end.&lt;br /&gt;
&lt;br /&gt;
Обязательно нужно задать либо snd, либо type. Можно их задать вместе. На базе этих параметров составляется список звуков. При входе актёра в рестриктор отыгрывается случайный звук из этого списка.&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;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_sound&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_sound]&amp;lt;br&amp;gt;&lt;br /&gt;
type = floor_wooden&amp;lt;br&amp;gt;&lt;br /&gt;
snd = ambient\wind1, ambient\sparks1&amp;lt;br&amp;gt;&lt;br /&gt;
rnd = 50&amp;lt;br&amp;gt;&lt;br /&gt;
position = random&amp;lt;br&amp;gt;&lt;br /&gt;
idle = 120&amp;lt;br&amp;gt;&lt;br /&gt;
delay = 3&lt;br /&gt;
&lt;br /&gt;
Есть возможность сделать «скользящий звук». Необходим патрульный путь. Звук начинает отыгрываться с начала пути и перемещается от одной точки пути к другой (по мере их установки на патрульном пути) со скоростью slide_velocity. &lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_sound&lt;br /&gt;
&lt;br /&gt;
[sr_sound]&amp;lt;br&amp;gt;&lt;br /&gt;
type = random&amp;lt;br&amp;gt;&lt;br /&gt;
position = way&amp;lt;br&amp;gt;&lt;br /&gt;
slide_velocity = 8&amp;lt;br&amp;gt;&lt;br /&gt;
slide_sound_once = true&lt;br /&gt;
&lt;br /&gt;
Файл \gamedata\scripts\sr_sound.script&lt;br /&gt;
&lt;br /&gt;
==3.9.4. Секция [sr_tip]==&lt;br /&gt;
Предназначение данной схемы – давать игроку сообщение (подсказку) при входе в рестриктор&lt;br /&gt;
&lt;br /&gt;
name = Название новости.&amp;lt;br&amp;gt;&lt;br /&gt;
type = по умолчанию «news»&amp;lt;br&amp;gt;&lt;br /&gt;
Тип  новостей: «news» – отсылается как глобальная новость, «tips» - отсылается то имени sender-a&lt;br /&gt;
*sender = если тип = «tips», то от sender задаёт условный строковый идентификатор иконки персонажа, от которого якобы пришло сообщение. По умолчанию это иконка торговца.&lt;br /&gt;
&lt;br /&gt;
*cond = Необходимые логические условия, при которых подсказка сработает. По дефолту, сработает при входе в зону.&lt;br /&gt;
&lt;br /&gt;
*single = true/false (по умолчанию false). Если параметр в true, то типс будет выдан только один раз,&lt;br /&gt;
&lt;br /&gt;
Пример настроек рестриктора:&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_tip&lt;br /&gt;
&lt;br /&gt;
[sr_tip]&amp;lt;br&amp;gt;&lt;br /&gt;
name = tips_esc_trader_about_pda&amp;lt;br&amp;gt;&lt;br /&gt;
type = tips&amp;lt;br&amp;gt;&lt;br /&gt;
cond = {+infoportion1 –infoportion2 }&amp;lt;br&amp;gt;&lt;br /&gt;
*showtime = msec – время в миллисекундах, в течение которого сообщение будет находится на экране. – ПОКА НЕ РАБОТАЕТ НОРМАЛЬНО!&lt;br /&gt;
&lt;br /&gt;
Если необходимо проиграть только 1 раз, а это случается часто, то можно добавить следующую строку:&lt;br /&gt;
on_actor_inside = nil &lt;br /&gt;
&lt;br /&gt;
файл \gamedata\scripts\sr_tip.script&lt;br /&gt;
&lt;br /&gt;
==3.9.5. Sr_light==&lt;br /&gt;
Зона, в которой фонарики у неписей будут включены независимо от времени суток.&lt;br /&gt;
&lt;br /&gt;
Работает следующим образом:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_light&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_light]&amp;lt;br&amp;gt;&lt;br /&gt;
light_on = true/false (свет включен/выключен)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Также работает вместе с кондлистом:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_light&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_light]&amp;lt;br&amp;gt;&lt;br /&gt;
light_on = true/false (свет включен/выключен)&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = {+info1} section %+info2%&lt;br /&gt;
&lt;br /&gt;
==3.9.6. Sr_territory==&lt;br /&gt;
&lt;br /&gt;
Занимается эта схема тем, что отлавливает всякие события, происходящие внутри рестриктора.&lt;br /&gt;
Пока что она отлавливает только хиты и смерть сталкеров. Пример использования примерно следующий:&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_territory@outside&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_territory@outside]&amp;lt;br&amp;gt;&lt;br /&gt;
on_actor_inside = sr_territory@inside&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_territory@inside]&amp;lt;br&amp;gt;&lt;br /&gt;
on_actor_outside = sr_territory@outside&amp;lt;br&amp;gt;&lt;br /&gt;
territory_hit = {-bar_dolg_territory_1_hit} %+bar_dolg_territory_1_hit%, {-bar_dolg_territory_2_hit}&amp;lt;br&amp;gt;&lt;br /&gt;
%+bar_dolg_territory_2_hit%, {-bar_dolg_territory_3_hit} %+bar_dolg_territory_3_hit%&lt;br /&gt;
territory_death = {-bar_dolg_territory_kill} %+bar_dolg_territory_kill%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
То есть здесь видно, что когда игрок находится внутри рестриктора, то считается количество нанесенных хитов, а также учитывается был ли кто-то убит или нет. Поскольку схема работает только с игроком – то хиты и смерть засчитываются только от игрока.&lt;br /&gt;
&lt;br /&gt;
==3.9.7. Sr_mapspot==&lt;br /&gt;
&lt;br /&gt;
При входе в рестриктор он сам себя подсвечивает на карте.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Параметры:&amp;lt;br&amp;gt;&lt;br /&gt;
hint - id подсказки в string table (обязательный параметр)&amp;lt;br&amp;gt;&lt;br /&gt;
location - название типа подсветки (не обязательный параметр, по умолчанию &amp;quot;crlc_small&amp;quot;)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример:&amp;lt;br&amp;gt;&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_mapspot&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_mapspot]&amp;lt;br&amp;gt;&lt;br /&gt;
hint = “gar_swamp”&amp;lt;br&amp;gt;&lt;br /&gt;
location = crcl_big&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.8. Sr_particle==&lt;br /&gt;
&lt;br /&gt;
Данная система отыгрывает партиклы как статичные так и движущиеся в указанном месте и в указанное время. Работет она следующим образом:&lt;br /&gt;
&lt;br /&gt;
1) для партикловой системы с путем камеры:&lt;br /&gt;
     [sr_particle]&lt;br /&gt;
     name = explosions\campfire_03          -имя партикловой системы&lt;br /&gt;
     path = particle_test.anm          -имя пути камеры&lt;br /&gt;
     mode = 1 				(обязательно !!!)&lt;br /&gt;
     looped = true/false               		-флаг зацикленности партиклов&lt;br /&gt;
&lt;br /&gt;
(обязательно с расширением ANM !!!) Здесь партиклы будут молча перемещаться по пути.&lt;br /&gt;
          &lt;br /&gt;
2) для партикловой системы с обычным патрульным путем:&lt;br /&gt;
     [sr_particle]&lt;br /&gt;
     name = explosions\campfire_03          -имя партикловой системы&lt;br /&gt;
     path = part_points                   -имя патрульного пути&lt;br /&gt;
     mode = 2 				(обязательно !!!)&lt;br /&gt;
     looped = true/false               -флаг зацикленности партиклов &lt;br /&gt;
&lt;br /&gt;
В вейпоинтах можно задавать флаг s=имя_звуковой_темы и d=число время задержки перед проигрыванием (задается в миллисекундах. Если не задано, то 0). s - имя звуковой темы в sound_themes.ph_snd_themes из которой будет случайно выбран звук для проигрывания во время проигрывания партикла. Звук не зацикливается и играет только один раз.. Результат = партиклы отыгрываются во всех вейпоинтах одновременно (или с задержкой см. выше).&amp;lt;br&amp;gt;&lt;br /&gt;
При looped=true по окончании проигрывания партиклов, они будут запускаться сначала, но уже без задержек. Сигнал particle_end выдаваться не будет. При looped=false сигнал будет выдан, когда все  источники партиклов отыграют. &amp;lt;br&amp;gt;     &lt;br /&gt;
Поддерживается кондлист. Если рестриктор переходит в другую секцию, то автоматически перестают отыгрываться партиклы и замолкают звуки при них. Этот рестриктор является объектом, отслеживающим партиклы и нет никакой необходимости чтобы игрок в него заходил.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.9. Sr_sound_act==&lt;br /&gt;
Итого, схема, которая играет саунд в голове актера. Всякие там переговоры по ПДА и прочие фейки&lt;br /&gt;
&lt;br /&gt;
[sr_sound_act]&amp;lt;br&amp;gt;&lt;br /&gt;
snd = ambient\random\new_drone1     --имя звукового файла&amp;lt;br&amp;gt;&lt;br /&gt;
*delay = 2000                          --задержка перед проигрыванием &amp;lt;br&amp;gt;&lt;br /&gt;
*delay_max = 4000		-- между проигрыванием звука будет взят случайный промежуток между delay и delay_max.&amp;lt;br&amp;gt;&lt;br /&gt;
*on_signal = sound_end | nil           --по сигналу можно перейти в другую секцию.&amp;lt;br&amp;gt;&lt;br /&gt;
theme =  &amp;lt;имя темы из ph_sound_themes&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* stereo = true/false (по умолчанию false). При установке этого параметра к файлу, который задан параметром snd или в звуковой теме будут добавляться (автоматически) суффиксы _r и _l для загрузки левого и правого каналов и, соответственно, вся эта фигня будет играться.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если указывается тема, то звук будет играть зациклено, случайным образом выбирая один из звуков прописанных в теме, если указывается звук, то он отыгрывается один раз. Схема поддерживает кондлист.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.10 Sr_timer==&lt;br /&gt;
&lt;br /&gt;
Пример использования:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_timer@1&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_timer@1]&amp;lt;br&amp;gt;&lt;br /&gt;
type = dec&amp;lt;br&amp;gt;&lt;br /&gt;
start_value = 10000&amp;lt;br&amp;gt;&lt;br /&gt;
on_value = 0 | sr_timer@2&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_timer@2]&amp;lt;br&amp;gt;&lt;br /&gt;
type = inc&amp;lt;br&amp;gt;&lt;br /&gt;
on_value = 15000 | nil %+info1%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Описания полей:&amp;lt;br&amp;gt;&lt;br /&gt;
type - тип счетчика, инкриментирующий(inc) или декриментирующий(dec).&amp;lt;br&amp;gt;&lt;br /&gt;
Если поле не задано -  счетчик будет инкриментирующий&amp;lt;br&amp;gt;&lt;br /&gt;
start_value - начальное значение счетчика в РЕАЛЬНЫХ милисекундах. Для декриментирующих счетчиков задавать обязательно. Для инкриментирующих, если не задано, то считается с 0.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Переходы из секции sr_timer могут быть как по обычным условиям (on_timer, on_info) так и по специфическому условию on_value. В общем случае on_value Можно использовать для производства каких либо действий в зависимости от состояния счетчика. Например:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
on_value = 5000| %+info1% | 1000| %+info2%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.11. Sr_psy_antenna==&lt;br /&gt;
Зоны с такой секцией позволяют управлять эффектами от пси-воздействия (на Янтаре и Радаре). Сейчас можно управлять интенсивностью излучения и интенсивностью получения повреждений.&lt;br /&gt;
&lt;br /&gt;
Способ применения: Расставить зоны, в каждой зоне написать, сколько процентов к интенсивности излучения и повреждения она добавляет/отнимает. Зоны могут быть вложены друг в друга, пересекать друг друга. &lt;br /&gt;
&lt;br /&gt;
eff_intensity = 	- увеличение/уменьшение в % от базового значения интенсивности излучения.&lt;br /&gt;
hit_ intensity = 	- увеличение/уменьшение в % от базового значения наносимого повреждения.&lt;br /&gt;
&lt;br /&gt;
Пример зоны, которая добавляет 70% излучения:&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_psy_antenna&lt;br /&gt;
&lt;br /&gt;
[sr_psy_antenna]&amp;lt;br&amp;gt;&lt;br /&gt;
eff_intensity = 70&amp;lt;br&amp;gt;&lt;br /&gt;
hit_ intensity = 70&lt;br /&gt;
&lt;br /&gt;
Пример зоны, которая убирает 30% излучения:&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_psy_antenna&lt;br /&gt;
&lt;br /&gt;
[sr_psy_antenna]&amp;lt;br&amp;gt;&lt;br /&gt;
intensity = -30&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
в версии '''SOC 1.0000''' добавлена возможность задавать вероятность проявления фантомов и тайминг их &amp;quot;живучести&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
phantom_prob = 40 - вероятность проявления фантомов в процентах&amp;lt;br&amp;gt;&lt;br /&gt;
min_phantom_idle = 3000 - мин время их существования до врезания в гг&amp;lt;br&amp;gt;&lt;br /&gt;
max_phantom_idle = 5000 - макс время существования&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.12. Sr_teleport==&lt;br /&gt;
Собственно, телепорт. Настраиваются следующим образом:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_teleport&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_teleport]&amp;lt;br&amp;gt;&lt;br /&gt;
timeout = 0&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
point1 = point1&amp;lt;br&amp;gt;&lt;br /&gt;
look1 = look1&amp;lt;br&amp;gt;&lt;br /&gt;
prob1 = 10&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
point2 = point2&amp;lt;br&amp;gt;&lt;br /&gt;
look2 = look2&amp;lt;br&amp;gt;&lt;br /&gt;
prob2 = 20&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где:&amp;lt;br&amp;gt;&lt;br /&gt;
timeout - задержка в срабатывании телепорта в миллисекундах.&amp;lt;br&amp;gt;&lt;br /&gt;
point - одноточечный патрульный путь куда переместить&amp;lt;br&amp;gt;&lt;br /&gt;
look - одноточечный патрульный путь куда повернуть.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее идут настройки точек назначения с удельными весами. То есть в перечисленном выше примере вероятность телепортнутся во вторую точку в два раза выше, чем в первую. Максимальное количество точек назначения - 10. Телепорты необходимо ставить совместно с особой аномальной зоной, которую сейчас делает Проф. Зона добавит визуализацию и создаст эффект втягивания.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.13. Sr_sleep и настройка снов.==&lt;br /&gt;
&lt;br /&gt;
Появилась возможность задавать зоны сна.&lt;br /&gt;
&lt;br /&gt;
[sr_sleep]&lt;br /&gt;
*cond = &amp;lt;condlist&amp;gt;&lt;br /&gt;
*type = nightmare/normal/happy/all - Задает тип сна разрешенный в данной зоне (по умолчанию all). Влияет (группирует) только на несценарные сны.&lt;br /&gt;
*dream_prob = &amp;lt;число от 0 до 100&amp;gt; - вероятность просмотра несценарных сновидений в данной зоне (по умолчанию 80). В противном случае будет только черный экран.&lt;br /&gt;
&lt;br /&gt;
Необязательное поле cond задает условие(я), при котором в этой зоне можно спать. Сейчас производится индикация зон, где разрешен сон. В левом нижнем углу отображается маленькая иконка легких при входе в такую зону. Вероятно, позже будет изменена на другую.&amp;lt;br&amp;gt;&lt;br /&gt;
Сновидения теперь делятся на сценарные и обычные. Сценарные сновидения отыгрываются один раз при выполнении необходимых условий. Обычные сновидения проигрываются, если нет сценарных или ни одно условие выполнения сценарных не сработало. Можно задавать вероятность отыгрывания обычных сновидений в целом, а также задавать вероятность срабатывания каждого конкретного сновидения в отдельности. Обычным сновидениям можно задавать тип и потом ограничивать по нему сны воспроизводимые в sr_sleep.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В файле misc\dream.ltx задаются настройки снов.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Секция videos.&amp;lt;br&amp;gt;&lt;br /&gt;
Полями задаются пути к видеофайлам со снами.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Секция dreams. Поля:&amp;lt;br&amp;gt;&lt;br /&gt;
regular_probability = &amp;lt;число от 0 до 100&amp;gt; - вероятность проигрывания обычных сновидений в целом &amp;lt;br&amp;gt;&lt;br /&gt;
regular - список секций с настройками для обычных сновидений&amp;lt;br&amp;gt;&lt;br /&gt;
scene - список секций с настройками для сценарных сновидений&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Настройки обычных сновидений:&amp;lt;br&amp;gt;&lt;br /&gt;
dream - имя поля из секции videos&amp;lt;br&amp;gt;&lt;br /&gt;
probability = &amp;lt;число больше 0&amp;gt; - чем больше, тем больше вероятность проигрывания сна.&amp;lt;br&amp;gt;&lt;br /&gt;
type = nightmare/normal/happy - тип сна.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Настройки сценарных сновидений:&amp;lt;br&amp;gt;&lt;br /&gt;
dream - имя поля из секции videos&amp;lt;br&amp;gt;&lt;br /&gt;
cond = &amp;lt;condlist&amp;gt; - условия срабатывания&amp;lt;br&amp;gt;&lt;br /&gt;
to_regular = &amp;lt;вероятность,тип&amp;gt; - необязательное поле. Дает возможность переводить сценарный сон после первого отыгрыша в разряд обычных. &amp;lt;вероятность, тип&amp;gt; аналогичны probability и type из настроек обычных сновидений соответственно.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.14. Sr_cutscene==&lt;br /&gt;
&lt;br /&gt;
	Эта схема предназначена для проведения анимации камеры c некоторым эффектом &lt;br /&gt;
(pp_effector). Последовательность действий, осуществляемых схемой, состоит из мгновенного перемещения игрока в начало пути point и ориентации его взгляда на начало пути look, потери управления игроком и начала анимации камеры cam_effector по завершении которой игрок вновь получает управление.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_cutscene]&amp;lt;br&amp;gt;&lt;br /&gt;
point = &amp;lt;имя пути&amp;gt; - путь в первую точку которого переносится игрок&amp;lt;br&amp;gt;&lt;br /&gt;
look = &amp;lt;имя пути&amp;gt; - путь в первую точку которого смотрит игрок&amp;lt;br&amp;gt;&lt;br /&gt;
*pp_effector = &amp;lt;имя файла с эффектом&amp;gt; - файл, расположенный в папке &amp;lt;br&amp;gt;&lt;br /&gt;
gamedata\anims\ и содержащий эффект (имя файла пишется без расширения)&amp;lt;br&amp;gt;&lt;br /&gt;
cam_effector = &amp;lt;имя файла с анимацией камеры&amp;gt; - файл, расположенный в папке gamedata\anims\camera_effects\ и содержащий анимацию камеры (имя файла пишется без расширения)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.10. Набор дополнительных настроек логики у разных объектов.==&lt;br /&gt;
Для всех физических объектов есть секция ph_idle, поддерживающая кондлист в которую можно при необходимости переводить объекты.&lt;br /&gt;
&lt;br /&gt;
==3.10.1. Схема работы двери, секция [ph_door]==&lt;br /&gt;
&lt;br /&gt;
NB! Для двухстворчатых ворот задается все аналогично.&lt;br /&gt;
&lt;br /&gt;
locked = false\true&amp;lt;br&amp;gt;&lt;br /&gt;
	Заперта ли дверь. По дефолту – false.&lt;br /&gt;
&lt;br /&gt;
Closed = false\true&amp;lt;br&amp;gt;&lt;br /&gt;
	Закрыта ли дверь. По дефолту - true&lt;br /&gt;
&lt;br /&gt;
tip_open = (если locked == false, то tip_door_open, иначе tip_door_locked)&amp;lt;br&amp;gt;&lt;br /&gt;
	Подсказка, которая появляется около прицела при наведении на дверь, если дверь закрыта.&lt;br /&gt;
&lt;br /&gt;
tip_close = (если locked == false, то tip_door_close, иначе пустое значение)&amp;lt;br&amp;gt;&lt;br /&gt;
	Подсказка, которая появляется около прицела при наведении на дверь, если дверь открыта.&lt;br /&gt;
&lt;br /&gt;
snd_init = Звук, который будет отыгран сразу при включении схемы.&lt;br /&gt;
&lt;br /&gt;
snd_open_start = Звук, который будет отыгран при попытке открыть дверь.&lt;br /&gt;
&lt;br /&gt;
snd_close_start = Звук, который будет отыгран при попытке закрыть дверь.&lt;br /&gt;
&lt;br /&gt;
snd_close_stop = Звук, который будет отыгран, когда дверь захлопнется до конца.&lt;br /&gt;
&lt;br /&gt;
Примеры:&amp;lt;br&amp;gt;&lt;br /&gt;
	Если нужно сделать дверь, которая при каком-то событии открывается со щелчком, то можно воспользоваться полем snd_init и переключением схем. В примере ниже при включении схемы ph_door@unlocked проиграется snd_init, т.е. trader_door_unlock:&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = ph_door@locked&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ph_door@locked]&amp;lt;br&amp;gt;&lt;br /&gt;
locked = true&amp;lt;br&amp;gt;&lt;br /&gt;
snd_open_start = trader_door_locked&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = {+esc_trader_can_leave} ph_door@unlocked&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ph_door@unlocked]&amp;lt;br&amp;gt;&lt;br /&gt;
locked = false&amp;lt;br&amp;gt;&lt;br /&gt;
snd_init = trader_door_unlock&amp;lt;br&amp;gt;&lt;br /&gt;
snd_open_start = trader_door_open_start&amp;lt;br&amp;gt;&lt;br /&gt;
snd_close_start = trader_door_close_start&amp;lt;br&amp;gt;&lt;br /&gt;
snd_close_stop = trader_door_close_stop&amp;lt;br&amp;gt;&lt;br /&gt;
файл \gamedata\scripts\ph_door.script&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.10.2. Схема работы кнопки, секция [ph_button]==&lt;br /&gt;
&lt;br /&gt;
При нажатии на кнопку переключает секции и выдает инфопоршн.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active      = ph_button@locked&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ph_button@locked]&amp;lt;br&amp;gt;&lt;br /&gt;
anim_blend  = false&amp;lt;br&amp;gt;&lt;br /&gt;
anim        = button_false&amp;lt;br&amp;gt;&lt;br /&gt;
on_press    = ph_button@unlocked %+cit_jail_door_opened%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
on_press – что происходит при нажатии&amp;lt;br&amp;gt;&lt;br /&gt;
anim – анимация, которая отигрывается при нажатии на кнопку&amp;lt;br&amp;gt;&lt;br /&gt;
anim_blend – плаваня, сглаженная анимация. Может принимать знаечения true\false&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл \Gamedata\scripts\ph_button.script&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*tooltip - gредназначено для того, чтобы задавать текстовую подсказку при наведении на кнопку. Текстовая подсказка нужна для того, чтобы как минимум было понятно, что этот девайс можно нажимать.&amp;lt;br&amp;gt;&lt;br /&gt;
Пример настройки кнопки:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = ph_button@active&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ph_button@active]&amp;lt;br&amp;gt;&lt;br /&gt;
anim = lab_switcher_idle&amp;lt;br&amp;gt;&lt;br /&gt;
tooltip = tips_labx16switcher_press&amp;lt;br&amp;gt;&lt;br /&gt;
on_press = ph_button@deactivated %+terrain_test%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ph_button@deactivated]&amp;lt;br&amp;gt;&lt;br /&gt;
anim = lab_switcher_off&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для того чтобы сообщение не потеряло адекватность при различных настройках клавиатуры сообщение следует писать с использованием токенов. Например:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;string id=&amp;quot;tips_labx16switcher_press&amp;quot;&amp;gt; &lt;br /&gt;
        &amp;lt;text&amp;gt;Чтобы отключить чудо установку нажмите ($$ACTION_USE$$)&amp;lt;/text&amp;gt;&lt;br /&gt;
    &amp;lt;/string&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вот пример кнопки, которая срабатывает не всегда, а по определенному условию:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = ph_button@locked&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ph_button@locked]&amp;lt;br&amp;gt;&lt;br /&gt;
anim = button_false – анимация несрабатывания кнопки.&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = {+val_prisoner_door_unlocked} ph_button@unlocked&amp;lt;br&amp;gt;&lt;br /&gt;
on_press = ph_button@unlocked %+val_prisoner_door_unlocked%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ph_button@unlocked]&amp;lt;br&amp;gt;&lt;br /&gt;
anim = button_true&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = {-val_prisoner_door_unlocked} ph_button@locked&amp;lt;br&amp;gt;&lt;br /&gt;
on_press = ph_button@locked %-val_prisoner_door_unlocked%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[[Часть 4]]===&lt;br /&gt;
&lt;br /&gt;
[[Категория:Скрипты]]&lt;/div&gt;</summary>
		<author><name>95.27.113.222</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_3</id>
		<title>Настройка логики. Часть 3</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_3"/>
				<updated>2010-03-10T09:53:24Z</updated>
		
		<summary type="html">&lt;p&gt;95.27.113.222: /* 3.9.11. Sr_psy_antenna */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Шаблон:Настройка логики}}&lt;br /&gt;
&lt;br /&gt;
==3.8.1. Синтаксис скрипта Logic==&lt;br /&gt;
&lt;br /&gt;
Пример: для того, чтобы персонаж ходил по пути walk1, а при приближении игрока на дистанцию 5 метров, переключался на путь walk2 (но только при условии, что он видит игрока), нужно написать следующее: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = walker1&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[walker1]&amp;lt;br&amp;gt;&lt;br /&gt;
path_walk = walk1&amp;lt;br&amp;gt;&lt;br /&gt;
path_look = look1&amp;lt;br&amp;gt;&lt;br /&gt;
on_actor_dist_le = 5 | walker2&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[walker2]&amp;lt;br&amp;gt;&lt;br /&gt;
path_walk = walk2&amp;lt;br&amp;gt;&lt;br /&gt;
path_look = look2&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Выше рассмотрено безусловное переключение секций. Перед именем секции в фигурных скобках {} можно задавать дополнительные условия, а после имени секции - так называемые &amp;quot;эффекты&amp;quot;, которые заключить в знаки процента: %%. Эффекты будут применены только в случае активации секции. Можно не задавать имя секции, а задать только условия и/или эффекты. Тогда активной останется старая секция, но условия и эффекты будут все равно обработаны. Если все условия в фигурных скобках не выполняются, секция активирована не будет. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
on_actor_dist_le = 5 | {условие} walker2 %эффекты%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Условия могут быть следующими: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+infoportion  - требуется присутствие infoportion у actor&amp;lt;br&amp;gt;&lt;br /&gt;
-infoportion  - требуется отсутствие infoportion у actor&amp;lt;br&amp;gt;&lt;br /&gt;
=func  - требуется, чтобы func вернула true&amp;lt;br&amp;gt;&lt;br /&gt;
!func  - требуется, чтобы func вернулся false&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Эффекты могут быть следующими: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+infoportion  - в случае включения секции у actor будет установлен infoportion&amp;lt;br&amp;gt;&lt;br /&gt;
-infoportion  - в случае включения секции у actor будет убран infoportion&amp;lt;br&amp;gt;&lt;br /&gt;
=func  - в случае включения секции стартует функция func&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Несколько условия или эффектов разделяются пробелами: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
on_actor_dist_le = 5 | {+info1 -info2 +info3} walker2 %+info4 =func%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Можно задавать сразу несколько секций, разделенных запятыми. Порядок обхода при этом - слева направо. После срабатывания первого из условий, обход прекращается. В примере ниже, если установлен info1, будет включена схема walker2, иначе, если установлен info2, будет включена схема walker3, иначе будет включен walker4: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
on_actor_dist_le = 5 | {+info1} walker2, {+info2} walker3, walker4&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В описанном выше поле active секции logic, можно также задавать условия, например: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = {=actor_friend} walker@friendly, walker@enemy&amp;lt;br&amp;gt;&lt;br /&gt;
В логических условиях теперь принимается ключевое слово never, которое означает, что условие ложно. Например:&amp;lt;br&amp;gt;&lt;br /&gt;
combat_ignore_cond = {=actor_enemy =actor_has_suit} always, {=actor_enemy} never %...эффекты...%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вышеприведенная конструкция включает игнорирование боя, если у NPC враг - игрок в костюме, но отключит его, если врагом является игрок, но без костюма, при этом сработают эффекты (%%) секции never. Таким образом, выбор секции never равносилен отсутствию секции (несрабатыванию условия), но эффекты в знаках процента при этом срабатывают.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример работы с секцией nil. Секция nil выводит из-под скриптовых схем персонажа, монстра или объект и отпускает его под управление движка. Это надо если какое-либо условие выполнившись 1 раз больше не нуждается в проверке, при этом экономятся ресурсы машины, которые на каждом апдейте проверяют это условие.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_idle&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_idle]&amp;lt;br&amp;gt;&lt;br /&gt;
on_actor_inside = nil %+esc_actor_inside%&amp;lt;br&amp;gt;&lt;br /&gt;
То есть, при входе актера в рестриктор выдается инфопоршн и рестриктор уходит в секцию nil, больше не проверяя наличие игрока.&amp;lt;br&amp;gt;&lt;br /&gt;
NB: Обратно из секции nil под скрипты объект вернуть уже невозможно! Учитывайте это, используя ее.&lt;br /&gt;
&lt;br /&gt;
==3.8.2. Вот пример достаточно сложной логики:== &lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = walker&amp;lt;br&amp;gt;&lt;br /&gt;
combat_ignore = combat_ignore&amp;lt;br&amp;gt;&lt;br /&gt;
on_hit = hit&amp;lt;br&amp;gt;&lt;br /&gt;
on_death = death&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[hit]&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = %+alert%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[death]&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = %+alert +trup3%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[walker]&amp;lt;br&amp;gt;&lt;br /&gt;
path_walk = walk_svoboda3&amp;lt;br&amp;gt;&lt;br /&gt;
path_look = look_svoboda3&amp;lt;br&amp;gt;&lt;br /&gt;
combat_ignore_cond = {-alert}&amp;lt;br&amp;gt;&lt;br /&gt;
on_timer = 25000 | remark&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[remark]&amp;lt;br&amp;gt;&lt;br /&gt;
anim = idle&amp;lt;br&amp;gt;&lt;br /&gt;
snd = stalker_talk_kampfire&amp;lt;br&amp;gt;&lt;br /&gt;
no_move = true&amp;lt;br&amp;gt;&lt;br /&gt;
no_rotate = true&amp;lt;br&amp;gt;&lt;br /&gt;
on_hit = hit&amp;lt;br&amp;gt;&lt;br /&gt;
on_death = death&amp;lt;br&amp;gt;&lt;br /&gt;
combat_ignore_cond = {-alert}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[combat_ignore]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим ее пошагово. Вначале сталкер работает по схеме walker-a. При этом он игнорирует бой, пока не будет поставлен инфопоршн alert. Он ждет 25 секунд, после чего переходит в схему remark. В ремарке он проигрывает идловую анимацию, говорит на указанные темы, не поворачивается и не двигается и точно также игнорирует бой. Если по нему попадут (on_hit) или убьют (on_death), будет поставлен инфопоршн alert и он перестанет игнорировать бой (понятно, что если он будет трупом, то это ему не поможет, но их в сценке трое, и тогда сорвутся в бой все остальные). Если его убьют, то также будет поставлен инфопоршн trup3 который сообщит о том, что этот сталкер убит.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А  вот логика его противника:&amp;lt;br&amp;gt;&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = walker&amp;lt;br&amp;gt;&lt;br /&gt;
combat_ignore = combat_ignore&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[walker]&amp;lt;br&amp;gt;&lt;br /&gt;
path_walk = soldier_walk1&amp;lt;br&amp;gt;&lt;br /&gt;
path_look = soldier_look1&amp;lt;br&amp;gt;&lt;br /&gt;
combat_ignore_cond = always&amp;lt;br&amp;gt;&lt;br /&gt;
team = assault_group&amp;lt;br&amp;gt;&lt;br /&gt;
on_signal = assault | camper&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[camper]&amp;lt;br&amp;gt;&lt;br /&gt;
path_walk = soldier_walk1_2&amp;lt;br&amp;gt;&lt;br /&gt;
path_look = soldier_look1_2&amp;lt;br&amp;gt;&lt;br /&gt;
radius = 5&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = {+trup1 +trup2 +trup3} walker2&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[walker2]&amp;lt;br&amp;gt;&lt;br /&gt;
path_walk = soldier_walk1_3&amp;lt;br&amp;gt;&lt;br /&gt;
path_look = soldier_look1_3&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[combat_ignore]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Он идет в схеме walker, игнорируя бой (причем игнорируя в любой ситуации). Идет в составе группы assault_group. Когда он приходит в конечную точку маршрута (там он синхронизируется с остальными из группы, это приписано в путях) и получает сигнал assault, то переходит в схему camper. В этой схеме у него не прописан combat_ignore, поэтому он начинает стрелять по противнику. После того, как все трое противников будут убиты, каждый из них, умирая ставит инфопоршн trup1, trup2 или trup3 и когда все трое будут убиты, то он переключится на схему walker2 (подойдет к костру).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9. Схемы логики space_restrictor==&lt;br /&gt;
&lt;br /&gt;
Общее замечание: Чтобы исключить ситуацию, когда актёр проскакивает через рестриктор и тот не успевает сработать, старайтесь ставить рестриктор так, чтоб минимальная ширина была больше 2 метров.&lt;br /&gt;
&lt;br /&gt;
==3.9.1. Схема [sr_idle]==	&lt;br /&gt;
Предназначение данной схемы – включить другую схему при срабатывании одного из стандартных условий логической схемы.&amp;lt;br&amp;gt;&lt;br /&gt;
	Сама по себе схема ничего не делает.&amp;lt;br&amp;gt;&lt;br /&gt;
	Пример настроек рестриктора:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_idle&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_idle]&amp;lt;br&amp;gt;&lt;br /&gt;
on_actor_inside = nil %+esc_actor_inside%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	Обратите внимание, что после срабатывания проверки активная схема переключается в nil, чтобы не продолжать бесполезную проверку на каждом апдейте. Можно не задавать nil.&amp;lt;br&amp;gt;&lt;br /&gt;
Часто эта схема работает вместе со спавнером, рестриктор выдает инфопоршн, при входе в зону, а спавнер по нему уже кого-то спавнит.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
файл \gamedata\scripts\sr_idle.script&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.2. Секция [sr_no_weapon]==&lt;br /&gt;
Данная схема убирает оружие у игрока при входе в зону.&amp;lt;br&amp;gt;&lt;br /&gt;
Пример настроек рестриктора:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_no_weapon&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_no_weapon]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
файл \gamedata\scripts\sr_no_weapon.script&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.3. Секция [sr_sound]==&lt;br /&gt;
&lt;br /&gt;
snd = Перечень имён звуков разделенных запятыми.&lt;br /&gt;
&lt;br /&gt;
type = Типы звуков через запятые. Для удобства введены типы наборов звуков. Т.е., например, чтобы не перечислять каждый раз весь набор звуков скрипа деревянного пола, можно указать тип floor_wooden.&lt;br /&gt;
&lt;br /&gt;
*delay = Задержка перед проигрыванием звука в секундах реального времени, по умолчанию 0.&lt;br /&gt;
&lt;br /&gt;
*idle =  Длина периода игнорирования входа в зону после начала последнего проигранного звука. Чтоб, например, завывание было не чаще, чем раз в несколько минут. В секундах игрового времени. По умолчанию 0.&lt;br /&gt;
&lt;br /&gt;
*rnd = Вероятность (в процентах) того, что звук отыграется. По умолчанию 100.&lt;br /&gt;
&lt;br /&gt;
*position = Задает имя пути, в вершинах которого может отыграться звук. Есть зарезервированное значение random. Оно означает случайное место в радиусе 15…50 метров от игрока. Если этот параметр не задан, то подразумевается позиция игрока.&lt;br /&gt;
&lt;br /&gt;
*slide_velocity = Скорость (м/с) передвижения звука по точкам патрульного пути. По умолчанию - 3&lt;br /&gt;
&lt;br /&gt;
*slide_sound_once = true\false&lt;br /&gt;
	true - проиграть звук один раз, даже если он не дошел до последней точки пути.&lt;br /&gt;
	false – если звук закончился, а до последней точки пути не дошел, запустить его ещё раз. По умолчанию false.&lt;br /&gt;
&lt;br /&gt;
*play_at_actor = true/false Заставляет звук играться от позиции актера постоянно. Если он будет равен true и будет задан путь перемещения звука (или рандом), то мы тупо вылетим.&lt;br /&gt;
&lt;br /&gt;
Предназначение данной схемы: отыграть звук при входе актёра в рестриктор.&lt;br /&gt;
&lt;br /&gt;
Поддерживается sound_end.&lt;br /&gt;
&lt;br /&gt;
Обязательно нужно задать либо snd, либо type. Можно их задать вместе. На базе этих параметров составляется список звуков. При входе актёра в рестриктор отыгрывается случайный звук из этого списка.&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;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_sound&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_sound]&amp;lt;br&amp;gt;&lt;br /&gt;
type = floor_wooden&amp;lt;br&amp;gt;&lt;br /&gt;
snd = ambient\wind1, ambient\sparks1&amp;lt;br&amp;gt;&lt;br /&gt;
rnd = 50&amp;lt;br&amp;gt;&lt;br /&gt;
position = random&amp;lt;br&amp;gt;&lt;br /&gt;
idle = 120&amp;lt;br&amp;gt;&lt;br /&gt;
delay = 3&lt;br /&gt;
&lt;br /&gt;
Есть возможность сделать «скользящий звук». Необходим патрульный путь. Звук начинает отыгрываться с начала пути и перемещается от одной точки пути к другой (по мере их установки на патрульном пути) со скоростью slide_velocity. &lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_sound&lt;br /&gt;
&lt;br /&gt;
[sr_sound]&amp;lt;br&amp;gt;&lt;br /&gt;
type = random&amp;lt;br&amp;gt;&lt;br /&gt;
position = way&amp;lt;br&amp;gt;&lt;br /&gt;
slide_velocity = 8&amp;lt;br&amp;gt;&lt;br /&gt;
slide_sound_once = true&lt;br /&gt;
&lt;br /&gt;
Файл \gamedata\scripts\sr_sound.script&lt;br /&gt;
&lt;br /&gt;
==3.9.4. Секция [sr_tip]==&lt;br /&gt;
Предназначение данной схемы – давать игроку сообщение (подсказку) при входе в рестриктор&lt;br /&gt;
&lt;br /&gt;
name = Название новости.&amp;lt;br&amp;gt;&lt;br /&gt;
type = по умолчанию «news»&amp;lt;br&amp;gt;&lt;br /&gt;
Тип  новостей: «news» – отсылается как глобальная новость, «tips» - отсылается то имени sender-a&lt;br /&gt;
*sender = если тип = «tips», то от sender задаёт условный строковый идентификатор иконки персонажа, от которого якобы пришло сообщение. По умолчанию это иконка торговца.&lt;br /&gt;
&lt;br /&gt;
*cond = Необходимые логические условия, при которых подсказка сработает. По дефолту, сработает при входе в зону.&lt;br /&gt;
&lt;br /&gt;
*single = true/false (по умолчанию false). Если параметр в true, то типс будет выдан только один раз,&lt;br /&gt;
&lt;br /&gt;
Пример настроек рестриктора:&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_tip&lt;br /&gt;
&lt;br /&gt;
[sr_tip]&amp;lt;br&amp;gt;&lt;br /&gt;
name = tips_esc_trader_about_pda&amp;lt;br&amp;gt;&lt;br /&gt;
type = tips&amp;lt;br&amp;gt;&lt;br /&gt;
cond = {+infoportion1 –infoportion2 }&amp;lt;br&amp;gt;&lt;br /&gt;
*showtime = msec – время в миллисекундах, в течение которого сообщение будет находится на экране. – ПОКА НЕ РАБОТАЕТ НОРМАЛЬНО!&lt;br /&gt;
&lt;br /&gt;
Если необходимо проиграть только 1 раз, а это случается часто, то можно добавить следующую строку:&lt;br /&gt;
on_actor_inside = nil &lt;br /&gt;
&lt;br /&gt;
файл \gamedata\scripts\sr_tip.script&lt;br /&gt;
&lt;br /&gt;
==3.9.5. Sr_light==&lt;br /&gt;
Зона, в которой фонарики у неписей будут включены независимо от времени суток.&lt;br /&gt;
&lt;br /&gt;
Работает следующим образом:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_light&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_light]&amp;lt;br&amp;gt;&lt;br /&gt;
light_on = true/false (свет включен/выключен)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Также работает вместе с кондлистом:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_light&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_light]&amp;lt;br&amp;gt;&lt;br /&gt;
light_on = true/false (свет включен/выключен)&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = {+info1} section %+info2%&lt;br /&gt;
&lt;br /&gt;
==3.9.6. Sr_territory==&lt;br /&gt;
&lt;br /&gt;
Занимается эта схема тем, что отлавливает всякие события, происходящие внутри рестриктора.&lt;br /&gt;
Пока что она отлавливает только хиты и смерть сталкеров. Пример использования примерно следующий:&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_territory@outside&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_territory@outside]&amp;lt;br&amp;gt;&lt;br /&gt;
on_actor_inside = sr_territory@inside&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_territory@inside]&amp;lt;br&amp;gt;&lt;br /&gt;
on_actor_outside = sr_territory@outside&amp;lt;br&amp;gt;&lt;br /&gt;
territory_hit = {-bar_dolg_territory_1_hit} %+bar_dolg_territory_1_hit%, {-bar_dolg_territory_2_hit}&amp;lt;br&amp;gt;&lt;br /&gt;
%+bar_dolg_territory_2_hit%, {-bar_dolg_territory_3_hit} %+bar_dolg_territory_3_hit%&lt;br /&gt;
territory_death = {-bar_dolg_territory_kill} %+bar_dolg_territory_kill%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
То есть здесь видно, что когда игрок находится внутри рестриктора, то считается количество нанесенных хитов, а также учитывается был ли кто-то убит или нет. Поскольку схема работает только с игроком – то хиты и смерть засчитываются только от игрока.&lt;br /&gt;
&lt;br /&gt;
==3.9.7. Sr_mapspot==&lt;br /&gt;
&lt;br /&gt;
При входе в рестриктор он сам себя подсвечивает на карте.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Параметры:&amp;lt;br&amp;gt;&lt;br /&gt;
hint - id подсказки в string table (обязательный параметр)&amp;lt;br&amp;gt;&lt;br /&gt;
location - название типа подсветки (не обязательный параметр, по умолчанию &amp;quot;crlc_small&amp;quot;)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример:&amp;lt;br&amp;gt;&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_mapspot&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_mapspot]&amp;lt;br&amp;gt;&lt;br /&gt;
hint = “gar_swamp”&amp;lt;br&amp;gt;&lt;br /&gt;
location = crcl_big&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.8. Sr_particle==&lt;br /&gt;
&lt;br /&gt;
Данная система отыгрывает партиклы как статичные так и движущиеся в указанном месте и в указанное время. Работет она следующим образом:&lt;br /&gt;
&lt;br /&gt;
1) для партикловой системы с путем камеры:&lt;br /&gt;
     [sr_particle]&lt;br /&gt;
     name = explosions\campfire_03          -имя партикловой системы&lt;br /&gt;
     path = particle_test.anm          -имя пути камеры&lt;br /&gt;
     mode = 1 				(обязательно !!!)&lt;br /&gt;
     looped = true/false               		-флаг зацикленности партиклов&lt;br /&gt;
&lt;br /&gt;
(обязательно с расширением ANM !!!) Здесь партиклы будут молча перемещаться по пути.&lt;br /&gt;
          &lt;br /&gt;
2) для партикловой системы с обычным патрульным путем:&lt;br /&gt;
     [sr_particle]&lt;br /&gt;
     name = explosions\campfire_03          -имя партикловой системы&lt;br /&gt;
     path = part_points                   -имя патрульного пути&lt;br /&gt;
     mode = 2 				(обязательно !!!)&lt;br /&gt;
     looped = true/false               -флаг зацикленности партиклов &lt;br /&gt;
&lt;br /&gt;
В вейпоинтах можно задавать флаг s=имя_звуковой_темы и d=число время задержки перед проигрыванием (задается в миллисекундах. Если не задано, то 0). s - имя звуковой темы в sound_themes.ph_snd_themes из которой будет случайно выбран звук для проигрывания во время проигрывания партикла. Звук не зацикливается и играет только один раз.. Результат = партиклы отыгрываются во всех вейпоинтах одновременно (или с задержкой см. выше).&amp;lt;br&amp;gt;&lt;br /&gt;
При looped=true по окончании проигрывания партиклов, они будут запускаться сначала, но уже без задержек. Сигнал particle_end выдаваться не будет. При looped=false сигнал будет выдан, когда все  источники партиклов отыграют. &amp;lt;br&amp;gt;     &lt;br /&gt;
Поддерживается кондлист. Если рестриктор переходит в другую секцию, то автоматически перестают отыгрываться партиклы и замолкают звуки при них. Этот рестриктор является объектом, отслеживающим партиклы и нет никакой необходимости чтобы игрок в него заходил.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.9. Sr_sound_act==&lt;br /&gt;
Итого, схема, которая играет саунд в голове актера. Всякие там переговоры по ПДА и прочие фейки&lt;br /&gt;
&lt;br /&gt;
[sr_sound_act]&amp;lt;br&amp;gt;&lt;br /&gt;
snd = ambient\random\new_drone1     --имя звукового файла&amp;lt;br&amp;gt;&lt;br /&gt;
*delay = 2000                          --задержка перед проигрыванием &amp;lt;br&amp;gt;&lt;br /&gt;
*delay_max = 4000		-- между проигрыванием звука будет взят случайный промежуток между delay и delay_max.&amp;lt;br&amp;gt;&lt;br /&gt;
*on_signal = sound_end | nil           --по сигналу можно перейти в другую секцию.&amp;lt;br&amp;gt;&lt;br /&gt;
theme =  &amp;lt;имя темы из ph_sound_themes&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* stereo = true/false (по умолчанию false). При установке этого параметра к файлу, который задан параметром snd или в звуковой теме будут добавляться (автоматически) суффиксы _r и _l для загрузки левого и правого каналов и, соответственно, вся эта фигня будет играться.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если указывается тема, то звук будет играть зациклено, случайным образом выбирая один из звуков прописанных в теме, если указывается звук, то он отыгрывается один раз. Схема поддерживает кондлист.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.10 Sr_timer==&lt;br /&gt;
&lt;br /&gt;
Пример использования:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_timer@1&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_timer@1]&amp;lt;br&amp;gt;&lt;br /&gt;
type = dec&amp;lt;br&amp;gt;&lt;br /&gt;
start_value = 10000&amp;lt;br&amp;gt;&lt;br /&gt;
on_value = 0 | sr_timer@2&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_timer@2]&amp;lt;br&amp;gt;&lt;br /&gt;
type = inc&amp;lt;br&amp;gt;&lt;br /&gt;
on_value = 15000 | nil %+info1%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Описания полей:&amp;lt;br&amp;gt;&lt;br /&gt;
type - тип счетчика, инкриментирующий(inc) или декриментирующий(dec).&amp;lt;br&amp;gt;&lt;br /&gt;
Если поле не задано -  счетчик будет инкриментирующий&amp;lt;br&amp;gt;&lt;br /&gt;
start_value - начальное значение счетчика в РЕАЛЬНЫХ милисекундах. Для декриментирующих счетчиков задавать обязательно. Для инкриментирующих, если не задано, то считается с 0.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Переходы из секции sr_timer могут быть как по обычным условиям (on_timer, on_info) так и по специфическому условию on_value. В общем случае on_value Можно использовать для производства каких либо действий в зависимости от состояния счетчика. Например:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
on_value = 5000| %+info1% | 1000| %+info2%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.11. Sr_psy_antenna==&lt;br /&gt;
Зоны с такой секцией позволяют управлять эффектами от пси-воздействия (на Янтаре и Радаре). Сейчас можно управлять интенсивностью излучения и интенсивностью получения повреждений.&lt;br /&gt;
&lt;br /&gt;
Способ применения: Расставить зоны, в каждой зоне написать, сколько процентов к интенсивности излучения и повреждения она добавляет/отнимает. Зоны могут быть вложены друг в друга, пересекать друг друга. &lt;br /&gt;
&lt;br /&gt;
eff_intensity = 	- увеличение/уменьшение в % от базового значения интенсивности излучения.&lt;br /&gt;
hit_ intensity = 	- увеличение/уменьшение в % от базового значения наносимого повреждения.&lt;br /&gt;
&lt;br /&gt;
Пример зоны, которая добавляет 70% излучения:&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_psy_antenna&lt;br /&gt;
&lt;br /&gt;
[sr_psy_antenna]&amp;lt;br&amp;gt;&lt;br /&gt;
eff_intensity = 70&amp;lt;br&amp;gt;&lt;br /&gt;
hit_ intensity = 70&lt;br /&gt;
&lt;br /&gt;
Пример зоны, которая убирает 30% излучения:&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_psy_antenna&lt;br /&gt;
&lt;br /&gt;
[sr_psy_antenna]&amp;lt;br&amp;gt;&lt;br /&gt;
intensity = -30]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
в версии '''SOC 1.0000''' добавлена возможность задавать вероятность проявления фантомов и тайминг их &amp;quot;живучести&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
phantom_prob = 40 - вероятность проявления фантомов в процентах&amp;lt;br&amp;gt;&lt;br /&gt;
min_phantom_idle = 3000 - мин время их существования до врезания в гг&amp;lt;br&amp;gt;&lt;br /&gt;
max_phantom_idle = 5000 - макс время существования&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.12. Sr_teleport==&lt;br /&gt;
Собственно, телепорт. Настраиваются следующим образом:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_teleport&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_teleport]&amp;lt;br&amp;gt;&lt;br /&gt;
timeout = 0&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
point1 = point1&amp;lt;br&amp;gt;&lt;br /&gt;
look1 = look1&amp;lt;br&amp;gt;&lt;br /&gt;
prob1 = 10&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
point2 = point2&amp;lt;br&amp;gt;&lt;br /&gt;
look2 = look2&amp;lt;br&amp;gt;&lt;br /&gt;
prob2 = 20&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где:&amp;lt;br&amp;gt;&lt;br /&gt;
timeout - задержка в срабатывании телепорта в миллисекундах.&amp;lt;br&amp;gt;&lt;br /&gt;
point - одноточечный патрульный путь куда переместить&amp;lt;br&amp;gt;&lt;br /&gt;
look - одноточечный патрульный путь куда повернуть.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее идут настройки точек назначения с удельными весами. То есть в перечисленном выше примере вероятность телепортнутся во вторую точку в два раза выше, чем в первую. Максимальное количество точек назначения - 10. Телепорты необходимо ставить совместно с особой аномальной зоной, которую сейчас делает Проф. Зона добавит визуализацию и создаст эффект втягивания.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.13. Sr_sleep и настройка снов.==&lt;br /&gt;
&lt;br /&gt;
Появилась возможность задавать зоны сна.&lt;br /&gt;
&lt;br /&gt;
[sr_sleep]&lt;br /&gt;
*cond = &amp;lt;condlist&amp;gt;&lt;br /&gt;
*type = nightmare/normal/happy/all - Задает тип сна разрешенный в данной зоне (по умолчанию all). Влияет (группирует) только на несценарные сны.&lt;br /&gt;
*dream_prob = &amp;lt;число от 0 до 100&amp;gt; - вероятность просмотра несценарных сновидений в данной зоне (по умолчанию 80). В противном случае будет только черный экран.&lt;br /&gt;
&lt;br /&gt;
Необязательное поле cond задает условие(я), при котором в этой зоне можно спать. Сейчас производится индикация зон, где разрешен сон. В левом нижнем углу отображается маленькая иконка легких при входе в такую зону. Вероятно, позже будет изменена на другую.&amp;lt;br&amp;gt;&lt;br /&gt;
Сновидения теперь делятся на сценарные и обычные. Сценарные сновидения отыгрываются один раз при выполнении необходимых условий. Обычные сновидения проигрываются, если нет сценарных или ни одно условие выполнения сценарных не сработало. Можно задавать вероятность отыгрывания обычных сновидений в целом, а также задавать вероятность срабатывания каждого конкретного сновидения в отдельности. Обычным сновидениям можно задавать тип и потом ограничивать по нему сны воспроизводимые в sr_sleep.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В файле misc\dream.ltx задаются настройки снов.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Секция videos.&amp;lt;br&amp;gt;&lt;br /&gt;
Полями задаются пути к видеофайлам со снами.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Секция dreams. Поля:&amp;lt;br&amp;gt;&lt;br /&gt;
regular_probability = &amp;lt;число от 0 до 100&amp;gt; - вероятность проигрывания обычных сновидений в целом &amp;lt;br&amp;gt;&lt;br /&gt;
regular - список секций с настройками для обычных сновидений&amp;lt;br&amp;gt;&lt;br /&gt;
scene - список секций с настройками для сценарных сновидений&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Настройки обычных сновидений:&amp;lt;br&amp;gt;&lt;br /&gt;
dream - имя поля из секции videos&amp;lt;br&amp;gt;&lt;br /&gt;
probability = &amp;lt;число больше 0&amp;gt; - чем больше, тем больше вероятность проигрывания сна.&amp;lt;br&amp;gt;&lt;br /&gt;
type = nightmare/normal/happy - тип сна.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Настройки сценарных сновидений:&amp;lt;br&amp;gt;&lt;br /&gt;
dream - имя поля из секции videos&amp;lt;br&amp;gt;&lt;br /&gt;
cond = &amp;lt;condlist&amp;gt; - условия срабатывания&amp;lt;br&amp;gt;&lt;br /&gt;
to_regular = &amp;lt;вероятность,тип&amp;gt; - необязательное поле. Дает возможность переводить сценарный сон после первого отыгрыша в разряд обычных. &amp;lt;вероятность, тип&amp;gt; аналогичны probability и type из настроек обычных сновидений соответственно.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.14. Sr_cutscene==&lt;br /&gt;
&lt;br /&gt;
	Эта схема предназначена для проведения анимации камеры c некоторым эффектом &lt;br /&gt;
(pp_effector). Последовательность действий, осуществляемых схемой, состоит из мгновенного перемещения игрока в начало пути point и ориентации его взгляда на начало пути look, потери управления игроком и начала анимации камеры cam_effector по завершении которой игрок вновь получает управление.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_cutscene]&amp;lt;br&amp;gt;&lt;br /&gt;
point = &amp;lt;имя пути&amp;gt; - путь в первую точку которого переносится игрок&amp;lt;br&amp;gt;&lt;br /&gt;
look = &amp;lt;имя пути&amp;gt; - путь в первую точку которого смотрит игрок&amp;lt;br&amp;gt;&lt;br /&gt;
*pp_effector = &amp;lt;имя файла с эффектом&amp;gt; - файл, расположенный в папке &amp;lt;br&amp;gt;&lt;br /&gt;
gamedata\anims\ и содержащий эффект (имя файла пишется без расширения)&amp;lt;br&amp;gt;&lt;br /&gt;
cam_effector = &amp;lt;имя файла с анимацией камеры&amp;gt; - файл, расположенный в папке gamedata\anims\camera_effects\ и содержащий анимацию камеры (имя файла пишется без расширения)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.10. Набор дополнительных настроек логики у разных объектов.==&lt;br /&gt;
Для всех физических объектов есть секция ph_idle, поддерживающая кондлист в которую можно при необходимости переводить объекты.&lt;br /&gt;
&lt;br /&gt;
==3.10.1. Схема работы двери, секция [ph_door]==&lt;br /&gt;
&lt;br /&gt;
NB! Для двухстворчатых ворот задается все аналогично.&lt;br /&gt;
&lt;br /&gt;
locked = false\true&amp;lt;br&amp;gt;&lt;br /&gt;
	Заперта ли дверь. По дефолту – false.&lt;br /&gt;
&lt;br /&gt;
Closed = false\true&amp;lt;br&amp;gt;&lt;br /&gt;
	Закрыта ли дверь. По дефолту - true&lt;br /&gt;
&lt;br /&gt;
tip_open = (если locked == false, то tip_door_open, иначе tip_door_locked)&amp;lt;br&amp;gt;&lt;br /&gt;
	Подсказка, которая появляется около прицела при наведении на дверь, если дверь закрыта.&lt;br /&gt;
&lt;br /&gt;
tip_close = (если locked == false, то tip_door_close, иначе пустое значение)&amp;lt;br&amp;gt;&lt;br /&gt;
	Подсказка, которая появляется около прицела при наведении на дверь, если дверь открыта.&lt;br /&gt;
&lt;br /&gt;
snd_init = Звук, который будет отыгран сразу при включении схемы.&lt;br /&gt;
&lt;br /&gt;
snd_open_start = Звук, который будет отыгран при попытке открыть дверь.&lt;br /&gt;
&lt;br /&gt;
snd_close_start = Звук, который будет отыгран при попытке закрыть дверь.&lt;br /&gt;
&lt;br /&gt;
snd_close_stop = Звук, который будет отыгран, когда дверь захлопнется до конца.&lt;br /&gt;
&lt;br /&gt;
Примеры:&amp;lt;br&amp;gt;&lt;br /&gt;
	Если нужно сделать дверь, которая при каком-то событии открывается со щелчком, то можно воспользоваться полем snd_init и переключением схем. В примере ниже при включении схемы ph_door@unlocked проиграется snd_init, т.е. trader_door_unlock:&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = ph_door@locked&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ph_door@locked]&amp;lt;br&amp;gt;&lt;br /&gt;
locked = true&amp;lt;br&amp;gt;&lt;br /&gt;
snd_open_start = trader_door_locked&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = {+esc_trader_can_leave} ph_door@unlocked&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ph_door@unlocked]&amp;lt;br&amp;gt;&lt;br /&gt;
locked = false&amp;lt;br&amp;gt;&lt;br /&gt;
snd_init = trader_door_unlock&amp;lt;br&amp;gt;&lt;br /&gt;
snd_open_start = trader_door_open_start&amp;lt;br&amp;gt;&lt;br /&gt;
snd_close_start = trader_door_close_start&amp;lt;br&amp;gt;&lt;br /&gt;
snd_close_stop = trader_door_close_stop&amp;lt;br&amp;gt;&lt;br /&gt;
файл \gamedata\scripts\ph_door.script&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.10.2. Схема работы кнопки, секция [ph_button]==&lt;br /&gt;
&lt;br /&gt;
При нажатии на кнопку переключает секции и выдает инфопоршн.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active      = ph_button@locked&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ph_button@locked]&amp;lt;br&amp;gt;&lt;br /&gt;
anim_blend  = false&amp;lt;br&amp;gt;&lt;br /&gt;
anim        = button_false&amp;lt;br&amp;gt;&lt;br /&gt;
on_press    = ph_button@unlocked %+cit_jail_door_opened%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
on_press – что происходит при нажатии&amp;lt;br&amp;gt;&lt;br /&gt;
anim – анимация, которая отигрывается при нажатии на кнопку&amp;lt;br&amp;gt;&lt;br /&gt;
anim_blend – плаваня, сглаженная анимация. Может принимать знаечения true\false&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл \Gamedata\scripts\ph_button.script&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*tooltip - gредназначено для того, чтобы задавать текстовую подсказку при наведении на кнопку. Текстовая подсказка нужна для того, чтобы как минимум было понятно, что этот девайс можно нажимать.&amp;lt;br&amp;gt;&lt;br /&gt;
Пример настройки кнопки:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = ph_button@active&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ph_button@active]&amp;lt;br&amp;gt;&lt;br /&gt;
anim = lab_switcher_idle&amp;lt;br&amp;gt;&lt;br /&gt;
tooltip = tips_labx16switcher_press&amp;lt;br&amp;gt;&lt;br /&gt;
on_press = ph_button@deactivated %+terrain_test%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ph_button@deactivated]&amp;lt;br&amp;gt;&lt;br /&gt;
anim = lab_switcher_off&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для того чтобы сообщение не потеряло адекватность при различных настройках клавиатуры сообщение следует писать с использованием токенов. Например:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;string id=&amp;quot;tips_labx16switcher_press&amp;quot;&amp;gt; &lt;br /&gt;
        &amp;lt;text&amp;gt;Чтобы отключить чудо установку нажмите ($$ACTION_USE$$)&amp;lt;/text&amp;gt;&lt;br /&gt;
    &amp;lt;/string&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вот пример кнопки, которая срабатывает не всегда, а по определенному условию:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = ph_button@locked&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ph_button@locked]&amp;lt;br&amp;gt;&lt;br /&gt;
anim = button_false – анимация несрабатывания кнопки.&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = {+val_prisoner_door_unlocked} ph_button@unlocked&amp;lt;br&amp;gt;&lt;br /&gt;
on_press = ph_button@unlocked %+val_prisoner_door_unlocked%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ph_button@unlocked]&amp;lt;br&amp;gt;&lt;br /&gt;
anim = button_true&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = {-val_prisoner_door_unlocked} ph_button@locked&amp;lt;br&amp;gt;&lt;br /&gt;
on_press = ph_button@locked %-val_prisoner_door_unlocked%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[[Часть 4]]===&lt;br /&gt;
&lt;br /&gt;
[[Категория:Скрипты]]&lt;/div&gt;</summary>
		<author><name>95.27.113.222</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_3</id>
		<title>Настройка логики. Часть 3</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_3"/>
				<updated>2010-03-10T09:52:25Z</updated>
		
		<summary type="html">&lt;p&gt;95.27.113.222: /* 3.9.11. Sr_psy_antenna */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Шаблон:Настройка логики}}&lt;br /&gt;
&lt;br /&gt;
==3.8.1. Синтаксис скрипта Logic==&lt;br /&gt;
&lt;br /&gt;
Пример: для того, чтобы персонаж ходил по пути walk1, а при приближении игрока на дистанцию 5 метров, переключался на путь walk2 (но только при условии, что он видит игрока), нужно написать следующее: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = walker1&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[walker1]&amp;lt;br&amp;gt;&lt;br /&gt;
path_walk = walk1&amp;lt;br&amp;gt;&lt;br /&gt;
path_look = look1&amp;lt;br&amp;gt;&lt;br /&gt;
on_actor_dist_le = 5 | walker2&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[walker2]&amp;lt;br&amp;gt;&lt;br /&gt;
path_walk = walk2&amp;lt;br&amp;gt;&lt;br /&gt;
path_look = look2&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Выше рассмотрено безусловное переключение секций. Перед именем секции в фигурных скобках {} можно задавать дополнительные условия, а после имени секции - так называемые &amp;quot;эффекты&amp;quot;, которые заключить в знаки процента: %%. Эффекты будут применены только в случае активации секции. Можно не задавать имя секции, а задать только условия и/или эффекты. Тогда активной останется старая секция, но условия и эффекты будут все равно обработаны. Если все условия в фигурных скобках не выполняются, секция активирована не будет. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
on_actor_dist_le = 5 | {условие} walker2 %эффекты%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Условия могут быть следующими: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+infoportion  - требуется присутствие infoportion у actor&amp;lt;br&amp;gt;&lt;br /&gt;
-infoportion  - требуется отсутствие infoportion у actor&amp;lt;br&amp;gt;&lt;br /&gt;
=func  - требуется, чтобы func вернула true&amp;lt;br&amp;gt;&lt;br /&gt;
!func  - требуется, чтобы func вернулся false&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Эффекты могут быть следующими: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
+infoportion  - в случае включения секции у actor будет установлен infoportion&amp;lt;br&amp;gt;&lt;br /&gt;
-infoportion  - в случае включения секции у actor будет убран infoportion&amp;lt;br&amp;gt;&lt;br /&gt;
=func  - в случае включения секции стартует функция func&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Несколько условия или эффектов разделяются пробелами: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
on_actor_dist_le = 5 | {+info1 -info2 +info3} walker2 %+info4 =func%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Можно задавать сразу несколько секций, разделенных запятыми. Порядок обхода при этом - слева направо. После срабатывания первого из условий, обход прекращается. В примере ниже, если установлен info1, будет включена схема walker2, иначе, если установлен info2, будет включена схема walker3, иначе будет включен walker4: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
on_actor_dist_le = 5 | {+info1} walker2, {+info2} walker3, walker4&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В описанном выше поле active секции logic, можно также задавать условия, например: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = {=actor_friend} walker@friendly, walker@enemy&amp;lt;br&amp;gt;&lt;br /&gt;
В логических условиях теперь принимается ключевое слово never, которое означает, что условие ложно. Например:&amp;lt;br&amp;gt;&lt;br /&gt;
combat_ignore_cond = {=actor_enemy =actor_has_suit} always, {=actor_enemy} never %...эффекты...%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вышеприведенная конструкция включает игнорирование боя, если у NPC враг - игрок в костюме, но отключит его, если врагом является игрок, но без костюма, при этом сработают эффекты (%%) секции never. Таким образом, выбор секции never равносилен отсутствию секции (несрабатыванию условия), но эффекты в знаках процента при этом срабатывают.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример работы с секцией nil. Секция nil выводит из-под скриптовых схем персонажа, монстра или объект и отпускает его под управление движка. Это надо если какое-либо условие выполнившись 1 раз больше не нуждается в проверке, при этом экономятся ресурсы машины, которые на каждом апдейте проверяют это условие.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_idle&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_idle]&amp;lt;br&amp;gt;&lt;br /&gt;
on_actor_inside = nil %+esc_actor_inside%&amp;lt;br&amp;gt;&lt;br /&gt;
То есть, при входе актера в рестриктор выдается инфопоршн и рестриктор уходит в секцию nil, больше не проверяя наличие игрока.&amp;lt;br&amp;gt;&lt;br /&gt;
NB: Обратно из секции nil под скрипты объект вернуть уже невозможно! Учитывайте это, используя ее.&lt;br /&gt;
&lt;br /&gt;
==3.8.2. Вот пример достаточно сложной логики:== &lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = walker&amp;lt;br&amp;gt;&lt;br /&gt;
combat_ignore = combat_ignore&amp;lt;br&amp;gt;&lt;br /&gt;
on_hit = hit&amp;lt;br&amp;gt;&lt;br /&gt;
on_death = death&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[hit]&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = %+alert%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[death]&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = %+alert +trup3%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[walker]&amp;lt;br&amp;gt;&lt;br /&gt;
path_walk = walk_svoboda3&amp;lt;br&amp;gt;&lt;br /&gt;
path_look = look_svoboda3&amp;lt;br&amp;gt;&lt;br /&gt;
combat_ignore_cond = {-alert}&amp;lt;br&amp;gt;&lt;br /&gt;
on_timer = 25000 | remark&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[remark]&amp;lt;br&amp;gt;&lt;br /&gt;
anim = idle&amp;lt;br&amp;gt;&lt;br /&gt;
snd = stalker_talk_kampfire&amp;lt;br&amp;gt;&lt;br /&gt;
no_move = true&amp;lt;br&amp;gt;&lt;br /&gt;
no_rotate = true&amp;lt;br&amp;gt;&lt;br /&gt;
on_hit = hit&amp;lt;br&amp;gt;&lt;br /&gt;
on_death = death&amp;lt;br&amp;gt;&lt;br /&gt;
combat_ignore_cond = {-alert}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[combat_ignore]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рассмотрим ее пошагово. Вначале сталкер работает по схеме walker-a. При этом он игнорирует бой, пока не будет поставлен инфопоршн alert. Он ждет 25 секунд, после чего переходит в схему remark. В ремарке он проигрывает идловую анимацию, говорит на указанные темы, не поворачивается и не двигается и точно также игнорирует бой. Если по нему попадут (on_hit) или убьют (on_death), будет поставлен инфопоршн alert и он перестанет игнорировать бой (понятно, что если он будет трупом, то это ему не поможет, но их в сценке трое, и тогда сорвутся в бой все остальные). Если его убьют, то также будет поставлен инфопоршн trup3 который сообщит о том, что этот сталкер убит.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А  вот логика его противника:&amp;lt;br&amp;gt;&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = walker&amp;lt;br&amp;gt;&lt;br /&gt;
combat_ignore = combat_ignore&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[walker]&amp;lt;br&amp;gt;&lt;br /&gt;
path_walk = soldier_walk1&amp;lt;br&amp;gt;&lt;br /&gt;
path_look = soldier_look1&amp;lt;br&amp;gt;&lt;br /&gt;
combat_ignore_cond = always&amp;lt;br&amp;gt;&lt;br /&gt;
team = assault_group&amp;lt;br&amp;gt;&lt;br /&gt;
on_signal = assault | camper&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[camper]&amp;lt;br&amp;gt;&lt;br /&gt;
path_walk = soldier_walk1_2&amp;lt;br&amp;gt;&lt;br /&gt;
path_look = soldier_look1_2&amp;lt;br&amp;gt;&lt;br /&gt;
radius = 5&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = {+trup1 +trup2 +trup3} walker2&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[walker2]&amp;lt;br&amp;gt;&lt;br /&gt;
path_walk = soldier_walk1_3&amp;lt;br&amp;gt;&lt;br /&gt;
path_look = soldier_look1_3&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[combat_ignore]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Он идет в схеме walker, игнорируя бой (причем игнорируя в любой ситуации). Идет в составе группы assault_group. Когда он приходит в конечную точку маршрута (там он синхронизируется с остальными из группы, это приписано в путях) и получает сигнал assault, то переходит в схему camper. В этой схеме у него не прописан combat_ignore, поэтому он начинает стрелять по противнику. После того, как все трое противников будут убиты, каждый из них, умирая ставит инфопоршн trup1, trup2 или trup3 и когда все трое будут убиты, то он переключится на схему walker2 (подойдет к костру).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9. Схемы логики space_restrictor==&lt;br /&gt;
&lt;br /&gt;
Общее замечание: Чтобы исключить ситуацию, когда актёр проскакивает через рестриктор и тот не успевает сработать, старайтесь ставить рестриктор так, чтоб минимальная ширина была больше 2 метров.&lt;br /&gt;
&lt;br /&gt;
==3.9.1. Схема [sr_idle]==	&lt;br /&gt;
Предназначение данной схемы – включить другую схему при срабатывании одного из стандартных условий логической схемы.&amp;lt;br&amp;gt;&lt;br /&gt;
	Сама по себе схема ничего не делает.&amp;lt;br&amp;gt;&lt;br /&gt;
	Пример настроек рестриктора:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_idle&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_idle]&amp;lt;br&amp;gt;&lt;br /&gt;
on_actor_inside = nil %+esc_actor_inside%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	Обратите внимание, что после срабатывания проверки активная схема переключается в nil, чтобы не продолжать бесполезную проверку на каждом апдейте. Можно не задавать nil.&amp;lt;br&amp;gt;&lt;br /&gt;
Часто эта схема работает вместе со спавнером, рестриктор выдает инфопоршн, при входе в зону, а спавнер по нему уже кого-то спавнит.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
файл \gamedata\scripts\sr_idle.script&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.2. Секция [sr_no_weapon]==&lt;br /&gt;
Данная схема убирает оружие у игрока при входе в зону.&amp;lt;br&amp;gt;&lt;br /&gt;
Пример настроек рестриктора:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_no_weapon&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_no_weapon]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
файл \gamedata\scripts\sr_no_weapon.script&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.3. Секция [sr_sound]==&lt;br /&gt;
&lt;br /&gt;
snd = Перечень имён звуков разделенных запятыми.&lt;br /&gt;
&lt;br /&gt;
type = Типы звуков через запятые. Для удобства введены типы наборов звуков. Т.е., например, чтобы не перечислять каждый раз весь набор звуков скрипа деревянного пола, можно указать тип floor_wooden.&lt;br /&gt;
&lt;br /&gt;
*delay = Задержка перед проигрыванием звука в секундах реального времени, по умолчанию 0.&lt;br /&gt;
&lt;br /&gt;
*idle =  Длина периода игнорирования входа в зону после начала последнего проигранного звука. Чтоб, например, завывание было не чаще, чем раз в несколько минут. В секундах игрового времени. По умолчанию 0.&lt;br /&gt;
&lt;br /&gt;
*rnd = Вероятность (в процентах) того, что звук отыграется. По умолчанию 100.&lt;br /&gt;
&lt;br /&gt;
*position = Задает имя пути, в вершинах которого может отыграться звук. Есть зарезервированное значение random. Оно означает случайное место в радиусе 15…50 метров от игрока. Если этот параметр не задан, то подразумевается позиция игрока.&lt;br /&gt;
&lt;br /&gt;
*slide_velocity = Скорость (м/с) передвижения звука по точкам патрульного пути. По умолчанию - 3&lt;br /&gt;
&lt;br /&gt;
*slide_sound_once = true\false&lt;br /&gt;
	true - проиграть звук один раз, даже если он не дошел до последней точки пути.&lt;br /&gt;
	false – если звук закончился, а до последней точки пути не дошел, запустить его ещё раз. По умолчанию false.&lt;br /&gt;
&lt;br /&gt;
*play_at_actor = true/false Заставляет звук играться от позиции актера постоянно. Если он будет равен true и будет задан путь перемещения звука (или рандом), то мы тупо вылетим.&lt;br /&gt;
&lt;br /&gt;
Предназначение данной схемы: отыграть звук при входе актёра в рестриктор.&lt;br /&gt;
&lt;br /&gt;
Поддерживается sound_end.&lt;br /&gt;
&lt;br /&gt;
Обязательно нужно задать либо snd, либо type. Можно их задать вместе. На базе этих параметров составляется список звуков. При входе актёра в рестриктор отыгрывается случайный звук из этого списка.&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;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_sound&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_sound]&amp;lt;br&amp;gt;&lt;br /&gt;
type = floor_wooden&amp;lt;br&amp;gt;&lt;br /&gt;
snd = ambient\wind1, ambient\sparks1&amp;lt;br&amp;gt;&lt;br /&gt;
rnd = 50&amp;lt;br&amp;gt;&lt;br /&gt;
position = random&amp;lt;br&amp;gt;&lt;br /&gt;
idle = 120&amp;lt;br&amp;gt;&lt;br /&gt;
delay = 3&lt;br /&gt;
&lt;br /&gt;
Есть возможность сделать «скользящий звук». Необходим патрульный путь. Звук начинает отыгрываться с начала пути и перемещается от одной точки пути к другой (по мере их установки на патрульном пути) со скоростью slide_velocity. &lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_sound&lt;br /&gt;
&lt;br /&gt;
[sr_sound]&amp;lt;br&amp;gt;&lt;br /&gt;
type = random&amp;lt;br&amp;gt;&lt;br /&gt;
position = way&amp;lt;br&amp;gt;&lt;br /&gt;
slide_velocity = 8&amp;lt;br&amp;gt;&lt;br /&gt;
slide_sound_once = true&lt;br /&gt;
&lt;br /&gt;
Файл \gamedata\scripts\sr_sound.script&lt;br /&gt;
&lt;br /&gt;
==3.9.4. Секция [sr_tip]==&lt;br /&gt;
Предназначение данной схемы – давать игроку сообщение (подсказку) при входе в рестриктор&lt;br /&gt;
&lt;br /&gt;
name = Название новости.&amp;lt;br&amp;gt;&lt;br /&gt;
type = по умолчанию «news»&amp;lt;br&amp;gt;&lt;br /&gt;
Тип  новостей: «news» – отсылается как глобальная новость, «tips» - отсылается то имени sender-a&lt;br /&gt;
*sender = если тип = «tips», то от sender задаёт условный строковый идентификатор иконки персонажа, от которого якобы пришло сообщение. По умолчанию это иконка торговца.&lt;br /&gt;
&lt;br /&gt;
*cond = Необходимые логические условия, при которых подсказка сработает. По дефолту, сработает при входе в зону.&lt;br /&gt;
&lt;br /&gt;
*single = true/false (по умолчанию false). Если параметр в true, то типс будет выдан только один раз,&lt;br /&gt;
&lt;br /&gt;
Пример настроек рестриктора:&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_tip&lt;br /&gt;
&lt;br /&gt;
[sr_tip]&amp;lt;br&amp;gt;&lt;br /&gt;
name = tips_esc_trader_about_pda&amp;lt;br&amp;gt;&lt;br /&gt;
type = tips&amp;lt;br&amp;gt;&lt;br /&gt;
cond = {+infoportion1 –infoportion2 }&amp;lt;br&amp;gt;&lt;br /&gt;
*showtime = msec – время в миллисекундах, в течение которого сообщение будет находится на экране. – ПОКА НЕ РАБОТАЕТ НОРМАЛЬНО!&lt;br /&gt;
&lt;br /&gt;
Если необходимо проиграть только 1 раз, а это случается часто, то можно добавить следующую строку:&lt;br /&gt;
on_actor_inside = nil &lt;br /&gt;
&lt;br /&gt;
файл \gamedata\scripts\sr_tip.script&lt;br /&gt;
&lt;br /&gt;
==3.9.5. Sr_light==&lt;br /&gt;
Зона, в которой фонарики у неписей будут включены независимо от времени суток.&lt;br /&gt;
&lt;br /&gt;
Работает следующим образом:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_light&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_light]&amp;lt;br&amp;gt;&lt;br /&gt;
light_on = true/false (свет включен/выключен)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Также работает вместе с кондлистом:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_light&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_light]&amp;lt;br&amp;gt;&lt;br /&gt;
light_on = true/false (свет включен/выключен)&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = {+info1} section %+info2%&lt;br /&gt;
&lt;br /&gt;
==3.9.6. Sr_territory==&lt;br /&gt;
&lt;br /&gt;
Занимается эта схема тем, что отлавливает всякие события, происходящие внутри рестриктора.&lt;br /&gt;
Пока что она отлавливает только хиты и смерть сталкеров. Пример использования примерно следующий:&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_territory@outside&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_territory@outside]&amp;lt;br&amp;gt;&lt;br /&gt;
on_actor_inside = sr_territory@inside&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_territory@inside]&amp;lt;br&amp;gt;&lt;br /&gt;
on_actor_outside = sr_territory@outside&amp;lt;br&amp;gt;&lt;br /&gt;
territory_hit = {-bar_dolg_territory_1_hit} %+bar_dolg_territory_1_hit%, {-bar_dolg_territory_2_hit}&amp;lt;br&amp;gt;&lt;br /&gt;
%+bar_dolg_territory_2_hit%, {-bar_dolg_territory_3_hit} %+bar_dolg_territory_3_hit%&lt;br /&gt;
territory_death = {-bar_dolg_territory_kill} %+bar_dolg_territory_kill%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
То есть здесь видно, что когда игрок находится внутри рестриктора, то считается количество нанесенных хитов, а также учитывается был ли кто-то убит или нет. Поскольку схема работает только с игроком – то хиты и смерть засчитываются только от игрока.&lt;br /&gt;
&lt;br /&gt;
==3.9.7. Sr_mapspot==&lt;br /&gt;
&lt;br /&gt;
При входе в рестриктор он сам себя подсвечивает на карте.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Параметры:&amp;lt;br&amp;gt;&lt;br /&gt;
hint - id подсказки в string table (обязательный параметр)&amp;lt;br&amp;gt;&lt;br /&gt;
location - название типа подсветки (не обязательный параметр, по умолчанию &amp;quot;crlc_small&amp;quot;)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример:&amp;lt;br&amp;gt;&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_mapspot&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_mapspot]&amp;lt;br&amp;gt;&lt;br /&gt;
hint = “gar_swamp”&amp;lt;br&amp;gt;&lt;br /&gt;
location = crcl_big&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.8. Sr_particle==&lt;br /&gt;
&lt;br /&gt;
Данная система отыгрывает партиклы как статичные так и движущиеся в указанном месте и в указанное время. Работет она следующим образом:&lt;br /&gt;
&lt;br /&gt;
1) для партикловой системы с путем камеры:&lt;br /&gt;
     [sr_particle]&lt;br /&gt;
     name = explosions\campfire_03          -имя партикловой системы&lt;br /&gt;
     path = particle_test.anm          -имя пути камеры&lt;br /&gt;
     mode = 1 				(обязательно !!!)&lt;br /&gt;
     looped = true/false               		-флаг зацикленности партиклов&lt;br /&gt;
&lt;br /&gt;
(обязательно с расширением ANM !!!) Здесь партиклы будут молча перемещаться по пути.&lt;br /&gt;
          &lt;br /&gt;
2) для партикловой системы с обычным патрульным путем:&lt;br /&gt;
     [sr_particle]&lt;br /&gt;
     name = explosions\campfire_03          -имя партикловой системы&lt;br /&gt;
     path = part_points                   -имя патрульного пути&lt;br /&gt;
     mode = 2 				(обязательно !!!)&lt;br /&gt;
     looped = true/false               -флаг зацикленности партиклов &lt;br /&gt;
&lt;br /&gt;
В вейпоинтах можно задавать флаг s=имя_звуковой_темы и d=число время задержки перед проигрыванием (задается в миллисекундах. Если не задано, то 0). s - имя звуковой темы в sound_themes.ph_snd_themes из которой будет случайно выбран звук для проигрывания во время проигрывания партикла. Звук не зацикливается и играет только один раз.. Результат = партиклы отыгрываются во всех вейпоинтах одновременно (или с задержкой см. выше).&amp;lt;br&amp;gt;&lt;br /&gt;
При looped=true по окончании проигрывания партиклов, они будут запускаться сначала, но уже без задержек. Сигнал particle_end выдаваться не будет. При looped=false сигнал будет выдан, когда все  источники партиклов отыграют. &amp;lt;br&amp;gt;     &lt;br /&gt;
Поддерживается кондлист. Если рестриктор переходит в другую секцию, то автоматически перестают отыгрываться партиклы и замолкают звуки при них. Этот рестриктор является объектом, отслеживающим партиклы и нет никакой необходимости чтобы игрок в него заходил.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.9. Sr_sound_act==&lt;br /&gt;
Итого, схема, которая играет саунд в голове актера. Всякие там переговоры по ПДА и прочие фейки&lt;br /&gt;
&lt;br /&gt;
[sr_sound_act]&amp;lt;br&amp;gt;&lt;br /&gt;
snd = ambient\random\new_drone1     --имя звукового файла&amp;lt;br&amp;gt;&lt;br /&gt;
*delay = 2000                          --задержка перед проигрыванием &amp;lt;br&amp;gt;&lt;br /&gt;
*delay_max = 4000		-- между проигрыванием звука будет взят случайный промежуток между delay и delay_max.&amp;lt;br&amp;gt;&lt;br /&gt;
*on_signal = sound_end | nil           --по сигналу можно перейти в другую секцию.&amp;lt;br&amp;gt;&lt;br /&gt;
theme =  &amp;lt;имя темы из ph_sound_themes&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* stereo = true/false (по умолчанию false). При установке этого параметра к файлу, который задан параметром snd или в звуковой теме будут добавляться (автоматически) суффиксы _r и _l для загрузки левого и правого каналов и, соответственно, вся эта фигня будет играться.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если указывается тема, то звук будет играть зациклено, случайным образом выбирая один из звуков прописанных в теме, если указывается звук, то он отыгрывается один раз. Схема поддерживает кондлист.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.10 Sr_timer==&lt;br /&gt;
&lt;br /&gt;
Пример использования:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_timer@1&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_timer@1]&amp;lt;br&amp;gt;&lt;br /&gt;
type = dec&amp;lt;br&amp;gt;&lt;br /&gt;
start_value = 10000&amp;lt;br&amp;gt;&lt;br /&gt;
on_value = 0 | sr_timer@2&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_timer@2]&amp;lt;br&amp;gt;&lt;br /&gt;
type = inc&amp;lt;br&amp;gt;&lt;br /&gt;
on_value = 15000 | nil %+info1%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Описания полей:&amp;lt;br&amp;gt;&lt;br /&gt;
type - тип счетчика, инкриментирующий(inc) или декриментирующий(dec).&amp;lt;br&amp;gt;&lt;br /&gt;
Если поле не задано -  счетчик будет инкриментирующий&amp;lt;br&amp;gt;&lt;br /&gt;
start_value - начальное значение счетчика в РЕАЛЬНЫХ милисекундах. Для декриментирующих счетчиков задавать обязательно. Для инкриментирующих, если не задано, то считается с 0.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Переходы из секции sr_timer могут быть как по обычным условиям (on_timer, on_info) так и по специфическому условию on_value. В общем случае on_value Можно использовать для производства каких либо действий в зависимости от состояния счетчика. Например:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
on_value = 5000| %+info1% | 1000| %+info2%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.11. Sr_psy_antenna==&lt;br /&gt;
Зоны с такой секцией позволяют управлять эффектами от пси-воздействия (на Янтаре и Радаре). Сейчас можно управлять интенсивностью излучения и интенсивностью получения повреждений.&lt;br /&gt;
&lt;br /&gt;
Способ применения: Расставить зоны, в каждой зоне написать, сколько процентов к интенсивности излучения и повреждения она добавляет/отнимает. Зоны могут быть вложены друг в друга, пересекать друг друга. &lt;br /&gt;
&lt;br /&gt;
eff_intensity = 	- увеличение/уменьшение в % от базового значения интенсивности излучения.&lt;br /&gt;
hit_ intensity = 	- увеличение/уменьшение в % от базового значения наносимого повреждения.&lt;br /&gt;
&lt;br /&gt;
Пример зоны, которая добавляет 70% излучения:&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_psy_antenna&lt;br /&gt;
&lt;br /&gt;
[sr_psy_antenna]&amp;lt;br&amp;gt;&lt;br /&gt;
eff_intensity = 70&amp;lt;br&amp;gt;&lt;br /&gt;
hit_ intensity = 70&lt;br /&gt;
&lt;br /&gt;
Пример зоны, которая убирает 30% излучения:&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_psy_antenna&lt;br /&gt;
&lt;br /&gt;
[sr_psy_antenna]&amp;lt;br&amp;gt;&lt;br /&gt;
intensity = -30&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
в версии '''SOC 1.0000''' добавлена возможность задавать вероятность проявления фантомов и тайминг их &amp;quot;живучести&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
phantom_prob = 40 - вероятность проявления фантомов в процентах&amp;lt;br&amp;gt;&lt;br /&gt;
min_phantom_idle = 3000 - мин время их существования до врезания в гг&amp;lt;br&amp;gt;&lt;br /&gt;
max_phantom_idle = 5000 - макс время существования&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.12. Sr_teleport==&lt;br /&gt;
Собственно, телепорт. Настраиваются следующим образом:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = sr_teleport&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_teleport]&amp;lt;br&amp;gt;&lt;br /&gt;
timeout = 0&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
point1 = point1&amp;lt;br&amp;gt;&lt;br /&gt;
look1 = look1&amp;lt;br&amp;gt;&lt;br /&gt;
prob1 = 10&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
point2 = point2&amp;lt;br&amp;gt;&lt;br /&gt;
look2 = look2&amp;lt;br&amp;gt;&lt;br /&gt;
prob2 = 20&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где:&amp;lt;br&amp;gt;&lt;br /&gt;
timeout - задержка в срабатывании телепорта в миллисекундах.&amp;lt;br&amp;gt;&lt;br /&gt;
point - одноточечный патрульный путь куда переместить&amp;lt;br&amp;gt;&lt;br /&gt;
look - одноточечный патрульный путь куда повернуть.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее идут настройки точек назначения с удельными весами. То есть в перечисленном выше примере вероятность телепортнутся во вторую точку в два раза выше, чем в первую. Максимальное количество точек назначения - 10. Телепорты необходимо ставить совместно с особой аномальной зоной, которую сейчас делает Проф. Зона добавит визуализацию и создаст эффект втягивания.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.13. Sr_sleep и настройка снов.==&lt;br /&gt;
&lt;br /&gt;
Появилась возможность задавать зоны сна.&lt;br /&gt;
&lt;br /&gt;
[sr_sleep]&lt;br /&gt;
*cond = &amp;lt;condlist&amp;gt;&lt;br /&gt;
*type = nightmare/normal/happy/all - Задает тип сна разрешенный в данной зоне (по умолчанию all). Влияет (группирует) только на несценарные сны.&lt;br /&gt;
*dream_prob = &amp;lt;число от 0 до 100&amp;gt; - вероятность просмотра несценарных сновидений в данной зоне (по умолчанию 80). В противном случае будет только черный экран.&lt;br /&gt;
&lt;br /&gt;
Необязательное поле cond задает условие(я), при котором в этой зоне можно спать. Сейчас производится индикация зон, где разрешен сон. В левом нижнем углу отображается маленькая иконка легких при входе в такую зону. Вероятно, позже будет изменена на другую.&amp;lt;br&amp;gt;&lt;br /&gt;
Сновидения теперь делятся на сценарные и обычные. Сценарные сновидения отыгрываются один раз при выполнении необходимых условий. Обычные сновидения проигрываются, если нет сценарных или ни одно условие выполнения сценарных не сработало. Можно задавать вероятность отыгрывания обычных сновидений в целом, а также задавать вероятность срабатывания каждого конкретного сновидения в отдельности. Обычным сновидениям можно задавать тип и потом ограничивать по нему сны воспроизводимые в sr_sleep.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В файле misc\dream.ltx задаются настройки снов.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Секция videos.&amp;lt;br&amp;gt;&lt;br /&gt;
Полями задаются пути к видеофайлам со снами.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Секция dreams. Поля:&amp;lt;br&amp;gt;&lt;br /&gt;
regular_probability = &amp;lt;число от 0 до 100&amp;gt; - вероятность проигрывания обычных сновидений в целом &amp;lt;br&amp;gt;&lt;br /&gt;
regular - список секций с настройками для обычных сновидений&amp;lt;br&amp;gt;&lt;br /&gt;
scene - список секций с настройками для сценарных сновидений&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Настройки обычных сновидений:&amp;lt;br&amp;gt;&lt;br /&gt;
dream - имя поля из секции videos&amp;lt;br&amp;gt;&lt;br /&gt;
probability = &amp;lt;число больше 0&amp;gt; - чем больше, тем больше вероятность проигрывания сна.&amp;lt;br&amp;gt;&lt;br /&gt;
type = nightmare/normal/happy - тип сна.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Настройки сценарных сновидений:&amp;lt;br&amp;gt;&lt;br /&gt;
dream - имя поля из секции videos&amp;lt;br&amp;gt;&lt;br /&gt;
cond = &amp;lt;condlist&amp;gt; - условия срабатывания&amp;lt;br&amp;gt;&lt;br /&gt;
to_regular = &amp;lt;вероятность,тип&amp;gt; - необязательное поле. Дает возможность переводить сценарный сон после первого отыгрыша в разряд обычных. &amp;lt;вероятность, тип&amp;gt; аналогичны probability и type из настроек обычных сновидений соответственно.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.9.14. Sr_cutscene==&lt;br /&gt;
&lt;br /&gt;
	Эта схема предназначена для проведения анимации камеры c некоторым эффектом &lt;br /&gt;
(pp_effector). Последовательность действий, осуществляемых схемой, состоит из мгновенного перемещения игрока в начало пути point и ориентации его взгляда на начало пути look, потери управления игроком и начала анимации камеры cam_effector по завершении которой игрок вновь получает управление.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sr_cutscene]&amp;lt;br&amp;gt;&lt;br /&gt;
point = &amp;lt;имя пути&amp;gt; - путь в первую точку которого переносится игрок&amp;lt;br&amp;gt;&lt;br /&gt;
look = &amp;lt;имя пути&amp;gt; - путь в первую точку которого смотрит игрок&amp;lt;br&amp;gt;&lt;br /&gt;
*pp_effector = &amp;lt;имя файла с эффектом&amp;gt; - файл, расположенный в папке &amp;lt;br&amp;gt;&lt;br /&gt;
gamedata\anims\ и содержащий эффект (имя файла пишется без расширения)&amp;lt;br&amp;gt;&lt;br /&gt;
cam_effector = &amp;lt;имя файла с анимацией камеры&amp;gt; - файл, расположенный в папке gamedata\anims\camera_effects\ и содержащий анимацию камеры (имя файла пишется без расширения)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.10. Набор дополнительных настроек логики у разных объектов.==&lt;br /&gt;
Для всех физических объектов есть секция ph_idle, поддерживающая кондлист в которую можно при необходимости переводить объекты.&lt;br /&gt;
&lt;br /&gt;
==3.10.1. Схема работы двери, секция [ph_door]==&lt;br /&gt;
&lt;br /&gt;
NB! Для двухстворчатых ворот задается все аналогично.&lt;br /&gt;
&lt;br /&gt;
locked = false\true&amp;lt;br&amp;gt;&lt;br /&gt;
	Заперта ли дверь. По дефолту – false.&lt;br /&gt;
&lt;br /&gt;
Closed = false\true&amp;lt;br&amp;gt;&lt;br /&gt;
	Закрыта ли дверь. По дефолту - true&lt;br /&gt;
&lt;br /&gt;
tip_open = (если locked == false, то tip_door_open, иначе tip_door_locked)&amp;lt;br&amp;gt;&lt;br /&gt;
	Подсказка, которая появляется около прицела при наведении на дверь, если дверь закрыта.&lt;br /&gt;
&lt;br /&gt;
tip_close = (если locked == false, то tip_door_close, иначе пустое значение)&amp;lt;br&amp;gt;&lt;br /&gt;
	Подсказка, которая появляется около прицела при наведении на дверь, если дверь открыта.&lt;br /&gt;
&lt;br /&gt;
snd_init = Звук, который будет отыгран сразу при включении схемы.&lt;br /&gt;
&lt;br /&gt;
snd_open_start = Звук, который будет отыгран при попытке открыть дверь.&lt;br /&gt;
&lt;br /&gt;
snd_close_start = Звук, который будет отыгран при попытке закрыть дверь.&lt;br /&gt;
&lt;br /&gt;
snd_close_stop = Звук, который будет отыгран, когда дверь захлопнется до конца.&lt;br /&gt;
&lt;br /&gt;
Примеры:&amp;lt;br&amp;gt;&lt;br /&gt;
	Если нужно сделать дверь, которая при каком-то событии открывается со щелчком, то можно воспользоваться полем snd_init и переключением схем. В примере ниже при включении схемы ph_door@unlocked проиграется snd_init, т.е. trader_door_unlock:&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = ph_door@locked&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ph_door@locked]&amp;lt;br&amp;gt;&lt;br /&gt;
locked = true&amp;lt;br&amp;gt;&lt;br /&gt;
snd_open_start = trader_door_locked&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = {+esc_trader_can_leave} ph_door@unlocked&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ph_door@unlocked]&amp;lt;br&amp;gt;&lt;br /&gt;
locked = false&amp;lt;br&amp;gt;&lt;br /&gt;
snd_init = trader_door_unlock&amp;lt;br&amp;gt;&lt;br /&gt;
snd_open_start = trader_door_open_start&amp;lt;br&amp;gt;&lt;br /&gt;
snd_close_start = trader_door_close_start&amp;lt;br&amp;gt;&lt;br /&gt;
snd_close_stop = trader_door_close_stop&amp;lt;br&amp;gt;&lt;br /&gt;
файл \gamedata\scripts\ph_door.script&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.10.2. Схема работы кнопки, секция [ph_button]==&lt;br /&gt;
&lt;br /&gt;
При нажатии на кнопку переключает секции и выдает инфопоршн.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active      = ph_button@locked&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ph_button@locked]&amp;lt;br&amp;gt;&lt;br /&gt;
anim_blend  = false&amp;lt;br&amp;gt;&lt;br /&gt;
anim        = button_false&amp;lt;br&amp;gt;&lt;br /&gt;
on_press    = ph_button@unlocked %+cit_jail_door_opened%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
on_press – что происходит при нажатии&amp;lt;br&amp;gt;&lt;br /&gt;
anim – анимация, которая отигрывается при нажатии на кнопку&amp;lt;br&amp;gt;&lt;br /&gt;
anim_blend – плаваня, сглаженная анимация. Может принимать знаечения true\false&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл \Gamedata\scripts\ph_button.script&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*tooltip - gредназначено для того, чтобы задавать текстовую подсказку при наведении на кнопку. Текстовая подсказка нужна для того, чтобы как минимум было понятно, что этот девайс можно нажимать.&amp;lt;br&amp;gt;&lt;br /&gt;
Пример настройки кнопки:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = ph_button@active&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ph_button@active]&amp;lt;br&amp;gt;&lt;br /&gt;
anim = lab_switcher_idle&amp;lt;br&amp;gt;&lt;br /&gt;
tooltip = tips_labx16switcher_press&amp;lt;br&amp;gt;&lt;br /&gt;
on_press = ph_button@deactivated %+terrain_test%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ph_button@deactivated]&amp;lt;br&amp;gt;&lt;br /&gt;
anim = lab_switcher_off&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для того чтобы сообщение не потеряло адекватность при различных настройках клавиатуры сообщение следует писать с использованием токенов. Например:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;string id=&amp;quot;tips_labx16switcher_press&amp;quot;&amp;gt; &lt;br /&gt;
        &amp;lt;text&amp;gt;Чтобы отключить чудо установку нажмите ($$ACTION_USE$$)&amp;lt;/text&amp;gt;&lt;br /&gt;
    &amp;lt;/string&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вот пример кнопки, которая срабатывает не всегда, а по определенному условию:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = ph_button@locked&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ph_button@locked]&amp;lt;br&amp;gt;&lt;br /&gt;
anim = button_false – анимация несрабатывания кнопки.&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = {+val_prisoner_door_unlocked} ph_button@unlocked&amp;lt;br&amp;gt;&lt;br /&gt;
on_press = ph_button@unlocked %+val_prisoner_door_unlocked%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ph_button@unlocked]&amp;lt;br&amp;gt;&lt;br /&gt;
anim = button_true&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = {-val_prisoner_door_unlocked} ph_button@locked&amp;lt;br&amp;gt;&lt;br /&gt;
on_press = ph_button@locked %-val_prisoner_door_unlocked%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[[Часть 4]]===&lt;br /&gt;
&lt;br /&gt;
[[Категория:Скрипты]]&lt;/div&gt;</summary>
		<author><name>95.27.113.222</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>2010-03-10T09:39:56Z</updated>
		
		<summary type="html">&lt;p&gt;95.27.113.222: &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;250&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;
[[Настройка логики. Часть 0]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Настройка логики. Часть 1]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Настройка логики. Часть 2]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Настройка логики. Часть 3]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Настройка логики. Часть 4]]&lt;br /&gt;
 |-&lt;br /&gt;
 |}&lt;/div&gt;</summary>
		<author><name>95.27.113.222</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_0</id>
		<title>Настройка логики. Часть 0</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_0"/>
				<updated>2010-03-10T09:37:55Z</updated>
		
		<summary type="html">&lt;p&gt;95.27.113.222: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Шаблон:Настройка логики}}&lt;br /&gt;
&lt;br /&gt;
'''GSC GameWorld'''&lt;br /&gt;
&lt;br /&gt;
==1. Changes Log==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NULL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==2. Скрипты==&lt;br /&gt;
Скрипты, которые можно использовать при конструировании игровых сцен: ScriptList&lt;br /&gt;
&lt;br /&gt;
Настройка смарттеррейнов: ScriptGulag&lt;br /&gt;
&lt;br /&gt;
==2.1. ГУЛАГ==&lt;br /&gt;
==2.1.1. Что это такое? Особенности==&lt;br /&gt;
Гулаг - средство объединения нескольких сталкеров под централизованным управлением.&lt;br /&gt;
&lt;br /&gt;
Основные особенности:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* есть список работ гулага. Работа - настроенная схема поведения (или цепочка схем  поведения);&amp;lt;br&amp;gt;&lt;br /&gt;
* работы имеют приоритеты;&amp;lt;br&amp;gt;&lt;br /&gt;
* гулаг назначает на работы сталкеров начиная с работ с наивысшим приоритетом;&amp;lt;br&amp;gt;&lt;br /&gt;
* гулаг имеет состояния. Состояние - набор работ;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==2.1.2. Как добавить новый тип гулага==&lt;br /&gt;
&lt;br /&gt;
===1. Установка на уровне.===&lt;br /&gt;
&lt;br /&gt;
- Необходимо установить зону smart_terrain, которая бы накрывала место захвата свежих душ (место спауна сталкеров). Необходимо помнить, что название зоны будет являться префиксом для патрульных путей, относящихся к этому гулагу. В custom_data зоны необходимо прописать настройку гулага: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[gulag1] &amp;lt;br&amp;gt;&lt;br /&gt;
type = &amp;lt;тип гулага&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
squad = &amp;lt;squad&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
groups = &amp;lt;groups&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
capacity = &amp;lt;capacity&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
idle = min[, max] ;время бездействия после роспуска гулага. умолчание=0 &amp;lt;br&amp;gt;&lt;br /&gt;
stay = min[, max] ;время, на которое сталкер останется. умолчание=навсегда &amp;lt;br&amp;gt;&lt;br /&gt;
duration = min[, max] ; вермя существования данного типа гулага. умолчание=всегда &amp;lt;br&amp;gt;&lt;br /&gt;
preconditions = info1[, info2, ...] ; чтоб данный тип гулага образовался, нужно присутствие всех infoportions &amp;lt;br&amp;gt;&lt;br /&gt;
p = вероятность попадания сталкера под смарт терейн в процентах &amp;lt;br&amp;gt;&lt;br /&gt;
offline = true/false ; может ли данный гулаг образоваться в офлайне &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
времена задаются в часах игрового времени и могут быть дробными&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;тип гулага&amp;gt; - от него зависит набор и настройка работ.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;squad&amp;gt; - все люди в гулаге будут иметь данный сквад. При отпускании на волю им будет восстанавливаться их родной сквад из редактора.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;groups&amp;gt; - перечень групп, которые будут сетиться для той или иной работы. Задается строкой чисел, разделенных запятыми.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;capacity&amp;gt; - максимальная вместимость гулага. Если количество человек в гулаге достигает этого значения, то больше в гулаг никто не принимается. Количество работ в гулаге в любой момент времени должно быть больше либо равно вместимости. Таким образом количество людей в гулаге гарантированно будет меньше либо равно количеству работ в любой момент времени.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Установка в коде. ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
- необходимо в gulag_tasks.script внести настройку работ для данного типа гулага &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
t = { section = &amp;quot;kamp1@gar_bandits&amp;quot;, &lt;br /&gt;
        idle = 0,&lt;br /&gt;
        prior = 1, state = {0}, group = groups[0]&lt;br /&gt;
        in_rest = &amp;quot;&amp;quot;, out_rest = &amp;quot;&amp;quot;&lt;br /&gt;
} &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Idle – время в мс между запусками работы. Если оно отлично от 0, то работа может сетится только раз  в заданное время. Если работа просечена – то обнуляться она не будет. Нужно для того чтобы раз в интервал отправлять патрули и другие конечные работы&amp;lt;br&amp;gt;&lt;br /&gt;
Prior – приоритет. Сперва заполняются работы с более высоким приоритетом.&amp;lt;br&amp;gt;&lt;br /&gt;
State - таблица с перечнем состояний гулага, в которых доступна данная работа.&amp;lt;br&amp;gt;&lt;br /&gt;
Group – группа для текущей работы, из перечисленных в кастом дате зоны.&amp;lt;br&amp;gt;&lt;br /&gt;
In_rest, out_rest - In и out рестрикторы для персонажа на текущей работе.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
- необходимо в gulag_tasks.script добавить функцию просчета состояния для данного типа гулага (см пример в коде. Функция loadStates())&amp;lt;br&amp;gt;&lt;br /&gt;
- в файле gulag_tasks.ltx создать описание каждой работы. Пример смотри в данном файле. Каждая работа должна описываться отдельной секцией(за исключением работ, которые кушают один и те же настройки, например kamp). Имена секций следует давать в соответствии с соглашением([walker1@имя зоны])&amp;lt;br&amp;gt;&lt;br /&gt;
- в файле xr_gulag.script добавить функцию проверки на допустимость персонажа к гулагу (см пример в коде check_npc())&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[[Часть 1]]===&lt;br /&gt;
&lt;br /&gt;
[[Категория:Скрипты]]&lt;/div&gt;</summary>
		<author><name>95.27.113.222</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>2010-03-10T09:36:47Z</updated>
		
		<summary type="html">&lt;p&gt;95.27.113.222: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;:&amp;lt;br&amp;gt;&lt;br /&gt;
'''wp00|flag1|flag2'''&amp;lt;br&amp;gt;&lt;br /&gt;
Флаги точек пути '''path_walk''':&amp;lt;br&amp;gt;&lt;br /&gt;
'''a=state'''&amp;lt;br&amp;gt;&lt;br /&gt;
	Выбирает состояние тела при перемещении (Только из раздела –Ходячие состояния)&amp;lt;br&amp;gt;&lt;br /&gt;
	Список состояний можно взять в '''gamedata\scripts\state_lib.script'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''p=percent'''&amp;lt;br&amp;gt;&lt;br /&gt;
	Вероятность остановиться в точке в процентах (0 – 100). По умолчанию 100, т.е. сталкер никогда не проходит мимо точек остановки.&amp;lt;br&amp;gt;&lt;br /&gt;
'''sig=name'''&amp;lt;br&amp;gt;&lt;br /&gt;
	Установить сигнал с именем name сразу по прибытию в точку (до поворота) для последующей его проверки с помощью поля '''on_signal''' логической схемы. Если нужно установить сигнал после поворота – используйте соответствующий флажок пути '''path_look'''.&amp;lt;br&amp;gt;&lt;br /&gt;
Флаги точек пути '''path_look''':&amp;lt;br&amp;gt;&lt;br /&gt;
'''a =state'''&amp;lt;br&amp;gt;&lt;br /&gt;
	Выбирает состояние тела при стоянии (или сидении) на месте. (Из разделов Стоячие и Сидячие состояния)&amp;lt;br&amp;gt;&lt;br /&gt;
	Список состояний можно взять в '''gamedata\scripts\state_lib.script'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''t=msec''' - время в миллисекундах, которое персонаж должен смотреть в заданную точку.&amp;lt;br&amp;gt;&lt;br /&gt;
* – бесконечное время. Допустимы значения в диапазоне '''[1000, 30000]''', по умолчанию – '''5000'''.&amp;lt;br&amp;gt;&lt;br /&gt;
	Для конечных (терминальных) вершин пути '''path_walk''', у которых не более 1-й соответствующей точки '''path_look''', значение t всегда считается бесконечным и его явно задавать не нужно.&amp;lt;br&amp;gt;&lt;br /&gt;
'''sig=name'''&amp;lt;br&amp;gt;&lt;br /&gt;
	После поворота в точку '''path_look''', установить сигнал с именем name.&amp;lt;br&amp;gt;&lt;br /&gt;
'''syn'''&amp;lt;br&amp;gt;&lt;br /&gt;
	Наличие флажка задержит установку сигнала до тех пор, пока в точку с флажком syn не прибудут все персонажи с данным team-ом ('''team''' задается в виде текстовой строки в '''customdata'''). До тех пор, пока остальные персонажи не прибудут, ожидающей персонаж будет отыгрывать свою '''idle''' анимацию.&amp;lt;br&amp;gt;&lt;br /&gt;
'''sigtm=signal'''&amp;lt;br&amp;gt;&lt;br /&gt;
Устанавливает сигнал при вызове time_callback-а state manager-ом. Соответственно, если t=0, то сигнал будет установлен после отыгрывания init анимации. Это используется, например, с анимацией press, которая состоит из двух частей: 1 - нажимаем на кнопку, 2 - опускаем руку.&amp;lt;br&amp;gt;&lt;br /&gt;
В пути path_look можно сделать: '''wp00|a=press|t=0|sigtm=pressed'''&amp;lt;br&amp;gt;&lt;br /&gt;
А затем переключить схему: '''on_signal = pressed | другая_схема'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.1.1. Более подробное описание путей. ==&lt;br /&gt;
&lt;br /&gt;
Walker.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Настройка:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Изображение:Logic_1.JPG]]&lt;br /&gt;
&lt;br /&gt;
На карту для каждого walker-а нужно поставить:&amp;lt;br&amp;gt;&lt;br /&gt;
1)	Путь path_walk, по которому walker ходит.&amp;lt;br&amp;gt;&lt;br /&gt;
2)	Путь path_look, состоящий из точек, в которые walker смотрит.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Walker-ов может быть 1 или больше. Они могут действовать независимо, или взаимодействовать друг с другом.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[walker]&amp;lt;br&amp;gt;&lt;br /&gt;
team = …&amp;lt;br&amp;gt;&lt;br /&gt;
имя команды, произвольная текстовая строка. Все walker-ы в одной команде должны иметь один и тот же team. Желательно в team задавать имя уровня и имя места, где стоят walker-ы, например: escape_bridge, escape_factory, это уменьшит шанс ошибиться и дать разным командам общее имя.&amp;lt;br&amp;gt;&lt;br /&gt;
path_walk = …&amp;lt;br&amp;gt;&lt;br /&gt;
	имя пути, описанного в п. 1&amp;lt;br&amp;gt;&lt;br /&gt;
path_look = …&amp;lt;br&amp;gt;&lt;br /&gt;
(не обязательно) имя пути, описанного в п. 2. Если персонаж должен только ходить по маршруту, path_look можно не задавать.&amp;lt;br&amp;gt;&lt;br /&gt;
Если персонаж должен стоять на месте, то ему задается одна точка пути path_walk и как минимум одна точка пути path_look&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правила расстановки флажков в путях рассмотрим на нескольких примерах:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Пример 1:===&lt;br /&gt;
&lt;br /&gt;
Персонаж патрулирует территорию вокруг двух домиков. Маршрут строится следующим образом: &amp;lt;br&amp;gt;&lt;br /&gt;
[[Изображение:Logic_2.JPG]]&lt;br /&gt;
&lt;br /&gt;
	Как сделать, чтобы персонаж между определенными точками бежал или крался? Для этого в пути path_walk существуют флажки.&amp;lt;br&amp;gt;&lt;br /&gt;
	У каждого вейпоинта есть имя: wp00, wp01 и т.д.&amp;lt;br&amp;gt;&lt;br /&gt;
	Флажки задаются в имени. Их нужно отделять от самого имени с помощью символа ‘|’. Пишеться a=anim, где anim – название анимации из пункта 2.4.4. настоящей документации. Если мы напишем a=threat то персонаж пойдет в состоянии данжер, если a=raid то побежит с оружием наизготовку и т.д. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NB: В точках пути path_walk используются анимации ТОЛЬКО из раздела «Ходячие состояния»!&lt;br /&gt;
&lt;br /&gt;
===Пример 2:===&lt;br /&gt;
[[Изображение:Logic_3.JPG]]&lt;br /&gt;
&lt;br /&gt;
Разговор персонажа.&lt;br /&gt;
&lt;br /&gt;
Чтобы персонаж говорил, перемещаясь по маршруту, нужно определить в каждой точке список тем, на которые он может говорить. Для этого существуют следующие поля:&amp;lt;br&amp;gt;&lt;br /&gt;
s = имя_звуковой_схемы (по умолчанию звук отключен). Несколько тем можно перечислять через запятую.&lt;br /&gt;
&lt;br /&gt;
===Пример 3:===&lt;br /&gt;
[[Изображение:Logic_4.JPG]]&lt;br /&gt;
&lt;br /&gt;
В примере 3 используется только поле s, чтобы задать тему разговора, и флажок sc, чтобы показать, что звук проигрывается не разово, а периодически.&amp;lt;br&amp;gt;&lt;br /&gt;
Остальные параметры (sp, sf, st) задавать НЕ РЕКОМЕНДУЕТСЯ, значения по умолчанию приемлимы для большинства скриптов.&amp;lt;br&amp;gt;&lt;br /&gt;
Параметр sa также использовать НЕ РЕКОМЕНДУЕТСЯ. Если нужно стартовать звук одновременно с анимацией, лучше воспользоваться полями пути path_look, о котором будет написано ниже в этом документе.&amp;lt;br&amp;gt;&lt;br /&gt;
Если персонаж не только ходит по маршруту, но должен также останавливаться и играть анимации, нужно задать ему путь path_look.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Пример 4:=== &lt;br /&gt;
усовершенствуем пример 1, чтобы персонаж, проходя мимо проема между домами, останавливался и заглядывал в него:&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Logic_5.JPG]]&lt;br /&gt;
&lt;br /&gt;
Что добавилось в этом примере? Путь path_look с двумя точками. Связь между точками этого пути рекомендуется сразу же удалить в редакторе, поскольку она все равно не используется.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее, в точках путей path_walk и path_look, которые обведены на рисунке пунктирной линией, в редакторе ставим общие флажки. Например, в верхней паре точек ставим флажок 0, а в нижней паре точек – флажок 1.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь персонаж будет останавливаться в точках path_walk, помеченных флажком, и смотреть в точку path_look, помеченную тем же самым флажком.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если точка path_walk  не помечена флажком, персонаж проходит ее не останавливаясь.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Одной точке path_walk может соответствовать несколько точек path_look. Тогда персонаж выберем случайно одну из подходящих точек.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По аналогии с path_walk, в точках пути path_look можно использовать различные флажки, меняющие поведение:&amp;lt;br&amp;gt;&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.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
t = время, на которое персонаж задержится в этой точке (по умолчанию 5000 мсек)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Пример 5:===&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Logic_6.JPG]]&lt;br /&gt;
&lt;br /&gt;
В этом примере проходя через точку wp00, персонаж с вероятностью 30% посмотрит в точку wp00 в течение 5 секунд, но с вероятностью 70% посмотрит в точку wp01 в течении 10 секунд.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По умолчанию при остановках персонаж играет анимацию idle, если он не в состоянии crouch, либо анимацию hide, если он в состоянии crouch.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если требуется другая анимация, можно ее указать с помощью флажка:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a = имя_анимации (по умолчанию idle). &amp;lt;br&amp;gt;&lt;br /&gt;
Пишеться a=anim, где anim – название анимации из пункта 2.4.4. настоящей документации. Если мы напишем a=hide, то персонаж сядет в состоянии данжер, если a=guard, то встанет  с оружием наизготовку и т.д. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NB: В точках пути path_look используются анимации ТОЛЬКО из раздела «Стоячие и сидячие состояния»!&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.2. Схемы поведения сталкеров.==&lt;br /&gt;
Есть определенный набор схем, которые описывают поведение персонажа. Они прописываются у него в custom_data или, в случае гулага, в соответствующих файлах, описывающих работы данного гулага. Ниже приведен перечень этих схем.&amp;lt;br&amp;gt;&lt;br /&gt;
В файле \gamedata\scripts\modules.script указаны все загружаемые схемы.&amp;lt;br&amp;gt;&lt;br /&gt;
==3.2.1. Схема walker==&lt;br /&gt;
Это базовая схема, по которой персонаж, перемещается по патрульному пути (path_walk) и останавливается в определенных точках и выполняет соответствующие действия. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[walker]&amp;lt;br&amp;gt;&lt;br /&gt;
path_walk = &amp;lt;имя пути&amp;gt;- основной путь, по которому ходит NPC&amp;lt;br&amp;gt;&lt;br /&gt;
* path_look  = &amp;lt;имя пути&amp;gt;- путь, куда смотрит NPC&amp;lt;br&amp;gt;&lt;br /&gt;
* team - команда для синхронизации&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В точках path_walk, которым соответствуют точки пути path_look (стоят одинаковые флажки) персонаж останавливается и смотрит в определенную точку, при этом отыгрывая (или не отыгрывая) определенную анимацию.&amp;lt;br&amp;gt;&lt;br /&gt;
* def_state_moving1 = состояние, в котором сталкер движется к первой точке пути, если она близко (patrol по умолчанию)&amp;lt;br&amp;gt;&lt;br /&gt;
* def_state_moving2 = состояние, в котором сталкер движется к первой точке пути, если она не слишком далеко (rush по умолчанию)&amp;lt;br&amp;gt;&lt;br /&gt;
* def_state_moving3 = состояние, в котором сталкер движется к первой точке пути, если она далеко (sprint по умолчанию)&amp;lt;br&amp;gt;&lt;br /&gt;
* def_state_standing = дефолтное состояние в котором он стоит и смотрит на точку, если в этой точке не задана другое состояние.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Файл: \gamedata\scripts\xr_walker.script&lt;br /&gt;
&lt;br /&gt;
==3.2.2. Схема remark==&lt;br /&gt;
Схема используется для синхронизации\связки других схем.&amp;lt;br&amp;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 – числовое значение&amp;lt;br&amp;gt;&lt;br /&gt;
		actor – без комментариев&amp;lt;br&amp;gt;&lt;br /&gt;
		nil – позиция вычисленная АИ автоматически&amp;lt;br&amp;gt;&lt;br /&gt;
		&amp;lt;имя работы&amp;gt;,&amp;lt;имя гулага&amp;gt; смотреть на сталкера который находится на определенной работе под гулагом (второй параметр необязателен. В этом случае берется гулаг сталкера, для которого задана данная секция ремарка).&amp;lt;br&amp;gt;&lt;br /&gt;
Пример:&amp;lt;br&amp;gt;&lt;br /&gt;
target              = logic@cit_killers_base_guard, cit_killers&amp;lt;br&amp;gt;&lt;br /&gt;
		&amp;lt;path_name&amp;gt;, &amp;lt;point_number&amp;gt;  - можно указывать смотреть в вершину патрульного пути (&amp;lt;имя пути&amp;gt;, &amp;lt;имя точки&amp;gt;).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Внимание, теперь если значение не задано, то оно равно nil а не actor, как было раньше. То есть если вы хотите чтобы персонаж в ремарке смотрел на актера - необходимо явно прописывать это. Если задано значение nil, то персонаж развернется в позицию, которую посчитает АИ.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Стандартные сигналы для remark: &amp;lt;br&amp;gt;&lt;br /&gt;
sound_end – по окончании проигрывания звуковой схемы&amp;lt;br&amp;gt;&lt;br /&gt;
anim_end – по окончании проигрывания анимации&amp;lt;br&amp;gt;&lt;br /&gt;
action_end – по окончании проигрывания и того и другого, если они синхронизированы&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример синхронизации анимации и звука в схеме Remark:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[remark]&amp;lt;br&amp;gt;&lt;br /&gt;
anim = анимация&amp;lt;br&amp;gt;&lt;br /&gt;
snd = звук&amp;lt;br&amp;gt;&lt;br /&gt;
snd_anim_sync = true&amp;lt;br&amp;gt;&lt;br /&gt;
on_signal = action_end | следующая схема&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.2.3. Схема sleeper==&lt;br /&gt;
Схема сидящего и спящего NPC. Необходимо поставить патрульный путь, минимум из 1 поинта. Спящий будет садиться спать в нулевой точке пути, и разворачиваться при этом в сторону первой точки. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[sleeper]&amp;lt;br&amp;gt;&lt;br /&gt;
path_main = &amp;lt;имя пути&amp;gt;&lt;br /&gt;
*wakeable = true – может ли проснуться быстро (если true, то спит на корточках и во сне бормочет)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NB: Если путь состоит из двух точек, то связь нужно делать от первой точки к нулевой (либо двунаправленную).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл: \gamedata\scripts\xr_sleeper.script&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.2.4. Схема kamp==&lt;br /&gt;
Схема сталкера, сидящего в определенном радиусе вокруг указанной точки (у костра), и располагающегося лицом к этой точке.&amp;lt;br&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
[kamp]&amp;lt;br&amp;gt;&lt;br /&gt;
center_point = kamp_center – имя точки вокруг которой NPC будет устраиваться.&lt;br /&gt;
*radius = 2 (насколько далеко сталкер будет сидеть от центра лагеря, 2- по умолчанию)&amp;lt;br&amp;gt;&lt;br /&gt;
*def_state_moving = run (дефолтное состояние, в котором сталкер будет идети к точке кампа)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл: \gamedata\scripts\xr_kamp.script&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NB! Если точка кампа находится в костре, то в оффлайне сталкера прийдут на нее, а когда они перейдут в онлайн, то окажуться внутри костра, где и получат хит. Чтобы этого не случалось в секции кемпа указывать path_walk из одной точке, название которой = &amp;lt;path_kamp_name&amp;gt;_task&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*path_walk = &amp;lt;path_kamp_name&amp;gt;_task&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если точка кемпа расположена в чистом поле то, path_walk прописывать не надо.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.2.5. Схема camper==&lt;br /&gt;
Свойства кемперов:&amp;lt;br&amp;gt;&lt;br /&gt;
- кемпер стоит на точке и смотрит в направлении, куда Вы его поставили в редакторе или передигается по патрульным путям&amp;lt;br&amp;gt;&lt;br /&gt;
- кемперы переключаются на универсальный комбат, только если видят врага ближе чем в 30 метрах. Если он выжил, он возращается в состояние кемпера. &amp;lt;br&amp;gt;&lt;br /&gt;
- В любых других случаях действуют по собственной скриптовой схеме. Если видим врага -стреляем. Если слышим дэнжер - то смотрим в направление в данжере. Если видим гранату - убегаем от гранаты. Если видели врага, а враг исчез, то смотрим в точку, где видели последний раз врага. &amp;lt;br&amp;gt;&lt;br /&gt;
- кемперы не сражаются в движении. Если они видят врага - они останавливаются, стреляют, а потом продолжают движение.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[camper]&amp;lt;br&amp;gt;&lt;br /&gt;
path_walk = patrol_path&amp;lt;br&amp;gt;&lt;br /&gt;
path_look = patrol_path&amp;lt;br&amp;gt;&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 =&amp;lt;br&amp;gt;&lt;br /&gt;
*shoot = тип.&lt;br /&gt;
Задаем тип стрельбы. Возможные значения - always|none|terminal&amp;lt;br&amp;gt;&lt;br /&gt;
always - значение по умолчанию, стреляет всегда, когда можно&amp;lt;br&amp;gt;&lt;br /&gt;
none - не стреляет вообще.&amp;lt;br&amp;gt;&lt;br /&gt;
terminal - стреляет только когда находится на последней точки патрульного пути. Это сделано для облегчения построение атакующих сцен.&amp;lt;br&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
NB! У кемпера есть один большой минус – когда ему наносится хит и он не знает откуда хит наносится (не видит противника, не слышит выстрела), то он тупо продолжает стоять на старом месте и ждать следующей пули.&amp;lt;br&amp;gt;&lt;br /&gt;
Ввиду этого не стоит расставлять кемперов в случае, когда сталкеры должны защищаться и держать позицию в том случае, если есть несколько направлений, откуда игрок или стелкеры смогут атаковать поставленного кемпера. Используйте walkerов в таких случаях, а кемперов стоить ставить для атак по путям и как снайперов.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.2.5.1. Схема sniper==&lt;br /&gt;
	Разновидность кемпера. Отличаются тем, что стреляют только одиночными выстрелами и не смотрят по точкам патрульного пути, а сканируют пространство между ними. Скорость сканирования от точки к точке фиксирована и равна 20сек.&amp;lt;br&amp;gt;&lt;br /&gt;
	NB! Ставить снайперу только 2 точки look&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	В кастом дате кемпера прописать:&amp;lt;br&amp;gt;&lt;br /&gt;
	sniper = true&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Файл: \gamedata\scripts\xr_camper.script&amp;lt;br&amp;gt;&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. Пути не задаются.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[follower]&amp;lt;br&amp;gt;&lt;br /&gt;
leader = story id лидера из game.ltx (число!)&amp;lt;br&amp;gt;&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&amp;lt;br&amp;gt;&lt;br /&gt;
ВНИМАНИЕ!!!!!! НЕ ЗАБЫТЬ ПРОПИСАТЬ:&lt;br /&gt;
[smart_terrains]&lt;br /&gt;
none = true&lt;br /&gt;
ИНАЧЕ ЗАСОСЁТ НПС В ГУЛАГ И НЕ КУДА ОН НЕ ПОЙДЁТ&lt;br /&gt;
&lt;br /&gt;
Если все это происходит под гулагом, то вместо story_id лидера, мы прописываем его секцию  логики в файле скрипта. Пример:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;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;
}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.2.7. Схема zoneguard==&lt;br /&gt;
NPC есть две зоны (может быть одна). Он ходит по путям, но когда игрок заходит в зону, отрывает от дел, подбегает к игроку, наставляет на игрока оружие (может кричать, может говорить), если игрок заходит во вторую зону – атакует игрока &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[zoneguard]&amp;lt;br&amp;gt;&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&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.2.8. Схема wounded (раненый)==&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
wounded = wounded&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[walker]&amp;lt;br&amp;gt;&lt;br /&gt;
wounded = wounded&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[wounded]&amp;lt;br&amp;gt;&lt;br /&gt;
hp_state 		= HP|condstate@condsound|HP|condstate@condsound&amp;lt;br&amp;gt;&lt;br /&gt;
hp_state_see	= HP|condstate@condsound|HP|condstate@condsound&amp;lt;br&amp;gt;&lt;br /&gt;
psy_state 		= PSY|condstate@condsound|PSY|condstate@condsound&amp;lt;br&amp;gt;&lt;br /&gt;
hp_victim		= HP|condvictim|HP|condvictim&amp;lt;br&amp;gt;&lt;br /&gt;
hp_cover		= HP|condbool|HP|condbool&amp;lt;br&amp;gt;&lt;br /&gt;
hp_fight		= HP|condbool|HP|condbool&amp;lt;br&amp;gt;&lt;br /&gt;
*syndata		= state@sound|state@sound&amp;lt;br&amp;gt;&lt;br /&gt;
*help_dialog	= story_id&lt;br /&gt;
*help_start_dialog = story_id&lt;br /&gt;
&lt;br /&gt;
Где:&amp;lt;br&amp;gt;&lt;br /&gt;
Condstate – кондлист, возвращающий состояние персонажа, либо true. Если он возвращает true – нпс обидится на игрока&amp;lt;br&amp;gt;&lt;br /&gt;
Condsound – кондлист, возвращающий саунд тему.&amp;lt;br&amp;gt;&lt;br /&gt;
HP – пороговые значение здоровья персонажа&amp;lt;br&amp;gt;&lt;br /&gt;
PSY – пороговые значения пси здоровья персонажа&amp;lt;br&amp;gt;&lt;br /&gt;
Condvictim – кондлист, возвращающий направление куда смотреть. Возможные значения:&amp;lt;br&amp;gt; &lt;br /&gt;
nil, actor, number. В случае числа – будет смотреть на персонажа с указанными стори айди.&amp;lt;br&amp;gt;&lt;br /&gt;
Condbool – кондлист, возвращаюзий true либо false.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Значения полей:&amp;lt;br&amp;gt;&lt;br /&gt;
hp_state – поведение персонажа когда он не видит игрока&amp;lt;br&amp;gt;&lt;br /&gt;
hp_state_see – поведение персонажа, когда он видит игрока&amp;lt;br&amp;gt;&lt;br /&gt;
psy_state – поведение персонажа при псиатаках&amp;lt;br&amp;gt;&lt;br /&gt;
hp_victim – куда смотреть, в зависимости от ХП&amp;lt;br&amp;gt;&lt;br /&gt;
hp_cover – идти в укрытие или нет, в зависимости от ХП&amp;lt;br&amp;gt;&lt;br /&gt;
hp_fight – разрешено воевать или нет, в зависимости от ХП&lt;br /&gt;
syndata – синхропары для красоты.&amp;lt;br&amp;gt;&lt;br /&gt;
help_dialog – story_id диалога вместо дефолтного actor_help_wounded. Если вам по сюжету  необходимо заменить диалог другим, то вы в этом поле прописываете id другого диалога.&amp;lt;br&amp;gt;&lt;br /&gt;
Также мы вставляем стартовый диалог раненого. Если мы его прописываем, то все актёрские диалоги для раненых должны иметь такой precondition: &amp;lt;br&amp;gt;&lt;br /&gt;
dialogs.allow_wounded_dialog.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример. В качестве примера взята дефолтная настройка.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
hp_state = 30|help_me@help|10|wounded_heavy@help_heavy&amp;lt;br&amp;gt;&lt;br /&gt;
hp_state_see = 30|wounded@help_see|10|wounded_heavy@help_heavy&amp;lt;br&amp;gt;&lt;br /&gt;
psy_state = 50|{=best_pistol}psy_armed,psy_pain@wounded_psy|20| &amp;lt;br&amp;gt;{=best_pistol}psy_shoot,psy_pain@{=best_pistol}wounded_psy_shoot,wounded_psy&amp;lt;br&amp;gt;&lt;br /&gt;
hp_victim = 30|actor|10|nil&amp;lt;br&amp;gt;&lt;br /&gt;
hp_cover = 30|true|10|false&amp;lt;br&amp;gt;&lt;br /&gt;
hp_fight = 30|true|10|false&amp;lt;br&amp;gt;&lt;br /&gt;
syndata = wounded@help&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где:&amp;lt;br&amp;gt;&lt;br /&gt;
Best_pistol – проверка на то, что лучшее оружие НПС является пистолетом.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл: \gamedata\scripts\xr_wounded.script&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.2.9. Схема rest==&lt;br /&gt;
Чувак гуляет, хавает, спит.&amp;lt;br&amp;gt;&lt;br /&gt;
Пока нормально не работает.&amp;lt;br&amp;gt;&lt;br /&gt;
Файл: \gamedata\scripts\xr_rest.script&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.2.10. Схема heli_hunter==&lt;br /&gt;
Хелихантер может стрелять либо не стрелять по вертолету в зависимости от условий. Делается это так:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[camper@bar_freedom_attack_sniper_1]&amp;lt;br&amp;gt;&lt;br /&gt;
path_walk = camper_1_walk&amp;lt;br&amp;gt;&lt;br /&gt;
path_look = camper_1_look&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = {+bar_freedom_attack_ecolog} camper1@bar_freedom_attack_sniper_1 &amp;lt;br&amp;gt;%=bar_freedom_angry_actor%&amp;lt;br&amp;gt;&lt;br /&gt;
meet_talk_enabled = true&amp;lt;br&amp;gt;&lt;br /&gt;
meet_dialog = bar_svoboda_dialog&amp;lt;br&amp;gt;&lt;br /&gt;
heli_hunter = {-bar_ecolog_crush_heli_down} true, false&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если раньше оверрайд хелихантера понимал только значения true либо false, то сейчас он понимает кондлист, который если возвращает true - то стрельба по вертолету в данной схеме разрешена.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.2.11. Patrol==&lt;br /&gt;
Итак, есть предварительная система патруля. Представляет собой вариацию kamp только в состоянии ходьбы. Для ее работы прописываем в кустовой дате следующее:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[patrol]&amp;lt;br&amp;gt;&lt;br /&gt;
path_walk = path_walk&amp;lt;br&amp;gt;&lt;br /&gt;
path_look = path_look&amp;lt;br&amp;gt;&lt;br /&gt;
*formation = back&amp;lt;br&amp;gt;&lt;br /&gt;
*commander = true (типа назначат командиром, желательно, чтобы такой красивый он был один)&lt;br /&gt;
*move_type = задает изначальный режим перемещения, по умолчанию patrol. Вообще, значение этого поля есть название ходячей анимации из state_mgr_lib&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  formation  - описывет способ построения и не является обязательным. &lt;br /&gt;
  Возможны следующие варианты:&lt;br /&gt;
  back    - мужики идут чуть позади командира в два ряда (по умолчанию)&lt;br /&gt;
  line    - шеренга&lt;br /&gt;
  around  - вокруг командира&lt;br /&gt;
&lt;br /&gt;
При остановке командора в meet мужики останавливаются.&amp;lt;br&amp;gt;&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, то командор помчится с орудием убийства на перевес, а остальные его откопируют.&amp;lt;br&amp;gt;&lt;br /&gt;
&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 срывается в бой.&amp;lt;br&amp;gt;&lt;br /&gt;
on_combat = combat&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[combat]&amp;lt;br&amp;gt;&lt;br /&gt;
on_info =  %+info -info =func%  эффекты, которые вызываются на каждом раунде боя.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для задания различных типов скриптовых боёв для различных ситуаций используется параметр combat_type.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В следующем примере сталкер сражается:&amp;lt;br&amp;gt;&lt;br /&gt;
 * по-кемперски, если враг=актёр и он дальше Х метров&lt;br /&gt;
 * по-монолитовски, если любой враг дальше Y метров&lt;br /&gt;
 * иначе - движковый бой&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = walker&amp;lt;br&amp;gt;&lt;br /&gt;
on_combat = combat&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[walker]&amp;lt;br&amp;gt;&lt;br /&gt;
path_walk = ...&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[combat]&amp;lt;br&amp;gt;&lt;br /&gt;
combat_type = {=fighting_actor =fighting_ge_X_meters} camper, &amp;lt;br&amp;gt;{=fighting_ge_Y_meters} monolith&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример такой функции: нам надо чтобы на расстоянии свыше 20 метров npc переходил бы в кемперский комбат.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;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&amp;lt;/code&amp;gt;&lt;br /&gt;
400 – это 202  . Примечание – мы пишем квадрат нужного нам расстояния, для экономии системных ресурсов.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ещё один пример. Сталкер ходит под симуляцией, но у него бой не движковый, а всегда зомбированый:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = nil&amp;lt;br&amp;gt;&lt;br /&gt;
on_combat = combat&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[combat]&amp;lt;br&amp;gt;&lt;br /&gt;
combat_type = zombied&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если в разных секциях для персонажа требуются разные типы боя или разные условия, то можно воспользоваться оверрайдом   combat_type.&amp;lt;br&amp;gt;&lt;br /&gt;
Помните: оверрайд всегда будет перекрывать настройку в секции combat. Т.е., если у вас логика на 5 секций и в четырёх нужен кемперский комбат, а в пятой монолитовский, то можно задать так:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[logic]&amp;lt;br&amp;gt;&lt;br /&gt;
active = walker1&amp;lt;br&amp;gt;&lt;br /&gt;
on_combat = combat&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[walker1]&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&lt;br /&gt;
[walker2]&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&lt;br /&gt;
[walker3]&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&lt;br /&gt;
[walker4]&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&lt;br /&gt;
[walker5]&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&lt;br /&gt;
combat_type = monolith&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[combat]&amp;lt;br&amp;gt;&lt;br /&gt;
combat_type = camper&amp;lt;br&amp;gt;&lt;br /&gt;
 (scheme - задает тип боя (monolith, camper, zombied), иначе - универсальный бой)&lt;br /&gt;
&lt;br /&gt;
disable_combat_handler – функция отключающая секцию combat.&amp;lt;br&amp;gt;&lt;br /&gt;
Файл: \gamedata\scripts\xr_combat.script&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.3.2 Секция death==&lt;br /&gt;
Схема показывает, что происходит при смерти NPC.&amp;lt;br&amp;gt;&lt;br /&gt;
on_death = death&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[death]&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = %+info -info =func%&amp;lt;br&amp;gt;&lt;br /&gt;
Файл: \gamedata\scripts\xr_death.script&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.3.3. Cекция hit==&lt;br /&gt;
Схема показывает, что происходит при, нанесении повреждения NPC. on_hit НЕ СРАБАТЫВАЕТ на звук выстрела, только на попадание по сталкеру! Это сделано, потому что выстрел в воздух в общем случае не должен восприниматься как аггрессия (игрок отстреливает, скажем, собак, а на него срывается охрана).&amp;lt;br&amp;gt;&lt;br /&gt;
on_hit = hit&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[hit]&amp;lt;br&amp;gt;&lt;br /&gt;
on_info = %+info -info =func%&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл: \gamedata\scripts\xr_hit.script&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==3.3.4. Секция actor_dialogs==&lt;br /&gt;
Показывает, какие диалоги будут доступны или недоступны игроку при разговоре с этим NPC. Пишется практически в любой схеме.&amp;lt;br&amp;gt;&lt;br /&gt;
actor_dialogs = actor_dialogs&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[actor_dialogs]&amp;lt;br&amp;gt;&lt;br /&gt;
id = доступные диалоги через запятую.&amp;lt;br&amp;gt;&lt;br /&gt;
disable = запрещенные диалоги, тоже через запятую.&amp;lt;br&amp;gt;&lt;br /&gt;
Файл: \gamedata\scripts\xr_meet.script&amp;lt;br&amp;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 в этой схеме то он, не переходит в боевой режим. В любой другой схеме:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[walker]&amp;lt;br&amp;gt;&lt;br /&gt;
combat_ignore_cond = {+info –info =func !func} – условия для игнорирования боя (если написать always, то в данной схеме игрок будет игнорировать бой всегда, пока не перейдет в схему, где бой не игнорируется).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В схеме нет дополнительных полей&amp;lt;br&amp;gt;&lt;br /&gt;
[walker]&amp;lt;br&amp;gt;&lt;br /&gt;
combat_ignore = combat_ignore &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[combat_ignore]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Функции, используемые для работы с кондлистом комбат игнора:&amp;lt;br&amp;gt;&lt;br /&gt;
fighting_dist_ge_20 -- текущий враг на расстоянии больше или равном 20м&amp;lt;br&amp;gt;&lt;br /&gt;
fighting_dist_ge(pасстояние в метрах) – универсальная функция для combat_ignore, проверка расстояния для игрока&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
fighting_actor -- текущий враг актёр?&amp;lt;br&amp;gt;&lt;br /&gt;
check_fighting -- проверка (по story_id) того, что нашим врагом есть хотя бы кото-то один из списка&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл: \gamedata\scripts\xr_combat_ignore.script&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[[Часть 2]]===&lt;br /&gt;
&lt;br /&gt;
[[Категория:Скрипты]]&lt;/div&gt;</summary>
		<author><name>95.27.113.222</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%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%A7%D0%B0%D1%81%D1%82%D1%8C_1"/>
				<updated>2010-03-10T09:35:53Z</updated>
		
		<summary type="html">&lt;p&gt;95.27.113.222: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Настройка логики. Часть 1]]&lt;/div&gt;</summary>
		<author><name>95.27.113.222</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_0</id>
		<title>Настройка логики. Часть 0</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_0"/>
				<updated>2010-03-10T09:35:36Z</updated>
		
		<summary type="html">&lt;p&gt;95.27.113.222: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==1. Changes Log==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NULL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==2. Скрипты==&lt;br /&gt;
Скрипты, которые можно использовать при конструировании игровых сцен: ScriptList&lt;br /&gt;
&lt;br /&gt;
Настройка смарттеррейнов: ScriptGulag&lt;br /&gt;
&lt;br /&gt;
==2.1. ГУЛАГ==&lt;br /&gt;
==2.1.1. Что это такое? Особенности==&lt;br /&gt;
Гулаг - средство объединения нескольких сталкеров под централизованным управлением.&lt;br /&gt;
&lt;br /&gt;
Основные особенности:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* есть список работ гулага. Работа - настроенная схема поведения (или цепочка схем  поведения);&amp;lt;br&amp;gt;&lt;br /&gt;
* работы имеют приоритеты;&amp;lt;br&amp;gt;&lt;br /&gt;
* гулаг назначает на работы сталкеров начиная с работ с наивысшим приоритетом;&amp;lt;br&amp;gt;&lt;br /&gt;
* гулаг имеет состояния. Состояние - набор работ;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==2.1.2. Как добавить новый тип гулага==&lt;br /&gt;
&lt;br /&gt;
===1. Установка на уровне.===&lt;br /&gt;
&lt;br /&gt;
- Необходимо установить зону smart_terrain, которая бы накрывала место захвата свежих душ (место спауна сталкеров). Необходимо помнить, что название зоны будет являться префиксом для патрульных путей, относящихся к этому гулагу. В custom_data зоны необходимо прописать настройку гулага: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[gulag1] &amp;lt;br&amp;gt;&lt;br /&gt;
type = &amp;lt;тип гулага&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
squad = &amp;lt;squad&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
groups = &amp;lt;groups&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
capacity = &amp;lt;capacity&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
idle = min[, max] ;время бездействия после роспуска гулага. умолчание=0 &amp;lt;br&amp;gt;&lt;br /&gt;
stay = min[, max] ;время, на которое сталкер останется. умолчание=навсегда &amp;lt;br&amp;gt;&lt;br /&gt;
duration = min[, max] ; вермя существования данного типа гулага. умолчание=всегда &amp;lt;br&amp;gt;&lt;br /&gt;
preconditions = info1[, info2, ...] ; чтоб данный тип гулага образовался, нужно присутствие всех infoportions &amp;lt;br&amp;gt;&lt;br /&gt;
p = вероятность попадания сталкера под смарт терейн в процентах &amp;lt;br&amp;gt;&lt;br /&gt;
offline = true/false ; может ли данный гулаг образоваться в офлайне &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
времена задаются в часах игрового времени и могут быть дробными&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;тип гулага&amp;gt; - от него зависит набор и настройка работ.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;squad&amp;gt; - все люди в гулаге будут иметь данный сквад. При отпускании на волю им будет восстанавливаться их родной сквад из редактора.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;groups&amp;gt; - перечень групп, которые будут сетиться для той или иной работы. Задается строкой чисел, разделенных запятыми.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;capacity&amp;gt; - максимальная вместимость гулага. Если количество человек в гулаге достигает этого значения, то больше в гулаг никто не принимается. Количество работ в гулаге в любой момент времени должно быть больше либо равно вместимости. Таким образом количество людей в гулаге гарантированно будет меньше либо равно количеству работ в любой момент времени.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Установка в коде. ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
- необходимо в gulag_tasks.script внести настройку работ для данного типа гулага &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
t = { section = &amp;quot;kamp1@gar_bandits&amp;quot;, &lt;br /&gt;
        idle = 0,&lt;br /&gt;
        prior = 1, state = {0}, group = groups[0]&lt;br /&gt;
        in_rest = &amp;quot;&amp;quot;, out_rest = &amp;quot;&amp;quot;&lt;br /&gt;
} &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Idle – время в мс между запусками работы. Если оно отлично от 0, то работа может сетится только раз  в заданное время. Если работа просечена – то обнуляться она не будет. Нужно для того чтобы раз в интервал отправлять патрули и другие конечные работы&amp;lt;br&amp;gt;&lt;br /&gt;
Prior – приоритет. Сперва заполняются работы с более высоким приоритетом.&amp;lt;br&amp;gt;&lt;br /&gt;
State - таблица с перечнем состояний гулага, в которых доступна данная работа.&amp;lt;br&amp;gt;&lt;br /&gt;
Group – группа для текущей работы, из перечисленных в кастом дате зоны.&amp;lt;br&amp;gt;&lt;br /&gt;
In_rest, out_rest - In и out рестрикторы для персонажа на текущей работе.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
- необходимо в gulag_tasks.script добавить функцию просчета состояния для данного типа гулага (см пример в коде. Функция loadStates())&amp;lt;br&amp;gt;&lt;br /&gt;
- в файле gulag_tasks.ltx создать описание каждой работы. Пример смотри в данном файле. Каждая работа должна описываться отдельной секцией(за исключением работ, которые кушают один и те же настройки, например kamp). Имена секций следует давать в соответствии с соглашением([walker1@имя зоны])&amp;lt;br&amp;gt;&lt;br /&gt;
- в файле xr_gulag.script добавить функцию проверки на допустимость персонажа к гулагу (см пример в коде check_npc())&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[[Часть 1]]===&lt;br /&gt;
&lt;br /&gt;
[[Категория:Скрипты]]&lt;/div&gt;</summary>
		<author><name>95.27.113.222</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_0</id>
		<title>Настройка логики. Часть 0</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_0"/>
				<updated>2010-03-10T09:34:48Z</updated>
		
		<summary type="html">&lt;p&gt;95.27.113.222: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==1. Changes Log==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NULL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==2. Скрипты==&lt;br /&gt;
Скрипты, которые можно использовать при конструировании игровых сцен: ScriptList&lt;br /&gt;
&lt;br /&gt;
Настройка смарттеррейнов: ScriptGulag&lt;br /&gt;
&lt;br /&gt;
==2.1. ГУЛАГ==&lt;br /&gt;
==2.1.1. Что это такое? Особенности==&lt;br /&gt;
Гулаг - средство объединения нескольких сталкеров под централизованным управлением.&lt;br /&gt;
&lt;br /&gt;
Основные особенности:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* есть список работ гулага. Работа - настроенная схема поведения (или цепочка схем  поведения);&amp;lt;br&amp;gt;&lt;br /&gt;
* работы имеют приоритеты;&amp;lt;br&amp;gt;&lt;br /&gt;
* гулаг назначает на работы сталкеров начиная с работ с наивысшим приоритетом;&amp;lt;br&amp;gt;&lt;br /&gt;
* гулаг имеет состояния. Состояние - набор работ;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==2.1.2. Как добавить новый тип гулага==&lt;br /&gt;
&lt;br /&gt;
===1. Установка на уровне.===&lt;br /&gt;
&lt;br /&gt;
- Необходимо установить зону smart_terrain, которая бы накрывала место захвата свежих душ (место спауна сталкеров). Необходимо помнить, что название зоны будет являться префиксом для патрульных путей, относящихся к этому гулагу. В custom_data зоны необходимо прописать настройку гулага: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[gulag1] &amp;lt;br&amp;gt;&lt;br /&gt;
type = &amp;lt;тип гулага&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
squad = &amp;lt;squad&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
groups = &amp;lt;groups&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
capacity = &amp;lt;capacity&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
idle = min[, max] ;время бездействия после роспуска гулага. умолчание=0 &amp;lt;br&amp;gt;&lt;br /&gt;
stay = min[, max] ;время, на которое сталкер останется. умолчание=навсегда &amp;lt;br&amp;gt;&lt;br /&gt;
duration = min[, max] ; вермя существования данного типа гулага. умолчание=всегда &amp;lt;br&amp;gt;&lt;br /&gt;
preconditions = info1[, info2, ...] ; чтоб данный тип гулага образовался, нужно присутствие всех infoportions &amp;lt;br&amp;gt;&lt;br /&gt;
p = вероятность попадания сталкера под смарт терейн в процентах &amp;lt;br&amp;gt;&lt;br /&gt;
offline = true/false ; может ли данный гулаг образоваться в офлайне &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
времена задаются в часах игрового времени и могут быть дробными&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;тип гулага&amp;gt; - от него зависит набор и настройка работ.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;squad&amp;gt; - все люди в гулаге будут иметь данный сквад. При отпускании на волю им будет восстанавливаться их родной сквад из редактора.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;groups&amp;gt; - перечень групп, которые будут сетиться для той или иной работы. Задается строкой чисел, разделенных запятыми.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;capacity&amp;gt; - максимальная вместимость гулага. Если количество человек в гулаге достигает этого значения, то больше в гулаг никто не принимается. Количество работ в гулаге в любой момент времени должно быть больше либо равно вместимости. Таким образом количество людей в гулаге гарантированно будет меньше либо равно количеству работ в любой момент времени.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Установка в коде. ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
- необходимо в gulag_tasks.script внести настройку работ для данного типа гулага &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
t = { section = &amp;quot;kamp1@gar_bandits&amp;quot;, &lt;br /&gt;
        idle = 0,&lt;br /&gt;
        prior = 1, state = {0}, group = groups[0]&lt;br /&gt;
        in_rest = &amp;quot;&amp;quot;, out_rest = &amp;quot;&amp;quot;&lt;br /&gt;
} &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Idle – время в мс между запусками работы. Если оно отлично от 0, то работа может сетится только раз  в заданное время. Если работа просечена – то обнуляться она не будет. Нужно для того чтобы раз в интервал отправлять патрули и другие конечные работы&amp;lt;br&amp;gt;&lt;br /&gt;
Prior – приоритет. Сперва заполняются работы с более высоким приоритетом.&amp;lt;br&amp;gt;&lt;br /&gt;
State - таблица с перечнем состояний гулага, в которых доступна данная работа.&amp;lt;br&amp;gt;&lt;br /&gt;
Group – группа для текущей работы, из перечисленных в кастом дате зоны.&amp;lt;br&amp;gt;&lt;br /&gt;
In_rest, out_rest - In и out рестрикторы для персонажа на текущей работе.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
- необходимо в gulag_tasks.script добавить функцию просчета состояния для данного типа гулага (см пример в коде. Функция loadStates())&amp;lt;br&amp;gt;&lt;br /&gt;
- в файле gulag_tasks.ltx создать описание каждой работы. Пример смотри в данном файле. Каждая работа должна описываться отдельной секцией(за исключением работ, которые кушают один и те же настройки, например kamp). Имена секций следует давать в соответствии с соглашением([walker1@имя зоны])&amp;lt;br&amp;gt;&lt;br /&gt;
- в файле xr_gulag.script добавить функцию проверки на допустимость персонажа к гулагу (см пример в коде check_npc())&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Скрипты]]&lt;/div&gt;</summary>
		<author><name>95.27.113.222</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_0</id>
		<title>Настройка логики. Часть 0</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_0"/>
				<updated>2010-03-10T09:34:23Z</updated>
		
		<summary type="html">&lt;p&gt;95.27.113.222: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==1. Changes Log==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NULL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==2. Скрипты==&lt;br /&gt;
Скрипты, которые можно использовать при конструировании игровых сцен: ScriptList&lt;br /&gt;
&lt;br /&gt;
Настройка смарттеррейнов: ScriptGulag&lt;br /&gt;
&lt;br /&gt;
==2.1. ГУЛАГ==&lt;br /&gt;
==2.1.1. Что это такое? Особенности==&lt;br /&gt;
Гулаг - средство объединения нескольких сталкеров под централизованным управлением.&lt;br /&gt;
&lt;br /&gt;
Основные особенности:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* есть список работ гулага. Работа - настроенная схема поведения (или цепочка схем  поведения);&amp;lt;br&amp;gt;&lt;br /&gt;
* работы имеют приоритеты;&amp;lt;br&amp;gt;&lt;br /&gt;
* гулаг назначает на работы сталкеров начиная с работ с наивысшим приоритетом;&amp;lt;br&amp;gt;&lt;br /&gt;
* гулаг имеет состояния. Состояние - набор работ;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==2.1.2. Как добавить новый тип гулага==&lt;br /&gt;
&lt;br /&gt;
===1. Установка на уровне.===&lt;br /&gt;
&lt;br /&gt;
- Необходимо установить зону smart_terrain, которая бы накрывала место захвата свежих душ (место спауна сталкеров). Необходимо помнить, что название зоны будет являться префиксом для патрульных путей, относящихся к этому гулагу. В custom_data зоны необходимо прописать настройку гулага: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[gulag1] &amp;lt;br&amp;gt;&lt;br /&gt;
type = &amp;lt;тип гулага&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
squad = &amp;lt;squad&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
groups = &amp;lt;groups&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
capacity = &amp;lt;capacity&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
idle = min[, max] ;время бездействия после роспуска гулага. умолчание=0 &amp;lt;br&amp;gt;&lt;br /&gt;
stay = min[, max] ;время, на которое сталкер останется. умолчание=навсегда &amp;lt;br&amp;gt;&lt;br /&gt;
duration = min[, max] ; вермя существования данного типа гулага. умолчание=всегда &amp;lt;br&amp;gt;&lt;br /&gt;
preconditions = info1[, info2, ...] ; чтоб данный тип гулага образовался, нужно присутствие всех infoportions &amp;lt;br&amp;gt;&lt;br /&gt;
p = вероятность попадания сталкера под смарт терейн в процентах &amp;lt;br&amp;gt;&lt;br /&gt;
offline = true/false ; может ли данный гулаг образоваться в офлайне &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
времена задаются в часах игрового времени и могут быть дробными&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;тип гулага&amp;gt; - от него зависит набор и настройка работ.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;squad&amp;gt; - все люди в гулаге будут иметь данный сквад. При отпускании на волю им будет восстанавливаться их родной сквад из редактора.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;groups&amp;gt; - перечень групп, которые будут сетиться для той или иной работы. Задается строкой чисел, разделенных запятыми.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;capacity&amp;gt; - максимальная вместимость гулага. Если количество человек в гулаге достигает этого значения, то больше в гулаг никто не принимается. Количество работ в гулаге в любой момент времени должно быть больше либо равно вместимости. Таким образом количество людей в гулаге гарантированно будет меньше либо равно количеству работ в любой момент времени.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. Установка в коде. ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
      - необходимо в gulag_tasks.script внести настройку работ для данного типа гулага &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
t = { section = &amp;quot;kamp1@gar_bandits&amp;quot;, &lt;br /&gt;
        idle = 0,&lt;br /&gt;
        prior = 1, state = {0}, group = groups[0]&lt;br /&gt;
        in_rest = &amp;quot;&amp;quot;, out_rest = &amp;quot;&amp;quot;&lt;br /&gt;
} &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Idle – время в мс между запусками работы. Если оно отлично от 0, то работа может сетится только раз  в заданное время. Если работа просечена – то обнуляться она не будет. Нужно для того чтобы раз в интервал отправлять патрули и другие конечные работы&amp;lt;br&amp;gt;&lt;br /&gt;
Prior – приоритет. Сперва заполняются работы с более высоким приоритетом.&amp;lt;br&amp;gt;&lt;br /&gt;
State - таблица с перечнем состояний гулага, в которых доступна данная работа.&amp;lt;br&amp;gt;&lt;br /&gt;
Group – группа для текущей работы, из перечисленных в кастом дате зоны.&amp;lt;br&amp;gt;&lt;br /&gt;
In_rest, out_rest - In и out рестрикторы для персонажа на текущей работе.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
- необходимо в gulag_tasks.script добавить функцию просчета состояния для данного типа гулага (см пример в коде. Функция loadStates())&amp;lt;br&amp;gt;&lt;br /&gt;
- в файле gulag_tasks.ltx создать описание каждой работы. Пример смотри в данном файле. Каждая работа должна описываться отдельной секцией(за исключением работ, которые кушают один и те же настройки, например kamp). Имена секций следует давать в соответствии с соглашением([walker1@имя зоны])&amp;lt;br&amp;gt;&lt;br /&gt;
- в файле xr_gulag.script добавить функцию проверки на допустимость персонажа к гулагу (см пример в коде check_npc())&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Скрипты]]&lt;/div&gt;</summary>
		<author><name>95.27.113.222</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_0</id>
		<title>Настройка логики. Часть 0</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_0"/>
				<updated>2010-03-10T09:30:20Z</updated>
		
		<summary type="html">&lt;p&gt;95.27.113.222: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==1. Changes Log==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NULL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==2. Скрипты==&lt;br /&gt;
Скрипты, которые можно использовать при конструировании игровых сцен: ScriptList&lt;br /&gt;
&lt;br /&gt;
Настройка смарттеррейнов: ScriptGulag&lt;br /&gt;
&lt;br /&gt;
==2.1. ГУЛАГ==&lt;br /&gt;
==2.1.1. Что это такое? Особенности==&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;
==2.1.2. Как добавить новый тип гулага==&lt;br /&gt;
&lt;br /&gt;
1. Установка на уровне.&lt;br /&gt;
&lt;br /&gt;
      - Необходимо установить зону smart_terrain, которая бы накрывала место захвата свежих душ (место спауна сталкеров). Необходимо помнить, что название зоны будет являться префиксом для патрульных путей, относящихся к этому гулагу. В custom_data зоны необходимо прописать настройку гулага: &lt;br /&gt;
&lt;br /&gt;
[gulag1] &lt;br /&gt;
type = &amp;lt;тип гулага&amp;gt;&lt;br /&gt;
squad = &amp;lt;squad&amp;gt;&lt;br /&gt;
groups = &amp;lt;groups&amp;gt;&lt;br /&gt;
capacity = &amp;lt;capacity&amp;gt;&lt;br /&gt;
idle = min[, max] ;время бездействия после роспуска гулага. умолчание=0&lt;br /&gt;
stay = min[, max] ;время, на которое сталкер останется. умолчание=навсегда&lt;br /&gt;
duration = min[, max] ; вермя существования данного типа гулага. умолчание=всегда&lt;br /&gt;
preconditions = info1[, info2, ...] ; чтоб данный тип гулага образовался, нужно присутствие всех infoportions&lt;br /&gt;
p = вероятность попадания сталкера под смарт терейн в процентах&lt;br /&gt;
offline = true/false ; может ли данный гулаг образоваться в офлайне&lt;br /&gt;
&lt;br /&gt;
времена задаются в часах игрового времени и могут быть дробными&lt;br /&gt;
где:&lt;br /&gt;
&amp;lt;тип гулага&amp;gt; - от него зависит набор и настройка работ.&lt;br /&gt;
&amp;lt;squad&amp;gt; - все люди в гулаге будут иметь данный сквад. При отпускании на волю им будет восстанавливаться их родной сквад из редактора.&lt;br /&gt;
&amp;lt;groups&amp;gt; - перечень групп, которые будут сетиться для той или иной работы. Задается строкой чисел, разделенных запятыми.&lt;br /&gt;
&amp;lt;capacity&amp;gt; - максимальная вместимость гулага. Если количество человек в гулаге достигает этого значения, то больше в гулаг никто не принимается. Количество работ в гулаге в любой момент времени должно быть больше либо равно вместимости. Таким образом количество людей в гулаге гарантированно будет меньше либо равно количеству работ в любой момент времени.&lt;br /&gt;
&lt;br /&gt;
2. Установка в коде.&lt;br /&gt;
&lt;br /&gt;
      - необходимо в gulag_tasks.script внести настройку работ для данного типа гулага &lt;br /&gt;
&lt;br /&gt;
t = { section = &amp;quot;kamp1@gar_bandits&amp;quot;, &lt;br /&gt;
        idle = 0,&lt;br /&gt;
        prior = 1, state = {0}, group = groups[0]&lt;br /&gt;
        in_rest = &amp;quot;&amp;quot;, out_rest = &amp;quot;&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Idle – время в мс между запусками работы. Если оно отлично от 0, то работа может сетится только раз  в заданное время. Если работа просечена – то обнуляться она не будет. Нужно для того чтобы раз в интервал отправлять патрули и другие конечные работы&lt;br /&gt;
Prior – приоритет. Сперва заполняются работы с более высоким приоритетом.&lt;br /&gt;
State - таблица с перечнем состояний гулага, в которых доступна данная работа.&lt;br /&gt;
Group – группа для текущей работы, из перечисленных в кастом дате зоны.&lt;br /&gt;
In_rest, out_rest - In и out рестрикторы для персонажа на текущей работе.&lt;br /&gt;
&lt;br /&gt;
      - необходимо в gulag_tasks.script добавить функцию просчета состояния для данного типа гулага (см пример в коде. Функция loadStates())&lt;br /&gt;
      - в файле gulag_tasks.ltx создать описание каждой работы. Пример смотри в данном файле. Каждая работа должна описываться отдельной секцией(за исключением работ, которые кушают один и те же настройки, например kamp). Имена секций следует давать в соответствии с соглашением([walker1@имя зоны])&lt;br /&gt;
      - в файле xr_gulag.script добавить функцию проверки на допустимость персонажа к гулагу (см пример в коде check_npc())&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Скрипты]]&lt;/div&gt;</summary>
		<author><name>95.27.113.222</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_0</id>
		<title>Настройка логики. Часть 0</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_0"/>
				<updated>2010-03-10T09:27:48Z</updated>
		
		<summary type="html">&lt;p&gt;95.27.113.222: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. Changes Log&lt;br /&gt;
&lt;br /&gt;
&amp;lt;NULL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Скрипты&lt;br /&gt;
Скрипты, которые можно использовать при конструировании игровых сцен: ScriptList&lt;br /&gt;
&lt;br /&gt;
Настройка смарттеррейнов: ScriptGulag&lt;br /&gt;
&lt;br /&gt;
2.1. ГУЛАГ&lt;br /&gt;
2.1.1. Что это такое? Особенности&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;
2.1.2. Как добавить новый тип гулага&lt;br /&gt;
&lt;br /&gt;
1. Установка на уровне.&lt;br /&gt;
&lt;br /&gt;
      - Необходимо установить зону smart_terrain, которая бы накрывала место захвата свежих душ (место спауна сталкеров). Необходимо помнить, что название зоны будет являться префиксом для патрульных путей, относящихся к этому гулагу. В custom_data зоны необходимо прописать настройку гулага: &lt;br /&gt;
&lt;br /&gt;
[gulag1] &lt;br /&gt;
type = &amp;lt;тип гулага&amp;gt;&lt;br /&gt;
squad = &amp;lt;squad&amp;gt;&lt;br /&gt;
groups = &amp;lt;groups&amp;gt;&lt;br /&gt;
capacity = &amp;lt;capacity&amp;gt;&lt;br /&gt;
idle = min[, max] ;время бездействия после роспуска гулага. умолчание=0&lt;br /&gt;
stay = min[, max] ;время, на которое сталкер останется. умолчание=навсегда&lt;br /&gt;
duration = min[, max] ; вермя существования данного типа гулага. умолчание=всегда&lt;br /&gt;
preconditions = info1[, info2, ...] ; чтоб данный тип гулага образовался, нужно присутствие всех infoportions&lt;br /&gt;
p = вероятность попадания сталкера под смарт терейн в процентах&lt;br /&gt;
offline = true/false ; может ли данный гулаг образоваться в офлайне&lt;br /&gt;
&lt;br /&gt;
времена задаются в часах игрового времени и могут быть дробными&lt;br /&gt;
где:&lt;br /&gt;
&amp;lt;тип гулага&amp;gt; - от него зависит набор и настройка работ.&lt;br /&gt;
&amp;lt;squad&amp;gt; - все люди в гулаге будут иметь данный сквад. При отпускании на волю им будет восстанавливаться их родной сквад из редактора.&lt;br /&gt;
&amp;lt;groups&amp;gt; - перечень групп, которые будут сетиться для той или иной работы. Задается строкой чисел, разделенных запятыми.&lt;br /&gt;
&amp;lt;capacity&amp;gt; - максимальная вместимость гулага. Если количество человек в гулаге достигает этого значения, то больше в гулаг никто не принимается. Количество работ в гулаге в любой момент времени должно быть больше либо равно вместимости. Таким образом количество людей в гулаге гарантированно будет меньше либо равно количеству работ в любой момент времени.&lt;br /&gt;
&lt;br /&gt;
2. Установка в коде.&lt;br /&gt;
&lt;br /&gt;
      - необходимо в gulag_tasks.script внести настройку работ для данного типа гулага &lt;br /&gt;
&lt;br /&gt;
t = { section = &amp;quot;kamp1@gar_bandits&amp;quot;, &lt;br /&gt;
        idle = 0,&lt;br /&gt;
        prior = 1, state = {0}, group = groups[0]&lt;br /&gt;
        in_rest = &amp;quot;&amp;quot;, out_rest = &amp;quot;&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Idle – время в мс между запусками работы. Если оно отлично от 0, то работа может сетится только раз  в заданное время. Если работа просечена – то обнуляться она не будет. Нужно для того чтобы раз в интервал отправлять патрули и другие конечные работы&lt;br /&gt;
Prior – приоритет. Сперва заполняются работы с более высоким приоритетом.&lt;br /&gt;
State - таблица с перечнем состояний гулага, в которых доступна данная работа.&lt;br /&gt;
Group – группа для текущей работы, из перечисленных в кастом дате зоны.&lt;br /&gt;
In_rest, out_rest - In и out рестрикторы для персонажа на текущей работе.&lt;br /&gt;
&lt;br /&gt;
      - необходимо в gulag_tasks.script добавить функцию просчета состояния для данного типа гулага (см пример в коде. Функция loadStates())&lt;br /&gt;
      - в файле gulag_tasks.ltx создать описание каждой работы. Пример смотри в данном файле. Каждая работа должна описываться отдельной секцией(за исключением работ, которые кушают один и те же настройки, например kamp). Имена секций следует давать в соответствии с соглашением([walker1@имя зоны])&lt;br /&gt;
      - в файле xr_gulag.script добавить функцию проверки на допустимость персонажа к гулагу (см пример в коде check_npc())&lt;/div&gt;</summary>
		<author><name>95.27.113.222</name></author>	</entry>

	</feed>