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

SoC. Однотипні квести


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

Опис

Як відомо, при розмові з деякими 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> .

Ось і все, тепер у Сидоровича з'явився новий квест – "Вбити Вовка".


   
Цитата