Зарегистрируйтесь сейчас чтобы найти еще больше друзей, и получить полноценный доступ ко всем функциям сайта!
Для просмотра Вам необходимо авторизоваться Если Вы еще не зарегистрированы, перейдите по ссылке:Зарегистрироваться
x
Сборка: L2l_Monius
7 u# G3 `: R: H* Z1 x' [Следующие квесты можно использовать в качестве шаблонов для создания практически любого простого квеста go kill или go talk.4 q$ F( ?& C' ^9 R. y( a
" t9 o) s! u) z# o. F) b7 C: u: _% s1 [) U& i; E, r% a
Иди и убей X монстров / Возвращение - награда.7 r7 J6 z2 l" V1 d
Q00529_RegularBarrierMaintenance
# j% w' v8 i* W
2 q I1 |2 t1 o4 R; G) B3 r" lПолучите квест от любого из двух разных NPC / Убейте X монстров / Вернитесь с наградой.* N! ]8 d9 L4 D6 r E
Q00683_AdventOfKrofinSubspecies
: S6 T4 r! \( S8 S3 n5 b" `' U$ G6 X$ o% r% H
Поговори с NPC 1 / Поговори с NPC 2 / Поговори с завершающим NPC / Награда.) W( _/ E h+ _0 a2 s9 G; V# _* r
Q10516_UnveiledFafurionTemple4 y6 I, Q4 b3 e, T! v
5 s5 _& w) e! p1 ~4 {8 K; q5 MУбейте X монстров, а также соберите X предметов / Возврат - награда.
, D* e( b, ?4 o; k( WQ10517_FafurionsMinions( T, Y8 e' C9 u" u' h. f7 y. y) ~
+ G$ i5 a* e" e0 t
Иди собери X капель монстров / Вернись - убей X монстров / Вернись - награда.* V% ^* o# u( m9 s. V
Q10529_IvoryTowersResearchFloatingSeaJournal( M% q0 i/ c- q P2 a. g( j% r8 a
2 N8 h. k, b2 I+ @, i3 aИди убей X монстров, а также собери X предметов / Возвращение - иди собери X предметов / Возвращение - награда./ S8 j" A5 u2 A1 w- V% |8 o
Q10518_SucceedingThePriestess
) y! b* h; _# ^* Y8 B8 j% v$ _- |3 C5 L
Участвуйте в убийстве рейдбосса / Возврат - награда.. y5 _! ~. L! x: C% z8 d# R" Y! d. t
Q10519_контролирование вашей температуры7 e. J; w7 [2 a8 l; j7 N; \
1 |+ c2 Y) s$ v! v/ UПоговорите с NPC 1 / Примите участие в убийстве рейдбосса / Возвращение - награда.8 e! M# I) q) N: ~2 Q" M8 `6 a
Q10533_OrfensAmbition% W4 L/ v0 v8 F }4 w, Y4 |
) Y( e. ~6 u) {* u2 h O0 J2 ^
7 |' B3 w+ M9 F; Y3 Z
# r5 l W6 V5 v/ p6 v6 _0 J& k* {
Руководство требует обновления. И, к сожалению, с самыми последними хрониками вы не сможете избежать модификаций клиента. Поэтому, исключительно в образовательных целях, я предлагаю свой опыт по добавлению нового квеста!% U/ g1 f( [6 K' _! h4 M
0 ? \/ q( u5 ^; DШаг 1: Создайте свой квест с уникальным ID. В этом примере я буду ссылаться на квест как "Q98765_NewQuest".
# G" E' V1 S$ d7 Z3 U- ~4 m
1 T- R' r" I' k' m' ]Шаг 2: Когда вы успешно создали свой квест и Eclipse не выдает ошибок, добавьте название квеста и импортируйте его в файл "QuestMasterHandler.java".
, L" Z) ~, ]: @( I! U j9 S/ T2 f% ^
9 [4 p# g/ G- O" I! G" X& W* |7 ?Шаг 3: Перейдите в клиент и с помощью редактора клиента добавьте квест в следующие файлы .dat: "questname-ru.dat" и "QuestMarkConditionData.dat".
( X4 P5 d: C! d1 S" D1 u' y4 {+ k
Следующие шаги относятся к любым новым хроникам, которые используют всплывающие окна квестов.& N6 C7 d5 m1 z+ }0 ]9 Q
0 ~, N$ f9 c6 l' c2 @7 K) g, |Шаг 4: Найдите в серверных файлах файл с названием "NewQuestData.xml" и добавьте туда свой квест./ c3 M$ \; ?9 S- @9 c, n) `
2 U. K) e: ^* o2 U2 Y( v
Шаг 5: Найдите в клиенте следующие файлы и добавьте туда свой квест: "NewQuestData-ru.dat", "NewQuestDialog-ru.dat" и "NewQuestNpcPortrait.dat".
V4 y7 h" v9 P6 h
$ Y/ O0 M2 H, S4 kЕсли я что-то забыл, не стесняйтесь исправить меня. Это руководство создано исключительно в образовательных целях.
0 v4 n7 m3 o9 @0 i" T6 W7 ]2 q- U6 D" E8 C
Шаг 2:
1 {5 O5 v9 p' h+ k+ k5 b; F* [" L, a7 Q6 B/ \3 d% \
Следующий шаг заключается в добавлении вашего квеста в QuestMasterHandler.java. Вот общий план:8 P5 Z k- F% z; S( N: T
3 Z/ d/ ]8 n; y8 v* |) b
1. Импорт вашего квеста: В начале файла после всех существующих импортов добавьте строку, которая будет импортировать ваш квест.
% ]% P1 I, W$ ^* rНапример:) T4 H- K" B4 R
0 X: J' ^- p0 [- X) ~; c- import quests.<span style="background-color: rgb(255, 255, 255);">Q98765_NewQuest</span>.<span style="background-color: rgb(255, 255, 255);">Q98765_NewQuest</span>;
1 ^. C1 Q+ I: G+ `7 C7 I. u
Скопировать код 1. Регистрация квеста: Найдите метод, который отвечает за регистрацию всех квестов. Обычно это делается в статическом блоке или методе init, где происходит инициализация квестов. В этом блоке добавьте строку, которая будет регистрировать ваш квест:
?; A: e9 y- ?7 L: f* S
( I9 X' X8 |7 ?1 \& ]3 V3 Q- /**
! e# R' V0 B# g3 ]) u8 G6 _ - * @author NosBit
0 X/ n: S! f) d* `: |2 e7 f. } - */) a `% n/ ?# R+ y7 b
- public class QuestMasterHandler# `: B9 G; g# @" x! ^$ L
- { K3 `) Y/ t! \' G
- private static final Logger LOGGER = Logger.getLogger(QuestMasterHandler.class.getName());1 ^' H) n1 \( {
-
0 ^4 y( l/ o8 i4 Y% t. J% Y - private static final Class<?>[] QUESTS =% z$ G5 E: `. {2 D) M. n
- {
Скопировать код Проверка: Убедитесь, что идентификатор вашего квеста (в данном случае Q98765_NewQuest.class) уникален и не конфликтует с уже существующими квестами.
2 P" m T& p" f4 {
2 M: x8 {8 B* n0 b/ ~4 ]# N+ S$ L& ]4 B" Q# g/ g; Y
Шаг 3:
. x+ |( z7 b5 H
7 s, G! [# |. l: @2 yФайл QuestName-ru.dat используется для описания квестов и содержит различные параметры, которые задают характеристики квеста, его цели, награды, ограничения и т.д.
7 J* Q l8 R* e* x1 _Давайте разберем все поля на основе примера:. e; M. V" k; n1 X) C0 b8 \
% p) N0 G* l }3 j
- 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
- m5 Y* d& \' @' j I% K3 ?% P
Скопировать код Поля данных:- 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 — завершение записи для квеста.
2 H M/ f4 K7 c, H ) q( u/ z5 ?* \8 Y6 I
; o! N9 S$ {' Y: \ v" X% E3 q
Файл клиента QuestMarkConditionData.dat содержит информацию о квестах, связанных с условиями, необходимыми для активации или завершения определённых действий в игре. ) ~3 Z$ M9 r: u# ]- p# H C
Пример соодержания
+ \# p/ E8 a! c6 i4 [Вот описание структуры строки:2 u$ \- Z- M$ `% ~; ^9 t# J
- 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
Скопировать код Давайте разберем все поля на основе примера:* n B" |, u8 o/ C" R0 l& E
- v! r3 p4 W0 l+ \! v$ X! [- 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: Указывает на конец записи о квесте.; P# C# F) T* Z9 K1 O& C
Эта структура помогает клиенту определять условия, при которых игрок может начать или выполнить квест, а также идентифицировать необходимые взаимодействия с NPC./ L4 ^" A5 C4 O3 B( u$ z
: m: N) U8 O: ]
6 E/ k2 y1 f+ }9 g2 d; v* f# T8 b! G+ t6 {7 U& B$ V" E* d
Следующие шаги относятся к любым новым хроникам, которые используют всплывающие окна квестов.
; X+ Q) e M8 R6 Q8 ]2 z! u2 j9 G+ s3 i6 j& N9 ^ g; m
Шаг 4
. v" J$ F6 U a2 ~9 r F9 m x2 KДля того чтобы добавить свой квест в файл NewQuestData.xml, нужно следовать структуре, аналогичной приведенному вами примеру. Вот как это может выглядеть:
4 P7 b, ^ S- k+ g* N, MПример добавления нового квеста:! W# A2 Q2 M* _1 [) b, F) \
- <quest id="20001" type="1" name="Mystery of the Lost Relic" startNpcId="30050" endNpcId="30051">$ |5 H) h9 G$ Z. j% e4 z
- <locations>
0 V8 q6 }' {6 v7 I; g& C - <param name="startLocationId">2001</param>
3 N/ h) D" z# ~/ ~ - <param name="endLocationId">2002</param>9 O+ r! Y3 a Z3 k& g2 d
- <param name="questLocationId">2003</param>
& X; s( m# h2 \4 p2 e4 ~, _7 j" W - </locations>; @5 ~: B o6 @. {( U: G( S
- <conditions>; c6 E5 B: {8 X# ]8 M
- <param name="preQuestId">20000</param>2 b2 C C( C8 r3 A
- <param name="classIds">0;1;2;3;4;5;6</param> <!-- доступ для всех рас -->' y' k/ B- ~+ B/ i, j/ {& ?! _
- </conditions>
: Y3 } P7 [7 F) m# `6 r* y& v - <rewards>
$ m4 V1 f+ H/ R' F3 C7 P/ C - <param name="rewardLevel">50</param>& L- X% s, s; G7 G- k- V; O8 l
- <param name="rewardSp">5000</param>
2 A& _, B+ _3 U3 c6 K - <param name="rewardItemId">57</param> <!-- Adena -->
; x K; h9 X; i# c" H3 o - <param name="rewardItemCount">10000</param>; H5 u% s/ [- q+ [" c" V
- </rewards>* \' {; w; T* z: M- O; Y* {
- <goals>
- S1 V# E& f& u7 m# W1 a( J - <param name="goalCount">10</param>& H0 N0 }& N0 h4 D. j6 x* r
- <param name="goalString">Defeat monsters in the Ancient Forest</param>7 ^/ `- I2 [! g0 W0 H' W$ M/ W# G
- <param name="goalItemId">92000</param> <!-- некий квестовый предмет -->
: t( M+ v ~. i2 a- R - <param name="goalItemCount">1</param>9 F5 V8 ]7 M- ^7 F( E1 b* V
- </goals>
& F. o# o: c2 z" o+ r - </quest>% q6 g" x7 i) g2 ~" ?5 c
Скопировать код Описание структуры:
& A4 d5 ?3 U" A ^- quest: Основной элемент квеста, содержащий атрибуты:
) A$ q$ m2 M& T y9 E. Z- id: ID квеста, уникальный для каждого квеста.
- type: Тип квеста (1 – обычный квест).
- name: Название квеста.
- startNpcId: ID NPC, с которого начинается квест.
- endNpcId: ID NPC, у которого квест заканчивается.6 j: {- ^) k- W0 v& R% P1 P
- locations: Указывает места начала, окончания и квестовой активности.# U; o* y( K" R: P
- startLocationId: ID места, где начинается квест.
- endLocationId: ID места, где квест заканчивается.
- questLocationId: ID квестовой зоны.
' @. T6 F b" k( }, X
- conditions: Условия для начала квеста.& O8 l% O. i3 A! c/ b4 ^
- preQuestId: ID предварительного квеста (если есть).
- classIds: ID классов или рас, которым доступен квест.
R! j! B; ^! c1 i1 W
- rewards: Награды за выполнение квеста.
* Y' q! R' z) x- rewardLevel: Минимальный уровень для получения награды.
- rewardSp: Количество опыта (SP).
- rewardItemId: ID предмета (например, Adena).
- rewardItemCount: Количество предметов.9 b& |5 P7 }# J/ Y( q
- goals: Цели квеста.
4 o, d- d: P0 \" [- goalCount: Количество монстров, которых нужно убить или предметов, которые нужно собрать.
- goalString: Описание цели.
- goalItemId: ID квестового предмета (если требуется).
- goalItemCount: Количество квестовых предметов для завершения цели.* s, K* ]' E9 F x2 E
После того как вы добавите квест в файл NewQuestData.xml, нужно перезапустить сервер, чтобы изменения вступили в силу., c* {+ T; z$ Q. X7 @! ?: ~3 K
8 F- ~" D& t, x- k* e& U8 `6 v
Шаг 5" h& k+ d$ o3 J! {" B
Файл NewQuestDialog-ru.dat используется для хранения диалогов, связанных с квестом. Он определяет тексты, которые отображаются в окнах диалогов с NPC во время выполнения квеста. Вот разбор ключевых элементов строки и структура файла:, l& a+ X( b' I+ f
Структура данных- NewQuestDialog_begin — начало записи квеста в файле диалогов.
- QuestId=10001 — идентификатор квеста (должен соответствовать ID, который ты используешь в других файлах).
- Text0=... — первый диалог, который обычно отображается при старте квеста.
- Text1=... — дополнительный текст, который отображается на различных этапах квеста.
- Text2=... — текст, который отображается после выполнения определенных действий (например, после выполнения части задания).
- Text3=... — дополнительный диалог, например, при встрече с NPC на следующем этапе квеста.
- Text4=... — финальный текст или инструкции по следующему шагу для игрока.
- NewQuestDialog_end — завершение записи для этого квеста.+ f7 x( l4 ?3 }3 v7 f2 K
1 r$ H8 t& Z! h3 v
Пример записи для нового квеста (ID 98765) Если ты хочешь создать диалоги для нового квеста с ID 98765, твой файл может выглядеть так:
! W$ F2 R* f5 d# s' A! ?- NewQuestDialog_begin QuestId=98765 Text0=[Вы готовы принять новый вызов и доказать свою силу?] Text1=[Как вы себя чувствуете? Вы выглядите уверенно. Это хороший знак, но не расслабляйтесь — впереди много испытаний. Примите это задание, если готовы.] Text2=[Пора приступить к тренировкам. Идите за мной в тренировочную зону.] Text3=[Следуйте моим указаниям, и вы раскроете весь свой потенциал.] Text4=[Поговорите с Дарти. Кликните на него и начните диалог.] NewQuestDialog_end& K7 Z, ?6 I' w: V3 D
Скопировать код Разъяснение полей:! b1 l; |. ~/ S- M4 w4 v* z, D8 L: t
- QuestId=98765 — уникальный идентификатор нового квеста.
- Text0 — вводный текст квеста. Отображается при первом контакте с NPC.
- Text1 — дополнительный диалог, который дается игроку для создания контекста.
- Text2 — текст, который отображается на следующем этапе квеста, например, после выполнения части задания.
- Text3 — описание следующего шага или инструкции для игрока.
- Text4 — финальный диалог или текст с указанием цели (встреча с другим NPC).; W1 ?& T2 E4 \( S, P! n9 a9 p# m2 a
. Z) g! l- B n/ F* W# ~ E3 |2 O5 v! ^6 Z' W: S
Что можно изменить:- Тексты диалогов (Text0, Text1 и так далее) можно адаптировать под конкретные ситуации в квесте.
- Количество текстов можно варьировать в зависимости от сложности квеста.2 {- F2 [" |! b. H7 j9 Z
7 J5 d/ @. |: tФайл NewQuestData-ru.dat содержит параметры, связанные с квестом в игре Lineage II, и описывает условия, NPC, цели и награды. Рассмотрим параметры этого файла:
' e/ U( L R S: s, {5 j+ B, v* k
0 X4 b% I; f4 M% M! s0 C: q( O3 C% B" u- newquestdata_begin / newquestdata_end: Эти параметры обозначают начало и конец блока данных квеста.
- quest_id=10001: Уникальный идентификатор квеста (ID). В данном случае это квест с ID 10001.
- quest_type=1: Тип квеста.' y+ U* S9 W% n! r
- 1 обычно означает стандартный квест.9 }" H0 r3 M- `; i6 A. |: f9 s
- quest_name=[Новый путь]: Название квеста. Здесь указано "[Новый путь]" — это имя, отображаемое в игре.
- quest_level={0;0}: Уровневые ограничения квеста./ N3 k4 Z4 e, K! r8 `1 z5 M' a
- Первое значение указывает минимальный уровень, второе — максимальный уровень.
- {0;0} означает, что нет ограничений по уровню.
) U0 z; b( @: ^9 Z& o
- pre_quest={}: Предварительный квест, который нужно выполнить перед началом этого квеста. k( r# N$ e D6 r
- В данном случае он пустой {}, что означает, что нет предварительных требований.
3 T. _/ g4 p4 { a" t9 U) m7 Z
- class={0;10;18;25;31;38;44;49;53;123;124}: Классы или расы, которые могут брать квест.
5 ]% b3 t0 v( m# G8 F3 n- Номера классов указывают на те классы, которым доступен этот квест. В данном примере классы, такие как 0 (человеки), 10 (рыцари) и другие, имеют доступ.) N+ b1 l( q2 D& W+ l- ~% V8 \
- quest_item=82948: ID квестового предмета, необходимого для выполнения цели или этапа квеста.
$ m/ O# P0 R% d2 l- O# l- В данном случае это предмет с ID 82948.+ I' G" s) w3 H: Z' h' q
- start_item=0: Предмет, который выдается при начале квеста.
2 W; N/ B7 l) i6 o8 q+ m- Значение 0 означает, что предмет не выдается.
( [& e; o, X' [6 H& f
- start_npc=34505: ID NPC, у которого начинается квест.
- start_npc_loc=1002: Локация NPC, у которого начинается квест.
3 a# f* J% j& c. [2 `( G- Это ID локации, где находится стартовый NPC.1 G8 L2 p- u9 e; b6 A% Z6 C
- end_npc=34696: ID NPC, у которого завершается квест.
- end_npc_loc=1003: Локация NPC, у которого завершается квест.
# S6 ]* k( |2 I. q/ j- Это ID локации, где находится конечный NPC.3 o1 v+ q6 A& t8 D9 o
- quest_loc=1003: Основная локация выполнения квеста.
/ Y e" u2 r: M- |7 ^- Это ID зоны, где нужно выполнять основные задачи.
- Z: p- }; E6 W- A. u& s
- goal_string=[Дарти (Зона Тренировки)]: Описание цели квеста.
; m% ~+ H% u7 L# t- В данном случае цель связана с персонажем по имени "Дарти" в Зоне Тренировки.
`+ @( T1 E' }& j
- goal_num=1: Количество действий, необходимых для выполнения цели (например, убийств монстров или сбора предметов).
, n; F0 X0 Y2 Q- В данном случае нужно выполнить одно действие (1).
/ H: G' }/ `7 F
- reward_level=65535: Уровень, при котором можно получить награду.$ P M7 Q) Z' M
- В данном случае это максимальное значение, указывающее, что награда доступна всегда." M9 a; R7 {- S/ P3 X" w3 [
- reward_exp=0: Опыт (EXP), выдаваемый в качестве награды.
T; r* @- J3 i/ B; b- В данном случае опыт не выдается./ k# \' k! u. e" h% w
- reward_sp=0: Количество SP (Skill Points), выдаваемых в качестве награды.
- `3 P* y. Z$ v# W- Здесь тоже 0, значит, SP не выдаются.
" D$ f3 v% e" z- Q
- reward_item={}: Наградные предметы.& L( p3 x- s5 G3 s# I
- В данном случае наградные предметы отсутствуют.
! L; w) a, I2 @) ?
Этот файл определяет основной функционал и настройки для конкретного квеста в игре.
& }- k/ }/ {. L4 |! T0 C
" n9 z0 m J4 d. r1 Y4 |
0 s* B0 q' f( H4 U {9 ?. h N
7 S1 F5 @/ K: Z4 C7 K8 P. `: C) v$ c+ v
9 G. p6 f% Z) Z% F
- d$ x+ l$ S4 L5 w; f* Y5 {0 b( Q$ i: h1 w x0 A/ I9 Z
G i O6 R+ n" q) d2 a6 T
% t4 Q+ J' z5 K3 I8 Y6 ]3 b6 p9 m0 [* a: S" |
|