Версия 15:40, 25 июня 2007 (править) BAC9-FLCL (Обсуждение | вклад)
← К предыдущему изменению |
Текущая версия (11:53, 25 июля 2007) (править) (отменить) BAC9-FLCL (Обсуждение | вклад) |
Строка 1: |
Строка 1: |
- | __TOC__ | + | #REDIRECT [[Однотипные квесты]] |
- | | + | |
- | ==Описание== | + | |
- | | + | |
- | Как известно, при разговоре с некоторыми NPC (Сахаров, Бармен, Сидорович, Лукаш, Волк, Шустрый Долговец, Лысый, Охотник и Осведомитель) появляется ветка «есть ли для меня работа?». В целях упрощения создания однотипных квестов, выдаваемых через эту ветку, разработчики создали следующую схему... | + | |
- | | + | |
- | ==Структура однотипных квестов== | + | |
- | | + | |
- | Сами задания находятся в конфиге: | + | |
- | | + | |
- | <pre>gamedata\config\misc\task_manager.ltx</pre> | + | |
- | | + | |
- | Цели квестов и условия их выполнения фиксируются в скрипте: | + | |
- | | + | |
- | <pre>gamedata\scripts\task_manager.script</pre> | + | |
- | | + | |
- | Ветки диалогов, отвечающие за эти задания (например, у Сидоровича) выглядит так: | + | |
- | | + | |
- | <pre><actor_dialog>tm_trader_dialog</actor_dialog> | + | |
- | <actor_dialog>tm_trader_reward</actor_dialog></pre> | + | |
- | | + | |
- | Где первый actor_dialog – диалог с выдачей задания, а второй - диалог по заданию и получению награды, либо отказа от выполнения оного. Никто нас насильно его выполнять не заставляет. | + | |
- | | + | |
- | При получении задания информация об этом прописывается и в PDA, не забываем об этом. Информация добавляется с помощью файла: | + | |
- | | + | |
- | <pre>gamedata\config\gameplay\storyline_info_taskmanager.xml</pre> | + | |
- | | + | |
- | Описание задания хранится в файле: | + | |
- | | + | |
- | <pre>gamedata\config\text\rus\stable_task_manager.xml</pre> | + | |
- | | + | |
- | Всего существует шесть видов подобных заданий: | + | |
- | | + | |
- | * eliminate_lager = уничтожить лагерь | + | |
- | * defend_lager = защитить лагерь | + | |
- | * kill_stalker = убить сталкер | + | |
- | * artefact = найти артефакт | + | |
- | * monster_part = найти часть монстра | + | |
- | * find_item = найти предмет | + | |
- | | + | |
- | ==Создаем квест== | + | |
- | | + | |
- | Для создания дополнительного квеста у Сидоровича нам понадобятся всего три файла: | + | |
- | | + | |
- | <pre>gamedata\config\gameplay\storyline_info_taskmanager.xml | + | |
- | gamedata\config\misc\task_manager.ltx | + | |
- | gamedata\config\text\rus\stable_task_manager.xml</pre> | + | |
- | | + | |
- | Открываем task_manager.ltx, в начале видим длинный список заданий, а уж потом сами задания и условия выполнения к ним. Т.е. cначала идет: | + | |
- | | + | |
- | <pre> | + | |
- | [...] | + | |
- | tm_kill_stalker_5 | + | |
- | tm_kill_stalker_6 | + | |
- | tm_kill_stalker_7 | + | |
- | [...] | + | |
- | </pre> | + | |
- | | + | |
- | А затем то, что нам нужно: | + | |
- | | + | |
- | <pre> | + | |
- | [...] | + | |
- | [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 | + | |
- | [...] | + | |
- | </pre> | + | |
- | | + | |
- | Рассмотрим структуру этих записей, заодно создав новую: | + | |
- | | + | |
- | * [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. В файл: | + | |
- | | + | |
- | <pre>gamedata\config\gameplay\storyline_info_taskmanager.xml</pre> | + | |
- | | + | |
- | Добавляем следующие строки: | + | |
- | | + | |
- | <pre><article id="tm_kill_stalker_7_descr" name="kill_stalker" article_type="task"> | + | |
- | <text>tm_kill_stalker_7_descr</text> | + | |
- | </article></pre> | + | |
- | | + | |
- | Текст на русском для задания нужен? Тогда открываем | + | |
- | | + | |
- | <pre>gamedata\config\text\rus\stable_task_manager.xml</pre> | + | |
- | | + | |
- | И туда вгоняем следующие строки: | + | |
- | | + | |
- | <pre> <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></pre> | + | |
- | | + | |
- | '''Важно!''' Эти строки не должны выходить за пределы тегов <string_table> и </string_table>. | + | |
- | | + | |
- | Вот и все, теперь у Сидоровича появился новый квест - "Убить Волка". | + | |
- | | + | |
- | [[Категория:Статьи участников]] | + | |