Сповіщення
Очистити все

Створення типових квестів


Ранг:
Майстер
Роль:
Гість
Записи:
752
Приєднався:
2 роки тому
 

На PDA Міченого надійшло чергове завдання - знайти і знищити в глухому гущавині вовка-самітника. Темний темний ліс. Дзвінча тиша. Відсутність видимих ​​ознак життя. Раптом Мічений бачить на узліссі будиночок, заходить усередину і зустрічається з господарем, який розповідає головному герою про всі жахіття, що твориться в тутешніх місцях.

Ні, це не сюжет продовження « Сталкера », а лише одна додаткова місія, розроблена в нашій гробуд-лабораторії. У минулих статтях з модифікації «Сталкера» ми вивчили інтерфейс редактора карток з офіційного SDK, а також навчилися конструювати нескладні рівні для гри на основі стандартних об'єктів та нових сцен, виготовлених у 3DS Max . Сьогодні ми рушимо далі — висвітлимо тему написання нескладних типових квестів для гри.

 

 

Швидкий старт

Оскільки офіційний редактор не дозволяє правити рівні одиночної гри, а як наслідок — редагувати файли скриптів, шляхів прямування NPC та інші ресурси, ми писатимемо квести у звичайному «Блокноті». Даний підхід має лише один мінус, який відлякує більшість модмейкерів, — відсутність зручної оболонки, редактора для перегляду вмісту файлів просто немає. Зате плюсів набагато більше: можливість виправлення будь-яких параметрів, відкриті для редагування вихідні коди та багато іншого. Гра варта свічок.

З чого почати? Насамперед попрактикуємося у створенні нескладних типових завдань типу «вбити сталкера», «знищити табір», «знайди цінний артефакт» .

Запустіть «Блокнот» і підвантажте файл task_manager.ltx з директорії gamedata\config\misc з розпакованою грою (якщо у вас є лише нещодавно встановлена ​​версія «Сталкера», розархівуйте бази даних гри за допомогою утиліти STALKER 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
 
=
 
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]

 

  • Для перетворення геймплея STALKER достатньо виправити лише кілька параметрів кожної типової місії у файлі 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\ukr і за допомогою будь-якого табличного редактора - скажімо, Excel - відкрийте файл stable_task_manager.xml . Пересуньте повзунок у правій частині програми до нижньої частини документа. У осередку на перетині 391 рядка та першого стовпця введіть ключове слово, яке відповідає назві вашого квесту у файлі task_manager.ltx . Після цього в полі навпроти (комірка B-391 ) надрукуйте назву майбутнього завдання.

У полі A-392 ( A - назва стовпця, 392 - порядковий номер рядка) вбийте назву, прописану як параметр description вашої місії, а в області B-392 - текст повідомлення, який буде подано на PDA головного героя. У осередку A-393 напишіть значення характеристики text вашої місії та в полі навпаки наберіть текст завдання для відображення під час розмови між Міченим та роботодавцем. Збережіть зміни та закрийте табличний редактор.

 

* * *

Ми вивчили ази створення нескладних квестів для STALKER і при цьому розібрали структуру скриптових файлів. Якщо тема створення нових місій для "Сталкера" вам цікава, обов'язково загляньте сюди: [посилання буде пізніше]. Там на вас чекає докладний посібник з розробки складних місій та написання нелінійних діалогів для STALKER. Заздалегідь попереджаємо – матеріал розрахований на модмейкерів зі стажем.


   
Цитата