Miller | Дата: Ср, 09.05.2012, 18:27 | Сообщение # 1 |
Администратор
Группа: Администратор
Сообщений: 199
Статус: 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
Статус: Offline
| Огромное спасибо Вова!
"IP Team"
|
|
| |
GraF | Дата: Пн, 27.08.2012, 14:12 | Сообщение # 3 |
Прибывший
Группа: Сталкер
Сообщений: 1
Статус: Offline
| Оч. помогло спасибо)
Сообщение отредактировал GraF - Пн, 27.08.2012, 14:14 |
|
| |
Лектор777 | Дата: Вт, 03.12.2013, 19:38 | Сообщение # 4 |
Прибывший
Группа: Сталкер
Сообщений: 1
Статус: Offline
| Спасибо,думаю,я смогу повторить, и сделать другие задания по этому принципу.
|
|
| |