Мини-профиль
Приветствуем, гость!
-Приветствую тебя, гость!
Если ты здесь впервой, то зарегистрируйся. А если уже бывал здесь, то входи, не стесняйся!

Связь

Онлайн
Онлайн всего: 1
Заглянувших: 1
Сталкеров: 0

Посетители | Подробно..

Коддинг квестов (базовый уровень)

Главная » Статьи » Моддинг » Конфиги


Коддинг квестов (базовый уровень)

Создание квестов (базовый уровень)

Вступление
Небольшие правила, следуя которым, можно сберечь себе много нервов:

- всегда сохраняйте резервные копии модифицируемых файлов - старайтесь почаще тестировать внесенные изменения - так проще понять, в чем вы ошиблись (если активно работать пару часов без остановки, не разу не протестировав внесенные изменения, то потом будет очень сложно понять - почему же, черт возьми, игра вылетает при попытке поговорить с Сидоровичем?) - перед началом работы создайте новую папку gamedata, а свои моды спрячьте подальше: работать с "чистой" версией игры не в пример удобнее и проще; особенно противопоказан Repair Mod, который с новыми диалогами часто конфликтует. О том, как создать диалоги и квесты, исключающие возможность конфликта с другими подобными модами, см. часть 4. 
Создание базового диалога

Начнем создание квеста с написания небольшого линейного диалога.

Открываем файл gamedata\config\gameplay\character_desc_escape.xml и проводим такие манипуляции:

- находим строку "escape_trader_done_blockpost_box" - добавляем после нее новую - "escape_trader_oops" - сохраняем изменения

Мы добавили к Диалогу с Сидоровичем новую ветку, вернее, только ссылку на неё. Сама внутренняя структура ветки хранится в файле gamedata\config\gameplay\dialogs_escape.xml, который мы открываем и производим:

- находим в любом месте файла промежуток между и
- сохраняем изменения

Теперь у нас прописана структура новой ветки диалога. Осталось сделать еще одну вещь - прописать строки, которые будут отображаться вместо "escape_trader_oops_...".

Для этого откроем файл gamedata\config\text\rus\stable_dialogs_escape.xml и сделаем следующее:

- находим любой удобный промежуток между и - прописываем туда следующие строки:

Сидрыч, давай поговорим о... водке. 


водке? Да какая водка? Нет её у меня, кончилась. Вроде у Волка на чердаке была, что-то он 
однажды об этом упоминал... Принеси, а?

 

Да сбегаю я сейчас, сбегаю... алкоголик, блин. 


Беги, беги... сил уж нет ждать. 

- сохраняем изменения

Всё. Диалог готов. Можно грузить игру и смотреть, работает ли новая ветка. А теперь будем прикреплять к этому безобразию квест ""Принеси водки Сидоровичу".

Создание базового квеста

Активацию квеста в диалог прикрепить достаточно просто. Проводим с файлом gamedata\config\gameplay\ dialogs_escape.xml следующие манипуляции:

- добавляем содержимое фразы следующим:


escape_trader_oops_2 
kvest_vodka_started 

- сохраняем изменения

Теперь после фразы Меченого "Да сбегаю я сейчас, сбегаю..." Сидорович таки всучивает нам квест "Принеси водку". Но не спешите тестировать изменения. Мы добавили в диалог упоминание о квесте, хотя он еще не создан.

Исправим это недоразумение. Откройте файл gamedata\config\gameplay\tasks_escape.xml и в начале файла создайте такую конструкцию: 

 

Принести водки Сидоровичу 
ui_iconsTotal_find_item 
test_quest_vodka_otdana 

Вернуться с водкой обратно 
green_location 
Escape_novice_lager_volk 
test_quest_vodka_otdana 


Найти водку на чердаке 
blue_location 
Escape_Trader 
test_quest_vodka_otdana 


Мы прописали данные о квесте: название, иконку, строки заданий, расположение маркеров и т.д.

К этому файлу мы еще вернемся, т.к. в этом варианте многое проставлялось не иначе как от балды. Я еще подумаю, как заставить задание "Вернуться с водкой обратно" появиться в PDA, а то оно что-то не желает явить себя народу... впрочем, ладно, главное, что все работает и не вылетает. А исправление столь мелких багов - дело десятое. Продолжим.

Откроем файл gamedata\config\gameplay\info_l01escape.xml и зарегистрируем до того отсутствовавшие в игре типы условий (они нам еще пригодятся для завершения работы над квестом):

- после строки прописываем: 


esc_test_vodka_task 


С прописыванием условий - всё.

Теперь займемся одной небольшой, но нужной вещью - прописыванием экранных подсказок, которые высвечиваются при получении/выполнении этапа/завершении задания.

Для этого откроем файл gamedata\config\text\rus\string_table_tasks_escape.xml и пропишем там: 

Принести бутылку водки 


Найти водку на чердаке у Волка 


Принести водку Сидоровичу 

Теперь можно тестировать, что получилось. Сверяем результаты:

- по окончанию разговора про водку у вас появляется новое задание - в задании маркером отмечен Волк (ближайший к чердаку маркер, потому и отмечен) - при получении задания на экране высвечивается уведомление

Можно приступать к третьей стадии. Что мы забыли? Правильно - возможность выполнить квест.

Реализация возможности выполнить квест

На самом деле - все просто. Все условия и т.д. уже нами созданы, осталось только применить их в диалоге. Давайте несколько изменим его структуру, сделаем его ветвистым и функциональным:

0. Сидрыч, давай поговорим о... водке. ( переход к 1)

1. О водке? Да какая водка? Нет её у меня, кончилась. Вроде у Волка на чердаке была, что-то он однажды об этом упоминал... Принеси, а? ( выбор - переход к 2, 4, 5; изначально доступен только 2 вариант )

2. Да сбегаю я сейчас, сбегаю... алкоголик, блин. ( получение квеста, переход к 3, после этого перестает быть доступен )

3. Беги, беги... сил уж нет ждать. ( конец, переход к списку веток Сидоровича )

4. Вот она, твоя бутылка водки. Ну, вернее, не твоя, а Волка... ( появляется только при наличии водки в инвентаре, при выборе водка передается Сидоровичу, квест выполняется, идет переход к 7 )

5. Извини, Сидрыч, я пока еще не раздобыл, терпи... ( появляется только если взять квест, переход к 6 )

6. А ну марш отсюда! Без бутылки пришел... ууу, вражина... ( переход к 8 )

7. Теперь моя будет, Меченый! Ты так Волку и передай. Спасибо, выручил... держи награду. ( выдача награды, переход к 8 )

8. Ну тебя в пень... ( конец, переход к списку веток Сидоровича )

А вот так это будет выглядеть в файле gamedata\config\gameplay\dialogs_escape.xml: 
Теперь добавим в игру скрипты "передача денег" и "передача водки". Откройте файл gamedata\scripts\escape_dialog.script и перед разделителем "Trader" добавьте туда следующие строки: 
function transfer_deneg(first_speaker, second_speaker) 
dialogs.relocate_money(second_speaker, 4000, "in") 
end

function otday_vodku (npc, actor) 
dialogs.relocate_item_section(npc, "vodka", "out") 
end

function have_a_vodka (stalker, player) 
return stalker:object ("vodka") ~= nil 
end

Готово. Запускайте игру и любуйтесь. 
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
С водкой эта функцыя проканала,а с пистолетом пришлось заменить ее на 
function otday_pist(first_speaker, second_speaker) 
dialogs.relocate_item_section(second_speaker, "wpn_fort", "out")

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
Для тех, кто еще с нами - сейчас мы модифицируем квест так, чтобы исключить конфликты с другими подобными модами.

Реализация совместимости

Из-за чего наш мод не может работать вместе с аналогичными ему модами? Да потому, что файлы dialogs_escape.xml и некоторые другие у них пересекаются. Поэтому выделим их отдельно от основных диалогов:

Вместо dialogs_escape.xml мы будем испольховать новый - dialogs_new.xml Вместо stable_dialogs_escape.xml мы будем использовать файл stable_dialogs_new.xml (важно! не знаю почему, но он должен лежать в text\..., а не в text\rus\...)

Соответственно, весь реализованный нами новый контент перекидываем в пустые файлы (соблюдая форматирование), подчистив за собой на старом месте.

Единственное, что останется сделать после установки того же Repair Mod'а - заново добавить ветку диалога Сидоровичу в файле character_desc_escape.xml. Остальное в новом варианте нашего мода переписывать не придется - для диалогов отведено три файла.

Остальные файлы относятся уже к квестовой части и ни с чем пересекаться не могут - где вы видели другие моды с новыми квестами? Я - нет.

Откройте файл gamedata\config\localization.ltx и зарегистрируйте там stable_dialogs_escape.ltx. Потом откройте файл gamedata\config\system.ltx и в разделе "Dialogs" в конце строки (после dialogs_aes) пропишите dialogs_new (без ".ltx"!).

Все. Теперь ваши диалоги будут подгружаться из сторонних файлов. 

Категория: Конфиги | Добавил: Alive (15.01.2011)
Просмотров: 1830 | Комментарии: 2 | Теги: Модострой квесты | Рейтинг: 5.0/1
Всего комментариев: 2
2 Излом   (15.11.2012 10:18) [Материал]
Для новичков тут написано ооочень непонятно, в одном месте я даже сам запутался.

1 ВоиН   (05.05.2012 06:07) [Материал]
гдет я уже это читал, а так прописв
ывать это чесное слово просто муть

cellspacing="1" cellpadding="2" class="commTable">
Имя *:
Email:
Код *:

У рыцарей турнира богатый выбор: ледяное копье, огненное копье, кислотное копье и даже пряничное копье!
Все материалы из игры, использованные для сайта принадлежат Blizzard Entertainment.
Stalker: Shadow of Chernobyl · Stalker: Clear Sky · Stalker: Call of Pripyat · Stalker 2 · Hearthstone · Fallout 3/NV · Fallout 4
2010-2024 | Хостинг от uCoz | Powered by Math_Thunderpick and Alive


Тиц и pr сайта
Хостинг от uCoz