Опис
Як відомо, при розмові з деякими NPC (Сахаров, Бармен, Сидорович, Лукаш, Вовк, Шустрий, Бром, Лисий, Мисливець та Освідомитель) з'являється гілка «чи є для мене робота?». З метою спрощення створення однотипних квестів, що видаються через цю гілку, розробники створили таку схему.
Структура однотипних квестів
Самі завдання знаходяться в конфізі gamedata\config\misc\task_manager.ltx .
Цілі квестів та умови їх виконання фіксуються в скрипті gamedata\scripts\task_manager.script .
Гілки діалогів, які відповідають за ці завдання (наприклад, у Сидоровича) виглядають так:
<actor_dialog > tm_trader_dialog </actor_dialog > <actor_dialog > tm_trader_reward </actor_dialog >
Де перший actor_dialog – діалог із видачею завдання, а другий - діалог із завданням і отримання нагороди, чи відмовитися від виконання оного. Ніхто нас силоміць його виконувати не змушує.
При отриманні завдання інформація про це прописується і в PDA, не забуваймо про це. Інформація додається за допомогою файлу gamedata\config\gameplay\storyline_info_taskmanager.xml .
Опис завдання зберігається у файлі gamedata\config\text\rus\stable_task_manager.xml .
Усього існує шість видів подібних завдань:
- eliminate_lager = знищити табір
- defensa_lager = захистити табір
- kill_stalker = вбити сталкера
- artefact = знайти артефакт
- monster_part = знайти частину монстра
- find_item = знайти предмет
Створюємо квест
Для створення додаткового квесту у Сидоровича нам знадобляться лише три файли:
- gamedata\config\gameplay\storyline_info_taskmanager.xml
- gamedata\config\misc\task_manager.ltx
- gamedata\config\text\ukr\stable_task_manager.xml
Відкриваємо task_manager.ltx , спочатку бачимо довгий список завдань, а вже потім самі завдання та умови виконання до них. Тобто. спочатку йде:
[ ... ] tm_kill_stalker_5 tm_kill_stalker_6 tm_kill_stalker_7 [ ... ]
А потім те, що нам потрібне:
[ ... ] [ tm_kill_stalker_6 ] type = kill_stalker community = actor text = tm_kill_stalker_6_text description = tm_kill_stalker_6_descr parent = trader target = sim_stalker_novice ; reward_money = 1000 _vyvert , conserva time = 86400 prior = 1 _ _ _ [ tm_kill_stalker_7 ] type = kill_stalker community = actor text = tm_kill_stalker_7_text description = tm_kill_stalker_7_descr parent = trader target = esc_wolf reward_money = 10000 reward_reputka = +3 400 prior= 1 [ ... ] _ _ _ _ _ _ _ _
Розглянемо структуру цих записів, заразом створивши нову:
- [tm_kill_stalker_7] – наше завдання
- type = kill_stalker – тип завдання, у разі – вбивство сталкера
- community = actor – комьюніті, якого належить виконує завдання (дивний параметр, у грі використовується - скрізь виставлений рівним actor'у)
- text = tm_kill_stalker_7_text – опис нашого завдання у діалозі
- description = tm_kill_stalker_7_descr – опис нашого завдання у PDA
- parent = trader - замовник
- target = esc_wolf – ціль, в даному випадку ми збираємось гримнути Вовка
- reward_money = 10000 – скільки грошей нам дадуть за виконання
- reward_reputation = +3 – підвищення/зниження репутації після виконання завдання
- reward_rank = 2 – кількість очок рангу, що видаються за виконання
- reward_item = vodka, conserva – предмети, що видаються нагородою за квест
- time = 86400 – час виконання квесту
- prior = 1 – пріоритет завдання
Не забуваймо про PDA. До файлу gamedata\config\gameplay\storyline_info_taskmanager.xml додаємо наступні рядки:
<article id = "tm_kill_stalker_7_descr" name = "kill_stalker" article_ type = "task" > <text > tm_kill_stalker_7_descr </text > </article >
Текст російською для завдання потрібен? Тоді відкриваємо gamedata\config\text\ukr\stable_task_manager.xml і туди вганяємо наступні рядки:
<string id = "tm_kill_stalker_7" > <text > Вбити Вовка </text > </string > <string id = "tm_kill_stalker_7_text" > <text > Дістав мене Вовк! Розумієш, дістав! Краде у мене горілку, розумієш, потім іде та клянчить гроші на тушонку, тому що новачки його не слухають і їсти нічого не дають, а ось зійти зі свого місця і піти полює на кабанів, він, бачите, не хоче, бо ЛІНЬ! Грохни його, Мічений, я в боргу не залишусь. </text > </string > <string id = "tm_kill_stalker_7_descr" > <text > Сідрич замовив вбивство Вовка </text > </string >
Важливо! Ці рядки не повинні виходити за межі тегів <string_table> та </string_table> .
Ось і все, тепер у Сидоровича з'явився новий квест – "Вбити Вовка".