<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://stalkerin.gameru.net/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://stalkerin.gameru.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=91.208.116.12&amp;*</id>
		<title>S.T.A.L.K.E.R. Inside Wiki - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://stalkerin.gameru.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=91.208.116.12&amp;*"/>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/91.208.116.12"/>
		<updated>2026-04-29T22:44:30Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.22.6</generator>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB%D1%8B:_trade_*****.ltx</id>
		<title>Файлы: trade *****.ltx</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB%D1%8B:_trade_*****.ltx"/>
				<updated>2010-06-08T04:07:52Z</updated>
		
		<summary type="html">&lt;p&gt;91.208.116.12: Димон всех спас&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Структура магазина==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[trader]&amp;lt;br&amp;gt;&lt;br /&gt;
buy_condition = {+[переменная]} [используемое состояние], ... &amp;lt;br&amp;gt;&lt;br /&gt;
buy_supplies = {+[переменная]} [используемое состояние], ... &amp;lt;br&amp;gt;&lt;br /&gt;
sell_condition = {+[переменная]} [используемое состояние], ... &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Используется то состояние, которое ближе к левой части и переменная которого в состоянии истина(не точно).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[trader]&lt;br /&gt;
buy_condition = trader_generic_buy&lt;br /&gt;
buy_supplies = {+esc_kill_bandits_quest_done} supplies_after_fabric, supplies_start&lt;br /&gt;
sell_condition = {+esc_kill_bandits_quest_done} trader_after_fabric_sell, trader_start_sell&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Состояние магазина==&lt;br /&gt;
&lt;br /&gt;
(buy_condition) &amp;quot;Стоимость покупки&amp;quot; - коэффициент, умножая на который образуется цена покупки торговцем&lt;br /&gt;
(buy_supplies)  &amp;quot;Поставка&amp;quot; - описывается что продается, в каких количествах и вероятность его появления у торговца.&amp;lt;br&amp;gt;&lt;br /&gt;
(sell_condition) &amp;quot;Стоимость продажи&amp;quot; - коэффициент, уножая на который образуется цена продажи у торговца.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Стоимость покупки===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[используемое состояние]&amp;lt;br&amp;gt;&lt;br /&gt;
обьект				= '''Коэф1, Коэф2'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Коэф1/2''' - коэфиценты&amp;lt;br&amp;gt;&lt;br /&gt;
Коэфиценты используются при расчеты [[#Формула стоимости|стоимости]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[trader_generic_buy]&lt;br /&gt;
ammo_9x18_fmj				= 0.9, 0.1 &lt;br /&gt;
ammo_9x19_pbp				= 0.9, 0.1 - где &amp;quot;0,9&amp;quot; (первое значение) -коэффициент покупки торговцем при&lt;br /&gt;
 &amp;quot;хорошей&amp;quot; репутации игрока у данного торговца, а &amp;quot;0.1&amp;quot; (второе значение, через запятую) - при &amp;quot;плохой&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
* Значение равное &amp;quot;1.0&amp;quot; - покупка вещи по её номинальной стоимости. &lt;br /&gt;
* Выше &amp;quot;1.0&amp;quot; (к примеру &amp;quot;1.5&amp;quot;) - торговец будет покупать в полтора раза дороже стоимости вещи&lt;br /&gt;
* Ниже &amp;quot;1.0&amp;quot; - соответственно торговец платит за вещь меньше её номинальной стоимости &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Поставка===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[используемое состояние]&amp;lt;br&amp;gt;&lt;br /&gt;
обьект				= '''Количество, Вероятность появления'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Количество''' - порядковая величина&amp;lt;br&amp;gt;&lt;br /&gt;
'''Вероятность появления''' - значение в диапазоне от &amp;quot;0&amp;quot; до &amp;quot;1&amp;quot;, где &amp;quot;0&amp;quot; - вероятность появления составляет 0%, &amp;quot;1&amp;quot; - 100% появление данного товара при обращении к торговцу. Вероятность проверяется для каждой единицы! Т.е. если количество товара состовляет больше 1 штуки, то и коэффициент его появления будет выше&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[supplies_start]&lt;br /&gt;
wpn_groza   = 1, 0.1 ;Вероятность появления 1 автомата Гроза составляет 10%&lt;br /&gt;
для примера:&lt;br /&gt;
wpn_groza   = 3, 0.1 ;Вероятность появления такая же как в предыдущей строке(10%), но коэффициент рассчитывается уже для 3х штук, поэтому и общая вероятность появления в три раза выше чем для одной штуки.&lt;br /&gt;
wpn_ak74    = 3, 0.7 ;Вероятность появление каждого из 3х автоматов АК-74 70%&lt;br /&gt;
wpn_abakan           ;если без параметров - не продается. В оригинале пустое значение имеет название &amp;quot;;NO TRADE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Стоимость продажи===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[используемое состояние]&amp;lt;br&amp;gt;&lt;br /&gt;
обьект				= '''Коэф1, Коэф2'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Коэф1/2''' - коэфиценты&amp;lt;br&amp;gt;&lt;br /&gt;
Коэфиценты используются при расчеты [[#Формула стоимости|стоимости]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[trader_start_sell]&lt;br /&gt;
wpn_groza = 2, 4 ;Цена продажи грозы в 2 раза больше при хорошем отношении торговца и в 4раза больше при &amp;quot;плохом&amp;quot;&lt;br /&gt;
wpn_ak74  = 1, 1 ;Цена продажи АК-74 равна номиналу при любом отношении торговца к покупателю.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Формула стоимости==&lt;br /&gt;
&amp;lt;code&amp;gt;Стоимость = ('''Коэф1''' + '''Коэф2''') * '''Номинальная_Стоимость_Обьекта''' / 2&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Номинальная_Стоимость_Обьекта''' - параметр cost - в файле объекта&amp;lt;br&amp;gt;&lt;br /&gt;
'''Коэф1/2''' - Коэфиценты указанные в магазине&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:Конфигурационные_файлы]]&lt;/div&gt;</summary>
		<author><name>91.208.116.12</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%BE%D0%B2_(%D0%B1%D0%B0%D0%B7%D0%BE%D0%B2%D1%8B%D0%B9_%D1%83%D1%80%D0%BE%D0%B2%D0%B5%D0%BD%D1%8C)</id>
		<title>SoC. Создание квестов (базовый уровень)</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%BE%D0%B2_(%D0%B1%D0%B0%D0%B7%D0%BE%D0%B2%D1%8B%D0%B9_%D1%83%D1%80%D0%BE%D0%B2%D0%B5%D0%BD%D1%8C)"/>
				<updated>2010-04-14T17:08:18Z</updated>
		
		<summary type="html">&lt;p&gt;91.208.116.12: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Вступление==&lt;br /&gt;
&lt;br /&gt;
Перед изучением этого урока советую освоить находящийся несколько выше урок &amp;quot;Создание диалогов&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Небольшие правила, следуя которым, можно сберечь себе много нервов:&lt;br /&gt;
&lt;br /&gt;
- всегда сохраняйте резервные копии модифицируемых файлов&lt;br /&gt;
- старайтесь почаще тестировать внесенные изменения - так проще понять, в чем вы ошиблись (если активно работать пару часов без остановки, не разу не протестировав внесенные изменения, то потом будет очень сложно понять - почему же, черт возьми, игра вылетает при попытке поговорить с Сидоровичем?)&lt;br /&gt;
- перед началом работы создайте новую папку gamedata, а свои моды спрячьте подальше: работать с &amp;quot;чистой&amp;quot; версией игры не в пример удобнее и проще; особенно противопоказан Repair Mod, который с новыми диалогами часто конфликтует. О том, как создать диалоги и квесты, исключающие возможность конфликта с другими подобными модами, см. часть 4.&lt;br /&gt;
&lt;br /&gt;
==Создание базового диалога==&lt;br /&gt;
&lt;br /&gt;
Начнем создание квеста с написания небольшого линейного диалога.&lt;br /&gt;
&lt;br /&gt;
Открываем файл gamedata\config\gameplay\character_desc_escape.xml и проводим такие манипуляции:&lt;br /&gt;
&lt;br /&gt;
- находим строку &amp;quot;&amp;lt;actor_dialog&amp;gt;escape_trader_done_blockpost_box&amp;lt;/actor_dialog&amp;gt;&amp;quot;&lt;br /&gt;
- добавляем после нее новую - &amp;quot;&amp;lt;actor_dialog&amp;gt;escape_trader_oops&amp;lt;/actor_dialog&amp;gt;&amp;quot;&lt;br /&gt;
- сохраняем изменения&lt;br /&gt;
&lt;br /&gt;
Мы добавили к Диалогу с Сидоровичем новую ветку, вернее, только ссылку на неё. Сама внутренняя структура ветки хранится в файле gamedata\config\gameplay\dialogs_escape.xml, который мы открываем и производим:&lt;br /&gt;
&lt;br /&gt;
- находим в любом месте файла промежуток между &amp;lt;/dialog&amp;gt; и &amp;lt;dialog id=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
- засовываем туда такую конструкцию:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt; &amp;lt;dialog id=&amp;quot;escape_trader_oops&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;precondition&amp;gt;escape_dialog.trader_alredy_give_job&amp;lt;/precondition&amp;gt;&lt;br /&gt;
        &amp;lt;has_info&amp;gt;tutorial_end&amp;lt;/has_info&amp;gt;&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;text&amp;gt;escape_trader_oops_0&amp;lt;/text&amp;gt;&lt;br /&gt;
&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;lt;text&amp;gt;escape_trader_oops_1&amp;lt;/text&amp;gt;&lt;br /&gt;
&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;lt;text&amp;gt;escape_trader_oops_2&amp;lt;/text&amp;gt;&lt;br /&gt;
&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;3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;text&amp;gt;escape_trader_oops_3&amp;lt;/text&amp;gt;&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
&amp;lt;/dialog&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- сохраняем изменения&lt;br /&gt;
&lt;br /&gt;
Теперь у нас прописана структура новой ветки диалога. Осталось сделать еще одну вещь - прописать строки, которые будут отображаться вместо &amp;quot;escape_trader_oops_...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Для этого откроем файл gamedata\config\text\rus\stable_dialogs_escape.xml и сделаем следующее:&lt;br /&gt;
&lt;br /&gt;
- находим любой удобный промежуток между &amp;lt;/string&amp;gt; и &amp;lt;string id=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
- прописываем туда следующие строки:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;string id=&amp;quot;escape_trader_oops_0&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;text&amp;gt;Сидрыч, давай поговорим о... водке.&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;string id=&amp;quot;escape_trader_oops_1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;text&amp;gt; водке? Да какая водка? Нет её у меня, кончилась. Вроде у Волка на чердаке была, что-то он&lt;br /&gt;
однажды об этом упоминал... Принеси, а?&amp;lt;/text&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;string id=&amp;quot;escape_trader_oops_2&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;text&amp;gt;Да сбегаю я сейчас, сбегаю... алкоголик, блин.&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;string id=&amp;quot;escape_trader_oops_3&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;text&amp;gt;Беги, беги... сил уж нет ждать.&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;/string&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- сохраняем изменения&lt;br /&gt;
&lt;br /&gt;
Всё. Диалог готов. Можно грузить игру и смотреть, работает ли новая ветка.&lt;br /&gt;
А теперь будем прикреплять к этому безобразию квест &amp;quot;&amp;quot;Принеси водки Сидоровичу&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Создание базового квеста==&lt;br /&gt;
&lt;br /&gt;
Активацию квеста в диалог прикрепить достаточно просто. Проводим с файлом gamedata\config\gameplay\ dialogs_escape.xml следующие манипуляции:&lt;br /&gt;
&lt;br /&gt;
- добавляем содержимое фразы &amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt; следующим:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt; &lt;br /&gt;
&amp;lt;phrase id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;text&amp;gt;escape_trader_oops_2&amp;lt;/text&amp;gt;&lt;br /&gt;
&amp;lt;give_info&amp;gt;kvest_vodka_started&amp;lt;/give_info&amp;gt;&lt;br /&gt;
&amp;lt;next&amp;gt;3&amp;lt;/next&amp;gt;&lt;br /&gt;
                     &amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- сохраняем изменения&lt;br /&gt;
&lt;br /&gt;
Теперь после фразы Меченого &amp;quot;Да сбегаю я сейчас, сбегаю...&amp;quot; Сидорович таки всучивает нам квест &amp;quot;Принеси водку&amp;quot;. Но не спешите тестировать изменения. Мы добавили в диалог упоминание о квесте, хотя он еще не создан.&lt;br /&gt;
&lt;br /&gt;
Исправим это недоразумение. Откройте файл gamedata\config\gameplay\tasks_escape.xml и в начале файла создайте такую конструкцию:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;game_task id=&amp;quot;esc_test_vodka_task&amp;quot;&amp;gt;&lt;br /&gt;
        	&amp;lt;title&amp;gt;Принести водки&amp;lt;/title&amp;gt; &amp;lt;!-- заголовок квеста --&amp;gt;&lt;br /&gt;
        	&amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Принести водки Сидоровичу&amp;lt;/text&amp;gt;&lt;br /&gt;
            		&amp;lt;icon&amp;gt;ui_iconsTotal_find_item&amp;lt;/icon&amp;gt;&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;test_quest_vodka_otdana&amp;lt;/infoportion_complete&amp;gt;        	&amp;lt;/objective&amp;gt;&lt;br /&gt;
        	&amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Вернуться с водкой обратно&amp;lt;/text&amp;gt; &lt;br /&gt;
            		&amp;lt;map_location_type hint=&amp;quot;esc_dinamit_to_volk&amp;quot;&amp;gt;green_location&amp;lt;/map_location_type&amp;gt; &lt;br /&gt;
            		&amp;lt;object_story_id&amp;gt;Escape_novice_lager_volk&amp;lt;/object_story_id&amp;gt;&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;test_quest_vodka_otdana&amp;lt;/infoportion_complete&amp;gt;&lt;br /&gt;
        	&amp;lt;/objective&amp;gt;&lt;br /&gt;
        	&amp;lt;objective&amp;gt;&lt;br /&gt;
            		&amp;lt;text&amp;gt;Найти водку на чердаке&amp;lt;/text&amp;gt;&lt;br /&gt;
            		&amp;lt;map_location_type hint=&amp;quot;escape_trader&amp;quot;&amp;gt;blue_location&amp;lt;/map_location_type&amp;gt;&lt;br /&gt;
            		&amp;lt;object_story_id&amp;gt;Escape_Trader&amp;lt;/object_story_id&amp;gt;&lt;br /&gt;
            		&amp;lt;infoportion_complete&amp;gt;test_quest_vodka_otdana&amp;lt;/infoportion_complete&amp;gt;&lt;br /&gt;
        	&amp;lt;/objective&amp;gt;&lt;br /&gt;
&amp;lt;/game_task&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мы прописали данные о квесте: название, иконку, строки заданий, расположение маркеров и т.д.&lt;br /&gt;
&lt;br /&gt;
К этому файлу мы еще вернемся, т.к. в этом варианте многое проставлялось не иначе как от балды. Я еще подумаю, как заставить задание &amp;quot;Вернуться с водкой обратно&amp;quot; появиться в PDA, а то оно что-то не желает явить себя народу... впрочем, ладно, главное, что все работает и не вылетает. А исправление столь мелких багов - дело десятое. Продолжим.&lt;br /&gt;
&lt;br /&gt;
Откроем файл gamedata\config\gameplay\info_l01escape.xml и зарегистрируем до того отсутствовавшие в игре типы условий (они нам еще пригодятся для завершения работы над квестом):&lt;br /&gt;
&lt;br /&gt;
- после строки &amp;lt;game_information_portions&amp;gt; прописываем:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;info_portion id=&amp;quot;test_quest_vodka_otdana&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;info_portion id=&amp;quot;kvest_vodka_started&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;task&amp;gt;esc_test_vodka_task&amp;lt;/task&amp;gt;&lt;br /&gt;
&amp;lt;/info_portion&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;info_portion id=&amp;quot;otkazalsya_prinesty_vodku&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
С прописыванием условий - всё.&lt;br /&gt;
&lt;br /&gt;
Теперь займемся одной небольшой, но нужной вещью - прописыванием экранных подсказок, которые высвечиваются при получении/выполнении этапа/завершении задания.&lt;br /&gt;
&lt;br /&gt;
Для этого откроем файл gamedata\config\text\rus\string_table_tasks_escape.xml и пропишем там:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
    &amp;lt;string id=&amp;quot;esc_test_prinesti_vodku&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;text&amp;gt;Принести бутылку водки&amp;lt;/text&amp;gt;&lt;br /&gt;
    &amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;string id=&amp;quot;esc_test_prinesti_vodku_1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;text&amp;gt;Найти водку на чердаке у Волка&amp;lt;/text&amp;gt;&lt;br /&gt;
    &amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;string id=&amp;quot;esc_test_prinesti_vodku_2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;text&amp;gt;Принести водку Сидоровичу&amp;lt;/text&amp;gt;&lt;br /&gt;
    &amp;lt;/string&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь можно тестировать, что получилось. Сверяем результаты:&lt;br /&gt;
&lt;br /&gt;
- по окончанию разговора про водку у вас появляется новое задание&lt;br /&gt;
- в задании маркером отмечен Волк (ближайший к чердаку маркер, потому и отмечен)&lt;br /&gt;
- при получении задания на экране высвечивается уведомление&lt;br /&gt;
&lt;br /&gt;
Можно приступать к третьей стадии. Что мы забыли? Правильно - возможность выполнить квест.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Реализация возможности выполнить квест==&lt;br /&gt;
&lt;br /&gt;
На самом деле - все просто. Все условия и т.д. уже нами созданы, осталось только применить их в диалоге. Давайте несколько изменим его структуру, сделаем его ветвистым и функциональным:&lt;br /&gt;
&lt;br /&gt;
'''0.''' Сидрыч, давай поговорим о... водке. ( переход к 1)&lt;br /&gt;
&lt;br /&gt;
'''1.''' О водке? Да какая водка? Нет её у меня, кончилась. Вроде у Волка на чердаке была, что-то он однажды об этом упоминал... Принеси, а? ( выбор - переход к 2, 4, 5; изначально доступен только 2 вариант )&lt;br /&gt;
&lt;br /&gt;
'''2.''' Да сбегаю я сейчас, сбегаю... алкоголик, блин. ( получение квеста, переход к 3, после этого перестает быть доступен )&lt;br /&gt;
&lt;br /&gt;
'''3.''' Беги, беги... сил уж нет ждать. ( конец, переход к списку веток Сидоровича )&lt;br /&gt;
&lt;br /&gt;
'''4.''' Вот она, твоя бутылка водки. Ну, вернее, не твоя, а Волка... ( появляется только при наличии водки в инвентаре, при выборе водка передается Сидоровичу, квест выполняется, идет переход к 7 )&lt;br /&gt;
&lt;br /&gt;
'''5.''' Извини, Сидрыч, я пока еще не раздобыл, терпи... ( появляется только если взять квест, переход к 6 )&lt;br /&gt;
&lt;br /&gt;
'''6.''' А ну марш отсюда! Без бутылки пришел... ууу, вражина... ( переход к 8 )&lt;br /&gt;
&lt;br /&gt;
'''7.''' Теперь моя будет, Меченый! Ты так Волку и передай. Спасибо, выручил... держи награду. ( выдача награды, переход к 8 )&lt;br /&gt;
&lt;br /&gt;
'''8.''' Ну тебя в пень... ( конец, переход к списку веток Сидоровича )&lt;br /&gt;
&lt;br /&gt;
А вот так это будет выглядеть в файле gamedata\config\gameplay\dialogs_escape.xml:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;dialog id=&amp;quot;escape_trader_oops&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;precondition&amp;gt;escape_dialog.trader_alredy_give_job&amp;lt;/precondition&amp;gt;&lt;br /&gt;
        &amp;lt;has_info&amp;gt;tutorial_end&amp;lt;/has_info&amp;gt;&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
                     &amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
                             	&amp;lt;text&amp;gt;escape_trader_oops_0&amp;lt;/text&amp;gt;&lt;br /&gt;
                              	&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;lt;text&amp;gt;escape_trader_oops_1&amp;lt;/text&amp;gt;&lt;br /&gt;
                                &amp;lt;next&amp;gt;2&amp;lt;/next&amp;gt;&lt;br /&gt;
				&amp;lt;next&amp;gt;4&amp;lt;/next&amp;gt;&lt;br /&gt;
				&amp;lt;next&amp;gt;5&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;lt;dont_has_info&amp;gt;kvest_vodka_started&amp;lt;/dont_has_info&amp;gt;&lt;br /&gt;
                                &amp;lt;text&amp;gt;escape_trader_oops_2&amp;lt;/text&amp;gt;&lt;br /&gt;
				&amp;lt;give_info&amp;gt;kvest_vodka_started&amp;lt;/give_info&amp;gt;&lt;br /&gt;
                                &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;lt;text&amp;gt;escape_trader_oops_3&amp;lt;/text&amp;gt;&lt;br /&gt;
				&amp;lt;action&amp;gt;dialogs.break_dialog&amp;lt;/action&amp;gt;&lt;br /&gt;
                     &amp;lt;/phrase&amp;gt;&lt;br /&gt;
		     &amp;lt;phrase id=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
                             	&amp;lt;text&amp;gt;escape_trader_oops_4&amp;lt;/text&amp;gt;&lt;br /&gt;
				&amp;lt;precondition&amp;gt;escape_dialog.have_a_vodka&amp;lt;/precondition&amp;gt;&lt;br /&gt;
				&amp;lt;action&amp;gt;escape_dialog.otday_vodku&amp;lt;/action&amp;gt;&lt;br /&gt;
                              	&amp;lt;next&amp;gt;7&amp;lt;/next&amp;gt;&lt;br /&gt;
		     &amp;lt;/phrase&amp;gt;&lt;br /&gt;
		     &amp;lt;phrase id=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;has_info&amp;gt;kvest_vodka_started&amp;lt;/has_info&amp;gt;&lt;br /&gt;
                             	&amp;lt;text&amp;gt;escape_trader_oops_5&amp;lt;/text&amp;gt;&lt;br /&gt;
                              	&amp;lt;next&amp;gt;6&amp;lt;/next&amp;gt;&lt;br /&gt;
		     &amp;lt;/phrase&amp;gt;&lt;br /&gt;
		     &amp;lt;phrase id=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
                             	&amp;lt;text&amp;gt;escape_trader_oops_6&amp;lt;/text&amp;gt;&lt;br /&gt;
                              	&amp;lt;next&amp;gt;8&amp;lt;/next&amp;gt;&lt;br /&gt;
		     &amp;lt;/phrase&amp;gt;&lt;br /&gt;
		     &amp;lt;phrase id=&amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
                             	&amp;lt;text&amp;gt;escape_trader_oops_7&amp;lt;/text&amp;gt;&lt;br /&gt;
				&amp;lt;give_info&amp;gt;test_quest_vodka_otdana&amp;lt;/give_info&amp;gt;&lt;br /&gt;
				&amp;lt;action&amp;gt;escape_dialog.transfer_deneg&amp;lt;/action&amp;gt;&lt;br /&gt;
                              	&amp;lt;next&amp;gt;8&amp;lt;/next&amp;gt;&lt;br /&gt;
		     &amp;lt;/phrase&amp;gt;&lt;br /&gt;
		     &amp;lt;phrase id=&amp;quot;8&amp;quot;&amp;gt;&lt;br /&gt;
                             	&amp;lt;text&amp;gt;escape_trader_oops_8&amp;lt;/text&amp;gt;&lt;br /&gt;
		     &amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
    &amp;lt;/dialog&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь добавим в игру скрипты &amp;quot;передача денег&amp;quot; и &amp;quot;передача водки&amp;quot;. Откройте файл gamedata\scripts\escape_dialog.script и перед разделителем &amp;quot;Trader&amp;quot; добавьте туда следующие строки:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function transfer_deneg(first_speaker, second_speaker)&lt;br /&gt;
    dialogs.relocate_money(second_speaker, 4000, &amp;quot;in&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
   &lt;br /&gt;
function otday_vodku (npc, actor)&lt;br /&gt;
    dialogs.relocate_item_section(npc, &amp;quot;vodka&amp;quot;, &amp;quot;out&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function have_a_vodka (stalker, player)&lt;br /&gt;
    return stalker:object (&amp;quot;vodka&amp;quot;) ~= nil&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Готово. Запускайте игру и любуйтесь.&lt;br /&gt;
&lt;br /&gt;
Для тех, кто еще с нами - сейчас мы модифицируем квест так, чтобы исключить конфликты с другими подобными модами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Реализация совместимости==&lt;br /&gt;
&lt;br /&gt;
Из-за чего наш мод не может работать вместе с аналогичными ему модами? Да потому, что файлы dialogs_escape.xml и некоторые другие у них пересекаются. Поэтому выделим их отдельно от основных диалогов:&lt;br /&gt;
&lt;br /&gt;
Вместо dialogs_escape.xml мы будем испольховать новый - dialogs_new.xml&lt;br /&gt;
Вместо stable_dialogs_escape.xml мы будем использовать файл stable_dialogs_new.xml (важно! не знаю почему, но он должен лежать в text\..., а не в text\rus\...)&lt;br /&gt;
&lt;br /&gt;
Соответственно, весь реализованный нами новый контент перекидываем в пустые файлы (соблюдая форматирование), подчистив за собой на старом месте.&lt;br /&gt;
&lt;br /&gt;
Единственное, что останется сделать после установки того же Repair Mod'а - заново добавить ветку диалога Сидоровичу в файле character_desc_escape.xml. Остальное в новом варианте нашего мода переписывать не придется - для диалогов отведено три файла.&lt;br /&gt;
&lt;br /&gt;
Остальные файлы относятся уже к квестовой части и ни с чем пересекаться не могут - где вы видели другие моды с новыми квестами? Я - нет.&lt;br /&gt;
&lt;br /&gt;
Откройте файл gamedata\config\localization.ltx и зарегистрируйте там stable_dialogs_escape.ltx.&lt;br /&gt;
Потом откройте файл gamedata\config\system.ltx и в разделе &amp;quot;Dialogs&amp;quot; в конце строки (после dialogs_aes) пропишите dialogs_new (без &amp;quot;.ltx&amp;quot;!).&lt;br /&gt;
&lt;br /&gt;
Все. Теперь ваши диалоги будут подгружаться из сторонних файлов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отдельное спасибо:&lt;br /&gt;
&lt;br /&gt;
'''XiaNi''' - за страшный и непричесанный, но работающий пример квеста, на основе которого я и освоил принципы квестостроения =)&lt;br /&gt;
&lt;br /&gt;
'''Keha''' – за урок по созданию новых диалогов&lt;br /&gt;
&lt;br /&gt;
==Дополнения==&lt;br /&gt;
&lt;br /&gt;
1. Если изменить шапку нашего диалога в файле dialogs_escape.xml со старого варианта на такой, то ветка исчезнет после выполнения задания:&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;dialog id=&amp;quot;escape_trader_oops&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;precondition&amp;gt;escape_dialog.trader_alredy_give_job&amp;lt;/precondition&amp;gt;&lt;br /&gt;
        &amp;lt;has_info&amp;gt;tutorial_end&amp;lt;/has_info&amp;gt;&lt;br /&gt;
&amp;lt;dont_has_info&amp;gt;test_quest_vodka_otdana&amp;lt;/dont_has_info&amp;gt;&lt;br /&gt;
          &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
Не тестировал. Дело за вами =)&lt;br /&gt;
&lt;br /&gt;
Фух, вроде всё...&lt;br /&gt;
Всем спасибо, занавес =)&lt;br /&gt;
&lt;br /&gt;
==Авторы==&lt;br /&gt;
&lt;br /&gt;
Статья создана:&lt;br /&gt;
[[Участник:BAC9-FLCL|BAC9-FLCL]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Скрипты]]&lt;/div&gt;</summary>
		<author><name>91.208.116.12</name></author>	</entry>

	</feed>