Зарегистрируйтесь сейчас чтобы найти еще больше друзей, и получить полноценный доступ ко всем функциям сайта!
Для просмотра Вам необходимо авторизоваться Если Вы еще не зарегистрированы, перейдите по ссылке:Зарегистрироваться
x
Сборка: L2l_Monius O$ o5 t- ^. k* S Z" p# q% D1 n
Следующие квесты можно использовать в качестве шаблонов для создания практически любого простого квеста go kill или go talk.: r2 G. z b3 a4 m
7 L u5 k, _5 w" x7 {% x+ H
7 f, r+ N/ x% E2 i* K' U$ ]Иди и убей X монстров / Возвращение - награда.
/ D' K' v2 |! g9 A C( \6 X XQ00529_RegularBarrierMaintenance6 i7 t: u9 o! {: I7 k) {8 n
+ _" l& n/ u7 _: H0 _" X
Получите квест от любого из двух разных NPC / Убейте X монстров / Вернитесь с наградой.$ O5 |; [- B5 j9 ?. y
Q00683_AdventOfKrofinSubspecies, ~; K0 o6 w6 L# X
' `3 [6 y" Z9 q+ _( d$ y
Поговори с NPC 1 / Поговори с NPC 2 / Поговори с завершающим NPC / Награда.
5 f. l3 E- l) n9 }' r) SQ10516_UnveiledFafurionTemple7 I& u" d! Q8 P- B3 p# Y9 L) Y
$ U8 ]" j; p: @: r7 AУбейте X монстров, а также соберите X предметов / Возврат - награда.0 Y( x1 z2 z3 _% L- D: f
Q10517_FafurionsMinions- G& g8 n; \2 T1 I
' h, f9 X5 ?: u8 \- P3 d @Иди собери X капель монстров / Вернись - убей X монстров / Вернись - награда.
) L* A) B$ m5 tQ10529_IvoryTowersResearchFloatingSeaJournal: H4 c6 T. P2 N+ V8 z! |
3 B* n: h) L4 L: UИди убей X монстров, а также собери X предметов / Возвращение - иди собери X предметов / Возвращение - награда.
! b1 G; I: I; x% e4 @% tQ10518_SucceedingThePriestess6 k6 C+ J7 U. ^+ g# [
' F0 V0 Z; f! P D! d2 W4 |
Участвуйте в убийстве рейдбосса / Возврат - награда.
' }7 r9 p2 l/ r- i( p) G( Q! k% m: jQ10519_контролирование вашей температуры
- x4 `' |. f0 L* q5 [$ I5 {/ X2 Q
) i h# o$ v1 ?5 c' c$ p, Y6 s( hПоговорите с NPC 1 / Примите участие в убийстве рейдбосса / Возвращение - награда.
. ]6 v+ W$ ?$ p% B) X0 Z7 ZQ10533_OrfensAmbition, E- M c" m, I' {$ |. A
4 q! E5 d* U3 U3 V; i- U1 x! ?
. i+ t1 ?$ K- e* v1 a/ H* j) {, ^
/ a6 R# |' O9 a0 H7 n! RРуководство требует обновления. И, к сожалению, с самыми последними хрониками вы не сможете избежать модификаций клиента. Поэтому, исключительно в образовательных целях, я предлагаю свой опыт по добавлению нового квеста!; F9 M: G$ X- t, z2 H- y; `
9 K0 o0 G5 \1 z4 c5 {5 uШаг 1: Создайте свой квест с уникальным ID. В этом примере я буду ссылаться на квест как "Q98765_NewQuest".+ l, i8 l. E! M) c
" J, T0 d& m" a, ~
Шаг 2: Когда вы успешно создали свой квест и Eclipse не выдает ошибок, добавьте название квеста и импортируйте его в файл "QuestMasterHandler.java".6 F7 s/ g$ S% h
9 n/ b. q# A. a. B
Шаг 3: Перейдите в клиент и с помощью редактора клиента добавьте квест в следующие файлы .dat: "questname-ru.dat" и "QuestMarkConditionData.dat".1 v/ J! A! p' o4 w4 k
0 B, H7 I0 U" j) _4 X2 N% sСледующие шаги относятся к любым новым хроникам, которые используют всплывающие окна квестов.
( N Z3 |( r! H6 @' u' K# d
$ E! _, x# \/ e# ?; ]" N) G: d6 w) |7 gШаг 4: Найдите в серверных файлах файл с названием "NewQuestData.xml" и добавьте туда свой квест.' f- t/ M; s, V
w( N4 e8 B8 ^4 eШаг 5: Найдите в клиенте следующие файлы и добавьте туда свой квест: "NewQuestData-ru.dat", "NewQuestDialog-ru.dat" и "NewQuestNpcPortrait.dat".7 W3 J! O/ a" \: U! {! R. T
6 E5 \9 C7 V% @2 F/ l* dЕсли я что-то забыл, не стесняйтесь исправить меня. Это руководство создано исключительно в образовательных целях.
) f( a& b1 J3 G9 O* j& |; a3 W- f0 _6 b
Шаг 2:
+ z+ m8 _# a) i# R, B$ `: O2 ~
( H( }8 J6 r8 A9 g* IСледующий шаг заключается в добавлении вашего квеста в QuestMasterHandler.java. Вот общий план:7 J3 m) Z+ [$ r2 N, S0 b
) w) O0 W+ X" J' a1. Импорт вашего квеста: В начале файла после всех существующих импортов добавьте строку, которая будет импортировать ваш квест. ; A+ `: B5 q4 f Q! ^$ C6 H d
Например:
# O4 o" i7 ^ N; |2 N( \
* m: p0 H1 P( @4 c; i. K }# {- import quests.<span style="background-color: rgb(255, 255, 255);">Q98765_NewQuest</span>.<span style="background-color: rgb(255, 255, 255);">Q98765_NewQuest</span>;
8 K: Y3 {6 Z9 Q* i
Скопировать код 1. Регистрация квеста: Найдите метод, который отвечает за регистрацию всех квестов. Обычно это делается в статическом блоке или методе init, где происходит инициализация квестов. В этом блоке добавьте строку, которая будет регистрировать ваш квест:
: B6 R; P( m1 _% F3 o I4 F. r0 ~. `( C1 ?1 f
- /**6 ` j a0 A7 }% s/ _! X" Z% z
- * @author NosBit# h: i' r3 [ T$ `8 w Z6 [! S4 Y) x
- */2 D9 h, I9 |3 N) `9 q5 R! J0 `9 P
- public class QuestMasterHandler
& `" u: N& n' B9 g - {
9 c3 p! ?. A' f/ H Z& R* E - private static final Logger LOGGER = Logger.getLogger(QuestMasterHandler.class.getName());
! u8 W+ r- c3 G; c -
# z$ O1 O& c7 e) X - private static final Class<?>[] QUESTS =- y8 C6 \+ ?/ }& D- Q
- {
Скопировать код Проверка: Убедитесь, что идентификатор вашего квеста (в данном случае Q98765_NewQuest.class) уникален и не конфликтует с уже существующими квестами.0 c5 E) E# l2 }6 l
4 i W2 m! _3 \
- b+ g# @8 Q6 ^" W1 a
Шаг 3:- e, T' Q0 @- H4 f
5 R. {2 L7 x8 S0 G
Файл QuestName-ru.dat используется для описания квестов и содержит различные параметры, которые задают характеристики квеста, его цели, награды, ограничения и т.д.
8 y0 c1 F$ ?" B+ d' e7 ~2 I3 }Давайте разберем все поля на основе примера:# `4 b/ ?; a! H* d; \
3 w* l8 k' W7 b4 M, U- 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" S$ c% Q7 `$ \/ d
Скопировать код Поля данных:- 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 — завершение записи для квеста.
: k+ L5 M6 F/ P6 b+ d+ m 1 @' ? z" r% E
) |# m* f- t9 S: \1 L
Файл клиента QuestMarkConditionData.dat содержит информацию о квестах, связанных с условиями, необходимыми для активации или завершения определённых действий в игре.
6 [% Y& d" u! J# ]7 r2 DПример соодержания" L! B- Y& n0 m& G4 k
Вот описание структуры строки:
* u& [; L- s( k( s2 F4 a. I- 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
Скопировать код Давайте разберем все поля на основе примера:4 W" O' h( d0 n: Y
4 _% u/ r3 m2 d8 ^( _- 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: Указывает на конец записи о квесте.
- u- y4 c, N7 b9 j, ~ Эта структура помогает клиенту определять условия, при которых игрок может начать или выполнить квест, а также идентифицировать необходимые взаимодействия с NPC.' @3 E3 P5 |8 l' E" ^& x. R3 l% M
/ |' T/ K* E, a- ]; g+ y W
! D* v9 p; P: _8 T$ X7 W
# J8 H7 h; P+ | W' iСледующие шаги относятся к любым новым хроникам, которые используют всплывающие окна квестов.6 {# R9 L. ~5 q4 @: n8 x
3 H( }' U9 o6 RШаг 4) a3 _* o$ r9 p: M6 a' ^8 e _
Для того чтобы добавить свой квест в файл NewQuestData.xml, нужно следовать структуре, аналогичной приведенному вами примеру. Вот как это может выглядеть:
5 I& I# T' L! z: K7 u& J; L8 W& fПример добавления нового квеста:9 N5 R% k7 G; [6 i0 {
- <quest id="20001" type="1" name="Mystery of the Lost Relic" startNpcId="30050" endNpcId="30051">0 X# F* y4 e6 U7 C* J
- <locations>6 {: ^+ A4 s6 P/ ?% \* x2 d# w
- <param name="startLocationId">2001</param>2 j A2 k# w" u4 D w
- <param name="endLocationId">2002</param>
! I' {5 p. t [6 V( _ - <param name="questLocationId">2003</param>
4 I% k$ V& l) z2 f0 l0 K6 r - </locations>$ k1 V( U% b8 t
- <conditions>
( g6 g7 b# \0 _3 {* U - <param name="preQuestId">20000</param>7 T+ z1 z" R* n3 z3 ^
- <param name="classIds">0;1;2;3;4;5;6</param> <!-- доступ для всех рас -->
+ f) L7 d7 R' u - </conditions>0 s1 G6 Z2 e* O, S
- <rewards>
0 h6 g. W: Q7 M- m0 R9 M% K7 o% D - <param name="rewardLevel">50</param>
7 A3 W# S* Z7 i# ^0 ]2 B* L - <param name="rewardSp">5000</param>0 a- [0 W* Y. a8 L6 l
- <param name="rewardItemId">57</param> <!-- Adena -->7 a5 r8 A$ ~3 _9 K, S, F
- <param name="rewardItemCount">10000</param>
; W. Y6 ]" s/ f/ { - </rewards>
, X' L2 u# p* \ - <goals>
1 E! M! Q, @6 ? - <param name="goalCount">10</param>
: B9 P( R5 D, t - <param name="goalString">Defeat monsters in the Ancient Forest</param>
( {0 ?7 Z! {( o7 C - <param name="goalItemId">92000</param> <!-- некий квестовый предмет -->
% O$ j7 c( z3 k% ?, f: n7 M. e8 U - <param name="goalItemCount">1</param>
9 A# w: @- }' d( Q4 w* \# w* h - </goals>+ y" r4 q' z* X y; s% `
- </quest>! n1 t. _+ A2 Q4 n+ j/ R: X# n
Скопировать код Описание структуры:5 d/ p+ |3 d& J3 C0 F: } p
- quest: Основной элемент квеста, содержащий атрибуты:5 m' M2 G! |' g; D2 Z% |1 c
- id: ID квеста, уникальный для каждого квеста.
- type: Тип квеста (1 – обычный квест).
- name: Название квеста.
- startNpcId: ID NPC, с которого начинается квест.
- endNpcId: ID NPC, у которого квест заканчивается.
: ^! N( L, r: R% S& w2 Q: j1 u
- locations: Указывает места начала, окончания и квестовой активности.
7 e, f2 W- X6 Q- startLocationId: ID места, где начинается квест.
- endLocationId: ID места, где квест заканчивается.
- questLocationId: ID квестовой зоны./ M& Q# H8 x6 x: o3 I
- conditions: Условия для начала квеста.' `0 F$ E y. R
- preQuestId: ID предварительного квеста (если есть).
- classIds: ID классов или рас, которым доступен квест.
% B+ P. x/ K4 @9 D" A
- rewards: Награды за выполнение квеста.
" L O" i. V- B7 p3 I+ l r7 d- rewardLevel: Минимальный уровень для получения награды.
- rewardSp: Количество опыта (SP).
- rewardItemId: ID предмета (например, Adena).
- rewardItemCount: Количество предметов.
/ ]: O5 S' P& f
- goals: Цели квеста.
' w6 |3 o8 r0 R5 V, p5 V- goalCount: Количество монстров, которых нужно убить или предметов, которые нужно собрать.
- goalString: Описание цели.
- goalItemId: ID квестового предмета (если требуется).
- goalItemCount: Количество квестовых предметов для завершения цели.) p0 t, B @( G& ~
После того как вы добавите квест в файл NewQuestData.xml, нужно перезапустить сервер, чтобы изменения вступили в силу.4 q% _- q: h+ f; v
& w! W0 }1 |/ L8 G ?: k) y/ w/ \Шаг 5
) D+ m+ M7 v- ?; L6 CФайл NewQuestDialog-ru.dat используется для хранения диалогов, связанных с квестом. Он определяет тексты, которые отображаются в окнах диалогов с NPC во время выполнения квеста. Вот разбор ключевых элементов строки и структура файла:
, r% G) J, A0 @. e0 Y4 KСтруктура данных- NewQuestDialog_begin — начало записи квеста в файле диалогов.
- QuestId=10001 — идентификатор квеста (должен соответствовать ID, который ты используешь в других файлах).
- Text0=... — первый диалог, который обычно отображается при старте квеста.
- Text1=... — дополнительный текст, который отображается на различных этапах квеста.
- Text2=... — текст, который отображается после выполнения определенных действий (например, после выполнения части задания).
- Text3=... — дополнительный диалог, например, при встрече с NPC на следующем этапе квеста.
- Text4=... — финальный текст или инструкции по следующему шагу для игрока.
- NewQuestDialog_end — завершение записи для этого квеста.
, t" U! Q2 p+ [7 Y7 x
2 b/ U2 m7 z# z+ e: C6 k9 p5 G7 {Пример записи для нового квеста (ID 98765) Если ты хочешь создать диалоги для нового квеста с ID 98765, твой файл может выглядеть так:6 [/ G' q9 z) X/ ^" r
- NewQuestDialog_begin QuestId=98765 Text0=[Вы готовы принять новый вызов и доказать свою силу?] Text1=[Как вы себя чувствуете? Вы выглядите уверенно. Это хороший знак, но не расслабляйтесь — впереди много испытаний. Примите это задание, если готовы.] Text2=[Пора приступить к тренировкам. Идите за мной в тренировочную зону.] Text3=[Следуйте моим указаниям, и вы раскроете весь свой потенциал.] Text4=[Поговорите с Дарти. Кликните на него и начните диалог.] NewQuestDialog_end
& V; E0 M/ i [5 } X X: ~
Скопировать код Разъяснение полей:1 f& c8 ^! u- d2 S% O
- QuestId=98765 — уникальный идентификатор нового квеста.
- Text0 — вводный текст квеста. Отображается при первом контакте с NPC.
- Text1 — дополнительный диалог, который дается игроку для создания контекста.
- Text2 — текст, который отображается на следующем этапе квеста, например, после выполнения части задания.
- Text3 — описание следующего шага или инструкции для игрока.
- Text4 — финальный диалог или текст с указанием цели (встреча с другим NPC). T& e9 G% o3 ~& p( G+ ^, m1 P, C
s* @0 `7 u5 P3 i
* O* o2 H5 q8 e& g3 t& o2 ?! D! D0 a3 jЧто можно изменить:- Тексты диалогов (Text0, Text1 и так далее) можно адаптировать под конкретные ситуации в квесте.
- Количество текстов можно варьировать в зависимости от сложности квеста.
, U2 M* `2 T+ }: _: ~
4 B* d6 y3 W4 F0 L. J. M7 y0 }5 T; D- _Файл NewQuestData-ru.dat содержит параметры, связанные с квестом в игре Lineage II, и описывает условия, NPC, цели и награды. Рассмотрим параметры этого файла:. h( L/ r# n+ k# ]8 O
3 F3 |9 s) u% [9 |! e- newquestdata_begin / newquestdata_end: Эти параметры обозначают начало и конец блока данных квеста.
- quest_id=10001: Уникальный идентификатор квеста (ID). В данном случае это квест с ID 10001.
- quest_type=1: Тип квеста.
* L$ X( H; |/ f* W- S- 1 обычно означает стандартный квест.& q1 c& U3 {& r; U3 P3 Z, I# J, g3 Y
- quest_name=[Новый путь]: Название квеста. Здесь указано "[Новый путь]" — это имя, отображаемое в игре.
- quest_level={0;0}: Уровневые ограничения квеста.
! ^ B2 q# Z- ?& _$ I6 R1 i, r- Первое значение указывает минимальный уровень, второе — максимальный уровень.
- {0;0} означает, что нет ограничений по уровню.
# I& w: N; A m4 W) f8 l1 X( x
- pre_quest={}: Предварительный квест, который нужно выполнить перед началом этого квеста.
2 I8 p; P6 d$ T9 l) N( M( w; P- В данном случае он пустой {}, что означает, что нет предварительных требований.
6 J# H0 I" g6 m) v, ~6 Q$ s
- class={0;10;18;25;31;38;44;49;53;123;124}: Классы или расы, которые могут брать квест.( H9 S# i. H0 P. u. @% V1 {/ S6 L
- Номера классов указывают на те классы, которым доступен этот квест. В данном примере классы, такие как 0 (человеки), 10 (рыцари) и другие, имеют доступ.1 b4 k @8 r5 _3 c$ Y
- quest_item=82948: ID квестового предмета, необходимого для выполнения цели или этапа квеста.
3 M# ~& K* q, [ @- В данном случае это предмет с ID 82948.
2 N3 H/ G2 k, Z0 [$ V
- start_item=0: Предмет, который выдается при начале квеста.
( m7 f) B/ I1 G) V- Значение 0 означает, что предмет не выдается.
# A2 y& a$ h! ?- [2 M+ G4 h! I
- start_npc=34505: ID NPC, у которого начинается квест.
- start_npc_loc=1002: Локация NPC, у которого начинается квест.
/ _3 z5 o. L* U/ u- R- Это ID локации, где находится стартовый NPC.
* ~' L2 M' B% B9 E
- end_npc=34696: ID NPC, у которого завершается квест.
- end_npc_loc=1003: Локация NPC, у которого завершается квест.
! g R8 ^1 P, G- Это ID локации, где находится конечный NPC.
+ F4 A, O/ N- d1 @. l \
- quest_loc=1003: Основная локация выполнения квеста.+ H( K: p0 g2 F. T% \- R6 O
- Это ID зоны, где нужно выполнять основные задачи.
- N6 J$ @ j2 Y: B# J
- goal_string=[Дарти (Зона Тренировки)]: Описание цели квеста.
+ o) v9 ]) Z" y% \. A- В данном случае цель связана с персонажем по имени "Дарти" в Зоне Тренировки.
# q, _# j' C( K
- goal_num=1: Количество действий, необходимых для выполнения цели (например, убийств монстров или сбора предметов).
2 M1 d& U$ `2 B- В данном случае нужно выполнить одно действие (1).
( M$ f* q4 a. z! T7 h6 g% O
- reward_level=65535: Уровень, при котором можно получить награду.
. E2 B% R* \; s- l- В данном случае это максимальное значение, указывающее, что награда доступна всегда.* X5 T2 `0 U8 n( \( F v4 z
- reward_exp=0: Опыт (EXP), выдаваемый в качестве награды.* E' T6 B; L4 A4 o- S1 I. X G
- В данном случае опыт не выдается.! m5 e8 C5 X9 j( G
- reward_sp=0: Количество SP (Skill Points), выдаваемых в качестве награды.' O! G+ P: y( b6 X% N
- Здесь тоже 0, значит, SP не выдаются.% D0 {6 f& S( j( n1 `
- reward_item={}: Наградные предметы./ k* V* V5 Y+ z* b
- В данном случае наградные предметы отсутствуют.
. M. I8 v! E h; U2 P3 n% V
Этот файл определяет основной функционал и настройки для конкретного квеста в игре.
6 e- G3 L0 z0 ]3 E% o0 b, p3 `' i1 E
2 h, Z1 B4 c* C2 O6 }8 I) ~, c6 M0 B Z+ M1 Z2 J
+ z9 n0 J- C9 L& n. L
& v& r9 _+ `5 e3 \, P
8 a6 G' n, c o3 i4 M
3 g' Z1 d& W# r; ^9 P
/ T2 k- x- X. j" R. p7 f
?8 l |* G1 R- _0 B( a0 x! \0 V: h" |+ ]5 T* G
/ {5 _3 O0 D0 V/ y# I
|