Однотипные квесты
Материал из S.T.A.L.K.E.R. Inside Wiki.
Описание
Как известно, при разговоре с некоторыми NPC (Сахаров, Бармен,
Сидорович, Лукаш, Волк, Шустрый, Бром, Лысый, Охотник и Осведомитель)
появляется ветка «есть ли для меня работа?». В целях упрощения создания
однотипных квестов, выдаваемых через эту ветку, разработчики создали
следующую схему...
Структура однотипных квестов
Сами задания находятся в конфиге:
gamedata\config\misc\task_manager.ltx
Цели квестов и условия их выполнения фиксируются в скрипте:
gamedata\scripts\task_manager.script
Ветки диалогов, отвечающие за эти задания (например, у Сидоровича) выглядит так:
<actor_dialog>tm_trader_dialog</actor_dialog>
<actor_dialog>tm_trader_reward</actor_dialog>
Где первый actor_dialog – диалог с выдачей задания, а второй - диалог
по заданию и получению награды, либо отказа от выполнения оного. Никто
нас насильно его выполнять не заставляет.
При получении задания информация об этом прописывается и в PDA, не забываем об этом. Информация добавляется с помощью файла:
gamedata\config\gameplay\storyline_info_taskmanager.xml
Описание задания хранится в файле:
gamedata\config\text\rus\stable_task_manager.xml
Всего существует шесть видов подобных заданий:
- eliminate_lager = уничтожить лагерь
- defend_lager = защитить лагерь
- kill_stalker = убить сталкер
- artefact = найти артефакт
- monster_part = найти часть монстра
- find_item = найти предмет
Создаем квест
Для создания дополнительного квеста у Сидоровича нам понадобятся всего три файла:
gamedata\config\gameplay\storyline_info_taskmanager.xml
gamedata\config\misc\task_manager.ltx
gamedata\config\text\rus\stable_task_manager.xml
Открываем task_manager.ltx, в начале видим длинный список заданий, а
уж потом сами задания и условия выполнения к ним. Т.е. cначала идет:
[...]
tm_kill_stalker_5
tm_kill_stalker_6
tm_kill_stalker_7
[...]
А затем то, что нам нужно:
[...]
[tm_kill_stalker_6]
type = kill_stalker
community = actor
text = tm_kill_stalker_6_text
description = tm_kill_stalker_6_descr
parent = trader
target = sim_stalker_novice
;reward_money = 1000
reward_reputation = +3
reward_rank = 2
reward_item = af_vyvert, conserva
time = 86400
prior = 1
[tm_kill_stalker_7]
type = kill_stalker
community = actor
text = tm_kill_stalker_7_text
description = tm_kill_stalker_7_descr
parent = trader
target = esc_wolf
reward_money = 10000
reward_reputation = +3
reward_rank = 2
reward_item = vodka, conserva
time = 86400
prior = 1
[...]
Рассмотрим структуру этих записей, заодно создав новую:
- [tm_kill_stalker_7] – наше задание
- type = kill_stalker – тип задания, в данном случае – убийство сталкера
- community = actor – комьюнити, к которому принадлежит
выполняющий задание (странный параметр, в игре используется - везде
выставлен равным actor'у)
- text = tm_kill_stalker_7_text – описание нашего задания в диалоге
- description = tm_kill_stalker_7_descr – описание нашего задания в PDA
- parent = trader - заказчик
- target = esc_wolf – цель, в данном случае мы собираемся грохнуть Волка
- reward_money = 10000 – сколько денег нам дадут за выполнение
- reward_reputation = +3 – повышение/понижение репутации после выполнения задания
- reward_rank = 2 – кличество очков ранга, выдаваемых за выполнение
- reward_item = vodka, conserva – предметы, выдаваемые в награду за квест
- time = 86400 – время выполнения квеста
- prior = 1 – приоритет задания
Не забываем про PDA. В файл:
gamedata\config\gameplay\storyline_info_taskmanager.xml
Добавляем следующие строки:
<article id="tm_kill_stalker_7_descr" name="kill_stalker" article_type="task">
<text>tm_kill_stalker_7_descr</text>
</article>
Текст на русском для задания нужен? Тогда открываем
gamedata\config\text\rus\stable_task_manager.xml
И туда вгоняем следующие строки:
<string id="tm_kill_stalker_7">
<text>Убить Волка</text>
</string>
<string id="tm_kill_stalker_7_text">
<text>Достал меня Волк! Понимаешь, достал! Ворует у меня водку, понимаешь, потом идет и клянчит деньги на
тушенку, потому что новички его не слушают и есть ничего не дают, а вот сойти со своего места и пойти охотится на кабанов, он,
видите ли, не хочет, ибо ЛЕНЬ! Грохни его, Меченый, я в долгу не останусь.</text>
</string>
<string id="tm_kill_stalker_7_descr">
<text>Сидрыч заказал убийство Волка</text>
</string>
Важно! Эти строки не должны выходить за пределы тегов <string_table> и </string_table>.
Вот и все, теперь у Сидоровича появился новый квест - "Убить Волка".
Авторы
Статья создана:
Arhet
|