• Страница 1 из 1
  • 1
Форум » Форум IP » Теория модостроения » Создание сюжетных заданий (Учебник от IP Team # 4)
Создание сюжетных заданий
MillerДата: Ср, 09.05.2012, 18:27 | Сообщение # 1
Администратор
Группа: Администратор
Сообщений: 199
Репутация: 1029
Статус: Offline
Здесь вы научитесь создавать задания, типа сюжетных и пр. Например, найти, поговорить, убить. Научившись делать это, можно создать и неоднотипные задания.

Автор: Vova Miller [IP Team]

1. Для начала расскажу какова роль "Инфопоршней" в создании подобных заданий. Благодаря "Инфопоршням" мы можем сделать заданию условие выполнения, провала, начала квестов. Выполнить инфопоршень можно многими способами, и каждый инфопоршень только один раз.

2. Приступим к самому созданию квеста.
Чтобы вас не запутать, для начала объясню как делается самое простое задание: Поговорить со Сталкером. Конкретнее, сделаем задание "Поговорить с Волком", состоящее из одного пункта.
Открываем файл config\gameplay\tasks_escape.xml (В файлах config\gameplay\tasks_******.xml хранятся основы заданий)
Там, вставляем это (можно в самое начало):

Code
<!----------------------------------------------------------Поговорить с Волком---------------------------------------------------------->
   <game_task id="mod_perviy_quest" prio="100">
    <title>Информация</title>
    <objective>
     <text>Волк - не человек</text>
     <icon>ui_iconsTotal_esc_dinamit_to_volk</icon>
     <infoportion_complete>mod_perviy_quest_done</infoportion_complete>
                       <infoportion_fail>esc_wolf_dead</infoportion_fail>
     <map_location_type hint="Волк">blue_location</map_location_type>
     <object_story_id>esc_lager_leader</object_story_id>
                          <article>mod_perviy_quest_article</article>
    </objective>
    <objective>
     <text>Поговорить с Волком</text>
     <map_location_type hint="Волк">blue_location</map_location_type>
     <object_story_id>esc_lager_leader</object_story_id>
    </objective>
   </game_task>


Первая строка необязательна. Обычно я ставлю её над каждым новым заданием, чтобы в случае чего быстро найти любой сделанный тобою квест.
mod_perviy_quest - ID задания. Не должен повторяться с ID других квестов.
prio="100" - важность задания, то есть на каком месте он будет стоять в PDA. Чем меньше значение, тем выше в PDA будет задание.
<title>Информация</title> - заголовок задания
Первый тег <objective></objective> - в нём сама основа задания (иконка, описание, инфопоршень выполнения, провала всего задания и т.д.)
<text>Волк - не человек</text> - данный текст игра не читает, так что в это теге можно писать, что душа пожелает, но убирать его не стоит.
<icon>ui_iconsTotal_esc_dinamit_to_volk</icon> - иконка задания. Берётся из config\ui\ui_iconstotal.xml
<infoportion_complete>mod_perviy_quest_done</infoportion_complete> - инфопоршень, при выполнении которого выполняется всё задание.
<infoportion_fail>esc_wolf_dead</infoportion_fail> - инфопоршень, при выполнении которого проваливается всё задание.
<map_location_type hint="Волк">blue_location</map_location_type> - название метки и её тип.
<object_story_id>esc_lager_leader</object_story_id> - куда будет указывать метка. Всегда используется вместе с предыдущей строкой. Берётся из config\game_story_ids.ltx
<article>mod_perviy_quest_article</article> - описание задания. Берётся из config\gameplay\storyline_info_taskmanager.xml
Второй тег <objective></objective> - составляет первый пункт задания. Так как квест у нас состоит из одного пункта, то содержимое этого тега пусто и заполнение некоторых строк необязательно. Если вы захотите создать квест уже с двумя пунктами, вам нужно будет создавать третий подобный тег.
<text>Поговорить с Волком</text> - название первого пункта квеста.
Следующие две строки снова метка. Присутствие этих двух строк в теге первого пункта необязательно.

Итак, с этим разобрались. В задании прописаны, но отсутствуют в игре инфопоршень выполнения, старта квеста (понадобится) и описание задания.
Чтобы сделать описание откроем, как уже было сказано, config\gameplay\storyline_info_taskmanager.xml. В самый низ вставим:

Code
<article id="mod_perviy_quest_article" name="kill_stalker" article_type="task">
          <text>Необходимо поговорить с Волком. Он должен был вернуть нам килограмм урана.</text>
</article>


Инфопоршни пропишем в файле config\gameplay\info_l01escape.xml. После <game_information_portions> пропишем инфопоршень, при выполнении которого начнётся квест:
Code
    <info_portion id="mod_perviy_quest_start">
    <task>mod_perviy_quest</task>
   </info_portion>

mod_perviy_quest_start - ID инфопоршня. Не должен повторятся с другими.
<task>mod_perviy_quest</task> - здесь мы указали ID нашего задания, которое стартует после выполнения данного инфопоршня.
И вставим инфопоршень выполнения квеста:
Code
    <info_portion id="mod_perviy_quest_done"></info_portion>


Отступление: Возможно вы спросите: "А как же инфопоршень 'провала' квеста?" Инфопоршень провала квеста уже существует в оригинальном ТЧ. Он выполняется при смерти Волка. Конечно, если в будущем вам нужно будет поговорить с другим сталкером, то инфопоршень нужен будет уже другой. Вы его пропишете как новый и поставите его выполнение через логику данного НПС при смерти, но это уже другая тема.

3. Итак, основа задания готова. Теперь нужно 'внедрить' его в игру, то есть поставить куда-нибудь старт квеста (например, через диалог) и, в нашем случае, поставить диалог Волку, где выполнится задание.
Как создать диалог? - Вы можете прочитать в учебнике от IP Team Диалоги: Создание и редактирование.

4. Не столь важный пункт в создании квеста, но всё же расскажу об этом.
Если оставить задание так, то при его выполнении ГГ не будет получать опыт и выполненное задание не будет отображаться в PDA в Статистике.
Исправим этот недочет. Открываем config\misc\task_manager.ltx. Там, строкой ниже [ list ], вставляем mod_perviy_quest. В этом же файле в самый низ вставляем:
Code
[mod_perviy_quest]
type = storyline
reward_rank = 15

reward_rank = 15 - количество получаемого опыта.
Затем, чтобы в Статистике наш квест не отображался как "mod_perviy_quest", в файле config\text\rus\ui_st_pda.xml (можно в любой другой, находящийся в этой же папке) перед </string_table> или после <string_table> прописываем:
Code
    <string id="mod_perviy_quest">
    <text>Информация</text>
   </string>


____________________________________________________________________

С этим заданием всё. Позже напишу, как создавать другие квесты, типа поиска предмета, убийство Сталкера и т.д.


 
DanSДата: Ср, 09.05.2012, 18:47 | Сообщение # 2
Тестер
Группа: iP Team
Сообщений: 148
Репутация: 125
Статус: Offline
Огромное спасибо Вова! happy

"IP Team"
 
GraFДата: Пн, 27.08.2012, 14:12 | Сообщение # 3
Прибывший
Группа: Сталкер
Сообщений: 1
Репутация: 0
Статус: Offline
Оч. помогло спасибо) happy

Сообщение отредактировал GraF - Пн, 27.08.2012, 14:14
 
Лектор777Дата: Вт, 03.12.2013, 19:38 | Сообщение # 4
Прибывший
Группа: Сталкер
Сообщений: 1
Репутация: 0
Статус: Offline
Спасибо,думаю,я смогу повторить, и сделать другие задания по этому принципу.
 
Форум » Форум IP » Теория модостроения » Создание сюжетных заданий (Учебник от IP Team # 4)
  • Страница 1 из 1
  • 1
Поиск:

Истинный путь Team © 2024