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

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%90%D0%BD%D0%B8%D0%BC%D0%B0%D1%86%D0%B8%D0%B8_NPC</id>
		<title>SoC. Анимации NPC</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%90%D0%BD%D0%B8%D0%BC%D0%B0%D1%86%D0%B8%D0%B8_NPC"/>
				<updated>2013-09-20T17:47:24Z</updated>
		
		<summary type="html">&lt;p&gt;46.0.3.4: /* Часть третья. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Недавно решил поэкспериментировать с анимками НПС,  и теперь выкладываю результаты моих опытов над &amp;quot;людьми&amp;quot;. Разумеется, опытные модмейкеры все это давно знают – поэтому материал предназначен для  новичков, которые еще не освоили как прописывать неписям разные прикольные анимки, а заодно и озвучку  через логику.  Все анимки взяты из файла state_lib. script.  Анимки, которые имеются в движке, но не вписаны в указанный файл, не рассматриваются. Это тема для отдельной статьи. Озвучка взята из файла sound_script (папка misc). Конечно, хотелось использовать и звуковые темы не вписанные в этот файл, но имеющиеся в папке sounds - но  с этим  еще надо разобраться.&lt;br /&gt;
&lt;br /&gt;
== Часть первая. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Вся изложенная ниже схема является единым целым и ее можно ставить в ltx –ный  файл логики любому вашему НПС целиком. Она будет зациклена и  повторяться по кругу  если кое-где поставить другие варианты перехода от одной ремарки к другой.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;[logic]&lt;br /&gt;
active = remark@base &lt;br /&gt;
danger = danger_condition &lt;br /&gt;
meet = meet&lt;br /&gt;
&lt;br /&gt;
[remark@base]&lt;br /&gt;
anim = hello_wpn&lt;br /&gt;
no_move = true&lt;br /&gt;
target = actor&lt;br /&gt;
meet = meet&lt;br /&gt;
on_actor_dist_le = 2| remark@sit&lt;br /&gt;
&lt;br /&gt;
[meet] &lt;br /&gt;
meet_state = 10|salut@esc_bridge_soldiers| 5|salut_free@esc_lager_killer&lt;br /&gt;
meet_state_wpn = 10|ward@cit_base_guard_talk_to_actor2| 5|probe_2@gar_bandits_seryi&lt;br /&gt;
victim = 10|actor&lt;br /&gt;
victim_wpn = 10|actor&lt;br /&gt;
use = true&lt;br /&gt;
use_wpn = true&lt;br /&gt;
meet_dialog	= escape_lager_guard_start_dialog &amp;lt;/ini&amp;gt; &lt;br /&gt;
&lt;br /&gt;
В базовой ремарке мой чувак  использует анимку Волка - hello_wpn –  одной рукой машет ГГ, другой держит ствол.&lt;br /&gt;
Это начальная анимка, которая будет отрабатываться НПС, пока ГГ не подойдет на дистанцию встречи.&lt;br /&gt;
В секции meet задается схема реагирования НПС при подходе к нему эктора. &lt;br /&gt;
В строчке meet_state  – реакция при подходе безоружного ГГ. &lt;br /&gt;
На расстоянии 10 метров НПС отдает честь, затем встает в позицию «смирно» - руки по швам. &lt;br /&gt;
Это анимка '''salut'''. Ближе 5 метров – тоже самое, дальше переходит в позицию «вольно». &lt;br /&gt;
Это анимка '''salut_free.''' &lt;br /&gt;
В секции meet можно задавать и то, что НПС будет базарить при виде эктора.&lt;br /&gt;
В моей схеме: «чего стоишь сталкер, подходи, будем разговаривать» (esc_bridge_soldiers) отдавая салют, и на второй дистанции - «разбежались сосунки и т.д». (esc_lager_killer)&lt;br /&gt;
В строчке meet_state_wpn  - реакция НПС если эктор с пушкой в руках. У меня в этой схеме он встает в позу '''ward''' – руки за спиной, голова наклонена вниз. Словом поза тюремщика или надсмотрщика (ward примерно так и переводится).&lt;br /&gt;
В этой позе НПС на дистанции ближе 10 метров орет «повторяю для тупых - отошел к дальней стене камеры…» (cit_base_guard_talk_to_actor2), а если ГГ подойдет еще ближе -  «ты щас сдохнешь падла, понял…» (gar_bandits_seryi) и  еще несколько  рандомных фраз, которые заданы звуковой темой gar_bandits_seryi.&lt;br /&gt;
К начальной  анимке также можно добавлять любую  звуковую тему через строчку snd. В данной ремарке ее нет. &lt;br /&gt;
&lt;br /&gt;
Переходим к следующей схеме.&lt;br /&gt;
Так как все эти схему у меня завязаны вместе, то переход ко второй ремарке произойдет, когда ГГ подойдет к НПС на дистанцию ближе двух метров. Прописано этой в строчке &lt;br /&gt;
on_actor_dist_le = 2| remark@sit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;[remark@sit]&lt;br /&gt;
anim = sit_ass&lt;br /&gt;
snd = mil_guard_to_max&lt;br /&gt;
no_move = true&lt;br /&gt;
target = actor&lt;br /&gt;
meet = no_meet&lt;br /&gt;
;on_actor_dist_le = 2| remark@raciya&lt;br /&gt;
;on_timer = 30000| remark@ raciya&lt;br /&gt;
on_signal = sound_end| remark@raciya&lt;br /&gt;
danger = danger_condition&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Итак, что делает НПС в этой ремарке. &lt;br /&gt;
Сидит на заднице  - '''sit_ass''', орет - mil_guard_to_max – «макс, у нас тут проблема на хуторе нарисовалась, собирай народ…»&lt;br /&gt;
В секции meet прописано отсутствие встречи, так как задано no_meet . Так что разговаривать с ГГ непись не будет. После отработки  заданной звуковой темы  идет переход к к ремарке remark@ raciya.&lt;br /&gt;
Сделано это через строчку on_signal = sound_end| remark@raciya. &lt;br /&gt;
Переведу: на сигнал «конец звуковой темы» переходим к схеме remark@raciya.&lt;br /&gt;
&lt;br /&gt;
Следующая схема. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;[remark@raciya]&lt;br /&gt;
anim = choose &lt;br /&gt;
snd = bar_arena_public&lt;br /&gt;
no_move = true&lt;br /&gt;
target = actor&lt;br /&gt;
meet = meet@raciya&lt;br /&gt;
on_timer = 120000| remark@work&lt;br /&gt;
;on_actor_dist_ge = 35| remark@work&lt;br /&gt;
danger = danger_condition&lt;br /&gt;
&lt;br /&gt;
[meet@raciya]&lt;br /&gt;
meet_state = 7|binocular@val_escort_guards| 5|guard_rac@mil_pavlik_to_ara&lt;br /&gt;
meet_state_wpn = 7|hide_rac@mil_ara_ambush                                       &lt;br /&gt;
victim = 7|actor &lt;br /&gt;
victim_wpn = 7|actor &lt;br /&gt;
use = true &lt;br /&gt;
use_wpn = true &lt;br /&gt;
meet_dialog	= escape_lager_guard_start_dialog&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Анимка '''choose''' – ГГ что-то высматривает: оглядывается по сторонам, прикладывает руку ко лбу, так же как это делам мы, когда смотрим вдаль против солнца. &lt;br /&gt;
Звуковая тема – что то там из реплик на арене.&lt;br /&gt;
При встрече – смотрит в бинокль (если он у него есть) и издевательски базарит  - «скоро ты будешь работать обедом для мутантов» (в этой теме реплик несколько).&lt;br /&gt;
На 5 метрах достает рацию (если есть) - анимка '''guard_rac''' и базарит реплики из темы предателя Павлика на милитари  «все чисто можете подходить». &lt;br /&gt;
При  угрозе стволом -  анимка  '''hide_rac''' («сидит с рацией»), базар -  «это засада, уходим»&lt;br /&gt;
Через 120 секунд  - переход к следующей ремарке: on_timer = 120000| remark@work&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;[remark@work]&lt;br /&gt;
anim = caution&lt;br /&gt;
no_move = true&lt;br /&gt;
snd = mil_max_before_collect&lt;br /&gt;
target = actor&lt;br /&gt;
on_timer = 30000| remark@work2&lt;br /&gt;
meet = no_meet&lt;br /&gt;
danger = danger_condition&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Анимка '''caution''' – ГГ слегка согнувшись, что-то внимательно высматривает на земле, руки прикладывает к коленям. А затем радостно сообщает -  «ребята у нас появилась работа». Видимо, что-то высмотрел интересное.&lt;br /&gt;
Через 30 секунд -  снова переход.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;[remark@work2]&lt;br /&gt;
anim = search&lt;br /&gt;
no_move = true&lt;br /&gt;
snd = mil_collect_phrase3&lt;br /&gt;
target = actor&lt;br /&gt;
on_timer = 30000| remark@zombied&lt;br /&gt;
meet = no_meet&lt;br /&gt;
danger = danger_condition&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Анимка '''search'''  -   поиск, только более развернутый. ГГ встает на колени или на корточки и начинает что-то искать. Что он при этом произносит – узнаете, когда послушаете. &lt;br /&gt;
Через 30 секунд переход к схеме зомби.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;[remark@zombied]&lt;br /&gt;
anim = trans_zombied&lt;br /&gt;
snd = pri_followers_leader_phrase1_1&lt;br /&gt;
no_move = true&lt;br /&gt;
target = actor&lt;br /&gt;
on_timer = 60000| remark@wounded&lt;br /&gt;
meet = meet@zombied&lt;br /&gt;
danger = danger_condition&lt;br /&gt;
&lt;br /&gt;
[meet@zombied]&lt;br /&gt;
meet_state =  5|trans_0@hail&lt;br /&gt;
meet_state_wpn	= 5|trans_1@hail&lt;br /&gt;
victim		= 5|actor  &lt;br /&gt;
victim_wpn	= 5|actor&lt;br /&gt;
use			= true&lt;br /&gt;
use_wpn		= true&lt;br /&gt;
meet_dialog	= escape_lager_guard_start_dialog&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Анимка '''trans_zombied'''  -  падает на колени, головой двигает вверх-вниз.&lt;br /&gt;
'''trans_1''' - также стоит  на коленях, только головой вращает по кругу.&lt;br /&gt;
'''trans_0''' – то же самое, только более энергичней. Или наоборот - извиняюсь если перепутал.&lt;br /&gt;
&lt;br /&gt;
Схема &amp;quot;раненый&amp;quot;. Тут все понятно. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;[remark@wounded]&lt;br /&gt;
anim = wounded_heavy_3&lt;br /&gt;
snd = help_heavy&lt;br /&gt;
target = actor&lt;br /&gt;
meet = no_meet&lt;br /&gt;
on_timer = 30000| remark@dinner&lt;br /&gt;
danger = danger_condition&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''wounded_heavy_3''' – это анимка тяжелораненого. (есть еще и другие анимки раненого).&lt;br /&gt;
Чувак скрючившись, грохнется на землю. Но на ней не остается,  а тут же встает и бежит в сторону в денжере. Что и понятно – здоровье то у него норм. Остальные неписи видевшие как чувак упал, так же срываются в денжере с места.&lt;br /&gt;
Ищут того, кто «стрелял». Не удивляйтесь, но так они запрограммированы. &lt;br /&gt;
&lt;br /&gt;
Схема обед. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;[remark@dinner]&lt;br /&gt;
anim = sit_knee&lt;br /&gt;
no_move = true&lt;br /&gt;
target = actor&lt;br /&gt;
meet = meet@dinner&lt;br /&gt;
danger = danger_condition&lt;br /&gt;
on_actor_dist_ge = 15| remark@dynamite&lt;br /&gt;
&lt;br /&gt;
[meet@dinner]&lt;br /&gt;
meet_state	= 5|eat_bread@wait| 3|eat_energy@wait&lt;br /&gt;
meet_state_wpn	= 5|eat_kolbasa@wait| 3|eat_vodka@val_escort_dead&lt;br /&gt;
victim = 8|actor &lt;br /&gt;
victim_wpn = 8|actor &lt;br /&gt;
use = true &lt;br /&gt;
use_wpn = true &lt;br /&gt;
meet_dialog	= escape_lager_guard_start_dialog&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''sit_knee'''  - чувак сидит на заднице, опираясь на руку. &lt;br /&gt;
'''eat_bread, eat_kolbasa, eat_energy,  eat_vodka''' - тут я думаю ничего объяснять не надо. Чувак хавает и пьет. Пригубив водки, произносит – «пусть земля тебе будет пухом»&lt;br /&gt;
При отходе эктора на дистанцию больше 15 метров -  переход к схеме динамит.&lt;br /&gt;
Звуковая тема wait – это пауза, в которой непись ничего не говорит.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;[remark@dynamite]&lt;br /&gt;
anim = dynamite&lt;br /&gt;
no_move = true&lt;br /&gt;
target = actor&lt;br /&gt;
meet = no_meet&lt;br /&gt;
on_timer = 30000| remark@claim&lt;br /&gt;
danger = danger_condition&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''dynamite''' – закладка динамита. Как это выглядит – помните долговца на милитари у стены с динамитом? &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;[remark@claim]&lt;br /&gt;
anim = claim&lt;br /&gt;
snd = esc_wolf_thanks&lt;br /&gt;
target = actor&lt;br /&gt;
meet = meet@claim&lt;br /&gt;
danger = danger_condition&lt;br /&gt;
on_timer = 60000| remark@story&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Анимка '''claim''' -  НПС подзывает ГГ рукой.&lt;br /&gt;
snd = esc_wolf_thanks  -  здесь НПС произносит &lt;br /&gt;
фразу волка:  «меченый теперь тебе проход в лагерь открыт, подходи».&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;[meet@claim]&lt;br /&gt;
meet_state	= 7|refuse@mil_collect_phrase5| 5|probe_2@mil_collect_phrase6 &lt;br /&gt;
meet_state_wpn	= 7|backoff@gar_dm_bandit_demand          &lt;br /&gt;
victim		= 7|actor   &lt;br /&gt;
victim_wpn	= 7|actor&lt;br /&gt;
use			= true&lt;br /&gt;
use_wpn		= true&lt;br /&gt;
meet_dialog	= escape_lager_guard_start_dialog&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Анимка '''refuse'''   - непись  пожимает плечами и произносит mil_collect_phrase5  - «не срать». &lt;br /&gt;
'''probe_2''' -  судя по сопровождающим ее звукам (независимо от прописанной мной звуковой темы) – это анимка Круглова (его манипуляции с прибором, а может Сахарова - впрочем, это не важно). Если у вашего НПС будет в руках оружие  - то смотреться она будет куда интереснее, так как выглядит будто непись проверяет свой ствол, совершая массу интересных движений.&lt;br /&gt;
Фраза   mil_collect_phrase6 -  «опа – с нами новое мясо».&lt;br /&gt;
&lt;br /&gt;
'''backoff''' -  обычная анимка. Непись начинает  махать стволом в разные стороны – типа  убери ствол, меченый.  Фраза - gar_dm_bandit_demand -  «бабки артефакты гони», «ты че козел не врубаешься», «гони бабло или бошку отстрелим». Так как тема рандомная  (с окончанием  rnd в имени темы  в файле sound_script – то и фраз несколько)          &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;[remark@story]&lt;br /&gt;
anim = mode_shlem&lt;br /&gt;
no_move = true&lt;br /&gt;
target = actor&lt;br /&gt;
meet = meet@story&lt;br /&gt;
danger = danger_condition&lt;br /&gt;
on_actor_dist_ge = 30| %+passage_to_story_end%&lt;br /&gt;
on_info = {+passage_to_story_end} remark@story_end&lt;br /&gt;
&lt;br /&gt;
[meet@story]&lt;br /&gt;
meet_state	= 10|probe@wait| 5|probe_1@hail     &lt;br /&gt;
meet_state_wpn	= 10|probe_2@wait| 5|suicide@mil_crazy&lt;br /&gt;
victim = 10|actor &lt;br /&gt;
victim_wpn = 10|actor &lt;br /&gt;
use = true &lt;br /&gt;
use_wpn = true &lt;br /&gt;
meet_dialog	= escape_lager_guard_start_dialog&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''mode_shlem''' - анимка то ли Круглова, то ли Сахарова. Непись будет что то вертеть в руках. &lt;br /&gt;
'''probe_1''' – тоже  самое что и probe_2 , только здесь он плечами вроде бы не дергает. &lt;br /&gt;
'''suicide'''  -  самоубийство. Советую посмотреть – тем более с озвучкой mil_crazy.&lt;br /&gt;
'''probe'''   - укороченный вариант probe_2 и probe_1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;[remark@story_end]&lt;br /&gt;
anim = probe_3&lt;br /&gt;
no_move = true&lt;br /&gt;
snd = agr_doctor_1        &lt;br /&gt;
target = actor&lt;br /&gt;
on_signal = sound_end| remark@base&lt;br /&gt;
;on_timer = 180000| remark@ base&lt;br /&gt;
meet = no_meet&lt;br /&gt;
danger = danger_condition&lt;br /&gt;
&lt;br /&gt;
[danger_condition]&lt;br /&gt;
ignore_distance = 10&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''probe_3'''  -  интересная анимка (похоже что кругловская)-  чувак срывается с места в панике, затем сгибается как будто от боли, хватается за голову. &lt;br /&gt;
agr_doctor_1 - базар доктора в тайнике стрелка. &lt;br /&gt;
&lt;br /&gt;
Теперь поясню строчки &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
on_actor_dist_ge = 30| %+passage_to_story_end%&lt;br /&gt;
on_info = {+passage_to_story_end} remark@story_end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Когда эктор отойдет от НПС дальше чем 30 метров,  ГГ выдается инфопоршень  passage_to_story_end. &lt;br /&gt;
После его получения - on_info -  произойдет переход к базовой ремарке.  &lt;br /&gt;
Сам инфопоршень необходимо регистрировать в соответствующих   файлах. Так как мой НПС находится на кордоне, то поршень я сунул в файл info_l01escape. Сообственно инфопоршень в строчке on_actor_dist_ge писать не обязательно(я его использовал только для примера) - можно просто поставить имя следующей ремарки - и в нужный момент произойдет переход. Но инфопоршень может понадобиться для других случаев.&lt;br /&gt;
&lt;br /&gt;
Как я уже говорил в начале, схему можно сделать полностью зацикленной. Нужно лишь в тех блоках, где идет переход к следующей схеме через on_signal поставить таймер или дистанцию.&lt;br /&gt;
Почему так - не знаю. Но у меня по второму кругу схема стопорилась на тех блоках, где шел переход через on_signal = sound_end|. По таймеру же все прекрасно крутится. Схема из второй части - как раз зацикленная.&lt;br /&gt;
&lt;br /&gt;
P.S. : Кажется понял почему у меня стопорилась схема при использовании перехода on_signal = sound_end|. Дело в том,  что если в имени звука, по завершении которого схема должна перейти к новому блоку стоит флажок seq, то он вроде как отыграется только один раз (если в этой теме нет дополнительных реплик). Следовательно по второму кругу он просто не будет срабатывать, а значит и схема застопорится. Так что для этого нужно ставить звук в имени которого в файле sound_script есть флажок rnd. Тема  mil_guard_to_max как раз с флажком seq (и реплика только одна - без вариантов). Потому здесь (в схеме sit) она и будет стопориться на втором круге, если не заменить тему на другую. &lt;br /&gt;
Но это еще надо проверить.&lt;br /&gt;
Закоментированные строчки - пред которыми стоит ; - может смело выкидывать - это остатки проб разных вариантов.&lt;br /&gt;
&lt;br /&gt;
== Часть вторая. ==&lt;br /&gt;
 &lt;br /&gt;
Еще одна схема. На этот раз в нее добавлены еще постэффекты.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;[logic]&lt;br /&gt;
active = remark@base &lt;br /&gt;
danger = danger_condition &lt;br /&gt;
meet = meet&lt;br /&gt;
&lt;br /&gt;
[remark@base]&lt;br /&gt;
anim = hello_wpn&lt;br /&gt;
no_move = true&lt;br /&gt;
target = actor&lt;br /&gt;
meet = meet&lt;br /&gt;
on_actor_dist_le = 2| remark@punch&lt;br /&gt;
danger = danger_condition &amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
С первой ремаркой все понятно. Переход ко второй на дистанции ближе 2 метров.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;[remark@punch]&lt;br /&gt;
anim = punch&lt;br /&gt;
snd = cit_jail_guard_sneer&lt;br /&gt;
meet = meet@punch&lt;br /&gt;
target = actor&lt;br /&gt;
on_signal = sound_end| %=run_cam_effector(fatigue)% &lt;br /&gt;
on_timer = 60000| remark@doctor_wakeup  %=run_postprocess(deadcity_wake:1777:false)%   &lt;br /&gt;
danger = danger_condition &lt;br /&gt;
&lt;br /&gt;
[meet@punch]&lt;br /&gt;
meet_state	= 5|hide_s_left@wait| 4|hide_s_right@wait&lt;br /&gt;
meet_state_wpn	= 5|backoff2@threat_back&lt;br /&gt;
victim = 10|actor &lt;br /&gt;
victim_wpn = 10|actor &lt;br /&gt;
use = true &lt;br /&gt;
use_wpn = true &lt;br /&gt;
meet_dialog	= escape_lager_guard_start_dialog&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''punch'''– анимка удара рукой (или прикладом). Так как я не специалист по боксу, то не скажу точно &lt;br /&gt;
как именно называется этот удар с правой в челюсть. Если поставите ее в meet_state_wpn на дистанции 2 метра - ГГ получит реальный удар в морду прикладом ствола. Так как я эксперементировал на своем торговце - то он (будучи безоружным) бил чисто кулаком.	 &lt;br /&gt;
А если вместо запуска  анимации камеры '''%=run_cam_effector(fatigue)%''' поставите запуск функции '''%=killactor%''', то НПС кинется вас убивать.&lt;br /&gt;
&lt;br /&gt;
'''hide_s_left''' и '''hide_s_right''' - непись присядет с разворотом &lt;br /&gt;
ствола вправо или влево. &lt;br /&gt;
'''backoff2'''  -  более веселая анимка backoff.  &lt;br /&gt;
НПС покажет ГГ что-то вроде фака, перед тем как помахать стволом и при этом скажет что-то весьма нелицеприятное.&lt;br /&gt;
'''&lt;br /&gt;
'''%=run_cam_effector(fatigue)%''' - это вызов анимации камеры ''fatigue'' из папки anims.&lt;br /&gt;
Земля уйдет из под ног ГГ. Ненадолго. Сработает сразу же после окончания фразы &lt;br /&gt;
cit_jail_guard_sneer. &lt;br /&gt;
А ровно через минуту от начала работы схемы – запуск постпроцесса&lt;br /&gt;
'''%=run_postprocess(deadcity_wake:1777:false)%'''  и переход к следующей схеме.&lt;br /&gt;
&lt;br /&gt;
'''deadcity_wake''' – это постпроцесс, который должен был использоваться в Мертвом городе, если бы разрабы МГ все таки доделали. &lt;br /&gt;
Если не видели - обязательно посмотрите.Сначала черный экран, затем прояснение с раздвоением картинки и красным фоном.   &lt;br /&gt;
 &lt;br /&gt;
В следующей схеме идет продолжение постпроцесса – первые 15 секунд. Потом его остановка: on_timer = 15000| %=stop_postprocess(1777)%. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;[remark@doctor_wakeup]&lt;br /&gt;
anim = doctor_wakeup&lt;br /&gt;
snd = cit_doctor_start_dlg&lt;br /&gt;
meet = meet@doctor_wakeup&lt;br /&gt;
target = actor&lt;br /&gt;
on_timer = 15000| %=stop_postprocess(1777)%&lt;br /&gt;
on_timer2 = 180000| remark@prisoner &lt;br /&gt;
danger = danger_condition &lt;br /&gt;
&lt;br /&gt;
[meet@doctor_wakeup]&lt;br /&gt;
meet_state	= 3|sleep@cit_jail_guard_sleep| 2|sleep_sit@wait&lt;br /&gt;
meet_state_wpn	= 3|wounded_zombie@wait&lt;br /&gt;
victim = 10|actor &lt;br /&gt;
victim_wpn = 10|actor &lt;br /&gt;
use = true &lt;br /&gt;
use_wpn = true &lt;br /&gt;
meet_dialog	= escape_lager_guard_start_dialog&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Начальная анимация - '''doctor_wakeup''' – доктор в мертвом городе. НПС склонится вниз – как будто над чьим то телом (по задумке – над меченым) и начнет базарить. Но совсем не то, что стоит у  меня в строчке snd. Видимо, данная анимка завязана со звуком, и иначе не идет.&lt;br /&gt;
Фразу прописанную мною - cit_doctor_start_dlg –  нпс произнесет потом. Обе озвучки длинные – та, что идет с анимкой – монолог доктора в подземелье агропрома в тайнике Стрелка  – типа, «что ж ты меченый в растяжку полез, сам же придумал эту хрень…» Моя озвучка - cit_doctor_start_dlg – неиспользованный монолог доктора в мертвом городе.&lt;br /&gt;
Через 180 секунд – завершение схемы и переход к следующей. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Схема – пленный.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;[remark@prisoner]&lt;br /&gt;
anim = prisoner&lt;br /&gt;
snd = agr_krot_fear&lt;br /&gt;
meet = meet@prisoner&lt;br /&gt;
target = actor&lt;br /&gt;
on_timer = 60000| remark@base&lt;br /&gt;
danger = danger_condition&lt;br /&gt;
&lt;br /&gt;
[meet@prisoner]&lt;br /&gt;
meet_state	= 5|help_me@gar_dm_newbie_no_money&lt;br /&gt;
meet_state_wpn	= 5|hands_up@agr_dont_shoot&lt;br /&gt;
victim = 10|actor &lt;br /&gt;
victim_wpn = 10|actor &lt;br /&gt;
use = true &lt;br /&gt;
use_wpn = true &lt;br /&gt;
meet_dialog	= escape_lager_guard_start_dialog&lt;br /&gt;
&lt;br /&gt;
[danger_condition]&lt;br /&gt;
ignore_distance = 10&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Анимка – '''prisoner''' – пленный. Помните Шустрого у бандитов? Вот это она и есть. &lt;br /&gt;
Фраза - agr_krot_fear – не смотря на то, что в названии звуковой темы имя Крота, орет ее Шустрый: типа братцы я тут, спасите. &lt;br /&gt;
&lt;br /&gt;
'''help_me''' -  машет рукой сидя на одном колене и орет, что у него &amp;quot;нет денег&amp;quot; - gar_dm_newbie_no_money .&lt;br /&gt;
'''hands_up'''  -  руки кверху  и орет &amp;quot;не убивай дяденька&amp;quot; (или типа того) - agr_dont_shoot. &lt;br /&gt;
&lt;br /&gt;
Через 60 секунд возврат к базовой ремарке.&lt;br /&gt;
&lt;br /&gt;
== Часть третья. ==&lt;br /&gt;
&lt;br /&gt;
В файле state_lib – большая библиотека анимок. Я успел попробовать только часть. &lt;br /&gt;
У одного бармена их 12. Правда, из пяти опробованных мной сработала только одна '''bar_sleep'''  - НПС положит голову  на руки сложенные перед лицом и будет  спать стоя. &lt;br /&gt;
&lt;br /&gt;
Анимки - '''barman_talk_freу, barman_shock,  barman_wait_danger,  barman_walk_danger'''  - никакого эффекта не дали. Видимо, они работают только на бармене. Остальные пробуйте сами. &lt;br /&gt;
&lt;br /&gt;
Анимка '''psy_pain''' – пораженный  пси-излучением. Чувак сядет на колени, начнет трясти головой и бить себе руками по голове.&lt;br /&gt;
&lt;br /&gt;
'''psycho_pain''' – вроде бы тоже самое, только чувак обхватывает голову руками  и так сидит.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Анимки '''psy_shoot, psy_armed, psycho_pain, psycho_shoot'''– пока остаются на стадии исследования. Так как с ними либо глючит, либо вылетает.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Добавление звуков в script_sound&amp;lt;br&amp;gt;''' ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Открываем файл script_sound.ltx и видим множество секций типа:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[sleep_rnd]&lt;br /&gt;
stalker		= 1,states\sleep\sleep_&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sleep_rnd - это имя секции, его то мы и будем писать в логику;&amp;lt;br&amp;gt;&lt;br /&gt;
states\sleep\sleep_  - путь к звуковому файлу, который будем проигрывать ;&amp;lt;br&amp;gt;&lt;br /&gt;
=1 - похоже это указывает на то что звук рандомный, так как реплики ключевых персонажей = 0&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По такому принципу можно добавить свои звуки в логику, но они '''ОБЯЗАТЕЛЬНО''' должны соответствовать требованиям (формат OGG, т.д.)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''erlik'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Категория:Скрипты]]&lt;/div&gt;</summary>
		<author><name>46.0.3.4</name></author>	</entry>

	</feed>