Зарегистрируйтесь сейчас чтобы найти еще больше друзей, и получить полноценный доступ ко всем функциям сайта!
Для просмотра Вам необходимо авторизоваться Если Вы еще не зарегистрированы, перейдите по ссылке:Зарегистрироваться
x
Сборка: L2l_Monius
; o: w+ t+ h" U2 j. o/ D/ e# j3 jСледующие квесты можно использовать в качестве шаблонов для создания практически любого простого квеста go kill или go talk.
+ t7 g I% x- \/ @- P
( I( F8 y( U4 n% A% q4 R9 z! p6 L! R3 f, H1 q) P% `* y
Иди и убей X монстров / Возвращение - награда.
( z2 U3 v$ e$ i4 LQ00529_RegularBarrierMaintenance) T" s3 i5 K5 R/ ^& [8 c
" T- Z; P5 ^+ ?; C' ?3 zПолучите квест от любого из двух разных NPC / Убейте X монстров / Вернитесь с наградой.
5 L$ ^* M, G8 pQ00683_AdventOfKrofinSubspecies0 A4 S8 @5 N& ~3 p1 n1 Q
2 E. e6 ^- |) n: hПоговори с NPC 1 / Поговори с NPC 2 / Поговори с завершающим NPC / Награда.
" I& r& Q8 H0 \/ zQ10516_UnveiledFafurionTemple
* O6 O( z2 P: }% T( i* X" R3 d
0 k# C: _$ u% G" Q7 JУбейте X монстров, а также соберите X предметов / Возврат - награда., m- z k4 {3 [" U& A: K
Q10517_FafurionsMinions- z6 y! N6 Z. Y
5 b9 `+ E* a6 f0 u5 [Иди собери X капель монстров / Вернись - убей X монстров / Вернись - награда.* J" C! {- g2 y& {3 y- q
Q10529_IvoryTowersResearchFloatingSeaJournal
! e" O' T6 J. c9 d8 D4 p- i4 N3 f( k% r) r& h2 m% c6 A; U* \
Иди убей X монстров, а также собери X предметов / Возвращение - иди собери X предметов / Возвращение - награда.
# c: P. N8 K! a$ }' sQ10518_SucceedingThePriestess
. @& n7 r, M. X7 b+ [
3 \! o* f5 ~4 G4 ?! i' XУчаствуйте в убийстве рейдбосса / Возврат - награда.
: {8 b& P$ v3 ~2 E/ ~$ aQ10519_контролирование вашей температуры
# F) y) q3 H* {8 u( y9 ?% S& w* V/ l5 f7 Y
Поговорите с NPC 1 / Примите участие в убийстве рейдбосса / Возвращение - награда.
! H; q& M. w& u1 B% tQ10533_OrfensAmbition8 C# d# b6 F1 A% ?
, C( S. E# N, W! Y z
, I6 M0 v% r' g% @$ _; |4 ?' D+ Z
9 a4 O* B6 I7 y9 p$ |+ P0 `
Руководство требует обновления. И, к сожалению, с самыми последними хрониками вы не сможете избежать модификаций клиента. Поэтому, исключительно в образовательных целях, я предлагаю свой опыт по добавлению нового квеста!
: Y& }, X% X* H+ ?; a: \3 I( s5 e5 B h: D& I; c- W
Шаг 1: Создайте свой квест с уникальным ID. В этом примере я буду ссылаться на квест как "Q98765_NewQuest".
" {3 Q S+ a* J9 ] L
( r2 `( d! i7 k2 [4 uШаг 2: Когда вы успешно создали свой квест и Eclipse не выдает ошибок, добавьте название квеста и импортируйте его в файл "QuestMasterHandler.java".2 @9 R9 |' T; h& i
) y) M- _" X4 Y" RШаг 3: Перейдите в клиент и с помощью редактора клиента добавьте квест в следующие файлы .dat: "questname-ru.dat" и "QuestMarkConditionData.dat".8 Y1 v0 K9 }2 S7 U2 o% [
; ~- a4 M8 v( M2 I6 r
Следующие шаги относятся к любым новым хроникам, которые используют всплывающие окна квестов.) Q) j3 I1 ^- Z! `0 P* D4 O5 O
% F( T* c0 P! {. _0 o' R" _1 v
Шаг 4: Найдите в серверных файлах файл с названием "NewQuestData.xml" и добавьте туда свой квест.
3 ~% ^+ o: l/ `% Q
. D9 p. v5 ~+ f% b) w1 d7 z- h; `Шаг 5: Найдите в клиенте следующие файлы и добавьте туда свой квест: "NewQuestData-ru.dat", "NewQuestDialog-ru.dat" и "NewQuestNpcPortrait.dat".; G6 y. I, i( O6 S- x. m- R
5 Y7 p1 P1 x( x5 W% @7 f4 EЕсли я что-то забыл, не стесняйтесь исправить меня. Это руководство создано исключительно в образовательных целях.
# o, Z6 i- {. |% P3 ]1 Z9 ]! f
- v6 v+ d+ z/ n# [Шаг 2:7 P: w- u& y% J( m+ t
J8 [3 a3 G1 Y# N, t* q
Следующий шаг заключается в добавлении вашего квеста в QuestMasterHandler.java. Вот общий план:
% ]. ]/ g- g" t
, b& H8 V& L7 r; Y1. Импорт вашего квеста: В начале файла после всех существующих импортов добавьте строку, которая будет импортировать ваш квест.
- \, `6 a& D U/ D& lНапример:
( |. r% T% `" e8 v# q C( N* H- X& ~& T6 O4 y; ^. o9 Y4 F. [8 o
- import quests.<span style="background-color: rgb(255, 255, 255);">Q98765_NewQuest</span>.<span style="background-color: rgb(255, 255, 255);">Q98765_NewQuest</span>;
( ]( ]" w, U1 m+ J" a" G
Скопировать код 1. Регистрация квеста: Найдите метод, который отвечает за регистрацию всех квестов. Обычно это делается в статическом блоке или методе init, где происходит инициализация квестов. В этом блоке добавьте строку, которая будет регистрировать ваш квест:% a T3 @3 J: Y8 C$ S
% C9 j9 P# i3 Z0 Y% C* I- /**
3 ~7 ]4 I# i% P1 u8 }2 S; Q* | - * @author NosBit
6 t- q4 `3 Z! e! s) K- F - */
6 b; h( ]2 w6 ~ - public class QuestMasterHandler( L9 |; m# u* |' I$ p% F/ }
- {
: B# G" R0 V6 L$ b4 ?5 ` - private static final Logger LOGGER = Logger.getLogger(QuestMasterHandler.class.getName());; q: z# m7 s4 m$ @. Y
-
. q: K" G: v4 ?& r, Z7 L) E - private static final Class<?>[] QUESTS =
" D( w+ b' Z: ^ - {
Скопировать код Проверка: Убедитесь, что идентификатор вашего квеста (в данном случае Q98765_NewQuest.class) уникален и не конфликтует с уже существующими квестами.8 I6 c1 B0 G6 p* ?, V/ q
, [% I- W% Q2 g- R# r/ b
& `0 d: [7 |. u+ ~. xШаг 3:1 R' X/ S4 N O
5 y- I% e1 k9 i' v) ?
Файл QuestName-ru.dat используется для описания квестов и содержит различные параметры, которые задают характеристики квеста, его цели, награды, ограничения и т.д.
- I& I$ [" x0 X1 SДавайте разберем все поля на основе примера:& l4 n8 Q/ U' ?# e% a @9 P7 Y
+ G/ \* i$ P; O0 e1 ^
- 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_end5 L: i! G {. s1 y$ e
Скопировать код Поля данных:- 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 — завершение записи для квеста.. G/ u5 q9 w1 k8 ~7 `7 _3 |
# m# u' A0 P3 U6 t* R. y. N% z0 Q: Z8 v* Z% v: ]3 N# B5 \- b0 O
Файл клиента QuestMarkConditionData.dat содержит информацию о квестах, связанных с условиями, необходимыми для активации или завершения определённых действий в игре. ! M& b& H% n# i: H
Пример соодержания4 `1 O0 m5 _+ @3 {1 z
Вот описание структуры строки: L& N+ W) a t7 `5 g. s
- 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
Скопировать код Давайте разберем все поля на основе примера:/ L+ {1 L5 u4 ?8 M
% U' a; X9 U8 ]3 f& A+ Z
- 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: Указывает на конец записи о квесте.
4 Y5 r! |9 _4 M; k Эта структура помогает клиенту определять условия, при которых игрок может начать или выполнить квест, а также идентифицировать необходимые взаимодействия с NPC.
- U& _6 e3 @1 |+ K; |8 N
& m/ g! n, k9 \7 y3 z4 r% Y% |6 L7 K3 l5 n$ e
# L/ z1 b$ L6 c+ |+ V) t5 u
Следующие шаги относятся к любым новым хроникам, которые используют всплывающие окна квестов.
5 `" p$ o& c* a0 ?
3 P& ?, I: e& MШаг 4
" g; ]& h4 K7 r& G0 X N$ RДля того чтобы добавить свой квест в файл NewQuestData.xml, нужно следовать структуре, аналогичной приведенному вами примеру. Вот как это может выглядеть:9 {6 O/ Z- z# Q/ a+ {1 L2 w1 O
Пример добавления нового квеста:
6 e K8 [% r/ A- <quest id="20001" type="1" name="Mystery of the Lost Relic" startNpcId="30050" endNpcId="30051"> F5 y5 |9 O+ d. `
- <locations>& ^- o! v! U; e# J# k/ w2 R/ {
- <param name="startLocationId">2001</param>2 W; W* ]$ j: _( J
- <param name="endLocationId">2002</param>
4 V% f9 |( Z1 r6 y - <param name="questLocationId">2003</param>! N8 }" Z5 t0 N) v1 k! y) k! U* Y
- </locations># [: G3 Z' C; S9 m1 p7 A$ K
- <conditions>
) @; V, q; r J - <param name="preQuestId">20000</param>
. ?1 c( M0 N+ C3 V8 w; f5 r - <param name="classIds">0;1;2;3;4;5;6</param> <!-- доступ для всех рас -->
8 ]% H$ `$ j. o4 y1 g& z - </conditions>- A: ^' |5 I% S! ~( l9 h
- <rewards>
1 \8 R, R$ I4 ?0 p6 v; V, s - <param name="rewardLevel">50</param>
% [6 ^6 Y" m* t" B0 x9 h - <param name="rewardSp">5000</param>+ @; B$ M4 j3 c3 B1 h7 P
- <param name="rewardItemId">57</param> <!-- Adena -->
+ `3 e. r* [& W' P( t6 g - <param name="rewardItemCount">10000</param>! f# H/ x2 B9 B
- </rewards>
. S6 a" d7 o8 F9 y: _8 P# m - <goals>9 l2 ]$ R7 G$ i% R
- <param name="goalCount">10</param>
! R$ G& o+ R' W2 @! I - <param name="goalString">Defeat monsters in the Ancient Forest</param># T: [# K! L6 O" K
- <param name="goalItemId">92000</param> <!-- некий квестовый предмет -->
' t/ z: E% ~# E: z5 }2 X - <param name="goalItemCount">1</param>9 h! d$ z4 \. z( J! r
- </goals>' x3 ~4 ^6 z& _# k
- </quest>
7 v0 }+ p/ M* C. X' g G" X+ A$ n
Скопировать код Описание структуры:3 y( ]6 J- k; g- H
- quest: Основной элемент квеста, содержащий атрибуты:
, T3 I/ R% g2 @5 _# R- id: ID квеста, уникальный для каждого квеста.
- type: Тип квеста (1 – обычный квест).
- name: Название квеста.
- startNpcId: ID NPC, с которого начинается квест.
- endNpcId: ID NPC, у которого квест заканчивается.: m8 Y* V: a* P* q7 q' Q
- locations: Указывает места начала, окончания и квестовой активности.
& u( |9 I6 L- U* g- startLocationId: ID места, где начинается квест.
- endLocationId: ID места, где квест заканчивается.
- questLocationId: ID квестовой зоны.
7 Q; y* ]1 r! j
- conditions: Условия для начала квеста.
! n. w# I: L7 A; K8 V0 v- preQuestId: ID предварительного квеста (если есть).
- classIds: ID классов или рас, которым доступен квест.) s' u/ d' a; h& U
- rewards: Награды за выполнение квеста.+ e9 R ]- z$ G" [6 @
- rewardLevel: Минимальный уровень для получения награды.
- rewardSp: Количество опыта (SP).
- rewardItemId: ID предмета (например, Adena).
- rewardItemCount: Количество предметов.
' @' L; \2 Y( o' \( p
- goals: Цели квеста.
# c) Q: ]( `' c5 B) l1 B- goalCount: Количество монстров, которых нужно убить или предметов, которые нужно собрать.
- goalString: Описание цели.
- goalItemId: ID квестового предмета (если требуется).
- goalItemCount: Количество квестовых предметов для завершения цели.
% D& N/ q* X- A& k
После того как вы добавите квест в файл NewQuestData.xml, нужно перезапустить сервер, чтобы изменения вступили в силу.; Z8 ^' ]$ x6 x8 H7 @9 P
/ h: o2 Q1 W; p6 J/ z1 a
Шаг 53 n7 Y. Y1 @1 X2 M4 @7 f( y) {1 f$ B
Файл NewQuestDialog-ru.dat используется для хранения диалогов, связанных с квестом. Он определяет тексты, которые отображаются в окнах диалогов с NPC во время выполнения квеста. Вот разбор ключевых элементов строки и структура файла:5 }2 h: P% L0 P! q2 j
Структура данных- NewQuestDialog_begin — начало записи квеста в файле диалогов.
- QuestId=10001 — идентификатор квеста (должен соответствовать ID, который ты используешь в других файлах).
- Text0=... — первый диалог, который обычно отображается при старте квеста.
- Text1=... — дополнительный текст, который отображается на различных этапах квеста.
- Text2=... — текст, который отображается после выполнения определенных действий (например, после выполнения части задания).
- Text3=... — дополнительный диалог, например, при встрече с NPC на следующем этапе квеста.
- Text4=... — финальный текст или инструкции по следующему шагу для игрока.
- NewQuestDialog_end — завершение записи для этого квеста.: E6 u6 {. C0 z D! e: o
/ j+ e4 I; W0 U! k8 ?Пример записи для нового квеста (ID 98765) Если ты хочешь создать диалоги для нового квеста с ID 98765, твой файл может выглядеть так:& H! a- A" x/ N% Z8 A$ e& J
- NewQuestDialog_begin QuestId=98765 Text0=[Вы готовы принять новый вызов и доказать свою силу?] Text1=[Как вы себя чувствуете? Вы выглядите уверенно. Это хороший знак, но не расслабляйтесь — впереди много испытаний. Примите это задание, если готовы.] Text2=[Пора приступить к тренировкам. Идите за мной в тренировочную зону.] Text3=[Следуйте моим указаниям, и вы раскроете весь свой потенциал.] Text4=[Поговорите с Дарти. Кликните на него и начните диалог.] NewQuestDialog_end" u& b- g- G' A* G* I4 @
Скопировать код Разъяснение полей:
/ o6 } ^, e- y9 X- QuestId=98765 — уникальный идентификатор нового квеста.
- Text0 — вводный текст квеста. Отображается при первом контакте с NPC.
- Text1 — дополнительный диалог, который дается игроку для создания контекста.
- Text2 — текст, который отображается на следующем этапе квеста, например, после выполнения части задания.
- Text3 — описание следующего шага или инструкции для игрока.
- Text4 — финальный диалог или текст с указанием цели (встреча с другим NPC).
( U6 j% t& z7 Z8 m7 C . F( R( Z+ J# g. Q
. N' Y7 T) B, Y% e5 VЧто можно изменить:- Тексты диалогов (Text0, Text1 и так далее) можно адаптировать под конкретные ситуации в квесте.
- Количество текстов можно варьировать в зависимости от сложности квеста.
+ P( ~6 R' ~8 K) M: A- z
& X+ U" S7 H% f& EФайл NewQuestData-ru.dat содержит параметры, связанные с квестом в игре Lineage II, и описывает условия, NPC, цели и награды. Рассмотрим параметры этого файла:
8 V) v: J9 Q% h% _$ O5 u, `2 t% k( Y! U, H- a
- newquestdata_begin / newquestdata_end: Эти параметры обозначают начало и конец блока данных квеста.
- quest_id=10001: Уникальный идентификатор квеста (ID). В данном случае это квест с ID 10001.
- quest_type=1: Тип квеста.# s% Y m( [5 D
- 1 обычно означает стандартный квест.) B3 |8 g% T, M$ F. o, I0 W
- quest_name=[Новый путь]: Название квеста. Здесь указано "[Новый путь]" — это имя, отображаемое в игре.
- quest_level={0;0}: Уровневые ограничения квеста.5 }" L/ Y7 \3 ] R# S% K U
- Первое значение указывает минимальный уровень, второе — максимальный уровень.
- {0;0} означает, что нет ограничений по уровню.
1 a+ |* J% j; L" H8 B7 s, V
- pre_quest={}: Предварительный квест, который нужно выполнить перед началом этого квеста.
% d/ ]* u+ m; m/ s& |' d- В данном случае он пустой {}, что означает, что нет предварительных требований.
7 e8 i9 |1 V* B$ z% w, z
- class={0;10;18;25;31;38;44;49;53;123;124}: Классы или расы, которые могут брать квест.2 G9 {, C2 B) Q
- Номера классов указывают на те классы, которым доступен этот квест. В данном примере классы, такие как 0 (человеки), 10 (рыцари) и другие, имеют доступ.
+ n7 `' f% p$ z
- quest_item=82948: ID квестового предмета, необходимого для выполнения цели или этапа квеста.& k- s2 P8 T7 i% W- ~3 D
- В данном случае это предмет с ID 82948.
! L* ]9 c4 L9 C: n( m* u
- start_item=0: Предмет, который выдается при начале квеста.
) S' R# |6 `- R7 B' Z- Значение 0 означает, что предмет не выдается. X6 Q9 {$ ~7 @% y; l
- start_npc=34505: ID NPC, у которого начинается квест.
- start_npc_loc=1002: Локация NPC, у которого начинается квест.
' X i4 U, v0 A$ [ `" @, T- Это ID локации, где находится стартовый NPC.
+ o8 U5 i" K, e, R8 u- `8 t, g) h8 S
- end_npc=34696: ID NPC, у которого завершается квест.
- end_npc_loc=1003: Локация NPC, у которого завершается квест.
I- y" V/ J0 L( p- Это ID локации, где находится конечный NPC.' k. T" f3 Y$ a! ^$ e" r$ h+ i
- quest_loc=1003: Основная локация выполнения квеста.- Y7 T& _( Z! u- t U
- Это ID зоны, где нужно выполнять основные задачи.
( M9 m# A6 J' C$ l: [# R9 P1 r
- goal_string=[Дарти (Зона Тренировки)]: Описание цели квеста.
' g/ a1 v6 d( a7 d4 U8 D: F+ `- В данном случае цель связана с персонажем по имени "Дарти" в Зоне Тренировки.
3 @! O1 o3 y: p4 h" P
- goal_num=1: Количество действий, необходимых для выполнения цели (например, убийств монстров или сбора предметов).$ Z P2 e% n3 ~; g0 t& h1 `
- В данном случае нужно выполнить одно действие (1).* @+ @' x+ v# X3 \
- reward_level=65535: Уровень, при котором можно получить награду.
( V: ~% m$ z2 F9 Z% s- В данном случае это максимальное значение, указывающее, что награда доступна всегда.3 m- X1 x8 P( t9 P1 W0 W
- reward_exp=0: Опыт (EXP), выдаваемый в качестве награды.8 o( B+ g' ?( u5 P5 V
- В данном случае опыт не выдается.1 e; G+ U/ z) }) K1 ^0 \
- reward_sp=0: Количество SP (Skill Points), выдаваемых в качестве награды.* S) Q' Y. N/ u- {
- Здесь тоже 0, значит, SP не выдаются.$ F. M1 p8 N. O- P5 g! a2 V0 a
- reward_item={}: Наградные предметы.
i% g" B: v. x2 i- В данном случае наградные предметы отсутствуют.) J8 M* X/ j" c! T
Этот файл определяет основной функционал и настройки для конкретного квеста в игре.2 U; M8 V Q0 t5 L- y
! O" u" O: ` r$ ~
0 g- t4 N5 T+ \+ e o+ `" x; v% `4 a' Q' O1 ]0 d
0 A# h5 ~- V3 [ Z, d- ]" i6 {- t9 J1 K/ F
9 _5 X, ^+ P# X1 @% I( ]. G2 S! e3 z% K' r
& t% _' C& Y2 B( o6 U- C3 p' r x. w6 h$ H r
9 J: Y. c( {, s# E, c
|