• Название:

    Как добавлять новые миссии в Сталкер Тень Черно...

  • Размер: 0.05 Мб
  • Формат: DOC
  • или



Как добавлять новые миссии в Сталкер Тень Чернобыля S.T.A.L.K.E.R.
Создание типовых квестов
Автор:
Альгинов В.Л.

На PDA Меченого поступило очередное задание — найти и уничтожить в глухой чащобе волка-отшельника.
Темный-темный лес.
Звенящая тишина.
Отсутствие видимых признаков жизни.
Внезапно Меченый видит на опушке домик, заходит внутрь и встречается с хозяином, который рассказывает главному герою обо всех ужасах, творящихся в здешних местах.

Нет, это не сюжет продолжения Сталкера, а всего лишь одна дополнительная миссия, разработанная в нашей игрострой-лаборатории.
В прошлых статьях по модифицированию Сталкера мы изучили интерфейс редактора карт из официального SDK, а также научились конструировать несложные уровни для игры на основе стандартных объектов и новых сцен, изготовленных в 3 DS 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 с игрой и добавьте в конец файла следующий блок:



[descr]



В данном фрагменте кода [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.. Заранее предупреждаем — материал рассчитан на модмейкеров со стажем.