Зарегистрируйтесь сейчас чтобы найти еще больше друзей, и получить полноценный доступ ко всем функциям сайта!
Для просмотра Вам необходимо авторизоваться Если Вы еще не зарегистрированы, перейдите по ссылке:Зарегистрироваться
x
Сборка: L2l_Monius : m5 k3 @) j: x o. x A w
Следующие квесты можно использовать в качестве шаблонов для создания практически любого простого квеста go kill или go talk.
2 h( x5 u7 ?* d+ L/ ~0 S. W' R6 w! f- T+ Z, [- W( |
- @0 R4 h, f9 {# V
Иди и убей X монстров / Возвращение - награда.
: j$ x8 c7 j# s' L9 v# G( YQ00529_RegularBarrierMaintenance7 w$ `1 n3 z% T0 U" s9 E
; z m+ U; X5 I& O% d
Получите квест от любого из двух разных NPC / Убейте X монстров / Вернитесь с наградой.8 d9 v4 U9 J) r) X& P) O+ t
Q00683_AdventOfKrofinSubspecies
# t( n/ ~+ _/ S. j/ Y
$ L; L& e" n1 C) n$ v4 A3 `# ?Поговори с NPC 1 / Поговори с NPC 2 / Поговори с завершающим NPC / Награда.' ?' |6 D; z. G, d6 L1 O, K
Q10516_UnveiledFafurionTemple
" N) H; N9 ?. J6 `% G4 W: g ?* h5 x: C- S
Убейте X монстров, а также соберите X предметов / Возврат - награда.
9 h3 L) a: F2 i' M9 r/ h* [Q10517_FafurionsMinions, {2 I* `3 ~) V" @2 p& `; H4 h
( a2 j2 ^" b& C6 n
Иди собери X капель монстров / Вернись - убей X монстров / Вернись - награда.
! T$ ]# H: m* cQ10529_IvoryTowersResearchFloatingSeaJournal
2 l* L8 B9 k6 ?. }4 s- ^
+ T: ~3 [6 x. qИди убей X монстров, а также собери X предметов / Возвращение - иди собери X предметов / Возвращение - награда.) y. t* w4 E4 A% Z* F1 k
Q10518_SucceedingThePriestess( \+ k G: @) {: o
; s7 \$ g! o8 a. ]) TУчаствуйте в убийстве рейдбосса / Возврат - награда.
& d. d0 |2 ?# K6 }2 G6 `' kQ10519_контролирование вашей температуры
& f9 F4 {# m. Y5 a$ J1 {
$ F5 w; f, S! Y; z& _Поговорите с NPC 1 / Примите участие в убийстве рейдбосса / Возвращение - награда.' l3 Y0 u& z1 g* W% j: D
Q10533_OrfensAmbition
, f7 M6 V9 B8 J$ J
/ j" ?0 V O5 a1 {; c/ H `3 B
2 L& b! [/ r( X1 Y4 m/ d
8 K; D4 J7 \( nРуководство требует обновления. И, к сожалению, с самыми последними хрониками вы не сможете избежать модификаций клиента. Поэтому, исключительно в образовательных целях, я предлагаю свой опыт по добавлению нового квеста!5 B/ j4 R1 }% q$ L1 w
! K6 Z7 O3 j4 _) g4 f& u
Шаг 1: Создайте свой квест с уникальным ID. В этом примере я буду ссылаться на квест как "Q98765_NewQuest".# {; c& k* V* n g( j+ d6 |
$ k: y8 l: U+ @: c+ VШаг 2: Когда вы успешно создали свой квест и Eclipse не выдает ошибок, добавьте название квеста и импортируйте его в файл "QuestMasterHandler.java".
% l e$ _6 ^8 K& r0 D# |0 [2 L9 O: c- r# O$ V; ^
Шаг 3: Перейдите в клиент и с помощью редактора клиента добавьте квест в следующие файлы .dat: "questname-ru.dat" и "QuestMarkConditionData.dat".- o) W0 [5 _5 T; J! K
H; _4 Y1 L' b( d3 X% D1 h
Следующие шаги относятся к любым новым хроникам, которые используют всплывающие окна квестов.
* H# d2 a8 F' X# ?1 \& m) ^' Z$ x1 X$ h8 Q, h. e5 l
Шаг 4: Найдите в серверных файлах файл с названием "NewQuestData.xml" и добавьте туда свой квест.
8 Z' s/ v) G. H( W$ S, n6 s9 j1 K
Шаг 5: Найдите в клиенте следующие файлы и добавьте туда свой квест: "NewQuestData-ru.dat", "NewQuestDialog-ru.dat" и "NewQuestNpcPortrait.dat".
2 X1 T( l( m( H7 b- r* `( ]3 I5 a, E0 \% J' l( d& Y
Если я что-то забыл, не стесняйтесь исправить меня. Это руководство создано исключительно в образовательных целях.
& E5 e2 h* T% s* k' q* O6 A% l. A' _( t& U
Шаг 2:
& v- B1 ]5 r+ Y* T4 ?" E
/ d& C7 d+ E+ p" p- I- c: ^Следующий шаг заключается в добавлении вашего квеста в QuestMasterHandler.java. Вот общий план:5 N+ H+ C8 d8 O, s; a! K
" y9 B$ I q2 \2 ]( O) j' b3 x1. Импорт вашего квеста: В начале файла после всех существующих импортов добавьте строку, которая будет импортировать ваш квест. 2 d" A p$ ]% T0 T( a, P
Например:
' R' Z! e% F. ~. h* t, U2 f; W: E0 G+ u+ P+ B9 i; r* u
- import quests.<span style="background-color: rgb(255, 255, 255);">Q98765_NewQuest</span>.<span style="background-color: rgb(255, 255, 255);">Q98765_NewQuest</span>;5 h# {* q) f! y% x* L) @
Скопировать код 1. Регистрация квеста: Найдите метод, который отвечает за регистрацию всех квестов. Обычно это делается в статическом блоке или методе init, где происходит инициализация квестов. В этом блоке добавьте строку, которая будет регистрировать ваш квест:
' x" o% _/ e! ]( Z# G5 ? q7 I
& q1 m. f9 r% \9 B4 O* d- /**6 n; [- j7 M3 c: u6 x/ F- s2 {
- * @author NosBit
' H: S) k: s- @ - */
, F7 }/ E( O3 P. A - public class QuestMasterHandler
) x! m3 X" I" j. m0 H; C6 c! K - {
) l5 Q) U: H" p+ H- h2 g4 h - private static final Logger LOGGER = Logger.getLogger(QuestMasterHandler.class.getName());% k8 r4 q! a8 g# ]7 ?
- $ s- }' u7 ?% Z9 k8 W! [
- private static final Class<?>[] QUESTS =* N; I5 m5 a: v$ A, H" [+ y
- {
Скопировать код Проверка: Убедитесь, что идентификатор вашего квеста (в данном случае Q98765_NewQuest.class) уникален и не конфликтует с уже существующими квестами.5 Z6 V$ L2 v$ p% O
9 v" A# e. E" w' w' Q
* q- f/ R( w' NШаг 3:
7 i, h: h% y) K) `" _
& u0 _& J7 O: [! kФайл QuestName-ru.dat используется для описания квестов и содержит различные параметры, которые задают характеристики квеста, его цели, награды, ограничения и т.д.
8 Y) o1 s& Z% f" Y% MДавайте разберем все поля на основе примера:
8 e+ Q! `2 t, m6 r. X% L' S; ]# X1 \
- quest_begin tag=1 id=10811 level=1 title=[Узнай свой предел] sub_name=[Бремя силы] desc=[Если готовы, то еще раз поговорите с Рыцарем-Хранителем Евы Леонелом Хантером в Хейне.\n] goal_id={} goal_type={} goal_num={} target_loc={111382.0;220905.0;-3544.0} add_target_locs={} q_level={} lvl_min=100 lvl_max=0 journal_disp=3 entity_name=[Рыцарь-Хранитель Евы Леонел Хантер] get_item_in_quest=0 unk1=1 unk2=1 start_npc_id={33907} start_npc_loc={111382.0;220905.0;-3544.0} q_requirement=[Дворянин] quest_intro=[Рыцарь-Хранитель Евы Леонел Хантер из Хейна посоветовал прийти к нему, если Вы желаете узнать предел Ваших возможностей...] class_limit={} have_item={} clan_pet_quest=1 cleared_quest=1 mark_type=-1 category_id=0 priority_level=0 search_zoneid=121 iscategory=3 reward_id={45922;15625} reward_num={1;0} pre_level={0} faction_id=0 faction_level_min=0 faction_level_max=0 quest_end
O1 m5 C' ^. _1 l+ W/ ?
Скопировать код Поля данных:- quest_begin — начало записи для квеста.
- tag — идентификатор типа данных. Может использоваться для группировки квестов или идентификации квестов по определённым категориям.
- id — уникальный идентификатор квеста. Должен быть уникален для каждого квеста.
- level — уровень сложности квеста. Используется для группировки и показа квестов, подходящих по уровню.
- title — название квеста, которое отображается в интерфейсе. Заключено в квадратные скобки.
- sub_name — подзаголовок квеста, используется для дополнительного описания. Заключен в квадратные скобки.
- desc — описание квеста, которое появляется при его принятии или выполнении. Здесь также используется разметка с символами переноса строки (\n).
- goal_id — идентификатор цели квеста. Может содержать ID объекта или персонажа, который нужно достичь.
- goal_type — тип цели. Указывает, какого типа задача ставится перед игроком (например, убить монстров, собрать предметы).
- goal_num — количество необходимых действий для завершения цели. Например, количество монстров для убийства или предметов для сбора.
- target_loc — координаты (X, Y, Z), куда должен отправиться игрок для выполнения задачи. Координаты указываются в формате {X;Y;Z}.
- add_target_locs — дополнительные целевые локации, если квест предполагает несколько мест назначения.
- q_level — уровень сложности или рекомендованный уровень для выполнения квеста.
- lvl_min — минимальный уровень персонажа, с которого квест доступен.
- lvl_max — максимальный уровень персонажа для выполнения квеста. Если не указан, то квест доступен на любом уровне выше минимального.
- journal_disp — параметр, определяющий отображение квеста в журнале квестов (например, на каком этапе он должен отображаться).
- entity_name — имя NPC или объекта, который связан с выполнением квеста (например, кто выдаёт квест или с кем нужно взаимодействовать).
- get_item_in_quest — указывает, должен ли игрок получать предметы в ходе выполнения квеста. 0 — нет, 1 — да.
- unk1 — неизвестное поле, возможно зарезервировано для будущих функций или модификаций.
- unk2 — аналогично, поле с неизвестным назначением.
- start_npc_id — ID NPC, который выдаёт квест. ID указан в фигурных скобках {}.
- start_npc_loc — координаты NPC, который выдаёт квест. Используется формат {X;Y;Z}.
- q_requirement — дополнительные требования к выполнению квеста, например, наличие определённого статуса или ранга (например, "Дворянин").
- quest_intro — вводное описание квеста, которое отображается при первом контакте с NPC.
- class_limit — ограничения по классам персонажа. Указываются ID классов, которым доступен квест.
- have_item — список предметов, которые должны быть у игрока для выполнения квеста.
- clan_pet_quest — указывает, является ли квест клановым или петом. 1 — да, 0 — нет.
- cleared_quest — указывает, выполнен ли квест или нет. 1 — выполнен, 0 — не выполнен.
- mark_type — тип метки, связанной с квестом. Используется для отображения различных иконок или маркеров на карте.
- category_id — ID категории, к которой относится квест. Может использоваться для фильтрации квестов по категориям.
- priority_level — уровень приоритета квеста. Чем выше значение, тем приоритетнее квест для отображения и выполнения.
- search_zoneid — ID зоны, в которой происходит действие квеста. Определяет область, в которой игрок должен выполнять задание.
- iscategory — указывает, является ли квест частью категории квестов (например, кампаний или цепочек заданий).
- reward_id — ID награды за квест. Может быть несколько наград, указываются через точку с запятой.
- reward_num — количество каждой награды, соответствующее полю reward_id.
- pre_level — предварительный уровень или дополнительные условия, которые должны быть выполнены до начала квеста.
- faction_id — ID фракции, к которой относится квест. Может быть использован для фракционных квестов.
- faction_level_min — минимальный уровень фракции, необходимый для выполнения квеста.
- faction_level_max — максимальный уровень фракции, при котором квест доступен.
- quest_end — завершение записи для квеста., U6 ]1 t$ q- l1 Z/ ?2 `% Z2 Y
, \. }, S. z/ j) N0 d: [! k
- z2 H- Q! q7 _9 B2 i' M/ JФайл клиента QuestMarkConditionData.dat содержит информацию о квестах, связанных с условиями, необходимыми для активации или завершения определённых действий в игре. 4 X$ j0 u& e# X3 L$ A; N
Пример соодержания
1 Y9 S1 `: I9 s0 IВот описание структуры строки:
3 w6 }# u( o9 s# Z( G- questmark_begin quest_id=10331 npc_id=32153 race_filter={0} class_filter={0;10} start_npc_loc={-118017.0;255965.0;-1320.0} questmark_end
Скопировать код Давайте разберем все поля на основе примера:# G. P# W; c; }& P. r" ^! q
8 Z. o3 |- c* O: Y; o) ~! M
- questmark_begin: Указывает на начало записи о квесте.
- quest_id=10331: Идентификатор квеста. В данном случае, квест с ID 10331.
- npc_id=32153: Идентификатор NPC (неигрового персонажа), с которым игрок должен взаимодействовать для начала или выполнения условий квеста.
- race_filter={0}: Фильтр по расе. Указывает, какие расы могут участвовать в квесте. В данном примере {0} может означать, что квест доступен для всех рас или для определённой расы (например, 0 - для всех) .
- class_filter={0;10}: Фильтр по классу. Указывает, какие классы могут участвовать в квесте. В этом случае {0;10} может означать, что квест доступен для классов с ID 0 и 10.
- start_npc_loc={-118017.0;255965.0;-1320.0}: Координаты начала взаимодействия с NPC. Эти координаты определяют место, где находится NPC в игровом мире (X, Y, Z).
- questmark_end: Указывает на конец записи о квесте.) D* A8 V9 }+ e8 T6 D8 X
Эта структура помогает клиенту определять условия, при которых игрок может начать или выполнить квест, а также идентифицировать необходимые взаимодействия с NPC.
& r' e: {1 o1 h4 h; k$ G! J
5 z# Y$ j& ^) ?
" j& Q/ s% R6 Q7 j# P) G/ k
$ U2 @2 R% x0 ]5 ?3 j) E; YСледующие шаги относятся к любым новым хроникам, которые используют всплывающие окна квестов.
; X+ O' n( M2 k- l) ]
, k+ b8 n% F( T( {* PШаг 4; C. r1 u- ?3 |# \, @3 [! R
Для того чтобы добавить свой квест в файл NewQuestData.xml, нужно следовать структуре, аналогичной приведенному вами примеру. Вот как это может выглядеть:
/ I! q* R/ |3 L0 kПример добавления нового квеста:
- ^! ^1 _0 c2 n n- <quest id="20001" type="1" name="Mystery of the Lost Relic" startNpcId="30050" endNpcId="30051">
* _0 R5 s6 k7 O/ g) D; M3 C9 e - <locations>0 k& V. U0 |1 a6 B! S- z6 @3 i
- <param name="startLocationId">2001</param>9 O' _( k! G* F9 i, C
- <param name="endLocationId">2002</param>
3 P; f% v2 l9 V! `: _+ E8 J - <param name="questLocationId">2003</param>1 C% S* U/ J/ M" Z8 o; ~: K0 \
- </locations>
0 h. H# w% C0 i1 [ - <conditions>
r+ v2 p j: v! j. G+ d1 ?7 z: z! x - <param name="preQuestId">20000</param>! y8 m& j+ `! q$ i( ^
- <param name="classIds">0;1;2;3;4;5;6</param> <!-- доступ для всех рас -->
* Q& O+ C. y7 V3 ^ - </conditions>. }8 x* c6 ]3 c% n+ X" ?
- <rewards>
* j8 @$ r/ H$ s7 |! y - <param name="rewardLevel">50</param>% d1 q' A! v H. N' {1 X
- <param name="rewardSp">5000</param>% Q& p0 B Z! W+ @; i: b" A
- <param name="rewardItemId">57</param> <!-- Adena -->" e$ I& _( k6 S* q2 ^
- <param name="rewardItemCount">10000</param>
: f" z1 u! G* Q3 L! } - </rewards>
1 V( C( i$ p/ v - <goals>% t- v+ x0 u! F5 C' w! n
- <param name="goalCount">10</param>
6 c# F9 }# _$ E5 y) Q$ t7 i - <param name="goalString">Defeat monsters in the Ancient Forest</param>
2 v: W, Y' N6 e" G% Y( T - <param name="goalItemId">92000</param> <!-- некий квестовый предмет -->
' D9 ^9 k0 I( `) f. K - <param name="goalItemCount">1</param>& Z: x' ~4 W* C6 ~2 U9 t1 Q
- </goals>' g; Z1 Y! V( j
- </quest>7 Z+ p9 j5 P+ K; N1 V
Скопировать код Описание структуры:7 q9 \$ B r7 _
- quest: Основной элемент квеста, содержащий атрибуты:
7 Z- l; [% A* J$ l0 s8 m ?- id: ID квеста, уникальный для каждого квеста.
- type: Тип квеста (1 – обычный квест).
- name: Название квеста.
- startNpcId: ID NPC, с которого начинается квест.
- endNpcId: ID NPC, у которого квест заканчивается.1 p1 D( q( i' r" w
- locations: Указывает места начала, окончания и квестовой активности.
7 f% O9 Y" F! [8 M- startLocationId: ID места, где начинается квест.
- endLocationId: ID места, где квест заканчивается.
- questLocationId: ID квестовой зоны.
& L& ?1 W7 L, d b- y5 ~& Y
- conditions: Условия для начала квеста.
4 N# a. B% Z9 f8 O/ O- preQuestId: ID предварительного квеста (если есть).
- classIds: ID классов или рас, которым доступен квест.
" u, f2 `* K$ r; K# }1 [
- rewards: Награды за выполнение квеста.
: V) Q% \. Z# n2 P- rewardLevel: Минимальный уровень для получения награды.
- rewardSp: Количество опыта (SP).
- rewardItemId: ID предмета (например, Adena).
- rewardItemCount: Количество предметов.
- Y, a, u6 {; T8 |
- goals: Цели квеста." }1 ~5 G/ ~! V
- goalCount: Количество монстров, которых нужно убить или предметов, которые нужно собрать.
- goalString: Описание цели.
- goalItemId: ID квестового предмета (если требуется).
- goalItemCount: Количество квестовых предметов для завершения цели.
4 S0 A$ ~/ }1 K
После того как вы добавите квест в файл NewQuestData.xml, нужно перезапустить сервер, чтобы изменения вступили в силу.8 v" Z' w9 Q* G; t6 K1 k* X
6 v% v. }9 ]1 L- p; C) C3 L1 w3 J
Шаг 5% t' W ~8 G: f$ i4 Q; W; b
Файл NewQuestDialog-ru.dat используется для хранения диалогов, связанных с квестом. Он определяет тексты, которые отображаются в окнах диалогов с NPC во время выполнения квеста. Вот разбор ключевых элементов строки и структура файла:
+ h% Y, d1 p& y) b |, Q% eСтруктура данных- NewQuestDialog_begin — начало записи квеста в файле диалогов.
- QuestId=10001 — идентификатор квеста (должен соответствовать ID, который ты используешь в других файлах).
- Text0=... — первый диалог, который обычно отображается при старте квеста.
- Text1=... — дополнительный текст, который отображается на различных этапах квеста.
- Text2=... — текст, который отображается после выполнения определенных действий (например, после выполнения части задания).
- Text3=... — дополнительный диалог, например, при встрече с NPC на следующем этапе квеста.
- Text4=... — финальный текст или инструкции по следующему шагу для игрока.
- NewQuestDialog_end — завершение записи для этого квеста.4 }5 B; \- y b+ L3 o5 A. X
- ^( ?. M" r. zПример записи для нового квеста (ID 98765) Если ты хочешь создать диалоги для нового квеста с ID 98765, твой файл может выглядеть так:
# R9 j$ k% e) c2 z8 d, I; \# D% L2 W" p- NewQuestDialog_begin QuestId=98765 Text0=[Вы готовы принять новый вызов и доказать свою силу?] Text1=[Как вы себя чувствуете? Вы выглядите уверенно. Это хороший знак, но не расслабляйтесь — впереди много испытаний. Примите это задание, если готовы.] Text2=[Пора приступить к тренировкам. Идите за мной в тренировочную зону.] Text3=[Следуйте моим указаниям, и вы раскроете весь свой потенциал.] Text4=[Поговорите с Дарти. Кликните на него и начните диалог.] NewQuestDialog_end7 ?, b8 J1 H V: T8 G5 D/ e
Скопировать код Разъяснение полей:
, s4 j0 a" K e- QuestId=98765 — уникальный идентификатор нового квеста.
- Text0 — вводный текст квеста. Отображается при первом контакте с NPC.
- Text1 — дополнительный диалог, который дается игроку для создания контекста.
- Text2 — текст, который отображается на следующем этапе квеста, например, после выполнения части задания.
- Text3 — описание следующего шага или инструкции для игрока.
- Text4 — финальный диалог или текст с указанием цели (встреча с другим NPC).
% N L0 w* V9 _# `- G/ t) x7 @
1 M# x. [0 v6 Q& m3 a4 S+ ?9 V2 C+ @" f% j# L! I7 n& W
Что можно изменить:- Тексты диалогов (Text0, Text1 и так далее) можно адаптировать под конкретные ситуации в квесте.
- Количество текстов можно варьировать в зависимости от сложности квеста.
; M: @1 e* j( c6 A6 h! g7 X
/ e7 E& T9 @) ?" |: U8 v' |& E" ~Файл NewQuestData-ru.dat содержит параметры, связанные с квестом в игре Lineage II, и описывает условия, NPC, цели и награды. Рассмотрим параметры этого файла:
# e* {5 P1 {' X8 U# E
" z3 F- I' x4 q* j- newquestdata_begin / newquestdata_end: Эти параметры обозначают начало и конец блока данных квеста.
- quest_id=10001: Уникальный идентификатор квеста (ID). В данном случае это квест с ID 10001.
- quest_type=1: Тип квеста.! q0 d' v6 ]$ K5 N
- 1 обычно означает стандартный квест.
# Y: Y- [5 t8 E
- quest_name=[Новый путь]: Название квеста. Здесь указано "[Новый путь]" — это имя, отображаемое в игре.
- quest_level={0;0}: Уровневые ограничения квеста.0 Q) O- ?5 k# ]) ~* L3 m
- Первое значение указывает минимальный уровень, второе — максимальный уровень.
- {0;0} означает, что нет ограничений по уровню.
: z" x6 g' V# A4 C: ]
- pre_quest={}: Предварительный квест, который нужно выполнить перед началом этого квеста.4 w; K7 {/ k0 N1 p5 j2 ]8 Z( T3 X$ J
- В данном случае он пустой {}, что означает, что нет предварительных требований.) j$ u9 D) A7 x+ R
- class={0;10;18;25;31;38;44;49;53;123;124}: Классы или расы, которые могут брать квест.! w5 W$ a& [6 f
- Номера классов указывают на те классы, которым доступен этот квест. В данном примере классы, такие как 0 (человеки), 10 (рыцари) и другие, имеют доступ.
9 S3 g: d7 A/ q7 x) `2 Y
- quest_item=82948: ID квестового предмета, необходимого для выполнения цели или этапа квеста.5 Y) m" v5 N- ^" V$ _9 M
- В данном случае это предмет с ID 82948.9 a" x+ k! c3 |: K& G& P2 ^8 k5 r8 u
- start_item=0: Предмет, который выдается при начале квеста.9 A' m" p, U8 [0 w9 H" y2 I9 I! u
- Значение 0 означает, что предмет не выдается.2 x# o3 L: v1 W' ]+ [2 o
- start_npc=34505: ID NPC, у которого начинается квест.
- start_npc_loc=1002: Локация NPC, у которого начинается квест.
& a* }3 N5 B: _- Это ID локации, где находится стартовый NPC.; f: [. ?4 j% a U" A; N3 X
- end_npc=34696: ID NPC, у которого завершается квест.
- end_npc_loc=1003: Локация NPC, у которого завершается квест.8 U4 p& a& U$ K6 m: G0 ?( v' s
- Это ID локации, где находится конечный NPC.
( d; E. |9 b+ B4 C2 W% |/ a" ~
- quest_loc=1003: Основная локация выполнения квеста.; J' W) m8 c( a$ B
- Это ID зоны, где нужно выполнять основные задачи.
9 P0 }+ f. k1 A O6 j" C
- goal_string=[Дарти (Зона Тренировки)]: Описание цели квеста., r5 i0 f5 r D" h2 {4 `" z
- В данном случае цель связана с персонажем по имени "Дарти" в Зоне Тренировки.
5 g. t: \/ v- U3 K% C
- goal_num=1: Количество действий, необходимых для выполнения цели (например, убийств монстров или сбора предметов).
- s% f0 b+ a7 D$ ~/ E3 T) B- В данном случае нужно выполнить одно действие (1).
5 K6 C$ i! |8 s9 a
- reward_level=65535: Уровень, при котором можно получить награду.( T3 z% Y9 i. I4 o" I. H2 Q9 P
- В данном случае это максимальное значение, указывающее, что награда доступна всегда.4 G6 e7 z" A) X6 r, f
- reward_exp=0: Опыт (EXP), выдаваемый в качестве награды.3 b' r9 U G; B9 `
- В данном случае опыт не выдается.! p |7 h( s( g: t' X& t' y
- reward_sp=0: Количество SP (Skill Points), выдаваемых в качестве награды.
2 g! X) f( j% t, d) J- Здесь тоже 0, значит, SP не выдаются.+ o! Z5 Q% ~+ a! m: s9 d8 C# v& } _
- reward_item={}: Наградные предметы.
% e% Q. n% K5 E. e4 x- В данном случае наградные предметы отсутствуют.3 k6 X# M( o. S4 l7 Z5 _) U5 Q
Этот файл определяет основной функционал и настройки для конкретного квеста в игре.2 u! e8 ]% w: f* ^0 V8 k' P+ M& a
: m" f0 C* B, q% Y5 N2 Z, `5 j5 K3 W4 b H: T7 O" s9 f
. z+ I, ? c) l5 k4 `! _
, P5 w' y/ Z: {" @5 L6 [& [ `% s k8 @' U) m. S8 d( Z
) o9 z+ P# T) j; r* \0 x
% E, j2 F R! m: S$ i
8 h/ `) J: E4 r1 F4 {
' l0 R7 w. m( l# u: Q' [! m! M1 `/ X' j( R
|