Зарегистрируйтесь сейчас чтобы найти еще больше друзей, и получить полноценный доступ ко всем функциям сайта!
Для просмотра Вам необходимо авторизоваться Если Вы еще не зарегистрированы, перейдите по ссылке:Зарегистрироваться
x
Сборка: L2l_Monius , a6 {& P6 J6 b) z3 M
Следующие квесты можно использовать в качестве шаблонов для создания практически любого простого квеста go kill или go talk.$ i) n' i" ?, F; w! s3 m4 {
1 b# |8 }% g- x& n* v
0 T) G( d s" o3 ?9 _' H
Иди и убей X монстров / Возвращение - награда.
% `+ h D ~6 s: k! B/ Y K% vQ00529_RegularBarrierMaintenance6 O1 a( ]/ j# z q
! ?3 {2 D- v1 y+ N( \5 X
Получите квест от любого из двух разных NPC / Убейте X монстров / Вернитесь с наградой.. {- Y/ b) K7 S
Q00683_AdventOfKrofinSubspecies1 p# _! A+ _9 }0 A l' A
. a6 y' |; u+ y: U7 hПоговори с NPC 1 / Поговори с NPC 2 / Поговори с завершающим NPC / Награда.! j" R. \2 z9 C% L' H
Q10516_UnveiledFafurionTemple, u+ B0 M9 L* p3 r6 V: }& _
9 D( m3 X$ q$ Z. hУбейте X монстров, а также соберите X предметов / Возврат - награда.
3 y0 J1 W3 A1 `* L' [Q10517_FafurionsMinions9 [4 H) [' M5 i0 Y
; p& g# R; h; `+ ] @, \Иди собери X капель монстров / Вернись - убей X монстров / Вернись - награда.# C+ Z) _( v; L
Q10529_IvoryTowersResearchFloatingSeaJournal
" w! F: e4 F& `3 \* _* M$ o
* w9 X2 Y' w6 a- }Иди убей X монстров, а также собери X предметов / Возвращение - иди собери X предметов / Возвращение - награда.8 e9 F) i) o/ u K( W( s. f' }
Q10518_SucceedingThePriestess
7 A& E9 Z U! g( y3 D; J2 o* O0 j8 a; A) u7 w0 M) ~: N5 e$ a, L
Участвуйте в убийстве рейдбосса / Возврат - награда.. q, v1 Q {4 E0 z: [+ t
Q10519_контролирование вашей температуры1 Q8 i! P, K2 i. s) W8 f$ w8 U
7 ?* G% O1 z, z$ \
Поговорите с NPC 1 / Примите участие в убийстве рейдбосса / Возвращение - награда.
# g; B: {- ^. \, _" qQ10533_OrfensAmbition: m" D, N) ~1 G
7 C+ Q, q) j0 A4 h
5 t+ o0 ^( L! u7 N
0 F) H8 n D4 E& KРуководство требует обновления. И, к сожалению, с самыми последними хрониками вы не сможете избежать модификаций клиента. Поэтому, исключительно в образовательных целях, я предлагаю свой опыт по добавлению нового квеста!
* F/ g8 W8 u# h, W* Z ?
8 T1 K* l$ p* J! I YШаг 1: Создайте свой квест с уникальным ID. В этом примере я буду ссылаться на квест как "Q98765_NewQuest".
2 _ b9 ~: D2 c: k0 F: I) v% v% e u) G2 T3 T$ y8 M+ A
Шаг 2: Когда вы успешно создали свой квест и Eclipse не выдает ошибок, добавьте название квеста и импортируйте его в файл "QuestMasterHandler.java".5 ~* o* F1 T3 p: n
9 _0 `2 B7 j, v
Шаг 3: Перейдите в клиент и с помощью редактора клиента добавьте квест в следующие файлы .dat: "questname-ru.dat" и "QuestMarkConditionData.dat".2 ^# w. ]2 [: n6 n) v5 D! x
- k6 a* N' @7 }) h' ^7 d; T
Следующие шаги относятся к любым новым хроникам, которые используют всплывающие окна квестов.& e) k; K5 p+ V2 `
; o2 ~" }7 U5 N: JШаг 4: Найдите в серверных файлах файл с названием "NewQuestData.xml" и добавьте туда свой квест.
2 v5 ]% ?% y7 `; d5 M. m/ k3 _, E
Шаг 5: Найдите в клиенте следующие файлы и добавьте туда свой квест: "NewQuestData-ru.dat", "NewQuestDialog-ru.dat" и "NewQuestNpcPortrait.dat".. S# g- [0 f. `: x9 {
) F/ r& z. Y2 N
Если я что-то забыл, не стесняйтесь исправить меня. Это руководство создано исключительно в образовательных целях.5 Q- ^6 s6 f; I
m1 h1 l4 H, R+ c FШаг 2:
4 b5 d) J# J+ V3 d* Z5 Q
5 A/ X& L0 O' A I: V1 CСледующий шаг заключается в добавлении вашего квеста в QuestMasterHandler.java. Вот общий план:1 v" y) O' W9 u8 v2 _7 |. J
0 c2 }5 w7 B5 `+ E1. Импорт вашего квеста: В начале файла после всех существующих импортов добавьте строку, которая будет импортировать ваш квест. ' W2 o1 H- S' x
Например:
+ r" l! x0 ]! `. [ a' O) I! Q7 [# H# j' p/ v: i
- import quests.<span style="background-color: rgb(255, 255, 255);">Q98765_NewQuest</span>.<span style="background-color: rgb(255, 255, 255);">Q98765_NewQuest</span>;
% \+ R9 Q- p* B2 G0 X7 ~
Скопировать код 1. Регистрация квеста: Найдите метод, который отвечает за регистрацию всех квестов. Обычно это делается в статическом блоке или методе init, где происходит инициализация квестов. В этом блоке добавьте строку, которая будет регистрировать ваш квест:
: `* X% R- R8 b2 r
- _! H# q: c4 A: g6 l$ K" F8 p- /**
6 a- Z. ?+ v" \2 K& b - * @author NosBit% O" F- _8 P |7 Z
- */
p3 M9 Q. d" L+ ?& |1 U0 M1 J - public class QuestMasterHandler
2 z0 l' _1 C9 @9 p( s - {
- A# o1 J/ M$ d* E5 J - private static final Logger LOGGER = Logger.getLogger(QuestMasterHandler.class.getName());
0 E% C4 N" H/ V0 O4 C. Q - , l T' c& Y( ?9 P, J1 h) M' m0 Q
- private static final Class<?>[] QUESTS =6 A# |+ C& d. I2 H
- {
Скопировать код Проверка: Убедитесь, что идентификатор вашего квеста (в данном случае Q98765_NewQuest.class) уникален и не конфликтует с уже существующими квестами.- C7 I; q" b5 N( g1 H
5 u# ?/ I" F" R# H2 {
2 b1 s( t0 _- J4 {+ N2 E8 n6 ?) k
Шаг 3:
9 ^4 L; S# f+ z3 {/ y; J- z' l4 `6 ?5 U
Файл QuestName-ru.dat используется для описания квестов и содержит различные параметры, которые задают характеристики квеста, его цели, награды, ограничения и т.д.
4 ?# d5 B" J4 X8 r9 T- b# ~8 RДавайте разберем все поля на основе примера:! G& w' W, L3 p& R
0 E8 F3 r9 o5 x8 ]+ q3 v- 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
8 |0 }3 E: e9 P9 V6 } ^, r }3 {
Скопировать код Поля данных:- 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 — завершение записи для квеста.' `: a% c6 W# f6 h" J2 G' e
4 a6 o2 v# z( W; s$ |. Z
3 c" W" p3 c$ x: h) u% n- \
Файл клиента QuestMarkConditionData.dat содержит информацию о квестах, связанных с условиями, необходимыми для активации или завершения определённых действий в игре. + x6 V& R3 T0 B4 f1 L( o& l
Пример соодержания8 z6 [6 u+ V9 v. G. Y4 B
Вот описание структуры строки:
2 B! s$ K9 k+ n! j6 H7 t- 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 G- Y% q) c5 d1 Z9 l, C/ C( M
3 b5 L( `' X2 ]; H& e
- 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: Указывает на конец записи о квесте.
" r8 {5 ?8 j, `' D3 k( f1 z; l Эта структура помогает клиенту определять условия, при которых игрок может начать или выполнить квест, а также идентифицировать необходимые взаимодействия с NPC.: m0 P% z# @3 g3 r( F6 \
0 v6 b4 j' _( X$ Z+ P
8 p7 n- n- U8 U! G1 R% L
$ u% e! v. _6 S6 u" s& Y' Q. S5 ^' qСледующие шаги относятся к любым новым хроникам, которые используют всплывающие окна квестов.. |( c- j$ m! K; ^4 ~' F k
# G) o' Z4 l% @+ T9 E1 S
Шаг 4. X. a+ c% Y* M: m: @# Q% D
Для того чтобы добавить свой квест в файл NewQuestData.xml, нужно следовать структуре, аналогичной приведенному вами примеру. Вот как это может выглядеть: I t" u+ ~# V; A+ V+ J
Пример добавления нового квеста:# [! R0 f- _, ^5 f5 ?4 H6 q5 c
- <quest id="20001" type="1" name="Mystery of the Lost Relic" startNpcId="30050" endNpcId="30051">
. X! [/ v( H) E+ z1 x$ ] - <locations>
4 B" f+ e& F! ] - <param name="startLocationId">2001</param>
1 I6 E$ g. B1 D; y: l - <param name="endLocationId">2002</param>: h- q( y" R& H7 S2 q2 f, g
- <param name="questLocationId">2003</param>
J3 B3 ^6 x. ` - </locations>
1 ^ A, y! m4 @& v J - <conditions>8 s( u0 l3 A. x# P2 F A8 G$ M
- <param name="preQuestId">20000</param>; T$ l9 `4 a; R; ?
- <param name="classIds">0;1;2;3;4;5;6</param> <!-- доступ для всех рас -->
# |& |+ z( Z" \# L( w: F+ } - </conditions>
: u7 s( X: T9 Z9 {2 R - <rewards>4 z: u; f( p z3 [0 Y
- <param name="rewardLevel">50</param>( u( z- x. }0 G+ p
- <param name="rewardSp">5000</param>
% J" h- G' R% E/ o) y - <param name="rewardItemId">57</param> <!-- Adena -->
; n9 `1 C7 Y9 Y* W7 S5 F# b - <param name="rewardItemCount">10000</param>
/ w% |7 B& k2 U7 T - </rewards>) a$ W$ h L$ G+ s- Q& D) T
- <goals>) a0 q1 @; S* U8 ], t/ [) r
- <param name="goalCount">10</param>
- V0 w$ a6 O& _ P' n9 s/ X - <param name="goalString">Defeat monsters in the Ancient Forest</param>8 d' z( F B/ O2 V
- <param name="goalItemId">92000</param> <!-- некий квестовый предмет -->+ U6 N6 s& H$ u' V8 \
- <param name="goalItemCount">1</param>
- B. c. V/ H$ U. r+ d: q - </goals>' _1 ]* J, N0 m- O2 c7 N* Y8 V0 m
- </quest>, @& h# b3 K" T
Скопировать код Описание структуры:( f# l' ]: x& h6 G
- quest: Основной элемент квеста, содержащий атрибуты:8 _; \2 l) f4 w. G; |: n
- id: ID квеста, уникальный для каждого квеста.
- type: Тип квеста (1 – обычный квест).
- name: Название квеста.
- startNpcId: ID NPC, с которого начинается квест.
- endNpcId: ID NPC, у которого квест заканчивается.; c4 ]% j; T, m" Y/ a! i) Q. I! a
- locations: Указывает места начала, окончания и квестовой активности.: V) |3 o& C( p$ X9 ^! _' `+ M3 k
- startLocationId: ID места, где начинается квест.
- endLocationId: ID места, где квест заканчивается.
- questLocationId: ID квестовой зоны.
: e" |6 s% i3 O1 H2 I _6 T
- conditions: Условия для начала квеста.
! s+ ^) y9 v9 K2 ]* F: S- \2 m* a- preQuestId: ID предварительного квеста (если есть).
- classIds: ID классов или рас, которым доступен квест.8 y/ H6 i& j' x# D& c3 G6 y" a
- rewards: Награды за выполнение квеста.
0 t6 K" Y+ a* L) I% J8 @6 t- rewardLevel: Минимальный уровень для получения награды.
- rewardSp: Количество опыта (SP).
- rewardItemId: ID предмета (например, Adena).
- rewardItemCount: Количество предметов.& L' |3 U9 @. a) [' F, C
- goals: Цели квеста.
6 P& B3 H2 I2 U/ l3 c6 Y/ [- goalCount: Количество монстров, которых нужно убить или предметов, которые нужно собрать.
- goalString: Описание цели.
- goalItemId: ID квестового предмета (если требуется).
- goalItemCount: Количество квестовых предметов для завершения цели., `+ {" u9 C& C9 H: a2 F
После того как вы добавите квест в файл NewQuestData.xml, нужно перезапустить сервер, чтобы изменения вступили в силу.
' F) l. I2 ] _4 O1 u9 T$ a/ q/ A. E* _0 X* k% A
Шаг 5
+ a9 |+ O: N0 g+ b; BФайл NewQuestDialog-ru.dat используется для хранения диалогов, связанных с квестом. Он определяет тексты, которые отображаются в окнах диалогов с NPC во время выполнения квеста. Вот разбор ключевых элементов строки и структура файла:3 u" w v/ _& t- J5 ~
Структура данных- NewQuestDialog_begin — начало записи квеста в файле диалогов.
- QuestId=10001 — идентификатор квеста (должен соответствовать ID, который ты используешь в других файлах).
- Text0=... — первый диалог, который обычно отображается при старте квеста.
- Text1=... — дополнительный текст, который отображается на различных этапах квеста.
- Text2=... — текст, который отображается после выполнения определенных действий (например, после выполнения части задания).
- Text3=... — дополнительный диалог, например, при встрече с NPC на следующем этапе квеста.
- Text4=... — финальный текст или инструкции по следующему шагу для игрока.
- NewQuestDialog_end — завершение записи для этого квеста.9 {7 L3 R: M3 V' |# f$ ~$ ]
) u% F9 A3 e) y% [6 z7 ~; uПример записи для нового квеста (ID 98765) Если ты хочешь создать диалоги для нового квеста с ID 98765, твой файл может выглядеть так:
5 x& T+ ]6 P, ]/ y- NewQuestDialog_begin QuestId=98765 Text0=[Вы готовы принять новый вызов и доказать свою силу?] Text1=[Как вы себя чувствуете? Вы выглядите уверенно. Это хороший знак, но не расслабляйтесь — впереди много испытаний. Примите это задание, если готовы.] Text2=[Пора приступить к тренировкам. Идите за мной в тренировочную зону.] Text3=[Следуйте моим указаниям, и вы раскроете весь свой потенциал.] Text4=[Поговорите с Дарти. Кликните на него и начните диалог.] NewQuestDialog_end7 A* }3 v9 Y" `9 ?$ ?# [
Скопировать код Разъяснение полей:: c' Z s6 x, z0 A* Z
- QuestId=98765 — уникальный идентификатор нового квеста.
- Text0 — вводный текст квеста. Отображается при первом контакте с NPC.
- Text1 — дополнительный диалог, который дается игроку для создания контекста.
- Text2 — текст, который отображается на следующем этапе квеста, например, после выполнения части задания.
- Text3 — описание следующего шага или инструкции для игрока.
- Text4 — финальный диалог или текст с указанием цели (встреча с другим NPC).; `4 K% }( C/ b) Q; ]
4 i, S e1 @& D4 L
/ S% g1 a0 X' x' rЧто можно изменить:- Тексты диалогов (Text0, Text1 и так далее) можно адаптировать под конкретные ситуации в квесте.
- Количество текстов можно варьировать в зависимости от сложности квеста.2 r8 a! `: ~$ Z+ ]9 W$ u
' J% x( B, V- e5 H5 m. w/ |
Файл NewQuestData-ru.dat содержит параметры, связанные с квестом в игре Lineage II, и описывает условия, NPC, цели и награды. Рассмотрим параметры этого файла:: E% ^1 O2 g2 ]% m( J7 c( Y
) `5 X h3 K0 L ^- A- newquestdata_begin / newquestdata_end: Эти параметры обозначают начало и конец блока данных квеста.
- quest_id=10001: Уникальный идентификатор квеста (ID). В данном случае это квест с ID 10001.
- quest_type=1: Тип квеста.. W( {7 `! ^* h# n9 J! x- [& H
- 1 обычно означает стандартный квест.* w. R1 Q7 x" C; F
- quest_name=[Новый путь]: Название квеста. Здесь указано "[Новый путь]" — это имя, отображаемое в игре.
- quest_level={0;0}: Уровневые ограничения квеста.. ~/ X+ Z' S2 ~( H; P
- Первое значение указывает минимальный уровень, второе — максимальный уровень.
- {0;0} означает, что нет ограничений по уровню.6 a0 ^6 ]4 a9 W/ T9 M
- pre_quest={}: Предварительный квест, который нужно выполнить перед началом этого квеста.% V; [) D+ l: E7 [
- В данном случае он пустой {}, что означает, что нет предварительных требований.* P$ r" i e' w; X4 t L5 q
- class={0;10;18;25;31;38;44;49;53;123;124}: Классы или расы, которые могут брать квест.3 z7 Y3 z: \8 N8 t) t9 w, h
- Номера классов указывают на те классы, которым доступен этот квест. В данном примере классы, такие как 0 (человеки), 10 (рыцари) и другие, имеют доступ.
! v4 {/ ~, I/ m- f
- quest_item=82948: ID квестового предмета, необходимого для выполнения цели или этапа квеста.
, [% [% t/ V3 }- В данном случае это предмет с ID 82948.3 F9 t' _. m/ U6 S
- start_item=0: Предмет, который выдается при начале квеста.
1 T0 l" A& ] _3 s- Значение 0 означает, что предмет не выдается.( b/ X1 v& l5 ?9 B
- start_npc=34505: ID NPC, у которого начинается квест.
- start_npc_loc=1002: Локация NPC, у которого начинается квест.6 y' e1 V/ Q9 U: ~% w
- Это ID локации, где находится стартовый NPC.
3 q: e \: V9 j2 O- A( `
- end_npc=34696: ID NPC, у которого завершается квест.
- end_npc_loc=1003: Локация NPC, у которого завершается квест.
* G7 K# G" }$ I! `1 q9 D. n6 Q- Это ID локации, где находится конечный NPC.+ J [* l7 c3 B' n# s/ [3 f5 s
- quest_loc=1003: Основная локация выполнения квеста.2 g6 i+ p) S: ^4 O! s- b
- Это ID зоны, где нужно выполнять основные задачи.' }5 d' I) k' \; N
- goal_string=[Дарти (Зона Тренировки)]: Описание цели квеста.2 q1 n& J* u" t& X$ j1 G4 ?
- В данном случае цель связана с персонажем по имени "Дарти" в Зоне Тренировки.& Y2 g& Z# E; z
- goal_num=1: Количество действий, необходимых для выполнения цели (например, убийств монстров или сбора предметов).1 }* P0 d+ y' a" b- N) z% R
- В данном случае нужно выполнить одно действие (1).
' y# x: |; m, I! H0 e Q
- reward_level=65535: Уровень, при котором можно получить награду.
6 ?2 F6 K/ a9 b# m, s- В данном случае это максимальное значение, указывающее, что награда доступна всегда.
* Z" W+ }; Z8 W; c8 w2 R3 g- a% j' i
- reward_exp=0: Опыт (EXP), выдаваемый в качестве награды.
+ m* ^: j5 ^: S4 @- В данном случае опыт не выдается.2 T6 B: G" U3 L4 O7 U& O4 h/ w8 n( O6 o
- reward_sp=0: Количество SP (Skill Points), выдаваемых в качестве награды.
( a# c% J/ \. w% s, t" X. ^- Здесь тоже 0, значит, SP не выдаются.
) z" @& [: ^$ s3 Z
- reward_item={}: Наградные предметы./ _' p' I. g: |/ V4 D
- В данном случае наградные предметы отсутствуют.9 j9 o8 T; y% E5 K
Этот файл определяет основной функционал и настройки для конкретного квеста в игре.- }1 B6 G7 c, t& X' V
8 V; K1 S" l' X. k7 I" d* r4 T" E7 J
5 M% i. ]& d! V$ R* G" ]' L4 w C- L1 [6 r" n; G" j
5 y0 @8 R& x) _9 q8 }) \/ t% i
6 H" }; y. b$ p- X
+ {) _9 u& Q% z, f
5 v+ P6 U3 y0 w: I& o& n7 q, B- `+ a
. {! e. A! ]9 i$ `
, R/ |' B) Z2 Y+ L2 z2 B2 x |