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

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9D%D0%BE%D0%B2%D1%8B%D0%B5_%D0%B4%D0%B5%D1%82%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D1%8B</id>
		<title>Новые детекторы</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9D%D0%BE%D0%B2%D1%8B%D0%B5_%D0%B4%D0%B5%D1%82%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D1%8B"/>
				<updated>2014-12-29T10:55:48Z</updated>
		
		<summary type="html">&lt;p&gt;89.28.85.74: /* Вступление */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Вступление==&lt;br /&gt;
В этом уроке мы создадим новый детектор артефактов.&lt;br /&gt;
нужные файлы:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
gamedata\configs\misc\devices.ltx&lt;br /&gt;
gamedata\configs\gameplay\character_desc_general.xml&lt;br /&gt;
gamedata\configs\text\rus\st_items_equipment.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
==Начало работы==&lt;br /&gt;
(Учтите детекторы на ЗП, если на ЗП не работает значит, на ЧН, а если опять не работает, значит на ТЧ)&lt;br /&gt;
откроем:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
gamedata\configs\misc\devices.ltx&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В конце файла добавляем это:&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
[detector_ваше_название_на_английском]:detector_advanced&lt;br /&gt;
$spawn 			= &amp;quot;devices\detector_ваше_название_на_английском&amp;quot; ;для левел эдитор&lt;br /&gt;
class			= DET_ELIT&lt;br /&gt;
visual			= dynamics\devices\dev_detector_3\dev_detector_3.ogf ;Ссылка на модель в данном случае в нас будет модель &amp;quot;велеса&amp;quot;&lt;br /&gt;
inv_name		= st_ваше_название_на_английском ;cсылка на название детектора в файле gamedata\configs\text\rus\st_items_equipment.xml&lt;br /&gt;
inv_name_short	= st_ваше_название_на_английском ;тоже самое что и inv_name должно быть одинаковым&lt;br /&gt;
description		= st_ваше_название_на_английском_descr ;опсание детектора в gamedata\configs\text\rus\st_items_equipment.xml&lt;br /&gt;
hud			= detector_ваше_название_на_английском_hud ; ссылка на худ детектора&lt;br /&gt;
&lt;br /&gt;
inv_grid_width		= 1 ;;;&lt;br /&gt;
inv_grid_height		= 1 ;;;;;;;;Иконка детектора&lt;br /&gt;
inv_grid_x		= 5 ;;;;;;;;в данном случае будет иконка велеса&lt;br /&gt;
inv_grid_y		= 14;;;&lt;br /&gt;
cost			= 2000&lt;br /&gt;
&lt;br /&gt;
; elite x=&amp;quot;0.00096&amp;quot; y=&amp;quot;0.0035&amp;quot;&lt;br /&gt;
ui_p			= -0.02904,0.01,0.0364&lt;br /&gt;
ui_r			= 0,90,0&lt;br /&gt;
&lt;br /&gt;
af_radius		= 30 ; наверное радиус на котором на экране детектора видно отметку артефакта&lt;br /&gt;
af_vis_radius		= 5  ; наверное радиус когда артефакт виден глазом ГГ&lt;br /&gt;
&lt;br /&gt;
; строка от af_class_19 до af_freq_26 это какие артефакты видит детектор, важно если вы будите делать новые артефакты то нужно прописать чтобы детектор &lt;br /&gt;
;их видел посмотрим пример на af_class_19 до af_freq_19&lt;br /&gt;
&lt;br /&gt;
af_class_19		= af_eye ; название артефакта&lt;br /&gt;
af_sound_19_		= detectors\art_beep1 ; звук при обнаружении&lt;br /&gt;
af_freq_19		= 0.05, 2 ; ???&lt;br /&gt;
af_class_20		= af_fire&lt;br /&gt;
af_sound_20_		= detectors\art_beep1&lt;br /&gt;
af_freq_20		= 0.05, 2&lt;br /&gt;
&lt;br /&gt;
af_class_21		= af_gravi&lt;br /&gt;
af_sound_21_		= detectors\art_beep1&lt;br /&gt;
af_freq_21		= 0.05, 2&lt;br /&gt;
af_class_22		= af_gold_fish&lt;br /&gt;
af_sound_22_		= detectors\art_beep1&lt;br /&gt;
af_freq_22		= 0.05, 2&lt;br /&gt;
&lt;br /&gt;
af_class_23		= af_baloon&lt;br /&gt;
af_sound_23_		= detectors\art_beep1&lt;br /&gt;
af_freq_23		= 0.05, 2&lt;br /&gt;
af_class_24		= af_glass&lt;br /&gt;
af_sound_24_		= detectors\art_beep1&lt;br /&gt;
af_freq_24		= 0.05, 2&lt;br /&gt;
&lt;br /&gt;
af_class_25		= af_dummy_dummy&lt;br /&gt;
af_sound_25_		= detectors\art_beep1&lt;br /&gt;
af_freq_25		= 0.05, 2&lt;br /&gt;
af_class_26		= af_ice&lt;br /&gt;
af_sound_26_		= detectors\art_beep1&lt;br /&gt;
af_freq_26		= 0.05, 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[detector_ваше_название_на_английском_hud]:detector_base_hud ; нужно чтобы совпадало с строчкой hud = &lt;br /&gt;
item_position				= -0.071685,0.036188,-0.009934&lt;br /&gt;
item_orientation			= 314.589233,-186.420761,-189.323669&lt;br /&gt;
&lt;br /&gt;
item_visual                   	= dynamics\devices\dev_detector_3\dev_detector_3_hud ; ссылка модели детектора в руке ГГ&lt;br /&gt;
&lt;br /&gt;
anm_show			= dev_detector_3_draw&lt;br /&gt;
anm_show_fast			= dev_detector_3_draw	;_quick&lt;br /&gt;
anm_hide			= dev_detector_3_holster&lt;br /&gt;
anm_hide_fast			= dev_detector_3_holster_quick&lt;br /&gt;
anm_idle			= dev_detector_3_idle&lt;br /&gt;
anm_idle_moving			= dev_detector_3_idle_moving&lt;br /&gt;
anm_idle_sprint			= dev_detector_3_idle_moving&lt;br /&gt;
&lt;br /&gt;
anm_show_16x9			= dev_detector_3_draw_ws, dev_detector_3_draw&lt;br /&gt;
anm_show_fast_16x9		= dev_detector_3_draw_ws	;_quick&lt;br /&gt;
anm_hide_16x9			= dev_detector_3_holster_ws, dev_detector_3_holster&lt;br /&gt;
anm_hide_fast_16x9		= dev_detector_3_holster_ws_quick&lt;br /&gt;
anm_idle_16x9			= dev_detector_3_idle_ws, dev_detector_3_idle&lt;br /&gt;
anm_idle_moving_16x9		= dev_detector_3_idle_moving_ws, dev_detector_3_idle_moving&lt;br /&gt;
anm_idle_sprint_16x9		= dev_detector_3_idle_moving_ws, dev_detector_3_idle_moving ; анимации детектора лучше не трогать&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Описание==&lt;br /&gt;
Откроем:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
gamedata\configs\text\rus\st_items_equipment.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
и добавим после любого названия  предмета эти строчки:&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
	&amp;lt;string id=&amp;quot;detector_ваше_название_на_английском&amp;quot;&amp;gt; &lt;br /&gt;
		&amp;lt;text&amp;gt;Название детектора&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;string id=&amp;quot;st_ваше_название_на_английском_descr&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;text&amp;gt;описание&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;/string&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
закрываем и сохраняем...&lt;br /&gt;
&lt;br /&gt;
==Финал==&lt;br /&gt;
Теперь осталось добавить детектор ГГ&lt;br /&gt;
Открываем:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
gamedata\configs\gameplay\character_desc_general.xml&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
и после строчек:&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;!-- 											 --&amp;gt;&lt;br /&gt;
&amp;lt;!--				 Actor 						 --&amp;gt;&lt;br /&gt;
&amp;lt;!-- 											 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;specific_character id=&amp;quot;actor&amp;quot; no_random = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;st_actor_name&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_inGame2_Hero&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;map_icon x=&amp;quot;2&amp;quot; y=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;/map_icon&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;team&amp;gt;Actor&amp;lt;/team&amp;gt;&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
добавляем:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
detector_ваше_название_на_английском \n&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Cохраняем...&lt;br /&gt;
&lt;br /&gt;
P.S. Если все правильно то после начала новой игры в ГГ будет новый детектор&lt;br /&gt;
Cтатья создана [[Участник:NIGHTSTALKER]]&lt;br /&gt;
Статья переделана:&lt;br /&gt;
[[Участник:Mesnik]] [[Участник:StalkerModer]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Конфигурационные файлы]]&lt;/div&gt;</summary>
		<author><name>89.28.85.74</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%B5%D1%81%D0%BD%D1%8B%D0%B9_%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1_%D1%80%D0%B0%D0%BD%D0%B4%D0%BE%D0%BC%D0%BD%D0%BE%D0%B9_%D0%BF%D1%80%D0%B8%D0%B2%D1%8F%D0%B7%D0%BA%D0%B8_%D0%B2%D0%B8%D0%B7%D1%83%D0%B0%D0%BB%D0%BE%D0%B2_%D0%BA_%D0%BF%D1%80%D0%BE%D1%84%D0%B8%D0%BB%D1%8F%D0%BC_%D0%9D%D0%9F%D0%A1</id>
		<title>Интересный способ рандомной привязки визуалов к профилям НПС</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%B5%D1%81%D0%BD%D1%8B%D0%B9_%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1_%D1%80%D0%B0%D0%BD%D0%B4%D0%BE%D0%BC%D0%BD%D0%BE%D0%B9_%D0%BF%D1%80%D0%B8%D0%B2%D1%8F%D0%B7%D0%BA%D0%B8_%D0%B2%D0%B8%D0%B7%D1%83%D0%B0%D0%BB%D0%BE%D0%B2_%D0%BA_%D0%BF%D1%80%D0%BE%D1%84%D0%B8%D0%BB%D1%8F%D0%BC_%D0%9D%D0%9F%D0%A1"/>
				<updated>2014-12-17T10:09:43Z</updated>
		
		<summary type="html">&lt;p&gt;89.28.85.74: /* Отработанный пример на деревне новичков. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Теория ==&lt;br /&gt;
В этой заметке я расскажу о том, как назначить нескольким профилям неписей разные визуалы, которые рандомно распределяться для каждого профиля. &lt;br /&gt;
Для примера возьмём деревню новичков из ТЧ. Находим в файле '''gamedata/config/gameplay/character_desc_escape.xml''' профили новичков обитающих в деревне возле бункера Сидоровича:&amp;lt;xml&amp;gt;&amp;lt;!-- - - - - - - -         STALKER NOVICE         - - - - - - - --&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;specific_character id=&amp;quot;esc_stalker_novice_default1&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;GENERATE_NAME_stalker&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_2&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_stalker_novice_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_stalker_novice&amp;lt;/class&amp;gt;&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;140&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;12&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&amp;lt;money min=&amp;quot;200&amp;quot; max=&amp;quot;600&amp;quot; infinitive=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\newbie\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;-1&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_2&amp;lt;/visual&amp;gt;&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_bm16 \n&lt;br /&gt;
			ammo_12x70_buck \n&lt;br /&gt;
#include &amp;quot;gameplay\character_items.xml&amp;quot; \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
					&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_3.xml&amp;quot;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;		&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&lt;br /&gt;
&amp;lt;!-- - - - - - - -                  - - - - - - - --&amp;gt;&lt;br /&gt;
	&amp;lt;specific_character id=&amp;quot;esc_stalker_novice_default2&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;GENERATE_NAME_stalker&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_2&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_stalker_novice_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_stalker_novice&amp;lt;/class&amp;gt;&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;127&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;-8&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&amp;lt;money min=&amp;quot;200&amp;quot; max=&amp;quot;600&amp;quot; infinitive=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\newbie\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;-1&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_2&amp;lt;/visual&amp;gt;&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_pm \n&lt;br /&gt;
			ammo_9x18_fmj = 1 \n&lt;br /&gt;
			device_torch \n&lt;br /&gt;
#include &amp;quot;gameplay\character_items.xml&amp;quot; \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_3.xml&amp;quot;&lt;br /&gt;
			&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&lt;br /&gt;
&amp;lt;!-- - - - - - - -                  - - - - - - - --&amp;gt;&lt;br /&gt;
	&amp;lt;specific_character id=&amp;quot;esc_stalker_novice_default3&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;GENERATE_NAME_stalker&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_3&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_stalker_novice_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_stalker_novice&amp;lt;/class&amp;gt;&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;214&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;9&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&amp;lt;money min=&amp;quot;200&amp;quot; max=&amp;quot;600&amp;quot; infinitive=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;-1&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_3&amp;lt;/visual&amp;gt;&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_bm16 \n&lt;br /&gt;
			ammo_12x70_buck \n&lt;br /&gt;
#include &amp;quot;gameplay\character_items.xml&amp;quot; \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_3.xml&amp;quot;&lt;br /&gt;
					&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&lt;br /&gt;
&amp;lt;!-- - - - - - - -                  - - - - - - - --&amp;gt;&lt;br /&gt;
	&amp;lt;specific_character id=&amp;quot;esc_stalker_novice_default4&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;GENERATE_NAME_stalker&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_3&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_stalker_novice_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_stalker_novice&amp;lt;/class&amp;gt;&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;175&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;8&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&amp;lt;money min=&amp;quot;200&amp;quot; max=&amp;quot;600&amp;quot; infinitive=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;-1&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_3&amp;lt;/visual&amp;gt;&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_pm \n&lt;br /&gt;
			ammo_9x18_fmj = 1 \n&lt;br /&gt;
#include &amp;quot;gameplay\character_items.xml&amp;quot; \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_3.xml&amp;quot;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&lt;br /&gt;
&amp;lt;!-- - - - - - - -                  - - - - - - - --&amp;gt;&lt;br /&gt;
	&amp;lt;specific_character id=&amp;quot;esc_stalker_novice_default5&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;GENERATE_NAME_stalker&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_4&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_stalker_novice_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_stalker_novice&amp;lt;/class&amp;gt;&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;268&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;-10&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&amp;lt;money min=&amp;quot;200&amp;quot; max=&amp;quot;600&amp;quot; infinitive=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_02\newbie\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;-1&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_4&amp;lt;/visual&amp;gt;&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_bm16 \n&lt;br /&gt;
			ammo_12x70_buck \n&lt;br /&gt;
			device_torch \n&lt;br /&gt;
#include &amp;quot;gameplay\character_items.xml&amp;quot; \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_3.xml&amp;quot;&lt;br /&gt;
			&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&lt;br /&gt;
&amp;lt;!-- - - - - - - -                  - - - - - - - --&amp;gt;&lt;br /&gt;
	&amp;lt;specific_character id=&amp;quot;esc_stalker_novice_default6&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;GENERATE_NAME_stalker&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_4&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_stalker_novice_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_stalker_novice&amp;lt;/class&amp;gt;&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;133&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;6&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&amp;lt;money min=&amp;quot;200&amp;quot; max=&amp;quot;600&amp;quot; infinitive=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_02\newbie\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;-1&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_4&amp;lt;/visual&amp;gt;&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_bm16 \n&lt;br /&gt;
			ammo_12x70_buck \n		&lt;br /&gt;
#include &amp;quot;gameplay\character_items.xml&amp;quot;	\n&lt;br /&gt;
#include &amp;quot;gameplay\character_drugs.xml&amp;quot; \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_3.xml&amp;quot;&lt;br /&gt;
			&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&lt;br /&gt;
&amp;lt;!-- - - - - - - -                  - - - - - - - --&amp;gt;&lt;br /&gt;
	&amp;lt;specific_character id=&amp;quot;esc_stalker_novice_default9&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;GENERATE_NAME_stalker&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_5&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_stalker_novice_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_stalker_novice&amp;lt;/class&amp;gt;&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;224&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;18&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&amp;lt;money min=&amp;quot;200&amp;quot; max=&amp;quot;600&amp;quot; infinitive=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_02\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;-1&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_5&amp;lt;/visual&amp;gt;&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_pm \n&lt;br /&gt;
			ammo_9x18_fmj = 1 \n&lt;br /&gt;
#include &amp;quot;gameplay\character_items.xml&amp;quot; \n&lt;br /&gt;
#include &amp;quot;gameplay\character_drugs.xml&amp;quot; \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_3.xml&amp;quot;&lt;br /&gt;
			&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&lt;br /&gt;
&amp;lt;!-- - - - - - - -                  - - - - - - - --&amp;gt;&lt;br /&gt;
	&amp;lt;specific_character id=&amp;quot;esc_stalker_novice_default10&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;GENERATE_NAME_stalker&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_5&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_stalker_novice_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_stalker_novice&amp;lt;/class&amp;gt;&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;58&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;-2&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&amp;lt;money min=&amp;quot;200&amp;quot; max=&amp;quot;600&amp;quot; infinitive=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_02\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;-1&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_5&amp;lt;/visual&amp;gt;&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_pm \n&lt;br /&gt;
			ammo_9x18_fmj = 1 \n&lt;br /&gt;
			device_torch \n&lt;br /&gt;
#include &amp;quot;gameplay\character_items.xml&amp;quot; \n&lt;br /&gt;
#include &amp;quot;gameplay\character_drugs.xml&amp;quot; \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_3.xml&amp;quot;&lt;br /&gt;
			&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Нас интересуют теги ''&amp;lt;visual&amp;gt;     &amp;lt;/visual&amp;gt;'' - в них указывается название профиля. Как видно из представленных выше профилей, каждому отдельному профилю строго присвоен свой визуал. Всегда ли уместна такая точность?&lt;br /&gt;
У нас есть группа профилей НПС и несколько визуалов подходящих этой группе профилей, можно предположить, что не важно какому именно НПС присвоеться определённый визуал. Проще говоря, в игре, все новички в деревне одинаковые, только куртки разные у них и нам не важно какая именно куртка будет на том или ином мужике.&lt;br /&gt;
Мы выбираем нужные нам визуалы для какой то группы НПС ''(из gamedata/meshes/actors)'' даём  визуалам любое '''одинаковое''' имя, после имени ставим знак подчёркивания и цифру или число. Пример:&lt;br /&gt;
 &amp;lt;pre&amp;gt; name_1.ogf&lt;br /&gt;
 name_2.ogf&lt;br /&gt;
 mame_24.ogf&amp;lt;/pre&amp;gt; &lt;br /&gt;
Затем в нужных профилях НПС в тегах ''&amp;lt;visual&amp;gt; &amp;lt;/visual&amp;gt;'' пишем имя которое задавали нашим визуалам. В примере выше, имя визуалов было ''name'' , в этом случае теги заполняются примерно так: ''&amp;lt;visual&amp;gt;actors\novice\name&amp;lt;/visual&amp;gt;''.&lt;br /&gt;
Таким образом визуалы рандомно распределятся по каждому профилю.&lt;br /&gt;
&lt;br /&gt;
== Отработанный пример на деревне новичков. ==&lt;br /&gt;
&lt;br /&gt;
Находим профили новичков в файле '''gamedata/config/gameplay/character_desc_escape.xml''', (их профили были вынесены, в этом уроке выше). И мы, например, скачали 5 новых визуалов которые привяжем к новичкам. Нам бы пришлось каждый раз прописывать отдельный визуал в каждом профиле, но мы поступим по другому, для начала мы переименуем скаченные визуалы таким образом:&lt;br /&gt;
 &amp;lt;pre&amp;gt; esc_novichok_1.ogf&lt;br /&gt;
 esc_novichok_2.ogf&lt;br /&gt;
 esc_novichok_3.ogf&lt;br /&gt;
 esc_novichok_4.ogf&lt;br /&gt;
 esc_novichok_5.ogf&amp;lt;/pre&amp;gt;&lt;br /&gt;
Закидываем эти визуалы, например сюда: '''gamedata\meshes\actors\novice'''&lt;br /&gt;
Прописываем '''во всех профилях''' новичков визуал таким образом: ''&amp;lt;visual&amp;gt;actors\novice\esc_novichok&amp;lt;/visual&amp;gt;'' сохраняем, начинаем новую игру, приходим в деревню, видим наших новичков в новых визуалах.&lt;br /&gt;
&lt;br /&gt;
== Несколько слов ==&lt;br /&gt;
Возможно кто то создавал подобную статью, я не видел даже похожего, если что сильно не ругайте.&lt;br /&gt;
Таким образом возможно задавать несколько визуалов не только группе, но и одному НПС, факт в том что распределение визуалов рандомно и при начале новой игры  НПС скорее всего поменяют визуал. Это может пригодиться для сюжетных модов которые имеют разветвлённый сюжет и  рассчитаны не на одно прохождение, проходя такой мод второй раз с начала, игрок не только узнаёт альтернативную ветку развития сюжета но и встречает знакомых НПС в других визуалах, что усиливает ощущения альтернативности - фактически играет в новый мод.&lt;br /&gt;
Такое явление я проверял в ТЧ в других аддонах не гарантирую работу.&lt;br /&gt;
В будущем возможно проверю такой эффект на именах предметов, оружия и тд.&lt;br /&gt;
[[Категория:Конфигурационные файлы]]&lt;/div&gt;</summary>
		<author><name>89.28.85.74</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%B5%D1%81%D0%BD%D1%8B%D0%B9_%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1_%D1%80%D0%B0%D0%BD%D0%B4%D0%BE%D0%BC%D0%BD%D0%BE%D0%B9_%D0%BF%D1%80%D0%B8%D0%B2%D1%8F%D0%B7%D0%BA%D0%B8_%D0%B2%D0%B8%D0%B7%D1%83%D0%B0%D0%BB%D0%BE%D0%B2_%D0%BA_%D0%BF%D1%80%D0%BE%D1%84%D0%B8%D0%BB%D1%8F%D0%BC_%D0%9D%D0%9F%D0%A1</id>
		<title>Интересный способ рандомной привязки визуалов к профилям НПС</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%B5%D1%81%D0%BD%D1%8B%D0%B9_%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1_%D1%80%D0%B0%D0%BD%D0%B4%D0%BE%D0%BC%D0%BD%D0%BE%D0%B9_%D0%BF%D1%80%D0%B8%D0%B2%D1%8F%D0%B7%D0%BA%D0%B8_%D0%B2%D0%B8%D0%B7%D1%83%D0%B0%D0%BB%D0%BE%D0%B2_%D0%BA_%D0%BF%D1%80%D0%BE%D1%84%D0%B8%D0%BB%D1%8F%D0%BC_%D0%9D%D0%9F%D0%A1"/>
				<updated>2014-12-17T10:08:01Z</updated>
		
		<summary type="html">&lt;p&gt;89.28.85.74: /* Теория */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Теория ==&lt;br /&gt;
В этой заметке я расскажу о том, как назначить нескольким профилям неписей разные визуалы, которые рандомно распределяться для каждого профиля. &lt;br /&gt;
Для примера возьмём деревню новичков из ТЧ. Находим в файле '''gamedata/config/gameplay/character_desc_escape.xml''' профили новичков обитающих в деревне возле бункера Сидоровича:&amp;lt;xml&amp;gt;&amp;lt;!-- - - - - - - -         STALKER NOVICE         - - - - - - - --&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;specific_character id=&amp;quot;esc_stalker_novice_default1&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;GENERATE_NAME_stalker&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_2&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_stalker_novice_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_stalker_novice&amp;lt;/class&amp;gt;&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;140&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;12&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&amp;lt;money min=&amp;quot;200&amp;quot; max=&amp;quot;600&amp;quot; infinitive=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\newbie\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;-1&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_2&amp;lt;/visual&amp;gt;&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_bm16 \n&lt;br /&gt;
			ammo_12x70_buck \n&lt;br /&gt;
#include &amp;quot;gameplay\character_items.xml&amp;quot; \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
					&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_3.xml&amp;quot;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;		&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&lt;br /&gt;
&amp;lt;!-- - - - - - - -                  - - - - - - - --&amp;gt;&lt;br /&gt;
	&amp;lt;specific_character id=&amp;quot;esc_stalker_novice_default2&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;GENERATE_NAME_stalker&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_2&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_stalker_novice_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_stalker_novice&amp;lt;/class&amp;gt;&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;127&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;-8&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&amp;lt;money min=&amp;quot;200&amp;quot; max=&amp;quot;600&amp;quot; infinitive=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\newbie\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;-1&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_2&amp;lt;/visual&amp;gt;&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_pm \n&lt;br /&gt;
			ammo_9x18_fmj = 1 \n&lt;br /&gt;
			device_torch \n&lt;br /&gt;
#include &amp;quot;gameplay\character_items.xml&amp;quot; \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_3.xml&amp;quot;&lt;br /&gt;
			&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&lt;br /&gt;
&amp;lt;!-- - - - - - - -                  - - - - - - - --&amp;gt;&lt;br /&gt;
	&amp;lt;specific_character id=&amp;quot;esc_stalker_novice_default3&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;GENERATE_NAME_stalker&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_3&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_stalker_novice_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_stalker_novice&amp;lt;/class&amp;gt;&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;214&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;9&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&amp;lt;money min=&amp;quot;200&amp;quot; max=&amp;quot;600&amp;quot; infinitive=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;-1&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_3&amp;lt;/visual&amp;gt;&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_bm16 \n&lt;br /&gt;
			ammo_12x70_buck \n&lt;br /&gt;
#include &amp;quot;gameplay\character_items.xml&amp;quot; \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_3.xml&amp;quot;&lt;br /&gt;
					&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&lt;br /&gt;
&amp;lt;!-- - - - - - - -                  - - - - - - - --&amp;gt;&lt;br /&gt;
	&amp;lt;specific_character id=&amp;quot;esc_stalker_novice_default4&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;GENERATE_NAME_stalker&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_3&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_stalker_novice_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_stalker_novice&amp;lt;/class&amp;gt;&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;175&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;8&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&amp;lt;money min=&amp;quot;200&amp;quot; max=&amp;quot;600&amp;quot; infinitive=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_01\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;-1&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_3&amp;lt;/visual&amp;gt;&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_pm \n&lt;br /&gt;
			ammo_9x18_fmj = 1 \n&lt;br /&gt;
#include &amp;quot;gameplay\character_items.xml&amp;quot; \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_3.xml&amp;quot;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&lt;br /&gt;
&amp;lt;!-- - - - - - - -                  - - - - - - - --&amp;gt;&lt;br /&gt;
	&amp;lt;specific_character id=&amp;quot;esc_stalker_novice_default5&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;GENERATE_NAME_stalker&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_4&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_stalker_novice_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_stalker_novice&amp;lt;/class&amp;gt;&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;268&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;-10&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&amp;lt;money min=&amp;quot;200&amp;quot; max=&amp;quot;600&amp;quot; infinitive=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_02\newbie\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;-1&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_4&amp;lt;/visual&amp;gt;&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_bm16 \n&lt;br /&gt;
			ammo_12x70_buck \n&lt;br /&gt;
			device_torch \n&lt;br /&gt;
#include &amp;quot;gameplay\character_items.xml&amp;quot; \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_3.xml&amp;quot;&lt;br /&gt;
			&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&lt;br /&gt;
&amp;lt;!-- - - - - - - -                  - - - - - - - --&amp;gt;&lt;br /&gt;
	&amp;lt;specific_character id=&amp;quot;esc_stalker_novice_default6&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;GENERATE_NAME_stalker&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_4&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_stalker_novice_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_stalker_novice&amp;lt;/class&amp;gt;&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;133&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;6&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&amp;lt;money min=&amp;quot;200&amp;quot; max=&amp;quot;600&amp;quot; infinitive=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_02\newbie\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;-1&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_4&amp;lt;/visual&amp;gt;&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_bm16 \n&lt;br /&gt;
			ammo_12x70_buck \n		&lt;br /&gt;
#include &amp;quot;gameplay\character_items.xml&amp;quot;	\n&lt;br /&gt;
#include &amp;quot;gameplay\character_drugs.xml&amp;quot; \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_3.xml&amp;quot;&lt;br /&gt;
			&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&lt;br /&gt;
&amp;lt;!-- - - - - - - -                  - - - - - - - --&amp;gt;&lt;br /&gt;
	&amp;lt;specific_character id=&amp;quot;esc_stalker_novice_default9&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;GENERATE_NAME_stalker&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_5&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_stalker_novice_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_stalker_novice&amp;lt;/class&amp;gt;&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;224&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;18&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&amp;lt;money min=&amp;quot;200&amp;quot; max=&amp;quot;600&amp;quot; infinitive=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_02\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;-1&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_5&amp;lt;/visual&amp;gt;&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_pm \n&lt;br /&gt;
			ammo_9x18_fmj = 1 \n&lt;br /&gt;
#include &amp;quot;gameplay\character_items.xml&amp;quot; \n&lt;br /&gt;
#include &amp;quot;gameplay\character_drugs.xml&amp;quot; \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_3.xml&amp;quot;&lt;br /&gt;
			&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&lt;br /&gt;
&amp;lt;!-- - - - - - - -                  - - - - - - - --&amp;gt;&lt;br /&gt;
	&amp;lt;specific_character id=&amp;quot;esc_stalker_novice_default10&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;GENERATE_NAME_stalker&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_npc_u_green_stalker_5&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;bio&amp;gt;esc_stalker_novice_bio&amp;lt;/bio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;class&amp;gt;esc_stalker_novice&amp;lt;/class&amp;gt;&lt;br /&gt;
		&amp;lt;community&amp;gt;stalker&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;rank&amp;gt;58&amp;lt;/rank&amp;gt;&lt;br /&gt;
		&amp;lt;reputation&amp;gt;-2&amp;lt;/reputation&amp;gt;&lt;br /&gt;
		&amp;lt;money min=&amp;quot;200&amp;quot; max=&amp;quot;600&amp;quot; infinitive=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;snd_config&amp;gt;characters_voice\human_02\stalker\&amp;lt;/snd_config&amp;gt;&lt;br /&gt;
		&amp;lt;crouch_type&amp;gt;-1&amp;lt;/crouch_type&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
		&amp;lt;visual&amp;gt;actors\novice\green_stalker_5&amp;lt;/visual&amp;gt;&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			wpn_pm \n&lt;br /&gt;
			ammo_9x18_fmj = 1 \n&lt;br /&gt;
			device_torch \n&lt;br /&gt;
#include &amp;quot;gameplay\character_items.xml&amp;quot; \n&lt;br /&gt;
#include &amp;quot;gameplay\character_drugs.xml&amp;quot; \n&lt;br /&gt;
#include &amp;quot;gameplay\character_food.xml&amp;quot;&lt;br /&gt;
		&amp;lt;/supplies&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
#include &amp;quot;gameplay\character_criticals_3.xml&amp;quot;&lt;br /&gt;
			&lt;br /&gt;
		&amp;lt;start_dialog&amp;gt;hello_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;
#include &amp;quot;gameplay\character_dialogs.xml&amp;quot;&lt;br /&gt;
	&amp;lt;/specific_character&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Нас интересуют теги ''&amp;lt;visual&amp;gt;     &amp;lt;/visual&amp;gt;'' - в них указывается название профиля. Как видно из представленных выше профилей, каждому отдельному профилю строго присвоен свой визуал. Всегда ли уместна такая точность?&lt;br /&gt;
У нас есть группа профилей НПС и несколько визуалов подходящих этой группе профилей, можно предположить, что не важно какому именно НПС присвоеться определённый визуал. Проще говоря, в игре, все новички в деревне одинаковые, только куртки разные у них и нам не важно какая именно куртка будет на том или ином мужике.&lt;br /&gt;
Мы выбираем нужные нам визуалы для какой то группы НПС ''(из gamedata/meshes/actors)'' даём  визуалам любое '''одинаковое''' имя, после имени ставим знак подчёркивания и цифру или число. Пример:&lt;br /&gt;
 &amp;lt;pre&amp;gt; name_1.ogf&lt;br /&gt;
 name_2.ogf&lt;br /&gt;
 mame_24.ogf&amp;lt;/pre&amp;gt; &lt;br /&gt;
Затем в нужных профилях НПС в тегах ''&amp;lt;visual&amp;gt; &amp;lt;/visual&amp;gt;'' пишем имя которое задавали нашим визуалам. В примере выше, имя визуалов было ''name'' , в этом случае теги заполняются примерно так: ''&amp;lt;visual&amp;gt;actors\novice\name&amp;lt;/visual&amp;gt;''.&lt;br /&gt;
Таким образом визуалы рандомно распределятся по каждому профилю.&lt;br /&gt;
&lt;br /&gt;
== Отработанный пример на деревне новичков. ==&lt;br /&gt;
&lt;br /&gt;
Находим профили новичков в файле '''gamedata/config/gameplay/character_desc_escape.ltx''', (их профили были вынесены, в этом уроке выше). И мы, например, скачали 5 новых визуалов которые привяжем к новичкам. Нам бы пришлось каждый раз прописывать отдельный визуал в каждом профиле, но мы поступим по другому, для начала мы переименуем скаченные визуалы таким образом:&lt;br /&gt;
 &amp;lt;pre&amp;gt; esc_novichok_1.ogf&lt;br /&gt;
 esc_novichok_2.ogf&lt;br /&gt;
 esc_novichok_3.ogf&lt;br /&gt;
 esc_novichok_4.ogf&lt;br /&gt;
 esc_novichok_5.ogf&amp;lt;/pre&amp;gt;&lt;br /&gt;
Закидываем эти визуалы, например сюда: '''gamedata\meshes\actors\novice'''&lt;br /&gt;
Прописываем '''во всех профилях''' новичков визуал таким образом: ''&amp;lt;visual&amp;gt;actors\novice\esc_novichok&amp;lt;/visual&amp;gt;'' сохраняем, начинаем новую игру, приходим в деревню, видим наших новичков в новых визуалах.&lt;br /&gt;
== Несколько слов ==&lt;br /&gt;
Возможно кто то создавал подобную статью, я не видел даже похожего, если что сильно не ругайте.&lt;br /&gt;
Таким образом возможно задавать несколько визуалов не только группе, но и одному НПС, факт в том что распределение визуалов рандомно и при начале новой игры  НПС скорее всего поменяют визуал. Это может пригодиться для сюжетных модов которые имеют разветвлённый сюжет и  рассчитаны не на одно прохождение, проходя такой мод второй раз с начала, игрок не только узнаёт альтернативную ветку развития сюжета но и встречает знакомых НПС в других визуалах, что усиливает ощущения альтернативности - фактически играет в новый мод.&lt;br /&gt;
Такое явление я проверял в ТЧ в других аддонах не гарантирую работу.&lt;br /&gt;
В будущем возможно проверю такой эффект на именах предметов, оружия и тд.&lt;br /&gt;
[[Категория:Конфигурационные файлы]]&lt;/div&gt;</summary>
		<author><name>89.28.85.74</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D1%80%D0%B5%D0%BC%D0%BE%D0%BD%D1%82_%D0%BA%D0%BE%D0%BC%D0%BF%D0%BB%D0%B5%D0%BA%D1%82%D0%BE%D0%B2</id>
		<title>SoC. Создание ремонт комплектов</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D1%80%D0%B5%D0%BC%D0%BE%D0%BD%D1%82_%D0%BA%D0%BE%D0%BC%D0%BF%D0%BB%D0%B5%D0%BA%D1%82%D0%BE%D0%B2"/>
				<updated>2014-12-10T23:06:51Z</updated>
		
		<summary type="html">&lt;p&gt;89.28.85.74: /* Небольшая заметка */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Создание ремонт комплекта===&lt;br /&gt;
Я опишу пример создания ремонт комплекта для костюмов, а для оружия в конце статьи сделаю пару заметок. Дело в том, что различия в создании ремонт комплектов почти нет.&lt;br /&gt;
 &lt;br /&gt;
1. Для начала нам нужно создать сам ремонт комплект, то есть предмет, а уже потом вешать на него функцию при использование. Для этого в config\misc\items.ltx в конец добавляем конфиг нашего предмета:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;ini&amp;gt;[repair_kit_outfit]:identity_immunities&lt;br /&gt;
GroupControlSection	= spawn_group&lt;br /&gt;
discovery_dependency    =&lt;br /&gt;
$spawn 			= &amp;quot;food and drugs\repair kit outfit&amp;quot;&lt;br /&gt;
$prefetch 		= 32&lt;br /&gt;
class			= II_ANTIR ;класс не трогаем!&lt;br /&gt;
cform                   = skeleton&lt;br /&gt;
visual                  = equipments\item_merger.ogf ;модель&lt;br /&gt;
description		= enc_equipment_repair_kit_outfit ;ссылка на описание в config\text\rus\....xml&lt;br /&gt;
&lt;br /&gt;
inv_name		= repair_kit_outfit_name ;ссылка на название в config\text\rus\....xml&lt;br /&gt;
inv_name_short		= repair_kit_outfit_name ;тоже самое, что и inv_name&lt;br /&gt;
inv_weight		= 6.0 ;вес&lt;br /&gt;
&lt;br /&gt;
inv_grid_width		= 2 ;ширина иконки&lt;br /&gt;
inv_grid_height		= 1 ;высота иконки&lt;br /&gt;
inv_grid_x		= 8 ;координата x иконки&lt;br /&gt;
inv_grid_y		= 18 ;координата y иконки&lt;br /&gt;
cost			= 10000 ;цена&lt;br /&gt;
;всё ниже написанное не трогаем, оно нам и не нужно&lt;br /&gt;
eat_health = 0&lt;br /&gt;
eat_satiety = 0&lt;br /&gt;
eat_power = 0&lt;br /&gt;
eat_radiation = 0&lt;br /&gt;
wounds_heal_perc = 0&lt;br /&gt;
eat_portions_num = 1&lt;br /&gt;
animation_slot = 4&lt;br /&gt;
hud = wpn_vodka_hud&amp;lt;/ini&amp;gt;&lt;br /&gt;
2. Теперь добавим название и описание. Для этого в файле config\text\rus\string_table_enc_equipment.xml в конец между &amp;lt;/string&amp;gt; и &amp;lt;/string_table&amp;gt; добавляем строки по аналогии с уже написсанными: &lt;br /&gt;
       &amp;lt;xml&amp;gt;&amp;lt;string id=&amp;quot;repair_kit_outfit_name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;text&amp;gt;Ремонт комплект ДПК&amp;lt;/text&amp;gt;&lt;br /&gt;
    &amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string id=&amp;quot;enc_equipment_repair_kit_outfit&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;text&amp;gt;Новинка от Вани Болта - ремонт комплект ДПК для быстрой и эффективной починки костюмов. При его создании были учтены все недочёты и, следовательно, удалены. Благодаря улучшенным инструментам и деталям, а также облегченному весу весьма ценен. С его помощью можно увеличить состояние костюма до 100%, если он повреждён не больше 30%. Незаменимая вещь во время вылазки.&amp;lt;/text&amp;gt;&lt;br /&gt;
    &amp;lt;/string&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
Отлично, с предметом закончили. Теперь приступим к самому главному - скриптам. &lt;br /&gt;
===Работа со скриптами===&lt;br /&gt;
1.Вешаем функцию починки при использовании нашего ремонт комплекта. &lt;br /&gt;
Для этого в файле '''scripts\bind_stalker.script''' &lt;br /&gt;
находим функцию:&lt;br /&gt;
&lt;br /&gt;
''function actor_binder:net_destroy()'' и после строки &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;self.object:set_callback(callback.take_item_from_box, nil)&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
пишем: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;self.object:set_callback(callback.use_object, nil)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И теперь находим функцию&lt;br /&gt;
&lt;br /&gt;
''function actor_binder:reinit()'' и после строки &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;self.object:set_callback(callback.take_item_from_box, self.take_item_from_box, self)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
пишем: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;self.object:set_callback(callback.use_object, self.repair_outfit_start, self)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь в папке '''scripts''' создаёте свой скриптовый файл '''ваше_название_скрипта.script'''. Но! Название должно быть написано на английском языке и вместо пробелов должен стоять знак &amp;quot;_&amp;quot;. Опять открываем '''bind_stalker.script''' и в самый конец добавляем эту функцию: &lt;br /&gt;
&amp;lt;lua&amp;gt;function actor_binder:repair_outfit_start(obj, who)&lt;br /&gt;
    if obj then &lt;br /&gt;
        if obj:section() == &amp;quot;repair_kit_outfit&amp;quot; then --здесь указываем предмет, при использование которого будет срабатывать функция ниже&lt;br /&gt;
        ваше_название_скрипта.repair_outfit() --здесь указываем ссылку на функцию. Сначала скрипт, в котором она написана, потом название самой функции&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
end&amp;lt;/lua&amp;gt;&lt;br /&gt;
2. Добавляем саму функцию ремонта. &lt;br /&gt;
Для этого в файле '''ваше_название_скрипта.script''' пишем: &lt;br /&gt;
&amp;lt;lua&amp;gt; -- Ремонт комплект для костюмов&lt;br /&gt;
function repair_outfit()&lt;br /&gt;
local item_s6 = db.actor:item_in_slot(6) --объявляем переменную (item_s6)&lt;br /&gt;
    if item_s6 ~= nil and item_s6:condition() &amp;gt;=0.30 and item_s6:condition() ~=1 then --когда костюм можно чинить (состояние больше или равно 30%)&lt;br /&gt;
        item_s6:set_condition(1)&lt;br /&gt;
        local snd_obj = xr_sound.get_safe_sound_object([[interface\inv_detach_addon]])&lt;br /&gt;
        snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0)&lt;br /&gt;
        local news_text = &amp;quot;%c[255,160,160,160]Ремонт комплект:\\n%c[255,0,255,0]Ремонт костюма завершен.&amp;quot;&lt;br /&gt;
        db.actor:give_game_news(news_text, &amp;quot;ui\\ui_iconsTotal&amp;quot;, Frect():set(83,470,83,47), 1000, 5000)&lt;br /&gt;
    elseif item_s6 == nil then --когда костюма нет &lt;br /&gt;
        local news_text = &amp;quot;%c[255,160,160,160]Ремонт комплект:\\n%c[255,255,0,0]Ремонт невозможен: нужно одеть коcтюм.&amp;quot;&lt;br /&gt;
        db.actor:give_game_news(news_text, &amp;quot;ui\\ui_iconsTotal&amp;quot;, Frect():set(83,470,83,47), 1000, 5000)&lt;br /&gt;
        alife():create(&amp;quot;repair_kit_outfit&amp;quot;, db.actor:position(), 1, db.actor:game_vertex_id(), db.actor:id())&lt;br /&gt;
    elseif item_s6:condition() &amp;lt;0.30 then --когда костюм нельзя чинить (состояние меньше 30%)&lt;br /&gt;
        local news_text = &amp;quot;%c[255,160,160,160]Ремонт комплект:\\n%c[255,255,0,0]Ремонт невозможен: костюм слишком сильно повреждён.&amp;quot;&lt;br /&gt;
        db.actor:give_game_news(news_text, &amp;quot;ui\\ui_iconsTotal&amp;quot;, Frect():set(83,470,83,47), 1000, 5000)&lt;br /&gt;
        alife():create(&amp;quot;repair_kit_outfit&amp;quot;, db.actor:position(), 1, db.actor:game_vertex_id(), db.actor:id())&lt;br /&gt;
    elseif item_s6:condition() ==1 then --когда костюм в отличном состояние&lt;br /&gt;
        local news_text = &amp;quot;%c[255,160,160,160]Ремонт комплект:\\n%c[255,255,0,0]Ремонт невозможен: %c[255,0,255,0]костюм в отличном состояние.&amp;quot;&lt;br /&gt;
        db.actor:give_game_news(news_text, &amp;quot;ui\\ui_iconsTotal&amp;quot;, Frect():set(83,470,83,47), 1000, 5000)&lt;br /&gt;
        alife():create(&amp;quot;repair_kit_outfit&amp;quot;, db.actor:position(), 1, db.actor:game_vertex_id(), db.actor:id())&lt;br /&gt;
    end&lt;br /&gt;
end&amp;lt;/lua&amp;gt;&lt;br /&gt;
Всё! Теперь заходим в игру и наслаждаемся.&lt;br /&gt;
&lt;br /&gt;
===Небольшая заметка===&lt;br /&gt;
1. Чтобы сделать ремонт комплект для оружия проделываем тоже самое, только переименовываем всё вместо outfit на weapon и в функции починки ставим слот 1 или 2 (оружейные слота) вместо 6 (слот костюмов).&lt;br /&gt;
Ещё нужно заменить переменную item_s6 например на item_s1 или item_s2.&lt;br /&gt;
&lt;br /&gt;
2. Число 0.30 - минимальное состояние костюма, следовательно его можно менять на любое вам угодное.&lt;br /&gt;
Простите за такое оформление, это моя вторая статья. В будущем, если будет больше свободного времени, постараюсь расписать все моменты подробно. Автор статьи: Бага.&lt;br /&gt;
&lt;br /&gt;
Данный метод создания ремонт комплектов не работает! (проверено)&lt;br /&gt;
ЗЫ: StalkerNew2012 этот скрипт подправил теперь всё работает :)&lt;br /&gt;
Ремонтный комплект без лишних сообщений просто съедается!:( Удваиваю товарища, у которого ремкомплект просто съелся, не сработав.&lt;br /&gt;
&lt;br /&gt;
3.Ремонт оружия и брони:&lt;br /&gt;
{| class=&amp;quot;collapsible collapsed&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--     bind_stalker.script&lt;br /&gt;
function actor_binder:repair_outfit_start(obj, who)&lt;br /&gt;
    if obj then &lt;br /&gt;
        if obj:section() == &amp;quot;repair_kit_outfit&amp;quot; then&lt;br /&gt;
                remkomplekt.action_repair() &lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--     remkomplekt.script&lt;br /&gt;
function action_repair()&lt;br /&gt;
	-- эмулируем возврат ремкомплекта в инвентарь&lt;br /&gt;
	alife():create(&amp;quot;repair_kit_outfit&amp;quot;, vector(),0,0,0)&lt;br /&gt;
&lt;br /&gt;
	-- нет ли рядом врагов и монстров&lt;br /&gt;
	local apos = db.actor:position()&lt;br /&gt;
	for obj_id,_ in pairs (db.storage)do&lt;br /&gt;
		local obj = level.object_by_id(obj_id)&lt;br /&gt;
		if obj and (IsStalker(obj) or IsMonster(obj)) and obj:alive() &lt;br /&gt;
		and obj:relation(db.actor) == game_object.enemy and obj:position():distance_to(apos)&amp;lt;30 then&lt;br /&gt;
			send_tip(&amp;quot;Нельзя чинить костюм, когда враги слишком близко.&amp;quot;)&lt;br /&gt;
			return&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- пробуем чинить предмет в &lt;br /&gt;
	repair_item_in_slot(1) -- первом&lt;br /&gt;
	repair_item_in_slot(2) -- втором&lt;br /&gt;
	repair_item_in_slot(6) -- шестом слоте&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function repair_item_in_slot(num)&lt;br /&gt;
	local item = db.actor:item_in_slot(num)&lt;br /&gt;
	if item then&lt;br /&gt;
		local cond = item:condition()&lt;br /&gt;
		if cond &amp;lt; 0.3 then&lt;br /&gt;
			send_tip(&amp;quot;%c[255,255,0,0]Ремонт невозможен: предмет в слоте &amp;quot;..num.. &amp;quot; сильно повреждён.&amp;quot;)&lt;br /&gt;
		elseif cond &amp;gt; 0.95 then&lt;br /&gt;
			send_tip(&amp;quot;%c[255,255,0,0]Ремонт невозможен: %c[255,0,255,0]предмет в слоте &amp;quot;..num.. &amp;quot; в отличном состоянии.&amp;quot;)&lt;br /&gt;
		else&lt;br /&gt;
			item:set_condition(1)&lt;br /&gt;
			send_tip(&amp;quot;%c[255,0,255,0]Ремонт предмета в слоте &amp;quot;..num.. &amp;quot; завершен.&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		send_tip(&amp;quot;%c[255,255,0,0]В слоте &amp;quot;..num..&amp;quot; нет предмета для починки.&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function send_tip(news_text)&lt;br /&gt;
	db.actor:give_game_news(news_text, &amp;quot;ui\\ui_iconsTotal&amp;quot;, Frect():set(83,470,83,47), 1000, 5000)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
4. Для многоразового использования ремкомплекта можно не доспавнивать новый предмет при съедании, а в его конфиге указать для параметра '''eat_portions_num''' большое число.&lt;br /&gt;
&amp;lt;lua&amp;gt;eat_portions_num = 100500&amp;lt;/lua&amp;gt;&lt;br /&gt;
[[Категория:Скрипты]]&lt;/div&gt;</summary>
		<author><name>89.28.85.74</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D1%80%D0%B5%D0%BC%D0%BE%D0%BD%D1%82_%D0%BA%D0%BE%D0%BC%D0%BF%D0%BB%D0%B5%D0%BA%D1%82%D0%BE%D0%B2</id>
		<title>SoC. Создание ремонт комплектов</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D1%80%D0%B5%D0%BC%D0%BE%D0%BD%D1%82_%D0%BA%D0%BE%D0%BC%D0%BF%D0%BB%D0%B5%D0%BA%D1%82%D0%BE%D0%B2"/>
				<updated>2014-12-10T23:05:36Z</updated>
		
		<summary type="html">&lt;p&gt;89.28.85.74: /* Небольшая заметка */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Создание ремонт комплекта===&lt;br /&gt;
Я опишу пример создания ремонт комплекта для костюмов, а для оружия в конце статьи сделаю пару заметок. Дело в том, что различия в создании ремонт комплектов почти нет.&lt;br /&gt;
 &lt;br /&gt;
1. Для начала нам нужно создать сам ремонт комплект, то есть предмет, а уже потом вешать на него функцию при использование. Для этого в config\misc\items.ltx в конец добавляем конфиг нашего предмета:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;ini&amp;gt;[repair_kit_outfit]:identity_immunities&lt;br /&gt;
GroupControlSection	= spawn_group&lt;br /&gt;
discovery_dependency    =&lt;br /&gt;
$spawn 			= &amp;quot;food and drugs\repair kit outfit&amp;quot;&lt;br /&gt;
$prefetch 		= 32&lt;br /&gt;
class			= II_ANTIR ;класс не трогаем!&lt;br /&gt;
cform                   = skeleton&lt;br /&gt;
visual                  = equipments\item_merger.ogf ;модель&lt;br /&gt;
description		= enc_equipment_repair_kit_outfit ;ссылка на описание в config\text\rus\....xml&lt;br /&gt;
&lt;br /&gt;
inv_name		= repair_kit_outfit_name ;ссылка на название в config\text\rus\....xml&lt;br /&gt;
inv_name_short		= repair_kit_outfit_name ;тоже самое, что и inv_name&lt;br /&gt;
inv_weight		= 6.0 ;вес&lt;br /&gt;
&lt;br /&gt;
inv_grid_width		= 2 ;ширина иконки&lt;br /&gt;
inv_grid_height		= 1 ;высота иконки&lt;br /&gt;
inv_grid_x		= 8 ;координата x иконки&lt;br /&gt;
inv_grid_y		= 18 ;координата y иконки&lt;br /&gt;
cost			= 10000 ;цена&lt;br /&gt;
;всё ниже написанное не трогаем, оно нам и не нужно&lt;br /&gt;
eat_health = 0&lt;br /&gt;
eat_satiety = 0&lt;br /&gt;
eat_power = 0&lt;br /&gt;
eat_radiation = 0&lt;br /&gt;
wounds_heal_perc = 0&lt;br /&gt;
eat_portions_num = 1&lt;br /&gt;
animation_slot = 4&lt;br /&gt;
hud = wpn_vodka_hud&amp;lt;/ini&amp;gt;&lt;br /&gt;
2. Теперь добавим название и описание. Для этого в файле config\text\rus\string_table_enc_equipment.xml в конец между &amp;lt;/string&amp;gt; и &amp;lt;/string_table&amp;gt; добавляем строки по аналогии с уже написсанными: &lt;br /&gt;
       &amp;lt;xml&amp;gt;&amp;lt;string id=&amp;quot;repair_kit_outfit_name&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;text&amp;gt;Ремонт комплект ДПК&amp;lt;/text&amp;gt;&lt;br /&gt;
    &amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string id=&amp;quot;enc_equipment_repair_kit_outfit&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;text&amp;gt;Новинка от Вани Болта - ремонт комплект ДПК для быстрой и эффективной починки костюмов. При его создании были учтены все недочёты и, следовательно, удалены. Благодаря улучшенным инструментам и деталям, а также облегченному весу весьма ценен. С его помощью можно увеличить состояние костюма до 100%, если он повреждён не больше 30%. Незаменимая вещь во время вылазки.&amp;lt;/text&amp;gt;&lt;br /&gt;
    &amp;lt;/string&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
Отлично, с предметом закончили. Теперь приступим к самому главному - скриптам. &lt;br /&gt;
===Работа со скриптами===&lt;br /&gt;
1.Вешаем функцию починки при использовании нашего ремонт комплекта. &lt;br /&gt;
Для этого в файле '''scripts\bind_stalker.script''' &lt;br /&gt;
находим функцию:&lt;br /&gt;
&lt;br /&gt;
''function actor_binder:net_destroy()'' и после строки &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;self.object:set_callback(callback.take_item_from_box, nil)&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
пишем: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;self.object:set_callback(callback.use_object, nil)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И теперь находим функцию&lt;br /&gt;
&lt;br /&gt;
''function actor_binder:reinit()'' и после строки &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;self.object:set_callback(callback.take_item_from_box, self.take_item_from_box, self)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
пишем: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;self.object:set_callback(callback.use_object, self.repair_outfit_start, self)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь в папке '''scripts''' создаёте свой скриптовый файл '''ваше_название_скрипта.script'''. Но! Название должно быть написано на английском языке и вместо пробелов должен стоять знак &amp;quot;_&amp;quot;. Опять открываем '''bind_stalker.script''' и в самый конец добавляем эту функцию: &lt;br /&gt;
&amp;lt;lua&amp;gt;function actor_binder:repair_outfit_start(obj, who)&lt;br /&gt;
    if obj then &lt;br /&gt;
        if obj:section() == &amp;quot;repair_kit_outfit&amp;quot; then --здесь указываем предмет, при использование которого будет срабатывать функция ниже&lt;br /&gt;
        ваше_название_скрипта.repair_outfit() --здесь указываем ссылку на функцию. Сначала скрипт, в котором она написана, потом название самой функции&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
end&amp;lt;/lua&amp;gt;&lt;br /&gt;
2. Добавляем саму функцию ремонта. &lt;br /&gt;
Для этого в файле '''ваше_название_скрипта.script''' пишем: &lt;br /&gt;
&amp;lt;lua&amp;gt; -- Ремонт комплект для костюмов&lt;br /&gt;
function repair_outfit()&lt;br /&gt;
local item_s6 = db.actor:item_in_slot(6) --объявляем переменную (item_s6)&lt;br /&gt;
    if item_s6 ~= nil and item_s6:condition() &amp;gt;=0.30 and item_s6:condition() ~=1 then --когда костюм можно чинить (состояние больше или равно 30%)&lt;br /&gt;
        item_s6:set_condition(1)&lt;br /&gt;
        local snd_obj = xr_sound.get_safe_sound_object([[interface\inv_detach_addon]])&lt;br /&gt;
        snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0)&lt;br /&gt;
        local news_text = &amp;quot;%c[255,160,160,160]Ремонт комплект:\\n%c[255,0,255,0]Ремонт костюма завершен.&amp;quot;&lt;br /&gt;
        db.actor:give_game_news(news_text, &amp;quot;ui\\ui_iconsTotal&amp;quot;, Frect():set(83,470,83,47), 1000, 5000)&lt;br /&gt;
    elseif item_s6 == nil then --когда костюма нет &lt;br /&gt;
        local news_text = &amp;quot;%c[255,160,160,160]Ремонт комплект:\\n%c[255,255,0,0]Ремонт невозможен: нужно одеть коcтюм.&amp;quot;&lt;br /&gt;
        db.actor:give_game_news(news_text, &amp;quot;ui\\ui_iconsTotal&amp;quot;, Frect():set(83,470,83,47), 1000, 5000)&lt;br /&gt;
        alife():create(&amp;quot;repair_kit_outfit&amp;quot;, db.actor:position(), 1, db.actor:game_vertex_id(), db.actor:id())&lt;br /&gt;
    elseif item_s6:condition() &amp;lt;0.30 then --когда костюм нельзя чинить (состояние меньше 30%)&lt;br /&gt;
        local news_text = &amp;quot;%c[255,160,160,160]Ремонт комплект:\\n%c[255,255,0,0]Ремонт невозможен: костюм слишком сильно повреждён.&amp;quot;&lt;br /&gt;
        db.actor:give_game_news(news_text, &amp;quot;ui\\ui_iconsTotal&amp;quot;, Frect():set(83,470,83,47), 1000, 5000)&lt;br /&gt;
        alife():create(&amp;quot;repair_kit_outfit&amp;quot;, db.actor:position(), 1, db.actor:game_vertex_id(), db.actor:id())&lt;br /&gt;
    elseif item_s6:condition() ==1 then --когда костюм в отличном состояние&lt;br /&gt;
        local news_text = &amp;quot;%c[255,160,160,160]Ремонт комплект:\\n%c[255,255,0,0]Ремонт невозможен: %c[255,0,255,0]костюм в отличном состояние.&amp;quot;&lt;br /&gt;
        db.actor:give_game_news(news_text, &amp;quot;ui\\ui_iconsTotal&amp;quot;, Frect():set(83,470,83,47), 1000, 5000)&lt;br /&gt;
        alife():create(&amp;quot;repair_kit_outfit&amp;quot;, db.actor:position(), 1, db.actor:game_vertex_id(), db.actor:id())&lt;br /&gt;
    end&lt;br /&gt;
end&amp;lt;/lua&amp;gt;&lt;br /&gt;
Всё! Теперь заходим в игру и наслаждаемся.&lt;br /&gt;
&lt;br /&gt;
===Небольшая заметка===&lt;br /&gt;
1. Чтобы сделать ремонт комплект для оружия проделываем тоже самое, только переименовываем всё вместо outfit на weapon и в функции починки ставим слот 1 или 2 (оружейные слота) вместо 6 (слот костюмов).&lt;br /&gt;
Ещё нужно заменить переменную item_s6 например на item_s1 или item_s2.&lt;br /&gt;
&lt;br /&gt;
2. Число 0.30 - минимальное состояние костюма, следовательно его можно менять на любое вам угодное.&lt;br /&gt;
Простите за такое оформление, это моя вторая статья. В будущем, если будет больше свободного времени, постараюсь расписать все моменты подробно. Автор статьи: Бага.&lt;br /&gt;
&lt;br /&gt;
Данный метод создания ремонт комплектов не работает! (проверено)&lt;br /&gt;
ЗЫ: StalkerNew2012 этот скрипт подправил теперь всё работает :)&lt;br /&gt;
Ремонтный комплект без лишних сообщений просто съедается!:( Удваиваю товарища, у которого ремкомплект просто съелся, не сработав.&lt;br /&gt;
3.Ремонт оружия и брони:&lt;br /&gt;
{| class=&amp;quot;collapsible collapsed&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;code lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--     bind_stalker.script&lt;br /&gt;
function actor_binder:repair_outfit_start(obj, who)&lt;br /&gt;
    if obj then &lt;br /&gt;
        if obj:section() == &amp;quot;repair_kit_outfit&amp;quot; then&lt;br /&gt;
                remkomplekt.action_repair() &lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--     remkomplekt.script&lt;br /&gt;
function action_repair()&lt;br /&gt;
	-- эмулируем возврат ремкомплекта в инвентарь&lt;br /&gt;
	alife():create(&amp;quot;repair_kit_outfit&amp;quot;, vector(),0,0,0)&lt;br /&gt;
&lt;br /&gt;
	-- нет ли рядом врагов и монстров&lt;br /&gt;
	local apos = db.actor:position()&lt;br /&gt;
	for obj_id,_ in pairs (db.storage)do&lt;br /&gt;
		local obj = level.object_by_id(obj_id)&lt;br /&gt;
		if obj and (IsStalker(obj) or IsMonster(obj)) and obj:alive() &lt;br /&gt;
		and obj:relation(db.actor) == game_object.enemy and obj:position():distance_to(apos)&amp;lt;30 then&lt;br /&gt;
			send_tip(&amp;quot;Нельзя чинить костюм, когда враги слишком близко.&amp;quot;)&lt;br /&gt;
			return&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- пробуем чинить предмет в &lt;br /&gt;
	repair_item_in_slot(1) -- первом&lt;br /&gt;
	repair_item_in_slot(2) -- втором&lt;br /&gt;
	repair_item_in_slot(6) -- шестом слоте&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function repair_item_in_slot(num)&lt;br /&gt;
	local item = db.actor:item_in_slot(num)&lt;br /&gt;
	if item then&lt;br /&gt;
		local cond = item:condition()&lt;br /&gt;
		if cond &amp;lt; 0.3 then&lt;br /&gt;
			send_tip(&amp;quot;%c[255,255,0,0]Ремонт невозможен: предмет в слоте &amp;quot;..num.. &amp;quot; сильно повреждён.&amp;quot;)&lt;br /&gt;
		elseif cond &amp;gt; 0.95 then&lt;br /&gt;
			send_tip(&amp;quot;%c[255,255,0,0]Ремонт невозможен: %c[255,0,255,0]предмет в слоте &amp;quot;..num.. &amp;quot; в отличном состоянии.&amp;quot;)&lt;br /&gt;
		else&lt;br /&gt;
			item:set_condition(1)&lt;br /&gt;
			send_tip(&amp;quot;%c[255,0,255,0]Ремонт предмета в слоте &amp;quot;..num.. &amp;quot; завершен.&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		send_tip(&amp;quot;%c[255,255,0,0]В слоте &amp;quot;..num..&amp;quot; нет предмета для починки.&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function send_tip(news_text)&lt;br /&gt;
	db.actor:give_game_news(news_text, &amp;quot;ui\\ui_iconsTotal&amp;quot;, Frect():set(83,470,83,47), 1000, 5000)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
4. Для многоразового использования ремкомплекта можно не доспавнивать новый предмет при съедании, а в его конфиге указать для параметра '''eat_portions_num''' большое число.&lt;br /&gt;
&amp;lt;lua&amp;gt;eat_portions_num = 100500&amp;lt;/lua&amp;gt;&lt;br /&gt;
[[Категория:Скрипты]]&lt;/div&gt;</summary>
		<author><name>89.28.85.74</name></author>	</entry>

	<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_WayPoint</id>
		<title>Создание WayPoint</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_WayPoint"/>
				<updated>2013-10-09T13:26:41Z</updated>
		
		<summary type="html">&lt;p&gt;89.28.85.74: /* Дополнение от Re]Spawner */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Создадим вейппоинт.&lt;br /&gt;
Не буду говорить все точно, скажу для новичков :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Что такое вейпоинт ==&lt;br /&gt;
WayPoint(он же вейпоинт, ВП,WP) - путь передвижения для отдельного сталкера, состоит из точек путей.&lt;br /&gt;
Чтобы создать ВП, нужно расстыковать all.spawn(не буду описывать, как это делать).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создаем вейпоинт, с одной точкой ==&lt;br /&gt;
Открываете way_название локации и прописываете текст, подобный этому: &lt;br /&gt;
&lt;br /&gt;
 [name_weypoint]&lt;br /&gt;
 points = p0&lt;br /&gt;
 p0:name = wp00&lt;br /&gt;
 p0:position = 185.667572021484,-0.436268001794815,-260.062866210938&lt;br /&gt;
 p0:game_vertex_id = 696&lt;br /&gt;
 p0:level_vertex_id = 415469&lt;br /&gt;
&lt;br /&gt;
А теперь, подробнее&lt;br /&gt;
 [name_weypoint] - название пути&lt;br /&gt;
 points = p0 - список точек пути, через запятую (например points = p0,p1,p2 и т.д.)&lt;br /&gt;
 po:name = wp00 название первой точки пути.&lt;br /&gt;
 p0:position - позиции точки пути.&lt;br /&gt;
 p0:game_vertix_id - вертиксы локации&lt;br /&gt;
 p0:level_vertex_id&lt;br /&gt;
&lt;br /&gt;
== Вейпоинт с несколькими точками ==&lt;br /&gt;
 &lt;br /&gt;
[name_wp]&lt;br /&gt;
 points = p0,p1,p2,p3&lt;br /&gt;
 p0:name = wp00&lt;br /&gt;
 p0:flags = 0x1&lt;br /&gt;
 p0:position = 163.527374267578,-0.432826995849609,-266.167022705078&lt;br /&gt;
 p0:game_vertex_id = 854&lt;br /&gt;
 p0:level_vertex_id = 392698&lt;br /&gt;
 p0:links = p1(1),p3(1)&lt;br /&gt;
&lt;br /&gt;
 p1:name = wp01&lt;br /&gt;
 p1:flags = 0x2&lt;br /&gt;
 p1:position = 176.939651489258,-0.50609302520752,-264.630889892578&lt;br /&gt;
 p1:game_vertex_id = 696&lt;br /&gt;
 p1:level_vertex_id = 406938&lt;br /&gt;
 p1:links = p2(1)&lt;br /&gt;
&lt;br /&gt;
 p2:name = wp02&lt;br /&gt;
 p2:flags = 0x2&lt;br /&gt;
 p2:position = 179.156524658203,-0.430828988552094,-266.572570800781&lt;br /&gt;
 p2:game_vertex_id = 696&lt;br /&gt;
 p2:level_vertex_id = 409212&lt;br /&gt;
&lt;br /&gt;
 p3:name = wp03&lt;br /&gt;
 p3:flags = 0x1&lt;br /&gt;
 p3:position = 161.710388183594,-0.50619900226593,-269.339660644531&lt;br /&gt;
 p3:game_vertex_id = 855&lt;br /&gt;
 p3:level_vertex_id = 390503&lt;br /&gt;
&lt;br /&gt;
Здесь видно, что в первой точке прописаны все 3 точки. &lt;br /&gt;
 points = p0,p1,p2,p3&lt;br /&gt;
&lt;br /&gt;
=== Небольшое дополнение от ColR_iT касательно приведенного пример ===&lt;br /&gt;
&lt;br /&gt;
 p0:links = p1(1),p3(1) &lt;br /&gt;
&lt;br /&gt;
В этом случае, НПС будучи в точке p0 случайным образом выберет одну из предложенных p1 либо p3.&lt;br /&gt;
Таким образом, в примере выше, НПС в первой точке выберет следующую точку следования, если выберет p1, то далее перейдет в точку p2 и остановится, если p3 - перейдет в нее и так же остановится*.&lt;br /&gt;
&lt;br /&gt;
''*В моих экспериментах, при выборе НПС точки, которая является &amp;quot;конечной&amp;quot;, т.е. той в которой нет перехода на следующую (p3 в примере выше) у меня происходил вылет. Во избежании этого пришлось добавлять еще одну не подалёку на пути следования.''&lt;br /&gt;
&lt;br /&gt;
== Пропишем путь нашему сталкеру ==&lt;br /&gt;
&lt;br /&gt;
Теперь, чтобы по нашему пути ходил дядька нужно прописать ему этот путь. К кастом дате укажите файл до логики (не буду описавать, как это делаеться)&lt;br /&gt;
 [logic]&lt;br /&gt;
 active = walker&lt;br /&gt;
 [walker]&lt;br /&gt;
 path_walk = name_wp&lt;br /&gt;
 path_look = name_wp&lt;br /&gt;
&lt;br /&gt;
Думаю, что я понятно объяснил :)&lt;br /&gt;
&lt;br /&gt;
Чтож, дополню и я&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[esc_gen_lager_walker_1]&lt;br /&gt;
points = p0,p1&lt;br /&gt;
p0:name = name00&lt;br /&gt;
p0:flags = 0x400&lt;br /&gt;
p0:position = -62.564220428467,-9.9675645828247,-56.229484558105&lt;br /&gt;
p0:game_vertex_id = 77&lt;br /&gt;
p0:level_vertex_id = 213868&lt;br /&gt;
p0:links = p1(1)&lt;br /&gt;
&lt;br /&gt;
p1:name = name01&lt;br /&gt;
p1:flags = 0x800&lt;br /&gt;
p1:position = -58.430591583252,-9.94411277771,-47.951900482178&lt;br /&gt;
p1:game_vertex_id = 77&lt;br /&gt;
p1:level_vertex_id = 219640&lt;br /&gt;
p1:links = p0(1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Скажем, такой путь можно использовать для look и walk&lt;br /&gt;
&amp;lt;B&amp;gt;p0:flags = 0x400&amp;lt;/B&amp;gt; ОБРАТИМ ВНИМАНИЯ!&lt;br /&gt;
&amp;lt;B&amp;gt;p0:flags = 0x800&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Два этих параметра служат как связь. Если в первом поинте walk стоит флаг 0x400, а в поинте look тоже стоит 0x400, когда НПС\МУТАНТ находится на этой точке, его взгляд направлен согласно флагу&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;big&amp;gt;Дополнительные параметры&amp;lt;/big&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
Возможно задача дополнительных ключей-параметров&lt;br /&gt;
&lt;br /&gt;
Для нпс к примеру&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[esc_gen_lager_walker_1]&lt;br /&gt;
points = p0,p1&lt;br /&gt;
p0:name = wp00&amp;lt;u&amp;gt;|a=binocular&amp;lt;/u&amp;gt;&lt;br /&gt;
p0:flags = 0x400&lt;br /&gt;
p0:position = -62.564220428467,-9.9675645828247,-56.229484558105&lt;br /&gt;
p0:game_vertex_id = 77&lt;br /&gt;
p0:level_vertex_id = 213868&lt;br /&gt;
p0:links = p1(1)&lt;br /&gt;
&lt;br /&gt;
p1:name = wp01&lt;br /&gt;
p1:flags = 0x800|&amp;lt;u&amp;gt;a=assault&amp;lt;/u&amp;gt; &lt;br /&gt;
p1:position = -58.430591583252,-9.94411277771,-47.951900482178&lt;br /&gt;
p1:game_vertex_id = 77&lt;br /&gt;
p1:level_vertex_id = 219640&lt;br /&gt;
p1:links = p0(1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Отыгрывается анимация сначала смотрит в бинокль, потом атака. Если правильно привязать к точкам обзорного пути - получится красиво&lt;br /&gt;
&lt;br /&gt;
Имена анимаций брать отсюда &amp;lt;big&amp;gt;state_mgr_animation_list.script&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;Касательно вертолётов&amp;lt;/big&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Расскажу фишку. Если в логике вертолётов использую путь move и look, плюс с поомшью флагов прциепить move к каждой точке look. Можно ставить на wp дополнительный параметр, стрелять. Параметр называется |e&lt;br /&gt;
Можно сделать сценку, как будто вертолёт зачищает местность. Подробнее о ключах для вертолёта&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== См. также ==http://stalkerin.gameru.net/wiki/index.php/%D0%A7%D0%B0%D1%81%D1%82%D1%8C_4#3.12.1._.D0.A1.D1.85.D0.B5.D0.BC.D0.B0_heli_move:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Всем спасибо все свободны&lt;br /&gt;
&lt;br /&gt;
=== Дополнение от Re]Spawner ===&lt;br /&gt;
Rez@niy aka Oxygenium &amp;amp; Andrey K aka forest&lt;br /&gt;
Спасибо вам огромное. Я немножко разъясню для начинающих, что за кастом дата и куда что вставлять.&lt;br /&gt;
Допустим, у вас есть НПС, его профиль и тому подобное. Естественно, вы хотите, чтобы он пошел по вашему пути. Тогда открываете spawn_sections.ltx, в него пишите следующий текст:&lt;br /&gt;
&amp;lt;pre&amp;gt;[esc_respawner_test_wp]:stalker_trader&lt;br /&gt;
character_profile = esc_respawner_test_wp&lt;br /&gt;
spec_rank = veteran&lt;br /&gt;
community = bandit&lt;br /&gt;
use_single_item_rule = off&lt;br /&gt;
can_select_items = off&lt;br /&gt;
custom_data = scripts\esc_respawner_test_wp.ltx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где &amp;lt;pre&amp;gt;[esc_respawner_test_wp]:stalker_trader&amp;lt;/pre&amp;gt; - название профиля (точно не помню)&lt;br /&gt;
&amp;lt;pre&amp;gt;character_profile = esc_respawner_test_wp&amp;lt;/pre&amp;gt;  - вот это уже точно название профиля&lt;br /&gt;
&amp;lt;pre&amp;gt;custom_data = scripts\esc_respawner_test_wp.ltx&amp;lt;/pre&amp;gt;  -ссылка на файл логики, куда надо вбивать следующий текст:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 [logic]&lt;br /&gt;
 active = walker&lt;br /&gt;
 [walker]&lt;br /&gt;
 path_walk = name_wp&lt;br /&gt;
 path_look = name_wp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это все! Так просто ;)&lt;br /&gt;
&lt;br /&gt;
Автор [[Участник:Rez@niy]] aka Oxygenium &amp;amp; Andrey K aka forest, Дополнил: &amp;lt;big&amp;gt;Re]Spawner&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:SDK]][[Категория:SDK CS]]&lt;/div&gt;</summary>
		<author><name>89.28.85.74</name></author>	</entry>

	</feed>