[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Теория модостроения » Скрипты, конфиги, логика, движок » Создание типовых квестов (Тени Чернобыля)
Создание типовых квестов
HardtmuthДата: Пн, 20.02.2017, 19:20 | Сообщение # 1




Сообщений: 754
Награды: 5
Репутация:

Статус:

Создание типовых квестов в Тени Чернобыля


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

Нет, это не сюжет продолжения «Сталкера», а всего лишь одна
дополнительная миссия.
Сегодня мы двинемся дальше — осветим тему написания несложных
типовых квестов для игры.
Быстрый старт

Поскольку официальный редактор не позволяет править уровни
одиночной игры, а как следствие — редактировать файлы скриптов,
путей следования NPC и другие ресурсы, мы будем писать квесты в...
обычном «Блокноте». У данного подхода есть всего лишь один минус,
который отпугивает большинство модмейкеров, — отсутствие
удобной оболочки, редактора для просмотра содержимого файлов
просто нет. Зато плюсов куда больше: возможность правки любых
параметров, открытые для редактирования исходные коды и многое
другое. Игра стоит свеч.

С чего же начать? Первым делом попрактикуемся в создании
несложных типовых заданий типа «убить сталкера», «уничтожить
лагерь», «найди ценный артефакт».
Запустите «Блокнот» и подгрузите в него файл task_manager.ltx из
директории gamedata\config\misc с распакованной игрой (если у вас
есть лишь недавно установленная версия «Сталкера», разархивируйте
базы данных игры при помощи утилиты S.T.A.L.K.E.R. Data Unpacker).
Файл содержит информацию о простейших игровых заданиях.
Структура его следующая. В первой части файла — от оператора

до кейворда 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 вашей миссии и в поле напротив наберите текст
задания для отображения во время беседы между Меченым и
работодателем. Сохраните изменения и закройте табличный редактор.




Форум » Теория модостроения » Скрипты, конфиги, логика, движок » Создание типовых квестов (Тени Чернобыля)
Страница 1 из 11
Поиск:

Войти Зарегистрироваться