<?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.190.225.148&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.190.225.148&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.190.225.148"/>
		<updated>2026-04-29T22:44:31Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.22.6</generator>

	<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>2013-04-01T03:22:06Z</updated>
		
		<summary type="html">&lt;p&gt;95.190.225.148: /* Схема meet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Шаблон:Настройка логики}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;font size=6&amp;gt;Настройки логики&amp;lt;/font&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Система флагов (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;
&lt;br /&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;quot;Ходячие состояния&amp;quot;)&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;
&lt;br /&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;quot;Стоячие&amp;quot; и &amp;quot;Сидячие&amp;quot; состояния)&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''''' можно сделать:&amp;lt;br&amp;gt;&lt;br /&gt;
:&amp;lt;ini&amp;gt;wp00|a=press|t=0|sigtm=pressed&amp;lt;/ini&amp;gt;&lt;br /&gt;
:А затем переключить схему:&amp;lt;br&amp;gt;&lt;br /&gt;
:&amp;lt;ini&amp;gt;on_signal = pressed | другая_схема&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&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;
#Путь '''''path_walk''''', по которому '''''walker''''' ходит.&amp;lt;br&amp;gt;&lt;br /&gt;
#Путь '''''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;
Если персонаж должен стоять на месте, то ему задается одна точка пути '''''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''''' – название анимации. Если мы напишем '''''a=threat''''' то персонаж пойдет в состоянии данжер, если '''''a=raid''''' то побежит с оружием наизготовку и т.д. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Примечание''''': В точках пути '''''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''''', которые обведены на рисунке пунктирной линией, в редакторе ставим общие флажки (в ''ACDC'' поле '''''flags'''''). Например, в верхней паре точек ставим флажок 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''''', а у другой '''''p = 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''''' - время, на которое персонаж задержится в этой точке (по умолчанию 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''''' – название анимации. Если мы напишем '''''a=hide''''', то персонаж сядет в состоянии данжер, если '''''a=guard''''', то встанет  с оружием наизготовку и т.д. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Примечание''''': В точках пути '''''path_look''''' используются анимации '''ТОЛЬКО''' из раздела «Стоячие и сидячие состояния»!&lt;br /&gt;
&lt;br /&gt;
==Система флагов для монстров==&lt;br /&gt;
Флаги пути движения:&amp;lt;br&amp;gt;&lt;br /&gt;
'''''s=имя_звуковой_темы'''''&amp;lt;br&amp;gt;&lt;br /&gt;
:Устанавливает звуковую тему на пути в данную точку ('''''idle''''', '''''eat''''', '''''attack''''', '''''attack_hit''''', '''''take_damage''''', '''''die''''', '''''threaten''''', '''''steal''''', '''''panic''''', '''''growling''''').&amp;lt;br&amp;gt;&lt;br /&gt;
'''''с'''''&amp;lt;br&amp;gt;&lt;br /&gt;
:Устанавливает положение ходьбы вприсядку.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''r'''''&amp;lt;br&amp;gt;&lt;br /&gt;
:Устанавливает положение ходьбы бег.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''sig=name'''''&amp;lt;br&amp;gt;&lt;br /&gt;
:Установить сигнал с именем '''''name''''' сразу по прибытию в точку (до поворота) для последующей его проверки с помощью поля '''''on_signal''''' логической схемы.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''b=vis/invis'''''&amp;lt;br&amp;gt;&lt;br /&gt;
:Флаг, исключительно для кровососа. Управляет невидимостью ('''''vis''''' - отключена, '''''invis''''' - включена).&lt;br /&gt;
&lt;br /&gt;
Флаги пути обзора:&amp;lt;br&amp;gt;&lt;br /&gt;
'''''t=msec'''''&amp;lt;br&amp;gt;&lt;br /&gt;
:Время в миллисекундах, которое нужно ждать, смотря в точку.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''a=state'''''&amp;lt;br&amp;gt;&lt;br /&gt;
:Анимация ('''''stand_idle''''', '''''sit_idle''''', '''''lie_idle''''', '''''eat''''', '''''sleep''''', '''''rest''''', '''''attack''''', '''''look_around''''', '''''turn''''').&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Случайный выбор пути==&lt;br /&gt;
По поводу точек пути '''''path_walk'''''.&amp;lt;br&amp;gt;&lt;br /&gt;
Есть ещё один интересный факт: следующую точку пути '''''path_walk''''' можно задавать рандомно.&amp;lt;br&amp;gt;&lt;br /&gt;
Например:[[Файл:Random_path.jpg]]&lt;br /&gt;
&lt;br /&gt;
Нам требуется, чтобы НПС стоящий в точке '''''p0''''' патрулировал территорию по двум цикличным маршрутам:&amp;lt;br&amp;gt;&lt;br /&gt;
'''''p0 -&amp;gt; p1 -&amp;gt; p2 -&amp;gt; p0'''''&amp;lt;br&amp;gt;&lt;br /&gt;
'''''p0 -&amp;gt; p3 -&amp;gt; p4 -&amp;gt; p0'''''&amp;lt;br&amp;gt;&lt;br /&gt;
Чтобы задать вариацию выбора маршрута относительно точки '''''p0''''', нужно в ссылке на следующую точку пути указать не одну, а две точки:&amp;lt;br&amp;gt;&amp;lt;ini&amp;gt;p0:links = p1(1), p3(1)&amp;lt;/ini&amp;gt;Таким не хитрым образом, НПС для продолжения пути рандомно выберет одну из предложенных точек '''''p1''''' или '''''p3'''''. После возврата в точку '''''p0''''' выбор проследует вновь. Варьировать выбор можно в любой точки, например, можно сделать так:&amp;lt;br&amp;gt;&amp;lt;ini&amp;gt;p0:links = p1(1), p3(1)&amp;lt;/ini&amp;gt;а в точке '''''p1''''', также задать выбор:&amp;lt;br&amp;gt;&amp;lt;ini&amp;gt;p1:links = p2(1), p3(1)&amp;lt;/ini&amp;gt;&lt;br /&gt;
'''НО!'''&lt;br /&gt;
Не следует делать выбор между двумя путями, если в пути одна точка! Вот такая схема '''НЕ ПРИЕМЛЕМА''' и, лично у меня, вызывает вылет:[[Файл:Error_random_path.jpg]]&lt;br /&gt;
Цифры в скобках, означают ту самую вероятность с которой НПС пойдёт в точку. Если цифры задать одинаковые, то и вероятность выбора для каждой точки будет равная, если же, например, в одной из точек указать значение 0.75, а в другой 0.25:&amp;lt;br&amp;gt;&amp;lt;ini&amp;gt;p1:links = p2(0.75), p3(0.25)&amp;lt;/ini&amp;gt;то соответственно в точку '''''p2''''' НПС будет ходить в три раза чаще.&lt;br /&gt;
&lt;br /&gt;
=Схемы поведения сталкеров.=&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;
&lt;br /&gt;
==Схема 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;имя_команды&amp;gt;''''' - команда для синхронизации&amp;lt;br&amp;gt;&lt;br /&gt;
'''''def_state_moving1 = &amp;lt;название_анимации&amp;gt;'''''  - состояние, в котором NPC движется к первой точке пути, если она близко ('''''patrol''''' по умолчанию)&amp;lt;br&amp;gt;&lt;br /&gt;
'''''def_state_moving2 = &amp;lt;название_анимации&amp;gt;'''''  - состояние, в котором NPC движется к первой точке пути, если она не слишком далеко ('''''rush''''' по умолчанию)&amp;lt;br&amp;gt;&lt;br /&gt;
'''''def_state_moving3 = &amp;lt;название_анимации&amp;gt;'''''  - состояние, в котором NPC движется к первой точке пути, если она далеко ('''''sprint''''' по умолчанию)&amp;lt;br&amp;gt;&lt;br /&gt;
'''''def_state_standing = &amp;lt;название_анимации&amp;gt;''''' - дефолтное состояние в котором он стоит и смотрит на точку, если в этой точке не задана другое состояние.&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;
'''''Пример использования схемы''''':&amp;lt;br&amp;gt;&amp;lt;ini&amp;gt;[walker@pri_followers_leader_wave1_wait]&lt;br /&gt;
path_walk = wave1_leader_walk2&lt;br /&gt;
path_look = wave1_leader_look2&lt;br /&gt;
def_state_moving1 = assault&lt;br /&gt;
def_state_moving2 = assault&lt;br /&gt;
team = followers&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл: ''gamedata\scripts\xr_walker.script''&lt;br /&gt;
&lt;br /&gt;
==Схема remark==&lt;br /&gt;
Схема используется для синхронизации\связки других схем.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Примечание''': не используйте эту схему в качестве активной - это вызовет неправильное поведение NPC.&lt;br /&gt;
&lt;br /&gt;
'''[remark]'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''''snd_anim_synс = true/false''''' - по умолчанию '''''false'''''. Указывает на то необходимо ли синхронизировать звук с анимацией.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''snd = &amp;lt;название_звуковой_темы&amp;gt;''''' - звук ремарка, берётся из файла ''sound_theme.script''. По умолчанию  '''''nil'''''.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''anim = &amp;lt;название_анимации&amp;gt;''''' - анимация ремарка, по умолчанию '''''wait'''''.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''target = &amp;lt;параметр&amp;gt;''''' - куда смотрит сталкер. Есть следующие варианты:&amp;lt;br&amp;gt;&lt;br /&gt;
:*'''''story_id''''' – числовое значение&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
:*'''''actor''''' – без комментариев&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
:*'''''nil''''' – позиция вычисленная АИ автоматически&amp;lt;nowiki&amp;gt;;&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
:*'''''&amp;lt;имя работы&amp;gt;,&amp;lt;имя гулага&amp;gt;''''' - смотреть на сталкера который находится на определенной работе под гулагом (второй параметр необязателен. В этом случае берется гулаг NPC, для которого задана данная секция ремарка).&amp;lt;br&amp;gt;&lt;br /&gt;
:Пример:&amp;lt;br&amp;gt;&lt;br /&gt;
:&amp;lt;ini&amp;gt;target = logic@cit_killers_base_guard, cit_killers&amp;lt;/ini&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;
:Пример:&amp;lt;br&amp;gt;&lt;br /&gt;
:&amp;lt;ini&amp;gt;target = cit_killers_kamp5,0&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Примечание''''': теперь если значение не задано, то оно равно '''''nil''''' а не '''''actor''''', как было раньше.&amp;lt;br&amp;gt;&lt;br /&gt;
:То есть если вы хотите чтобы персонаж в ремарке смотрел на актера - необходимо явно прописывать это. Если задано значение '''''nil''''', то персонаж развернется в позицию, которую посчитает АИ.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Стандартные сигналы '''''remark'''''а для параметра переключения схемы '''''on_signal''''': &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;
'''''Пример использования схемы''''':&amp;lt;br&amp;gt;&amp;lt;ini&amp;gt;[remark@esc_lager_volk2]&lt;br /&gt;
anim = guard_rac&lt;br /&gt;
snd = esc_wolf_radio&lt;br /&gt;
target = actor&lt;br /&gt;
on_signal = sound_end| remark@esc_lager_volk3&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл: ''gamedata\scripts\xr_remark.script''&lt;br /&gt;
&lt;br /&gt;
==Схема 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;''''' - точка в которой NPC будет спать - второй поинт, развернувшись в нулевой поинт.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''wakeable = true/false''''' – может ли проснуться быстро (если '''''true''''', то спит на корточках и во сне бормочет).&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;
'''''Пример использования схемы''''':&amp;lt;br&amp;gt;&amp;lt;ini&amp;gt;[sleeper@esc_blockpost_sleep1]&lt;br /&gt;
path_main = sleep1&lt;br /&gt;
wakeable = false&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл: ''gamedata\scripts\xr_sleeper.script''&lt;br /&gt;
&lt;br /&gt;
==Схема 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 = &amp;lt;имя_пути&amp;gt;''''' – имя точки вокруг которой NPC будет устраиваться.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''radius = &amp;lt;number&amp;gt;''''' - насколько далеко сталкер будет сидеть от центра лагеря. По умолчанию - 2 метра.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''def_state_moving = &amp;lt;название_анимации&amp;gt;''''' - дефолтное состояние, в котором NPC будет идети к точке кампа. По умолчанию - '''''walk'''''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Примечание''''': Если точка кампа находится в костре, то в оффлайне сталкера прийдут на нее, а когда они перейдут в онлайн, то окажуться внутри костра, где и получат хит.&amp;lt;br&amp;gt;&lt;br /&gt;
:Чтобы этого не случалось в секции кемпа указывать '''''path_walk''''' из одной точке, название которой '''''&amp;lt;path_kamp_name&amp;gt;_task''''':&amp;lt;ini&amp;gt;path_walk = &amp;lt;имя_пути&amp;gt;_task&amp;lt;/ini&amp;gt;Если точка кемпа расположена в чистом поле то, '''''path_walk''''' прописывать необязательно.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Пример использования схемы''''':&amp;lt;br&amp;gt;&amp;lt;ini&amp;gt;[kamp@esc_blockpost_kamp1]&lt;br /&gt;
center_point = kamp_center&lt;br /&gt;
path_walk = kamp_center_task&lt;br /&gt;
def_state_moving = raid&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл: ''gamedata\scripts\xr_kamp.script''&lt;br /&gt;
&lt;br /&gt;
==Схема camper==&lt;br /&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 = &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;
'''''radius = &amp;lt;number&amp;gt;''''' – если расстояние между NPC и противником меньше указанного, то он уходит в универсальный комбат. По умолчанию - 20 метров.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''no_retreat = true/false''''' - NPC при виде врага не будет ломиться на ближайшую точку '''''path_walk''''', а сразу перейдет в режим убивания.&lt;br /&gt;
:Нужно это в том случае, если вы хотите сделать сценку, когда одни ребята наезжают на других. Ставите камперов с вышеуказанным флажком. Они идут по своим патрульным путям и выносят врагов.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''def_state_moving = &amp;lt;название_анимации&amp;gt;''''' - состояние, в котором NPC движется на ближайшую точку пути при враге. По умолчанию - '''''assault'''''.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''def_state_moving_fire = &amp;lt;название_анимации&amp;gt;''''' - состояние, в котором NPC отстреливается от врага, во время движения на ближайшую точку пути.&lt;br /&gt;
:По умолчанию - '''''sneak_fire'''''.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''def_state_campering = &amp;lt;название_анимации&amp;gt;''''' - состояние, в котором NPC ожидает врага, находясь на пути. По умолчанию - '''''hide'''''.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''def_state_campering_fire = &amp;lt;название_анимации&amp;gt;''''' - состояние, в котором NPC отстреливается от врага, находясь на пути. По умолчанию '''''hide_fire'''''.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''attack_sound = &amp;lt;имя_звуковой_темы&amp;gt;''''' - возможность переопределять снайперам/камперам звук атаки. По дефолту он равен звуковой теме '''''fight_attack'''''.&lt;br /&gt;
:Можно изменить на любое другое (для сценических потребностей) либо вообще отключить, прописав значение '''''false'''''.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''shoot = &amp;lt;тип_стрельбы&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;
&lt;br /&gt;
'''''Примечание''''': У кампера есть один большой минус – когда ему наносится хит и он не знает откуда хит наносится (не видит противника, не слышит выстрела),&amp;lt;br&amp;gt;&lt;br /&gt;
:то он тупо продолжает стоять на старом месте и ждать следующей пули.&amp;lt;br&amp;gt;&lt;br /&gt;
:Ввиду этого не стоит расставлять кемперов в случае, когда сталкеры должны защищаться и держать позицию в том случае, если есть несколько направлений, откуда игрок или стелкеры смогут атаковать поставленного кампера. Используйте '''''walker''''' в таких случаях, а камперов стоить ставить для атак по путям и как снайперов.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Пример использования схемы''''':&amp;lt;br&amp;gt;&amp;lt;ini&amp;gt;[camper@dar_military_scout_hide]&lt;br /&gt;
path_walk = walk_hide&lt;br /&gt;
path_look = look_hide&lt;br /&gt;
radius = 10&lt;br /&gt;
no_retreat = true&lt;br /&gt;
def_state_moving = assault&lt;br /&gt;
def_state_campering = hide_na&lt;br /&gt;
shoot = always&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл: ''gamedata\scripts\xr_camper.script''&lt;br /&gt;
&lt;br /&gt;
==Схема sniper==&lt;br /&gt;
Разновидность кампера. Отличаются тем, что стреляют только одиночными выстрелами и не смотрят по точкам патрульного пути, а сканируют пространство между ними. Скорость сканирования от точки к точке фиксирована и равна 20 секунд.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В кастом дате кемпера прописать:&amp;lt;br&amp;gt;&amp;lt;ini&amp;gt;sniper = true&amp;lt;/ini&amp;gt;&lt;br /&gt;
Пример:&amp;lt;br&amp;gt;&amp;lt;ini&amp;gt;[camper@esc_blockpost_camper_day]&lt;br /&gt;
path_walk = camper_day_walk&lt;br /&gt;
path_look = camper_day_look&lt;br /&gt;
sniper = true&lt;br /&gt;
def_state_campering = threat&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Примечание''''': Ставить снайперу только 2 точки '''''look'''''.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл: ''gamedata\scripts\xr_camper.script''&lt;br /&gt;
&lt;br /&gt;
==Схема follower== &lt;br /&gt;
NPC идет за NPC-лидером. Если до лидера расстояние менее 5 метров, то он идет, если от 5 до 20 – бежит в режиме '''''run''''', если свыше 20 – догоняет в режиме '''''sprint'''''.&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;
'''[follower]'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''''leader = &amp;lt;number&amp;gt;''''' - '''''story_id''''' лидера из ''game.ltx'' (число!).&amp;lt;br&amp;gt;&lt;br /&gt;
'''''formation_line = true/false''''' - постарается идти сбоку от лидера, в противном случае будет идти сзади.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''distance = &amp;lt;number&amp;gt;''''' - расстояние в метрах, на котором будет идти от лидера '''''attendant'''''. По умолчанию – 1,5 метра, если идет цепью, то 5 метров.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''state_if_leader_in_meet = &amp;lt;название_анимации&amp;gt;''''' - это есть строка с именем  состояния из '''''state_manager''''', которое будет назначено '''''follower'''''-ам, если командир пребывает в состоянии '''''meet'''''.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''anim_walk = &amp;lt;название_анимации&amp;gt;''''' - состояние, в котором фолловер идет за лидером.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''anim_run = &amp;lt;название_анимации&amp;gt;''''' - состояние, в котором фолловер бежит за лидером.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''anim_sprint = &amp;lt;название_анимации&amp;gt;''''' - состояние, в котором фолловер спринтует за лидером.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Примечание''''': Не забыть прописать:&lt;br /&gt;
&amp;lt;ini&amp;gt;[smart_terrains]&lt;br /&gt;
none = true&amp;lt;/ini&amp;gt;&lt;br /&gt;
:Иначе NPC засосёт в гулаг и никуда он не пойдёт.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если все это происходит под гулагом, то вместо '''''story_id''''' лидера, мы прописываем его секцию логики в файле скрипта.&amp;lt;br&amp;gt;&lt;br /&gt;
Пример:&amp;lt;lua&amp;gt;t = { section = &amp;quot;logic@bar_arena_follower_2&amp;quot;, &lt;br /&gt;
      idle    = 0,&lt;br /&gt;
      prior   = 7,&lt;br /&gt;
      state   = {0},&lt;br /&gt;
      squad   = squad,&lt;br /&gt;
      group   = groups[0],&lt;br /&gt;
      ...&lt;br /&gt;
    }&amp;lt;/lua&amp;gt;В данном случае для параметра '''''leader''''' необоходимо указать строку '''''bar_arena_follower_2'''''.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Примечание''''': в релизе игры данная схема не используется.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл: ''gamedata\scripts\xr_attendant.script''&lt;br /&gt;
&lt;br /&gt;
==Схема 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 = &amp;lt;имя_пути&amp;gt;''''' - путь перемещения.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''path_look = &amp;lt;имя_пути&amp;gt;''''' - путь обзора.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''team = &amp;lt;имя_команды&amp;gt;''''' - имя команды синхронизированных '''''zoneguard'''''-ов (из всей команды только 1 будет реагировать на игрока).&amp;lt;br&amp;gt;&lt;br /&gt;
'''''zone_guard = &amp;lt;имя_зоны&amp;gt;''''' - зона в пределах которой игрок будет атакован.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''zone_warn = &amp;lt;имя_зоны&amp;gt;''''' - зона в пределах которой NPC будет начинать разговор с игроком.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''walker_team = &amp;lt;имя_команды&amp;gt;''''' -  для схемы перемещения его в состоянии '''''walker''''' (если не задан, используется значение из поля '''''team''''').&amp;lt;br&amp;gt;&lt;br /&gt;
'''''no_move = true/false''''' - персонаж окликнет игрока с места и не будет подбегать к нему.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''snd_greet = &amp;lt;название_звуковой_темы&amp;gt;''''' - звук которой будет проигран при обнаружении игрока.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''ignore_friends = true/false''''' - будет игнорировать дружественных ему персонажей.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''ignore_cond = {+info -info =func !func ~number}''''' - условия, при которых NPC игнорирует игрока.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''no_danger = true/false''''' - отыгрывать или нет угрожающую анимацию будучи нейтралом.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''anim = &amp;lt;название_анимации&amp;gt;''''' - какую отыгрывает анимацию, если игрок ему не враждебен.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''snd_anim_sync = true/false''''' - будет ли синхронизирован звук с анимацией.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Пример использования схемы''''':&amp;lt;ini&amp;gt;[zoneguard]&lt;br /&gt;
path_walk = mil_freedom_zoneguard_walk_kill2&lt;br /&gt;
path_look = mil_freedom_zoneguard_look_kill2&lt;br /&gt;
zone_warn = mil_freedom_leader_warn_zone&lt;br /&gt;
zone_guard = mil_freedom_leader_kill_zone&lt;br /&gt;
no_move = true&lt;br /&gt;
team = freedom_bodyguards3&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл: ''gamedata\scripts\xr_zoneguard.script''&lt;br /&gt;
&lt;br /&gt;
==Схема wounded==&lt;br /&gt;
Схема раненного. Определяет поведение NPC в состоянии &amp;quot;раненный&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''Примечание''''': не рекомендуется задавать схему в качестве активной.&lt;br /&gt;
&lt;br /&gt;
'''[wounded]'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''''hp_state = &amp;lt;HP&amp;gt;|&amp;lt;название_анимации&amp;gt;@&amp;lt;название_звуковой_темы&amp;gt;''''' - поведение NPC при значении уровня его здоровья равному '''''HP''''', когда он не видит игрока.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''hp_state_see = &amp;lt;HP&amp;gt;|&amp;lt;название_анимации&amp;gt;@&amp;lt;название_звуковой_темы&amp;gt;''''' - поведение NPC при значении уровня его здоровья равному '''''HP''''', когда он видит игрока.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''psy_state = &amp;lt;PSY&amp;gt;|&amp;lt;название_анимации&amp;gt;@&amp;lt;название_звуковой_темы&amp;gt;''''' - поведение NPC при псиатаках, в зависимости от уровня пси-здоровья равному '''''PSY'''''.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''hp_victim = &amp;lt;HP&amp;gt;|&amp;lt;параметр&amp;gt;''''' - куда будет смотреть NPC при значении уровня его здоровья равному '''''HP''''', возможные параметры:&amp;lt;br&amp;gt;&lt;br /&gt;
:*'''''story_id''''' - числовое значение;&lt;br /&gt;
:*'''''actor''''' - без комментариев;&lt;br /&gt;
:*'''''nil''''' - позиция вычисленная АИ автоматически.&lt;br /&gt;
'''''hp_cover = &amp;lt;HP&amp;gt;|true/false''''' - идти в укрытие или нет, в зависимости от значения уровня здоровья равному '''''HP'''''.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''hp_fight = &amp;lt;HP&amp;gt;|true/false''''' - разрешено воевать или нет, в зависимости от значения уровня здоровья равному '''''HP'''''.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''syndata = &amp;lt;название_анимации&amp;gt;@&amp;lt;название_звуковой_темы&amp;gt;''''' - синхропары для красоты.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''help_dialog = &amp;lt;название_диалога&amp;gt;''''' - возможность установить диалог, вместо стандартного '''''actor_help_wounded'''''.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''help_start_dialog = &amp;lt;название_диалога&amp;gt;''''' - возможность установить стартовый диалог.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Примечание''''': желательно, чтобы все установленные актёрские диалоги для раненых имели условие их появления следующего вида:&amp;lt;br&amp;gt;&lt;br /&gt;
:&amp;lt;xml&amp;gt;&amp;lt;precondition&amp;gt;dialogs.allow_wounded_dialog&amp;lt;/precondition&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
'''''Примечание''''': если необходимо поставить несколько состояний, в зависимости от разного значения уровня здоровья, то сами состояния нужно разделять символом ‘|’:&amp;lt;br&amp;gt;&lt;br /&gt;
:&amp;lt;ini&amp;gt;hp_state= 30|help_me@help|10|wounded_heavy@help_heavy&amp;lt;/ini&amp;gt;&lt;br /&gt;
:Здесь определятся два состояния при уровне здоровья 30 и 10 соответственно.&lt;br /&gt;
:Для параметров '''''hp_state_see''''', '''''psy_state''''', '''''hp_victim''''', '''''hp_cover''''', '''''hp_fight''''' способ такой же.&lt;br /&gt;
&lt;br /&gt;
'''''Пример использования схемы &amp;lt;small&amp;gt;(в качестве примера взята дефолтная настройка)'''''&amp;lt;/small&amp;gt;:&amp;lt;br&amp;gt;&amp;lt;ini&amp;gt;hp_state= 30|help_me@help|10|wounded_heavy@help_heavy&lt;br /&gt;
hp_state_see = 30|wounded@help_see|10|wounded_heavy@help_heavy&lt;br /&gt;
psy_state = 50|{=best_pistol}psy_armed,psy_pain@wounded_psy|20|psy_shoot,psy_pain@wounded_psy_shoot,wounded_psy&lt;br /&gt;
hp_victim = 30|actor|10|nil&lt;br /&gt;
hp_cover = 30|true|10|false&lt;br /&gt;
hp_fight = 30|true|10|false&lt;br /&gt;
syndata = wounded@help&lt;br /&gt;
;best_pistol – проверка на то, что лучшее оружие NPC является пистолетом.&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл: ''gamedata\scripts\xr_wounded.script''&lt;br /&gt;
&lt;br /&gt;
==Схема rest==&lt;br /&gt;
Чувак гуляет, хавает, спит.&amp;lt;br&amp;gt;&lt;br /&gt;
Нормально не работает, посему в релизе не используется.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл: ''gamedata\scripts\xr_rest.script''&lt;br /&gt;
&lt;br /&gt;
==Схема heli_hunter==&lt;br /&gt;
Хелихантер может стрелять либо не стрелять по вертолету в зависимости от условий. Делается это так:&amp;lt;br&amp;gt;&lt;br /&gt;
В активную схему вставляется параметр:&amp;lt;ini&amp;gt;heli_hunter = {+info -info =func !func ~number}true/false&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример:&amp;lt;ini&amp;gt;[camper@bar_freedom_attack_sniper_1]&lt;br /&gt;
path_walk = camper_1_walk&lt;br /&gt;
path_look = camper_1_look&lt;br /&gt;
on_info = {+bar_freedom_attack_ecolog} camper1@bar_freedom_attack_sniper_1 &amp;lt;br&amp;gt;%=bar_freedom_angry_actor%&lt;br /&gt;
meet_talk_enabled = true&lt;br /&gt;
meet_dialog = bar_svoboda_dialog&lt;br /&gt;
heli_hunter = {-bar_ecolog_crush_heli_down} true&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если раньше оверрайд понимал только значения '''''true''''' либо '''''false''''', то сейчас он понимает кондлист, который если возвращает '''''true''''' - то стрельба по вертолету в данной схеме разрешена.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Схема patrol==&lt;br /&gt;
Итак, есть предварительная система патруля. Представляет собой вариацию '''''kamp''''' только в состоянии ходьбы. Для ее работы прописываем в '''''custom_data''''' следующее:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''[patrol]'''&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;
'''''formation = &amp;lt;параметр&amp;gt;''''' - описывет способ построения и не является обязательным. Возможны следующие варианты:&amp;lt;br&amp;gt;&lt;br /&gt;
:*'''''back''''' - мужики идут чуть позади командира в два ряда (по умолчанию);&amp;lt;br&amp;gt;&lt;br /&gt;
:*'''''line''''' - шеренга;&amp;lt;br&amp;gt;&lt;br /&gt;
:*'''''around''''' - вокруг командира.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''commander = true/false''''' - будет ли NPC назначен командиром, желательно, чтобы такой красивый он был один. '''''false''''' - по умолчанию.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''move_type = &amp;lt;название_анимации&amp;gt;''''' - задает изначальный режим перемещения, по умолчанию '''''patrol'''''.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При остановке командора в '''''meet''''' мужики останавливаются.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если командор помирает, то автоматически будет выбран другой. Командиром становится тот, кто первый попал под схему. Способы построения задаются в вейпоинтах следующим образом:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;ini&amp;gt;ret=0...2&amp;lt;/ini&amp;gt;&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;
'''''Примечание''''': что еще не сделано или глючит:&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;ini&amp;gt;[patrol@val_escort_captive_wait]&lt;br /&gt;
path_walk           = captive_wait_walk&lt;br /&gt;
path_look           = captive_wait_look&lt;br /&gt;
commander           = true&lt;br /&gt;
formation           = back&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл: ''gamedata\scripts\xr_patrol.script''&lt;br /&gt;
&lt;br /&gt;
==Схема meet==&lt;br /&gt;
Схема позволяющая настроить ситуацию, когда НПС встречает актора.&lt;br /&gt;
&lt;br /&gt;
'''[meet]'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''''meet_state/meet_state_wpn = &amp;lt;number&amp;gt;|&amp;lt;название_анимации&amp;gt;@&amp;lt;название_звуковой_темы&amp;gt;''''' – задает анимацию и озвучку персонажа,&lt;br /&gt;
:в зависимости от расстояния до актера равному '''''number'''''. Для ситуации, когда актор безоружен и вооружён соответственно.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''victim/victim_wpn = &amp;lt;number&amp;gt;|&amp;lt;параметр&amp;gt;''''' - задает объект, на который должен будет смотреть персонаж, в зависимости от расстояния равное '''''number'''''.&lt;br /&gt;
:Для ситуации, когда актор безоружен и вооружён соответственно. Возможны следующие значения:&amp;lt;br&amp;gt;&lt;br /&gt;
::*'''''actor''''' - смотреть на игрока;&amp;lt;br&amp;gt;&lt;br /&gt;
::*'''''story_id''''' - смотреть на персонажа со указанным '''''story_id''''';&amp;lt;br&amp;gt;&lt;br /&gt;
::*'''''nil''''' - никуда.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''use/use_wpn = true/false/self''''' - настройки юзабельности персонажа.&lt;br /&gt;
:При установки значения '''''self''''' NPC сам юзнет игрока, как только сможет дотянуться.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''zone = &amp;lt;имя_зоны&amp;gt;|&amp;lt;название_анимации&amp;gt;@&amp;lt;название_звуковой_темы&amp;gt;''''' - если актор будет замечен в указанном рестрикторе,&lt;br /&gt;
:то NPC будет отыгрывать заданную анимацию и произносить заданный звук.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''meet_dialog = &amp;lt;название_диалога&amp;gt;''''' - возможность установить стартовый диалог NPC.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''synpairs = &amp;lt;название_анимации&amp;gt;@&amp;lt;название_звуковой_темы&amp;gt;''''' - Если при каком-то наборе условий&lt;br /&gt;
:встреча будет отыгрывать именно это состояние и эту звуковую тему – то они будут синхронизироваться по рандомным анимациям состояния тела.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''abuse = true/false''''' - по умолчанию '''''true''''', если '''''false''''', то неюзающийся противник не будет обижаться.&amp;lt;br&amp;gt;&lt;br /&gt;
'''''precond = usability/visibility'''''.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Любую строку можно задавать кондлистом ('''''{+info -info =func !func ~number}''''').&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для облегчения настройки встречи сделана возможность упрощенного  задания дефолта:&amp;lt;br&amp;gt;&amp;lt;ini&amp;gt;[walker]&lt;br /&gt;
meet = default_meet&amp;lt;/ini&amp;gt;Саму секцию '''''default_meet''''' задавать не надо. Все настройки и так возьмутся из дефолта. По дефолту встреча настроена со следующими параметрами:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;ini&amp;gt;[default_meet]&lt;br /&gt;
meet_state = 30|hello@hail|20|wait@wait&lt;br /&gt;
meet_state_wpn = 30|backoff@threat_weap&lt;br /&gt;
victim = 30|actor&lt;br /&gt;
victim_wpn = 30|actor&lt;br /&gt;
use = true&lt;br /&gt;
use_wpn = false&lt;br /&gt;
syndata = hello@hail|backoff@threat_weap&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Примечание''''': если нужно, чтобы сталкер не разговаривал с игроком в данной секции, необходимо прописать ему '''''meet = no_meet'''''.&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;
*'''Ситуация 1'''.&amp;lt;br&amp;gt;&lt;br /&gt;
Игрок вдалеке подзывает нас рукой, при приближении просит убрать оружие, потом согласен говорить.&amp;lt;br&amp;gt;&amp;lt;ini&amp;gt;[meet]&lt;br /&gt;
meet_state = 50| hello@talk_hello| 20| wait@wait| 10| ward@wait&lt;br /&gt;
meet_state_wpn = 50| hello@talk_hello| 20| threat@threat_weap&lt;br /&gt;
victim = 50| actor&lt;br /&gt;
victim_wpn = 50| actor&lt;br /&gt;
use = true&amp;lt;&lt;br /&gt;
use_wpn = false&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''Ситуация 2'''.&amp;lt;br&amp;gt;&lt;br /&gt;
Сталкер завидя нас просит убрать оружие. После этого подходит и заговаривает с нами. Если мы начинаем уходить от него или достаем оружие – начинает нас стрелять.&amp;lt;br&amp;gt;&amp;lt;ini&amp;gt;[meet]&lt;br /&gt;
meet_state = 50|{+info} threat_fire %=killactor% ,walk@ {+info} talk_abuse, wait|10|walk %+info%&lt;br /&gt;
meet_state_wpn = 50|{+info} threat_fire %=killactor%, threat@ {+info} talk_abuse, wait&lt;br /&gt;
victim = 50|actor&lt;br /&gt;
victim_wpn = 50|actor&lt;br /&gt;
use = {-info2} self, false&lt;br /&gt;
use_wpn = false&amp;lt;/ini&amp;gt;Здесь:&amp;lt;br&amp;gt;&lt;br /&gt;
'''''info''''' – инфопорция, которая указывает что мы уже опустили оружие и были достаточно близко к NPC;&amp;lt;br&amp;gt;&lt;br /&gt;
'''''info2''''' – инфопорция, которая устанавливается в диалоге и говорит что персонаж уже сказал нам все, что хотел;&amp;lt;br&amp;gt;&lt;br /&gt;
'''''killactor''''' – функция в ''xr_effects.script'' которая обижает NPC на игрока.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''Ситуация 3'''.&amp;lt;br&amp;gt;&lt;br /&gt;
Персонаж ходит по патрульному пути на заставе лагеря. Если игрок имеет допуск в лагерь – пропускает его и здоровается, иначе сперва отпугивает, а если игрок пробрался в лагерь – то обижается на него. При этом диалог зависит от того, имеет игрок допуск в лагерь или нет.&amp;lt;br&amp;gt;&amp;lt;ini&amp;gt;[camper]&lt;br /&gt;
path_walk = path_walk&lt;br /&gt;
path_look = path_look&lt;br /&gt;
meet = meet&lt;br /&gt;
&lt;br /&gt;
[meet]&lt;br /&gt;
meet_state = 30|{+info} wait, threat@ {+info} talk_hello, threat_back&lt;br /&gt;
meet_state_wpn = 30|{+info} wait, threat@ {+info} talk_hello, threat_back&lt;br /&gt;
victim = 30|actor&lt;br /&gt;
victim_wpn = 30|actor&lt;br /&gt;
use = true&lt;br /&gt;
use_wpn = true&lt;br /&gt;
zone = warnzone|{-info} threat@ {-info} threat_back|kampzone| {-info} true@ {-info} talk_abuse&lt;br /&gt;
meet_dialog = {+info} dialog1, dialog2&amp;lt;/ini&amp;gt;Здесь:&amp;lt;br&amp;gt;&lt;br /&gt;
'''''true''''' – вместо анимации, атаковать игрока;&amp;lt;br&amp;gt;&lt;br /&gt;
'''''info''''' – инфопорция, которая говорит, что мы имеем допуск к лагерю;&amp;lt;br&amp;gt;&lt;br /&gt;
'''''warnzone''''' – рестриктор, в котором нас предупреждают;&amp;lt;br&amp;gt;&lt;br /&gt;
'''''kampzone''''' – рестриктор, в котором нас убивают;&amp;lt;br&amp;gt;&lt;br /&gt;
'''''dialog1''''' – стартовый диалог NPC, если мы имеем допуск в лагерь;&amp;lt;br&amp;gt;&lt;br /&gt;
'''''dialog2''''' – стартовый диалог NPC, если мы не имеем допуск в лагерь.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Файл: ''gamedata\scripts\xr_meet.script''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font size = 5&amp;gt;[[Часть 2]]&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:A-Life]][[Категория:Скрипты]]&lt;/div&gt;</summary>
		<author><name>95.190.225.148</name></author>	</entry>

	</feed>