Нет, это не сюжет продолжения «Сталкера», а всего лишь одна
дополнительная миссия, разработанная в нашей игрострой-лаборатории. В
прошлых статьях по модифицированию «Сталкера» мы изучили интерфейс
редактора карт из официального SDK, а также научились конструировать
несложные уровни для игры на основе стандартных объектов и новых сцен,
изготовленных в 3DS Max. Сегодня мы двинемся дальше — осветим тему
написания несложных типовых квестов для игры. Быстрый старт
Поскольку
официальный редактор не позволяет править уровни одиночной игры, а как
следствие — редактировать файлы скриптов, путей следования NPC и другие
ресурсы, мы будем писать квесты в... обычном «Блокноте». У данного
подхода есть всего лишь один минус, который отпугивает большинство
модмейкеров, — отсутствие удобной оболочки, редактора для просмотра
содержимого файлов просто нет. Зато плюсов куда больше: возможность
правки любых параметров, открытые для редактирования исходные коды и
многое другое. Игра стоит свеч.
С чего же начать? Первым
делом попрактикуемся в создании несложных типовых заданий типа «убить
сталкера», «уничтожить лагерь», «найди ценный артефакт».
Запустите
«Блокнот» и подгрузите в него файл task_manager.ltx из директории
gamedata\config\misc с распакованной игрой (если у вас есть лишь недавно
установленная версия «Сталкера», разархивируйте базы данных игры при
помощи утилиты S.T.A.L.K.E.R. Data Unpacker).
Файл содержит
информацию о простейших игровых заданиях. Структура его следующая. В
первой части файла — от оператора [list] до кейворда sar_monolith —
объявляются специальные метки, ответственные за подключение новых
квестов к игре. Пример одной из таких конструкций — буквосочетание
tm_kill_stalker_5, это название типовой миссии. Во второй части файла —
после ключевого слова sar_monolith — размещаются тексты заданий: цели,
задачи, ссылки на диалоги. Разберем структуру одного из квестов,
начинающегося со специальной метки [tm_kill_stalker_3] (обратите
внимание, что при объявлении задания в первой части файла квадратные
скобки ставить не нужно):
[tm_kill_stalker_3]
type =
kill_stalker
community = actor
text =
tm_kill_stalker_3_text
description = tm_kill_stalker_3_descr
parent
= trader
target = sim_stalker_novice
;reward_money = 1000
reward_reputation
= -5
reward_rank = 2
reward_item = af_blood
time =
86400
prior = 2
Рассмотрим основные параметры. Самый
первый — type — отвечает за тип задания, в данном случае — уничтожить
сталкера (kill_stalker). В игре предусмотрено несколько видов
стандартных заданий: уничтожение/защита лагеря (параметр
eliminate_lager/defend_lager), убийство сталкера (kill_stalker), поиск
артефакта/конечности монстра/предмета (artifact/monster_part/find_item).
Поскольку специальных редакторов и утилит для изменения «Сталкера»
нет, приходится править скрипты в «Блокноте», а игровые тексты — в
табличном редакторе Excel. Не очень удобно, но альтернативы просто нет.
Параметр
community определяет группировку, к которой принадлежит главный герой.
По умолчанию во всех миссиях в качестве значения данной характеристики
используется ключевое слово actor (персонаж).
text — название
записи в файле stable_task_manager.xml, содержащей текст задания. Текст
отображается в диалогах.
description — запись в файле
stable_task_manager.xml. Здесь собран текст миссии, выводимый на PDA
Меченого.
Следующая настройка — атрибут parent — определяет имя
заказчика, в данном случае trader (торговец Сидорович).
target —
цель миссии, в текущем квесте — убийство одного из сталкеров — novice
(sim_stalker_novice).
reward_money — награда, которую получит
игрок после выполнения задания.
reward_reputation — число очков
репутации, добавляемое игроку после прохождения квеста. Вы можете
понизить Меченому репутацию за выполнение задания, выставив в качестве
значения атрибута любое целое отрицательное число.
reward_rank —
количество ранговых очков за выполнение миссии.
reward_item —
бонусные предметы, вручаемые главному герою, за прохождение квеста.
time
— время (в секундах), в течение которого игрок должен пройти миссию.
prior
— приоритет данного задания перед остальными. Цифра 1 ставится в том
случае, если задание крайне важно, и далее по нисходящей.
Самое
время попрактиковаться и модифицировать какой-нибудь оригинальный
игровой квест. Отыщите строку [tm_kill_stalker_5] (для вызова меню
поиска в «Блокноте» воспользуйтесь комбинацией горячих клавиш Ctrl+F) и
модифицируйте параметры данной миссии. Например, вы можете просто
повысить/понизить сложность игры, увеличив или уменьшив время,
отведенное игроку на выполнение задания (параметр time), снять значок
блокировки строки (символ ;), reward_money (денежное вознаграждение)
или, скажем, придать параметру reward_reputation значение ноль, чтобы
Меченый не терял репутацию в Зоне. Текстовый беспредел
С
правкой исходного кода миссии мы разобрались. Движемся дальше и
приступаем к модификации игровых текстов. Загляните в каталог
gamedata\config\text\rus установленной игры, отыщите в директории файл
stable_task_manager.xml и откройте его при помощи табличного редактора
Microsoft Excel.
После запуска программы вы увидите, что вся
информация из XML-файла будет распределена по двум столбцам — A и B,
которым соответствуют названия id (идентификационный номер) и text
(текст). Если спускаться плавно вниз по столбцу id, то нетрудно
установить так называемую закономерность. Строки 3, 6, 9 и далее в
арифметической прогрессии содержат заголовок типовой миссии. Строки 4,
7, 10, 13, 16 с окончанием _descr — краткое описание (цель задания),
выводимое на PDA главного героя. Ну а строки 5, 8, 11, 14 и далее,
заканчивающаяся на _text, содержат текст, отображаемый во время диалога с
персонажем, у которого вы получили задание.
Таким образом, для
изменения текстов того или иного одноуровневого задания, прописанного в
файле task_manager.ltx, вам нужно проделать следующие нехитрые
манипуляции. Первым делом скопируйте в «Блокнот» название определенной
миссии из task_manager.ltx (без квадратных скобок), ее описание для
вывода на PDA (параметр description) и текст диалога (text). Затем
поочередно отыщите выписанные ключевые слова в XML-файле
stable_task_manager.xml и модифицируйте текст каждой из записей.
Закончив правку задания, сохраните все изменения и протестируйте квест в
игре.Тонкости квестостроения
Чтобы оставить свой собственный
авторский след в файле task_manager.ltx, да и вообще в любом
конфигурационном файле «Сталкера», нужно всего-то лишь поставить в
нужном месте (после кода или с новой строки) символ точки с запятой и
после него вживить комментарий, например: tm_eliminate_camp_4 ;
игроманский комментарий, не удалять. Далеко не все квесты, написанные
разработчиками, вошли в оригинальную игру. Что, никогда о таком не
слышали? Тогда имейте в виду, что, например, в файле task_manager.ltx
содержится ряд закомментированных, но вполне рабочих заданий, цель
которых сводится к убийству сталкеров и поиску полезных вещиц. После
тщательного прочесывания документа на наличие такого рода заданий мы
обнаружили следующие заблокированные квесты:
;--[barmen_eliminate_camp_3]
;--[barmen_find_item_1]
;--[barmen_find_item_2]
;--[barmen_find_item_3] Для
преобразования геймплея S.T.A.L.K.E.R. достаточно поправить всего лишь
несколько параметров каждой типовой миссии в файле task_manager.ltx. Как
вариант, вы можете значительно сократить время, отведенное на
выполнение каждого квеста, занизить очки репутации за прохождение той
или иной миссии, но в то же время в несколько раз увеличить число
бонусов и денежных средств.
Квестострой
Теперь, когда вы
изучили основы редактирования однотипных игровых заданий, можно
попробовать силы в написании своего собственного квеста — создать
необходимые записи в менеджере заданий (файл task_manager.ltx), а также
снабдить квест текстовыми описаниями.
Запустите «Блокнот» и
подгрузите в него файл task_manager.ltx из директории
gamedata\config\misc. Отыщите ключевое слово sar_monolith и после него с
новой строки добавьте следующую конструкцию:
; Ваш авторский
комментарий
[mission_name]
Здесь [mission_name] —
произвольное наименование квеста, например, tm_kill_stalker_7.
Для
изменения игрового баланса нужно отредактировать коды типовых заданий.
Далее
скопируйте какое-нибудь типовое задание, например, [tm_kill_stalker_2] в
буфер обмена и поместите дубликат в самый конец документа. Измените
название клонированной миссии, заключенное в квадратные скобки, на
название квеста, объявленного вами в списке заданий. Модифицируйте
параметры оригинальной миссии, при необходимости добавьте в код миссии
дополнительные команды. Самое главное — не забудьте поправить значения
параметров text и description, которые соответствуют названиям текстовых
записей в файлах
gamedata\config\gameplay\storyline_info_taskmanager.xml и
gamedata\config\text\rus\stable_task_manager.xml. Затем откройте
«Блокнотом» XML-файл storyline_info_taskmanager.xml из каталога
gamedata\config\gameplay с игрой и добавьте в конец файла следующий
блок:
<article id="[descr]" name="kill_stalker"
article_type="task">
<text>[descr] </text>
</article>
В
данном фрагменте кода [descr] — значение параметра description в теле
миссии, (в нашем случае — tm_kill_stalker_7_descr).
Осталось
внести изменения в файл stable_task_manager.xml, содержащий тексты
заданий на русском языке. Перейдите в каталог gamedata\config\text\rus и
при помощи любого табличного редактора — скажем, Excel — откройте файл
stable_task_manager.xml. Передвиньте ползунок в правой части программы в
нижнюю часть документа. В ячейке на пересечении 391 строки и первого
столбца введите ключевое слово, соответствующее названию вашего квеста в
файле task_manager.ltx. После этого в поле напротив (ячейка B-391)
напечатайте название будущего задания.
В поле A-392 (A — название
столбца, 392 — порядковый номер строки) вбейте название, прописанное в
качестве параметра description вашей миссии, а в области B-392 — текст
сообщения, который будет подан на PDA главного героя. В ячейке A-393
пропишите значение характеристики text вашей миссии и в поле напротив
наберите текст задания для отображения во время беседы между Меченым и
работодателем. Сохраните изменения и закройте табличный редактор. * *
*
Мы изучили азы создания несложных квестов для S.T.A.L.K.E.R. и
попутно разобрали структуру скриптовых файлов. Если тема создания новых
миссий для «Сталкера» вам интересна, обязательно загляните в раздел
«Игрострой» на нашем DVD. Там вас поджидает подробное руководство по
разработке сложных миссий и написанию нелинейных диалогов для
S.T.A.L.K.E.R.. Заранее предупреждаем — материал рассчитан на
модмейкеров со стажем.
|