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

	<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-2</id>
		<title>SoC. Создание квестов-2</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-2"/>
				<updated>2008-12-31T22:22:37Z</updated>
		
		<summary type="html">&lt;p&gt;89.218.200.61: /* Дополнения */&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, который с новыми диалогами часто конфликтует*&lt;br /&gt;
&lt;br /&gt;
* о том, как создать диалоги и квесты, исключающие возможность конфликта с другими подобными модами, см. часть 4. &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;
После третьей фразы у нас будет активироваться квест &amp;quot;Принеси водки Сидоровичу&amp;quot;.&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;
Вот. Именно. Кончилась она у меня, родимая, кончилась... помоги, принесешь, а? &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;
1. О водке? Да о какой водке сейчас можно говорить? Вокруг оглянись. Видишь хоть одну бутылку?! Вот. Именно. Кончилась она у меня, родимая, кончилась... помоги, принесешь, а? Вроде у Волка на чердаке была, что-то он однажды об этом упоминал... ( выбор - переход к 2, 4, 5; изначально доступен только 2 вариант )&lt;br /&gt;
2. Да сбегаю я сейчас, сбегаю... алкоголик, блин. ( получение квеста, переход к 3, после этого перестает быть доступен )&lt;br /&gt;
3. Беги, беги... сил уж нет ждать, давай, родимый. ( конец, переход к списку веток Сидоровича )&lt;br /&gt;
4. Вот она, твоя бутылка водки. Ну, вернее, не твоя, а Волка... ( появляется только при наличии водки в инвентаре, при выборе водка передается Сидоровичу, квест выполняется, идет переход к 7 )&lt;br /&gt;
5. Извини, Сидрыч, я пока еще не раздобыл, терпи... ( появляется только если взять квест, переход к 6 )&lt;br /&gt;
6. А ну марш отсюда! Без бутылки пришел... ууу, вражина... ( переход к 8 )&lt;br /&gt;
7. Теперь моя будет, Меченый! Ты так Волку и передай. Спасибо, выручил... держи награду. Нееет, это не водка, обойдешься... денег дам. ( выдача награды, переход к 8 )&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 (npc, actor)&lt;br /&gt;
    dialogs.relocate_money(stalker, 8000, &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;
- второй пункт задания в PDA не отображается&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;
Keha – за урок по созданию новых диалогов&lt;br /&gt;
Dйja Vu – за создание wiki-ресурса&lt;br /&gt;
&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;
2. Разнообразить речь обычных сталкеров не так просто, как кажется – они не выделены в отдельных людей, а используют один и тот же набор реплик, зависящий от локации/мастерства сталкера. Но при этом в пункте &amp;quot;Что можешь интересного рассказать&amp;quot; у каждого сталкера история разная.&lt;br /&gt;
&lt;br /&gt;
Кто сможет разузнать, откуда берутся тексты для этих реплик, тому буду очень благодарен... &lt;br /&gt;
&lt;br /&gt;
3. Неплохо бы добавить реплики гопникам, но это уже на стадии предположений. На данный момент реплик у них нет, так что если вы, например, играете с модом &amp;quot;Улучшенные взаимоотношения&amp;quot; (или как там его) или какими-либо иными способами добились нейтрального/дружеского отношения с их стороны, то при потытке заговорить игра вылетит.&lt;br /&gt;
&lt;br /&gt;
В принципе, можно зарегистрировать новые базы диалогов для бандитов (как было описано выше), созданные по образцу таковых у сталкеров. Но как эти наборы диалогов связать с гуляющими по карте гопниками - вопрос.(ответ от ЖуКа надо редактировать файл character_desc_simulation.xml он используется при респавне неписей)&lt;br /&gt;
&lt;br /&gt;
У меня есть подозрения, что набор диалогов прописывается персонажу в его свойствах в файле all.spawn. Прошу специалистов по spawn-ресурсам посмотреть, имеются у NPC такие свойства или нет.&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>89.218.200.61</name></author>	</entry>

	</feed>