<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="https://stalkerlive.0pk.me/export.php?type=rss" rel="self" type="application/rss+xml" />
		<title>S.T.A.L.K.E.R</title>
		<link>https://stalkerlive.0pk.me/</link>
		<description>S.T.A.L.K.E.R</description>
		<language>ru-ru</language>
		<lastBuildDate>Tue, 30 Aug 2011 14:06:17 +0400</lastBuildDate>
		<generator>MyBB/mybb.ru</generator>
		<item>
			<title>Редактирование оружия</title>
			<link>https://stalkerlive.0pk.me/viewtopic.php?pid=11#p11</link>
			<description>&lt;p&gt;Сегодня мы разберем то, каким образом можно редактировать оружие в игре - от характеристик до описания. Характеристики оружия хранятся здесь: &lt;/p&gt;
						&lt;p&gt;...\S.T.A.L.K.E.R\gamedata\config\weapons\w_[...].ltx &lt;br /&gt;Разбор структуры конфига&lt;/p&gt;
						&lt;p&gt;Возьмем, для примера, конфиг w_g36.ltx. Он делится на разделы: &lt;br /&gt;Первый раздел&lt;/p&gt;
						&lt;p&gt;Здесь хранится общая информация о оружии - его класс, тип, ссылки на спавн и т.д. Нас интересуют следующие строки: &lt;br /&gt;description = enc_weapons1_wpn-g36 - ссылка на string_id, из которого игра подгружает описание этого оружия. &lt;br /&gt;ef_main_weapon_type = 2 - основной тип, к которому принадлежит оружие &lt;br /&gt;ef_weapon_type = 6 - подтип, к которому принадлежит оружие &lt;br /&gt;Второй раздел&lt;/p&gt;
						&lt;p&gt;Содержит модификаторы, которые даются к углу зрения/дальности обзора NPC, держащего это оружие в руках: &lt;br /&gt;holder_range_modifier = 1.85 - во сколько раз увеличивается eye_range &lt;br /&gt;holder_fov_modifier = 0.3 - во сколько раз увеличивается eye_fov &lt;br /&gt;Третий раздел&lt;/p&gt;
						&lt;p&gt;Содержит данные о самом оружии, его некоторых характеристиках: &lt;br /&gt;cost = 18000 - базовая цена (торговцы умножают её на некоторый коэффициент) &lt;br /&gt;weapon_class = assault_rifle - класс оружия (здесь - штурмовая винтовка) &lt;br /&gt;ammo_mag_size = 30 - размер магазина &lt;br /&gt;ammo_class = ammo_5.56x45_ss190, ammo_5.56x45_ap - типы используемых патронов &lt;br /&gt;grenade_class = ammo_m209 - тип используемых гранат &lt;br /&gt;fire_modes = 1, -1 - режимы ведения огня &lt;br /&gt;hand_dependence = 1 - засивимость о рук (?) - возможно, речь идет о качании ствола &lt;br /&gt;single_handed = 0 - держится ли только в одной руке &lt;br /&gt;slot = 2 - слот в инвентаре &lt;br /&gt;animation_slot = 2 - вид анимации (для пистолета/для винтовки) &lt;br /&gt;inv_name = wpn-g36 - ссылка на имя, отображаемое в инвентаре, тоже берется из string table, как и описание &lt;br /&gt;inv_name_short = wpn-g36 - короткое имя; в данном случае используется то же самое &lt;br /&gt;inv_weight = 3.6 - вес &lt;br /&gt;inv_grid_width = 5 - координаты первого угла иконки по x &lt;br /&gt;inv_grid_height = 2 - координаты первого угла иконки по y &lt;br /&gt;inv_grid_x = 0 - координаты второго угла иконки по x &lt;br /&gt;inv_grid_y = 10 - координаты второго угла иконки по y &lt;br /&gt;Четвертый раздел&lt;/p&gt;
						&lt;p&gt;В четвертом разделе хранится информация о износе/отдаче оружия. Практически все параметры там снабжены комментариями, поэтому приведу лишь самые интересные: &lt;br /&gt;cam_relax_speed = 5.7 - скорость возврата в исходное положение &lt;br /&gt;cam_dispersion = 0.2 - увеличения угла (в градусах) с каждым выстрелом &lt;br /&gt;fire_dispersion_condition_factor = 5 - увеличение дисперсии в процентах при максимальном износе &lt;br /&gt;misfire_probability = 0.003 - вероятность осечки при максимальном износе &lt;br /&gt;misfire_condition_k = 0.05 - порог (в данном случае - 5%), после которого оружие может заклинивать &lt;br /&gt;condition_shot_dec = 0.0002 - увеличение износа при каждом выстреле &lt;br /&gt;Пятый раздел&lt;/p&gt;
						&lt;p&gt;Здесь хранится множество параметров, из которых наиболее интересны эти: &lt;br /&gt;hit_power = 0.50, 0.54, 0.57, 0.60 - сила выстрела &lt;br /&gt;hit_impulse = 105 - импульс пули (сила, которую летящая пуля передает жертве, влияет на поведение ragdoll-тела) &lt;br /&gt;hit_type = fire_wound - тип причиняемых повреждений, в данном случае - пулевые ранения (параметр в синглплеере ни на что не влияет) &lt;br /&gt;fire_distance = 600 - максимальная дистанция для выстрела &lt;br /&gt;bullet_speed = 925 - начальная скорость пули &lt;br /&gt;hud = wpn_g36_hud - внешний вид оружия &lt;br /&gt;Шестой раздел&lt;br /&gt;position = -0.026, -0.132, 0.0 - позиция по отношению к игроку (?) &lt;br /&gt;orientation = 0, 0, 0 - направление, в которое смотрит ствол (?) &lt;br /&gt;Седьмой раздел&lt;/p&gt;
						&lt;p&gt;Содержит описания визуальной стороны оружия и некоторые другие параметры: &lt;br /&gt;startup_ammo = 90 - как нетрудно догадаться, стартовое количество патронов (в синглплеере ни на что не влияет) &lt;br /&gt;visual = weapons\g36\wpn_g36.ogf - модель оружия, используемая NPC, а также игроком при виде от третьего лица &lt;br /&gt;ph_mass = 4 - физическая масса, используемая при расчетах &lt;br /&gt;scope_status = 1 - ситуация со съемным прицелом &lt;br /&gt;silencer_status = 0 - ситуация со съемным глушителем &lt;br /&gt;grenade_launcher_status = 0 - ситуация с подствольным гранатометом &lt;br /&gt;Параметры: &lt;br /&gt;0 - нет, новый прикрепить нельзя &lt;br /&gt;1 - уже есть, несъемный &lt;br /&gt;2 - можно прикрепить&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Меченый)</author>
			<pubDate>Tue, 30 Aug 2011 14:06:17 +0400</pubDate>
			<guid>https://stalkerlive.0pk.me/viewtopic.php?pid=11#p11</guid>
		</item>
		<item>
			<title>Спаун через xrSpawner</title>
			<link>https://stalkerlive.0pk.me/viewtopic.php?pid=10#p10</link>
			<description>&lt;p&gt;1.1 Итак, прежде чем мы приступим к созданию собственных модов, не помешает проветрить, все ли необходимое у нас есть.&lt;br /&gt;a) Собственно, сама игра, установленная на компьютер.&lt;br /&gt;b) Распаковщик архивов игры STALKER_Data_Unpacker&lt;br /&gt;c) Текстовый редактор, подойдет практически любой, даже Блокнот. Если у вас есть редактор с подсветкой синтаксиса, это будет плюсом.&lt;br /&gt;d) Редактор файла all.spawn. Если вы корифей в HEX-редакторах, берите тот, который нравится. Тем же, кто даже толком не представляет, что такое НЕХ-редактор, крайне рекомендую xrSpawner 0.13.0 Beta от небезызвестного в сталкеровском комьюнити Zeed’а. Удивительно удобная штука, тем более что в дальнейшем речь пойдет именно о xrSpawner.&lt;br /&gt;e) Ровные руки и мыслящая голова.&lt;br /&gt;Если все это у вас есть, продолжим. В том случае, если вы уже распаковали архивы игры, переходите сразу ко второму пункту. Если же нет, то…&lt;/p&gt;
						&lt;p&gt;1.2 Допустим, игра у вас установлена в папку D:\Games\S.T.A.L.KE.R. Тогда при помощи Unpacker-а извлеките все содержимое файлов gamedata.dbX (где Х – буква или число) из корневого каталога игры в отдельную папку, например D:\Source\gamedata.&lt;/p&gt;
						&lt;p&gt;1.3 Теперь в папке D:\Source\gamedata\spawns найдите файл all.spawn и скопируйте его в папку D:\Games\S.T.A.L.KE.R. \gamedata\spawns. Если такой папки нет – создайте ее, в дальнейшем, если необходимо будет перенести какой-либо файл в каталог, которого нет – создавайте, учитывая все промежуточные папки.&lt;br /&gt;1.4 Запускаем xrSpawner 0.13.0 Beta , нажимаем «Файл - Открыть файл all.spawn» и указываем ему файл из папки D:\Games\S.T.A.L.KE.R.\gamedata\spawns. Окошки редактора заполнились цифрами и буквами. Теперь у нас все готово, начинаем.&lt;/p&gt;
						&lt;p&gt;2. Добавление транспорта.&lt;/p&gt;
						&lt;p&gt;2.1 Начнем, пожалуй, с самого легкого и в достаточной степени необходимого – с добавления транспорта. В правой части окна редактора раскрываем список «Добавить объект» и выбираем пункт Transport. В окне внизу выбираем вид транспорта, который вам необходим, пусть это будет, к примеру, Niva_Green (Нива армейского образца) и жмем кнопку «Добавить».&lt;br /&gt;2.2 В левой части редактора мы видим окно со списком всех объектов, спаунящихся в игре. В самом конце этого списка появился объект m_car, на который указывает синий маркер. Это и есть наша Нива. Давайте обратим теперь внимание на центральную часть редактора и немного разберемся, что есть что. Итак, m_car – тип объекта (Entity), ven_niva_00 – название объекта (можете назвать его по-другому, например Moya_Niva), корд X/Y/Z и вектор X/Y/Z – координаты объекта и углы поворота относительно осей координат. Обратите внимание, что за вертикальную ось отвечает не привычная нам ось Z, а ось Y. Это не ошибка, Zeed сознательно ввел такое обозначение осей, что бы те, кто работает с SDK для мультиплеера, не путались – там координаты поименованы подобным образом. Level_ID указывает, к какой локации относится тот или иной объект, окно Story_ID рекомендую не трогать, по умолчанию новому объекту добавляется значение -1. Если к объекту привязан какой-либо управляющий скрипт, его текст отражается в окне внизу.&lt;br /&gt;Таким образом, наша Нива должна респауниться на локации l01_escape (то есть , на Кордоне), в точке с координатами -239,8912/ -19,43/ -123,0998, с углом поворота относительно вертикальной оси -15 градусов. Это значения «по умолчанию» и они вполне корректны, то есть, оставив все как есть, вы не рискуете обнаружить потом свою машину, висящую где-нибудь на дереве или застрявшей в заборе. Не удивляйтесь отрицательному значению высоты, поскольку центр координат локации Кордон расположен на дороге, неподалеку от автобусной остановки, лагерь же новичков относительно этого места лежит в низине. При желании можете немного поэкспериментировать с числами в окнах «Корд. X/Y/Z», не забудьте подтвердить изменения (нажав «Принять изменения», сохраните строчку, иначе данные пропадут, если вы уберете маркер с редактируемого объекта). После этого сохраняете свой файл all.spawn (Файл - Сохранить), все, можно запускать S.T.A.L.K.E.R. и начинать новую игру. На выходе из бункера Сидоровича вас будет встречать автомобиль, заспауненный лично вами. Поздравляю&lt;br /&gt;2.3 Известно, что «по умолчанию» новоявленные автомобили чрезвычайно хрупки и взрываются буквально от первого же столкновения с забором. Устраняется эта проблема моментально. В папке Source ищем файл veh_niva_u_01 и копируем его в папку D:\Games\S.T.A.L.KE.R.\gamedata\config\models\vehicles. Это файл конфигурации автомобиля. Открываем его блокнотом и ищем раздел [immunities], после чего выставляем все параметры (burn_immunity, strike_immunity и т.д.) равными нулю. Сохраняем и закрываем файл. Теперь ваша Нива неуничтожима в принципе. Небольшая ремарка, повреждения для дверей и крышки багажника считаются отдельно и после парочки столкновений можно лишиться нескольких деталей корпуса, но, думаю, без дверей вы уж как-нибудь покатаетесь. Рекомендую сразу же в ту же папку перенести файлы остальных машин и проделать с ними те же операции. Все.&lt;/p&gt;
						&lt;p&gt;3 Поиск координат и расстановка объектов на других локациях.&lt;/p&gt;
						&lt;p&gt;Накатавшись вволю по Кордону, вы, несомненно, захотите попутешествовать по остальным локациям уже на своих четырех. Вот тут вы и столкнетесь с проблемой, поскольку точка перехода Кордон-Свалка находится в здании за шлагбаумом, куда машина, по понятным причинам, не пролазит. Это значит, что вам понадобится новый автомобиль, который встречал бы вас на Свалке. В общем случае речь может идти не только о машинах, но и о монстрах, артефактах, сталкерах, предметах и прочих объектах. Для спауна любого предмета необходимо, как мы уже убедились, задать координаты той точки, где он появится. Алгоритм следующий: спаунимся на локацию, куда вы хотите добавить объект, визуально выбираем наиболее подходящую для этого точку и фиксируем ее координаты, выходим из игры, создаем интересующий нас объект с заранее полученными координатами, вновь спаунимся и проверяем корректность добавления объекта. Теперь опишем все это более подробно на примере автомобиля.&lt;br /&gt;3.1 Допустим, вы хотите поместить белую Ниву неподалеку от перехода Армейские склады – Бар. В окне списка объектов поставьте маркер на первый объект. В окне «Поиск» наберите level_changer. Уже в процессе набора маркер переместиться на объект номер 284, который и будет нашим первым левел-ченджером. Level_cahnger, это точка, в которой расположен триггер, который выдает на экран окошко «Вы хотите перейти на другую локацию?». Объект за номером 284 с именем exit_to_garbage_01 отвечает за переход Кордон-Свалка и нам он не нужен. Нажимайте кнопку «Следующий» до тех пор, пока маркер на остановится на нужной нам точке перехода. Определить, какой level_changer за что отвечает, достаточно просто, смотрите на имя объекта, он подскажет в какую локацию переносит вас триггер. Триггеры одной карты обычно группируются вместе. Объекты 5286 (exit_to_bar_01) и 5287 (exit_to_radar_01) явно принадлежат к одной локации, по совокупности того, куда ведут выходы, можно определить, что триггеры принадлежат Армейским складам, только с нее есть выходы на Бар и Радар. Отлично, значит нас интересует номер 5286 exit_to_bar_01 с координатами (-372,6236/ -21,69933/ -4,806515). Запомните эти числа, затем открывайте строчку 63 actor (это вы), меняйте в поле Level_ID l01_escape на l07_military, измените ваши текущие координаты на координаты точки перехода (-372,6236/ -21,69933/ -4,806515), сохраняйте строчку («принять изменения») и файл («Файл - Сохранить»). Обратите внимание, сразу после загрузки вы попадете в триггер выхода. Это не страшно, достаточно нажать «нет» и вы появитесь на локации Армейские склады. Если же это обстоятельство вам неприятно, попросту измените горизонтальные координаты на 1-2 метра.&lt;br /&gt;3.2 Начинаем новую игру. После загрузки и отказа переходить на другую локацию, нам необходимо найти подходящее место для расположения автомобиля и определить его координаты. Делается это одним из следующих способов.&lt;br /&gt;a) В консоли прописываем команду «rs_stats on» без кавычек и слева на экране появится статистическая информация. Нас интересует последняя строчка Camera position, которая отражает текущие координаты камеры. Почему я заостряю на этом внимание. Камера поднята над поверхностью на 1,5 метра, поэтому, когда будете вписывать данные для спауна, вычитайте из вертикальной координаты полтора метра. Топаем ножками на понравившуюся площадку и записываем на листочке цифры с экрана.&lt;br /&gt;b) Точно так же топаем ножками на понравившееся место и там сохраняемся с помощью quiksave(F6).&lt;br /&gt;c) Принимая во внимание, что вы появляетесь на карте с болтами и биноклем в карманах, ваша персона может сильно заинтересовать недружественных товарищей и мутантов. Дабы обезопасить себя во время проведения топографических съемок, набирайте в консоли команду «demo_record 1», которая освобождает камеру, давая возможность «полетать» по уровню. Управлять камерой просто, нажимаете «огонь» и летите вперед («прицел» - назад), стрелки отвечают за поворот вокруг осей. Далее аналогично – прилетаем на место, запускаем «rs_stats on» и записываем текущие координаты.&lt;br /&gt;3.3 Выходим из игры. Если вы сохранялись при помощи быстрого сохранения, ставьте маркер на объект 63 actor и нажимайте кнопку «Получить координаты из файла сохранения». В окошках должны появится те же самые данные, что вы получили при помощи «rs_stats on». Единственное дополнительное преимущество состоит в том, что при загрузке данных с сейва вы получаете также данные об угле поворота вашего персонажа. Это вам поможет в том случае, если вы хотите определенным образом сориентировать вашу машину относительно, скажем, дороги или другой техники.&lt;/p&gt;
						&lt;p&gt;3.4 Добавить объект - Транспорт - Niva_White. В поле Level_ID выбираем l07_military (если оно уже не стоит там по умолчанию), в поля координат заносим данные, полученные в п.3.2 Сохраняем строчку и файл. Снова запускаем новую игру. Если вы ничего не изменяли в actor, то вы появитесь в том же месте, что и в прошлый раз, на дороге по пути к Бару, а пробежавшись немного вперед, обнаружите свежепоявившуюся Ниву белого цвета.&lt;br /&gt;Если кому-то интересно, автомобиль на скриншоте заспаунен в координаты (-305,38/-22,53/61,93), углы поворотов относительно осей (0/0/0). Это важно – когда будите вписывать числовые значения координат, дробная часть отделяется от целой с помощью запятой. Если вы поставите точку, при сохранении редактор выдаст ошибку.&lt;br /&gt;Вот таким образом вы можете получать и присваивать нужные координаты любым объектам, начиная от табуретки и заканчивая вертолетами. Внимание, при создании объектов на других локациях всегда сохраняйте изменения и обращайте внимание на то, какое значение Level_ID у вас сохранено. Нередки случаи, когда вместо того, что бы расквартироваться по всей Зоне, монстры сосредоточились на Кордоне, из-за того, что моде (известный вам Бастард), забыл сменить левел _айди у части монстров.&lt;/p&gt;
						&lt;p&gt;4 Добавление новых монстров&lt;/p&gt;
						&lt;p&gt;С чисто технической точки зрения заспаунить, скажем, бюрера, никаких трудностей не представляет. Выполняйте все те же операции, что и для автомобиля. То есть, выбираем Добавить объект а Mutants а Burer, корректируем координаты и локацию, если есть необходимость, сохраняемся, заходим и любуемся. НО !!! Каждый житель Зоны, от тушкана до сталкера, должен быть зафиксирован в куче файлов: статистика, описание, инвентарь (то, что вы видите, нажав «обыскать труп») и прочее. Давать описание того, что нужно сделать в каждом фале, это слишком долго и муторно, получится гора сухой писанины, причем, не факт ни я (при наборе) ни вы (при переписывании) не допустим какую-нибудь ошибку. А отсутствие простой запятой в одном файле может привести к крашу игры. Поэтому лучшим выходом из ситуации будет, если вы найдете любой мод, добавляющий монстров и найдете там необходимые файлы, которые нужно добавить/заменить в игре.&lt;/p&gt;
						&lt;p&gt;Обратите внимание, что у вас есть возможность добавлять не только новых монстров и машины, но и спаунить оружие, предметы, артефакты, старых монстров, сталкеров и проч. Если хотите, выложу и про это...&lt;/p&gt;
						&lt;p&gt;1: Спавн ГГ&lt;br /&gt;Тут ничего сложного нету, открываеш all.spawn, в поиске ищеш actor (только в Entity) и меняеш его координаты (не забудь выставить Level_ID) вот собственно и всё&lt;br /&gt;2: Спавн предметов в рюкзаке у ГГ&lt;br /&gt;В этом же параметре actor есть скрип в котом прописаны все предметы он выглядит так:&lt;br /&gt;][spawn]&lt;br /&gt;wpn_binoc&lt;br /&gt;detector_simple&lt;br /&gt;novice_outfit&lt;br /&gt;device_torch&lt;/p&gt;
						&lt;p&gt;далее берём и вписываем названия предметов, оружия, патронов после device_torch, количество указываетсо = xxx (где х - число), тоже всё&lt;br /&gt;3: Спавн НПС&lt;br /&gt;Тут тоже ничего сложного, ищем в поиске к примеру контролёра, вводим m_controller и видим в табле ниже m_controller_normal(normal - сила контролёра), далее добавляем его в базу, потом выбираем этого контролёра в базе, выбераем Level_ID и добавляем столько сколько нужно , прописываем координаты и фсё запускаем и мочим&lt;br /&gt;4: Спавн аномалии&lt;br /&gt;Насечот аномалий не знаю (никогда не пробовал спавнить) но всётки помоему тут всё просто. Ищем в поиске zone_xxx (х - название аномалии) к прмеру zone_gravi, в табле ниже м ыувидим zone_gravi_zone_weak, добавляем в базу и спавним&lt;br /&gt;[dont_spawn_character_supplies]&lt;/p&gt;
						&lt;p&gt;[spawn]&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_binoc&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_knife&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;detector_elite&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;exo_outfit&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;dolg_scientific_outfit&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;protection_outfit&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;device_torch&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;af_medusa&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;af_cristall_flower&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;af_night_star&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;af_vyvert&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;af_gravi&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;af_gold_fish&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;af_blood&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;af_mincer_meat&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;af_soul&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;af_electra_sparkler&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;af_electra_flash&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;af_electra_moonlight&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;af_rusty_thorn&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;af_rusty_kristall&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;af_rusty_sea-urchin&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;af_ameba_slime&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;af_ameba_slug&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;af_ameba_mica&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;af_drops&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;af_fireball&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;af_cristall&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;af_dummy_glassbeads&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;af_dummy_pellicle&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;af_dummy_battery&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;af_dummy_dummy&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;af_dummy_spring&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;af_fuzz_kolobok&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;ammo_9x18_fmj&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;ammo_9x18_pmm&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;ammo_9x19_pbp&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;ammo_9x19_fmj&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;ammo_11.43x23_hydro&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;ammo_11.43x23_fmj&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;ammo_12x70_buck&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;ammo_12x76_dart&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;ammo_12x76_zhekan&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;ammo_5.45x39_ap&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;ammo_5.45x39_fmj&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;ammo_9x39_sp5&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;ammo_9x39_ap&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;ammo_9x39_pab9&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;ammo_5.56x45_ss190&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;ammo_5.56x45_ap&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;ammo_7.62x54_7h14&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;ammo_7.62x54_7h1&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;ammo_7.62x54_ap&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;ammo_og-7b&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;ammo_vog-25p&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;ammo_vog-25&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;grenade_f1&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;ammo_m209&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;ammo_gauss&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_colt1911&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_desert_eagle&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_toz34&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_vintorez&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_rg-6&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_rpg7&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_fn2000&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_gauss&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_addon_scope&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_addon_scope_susat&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_addon_silencer&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_addon_grenade_launcher&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_addon_grenade_launcher_m203&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;bandage&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;medkit&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;medkit_scientic&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;medkit_army&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;antirad&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;bread&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;kolbasa&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;conserva&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;vodka&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;energy_drink&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_ak74_m1&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_abakan_m1&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_fort_m1&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_ak74u_m1&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_mp5_m1&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_groza_m1&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_spas12_m1&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_winchester_m1&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_l85_m1&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_lr300_m1&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_svd_m1&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_sig_m1&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_eagle_m1&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_val_m1&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_mp5_m2&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_abakan_m2&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_l85_m2&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_sig_m2&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_rg6_m1&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;dialogs.relocate_item_section(trader, &amp;quot;wpn_walther_m1&amp;quot;, &amp;quot;in&amp;quot;)&lt;/p&gt;
						&lt;p&gt;Вот тебе все добро при спауне у тебя в инвентаре. все уникальное, плюс три комбеза (зеленый ученый, экзоскелет и Скат, вроде бы ).&lt;/p&gt;
						&lt;p&gt;вот только обрати внимание, что все это добро разом весит почти тонну двести кэгэ. поднимай грузоподъемность или не жадничай. А вот если появится желание скинуть это все и распихать по нычкам - не советую. Достаточно выкинуть пару сотен патронов и игра начинает подтормаживать.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Меченый)</author>
			<pubDate>Tue, 30 Aug 2011 14:03:57 +0400</pubDate>
			<guid>https://stalkerlive.0pk.me/viewtopic.php?pid=10#p10</guid>
		</item>
		<item>
			<title>Создание диалогов</title>
			<link>https://stalkerlive.0pk.me/viewtopic.php?pid=9#p9</link>
			<description>&lt;p&gt;1) Списки веток диалогов содержатся в файлах вида gamedata/config/gameplay/character_desc_*.xml &lt;/p&gt;
						&lt;p&gt;Это, например: &lt;/p&gt;
						&lt;p&gt;character_desc_zombied.xml character_desc_stalker.xml character_desc_garbage.xml ... &lt;/p&gt;
						&lt;p&gt;Файлы character_desc_*.xml можно сравнить со стволом дерева диалогов. В них перечисляется названия прикрепляемых веток диалогов &lt;/p&gt;
						&lt;p&gt;Например вот список веток диалога с Сидоровичем взятый из файла character_desc_escape.xml &lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;start_dialog&amp;gt;escape_trader_start_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;actor_dialog&amp;gt;escape_trader_talk_info&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;actor_dialog&amp;gt;escape_trader_jobs&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;actor_dialog&amp;gt;tm_trader_dialog&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;actor_dialog&amp;gt;tm_trader_reward&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;actor_dialog&amp;gt;escape_trader_done_blockpost_box&amp;lt;/actor_dialog&amp;gt;&lt;/p&gt;
						&lt;p&gt;В свою очередь каждая ветка диалога также может ветвится. &lt;/p&gt;
						&lt;p&gt;2) Ветвление диалогов прописывается уже в других файлах. &lt;/p&gt;
						&lt;p&gt;Например, ветвление диалога с Сидоровичем содержится в файле gamedata/config/gameplay/dialogs_escape.xml Возьмем оттуда, например, ветвление escape_trader_jobs. &lt;/p&gt;
						&lt;p&gt;Ветвление имеет довольно большие масштабы, поэтому приведу только часть: &lt;br /&gt;&amp;lt;dialog id=&amp;quot;escape_trader_talk_info&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;precondition&amp;gt;escape_dialog.trader_has_talk_info_wr&amp;lt;/precondition&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;has_info&amp;gt;tutorial_end&amp;lt;/has_info&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;phrase_list&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;text&amp;gt;escape_trader_talk_info_1&amp;lt;/text&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;next&amp;gt;100&amp;lt;/next&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;next&amp;gt;99&amp;lt;/next&amp;gt;&lt;br /&gt;	&amp;#160; &amp;#160; &amp;#160; &amp;lt;next&amp;gt;9995&amp;lt;/next&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;/phrase&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ...&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;text&amp;gt;escape_trader_talk_info_0&amp;lt;/text&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;/phrase&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;&amp;lt;/dialog&amp;gt;&lt;/p&gt;
						&lt;p&gt;Здесь &amp;lt;precondition&amp;gt;…&amp;lt;/precondition&amp;gt; - это проверка выполнения условия. Ветка появится в диалоге, только если условие выполняется. Конкретно &amp;lt;precondition&amp;gt;escape_dialog.trader_has_talk_info_wr&amp;lt;/precondition&amp;gt; из ветки escape_trader_talk_info - это обращение к функции trader_has_talk_info_wr, находящейся в файле скрипте gamedata/scripts/escape_dialog.script &lt;/p&gt;
						&lt;p&gt;Функция выглядит так: &lt;br /&gt;function trader_has_talk_info_wr( trader, actor )&lt;br /&gt;	return true&lt;br /&gt;end&lt;/p&gt;
						&lt;p&gt;То есть, судя по его структуре, &amp;lt;precondition&amp;gt;escape_dialog.trader_has_talk_info_wr&amp;lt;/precondition&amp;gt; выполняется всегда, т.к. функция всегда возвращает истину и &amp;lt;dialog id=&amp;quot;escape_trader_talk_info&amp;quot;&amp;gt; пропускается в списк реплик. &lt;/p&gt;
						&lt;p&gt;Но для конкретной ветки может быть несколько precondition и других условий. &lt;/p&gt;
						&lt;p&gt;Далее, &amp;lt;has_info&amp;gt;tutorial_end&amp;lt;/has_info&amp;gt; - это еще одна проверка, на этот раз на наличие у игрока так называемых infoportions, выдаваемы в процессе ключевых диалогов. В данном случае это проверка на то, закончена ли определенная стадия туториала, или нет. Т.е. ветка допустится в список реплик если стадия туториала закончена. &lt;/p&gt;
						&lt;p&gt;Более детально мы это разберем в конце статьи. &lt;/p&gt;
						&lt;p&gt;А далее идут конкретные фразы, содержащие ссылки на вытекающие фразы, например: &lt;br /&gt;&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;text&amp;gt;escape_trader_talk_info_0&amp;lt;/text&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;&amp;lt;/phrase&amp;gt;&lt;/p&gt;
						&lt;p&gt;Это основа ветки escape_trader_talk_info. &lt;/p&gt;
						&lt;p&gt;Важно! В любой основной ветке любого диалога фраза &amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt; будет основой, из которой далее будет все вытекать. Она должна обязательно присутствовать и в вашем диалоге. &lt;/p&gt;
						&lt;p&gt;&amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt; - это ссылка на вытекающую фразу &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;: &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;text&amp;gt;escape_trader_talk_info_1&amp;lt;/text&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;next&amp;gt;100&amp;lt;/next&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;next&amp;gt;99&amp;lt;/next&amp;gt;&lt;br /&gt;	&amp;#160; &amp;#160; &amp;lt;next&amp;gt;9995&amp;lt;/next&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;/phrase&amp;gt;&lt;/p&gt;
						&lt;p&gt;В свою очередь &amp;lt;next&amp;gt;100&amp;lt;/next&amp;gt;, &amp;lt;next&amp;gt;99&amp;lt;/next&amp;gt;, &amp;lt;next&amp;gt;9995&amp;lt;/next&amp;gt; это ссылки на фразы веточки растущие из фразы &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;. &lt;/p&gt;
						&lt;p&gt;3) Текст каждой фразы содержится в третьем файле. Для диалога с Сидоровичем тексты лежат в файле gamedata/config/text/rus/stable_dialogs_escape.xml &lt;br /&gt;	&amp;lt;string id=&amp;quot;escape_trader_talk_info_0&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &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;escape_trader_talk_info_1&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;text&amp;gt;Спрашивай, только я ведь всего не знаю. Сам понимаешь, сижу тут &lt;br /&gt;целыми днями, а жизнь - она вся там, снаружи, в Зоне. Могу рассказать о Зоне вообще, а немного &lt;br /&gt;могу о ближайших окрестностях, где сам ходил.&amp;lt;/text&amp;gt;&lt;br /&gt;	&amp;lt;/string&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; ...&lt;/p&gt;
						&lt;p&gt;Эти строки содержат тексты для фраз &amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt; и &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt; &lt;/p&gt;
						&lt;p&gt;Итого диалоги разложены по трем, а то и более файлам. &lt;/p&gt;
						&lt;p&gt;Да кстати, путь по веткам может быть зацикленным, если того требует диалог. Например так: &lt;br /&gt;&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;text&amp;gt;...&amp;lt;/text&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt; &amp;lt;/phrase&amp;gt;&lt;br /&gt;&amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;text&amp;gt;...&amp;lt;/text&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;next&amp;gt;11&amp;lt;/next&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;next&amp;gt;12&amp;lt;/next&amp;gt;&lt;br /&gt; &amp;lt;/phrase&amp;gt;&lt;br /&gt;&amp;lt;phrase id=&amp;quot;11&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;text&amp;gt;...&amp;lt;/text&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&amp;#160; - Это возврат к фразе №1 (зацикливание)&amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;next&amp;gt;111&amp;lt;/next&amp;gt;&lt;br /&gt; &amp;lt;/phrase&amp;gt;&lt;br /&gt;Практика&lt;/p&gt;
						&lt;p&gt;Добавим в диалог с Сидоровичем ветку своего собственного изготовления.Например такую: &lt;br /&gt;Меченый: Сидрыч, а чего это у тебя зеленые человечки, что по столу бегают, такие худые? &lt;br /&gt;Сидорович: Чего?!&lt;br /&gt;Меченый: Ты их совсем, совсем не кормишь?&lt;br /&gt;Сидорович: В следующий раз, как пойдешь в зону, бери-ка&amp;#160; вместо водяры побольше антирада. А то &lt;br /&gt;мало что таким перегаром дышишь, уже до зеленых человечков долечился... Шутник.&lt;/p&gt;
						&lt;p&gt;Для этого: &lt;/p&gt;
						&lt;p&gt;1) В файле gamedata/config/gameplay/character_desc_escape.xml в конце списка веток для trader припишем свою ветку с произвольным названием. Это будет, например, &amp;lt;actor_dialog&amp;gt;escape_trader_letat_gusi&amp;lt;/actor_dialog&amp;gt;. &lt;/p&gt;
						&lt;p&gt;Т.е у нас получится так: &lt;br /&gt;&amp;lt;specific_character id=&amp;quot;escape_trader&amp;quot; no_random = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; ...&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;start_dialog&amp;gt;escape_trader_start_dialog&amp;lt;/start_dialog&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;actor_dialog&amp;gt;escape_trader_talk_info&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;actor_dialog&amp;gt;escape_trader_jobs&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;actor_dialog&amp;gt;tm_trader_dialog&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;actor_dialog&amp;gt;tm_trader_reward&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;actor_dialog&amp;gt;escape_trader_done_blockpost_box&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;actor_dialog&amp;gt;escape_trader_letat_gusi&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;	&amp;lt;/specific_character&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; …&lt;/p&gt;
						&lt;p&gt;Записываем изменения, с этим файлом пока всё. &lt;/p&gt;
						&lt;p&gt;2) Теперь берем файл gamedata/config/gameplay/dialogs_escape.xml &lt;/p&gt;
						&lt;p&gt;Диалогу: &lt;br /&gt;Меченый: Сидрыч а почему это у тебя зеленые человечки, что по столу бегают, такие худые? &lt;br /&gt;Сидорович: Чего?!!&lt;br /&gt;Меченый: Ты их совсем, совсем не кормишь?&lt;br /&gt;Сидорович: В следующий раз, как пойдешь в зону, бери-ка&amp;#160; вместо водяры побольше антирада. А то &lt;br /&gt;мало что таким перегаром дышишь, уже до зеленых человечков долечился... Шутник.&lt;/p&gt;
						&lt;p&gt;Будет соответствовать такая структура: &lt;br /&gt;&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;text&amp;gt;escape_trader_letat_gusi_0&amp;lt;/text&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;&amp;lt;/phrase&amp;gt;&lt;br /&gt;&amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;text&amp;gt;escape_trader_letat_gusi_1&amp;lt;/text&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt; &amp;lt;/phrase&amp;gt;&lt;br /&gt;&amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;text&amp;gt; escape_trader_letat_gusi_2&amp;lt;/text&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;next&amp;gt;3&amp;lt;/next&amp;gt;&lt;br /&gt;&amp;lt;/phrase&amp;gt;&lt;br /&gt;&amp;lt;phrase id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;text&amp;gt; escape_trader_letat_gusi_3&amp;lt;/text&amp;gt;&lt;br /&gt;&amp;lt;/phrase&amp;gt;&lt;/p&gt;
						&lt;p&gt;Условия наличия ветки в диалоге можно взять из ветки &amp;lt;dialog id=&amp;quot;escape_trader_talk_info&amp;quot;&amp;gt;. &lt;/p&gt;
						&lt;p&gt;Т.е берем условия &amp;lt;precondition&amp;gt;escape_dialog.trader_has_talk_info_wr&amp;lt;/precondition&amp;gt; и &amp;lt;has_info&amp;gt;tutorial_end&amp;lt;/has_info&amp;gt;. Можно было, конечно, прописать в скрипте еще одно условие для ветки, чтобы она появилась только один раз, а потом больше не возникала. Но об этом как-нибудь позже. &lt;/p&gt;
						&lt;p&gt;В итоге у нас получилась такая структура: &lt;br /&gt;&amp;lt;dialog id=&amp;quot;escape_trader_letat_gusi&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;precondition&amp;gt;escape_dialog.trader_has_talk_info_wr&amp;lt;/precondition&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;has_info&amp;gt;tutorial_end&amp;lt;/has_info&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;phrase_list&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;lt;text&amp;gt;escape_trader_letat_gusi_0&amp;lt;/text&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;/phrase&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;lt;text&amp;gt;escape_trader_letat_gusi_1&amp;lt;/text&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;lt;/phrase&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;text&amp;gt; escape_trader_letat_gusi_2&amp;lt;/text&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;next&amp;gt;3&amp;lt;/next&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;lt;/phrase&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;lt;phrase id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;text&amp;gt; escape_trader_letat_gusi_3&amp;lt;/text&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;/phrase&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;&amp;#160; &amp;lt;/dialog&amp;gt;&lt;/p&gt;
						&lt;p&gt;Её нужно вставить в любом месте между dialog id&#039;ами других веток в файле dialogs_escape.xml. Главное - не промахнутся и засунуть именно между, а не внутрь одного из dialog id. &lt;/p&gt;
						&lt;p&gt;После сохранения внесенных изменений с файлом dialogs_escape.xml все. &lt;/p&gt;
						&lt;p&gt;3) Теперь вбиваем сами текстовички в файле gamedata/config/text/rus/stable_dialogs_escape.xml &lt;/p&gt;
						&lt;p&gt;Т.е нам надо в файле stable_dialogs_escape.xml вставить такую конструкцию: &lt;br /&gt;	&amp;lt;string id=&amp;quot;escape_trader_letat_gusi_0&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &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;escape_trader_letat_gusi_1&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &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;escape_trader_letat_gusi_2&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &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;escape_trader_letat_gusi_3&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;text&amp;gt;В следующий раз, как пойдешь в зону, бери-ка&amp;#160; вместо водяры побольше &lt;br /&gt;антирада. А то мало что таким перегаром дышишь, уже до зеленых человечков долечился... &lt;br /&gt;Шутник.&amp;lt;/text&amp;gt;&lt;br /&gt;	&amp;lt;/string&amp;gt;&lt;/p&gt;
						&lt;p&gt;В любом месте между уже существующими string id. После сохранения изменений, у нас все готово. Можно загружать игру и смотреть что получилось. &lt;br /&gt;Дополнительно&lt;/p&gt;
						&lt;p&gt;Внимание! После патча 1.002 данный урок перестал работать. Причина - со вторым патчем несовместимо это условие: &lt;br /&gt;&amp;lt;precondition&amp;gt;escape_dialog.trader_has_talk_info_wr&amp;lt;/precondition&amp;gt;&lt;/p&gt;
						&lt;p&gt;Дело в том, что во втором патче из файла escape_dialog.script была удалена функция: &lt;br /&gt;function trader_has_talk_info_wr( trader, actor ) &lt;br /&gt;&amp;#160; &amp;#160;return true &lt;br /&gt;end&lt;/p&gt;
						&lt;p&gt;Можно либо записать эту функцию обратно в escape_dialog.script, либо использовать другие более-менее подходящие условия, например: &lt;br /&gt;&amp;lt;precondition&amp;gt;escape_dialog.trader_alredy_give_job&amp;lt;/precondition&amp;gt;&lt;/p&gt;
						&lt;p&gt;Всё. Мы научились писать простые диалоги.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Меченый)</author>
			<pubDate>Tue, 30 Aug 2011 13:16:56 +0400</pubDate>
			<guid>https://stalkerlive.0pk.me/viewtopic.php?pid=9#p9</guid>
		</item>
		<item>
			<title>Создание новых предметов</title>
			<link>https://stalkerlive.0pk.me/viewtopic.php?pid=8#p8</link>
			<description>&lt;p&gt;Для начал находим файл items.ltx, находящийся в папке config/misc/, и копируем какой-нибудь предмет, я, например, взял: &lt;br /&gt;[bread]:identity_immunities&lt;br /&gt;GroupControlSection = spawn_group&lt;br /&gt;discovery_dependency =&lt;br /&gt;$spawn = &amp;quot;food and drugs\bread&amp;quot;&lt;br /&gt;;$prefetch = 32&lt;br /&gt;class = II_FOOD&lt;br /&gt;cform = skeleton&lt;br /&gt;visual = weapons\bred\bred.ogf&lt;br /&gt;description = enc_equipment_food_bread1&lt;/p&gt;
						&lt;p&gt;inv_name = Bread&lt;br /&gt;inv_name_short = Bread&lt;br /&gt;inv_weight = 0.3 ;0.2&lt;/p&gt;
						&lt;p&gt;inv_grid_width = 1&lt;br /&gt;inv_grid_height = 1&lt;br /&gt;inv_grid_x = 11&lt;br /&gt;inv_grid_y = 9&lt;br /&gt;cost = 20&lt;/p&gt;
						&lt;p&gt;attach_angle_offset = -0.287979, 1.560923, 1.544060&lt;br /&gt;attach_position_offset = 0.096910, -0.013594, 0.107925&lt;br /&gt;attach_bone_name = bip01_r_hand&lt;br /&gt;auto_attach = false&lt;/p&gt;
						&lt;p&gt;// should be deleted after update&lt;br /&gt;bone_name = bip01_r_hand&lt;br /&gt;position_offset = 0.0,0.0,0.0&lt;br /&gt;angle_offset = 1.570790,1.570790,3.92699&lt;/p&gt;
						&lt;p&gt;; eatable item&lt;br /&gt;eat_health = 0.05&lt;br /&gt;eat_satiety = 0.2&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;/p&gt;
						&lt;p&gt;; food item&lt;br /&gt;slot = 4&lt;br /&gt;animation_slot = 4&lt;/p&gt;
						&lt;p&gt;;hud item&lt;br /&gt;hud = wpn_vodka_hud&lt;/p&gt;
						&lt;p&gt;Вставляем его копию в конец, меняем название: &lt;/p&gt;
						&lt;p&gt;[bread] &lt;/p&gt;
						&lt;p&gt;На: &lt;/p&gt;
						&lt;p&gt;[test] &lt;/p&gt;
						&lt;p&gt;А также: &lt;br /&gt;inv_name = Bread&lt;br /&gt;inv_name_short = Bread &lt;/p&gt;
						&lt;p&gt;На: &lt;br /&gt;inv_name = test&lt;br /&gt;inv_name_short = test&lt;/p&gt;
						&lt;p&gt;И description = enc_equipment_food_bread1 на description = enc_equipment_food_bread1_test &lt;/p&gt;
						&lt;p&gt;И, также, &amp;quot;по желанию&amp;quot;: &lt;/p&gt;
						&lt;p&gt;eat_health = 0.05 eat_satiety = 0.2 eat_power = 0 eat_radiation = 0 wounds_heal_perc = 0 eat_portions_num = -1 &lt;/p&gt;
						&lt;p&gt;Всё, в item.ltx работа закончена, теперь переходим к редактированию описания, открываем string_table_enc_equipment &amp;quot;Блокнотом&amp;quot;. Что мы там видим: все описания и названия прописаны по тегам: &lt;/p&gt;
						&lt;p&gt;&amp;lt;string id=&amp;quot;название из inv_name&amp;quot;&amp;gt; &amp;lt;text&amp;gt;Название в игре&amp;lt;/text&amp;gt; &amp;lt;/string&amp;gt; &lt;/p&gt;
						&lt;p&gt;И: &lt;/p&gt;
						&lt;p&gt;&amp;lt;string id=&amp;quot;описание из description&amp;quot;&amp;gt; &amp;lt;text&amp;gt;Описание в игре&amp;lt;/text&amp;gt; &amp;lt;/string&amp;gt; &lt;/p&gt;
						&lt;p&gt;Пишем: &lt;/p&gt;
						&lt;p&gt;&amp;lt;string id=&amp;quot;test&amp;quot;&amp;gt; &amp;lt;text&amp;gt;Тестовый предмет&amp;lt;/text&amp;gt; &amp;lt;/string&amp;gt; &lt;/p&gt;
						&lt;p&gt;И: &lt;/p&gt;
						&lt;p&gt;&amp;lt;string id=&amp;quot;enc_equipment_food_bread1_test&amp;quot;&amp;gt; &lt;/p&gt;
						&lt;p&gt;&amp;lt;text&amp;gt;Тестовый предмет, разработанный в сверхсекретных лабораториях Зоны :)&amp;lt;/text&amp;gt; &lt;/p&gt;
						&lt;p&gt;&amp;lt;/string&amp;gt; &lt;/p&gt;
						&lt;p&gt;Сохраняем... Все! Основная работа завершена! Теперь добавим предмет торговцам, например, Сидоровичу. &lt;/p&gt;
						&lt;p&gt;Открываем trader_trader из папки config/misc (работа с ним подробно описана в этой статье), прописываем: &lt;/p&gt;
						&lt;p&gt;test = 0.3, 0.5 &lt;/p&gt;
						&lt;p&gt;В секции: &lt;/p&gt;
						&lt;p&gt;[trader_generic_buy] &lt;/p&gt;
						&lt;p&gt;И далее в: &lt;/p&gt;
						&lt;p&gt;[supplies_start] &lt;/p&gt;
						&lt;p&gt;test = 10, 1 &lt;/p&gt;
						&lt;p&gt;В [supplies_after_fabric] &lt;/p&gt;
						&lt;p&gt;test = 10, 1 &lt;/p&gt;
						&lt;p&gt;В [trader_start_sell] &lt;/p&gt;
						&lt;p&gt;И в: &lt;/p&gt;
						&lt;p&gt;[trader_after_fabric_sell] &lt;/p&gt;
						&lt;p&gt;test = 1. 3 &lt;/p&gt;
						&lt;p&gt;Сохраняем, запускаем игру, торгуем с Сидоровичем и видим у него два вида хлеба: один из них - наш :)&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Меченый)</author>
			<pubDate>Tue, 30 Aug 2011 13:14:10 +0400</pubDate>
			<guid>https://stalkerlive.0pk.me/viewtopic.php?pid=8#p8</guid>
		</item>
		<item>
			<title>Новые артефакты</title>
			<link>https://stalkerlive.0pk.me/viewtopic.php?pid=6#p6</link>
			<description>&lt;p&gt;Заходим в папку gamedata\config\misc и открываем файл artefacts.ltx.&lt;br /&gt;И находим, например, артефакт &amp;quot;Медуза&amp;quot;: &lt;br /&gt;[af_medusa]:af_base&lt;br /&gt;GroupControlSection	= spawn_group&lt;br /&gt;$spawn&amp;#160; &amp;#160; &amp;#160; &amp;#160; = &amp;quot;artifacts\moscito medusa&amp;quot;&lt;/p&gt;
						&lt;p&gt;$prefetch &amp;#160; &amp;#160; 	= 64&lt;br /&gt;cform&amp;#160; &amp;#160; &amp;#160; &amp;#160; = skeleton&lt;br /&gt;class&amp;#160; &amp;#160; &amp;#160; &amp;#160; = ARTEFACT&lt;/p&gt;
						&lt;p&gt;visual&amp;#160; &amp;#160; &amp;#160; &amp;#160; = physics\anomaly\artefact_blackdrip.ogf&amp;#160; &lt;br /&gt;description&amp;#160; &amp;#160; 	= enc_zone_artifact_af-medusa&lt;br /&gt;inv_name&amp;#160; &amp;#160; 	= af-medusa&lt;br /&gt;inv_name_short&amp;#160; &amp;#160; = &lt;br /&gt;inv_weight&amp;#160; &amp;#160; 	= 0.5&lt;/p&gt;
						&lt;p&gt;inv_grid_x&amp;#160; &amp;#160; 	= 9&lt;br /&gt;inv_grid_y&amp;#160; &amp;#160; 	= 4&lt;/p&gt;
						&lt;p&gt;cost&amp;#160; &amp;#160; &amp;#160; &amp;#160; = 1000&lt;/p&gt;
						&lt;p&gt;jump_height&amp;#160; &amp;#160; 	= .5&lt;/p&gt;
						&lt;p&gt;particles&amp;#160; &amp;#160; 	= anomaly2\artefact\artefact_gravi&lt;/p&gt;
						&lt;p&gt;lights_enabled = false&lt;/p&gt;
						&lt;p&gt;;скорости увеличения (уменьшения) &lt;br /&gt;health_restore_speed&amp;#160; &amp;#160; = 0.0&amp;#160; &amp;#160; 	&lt;br /&gt;radiation_restore_speed&amp;#160; &amp;#160; = 0.0005&lt;br /&gt;satiety_restore_speed&amp;#160; &amp;#160; = 0.0&lt;br /&gt;power_restore_speed&amp;#160; &amp;#160; 	= 0.0&lt;br /&gt;bleeding_restore_speed&amp;#160; &amp;#160; = 0.0&lt;br /&gt;hit_absorbation_sect&amp;#160; &amp;#160; = af_medusa_absorbation&lt;/p&gt;
						&lt;p&gt;artefact_activation_seq&amp;#160; &amp;#160; = af_activation_bold&lt;/p&gt;
						&lt;p&gt;[af_medusa_absorbation]&lt;br /&gt;burn_immunity = 1.0&amp;#160; &amp;#160; &amp;#160; &amp;#160; ;коэффициенты иммунитета &lt;br /&gt;strike_immunity = 1.0&lt;br /&gt;shock_immunity = 1.0&lt;br /&gt;wound_immunity = 1.0&amp;#160; &amp;#160; &lt;br /&gt;radiation_immunity = 1.0&lt;br /&gt;telepatic_immunity = 1.0&lt;br /&gt;chemical_burn_immunity = 1.0&lt;br /&gt;explosion_immunity = 1.0&lt;br /&gt;fire_wound_immunity&amp;#160; = 0.98&lt;/p&gt;
						&lt;p&gt;В этой секции задаются параметры артефакта, начиная от внешнего вида и заканчивая коэффициентами различных эффектов вроде вывода радиации. Сделаем копию секции, принадлежающей &amp;quot;Медузе&amp;quot;, и заменим её название с af_medusa на af_romashka. &lt;/p&gt;
						&lt;p&gt;Должно выйти примерно вот так: &lt;br /&gt;[af_romashka]:af_base&lt;br /&gt;GroupControlSection	= spawn_group&lt;br /&gt;$spawn&amp;#160; &amp;#160; &amp;#160; &amp;#160; = &amp;quot;artifacts\moscito romashka&amp;quot;&lt;/p&gt;
						&lt;p&gt;$prefetch &amp;#160; &amp;#160; 	= 64&lt;br /&gt;cform&amp;#160; &amp;#160; &amp;#160; &amp;#160; = skeleton&lt;br /&gt;class&amp;#160; &amp;#160; &amp;#160; &amp;#160; = ARTEFACT&lt;/p&gt;
						&lt;p&gt;visual&amp;#160; &amp;#160; &amp;#160; &amp;#160; = physics\anomaly\artefact_blackdrip.ogf&amp;#160; &lt;br /&gt;description&amp;#160; &amp;#160; 	= enc_zone_artifact_af-romashka&lt;br /&gt;inv_name&amp;#160; &amp;#160; 	= af-romashka&lt;br /&gt;inv_name_short&amp;#160; &amp;#160; = &lt;br /&gt;inv_weight&amp;#160; &amp;#160; 	= 0.5&lt;/p&gt;
						&lt;p&gt;inv_grid_x&amp;#160; &amp;#160; 	= 9&lt;br /&gt;inv_grid_y&amp;#160; &amp;#160; 	= 4&lt;/p&gt;
						&lt;p&gt;cost&amp;#160; &amp;#160; &amp;#160; &amp;#160; = 1000&lt;/p&gt;
						&lt;p&gt;jump_height&amp;#160; &amp;#160; 	= .5&lt;/p&gt;
						&lt;p&gt;particles&amp;#160; &amp;#160; 	= anomaly2\artefact\artefact_gravi&lt;/p&gt;
						&lt;p&gt;lights_enabled = false&lt;/p&gt;
						&lt;p&gt;;скорости увеличения (уменьшения) &lt;br /&gt;health_restore_speed&amp;#160; &amp;#160; = 0.0&amp;#160; &amp;#160; 	&lt;br /&gt;radiation_restore_speed&amp;#160; &amp;#160; = 0.0005&lt;br /&gt;satiety_restore_speed&amp;#160; &amp;#160; = 0.0&lt;br /&gt;power_restore_speed&amp;#160; &amp;#160; 	= 0.0&lt;br /&gt;bleeding_restore_speed&amp;#160; &amp;#160; = 0.0&lt;br /&gt;hit_absorbation_sect&amp;#160; &amp;#160; = af_romashka_absorbation&lt;/p&gt;
						&lt;p&gt;artefact_activation_seq&amp;#160; &amp;#160; = af_activation_bold&lt;/p&gt;
						&lt;p&gt;[af_romashka_absorbation]&lt;br /&gt;burn_immunity = 1.0&amp;#160; &amp;#160; &amp;#160; &amp;#160; ;коэффициенты иммунитета &lt;br /&gt;strike_immunity = 1.0&lt;br /&gt;shock_immunity = 1.0&lt;br /&gt;wound_immunity = 1.0&amp;#160; &amp;#160; &lt;br /&gt;radiation_immunity = 1.0&lt;br /&gt;telepatic_immunity = 1.0&lt;br /&gt;chemical_burn_immunity = 1.0&lt;br /&gt;explosion_immunity = 1.0&lt;br /&gt;fire_wound_immunity&amp;#160; = 0.98&lt;/p&gt;
						&lt;p&gt;Назначение некоторых параметров, влияющих на одевшего артефакт: &lt;br /&gt;health_restore_speed - прирост к скорости восстановления здоровья &lt;br /&gt;radiation_restore_speed - прирост скорость вывода радиации &lt;br /&gt;satiety_restore_speed - прирост к голоду &lt;br /&gt;power_restore_speed - прирост к выносливости &lt;br /&gt;bleeding_restore_speed - прирост к скорости остановки кровотечений &lt;br /&gt;Создание описания и имени артефакта &lt;/p&gt;
						&lt;p&gt;Заходим в gamedata\config\text\rus и открываем файл string_table_enc_zone.xml. Добавим туда строку с названием артефакта. &lt;br /&gt; &amp;lt;string id=&amp;quot;af-Stone&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;text&amp;gt;&amp;quot;Камень&amp;quot;&amp;lt;/text&amp;gt;&lt;br /&gt;	&amp;lt;/string&amp;gt;&lt;/p&gt;
						&lt;p&gt;Теперь у артефакта есть имя, но одного его недостаточно. Нужно сделать описание.&lt;br /&gt;Поэтому добавим и его. &lt;br /&gt;	&amp;lt;string id=&amp;quot;enc_zone_artifact_af-Stone&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;text&amp;gt;Артефакт. Недавно появился в, но вроде как и все. Ученые&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; не обнаружили нового влияния артефакта.&amp;lt;/text&amp;gt;&lt;br /&gt;	&amp;lt;/string&amp;gt;&lt;/p&gt;
						&lt;p&gt;Все, поздравляю, вы только что создали свой первый артефакт! :)&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Меченый)</author>
			<pubDate>Tue, 30 Aug 2011 12:38:36 +0400</pubDate>
			<guid>https://stalkerlive.0pk.me/viewtopic.php?pid=6#p6</guid>
		</item>
		<item>
			<title>Создание нового НПС</title>
			<link>https://stalkerlive.0pk.me/viewtopic.php?pid=5#p5</link>
			<description>&lt;p&gt;Для того, чтобы создать нового НПС нам понадобятся координаты нужного места, где и будет заспаунен наш NPC. Возьмём Кордон, лагерь новичков. Можете снять координаты сами, а можете взять мною уже снятые: (-218.20,-20.2,-145.63),35362,47). Далее. Создаём файл в папке gamedata/scripts файл, скажем esc_unik_npc.script. В нём создаём функцию. Код: function esc_unik_npc () alife():create(&amp;quot;esc_unik_npc&amp;quot;,vector():set(-218.20,-20.2,-145.63),35362,47) end &lt;/p&gt;
						&lt;p&gt;Теперь мы в файле npc_profile.xml (в папке gameplay) добавляем нашего НПС. Код: &amp;lt;character id=&amp;quot;escape_trader&amp;quot;&amp;gt; &amp;lt;class&amp;gt;Trader&amp;lt;/class&amp;gt; &amp;lt;specific_character&amp;gt;escape_trader&amp;lt;/specific_character&amp;gt; &amp;lt;/character&amp;gt; &lt;/p&gt;
						&lt;p&gt;&amp;lt;character id=&amp;quot;esc_unik_npc&amp;quot;&amp;gt; &amp;lt;class&amp;gt;esc_unik_npc&amp;lt;/class&amp;gt; &amp;lt;specific_character&amp;gt;esc_unik_npc&amp;lt;/specific_character&amp;gt; &amp;lt;/character&amp;gt; &lt;/p&gt;
						&lt;p&gt;Копируем или создаём по образцу только нижний блок&amp;#160; Второго торговца нам ненадо. Теперь моздадим секцию нашего персоонажа. В файле spawn_section.ltx (gamedata/config/creatures) в блоке: &lt;/p&gt;
						&lt;p&gt;--------Escape-------------- &lt;br /&gt;--------neutrals------------ &lt;/p&gt;
						&lt;p&gt;Создаём секцию. Код: [esc_unik_npc]:stalker $spawn = &amp;quot;respawn\esc_unik_npc&amp;quot; character_profile = esc_unik_npc spec_rank = regular community = dolg &lt;/p&gt;
						&lt;p&gt;В строке community можете вместо долга вписать другую группировку. Однако если мы хотим, чтоба наш персоонаж не гулял по Зоне, пока не наткнётся на первуюю аномалию, то пропишем чтобы он стоял на месте. Для этого под community вставляем: custom_data = scripts\esc_unik_npc.ltx Далее создаём в gamedata/config папку scripts в в папке создаём файл esc_unik_npc.ltx В наш созданый файл вставляем: Код: [logic] active = remark1 danger = danger_ignore &lt;/p&gt;
						&lt;p&gt;[danger_ignore] ignore_distance = 5 &lt;/p&gt;
						&lt;p&gt;[remark1] no_move = true &lt;/p&gt;
						&lt;p&gt;Всё наш НПС будет стоять на месте своего спауна. Едем дальше. Нам надо активировать нашего персоонажа. для этого мы должны вставить строку: &amp;lt;action&amp;gt;esc_unik_npc.esc_unik_npc&amp;lt;/action&amp;gt; Либо в диалог, либо в какой-нибудь квест. Давайте вставим строку в файл info_portions.xml (gamedata/gameplay) под Код: &amp;lt;game_information_portions&amp;gt; &lt;/p&gt;
						&lt;p&gt;&amp;lt;info_portion id=&amp;quot;storyline_actor_start&amp;quot;&amp;gt; &lt;br /&gt;&amp;lt;task&amp;gt;storyline_eliminate_gunslinger&amp;lt;/task&amp;gt; &lt;/p&gt;
						&lt;p&gt;Выклядеть это будет так: &lt;/p&gt;
						&lt;p&gt;Код: &amp;lt;game_information_portions&amp;gt; &lt;/p&gt;
						&lt;p&gt;&amp;lt;info_portion id=&amp;quot;storyline_actor_start&amp;quot;&amp;gt; &lt;br /&gt;&amp;lt;task&amp;gt;storyline_eliminate_gunslinger&amp;lt;/task&amp;gt; &lt;br /&gt;&amp;lt;action&amp;gt;esc_unik_npc.esc_unik_npc&amp;lt;/action&amp;gt; &lt;br /&gt;&amp;lt;/info_portion&amp;gt; &lt;/p&gt;
						&lt;p&gt;Однако мы не прописали самого НПС, как личность&amp;#160; В файле character_desc_escape.xml (gamedata/gameplay) добавляем: Код: &amp;lt;specific_character id=&amp;quot;esc_unik_npc&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt; &amp;lt;name&amp;gt;GENERATE_NAME_bandit&amp;lt;/name&amp;gt; &amp;lt;icon&amp;gt;ui_npc_u_stalker_bandit_3&amp;lt;/icon&amp;gt; &amp;lt;bio&amp;gt;esc_wolf_bio&amp;lt;/bio&amp;gt; &lt;/p&gt;
						&lt;p&gt;&amp;lt;class&amp;gt;esc_otbrosi_1&amp;lt;/class&amp;gt; &amp;lt;community&amp;gt;dolg&amp;lt;/community&amp;gt; &amp;lt;terrain_sect&amp;gt;stalker_terrain&amp;lt;/terrain_sect&amp;gt; &lt;/p&gt;
						&lt;p&gt;&amp;lt;rank&amp;gt;367&amp;lt;/rank&amp;gt; &amp;lt;reputation&amp;gt;-60&amp;lt;/reputation&amp;gt; &amp;lt;money min=&amp;quot;600&amp;quot; max=&amp;quot;2000&amp;quot; infinitive=&amp;quot;1&amp;quot;/&amp;gt; &lt;/p&gt;
						&lt;p&gt;&amp;lt;snd_config&amp;gt;characters_voice\human_01\monolith\&amp;lt;/snd_config&amp;gt; &amp;lt;crouch_type&amp;gt;-1&amp;lt;/crouch_type&amp;gt; &lt;/p&gt;
						&lt;p&gt;&amp;lt;visual&amp;gt;actors\bandit\stalker_bandit_3&amp;lt;/visual&amp;gt; &amp;lt;supplies&amp;gt; [spawn] \n &lt;/p&gt;
						&lt;p&gt;wpn_groza \n &lt;/p&gt;
						&lt;p&gt;ammo_9x39_pab9 \n &lt;/p&gt;
						&lt;p&gt;1. include &amp;quot;gameplay\character_items.xml&amp;quot; \n &lt;br /&gt;2. include &amp;quot;gameplay\character_food.xml&amp;quot; &lt;/p&gt;
						&lt;p&gt;&amp;lt;/supplies&amp;gt; &lt;/p&gt;
						&lt;p&gt;1. include &amp;quot;gameplay\character_criticals_3.xml&amp;quot; &lt;/p&gt;
						&lt;p&gt;1. include &amp;quot;gameplay\character_dialogs.xml&amp;quot; &lt;/p&gt;
						&lt;p&gt;&amp;lt;/specific_character&amp;gt; &lt;/p&gt;
						&lt;p&gt;Правда тут получится у нас долговец в одежде бандита и говорящего голосом монолитовца xD Всё сохроняем. НПС готов. &lt;/p&gt;
						&lt;p&gt;Но так же можно добавить нашему НПС диалог) Как добавлять диалоги написано в нашем факе) Если хотяте сделать нашему НПС своё имя то в файле stable_bio_name.xml (gamedata/config/text/rus) добавляем: Код: &amp;lt;string id=&amp;quot;esc_unik_npc&amp;quot;&amp;gt; &amp;lt;text&amp;gt;Факер-мазафакер&amp;lt;/text&amp;gt; &amp;lt;/string&amp;gt; &lt;/p&gt;
						&lt;p&gt;А в файле сharacter_desc_escape.xml (gamedata/gameplay) находим нашего уже прописаного НПС и вставляем в секцию &amp;lt;name&amp;gt;&amp;lt;/name&amp;gt; (у нас в ней написано GENERATE_NAME_bandit) esc_unik_npc Всё&amp;#160; Поздравляю)&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Меченый)</author>
			<pubDate>Mon, 29 Aug 2011 00:43:45 +0400</pubDate>
			<guid>https://stalkerlive.0pk.me/viewtopic.php?pid=5#p5</guid>
		</item>
		<item>
			<title>Новые задания</title>
			<link>https://stalkerlive.0pk.me/viewtopic.php?pid=4#p4</link>
			<description>&lt;p&gt;С чего же начать? Первым делом попрактикуемся в создании несложных типовых заданий типа «убить сталкера», «уничтожить лагерь», «найди ценный артефакт».&lt;/p&gt;
						&lt;p&gt;Запустите «Блокнот» и подгрузите в него файл task_manager.ltx из директории gamedata\config\misc с распакованной игрой (если у вас есть лишь недавно установленная версия «Сталкера», разархивируйте базы данных игры при помощи утилиты S.T.A.L.K.E.R. Data Unpacker).&lt;/p&gt;
						&lt;p&gt;Файл содержит информацию о простейших игровых заданиях. Структура его следующая. В первой части файла — от оператора [list] до кейворда sar_monolith — объявляются специальные метки, ответственные за подключение новых квестов к игре. Пример одной из таких конструкций — буквосочетание tm_kill_stalker_5, это название типовой миссии. Во второй части файла — после ключевого слова sar_monolith — размещаются тексты заданий: цели, задачи, ссылки на диалоги. Разберем структуру одного из квестов, начинающегося со специальной метки [tm_kill_stalker_3] (обратите внимание, что при объявлении задания в первой части файла квадратные скобки ставить не нужно):&lt;/p&gt;
						&lt;p&gt;[tm_kill_stalker_3]&lt;/p&gt;
						&lt;p&gt;type = kill_stalker&lt;/p&gt;
						&lt;p&gt;community = actor&lt;/p&gt;
						&lt;p&gt;text = tm_kill_stalker_3_text&lt;/p&gt;
						&lt;p&gt;description = tm_kill_stalker_3_descr&lt;/p&gt;
						&lt;p&gt;parent = trader&lt;/p&gt;
						&lt;p&gt;target = sim_stalker_novice&lt;/p&gt;
						&lt;p&gt;;reward_money = 1000&lt;/p&gt;
						&lt;p&gt;reward_reputation = -5&lt;/p&gt;
						&lt;p&gt;reward_rank = 2&lt;/p&gt;
						&lt;p&gt;reward_item = af_blood&lt;/p&gt;
						&lt;p&gt;time = 86400&lt;/p&gt;
						&lt;p&gt;prior = 2&lt;/p&gt;
						&lt;p&gt;Рассмотрим основные параметры. Самый первый — type — отвечает за тип задания, в данном случае — уничтожить сталкера (kill_stalker). В игре предусмотрено несколько видов стандартных заданий: уничтожение/защита лагеря (параметр eliminate_lager/defend_lager), убийство сталкера (kill_stalker), поиск артефакта/конечности монстра/предмета (artifact/monster_part/find_item).	&lt;br /&gt;Поскольку специальных редакторов и утилит для изменения «Сталкера» нет, приходится править скрипты в «Блокноте», а игровые тексты — в табличном редакторе Excel. Не очень удобно, но альтернативы просто нет. &lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Параметр community определяет группировку, к которой принадлежит главный герой. По умолчанию во всех миссиях в качестве значения данной характеристики используется ключевое слово actor (персонаж).&lt;/p&gt;
						&lt;p&gt;text — название записи в файле stable_task_manager.xml, содержащей текст задания. Текст отображается в диалогах.&lt;/p&gt;
						&lt;p&gt;description — запись в файле stable_task_manager.xml. Здесь собран текст миссии, выводимый на PDA Меченого.&lt;/p&gt;
						&lt;p&gt;Следующая настройка — атрибут parent — определяет имя заказчика, в данном случае trader (торговец Сидорович).&lt;/p&gt;
						&lt;p&gt;target — цель миссии, в текущем квесте — убийство одного из сталкеров — novice (sim_stalker_novice).&lt;/p&gt;
						&lt;p&gt;reward_money — награда, которую получит игрок после выполнения задания.&lt;/p&gt;
						&lt;p&gt;reward_reputation — число очков репутации, добавляемое игроку после прохождения квеста. Вы можете понизить Меченому репутацию за выполнение задания, выставив в качестве значения атрибута любое целое отрицательное число.&lt;/p&gt;
						&lt;p&gt;reward_rank — количество ранговых очков за выполнение миссии.&lt;/p&gt;
						&lt;p&gt;reward_item — бонусные предметы, вручаемые главному герою, за прохождение квеста.&lt;/p&gt;
						&lt;p&gt;time — время (в секундах), в течение которого игрок должен пройти миссию.&lt;/p&gt;
						&lt;p&gt;prior — приоритет данного задания перед остальными. Цифра 1 ставится в том случае, если задание крайне важно, и далее по нисходящей.&lt;/p&gt;
						&lt;p&gt;Самое время попрактиковаться и модифицировать какой-нибудь оригинальный игровой квест. Отыщите строку [tm_kill_stalker_5] (для вызова меню поиска в «Блокноте» воспользуйтесь комбинацией горячих клавиш Ctrl+F) и модифицируйте параметры данной миссии. Например, вы можете просто повысить/понизить сложность игры, увеличив или уменьшив время, отведенное игроку на выполнение задания (параметр time), снять значок блокировки строки (символ ;), reward_money (денежное вознаграждение) или, скажем, придать параметру reward_reputation значение ноль, чтобы Меченый не терял репутацию в Зоне.&lt;br /&gt;Текстовый беспредел&lt;/p&gt;
						&lt;p&gt;С правкой исходного кода миссии мы разобрались. Движемся дальше и приступаем к модификации игровых текстов. Загляните в каталог gamedata\config\text\rus установленной игры, отыщите в директории файл stable_task_manager.xml и откройте его при помощи табличного редактора Microsoft Excel.&lt;/p&gt;
						&lt;p&gt;После запуска программы вы увидите, что вся информация из XML-файла будет распределена по двум столбцам — A и B, которым соответствуют названия id (идентификационный номер) и text (текст). Если спускаться плавно вниз по столбцу id, то нетрудно установить так называемую закономерность. Строки 3, 6, 9 и далее в арифметической прогрессии содержат заголовок типовой миссии. Строки 4, 7, 10, 13, 16 с окончанием _descr — краткое описание (цель задания), выводимое на PDA главного героя. Ну а строки 5, 8, 11, 14 и далее, заканчивающаяся на _text, содержат текст, отображаемый во время диалога с персонажем, у которого вы получили задание.&lt;/p&gt;
						&lt;p&gt;Таким образом, для изменения текстов того или иного одноуровневого задания, прописанного в файле task_manager.ltx, вам нужно проделать следующие нехитрые манипуляции. Первым делом скопируйте в «Блокнот» название определенной миссии из task_manager.ltx (без квадратных скобок), ее описание для вывода на PDA (параметр description) и текст диалога (text). Затем поочередно отыщите выписанные ключевые слова в XML-файле stable_task_manager.xml и модифицируйте текст каждой из записей. Закончив правку задания, сохраните все изменения и протестируйте квест в игре.Тонкости квестостроения&lt;/p&gt;
						&lt;p&gt;Чтобы оставить свой собственный авторский след в файле task_manager.ltx, да и вообще в любом конфигурационном файле «Сталкера», нужно всего-то лишь поставить в нужном месте (после кода или с новой строки) символ точки с запятой и после него вживить комментарий, например: tm_eliminate_camp_4 ; игроманский комментарий, не удалять.&lt;br /&gt;Далеко не все квесты, написанные разработчиками, вошли в оригинальную игру. Что, никогда о таком не слышали? Тогда имейте в виду, что, например, в файле task_manager.ltx содержится ряд закомментированных, но вполне рабочих заданий, цель которых сводится к убийству сталкеров и поиску полезных вещиц. После тщательного прочесывания документа на наличие такого рода заданий мы обнаружили следующие заблокированные квесты:&lt;/p&gt;
						&lt;p&gt;;--[barmen_eliminate_camp_3]&lt;/p&gt;
						&lt;p&gt;;--[barmen_find_item_1]&lt;/p&gt;
						&lt;p&gt;;--[barmen_find_item_2]&lt;/p&gt;
						&lt;p&gt;;--[barmen_find_item_3]&lt;br /&gt;Для преобразования геймплея S.T.A.L.K.E.R. достаточно поправить всего лишь несколько параметров каждой типовой миссии в файле task_manager.ltx. Как вариант, вы можете значительно сократить время, отведенное на выполнение каждого квеста, занизить очки репутации за прохождение той или иной миссии, но в то же время в несколько раз увеличить число бонусов и денежных средств.&lt;/p&gt;
						&lt;p&gt;Квестострой&lt;/p&gt;
						&lt;p&gt;Теперь, когда вы изучили основы редактирования однотипных игровых заданий, можно попробовать силы в написании своего собственного квеста — создать необходимые записи в менеджере заданий (файл task_manager.ltx), а также снабдить квест текстовыми описаниями.&lt;/p&gt;
						&lt;p&gt;Запустите «Блокнот» и подгрузите в него файл task_manager.ltx из директории gamedata\config\misc. Отыщите ключевое слово sar_monolith и после него с новой строки добавьте следующую конструкцию:&lt;/p&gt;
						&lt;p&gt;; Ваш авторский комментарий&lt;/p&gt;
						&lt;p&gt;[mission_name]&lt;/p&gt;
						&lt;p&gt;Здесь [mission_name] — произвольное наименование квеста, например, tm_kill_stalker_7.&lt;/p&gt;
						&lt;p&gt;Для изменения игрового баланса нужно отредактировать коды типовых заданий. &lt;/p&gt;
						&lt;p&gt;Далее скопируйте какое-нибудь типовое задание, например, [tm_kill_stalker_2] в буфер обмена и поместите дубликат в самый конец документа. Измените название клонированной миссии, заключенное в квадратные скобки, на название квеста, объявленного вами в списке заданий. Модифицируйте параметры оригинальной миссии, при необходимости добавьте в код миссии дополнительные команды. Самое главное — не забудьте поправить значения параметров text и description, которые соответствуют названиям текстовых записей в файлах gamedata\config\gameplay\storyline_info_taskmanager.xml и gamedata\config\text\rus\stable_task_manager.xml. Затем откройте «Блокнотом» XML-файл storyline_info_taskmanager.xml из каталога gamedata\config\gameplay с игрой и добавьте в конец файла следующий блок:&lt;/p&gt;
						&lt;p&gt;&amp;lt;article id=&amp;quot;[descr]&amp;quot; name=&amp;quot;kill_stalker&amp;quot; article_type=&amp;quot;task&amp;quot;&amp;gt;&lt;/p&gt;
						&lt;p&gt;&amp;lt;text&amp;gt;[descr] &amp;lt;/text&amp;gt;&lt;/p&gt;
						&lt;p&gt;&amp;lt;/article&amp;gt;&lt;/p&gt;
						&lt;p&gt;В данном фрагменте кода [descr] — значение параметра description в теле миссии, (в нашем случае — tm_kill_stalker_7_descr).&lt;/p&gt;
						&lt;p&gt;Осталось внести изменения в файл stable_task_manager.xml, содержащий тексты заданий на русском языке. Перейдите в каталог gamedata\config\text\rus и при помощи любого табличного редактора — скажем, Excel — откройте файл stable_task_manager.xml. Передвиньте ползунок в правой части программы в нижнюю часть документа. В ячейке на пересечении 391 строки и первого столбца введите ключевое слово, соответствующее названию вашего квеста в файле task_manager.ltx. После этого в поле напротив (ячейка B-391) напечатайте название будущего задания.&lt;/p&gt;
						&lt;p&gt;В поле A-392 (A — название столбца, 392 — порядковый номер строки) вбейте название, прописанное в качестве параметра description вашей миссии, а в области B-392 — текст сообщения, который будет подан на PDA главного героя. В ячейке A-393 пропишите значение характеристики text вашей миссии и в поле напротив наберите текст задания для отображения во время беседы между Меченым и работодателем. Сохраните изменения и закройте табличный редактор.&lt;br /&gt;* * *&lt;/p&gt;
						&lt;p&gt;Мы изучили азы создания несложных квестов для S.T.A.L.K.E.R. и попутно разобрали структуру скриптовых файлов. Если тема создания новых миссий для «Сталкера» вам интересна, обязательно загляните в раздел «Игрострой» на нашем DVD. Там вас поджидает подробное руководство по разработке сложных миссий и написанию нелинейных диалогов для S.T.A.L.K.E.R.. Заранее предупреждаем — материал рассчитан на модмейкеров со стажем.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Меченый)</author>
			<pubDate>Mon, 29 Aug 2011 00:41:41 +0400</pubDate>
			<guid>https://stalkerlive.0pk.me/viewtopic.php?pid=4#p4</guid>
		</item>
		<item>
			<title>Новые группировки</title>
			<link>https://stalkerlive.0pk.me/viewtopic.php?pid=3#p3</link>
			<description>&lt;p&gt;Сегодня мы создадим новую группировку. Назовем её, скажем, &amp;quot;Ветер&amp;quot;. Не суть важно. &lt;br /&gt;Практика&lt;br /&gt;Базовый уровень&lt;/p&gt;
						&lt;p&gt;1. Для начала в game_relations.ltx и в таблицу отношений группировок в конце и в заголовке добавляем название своей группировки и коэффициенты отношений к ней у других группировок. Также, не забываем прописать её собственное отношение к другим группировкам: &lt;br /&gt;[communities_relations]&lt;br /&gt;;|actor&amp;#160; |act_dol|act_fre|stalker|monolit|militar|killer |ecolog |dolg&amp;#160; &amp;#160;|freedom|bandit |zombied|strange|trader|arena_enemy|wind|&lt;br /&gt;;=================================================================================================================================&lt;br /&gt;actor = 0,	&amp;#160; &amp;#160;0,	&amp;#160; &amp;#160;0,	&amp;#160; &amp;#160;0,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; &amp;#160; &amp;#160; 0,	&amp;#160; &amp;#160;0,	&amp;#160; &amp;#160;0,&amp;#160; -5000,&amp;#160; -5000,	&amp;#160; &amp;#160;0,	&amp;#160; 0,&amp;#160; -5000, 0&lt;br /&gt;actor_dolg = 0,	&amp;#160; &amp;#160;0,	&amp;#160; &amp;#160;0,&amp;#160; &amp;#160; &amp;#160; 0,&amp;#160; -5000,&amp;#160; &amp;#160;-500,&amp;#160; -5000,&amp;#160; &amp;#160;5000,&amp;#160; &amp;#160; 600,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; -5000,	&amp;#160; &amp;#160;0,	&amp;#160; 0,&amp;#160; -5000&lt;br /&gt;actor_freedom = 0,	&amp;#160; &amp;#160;0,	&amp;#160; &amp;#160;0,	&amp;#160; &amp;#160;0,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; -1500,&amp;#160; -5000,&amp;#160; &amp;#160;5000,	&amp;#160; &amp;#160;0,&amp;#160; -5000,	&amp;#160; &amp;#160;0,	 0,&amp;#160; -5000, 0&lt;/p&gt;
						&lt;p&gt;stalker	= 0,	&amp;#160; &amp;#160;0,	&amp;#160; &amp;#160;0,	&amp;#160; &amp;#160;0,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; &amp;#160; &amp;#160; 0,	&amp;#160; &amp;#160;0,	&amp;#160; &amp;#160;0,&amp;#160; -5000,&amp;#160; -5000,	&amp;#160; &amp;#160;0,	&amp;#160; 0,&amp;#160; -5000, 0&lt;br /&gt;monolith = -5000,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; &amp;#160;5000,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; &amp;#160;5000,&amp;#160; &amp;#160;5000,&amp;#160; -5000,	 0,&amp;#160; -5000, 0&lt;br /&gt;military = -5000,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; &amp;#160;5000,&amp;#160; -5000,&amp;#160; &amp;#160; &amp;#160; 0,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; -5000, 	&amp;#160; &amp;#160;0,	 0,&amp;#160; -5000, 0&lt;br /&gt;killer = -5000,&amp;#160; -5000,&amp;#160; &amp;#160; &amp;#160; 0,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; &amp;#160;5000,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; -5000,	&amp;#160; &amp;#160;0,&amp;#160; -5000,&amp;#160; -5000,	&amp;#160; 0,&amp;#160; -5000, 0&lt;br /&gt;ecolog = 0,	 600,&amp;#160; -5000,&amp;#160; &amp;#160; &amp;#160; 0,&amp;#160; -5000,&amp;#160; &amp;#160;1000,&amp;#160; -5000,&amp;#160; &amp;#160;5000,&amp;#160; &amp;#160; 500,&amp;#160; -5000,&amp;#160; &amp;#160;-500,&amp;#160; -5000,	&amp;#160; &amp;#160;0,	&amp;#160; 0,&amp;#160; &amp;#160; &amp;#160; 0, 0&lt;br /&gt;dolg = 0,&amp;#160; &amp;#160; 600,&amp;#160; -5000,&amp;#160; &amp;#160; &amp;#160; 0,&amp;#160; -5000,&amp;#160; &amp;#160;-500,&amp;#160; -5000,&amp;#160; &amp;#160;5000,&amp;#160; &amp;#160;5000,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; -5000,	&amp;#160; &amp;#160;0,	&amp;#160; 0,&amp;#160; &amp;#160; &amp;#160; 0, 0&lt;br /&gt;freedom = 0,&amp;#160; -5000,	 600,	&amp;#160; &amp;#160;0,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; -1500,&amp;#160; -5000,&amp;#160; &amp;#160;5000,	&amp;#160; &amp;#160;0,&amp;#160; -5000,	&amp;#160; &amp;#160;0,	&amp;#160; 0,&amp;#160; &amp;#160; &amp;#160; 0, 0&lt;br /&gt;bandit = -5000,&amp;#160; -5000,	&amp;#160; &amp;#160;0,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; &amp;#160;-500,&amp;#160; &amp;#160; &amp;#160; 0,&amp;#160; -5000,&amp;#160; -5000,	&amp;#160; &amp;#160;0,	&amp;#160; &amp;#160;0,&amp;#160; -5000,&amp;#160; -5000,	&amp;#160; 0,&amp;#160; -5000, 0&lt;br /&gt;zombied	= -5000,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; &amp;#160;5000,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; &amp;#160;5000,&amp;#160; -5000,	 0,&amp;#160; -5000, 0&lt;br /&gt;stranger = 0,	&amp;#160; &amp;#160;0,	&amp;#160; &amp;#160;0,&amp;#160; &amp;#160; &amp;#160; 0,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; &amp;#160; &amp;#160; 0,	&amp;#160; &amp;#160;0,	&amp;#160; &amp;#160;0,&amp;#160; &amp;#160;-500,&amp;#160; -5000,	&amp;#160; &amp;#160;0,	&amp;#160; 0,&amp;#160; &amp;#160; &amp;#160; 0, 0&lt;br /&gt;trader = 0,	&amp;#160; &amp;#160;0,	&amp;#160; &amp;#160;0,	&amp;#160; &amp;#160;0,	&amp;#160; &amp;#160;0, 	&amp;#160; &amp;#160;0,	&amp;#160; &amp;#160;0,	&amp;#160; &amp;#160;0,	&amp;#160; &amp;#160;0,	&amp;#160; &amp;#160;0,	&amp;#160; &amp;#160;0,	&amp;#160; &amp;#160;0,&amp;#160; &amp;#160; &amp;#160; 0,	&amp;#160; 0,&amp;#160; &amp;#160; &amp;#160; 0&lt;br /&gt;arena_enemy = -5000,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; &amp;#160; &amp;#160; 0,&amp;#160; &amp;#160; &amp;#160; 0,&amp;#160; &amp;#160; &amp;#160; 0,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; &amp;#160; &amp;#160; 0,&amp;#160; &amp;#160; &amp;#160; 0,	&amp;#160; 0,&amp;#160; &amp;#160; &amp;#160;0, 0&lt;/p&gt;
						&lt;p&gt;wind = 0,	&amp;#160; &amp;#160;0,	&amp;#160; &amp;#160;0,	&amp;#160; &amp;#160;0,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; -5000,&amp;#160; &amp;#160; &amp;#160; 0,	&amp;#160; &amp;#160;0,	&amp;#160; &amp;#160;0,&amp;#160; -5000,&amp;#160; -5000,	&amp;#160; &amp;#160;0,	&amp;#160; 0,&amp;#160; -5000, 0&lt;/p&gt;
						&lt;p&gt;Также, изменим эту строку, добавив туда имя и номер группировки: &lt;br /&gt;;названия группировок&lt;br /&gt;communities = actor, 0, actor_dolg, 1, actor_freedom, 2, stalker, 5, monolith, 6, military, 7, killer, 8, ecolog, 9, dolg, 10, &lt;br /&gt;freedom, 11, bandit, 12, zombied, 13, stranger, 14, trader, 15, arena_enemy, 16, wind, 18,&lt;/p&gt;
						&lt;p&gt;Отсчет идет построчно начиная сверху. Хотя есть небольшой нюанс. У первых трех строк - нумерация начинается с нуля, с остальных группировок она идет как надо. Для wind выставили 18, так как мы эту группировку отделили от других. &lt;/p&gt;
						&lt;p&gt;Далее, в разделе [communities_sympathy] в конце добавляем свою группировку и коэффициент &amp;quot;впечатлительности&amp;quot; - чем он меньше, тем меньше отношение группировки будет меняться к вам в целом: &lt;br /&gt;[communities_sympathy]&lt;br /&gt;actor&amp;#160; &amp;#160; =&amp;#160; &amp;#160; 0.0&lt;br /&gt;actor_dolg	=&amp;#160; &amp;#160; 0.0&lt;br /&gt;actor_freedom	=&amp;#160; &amp;#160; 0.0&lt;br /&gt;stalker&amp;#160; &amp;#160; =&amp;#160; &amp;#160; 0.0&lt;br /&gt;monolith	=&amp;#160; &amp;#160; 0.0&lt;br /&gt;military	=&amp;#160; &amp;#160; 0.0&lt;br /&gt;killer&amp;#160; &amp;#160; =&amp;#160; &amp;#160; 0.0&lt;br /&gt;ecolog&amp;#160; &amp;#160; =&amp;#160; &amp;#160; 0.0&lt;br /&gt;dolg&amp;#160; &amp;#160; =&amp;#160; &amp;#160; 0.1&lt;br /&gt;freedom&amp;#160; &amp;#160; =&amp;#160; &amp;#160; 0.1&lt;br /&gt;bandit&amp;#160; &amp;#160; =&amp;#160; &amp;#160; 0.0&lt;br /&gt;zombied&amp;#160; &amp;#160; =&amp;#160; &amp;#160; 0.0&lt;br /&gt;trader&amp;#160; &amp;#160; =&amp;#160; &amp;#160; 0.0&lt;br /&gt;stranger	=&amp;#160; &amp;#160; 0.0&lt;br /&gt;arena_enemy	=	&amp;#160; &amp;#160; 	0.0&lt;br /&gt;wind &amp;#160; &amp;#160; = &amp;#160; &amp;#160; 0.0&lt;/p&gt;
						&lt;p&gt;2. После этого в файле death_manager.script ищем строку local community_list и в скобках добавляем название своей группировки: &lt;br /&gt;function init_drop_settings()&lt;br /&gt;	local community_list = { &amp;quot;stalker&amp;quot;, &amp;quot;dolg&amp;quot;, &amp;quot;freedom&amp;quot;, &amp;quot;bandit&amp;quot;, &amp;quot;military&amp;quot;, &amp;quot;zombied&amp;quot;, &amp;quot;ecolog&amp;quot;, &amp;quot;killer&amp;quot;, &amp;quot;monolith&amp;quot;, &lt;br /&gt;&amp;quot;arena_enemy&amp;quot;, &amp;quot;actor_dolg&amp;quot;, &amp;quot;wind&amp;quot; }&lt;/p&gt;
						&lt;p&gt;3. В файле death_items_by_communities.ltx пишем [x]:stalker (вместо x - название вашей группировки): &lt;br /&gt;[...]&lt;br /&gt;af_dummy_spring&amp;#160; &amp;#160; 	= 0&lt;br /&gt;af_fuzz_kolobok&amp;#160; &amp;#160; 	= 0&lt;/p&gt;
						&lt;p&gt;;Еда&lt;br /&gt;vodka&amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= 0&lt;/p&gt;
						&lt;p&gt;[arena_enemy]&lt;br /&gt;[actor_dolg]&lt;/p&gt;
						&lt;p&gt;[wind]: stalker&lt;br /&gt;bread&amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= 0&lt;br /&gt;kolbasa&amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= 0&lt;br /&gt;vodka&amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= 0&lt;br /&gt;energy_drink&amp;#160; &amp;#160; 	= 0.3&lt;/p&gt;
						&lt;p&gt;4. Если предусматривается респавн бойцов новой группировки, в se_respawn.script прописываем в local simMaxCount = { после строчек с зомбированными сталкерами строку: &lt;br /&gt;wind_novice = 20, wind_regular = 20, wind_veteran = 20, wind_master = 6,&lt;/p&gt;
						&lt;p&gt;5. Чтобы при убийстве непися новой группировки игра не вылетала в xr_statistic.script, &lt;/p&gt;
						&lt;p&gt;после строки: &lt;br /&gt;zombied_novice = 1, zombied_experienced = 2, zombied_veteran = 3, zombied_master = 4,&lt;/p&gt;
						&lt;p&gt;пишем &lt;br /&gt;dark_stalker_novice = 1, dark_stalker_experienced = 2, dark_stalker_veteran = 3, dark_stalker_master = 4,&lt;/p&gt;
						&lt;p&gt;6. Ну а в character_desc_x.xml выбираем любого NPC (или группу) и меняем группировку на свою: &lt;br /&gt;&amp;lt;!---esc_wolf---&amp;gt;&lt;br /&gt;	&amp;lt;specific_character id=&amp;quot;esc_wolf&amp;quot; team_default = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;name&amp;gt;esc_wolf_name&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;icon&amp;gt;ui_npc_u_stalker_neytral_balon_1&amp;lt;/icon&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;bio&amp;gt;esc_wolf_bio&amp;lt;/bio&amp;gt;&lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; &amp;lt;class&amp;gt;esc_wolf&amp;lt;/class&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;community&amp;gt;wind&amp;lt;/community&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; [...]&lt;/p&gt;
						&lt;p&gt;7. Чтобы у персонажа в графе &amp;quot;Группировка&amp;quot; отображалось не &amp;quot;wind&amp;quot;, а &amp;quot;Ветер&amp;quot;, зарегистрируем соответствующую строку в файле string_table_general.xml: &lt;br /&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;windows-1251&amp;quot; ?&amp;gt;&lt;br /&gt;&amp;lt;string_table&amp;gt;&lt;br /&gt;	&amp;lt;string id=&amp;quot;wind&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &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;actor&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;text&amp;gt;Одиночка&amp;lt;/text&amp;gt;&lt;br /&gt;	&amp;lt;/string&amp;gt;&lt;br /&gt;	[...]&lt;/p&gt;
						&lt;p&gt;8. Существует возможность создать для нашей новой группировки места, где они будут ходить (*_terrain брать из m_stalker.ltx): &lt;/p&gt;
						&lt;p&gt;То есть, к примеру, существует секция: &lt;br /&gt;[stalker_terrain]&lt;br /&gt;	255,000,255,255&lt;br /&gt;	008,001,255,255 ;Разрешено ходить по опасным местам на баре&lt;br /&gt;	012,001,255,255 ;Разрешено ходить по опасным местам на Милитари&lt;/p&gt;
						&lt;p&gt;Тогда можно создать новую, по аналогии: &lt;br /&gt;[wind_terrain]&lt;br /&gt;	255,000,255,255&lt;br /&gt;	008,001,255,255 ;Разрешено ходить по опасным местам на баре&lt;br /&gt;	012,001,255,255 ;Разрешено ходить по опасным местам на Милитари&lt;br /&gt;	010,001,255,255	;Разрешено ходить по опасным местам на янтаре&lt;/p&gt;
						&lt;p&gt;Здесь, очевидно, указаны координаты самого уровня. Для каждого уровня существует своя начальная координата. &lt;br /&gt;Продвинутый уровень&lt;/p&gt;
						&lt;p&gt;Такой метод достаточно примитивен. Это не полноценная группировка. Нам нужны соответствующие диалоги, возможность получения квестов и вступления в группировку, уникальные NPC. &lt;br /&gt;Квесты&lt;/p&gt;
						&lt;p&gt;Добавим квесты, которые нужно выполнить для группировки. Пока - простые поручения распространенных типов. &lt;/p&gt;
						&lt;p&gt;Во-первых, пропишите в список диалогов персонажа следующие строки: &lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;actor_dialog&amp;gt;[что-нибудь]_dialog&amp;lt;/actor_dialog&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;actor_dialog&amp;gt;[что-нибудь]_reward&amp;lt;/actor_dialog&amp;gt;&lt;/p&gt;
						&lt;p&gt;Примеры названий: tm_trader_dialog, tm_wolf_dialog... &lt;/p&gt;
						&lt;p&gt;Внимание! Метод не проверен. &lt;/p&gt;
						&lt;p&gt;Этим мы добавили ему ветку диалога &amp;quot;Есть работа?&amp;quot;, а также ветку для награды за квест/отказа от него. Теперь зарегистрируем в task_manager.ltx набор новых заданий. &lt;br /&gt;[list]&lt;/p&gt;
						&lt;p&gt;[...]&lt;/p&gt;
						&lt;p&gt;;--------Wind------------------------&lt;br /&gt;;----------Kill Stalker----&lt;br /&gt;wind_kill_stalker&lt;br /&gt;;----------Find Item----	&lt;br /&gt;wind_find_item&lt;/p&gt;
						&lt;p&gt;[...]&lt;/p&gt;
						&lt;p&gt;;tasks for Wind	&lt;/p&gt;
						&lt;p&gt;[wind_find_item]&lt;br /&gt;type = find_item&lt;br /&gt;community = actor&lt;br /&gt;text = [ссылка на текст с рассказом заказчика о задании]&lt;br /&gt;description = [ссылка на текст с описанием задания]&lt;br /&gt;parent = [имя NPC-заказчика]&lt;br /&gt;target = scientific_outfit&lt;br /&gt;reward_money = 5000&lt;br /&gt;reward_reputation = +5&lt;br /&gt;reward_rank = 4&lt;br /&gt;reward_item = wpn_sig_m1&lt;br /&gt;time = 86400&lt;/p&gt;
						&lt;p&gt;[wind_kill_stalker]&lt;br /&gt;type = kill_stalker&lt;br /&gt;community = actor&lt;br /&gt;text = [ссылка на текст с рассказом заказчика о задании]&lt;br /&gt;description = [ссылка на текст с описанием задания]&lt;br /&gt;parent = [имя NPC-заказчика]&lt;br /&gt;target = sim_stalker_master_master&lt;br /&gt;reward_money = 4000&lt;br /&gt;reward_reputation = +5&lt;br /&gt;reward_rank = 9&lt;br /&gt;reward_item = ammo_5.56x45_ap, ammo_5.56x45_ap, ammo_5.56x45_ap&lt;br /&gt;time = 86400&lt;/p&gt;
						&lt;p&gt;Не забудьте прописать описания заданий в текстовые массивы. Подробнее о редактировании task_manager.ltx читайте в уроке, посвященном однотипным квестам. &lt;/p&gt;
						&lt;p&gt;Да, и зарегистрируйте сами ветки диалогов в файле dialogs.xml. Вот пример того, как это сделано для заданий &amp;quot;Долга&amp;quot;: &lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;dialog id=&amp;quot;tm_dolg_dialog&amp;quot; priority=&amp;quot;-1&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;init_func&amp;gt;task_manager.init_dolg_task_dialog&amp;lt;/init_func&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;/dialog&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;dialog id=&amp;quot;tm_dolg_reward&amp;quot; priority=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;init_func&amp;gt;task_manager.init_dolg_reward_dialog&amp;lt;/init_func&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;precondition&amp;gt;task_manager.has_active_vendor_task&amp;lt;/precondition&amp;gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;lt;/dialog&amp;gt;&lt;/p&gt;
						&lt;p&gt;Соответственно, пройдем туда, куда указывает строка task_manager.init_dolg_task_dialog - в task_manager.script: &lt;br /&gt;function init_dolg_task_dialog(dlg)	 &lt;br /&gt;	get_random_task():init_task_dialog(dlg, &amp;quot;dolg&amp;quot;)&lt;/p&gt;
						&lt;p&gt;По аналогии делаем и с нашим &amp;quot;Ветром&amp;quot;. &lt;br /&gt;Вступление в группировку&lt;/p&gt;
						&lt;p&gt;Реализуем возможность вступления в группировку. &lt;/p&gt;
						&lt;p&gt;Прописываем в dialogs.script такие action&#039;ы: &lt;br /&gt;-----------------------------------------------------------------------------------&lt;br /&gt;-- Community&lt;br /&gt;-----------------------------------------------------------------------------------&lt;/p&gt;
						&lt;p&gt;[...]&lt;/p&gt;
						&lt;p&gt;function actor_set_wind (actor, npc)&lt;br /&gt;printf (&amp;quot;ACTOR NOW IN WIND COMMUNITY&amp;quot;&lt;br /&gt;if db.actor then&lt;br /&gt;db.actor:set_character_community (&amp;quot;actor_wind&amp;quot;, 0, 0)&lt;br /&gt;end&lt;br /&gt;return true&lt;br /&gt;end&lt;/p&gt;
						&lt;p&gt;После чего создадим диалог, и сделаем в нем фразу с action&#039;ом вида &amp;lt;action&amp;gt;actor_set_wind&amp;lt;/action&amp;gt;. Советую изучить урок, посвященный диалогам. &lt;br /&gt;Новые NPC&lt;/p&gt;
						&lt;p&gt;Лучше всего всё вышеприведенное повесить на нового, уникального персонажа. Способ его спавна описан здесь.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Меченый)</author>
			<pubDate>Mon, 29 Aug 2011 00:39:08 +0400</pubDate>
			<guid>https://stalkerlive.0pk.me/viewtopic.php?pid=3#p3</guid>
		</item>
		<item>
			<title>Новое оружие</title>
			<link>https://stalkerlive.0pk.me/viewtopic.php?pid=2#p2</link>
			<description>&lt;p&gt;Добавим в игру АК101.&lt;/p&gt;
						&lt;p&gt;Внешний вид&lt;/p&gt;
						&lt;p&gt;Позаботимся о том, чтобы наше оружие отличалось внешне от того же АК74. &lt;br /&gt;Текстуры&lt;/p&gt;
						&lt;p&gt;Нарисуем для оружия новую текстуру. Подробно останавливаться на этом процессе не буду, ознакомьтесь с примером, приведенным здесь. Итак, основываясь на текстуре АК74, мы сделали вот такую текстуру: &lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Файлы текстур мы назвали: &lt;br /&gt;wpn_ak10.dds &lt;br /&gt;wpn_ak10_bump#.dds &lt;br /&gt;wpn_ak10_bump.dds &lt;br /&gt;Модели&lt;/p&gt;
						&lt;p&gt;Новых моделей мы пока делать не станем, просто воспользуемся дублированными моделями от АК74. Скопируем папку: &lt;/p&gt;
						&lt;p&gt;gamedata\meshes\weapons\ak47\ &lt;/p&gt;
						&lt;p&gt;И назовем её ak-101. Содержимое, соответственно, переименуем в: &lt;br /&gt;wpn_ak101.ogf &lt;br /&gt;wpn_ak101_hud.ogf. &lt;/p&gt;
						&lt;p&gt;Теперь пропишем в эти модели созданные нами текстуры. Способ описан здесь. &lt;br /&gt;Иконки&lt;/p&gt;
						&lt;p&gt;Добавим в игру иконки, которыми оружие будет отображаться в инвентаре. Способ подробно описан здесь. &lt;/p&gt;
						&lt;p&gt;Вот, что получилось в конечном итоге: &lt;/p&gt;
						&lt;p&gt;Конфиги&lt;/p&gt;
						&lt;p&gt;Новое оружие мы будем делать на базе оригинальных конфигурационных файлов. Создадим АК101 на базе конфигов АК74. &lt;br /&gt;Свойства оружия&lt;/p&gt;
						&lt;p&gt;Скопируем файл из папки: &lt;/p&gt;
						&lt;p&gt;gamedata\config\ak74.ltx &lt;/p&gt;
						&lt;p&gt;Назовем его ak101.ltx. &lt;/p&gt;
						&lt;p&gt;Отредактируем свойства по своему усмотрению (но лучше - в соответствии с достоверной информацией о характеристиках оружия, т.к. АК101 - всё-таки оружие реально существующее). Редактирование конфигов оружия подробно описано в отдельном уроке. В данном случае конфиг был составлен таким образом: &lt;br /&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;[wpn_ak101]:identity_immunities&lt;br /&gt;GroupControlSection&amp;#160; &amp;#160; = spawn_group&lt;br /&gt;discovery_dependency	= &lt;br /&gt;$spawn&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= &amp;quot;weapons\ak-101&amp;quot;	; name and section in level editor&lt;br /&gt;$npc&amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= on&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;$prefetch &amp;#160; &amp;#160; &amp;#160; &amp;#160; = 8&lt;br /&gt;scheduled&amp;#160; &amp;#160; &amp;#160; &amp;#160; = off&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;;[] option for ALife Simulator&lt;br /&gt;cform&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;	= skeleton&lt;br /&gt;class&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;	= WP_AK74&amp;#160; &amp;#160; 	; class of the weapon that corresponding to CPP class&lt;br /&gt;min_radius&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= 30&amp;#160; &amp;#160; &amp;#160; &amp;#160; ; [] for AI&lt;br /&gt;max_radius&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= 100&amp;#160; &amp;#160; &amp;#160; &amp;#160; ; [] for AI&lt;br /&gt;description&amp;#160; &amp;#160; &amp;#160; &amp;#160; = enc_weapons1_wpn-ak101&lt;/p&gt;
						&lt;p&gt;ef_main_weapon_type&amp;#160; &amp;#160; = 2&lt;br /&gt;ef_weapon_type&amp;#160; &amp;#160; 	= 6&lt;/p&gt;
						&lt;p&gt;;-----------------------------------------------------------------------------------&lt;br /&gt;holder_range_modifier	= 1.0&amp;#160; &amp;#160;&amp;#160; &amp;#160; &amp;#160; &amp;#160; ; во сколько раз увеличивается eye_range &lt;br /&gt;holder_fov_modifier&amp;#160; &amp;#160; = 0.7&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; ; во сколько раз увеличивается eye_fov&lt;br /&gt;;-----------------------------------------------------------------------------------&lt;/p&gt;
						&lt;p&gt;cost&amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= 2;4000&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;weapon_class&amp;#160; &amp;#160; 	= assault_rifle&amp;#160; &amp;#160; &lt;/p&gt;
						&lt;p&gt;ammo_limit&amp;#160; &amp;#160; &amp;#160; &amp;#160; = 210&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;ammo_elapsed&amp;#160; &amp;#160; 	= 30&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;/p&gt;
						&lt;p&gt;ammo_mag_size&amp;#160; &amp;#160; 	= 30&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;fire_modes&amp;#160; &amp;#160; &amp;#160; &amp;#160; = 1, -1&lt;/p&gt;
						&lt;p&gt;ammo_class&amp;#160; &amp;#160; &amp;#160; &amp;#160; = ammo_5.56x45_ss190, ammo_5.56x45_ap	&amp;#160; &lt;br /&gt;grenade_class&amp;#160; &amp;#160; 	= ammo_vog-25, ammo_vog-25p&amp;#160; &amp;#160; 	&lt;br /&gt;launch_speed&amp;#160; &amp;#160; 	= 0&lt;/p&gt;
						&lt;p&gt;hand_dependence&amp;#160; &amp;#160; 	= 1&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 	&lt;br /&gt;single_handed&amp;#160; &amp;#160; 	= 0&lt;/p&gt;
						&lt;p&gt;slot &amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= 2&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 	&lt;br /&gt;animation_slot&amp;#160; &amp;#160; 	= 2&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 	&lt;br /&gt;inv_name	&amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= wpn-ak101&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;inv_name_short&amp;#160; &amp;#160; 	= wpn-ak101&lt;br /&gt;inv_weight&amp;#160; &amp;#160; 	= 3.3&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;/p&gt;
						&lt;p&gt;inv_grid_width&amp;#160; &amp;#160; 	= 5	 &lt;br /&gt;inv_grid_height&amp;#160; &amp;#160; 	= 2	&amp;#160; &amp;#160; &lt;br /&gt;inv_grid_x&amp;#160; &amp;#160; &amp;#160; &amp;#160; = 11&amp;#160; &lt;br /&gt;inv_grid_y&amp;#160; &amp;#160; &amp;#160; &amp;#160; = 29&lt;/p&gt;
						&lt;p&gt;kill_msg_x&amp;#160; &amp;#160; 	= 0&lt;br /&gt;kill_msg_y&amp;#160; &amp;#160; 	= 28&lt;br /&gt;kill_msg_width&amp;#160; &amp;#160; = 84&lt;br /&gt;kill_msg_height&amp;#160; &amp;#160; = 28&lt;/p&gt;
						&lt;p&gt;;-----------------------------------------------------------------------------------&lt;br /&gt;;params of weapon recoil&lt;/p&gt;
						&lt;p&gt;fire_dispersion_base&amp;#160; &amp;#160; 	= 0.15;0.2&amp;#160; &amp;#160; &lt;br /&gt;control_inertion_factor&amp;#160; &amp;#160; 	= 1.1f;1.25f&lt;/p&gt;
						&lt;p&gt;;отдача&lt;br /&gt;cam_relax_speed&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;#160; &amp;#160; =6;5;3.5; 0.15&amp;#160; &amp;#160; &lt;br /&gt;cam_dispersion&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; = 0.1;0.15&amp;#160; &amp;#160; &lt;br /&gt;cam_dispersion_inc&amp;#160; &amp;#160; 	= 0.2;0.3&amp;#160; &amp;#160; &lt;br /&gt;cam_dispertion_frac&amp;#160; &amp;#160; 	= 0.8;0.9&amp;#160; &amp;#160; &lt;br /&gt;cam_max_angle&amp;#160; &amp;#160; &amp;#160; &amp;#160; = 10.0	&amp;#160; &amp;#160; 	&lt;br /&gt;cam_max_angle_horz&amp;#160; &amp;#160; 	= 20.0&amp;#160; &amp;#160; &lt;br /&gt;cam_step_angle_horz&amp;#160; &amp;#160; 	= 1.1;1&amp;#160; &amp;#160; &lt;/p&gt;
						&lt;p&gt;fire_dispersion_condition_factor 	= 5.7;5	&amp;#160; &amp;#160; 	 &lt;br /&gt;misfire_probability &amp;#160; &amp;#160; = 0.0055;0.003	 &lt;br /&gt;misfire_condition_k&amp;#160; &amp;#160; 	= 0.06;0.05&lt;br /&gt;condition_shot_dec &amp;#160; &amp;#160; 	= 0.00035;0.0001	&lt;br /&gt;;-----------------------------------------------------------------------------------&lt;/p&gt;
						&lt;p&gt;fire_point&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;#160; &amp;#160; =&amp;#160; 0,0.216,0.638&amp;#160; &amp;#160; 	 &lt;br /&gt;fire_point2&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; =&amp;#160; 0,0.216,0.730&amp;#160; &amp;#160; 	&lt;/p&gt;
						&lt;p&gt;flame_particles&amp;#160; &amp;#160; &amp;#160; &amp;#160; = weapons\generic_weapon05	&lt;br /&gt;smoke_particles&amp;#160; &amp;#160; &amp;#160; &amp;#160; = weapons\generic_shoot_00&lt;br /&gt;grenade_flame_particles&amp;#160; &amp;#160; = weapons\generic_weapon01&lt;/p&gt;
						&lt;p&gt;shell_point&amp;#160; &amp;#160;&amp;#160; &amp;#160; &amp;#160; 	= 0,0.216,0.174&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;shell_particles	 &amp;#160; &amp;#160; 	= weapons\generic_shells	&lt;/p&gt;
						&lt;p&gt;PDM_disp_base &amp;#160; &amp;#160; &amp;#160; &amp;#160; = 1.0&lt;br /&gt;PDM_disp_vel_factor &amp;#160; &amp;#160; = 1.3&lt;br /&gt;PDM_disp_accel_factor &amp;#160; &amp;#160; = 1.3&lt;br /&gt;PDM_crouch	 &amp;#160; &amp;#160; &amp;#160; &amp;#160; = 1.0&lt;br /&gt;PDM_crouch_no_acc &amp;#160; &amp;#160; 	= 1.0&lt;/p&gt;
						&lt;p&gt;; ttc&lt;br /&gt;hit_power&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= 0.36, 0.4, 0.43, 0.46&amp;#160; &amp;#160; &lt;br /&gt;hit_impulse&amp;#160; &amp;#160;&amp;#160; &amp;#160; &amp;#160; 	= 140&amp;#160; &amp;#160; 	&lt;br /&gt;hit_type &amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= fire_wound 	&lt;br /&gt;fire_distance&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= 1700&amp;#160; &amp;#160; &lt;br /&gt;bullet_speed&amp;#160; &amp;#160; &amp;#160; &amp;#160; = 1000&amp;#160; &amp;#160; &lt;br /&gt;rpm&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= 750&amp;#160; &amp;#160; &lt;/p&gt;
						&lt;p&gt;use_aim_bullet&amp;#160; &amp;#160; &amp;#160; &amp;#160; = true&amp;#160; &amp;#160; &lt;br /&gt;time_to_aim&amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= 1.0	&lt;/p&gt;
						&lt;p&gt;;params when silencer is attached &lt;br /&gt;;similar to corresponding params without prefix silencer_&lt;/p&gt;
						&lt;p&gt;silencer_hit_power&amp;#160; &amp;#160; &amp;#160; &amp;#160;	= 0.38&lt;br /&gt;silencer_hit_impulse	 	= 120&lt;br /&gt;silencer_fire_distance&amp;#160; &amp;#160;	= 250&lt;br /&gt;silencer_bullet_speed	 	= 600&lt;/p&gt;
						&lt;p&gt;hud&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= wpn_ak101_hud&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;/p&gt;
						&lt;p&gt;position&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;	&amp;#160; &amp;#160; &amp;#160; &amp;#160; = -0.026,-0.172,0&amp;#160; &amp;#160; 	&lt;br /&gt;orientation&amp;#160; &amp;#160; &amp;#160; 	&amp;#160; &amp;#160; &amp;#160; &amp;#160; = 0,0,0&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;/p&gt;
						&lt;p&gt;;--STRAP PARAMETERS-----------------------------------------------------------------&lt;br /&gt;strap_position&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;#160; &amp;#160; = -0.16,-0.40,0.15&amp;#160; &amp;#160; 	&lt;br /&gt;strap_orientation&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; = -10,-5,10&amp;#160; &amp;#160; &amp;#160; &amp;#160; 	&lt;br /&gt;strap_bone0&amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= bip01_spine2&lt;br /&gt;strap_bone1&amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= bip01_spine1&lt;/p&gt;
						&lt;p&gt;visual&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;#160; &amp;#160;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;= weapons\ak-101\wpn_ak101&amp;#160; &amp;#160; &lt;/p&gt;
						&lt;p&gt;light_color&amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= 0.6,0.5,0.3&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;light_range&amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= 5&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 	&lt;br /&gt;light_var_color&amp;#160; &amp;#160; &amp;#160; &amp;#160; = 0.05&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;light_var_range&amp;#160; &amp;#160; &amp;#160; &amp;#160; = 0.5&lt;br /&gt;light_time &amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= 0.2&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;/p&gt;
						&lt;p&gt;ph_mass&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; = 5&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 	&lt;/p&gt;
						&lt;p&gt;;addons&lt;br /&gt;scope_status&amp;#160; &amp;#160; &amp;#160; &amp;#160; = 2&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 	&lt;br /&gt;silencer_status&amp;#160; &amp;#160; &amp;#160; &amp;#160; = 2&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 	&lt;br /&gt;grenade_launcher_status&amp;#160; &amp;#160; = 0;2&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 	&lt;/p&gt;
						&lt;p&gt;zoom_enabled&amp;#160; &amp;#160; &amp;#160; &amp;#160; = true&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;scope_zoom_factor	&amp;#160; &amp;#160; 	= 50&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;/p&gt;
						&lt;p&gt;scope_name &amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= wpn_addon_scope&amp;#160; &amp;#160; 	&lt;br /&gt;scope_x &amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= 42&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;scope_y &amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= 3&lt;br /&gt;silencer_name&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; = wpn_addon_silencer&amp;#160; &amp;#160; &lt;br /&gt;silencer_x &amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= 218&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;silencer_y &amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= 13&amp;#160; &amp;#160; &amp;#160; &amp;#160; 	&lt;br /&gt;grenade_launcher_name &amp;#160; &amp;#160; = wpn_addon_grenade_launcher&lt;br /&gt;grenade_launcher_x &amp;#160; &amp;#160; 	= 116&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;grenade_launcher_y &amp;#160; &amp;#160; 	= 23&lt;/p&gt;
						&lt;p&gt;;sounds (name of the sound, volume (0.0 - 1.0), delay (sec))&lt;br /&gt;snd_draw&amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= weapons\ak74_draw&lt;br /&gt;snd_holster&amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= weapons\generic_holster&lt;br /&gt;snd_shoot&amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= weapons\ak74_shot_0&lt;br /&gt;snd_shoot1&amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= weapons\ak74_shot_1&lt;br /&gt;snd_shoot2&amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= weapons\ak74_shot_2&lt;br /&gt;snd_shoot3&amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= weapons\ak74_shot_3&amp;#160; &amp;#160; &lt;br /&gt;snd_empty&amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= weapons\gen_empty, 0.5&lt;br /&gt;snd_reload&amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= weapons\ak74_reload, 0.7, 0.35&lt;br /&gt;snd_shoot_grenade&amp;#160; &amp;#160; 	= weapons\gen_grenshoot&lt;br /&gt;snd_reload_grenade&amp;#160; &amp;#160; 	= weapons\gen_grenload, 1.0, 0.8&lt;br /&gt;snd_switch&amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= weapons\groza_switch, 1.0, 0.5&lt;/p&gt;
						&lt;p&gt;;params when silencer is attached &lt;br /&gt;;similar to corresponding params without prefix silencer_&lt;/p&gt;
						&lt;p&gt;;silencer_flame_particles 	= weapons\generic_weapon01&lt;br /&gt;silencer_smoke_particles 	= weapons\generic_shoot_00&lt;/p&gt;
						&lt;p&gt;snd_silncer_shot&amp;#160; &amp;#160; 	= weapons\w_ak74_shot1 &lt;/p&gt;
						&lt;p&gt;silencer_light_color&amp;#160; &amp;#160; = 0.6,0.5,0.3&lt;br /&gt;silencer_light_range&amp;#160; &amp;#160; = 0.01&lt;br /&gt;silencer_light_var_color	= 0.05&lt;br /&gt;silencer_light_var_range	= 0.5&lt;br /&gt;silencer_light_time &amp;#160; &amp;#160; = 0.2&lt;/p&gt;
						&lt;p&gt;;-----------------------------------------------------------------------------&lt;br /&gt;;-- HUD DESCRIPTION&lt;br /&gt;;-----------------------------------------------------------------------------&lt;/p&gt;
						&lt;p&gt;[wpn_ak101_hud]&lt;br /&gt;allow_inertion&amp;#160; &amp;#160; &amp;#160; &amp;#160; = true&lt;/p&gt;
						&lt;p&gt;;similar to corresponding params in weapon section but for 1st person view&lt;/p&gt;
						&lt;p&gt;shell_point&amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= -0.065000,0.000000,-0.045000&lt;br /&gt;shell_dir&amp;#160; &amp;#160; 	&amp;#160; &amp;#160; &amp;#160;	= 0.0, 1.0, 0.0&lt;/p&gt;
						&lt;p&gt;fire_point&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;	= 0.09,0.020,-0.06&lt;br /&gt;fire_point2&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= 0.30, 0.00, 0.05&lt;br /&gt;fire_bone&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;	= wpn_body&lt;/p&gt;
						&lt;p&gt;orientation&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;	= 0, 0, 0&amp;#160; &amp;#160; &lt;br /&gt;position&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= 0, 0, 0.05&lt;br /&gt;visual&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= weapons\ak-101\wpn_ak101_hud&lt;/p&gt;
						&lt;p&gt;grenade_bone&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= wpn_grenade	&lt;/p&gt;
						&lt;p&gt;; animation names&lt;/p&gt;
						&lt;p&gt;anim_idle&amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= idle&lt;br /&gt;anim_idle_aim&amp;#160; &amp;#160; &amp;#160; &amp;#160; = idle_aim&lt;br /&gt;anim_reload&amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= reload&lt;br /&gt;anim_draw&amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= draw_wo_gl&lt;br /&gt;anim_holster&amp;#160; &amp;#160; &amp;#160; &amp;#160; = holster_wo_gl&lt;br /&gt;anim_shoot&amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= shoot&lt;br /&gt;&amp;#160; &amp;#160; 	&lt;br /&gt;; animation names&lt;br /&gt;; attached grenade launcher [GRENADE fire mode]&lt;br /&gt;anim_idle_g&amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= idle_grenade&lt;br /&gt;anim_idle_g_aim&amp;#160; &amp;#160; &amp;#160; &amp;#160; = idle_g_aim&lt;br /&gt;anim_reload_g&amp;#160; &amp;#160; &amp;#160; &amp;#160; = reload_grenade&lt;br /&gt;anim_shoot_g&amp;#160; &amp;#160; &amp;#160; &amp;#160; = shoot_grenade&lt;br /&gt;anim_switch_grenade_on&amp;#160; &amp;#160; = switch_grenade&lt;br /&gt;anim_switch_grenade_off&amp;#160; &amp;#160; = switch_grenade_off&lt;br /&gt;anim_draw_g&amp;#160; &amp;#160; &amp;#160; &amp;#160; 	= draw_grenade_mode&lt;br /&gt;anim_holster_g&amp;#160; &amp;#160; &amp;#160; &amp;#160; = holster_grenade_mode&lt;/p&gt;
						&lt;p&gt;; attached grenade launcher [NORMAL fire mode]&lt;br /&gt;anim_idle_gl&amp;#160; &amp;#160; &amp;#160; &amp;#160; = idle_w_gl&lt;br /&gt;anim_idle_gl_aim&amp;#160; &amp;#160; 	= idle_w_gl_aim&lt;br /&gt;anim_reload_gl&amp;#160; &amp;#160; &amp;#160; &amp;#160; = reload_w_gl&lt;br /&gt;anim_draw_gl&amp;#160; &amp;#160; &amp;#160; &amp;#160; = draw_w_gl&lt;br /&gt;anim_holster_gl&amp;#160; &amp;#160; &amp;#160; &amp;#160; = holster_w_gl&lt;br /&gt;anim_shoot_gl&amp;#160; &amp;#160; &amp;#160; &amp;#160; = shoot_w_gl&lt;br /&gt;anim_idle_sprint&amp;#160; &amp;#160; 	= idle_sprint&lt;/p&gt;
						&lt;p&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;;HUD offset in zoom mode (to all)&lt;br /&gt;;(use CONSOLE: hud_adjust_mode 0,1,2, then keys WSADQE and P to show current value in console)&lt;/p&gt;
						&lt;p&gt;zoom_offset&amp;#160; &amp;#160; 	= -0.112400,0.016800,-0.115000&lt;br /&gt;zoom_rotate_x&amp;#160; &amp;#160; = 0.000200&lt;br /&gt;zoom_rotate_y&amp;#160; &amp;#160; = 0.017500&lt;/p&gt;
						&lt;p&gt;zoom_hide_crosshair	= true&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;/p&gt;
						&lt;p&gt;; same as above, but for attached grenade launcher for&lt;br /&gt;; in NORMAL shoot mode&lt;/p&gt;
						&lt;p&gt;grenade_normal_zoom_offset&amp;#160; &amp;#160; 	= -0.112500,0.014000,0.000000&lt;br /&gt;grenade_normal_zoom_rotate_x&amp;#160; &amp;#160; = -0.000900&lt;br /&gt;grenade_normal_zoom_rotate_y&amp;#160; &amp;#160; = 0.017200&lt;/p&gt;
						&lt;p&gt;; same as above, but for attached grenade launcher for&lt;br /&gt;; in GRENADE mode&lt;/p&gt;
						&lt;p&gt;grenade_zoom_offset&amp;#160; &amp;#160; 	= -0.039600,-0.433100,0.000000&lt;br /&gt;grenade_zoom_rotate_x&amp;#160; &amp;#160; = -0.538700&lt;br /&gt;grenade_zoom_rotate_y&amp;#160; &amp;#160; = -0.033800&lt;br /&gt;Регистрация&lt;/p&gt;
						&lt;p&gt;Итак, с характеристиками разобрались. Теперь зарегистрируем оружие в файле weapons.ltx. Для этого пропишем в него строку следующего вида: &lt;br /&gt;#include &amp;quot;w_ak101.ltx&amp;quot;&lt;/p&gt;
						&lt;p&gt;Также, необходимо прописать модели, используемые для отображения оружия, в prefetch.ltx: &lt;br /&gt;[...]&lt;br /&gt;weapons\abakan\wpn_abakan&lt;br /&gt;weapons\abakan\wpn_abakan_hud&lt;br /&gt;weapons\ak-101\wpn_ak101&lt;br /&gt;weapons\ak-101\wpn_ak101_hud&lt;br /&gt;weapons\ak74\wpn_ak74&lt;br /&gt;weapons\ak74\wpn_ak74_hud&lt;br /&gt;[...]&lt;/p&gt;
						&lt;p&gt;Так же не забудте в файле mp_ranks.ltx прописать после available_items (которое внизу) прописать название своего оружия. Это предотвратит вылет при убийстве ГГ.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (Меченый)</author>
			<pubDate>Mon, 29 Aug 2011 00:27:36 +0400</pubDate>
			<guid>https://stalkerlive.0pk.me/viewtopic.php?pid=2#p2</guid>
		</item>
	</channel>
</rss>
