Зарегистрируйтесь сейчас чтобы найти еще больше друзей, и получить полноценный доступ ко всем функциям сайта!
Для просмотра Вам необходимо авторизоваться Если Вы еще не зарегистрированы, перейдите по ссылке:Зарегистрироваться
x
Сборка: L2l_Monius
% f- z$ n' U2 p- d# t+ j4 x" FСледующие квесты можно использовать в качестве шаблонов для создания практически любого простого квеста go kill или go talk.( g" C5 ]& j! y( O9 O7 Y9 J5 K! f
: ?) j3 S% I2 K
' g# `- Z# k4 v5 _) O1 S# [Иди и убей X монстров / Возвращение - награда.
, N! {1 O$ H0 d3 H9 a9 h2 I. @Q00529_RegularBarrierMaintenance, J, e8 t# E4 M2 \3 r
1 _: x$ \8 F6 V$ R
Получите квест от любого из двух разных NPC / Убейте X монстров / Вернитесь с наградой.
, A1 {! Z g7 M) ?2 sQ00683_AdventOfKrofinSubspecies ` \, {: l, V$ z+ n
* Q, \) ^" m2 `* I' e. N3 e6 k
Поговори с NPC 1 / Поговори с NPC 2 / Поговори с завершающим NPC / Награда.
( {& X" A8 }; A: `- E" u3 n: }Q10516_UnveiledFafurionTemple; K4 n& ]6 c+ T
$ t% V( p1 U2 l6 c# k# u. [
Убейте X монстров, а также соберите X предметов / Возврат - награда.3 B7 a, i5 C; `5 l) ^4 n
Q10517_FafurionsMinions5 D, C6 J A' z$ E; N
& \5 e3 B$ ]8 ~+ `, @1 G TИди собери X капель монстров / Вернись - убей X монстров / Вернись - награда.' n2 D! f M2 m* s) d1 U
Q10529_IvoryTowersResearchFloatingSeaJournal6 V3 ~" G/ |/ i$ {9 m( U, U! q& O
! T, w; G1 Q5 h$ T
Иди убей X монстров, а также собери X предметов / Возвращение - иди собери X предметов / Возвращение - награда.* M2 \) E7 Z, l9 [( Y1 ~8 J/ H
Q10518_SucceedingThePriestess, U- k3 c+ I. E; m2 o) ]
; X {2 e5 Y8 }* b0 S0 MУчаствуйте в убийстве рейдбосса / Возврат - награда.
2 I8 L. q" A/ PQ10519_контролирование вашей температуры* f3 ~& n/ r; V* C/ l* K& A
- ^2 T: ?+ n; k: A9 |/ XПоговорите с NPC 1 / Примите участие в убийстве рейдбосса / Возвращение - награда.
% [4 K/ M8 @; `3 l9 vQ10533_OrfensAmbition
7 O3 ~& S# j K; E7 X+ V0 d. V9 w/ ]; f) |9 h. l
& T* M. T) K9 j9 T2 D/ G
2 {4 P" j! Y; c& ]4 [3 uРуководство требует обновления. И, к сожалению, с самыми последними хрониками вы не сможете избежать модификаций клиента. Поэтому, исключительно в образовательных целях, я предлагаю свой опыт по добавлению нового квеста!1 F/ N( H- V% Q4 H+ w$ U% a
8 P* V2 y }% c: e. n, F: R% YШаг 1: Создайте свой квест с уникальным ID. В этом примере я буду ссылаться на квест как "Q98765_NewQuest".
% Q& A, m" G* N( g
! S5 M' ]+ i- K3 E" D4 g' O! W8 vШаг 2: Когда вы успешно создали свой квест и Eclipse не выдает ошибок, добавьте название квеста и импортируйте его в файл "QuestMasterHandler.java".* \* q! S2 C! b
5 }0 O3 d* l* }1 y! A
Шаг 3: Перейдите в клиент и с помощью редактора клиента добавьте квест в следующие файлы .dat: "questname-ru.dat" и "QuestMarkConditionData.dat".: k8 i$ r6 x* O8 [% `' g# t. m
4 |- }6 s! S% x
Следующие шаги относятся к любым новым хроникам, которые используют всплывающие окна квестов.
6 B. d# K$ H9 g" u, [9 N' y% e! y( u" e* }& X+ I, ?
Шаг 4: Найдите в серверных файлах файл с названием "NewQuestData.xml" и добавьте туда свой квест.
0 ^ h: _2 ?; P5 Z; g* {4 U# D
( C" ?4 Z+ O C# v, a) SШаг 5: Найдите в клиенте следующие файлы и добавьте туда свой квест: "NewQuestData-ru.dat", "NewQuestDialog-ru.dat" и "NewQuestNpcPortrait.dat".
& x2 C- U b" ]1 V" Y
( u( o: g# Y, l/ E( m3 u. MЕсли я что-то забыл, не стесняйтесь исправить меня. Это руководство создано исключительно в образовательных целях.
J7 Z! e& n3 [; Y$ @. V" j
* \; b! R9 I' H" |6 vШаг 2:2 M: o$ D9 ]4 \' u( D% c! |
6 ^ a7 a4 d1 s9 ^
Следующий шаг заключается в добавлении вашего квеста в QuestMasterHandler.java. Вот общий план:
! [5 S2 t7 Z* Z' m& N0 W8 ^/ O+ [/ Y
1. Импорт вашего квеста: В начале файла после всех существующих импортов добавьте строку, которая будет импортировать ваш квест. ) W; s u3 b8 h; y6 H
Например:
( {4 _3 }' N6 S- r/ D( E+ ~1 ~- U# Z: |, h" S& U2 t) A& C$ ]# G
- import quests.<span style="background-color: rgb(255, 255, 255);">Q98765_NewQuest</span>.<span style="background-color: rgb(255, 255, 255);">Q98765_NewQuest</span>;# D3 C' l$ S( ~" _/ p0 \! d2 G
Скопировать код 1. Регистрация квеста: Найдите метод, который отвечает за регистрацию всех квестов. Обычно это делается в статическом блоке или методе init, где происходит инициализация квестов. В этом блоке добавьте строку, которая будет регистрировать ваш квест:
0 m" c6 ` g: \9 }' d
C2 `0 N- X) x4 a, K- /**
/ q, E& f& `1 @" R0 c7 H - * @author NosBit
; T6 h& w) p3 g - */! H# z6 o8 a# Z0 A% @
- public class QuestMasterHandler6 K5 L/ b/ r! K8 O7 p L8 V3 L
- {
1 W2 O2 g' c' T/ H - private static final Logger LOGGER = Logger.getLogger(QuestMasterHandler.class.getName());! Q# r* G4 X( o, |
-
$ ^/ [7 U6 G+ g8 k7 N ^+ N - private static final Class<?>[] QUESTS =' K( R5 ^4 N6 w" T* y! ]7 l8 I5 Z
- {
Скопировать код Проверка: Убедитесь, что идентификатор вашего квеста (в данном случае Q98765_NewQuest.class) уникален и не конфликтует с уже существующими квестами.
! E" l! n+ e) `! I) z9 h# ~' \- a
4 z& L" A8 P2 k3 X* F/ F& ~! g- V) [1 s
Шаг 3:! x7 {! W2 I+ h( M
$ M: {5 k+ p m; r+ I- [Файл QuestName-ru.dat используется для описания квестов и содержит различные параметры, которые задают характеристики квеста, его цели, награды, ограничения и т.д.
1 f3 {7 L# ]$ ~* y. L1 B5 \/ }Давайте разберем все поля на основе примера:
1 R: [ _: K* U0 k5 y
! I" e- x. A7 N7 {( ~8 g- 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
2 B( O' M0 N0 _8 R! s- N
Скопировать код Поля данных:- 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 — завершение записи для квеста.
) P. q( e' m# l, K- h5 V3 V+ |: | ) W4 C) l+ F. O. L6 K ?
/ p% ]; A5 H( X3 H1 R0 x N
Файл клиента QuestMarkConditionData.dat содержит информацию о квестах, связанных с условиями, необходимыми для активации или завершения определённых действий в игре.
5 a5 e2 _; b: j3 WПример соодержания
: }) o) `# F+ V- N$ h( B; XВот описание структуры строки:
1 T3 ? O/ E. g. l- 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
Скопировать код Давайте разберем все поля на основе примера:
1 ?# I+ a$ d4 x* Y+ Q- u3 A
& R' Y _2 N4 E7 e% `2 @0 H! I6 T- 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: Указывает на конец записи о квесте.5 \+ R5 [/ H: Y# @+ W k
Эта структура помогает клиенту определять условия, при которых игрок может начать или выполнить квест, а также идентифицировать необходимые взаимодействия с NPC.$ S( o3 x' R2 w2 Z# z: `' G
7 e' M# O7 ^3 q; ?
' Q' ^) X- G) z O. k0 F
6 V+ U6 z& L! M% M" {Следующие шаги относятся к любым новым хроникам, которые используют всплывающие окна квестов., s, ^2 f0 L. V
" w' p# \9 Y# ]% s2 O& CШаг 46 N6 P/ R: {6 o
Для того чтобы добавить свой квест в файл NewQuestData.xml, нужно следовать структуре, аналогичной приведенному вами примеру. Вот как это может выглядеть:! n2 V" g/ k! J8 a
Пример добавления нового квеста:
/ m: i6 a& d) S/ j* K& F! @3 Z- i, X1 T- <quest id="20001" type="1" name="Mystery of the Lost Relic" startNpcId="30050" endNpcId="30051">
/ b6 f: Z2 W; }1 U1 c! p - <locations>" r# X4 M% Q2 }! @3 p4 Y" E. v
- <param name="startLocationId">2001</param>& o# J w7 z4 }3 \
- <param name="endLocationId">2002</param>
- l/ E3 m( z- V; J - <param name="questLocationId">2003</param>
1 R/ b, h" `3 N0 h$ S9 C9 } - </locations>
* z. O: E- ~2 |' h' v) K( E - <conditions>
- e: ~ \3 Y8 \! \$ | - <param name="preQuestId">20000</param>
+ H' k1 O8 m: \8 C) d3 x - <param name="classIds">0;1;2;3;4;5;6</param> <!-- доступ для всех рас -->; g+ u* |' a# a5 G# p
- </conditions> |$ O& {4 e! ]3 U; ?
- <rewards>
7 ]6 E7 M% g; g' ~1 E - <param name="rewardLevel">50</param>
* W3 B1 c" S$ B" r - <param name="rewardSp">5000</param>% V4 [7 r! @+ v, h; i7 h( I( V
- <param name="rewardItemId">57</param> <!-- Adena -->
4 n. j$ [0 q3 \% R8 M. o& T - <param name="rewardItemCount">10000</param>
; w" x: m' O0 a! U0 L( F( l - </rewards>
) U& m5 Q6 K! O5 y! A+ Q - <goals>' N- d; \1 z' E# B' Z( U
- <param name="goalCount">10</param>
3 I- c0 a1 ?1 e - <param name="goalString">Defeat monsters in the Ancient Forest</param>" Q. c; F9 a3 b8 }2 C8 M
- <param name="goalItemId">92000</param> <!-- некий квестовый предмет -->
) f- _0 [5 l6 x) Z - <param name="goalItemCount">1</param>
4 w D+ ?0 f8 }; l3 }4 c, ?9 b - </goals>
( o6 V0 I {+ m* B$ U# x2 ?' _ - </quest>
" I# |4 F8 f8 p. f1 b% y' w" z6 |1 }
Скопировать код Описание структуры:
. J9 j4 _$ x; Z P T1 M, h/ o7 r- quest: Основной элемент квеста, содержащий атрибуты:7 b9 o& [4 A7 L6 K( R7 `. m5 ?, e
- id: ID квеста, уникальный для каждого квеста.
- type: Тип квеста (1 – обычный квест).
- name: Название квеста.
- startNpcId: ID NPC, с которого начинается квест.
- endNpcId: ID NPC, у которого квест заканчивается.
) B9 k/ R9 e( E% U" V1 i
- locations: Указывает места начала, окончания и квестовой активности.8 w) R# \5 i$ G! k
- startLocationId: ID места, где начинается квест.
- endLocationId: ID места, где квест заканчивается.
- questLocationId: ID квестовой зоны.6 ~( x; \0 D& _" m* Z9 M8 ^# \
- conditions: Условия для начала квеста.
' @( z. H& q, `! @, ~; T- preQuestId: ID предварительного квеста (если есть).
- classIds: ID классов или рас, которым доступен квест.
! V1 n' {8 N/ m: v
- rewards: Награды за выполнение квеста.
5 {' N5 u0 S* t& w% ^/ @( A4 E- rewardLevel: Минимальный уровень для получения награды.
- rewardSp: Количество опыта (SP).
- rewardItemId: ID предмета (например, Adena).
- rewardItemCount: Количество предметов.1 q) S* V* X- ] ?1 A
- goals: Цели квеста.+ r! q0 f8 c3 C) f
- goalCount: Количество монстров, которых нужно убить или предметов, которые нужно собрать.
- goalString: Описание цели.
- goalItemId: ID квестового предмета (если требуется).
- goalItemCount: Количество квестовых предметов для завершения цели.
. K( E/ J: y. G- N1 x8 l& o
После того как вы добавите квест в файл NewQuestData.xml, нужно перезапустить сервер, чтобы изменения вступили в силу." Q! b* ]& p0 v i* T6 F& c
& j4 Z9 e$ k- u# Q4 L; p7 o. q/ wШаг 5
( U5 r- ^' q% N9 T1 M! OФайл NewQuestDialog-ru.dat используется для хранения диалогов, связанных с квестом. Он определяет тексты, которые отображаются в окнах диалогов с NPC во время выполнения квеста. Вот разбор ключевых элементов строки и структура файла:
' T: Z$ I: C% J. n( M" e) s3 NСтруктура данных- NewQuestDialog_begin — начало записи квеста в файле диалогов.
- QuestId=10001 — идентификатор квеста (должен соответствовать ID, который ты используешь в других файлах).
- Text0=... — первый диалог, который обычно отображается при старте квеста.
- Text1=... — дополнительный текст, который отображается на различных этапах квеста.
- Text2=... — текст, который отображается после выполнения определенных действий (например, после выполнения части задания).
- Text3=... — дополнительный диалог, например, при встрече с NPC на следующем этапе квеста.
- Text4=... — финальный текст или инструкции по следующему шагу для игрока.
- NewQuestDialog_end — завершение записи для этого квеста.$ M) s& c% |/ k9 @1 h6 w1 S
7 H9 o5 a) j; I# B4 i- E" o# ^
Пример записи для нового квеста (ID 98765) Если ты хочешь создать диалоги для нового квеста с ID 98765, твой файл может выглядеть так:, w. U8 |7 a& [
- NewQuestDialog_begin QuestId=98765 Text0=[Вы готовы принять новый вызов и доказать свою силу?] Text1=[Как вы себя чувствуете? Вы выглядите уверенно. Это хороший знак, но не расслабляйтесь — впереди много испытаний. Примите это задание, если готовы.] Text2=[Пора приступить к тренировкам. Идите за мной в тренировочную зону.] Text3=[Следуйте моим указаниям, и вы раскроете весь свой потенциал.] Text4=[Поговорите с Дарти. Кликните на него и начните диалог.] NewQuestDialog_end) O1 E3 _( I: ?) v0 A. T _
Скопировать код Разъяснение полей:
4 e% H) v j9 M' E9 U! o D" W. v- QuestId=98765 — уникальный идентификатор нового квеста.
- Text0 — вводный текст квеста. Отображается при первом контакте с NPC.
- Text1 — дополнительный диалог, который дается игроку для создания контекста.
- Text2 — текст, который отображается на следующем этапе квеста, например, после выполнения части задания.
- Text3 — описание следующего шага или инструкции для игрока.
- Text4 — финальный диалог или текст с указанием цели (встреча с другим NPC).
5 k2 }/ d9 M' X- q. W, d( f) l
- [$ N% o4 ^; A- W+ V4 b3 U' m4 d" `& `$ O, v$ ~' M
Что можно изменить:- Тексты диалогов (Text0, Text1 и так далее) можно адаптировать под конкретные ситуации в квесте.
- Количество текстов можно варьировать в зависимости от сложности квеста.
( O- W. ]" ~% l6 n! t - [2 k1 L" W! ?& q
Файл NewQuestData-ru.dat содержит параметры, связанные с квестом в игре Lineage II, и описывает условия, NPC, цели и награды. Рассмотрим параметры этого файла:
& v* c1 J& [4 I @9 {" {) u
5 e' M5 A' X" f% l& o9 X3 q# m+ F( a- newquestdata_begin / newquestdata_end: Эти параметры обозначают начало и конец блока данных квеста.
- quest_id=10001: Уникальный идентификатор квеста (ID). В данном случае это квест с ID 10001.
- quest_type=1: Тип квеста.
9 g+ z6 w+ r/ }- 1 обычно означает стандартный квест.
# Y7 c3 x- j$ x" }% ~2 C* @* k
- quest_name=[Новый путь]: Название квеста. Здесь указано "[Новый путь]" — это имя, отображаемое в игре.
- quest_level={0;0}: Уровневые ограничения квеста.
4 C+ Z) i9 u& u$ Q; T+ }+ _! z- Первое значение указывает минимальный уровень, второе — максимальный уровень.
- {0;0} означает, что нет ограничений по уровню.
% b$ H, j, p& G/ N% |
- pre_quest={}: Предварительный квест, который нужно выполнить перед началом этого квеста.5 u7 f3 ~ L% M
- В данном случае он пустой {}, что означает, что нет предварительных требований.5 y$ E. @+ M+ G- F! A. n
- class={0;10;18;25;31;38;44;49;53;123;124}: Классы или расы, которые могут брать квест.# ^" D) @4 G# n: t Z
- Номера классов указывают на те классы, которым доступен этот квест. В данном примере классы, такие как 0 (человеки), 10 (рыцари) и другие, имеют доступ.+ k# A+ Y. X+ D" n- K/ H6 D
- quest_item=82948: ID квестового предмета, необходимого для выполнения цели или этапа квеста.! U( l0 |, ]" b/ I
- В данном случае это предмет с ID 82948.. D1 S e9 T$ n0 J5 h+ S
- start_item=0: Предмет, который выдается при начале квеста.
, G/ T6 u% I& z! V- Значение 0 означает, что предмет не выдается.
. F' j: I0 h/ }
- start_npc=34505: ID NPC, у которого начинается квест.
- start_npc_loc=1002: Локация NPC, у которого начинается квест.
0 k8 K3 d6 B/ m+ @7 R3 w- m* Q- Это ID локации, где находится стартовый NPC.1 G& m, `" [7 ]' D" Z
- end_npc=34696: ID NPC, у которого завершается квест.
- end_npc_loc=1003: Локация NPC, у которого завершается квест.0 h9 A/ _ r* ^2 p4 B, ?! \- q
- Это ID локации, где находится конечный NPC.
) d& S7 V, l4 c2 Z
- quest_loc=1003: Основная локация выполнения квеста.
+ j J- r3 a1 [2 b) ~3 [, K- Это ID зоны, где нужно выполнять основные задачи.9 B+ U& g/ @& J. _/ x
- goal_string=[Дарти (Зона Тренировки)]: Описание цели квеста.
) E# c" ]! q& H ^& ?4 o7 J- В данном случае цель связана с персонажем по имени "Дарти" в Зоне Тренировки.. C/ D- B* U. l. o4 d
- goal_num=1: Количество действий, необходимых для выполнения цели (например, убийств монстров или сбора предметов).$ d5 B. E. }4 i1 e! i
- В данном случае нужно выполнить одно действие (1).
f. y I. ]6 K; d0 U `) \, ~9 b
- reward_level=65535: Уровень, при котором можно получить награду.5 Q$ U0 B# S( S/ R3 I- E" ~( h
- В данном случае это максимальное значение, указывающее, что награда доступна всегда.0 W7 B: w4 H, C% h* t- R
- reward_exp=0: Опыт (EXP), выдаваемый в качестве награды.+ d( y, I' V' y
- В данном случае опыт не выдается." ?. I, k+ F J, c( X* q
- reward_sp=0: Количество SP (Skill Points), выдаваемых в качестве награды.
- d) x! |- X0 S( ^1 |8 \- Здесь тоже 0, значит, SP не выдаются.5 o/ r, [% W5 o o
- reward_item={}: Наградные предметы.+ h, J$ k4 Y$ h& d
- В данном случае наградные предметы отсутствуют.
?, W. K. Y/ F2 Z' F3 j7 j8 V
Этот файл определяет основной функционал и настройки для конкретного квеста в игре. z8 m( z. c. o( }& J/ g4 M
' I( l$ Z) S* l% p( H" b+ d2 I
" t. o) V7 X: K3 E
1 T# X/ E% \, i# r1 A9 r S( z* | z0 l
( ?" y5 p% B$ }$ X1 X. A- K% G/ s
) k& r3 T) a& u. D1 o$ i( u6 O, g; o* H( m
6 H( n3 ]! r8 \9 g; K8 M" Y% L
8 i- W# z; O2 f, I
' J1 V+ e$ s! y* B3 U/ _ |