Зарегистрируйтесь сейчас чтобы найти еще больше друзей, и получить полноценный доступ ко всем функциям сайта!
Для просмотра Вам необходимо авторизоваться Если Вы еще не зарегистрированы, перейдите по ссылке:Зарегистрироваться
x
Сборка: L2l_Monius ) Y5 A. V: R% s6 ^* s& Z# A. E
Следующие квесты можно использовать в качестве шаблонов для создания практически любого простого квеста go kill или go talk.& V* @& D4 f3 @. Z8 S6 o/ {+ i
) F" j' j& P3 W4 U9 B( K6 [! e$ {$ {% g
Иди и убей X монстров / Возвращение - награда.
! `/ Q: r; u5 b0 d8 F9 y% @2 j! ?3 JQ00529_RegularBarrierMaintenance0 ~4 B h2 x1 ?
6 k4 e3 P4 `1 Z% w* `
Получите квест от любого из двух разных NPC / Убейте X монстров / Вернитесь с наградой.5 X9 v# [4 I! r/ y; i$ l
Q00683_AdventOfKrofinSubspecies4 M" F5 r o$ } \! B9 W' R
1 d, G; |9 s3 Q0 ?; x
Поговори с NPC 1 / Поговори с NPC 2 / Поговори с завершающим NPC / Награда.( _# n% V4 ]5 ^) ^. }" ]5 G) J
Q10516_UnveiledFafurionTemple% ?- h, K# w" a T7 Q
& z. o/ k2 g" b7 TУбейте X монстров, а также соберите X предметов / Возврат - награда.' h: \& V# m P% \) q3 z( o
Q10517_FafurionsMinions r6 d6 d X+ W3 g. W' l. w
. {; m% `/ V( d& [% {Иди собери X капель монстров / Вернись - убей X монстров / Вернись - награда.2 a4 w" i: G/ K5 n5 O! @! r+ k1 I
Q10529_IvoryTowersResearchFloatingSeaJournal: Y% ]1 {1 c: i$ x }* p, m
* O. g4 U2 f& w: x; a1 B
Иди убей X монстров, а также собери X предметов / Возвращение - иди собери X предметов / Возвращение - награда." X: m5 k2 H" d$ F5 s. a
Q10518_SucceedingThePriestess% a! E' G" z- C* C
$ W e# @% p; r# |5 s! q
Участвуйте в убийстве рейдбосса / Возврат - награда.
+ w7 N" d# k i4 c$ h5 @: XQ10519_контролирование вашей температуры$ }9 ~5 w6 l3 |: h. _" t2 `
/ U4 b3 i) h2 w oПоговорите с NPC 1 / Примите участие в убийстве рейдбосса / Возвращение - награда.2 p* M6 L4 v. \, L5 ~2 |' e
Q10533_OrfensAmbition
1 ~8 f. o+ p* W; w9 z( Z/ x [: x( W, }5 p: d/ t' I( i
% l0 j" {6 F6 ^8 v1 u
, u; x4 D' {8 jРуководство требует обновления. И, к сожалению, с самыми последними хрониками вы не сможете избежать модификаций клиента. Поэтому, исключительно в образовательных целях, я предлагаю свой опыт по добавлению нового квеста!
* p2 A' a: k. M# V% q; T1 \8 R1 R# \2 ~ O1 F4 Z3 X* g7 L4 I
Шаг 1: Создайте свой квест с уникальным ID. В этом примере я буду ссылаться на квест как "Q98765_NewQuest".0 a+ |* n& H% i: S: r
( l8 ?: R! y+ s1 L5 y1 qШаг 2: Когда вы успешно создали свой квест и Eclipse не выдает ошибок, добавьте название квеста и импортируйте его в файл "QuestMasterHandler.java".
: u( D& }" t: U+ H- B* S: i8 V5 X9 Z' q; |0 X5 B9 T8 w
Шаг 3: Перейдите в клиент и с помощью редактора клиента добавьте квест в следующие файлы .dat: "questname-ru.dat" и "QuestMarkConditionData.dat".5 \9 R1 Z: U( {/ n2 F+ u" J* I
9 x3 f& _; h, U# I' e: iСледующие шаги относятся к любым новым хроникам, которые используют всплывающие окна квестов.. ?& g6 o8 T& F; a. x9 L
+ J1 M9 }% ]9 \) I' n5 A/ cШаг 4: Найдите в серверных файлах файл с названием "NewQuestData.xml" и добавьте туда свой квест.
0 q2 t# K! ]/ m. s& v2 a0 q
1 _4 n" l8 C7 g) W+ c6 s/ cШаг 5: Найдите в клиенте следующие файлы и добавьте туда свой квест: "NewQuestData-ru.dat", "NewQuestDialog-ru.dat" и "NewQuestNpcPortrait.dat".
3 b U; C* g% E
, E% @/ ^6 i/ UЕсли я что-то забыл, не стесняйтесь исправить меня. Это руководство создано исключительно в образовательных целях.( T) n e9 g2 N/ b8 n+ s( g
`9 f$ b, t+ z- P, E k/ {( N
Шаг 2:$ Q8 q! z3 t1 L1 Q/ r
, A/ c# h' A& J- F0 Q
Следующий шаг заключается в добавлении вашего квеста в QuestMasterHandler.java. Вот общий план:
7 f* H" ^! Z, Y* r. p: H+ {+ w: ]( b9 r u
1. Импорт вашего квеста: В начале файла после всех существующих импортов добавьте строку, которая будет импортировать ваш квест.
4 W* L( K6 X, `8 C; F5 vНапример:! F9 `9 F, B$ \" ?" h$ t
- d3 R7 P4 G; w
- import quests.<span style="background-color: rgb(255, 255, 255);">Q98765_NewQuest</span>.<span style="background-color: rgb(255, 255, 255);">Q98765_NewQuest</span>;( ]5 K4 L' ] b0 T# o0 i$ T
Скопировать код 1. Регистрация квеста: Найдите метод, который отвечает за регистрацию всех квестов. Обычно это делается в статическом блоке или методе init, где происходит инициализация квестов. В этом блоке добавьте строку, которая будет регистрировать ваш квест:
, M; U6 b. u! w1 `9 J0 U# C( }9 ` L" Z- Q0 V) {
- /**
3 K C1 q- K, k& P) Z" ? - * @author NosBit
1 s0 z3 J9 [7 }9 `% } - */
0 w! O9 l! m; [/ B$ F c% G; ? - public class QuestMasterHandler# G6 d. u3 @9 `0 b' |
- {* f5 [4 U) O' {. R4 h3 @
- private static final Logger LOGGER = Logger.getLogger(QuestMasterHandler.class.getName());9 D! ~5 J. n+ u- Z! y
-
0 Z* S9 \0 R, K A2 a' p$ J* H - private static final Class<?>[] QUESTS =& Q* K3 i# C' M7 `$ }+ \
- {
Скопировать код Проверка: Убедитесь, что идентификатор вашего квеста (в данном случае Q98765_NewQuest.class) уникален и не конфликтует с уже существующими квестами./ x5 f8 q8 C. a
7 m8 A: k$ _) I' z; n& S
) E1 ?) L, `, J
Шаг 3:; D3 _2 `) g: j+ M* c1 P, x
& |5 ^2 ?& Y- g) m, j% y
Файл QuestName-ru.dat используется для описания квестов и содержит различные параметры, которые задают характеристики квеста, его цели, награды, ограничения и т.д.
( }. K, M, B+ L' {. ` K( zДавайте разберем все поля на основе примера:
2 D! Q5 o' j2 s# O7 h- p* a
" J% q7 @4 l3 y+ Z' {; {" K- 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
+ `1 e' x* M6 z" m2 M$ x! I
Скопировать код Поля данных:- 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 — завершение записи для квеста.
% ]. i( M4 ?1 @) h; Z, I0 q
8 i/ k8 c9 k3 K0 a- @6 v. X) t. @/ ~2 [$ y7 M
Файл клиента QuestMarkConditionData.dat содержит информацию о квестах, связанных с условиями, необходимыми для активации или завершения определённых действий в игре.
- ^0 P. W2 s& a1 r/ {6 Y; w3 ^Пример соодержания
1 c7 I6 O1 f( \5 oВот описание структуры строки:
% c* w+ J0 P( q# n: Z- 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
Скопировать код Давайте разберем все поля на основе примера:6 V$ `; L+ [% t+ [/ N9 p' R& W
2 D7 H; b3 p7 ?) S6 g8 ]' ^- 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: Указывает на конец записи о квесте.
7 ^( L& {9 k" T" s) E# }, v Эта структура помогает клиенту определять условия, при которых игрок может начать или выполнить квест, а также идентифицировать необходимые взаимодействия с NPC.
4 O r* s @ f. a0 p$ N# _0 J( c* V2 B: D6 u/ R
; f9 H6 K# d: ~/ c- D
3 d2 {" _0 y2 s4 |) l) Q* cСледующие шаги относятся к любым новым хроникам, которые используют всплывающие окна квестов.
8 E: R- S$ p0 @! E8 h3 O$ X1 b$ D1 g( H; v' o/ @
Шаг 4
' ?& N5 d/ ~8 X6 nДля того чтобы добавить свой квест в файл NewQuestData.xml, нужно следовать структуре, аналогичной приведенному вами примеру. Вот как это может выглядеть:+ {0 i% c: F/ l) w, E j
Пример добавления нового квеста:
0 X1 r- Y( x4 f* v0 n- <quest id="20001" type="1" name="Mystery of the Lost Relic" startNpcId="30050" endNpcId="30051">. I0 x$ [1 ~2 x( n, a
- <locations>' @5 q$ ]: U- H8 j5 ^3 P/ ]( i
- <param name="startLocationId">2001</param>
! W/ O) F' ]! a4 n - <param name="endLocationId">2002</param>
* u0 X" J+ }4 L* B% o - <param name="questLocationId">2003</param>3 J6 x3 \' n6 ?6 w" g2 t
- </locations>) Y5 i1 N) t [4 J+ f
- <conditions>
# ~1 \# I6 J; V w - <param name="preQuestId">20000</param>7 n7 X; ?4 I: ]8 R
- <param name="classIds">0;1;2;3;4;5;6</param> <!-- доступ для всех рас -->1 E* a- u0 r2 _& G5 ]8 F
- </conditions>" i7 \' U$ k d5 z0 `8 \
- <rewards>
* h1 r; b/ l- m2 V - <param name="rewardLevel">50</param>
! h9 v7 X8 R8 q5 ?' a& v2 H - <param name="rewardSp">5000</param>
1 }* s9 i. S5 O1 { - <param name="rewardItemId">57</param> <!-- Adena -->
- B: Q: L T9 p4 o; P - <param name="rewardItemCount">10000</param>& L) M5 K* s, J
- </rewards>
V7 t0 z! I7 ^% T - <goals>
3 p" d. q/ n, k4 g - <param name="goalCount">10</param>
4 m+ G" R V- k# R - <param name="goalString">Defeat monsters in the Ancient Forest</param>
4 d$ y! q \: E1 M9 b' ?" L+ z5 r9 I - <param name="goalItemId">92000</param> <!-- некий квестовый предмет -->
7 P5 C. V5 S6 q* } - <param name="goalItemCount">1</param>
2 A) ^5 Z5 B7 x' t7 T0 h V- r+ m - </goals>2 N2 f! l) F0 Q# \" l( B& N
- </quest>2 |3 k; s' `- l# p
Скопировать код Описание структуры:
+ ]9 X* x. j) S& T- quest: Основной элемент квеста, содержащий атрибуты:7 F0 e4 k7 Y4 }& X. ^
- id: ID квеста, уникальный для каждого квеста.
- type: Тип квеста (1 – обычный квест).
- name: Название квеста.
- startNpcId: ID NPC, с которого начинается квест.
- endNpcId: ID NPC, у которого квест заканчивается.
1 u; C6 g4 {4 h# f
- locations: Указывает места начала, окончания и квестовой активности.8 P/ p/ Y" Z9 W5 y' U. s# u0 h
- startLocationId: ID места, где начинается квест.
- endLocationId: ID места, где квест заканчивается.
- questLocationId: ID квестовой зоны.) q$ F& ]8 K. T3 p. K4 |4 `
- conditions: Условия для начала квеста.
* |) {+ E. ^( V Z2 S1 O- preQuestId: ID предварительного квеста (если есть).
- classIds: ID классов или рас, которым доступен квест.. H: m9 @$ S+ d- b
- rewards: Награды за выполнение квеста.
! I" f% w ^6 \% W, s- rewardLevel: Минимальный уровень для получения награды.
- rewardSp: Количество опыта (SP).
- rewardItemId: ID предмета (например, Adena).
- rewardItemCount: Количество предметов.
7 q! s* K8 y+ I- u5 W0 I5 i1 U
- goals: Цели квеста.
' W/ r8 g4 h( D" o' Y5 }- goalCount: Количество монстров, которых нужно убить или предметов, которые нужно собрать.
- goalString: Описание цели.
- goalItemId: ID квестового предмета (если требуется).
- goalItemCount: Количество квестовых предметов для завершения цели.0 }' z" K8 o8 v6 {1 ?4 s: o
После того как вы добавите квест в файл NewQuestData.xml, нужно перезапустить сервер, чтобы изменения вступили в силу.; g0 z- \; |5 c: v+ E
5 |% X8 n' e; Y/ ?2 d
Шаг 5! B7 C0 Q* `- y# f! U) s5 ~: G
Файл NewQuestDialog-ru.dat используется для хранения диалогов, связанных с квестом. Он определяет тексты, которые отображаются в окнах диалогов с NPC во время выполнения квеста. Вот разбор ключевых элементов строки и структура файла:! f+ M; N; { k0 b, }, m
Структура данных- NewQuestDialog_begin — начало записи квеста в файле диалогов.
- QuestId=10001 — идентификатор квеста (должен соответствовать ID, который ты используешь в других файлах).
- Text0=... — первый диалог, который обычно отображается при старте квеста.
- Text1=... — дополнительный текст, который отображается на различных этапах квеста.
- Text2=... — текст, который отображается после выполнения определенных действий (например, после выполнения части задания).
- Text3=... — дополнительный диалог, например, при встрече с NPC на следующем этапе квеста.
- Text4=... — финальный текст или инструкции по следующему шагу для игрока.
- NewQuestDialog_end — завершение записи для этого квеста.& W. E; w& Y+ L8 q: W
# h3 D: r/ P( ^/ }
Пример записи для нового квеста (ID 98765) Если ты хочешь создать диалоги для нового квеста с ID 98765, твой файл может выглядеть так:
6 X# Q* \- f' \$ F- NewQuestDialog_begin QuestId=98765 Text0=[Вы готовы принять новый вызов и доказать свою силу?] Text1=[Как вы себя чувствуете? Вы выглядите уверенно. Это хороший знак, но не расслабляйтесь — впереди много испытаний. Примите это задание, если готовы.] Text2=[Пора приступить к тренировкам. Идите за мной в тренировочную зону.] Text3=[Следуйте моим указаниям, и вы раскроете весь свой потенциал.] Text4=[Поговорите с Дарти. Кликните на него и начните диалог.] NewQuestDialog_end
5 y& l- k- k6 `) ?, G
Скопировать код Разъяснение полей:. \& D# l5 f) W5 S% x
- QuestId=98765 — уникальный идентификатор нового квеста.
- Text0 — вводный текст квеста. Отображается при первом контакте с NPC.
- Text1 — дополнительный диалог, который дается игроку для создания контекста.
- Text2 — текст, который отображается на следующем этапе квеста, например, после выполнения части задания.
- Text3 — описание следующего шага или инструкции для игрока.
- Text4 — финальный диалог или текст с указанием цели (встреча с другим NPC).0 U+ Y- [" S/ ?1 [
. f4 r. J* o( m$ O$ o
( e& y! X& L7 e" i1 Y: k4 uЧто можно изменить:- Тексты диалогов (Text0, Text1 и так далее) можно адаптировать под конкретные ситуации в квесте.
- Количество текстов можно варьировать в зависимости от сложности квеста.
, V; G2 s. c6 ~7 k " f0 N1 ?; ~: R/ p
Файл NewQuestData-ru.dat содержит параметры, связанные с квестом в игре Lineage II, и описывает условия, NPC, цели и награды. Рассмотрим параметры этого файла:+ {2 b2 t9 m2 A
- Z9 L9 R2 h: p
- newquestdata_begin / newquestdata_end: Эти параметры обозначают начало и конец блока данных квеста.
- quest_id=10001: Уникальный идентификатор квеста (ID). В данном случае это квест с ID 10001.
- quest_type=1: Тип квеста.
! Q- q, r; f3 K. N' Z- 1 обычно означает стандартный квест.* f' B( Z: j1 N5 Q- G* U
- quest_name=[Новый путь]: Название квеста. Здесь указано "[Новый путь]" — это имя, отображаемое в игре.
- quest_level={0;0}: Уровневые ограничения квеста.8 k9 g8 w' A+ p0 [8 u( ^
- Первое значение указывает минимальный уровень, второе — максимальный уровень.
- {0;0} означает, что нет ограничений по уровню.% ]" W# y7 F x! I" p
- pre_quest={}: Предварительный квест, который нужно выполнить перед началом этого квеста." C1 c `2 C; `) f
- В данном случае он пустой {}, что означает, что нет предварительных требований.
2 T( R# I Q) n6 L6 m& F
- class={0;10;18;25;31;38;44;49;53;123;124}: Классы или расы, которые могут брать квест.
+ I$ l7 _* u& J& f. l- Номера классов указывают на те классы, которым доступен этот квест. В данном примере классы, такие как 0 (человеки), 10 (рыцари) и другие, имеют доступ.
# E$ A% ?( A1 M% {( G
- quest_item=82948: ID квестового предмета, необходимого для выполнения цели или этапа квеста.
1 {9 `7 G5 X1 e) E4 }' A- В данном случае это предмет с ID 82948.
5 o+ x+ M- i1 l
- start_item=0: Предмет, который выдается при начале квеста.
% c0 \) j7 h& w o/ D+ Y4 k- Значение 0 означает, что предмет не выдается.
, _. S" A! b3 v7 {( u
- start_npc=34505: ID NPC, у которого начинается квест.
- start_npc_loc=1002: Локация NPC, у которого начинается квест.
- c5 ] o3 W7 h' U$ A- Это ID локации, где находится стартовый NPC.
2 a, ~9 n5 G; v9 I% \$ Y8 J0 F3 S( N
- end_npc=34696: ID NPC, у которого завершается квест.
- end_npc_loc=1003: Локация NPC, у которого завершается квест.5 I' N- x7 J- F# }$ O! [: s
- Это ID локации, где находится конечный NPC., N3 I6 l& _" ^( B6 H/ T9 U+ B
- quest_loc=1003: Основная локация выполнения квеста.
) v- h! J0 d @% M" }( Q4 R- Это ID зоны, где нужно выполнять основные задачи." q+ a2 ?5 S' Z6 ?& C! M
- goal_string=[Дарти (Зона Тренировки)]: Описание цели квеста.
, Z2 v% b& R8 O( Y- В данном случае цель связана с персонажем по имени "Дарти" в Зоне Тренировки.
* y h5 t: p4 l$ D G
- goal_num=1: Количество действий, необходимых для выполнения цели (например, убийств монстров или сбора предметов).
, ]; N: a8 `7 \) ]5 }, b- В данном случае нужно выполнить одно действие (1).
$ V$ x# Z) A2 I% z# O; w& b
- reward_level=65535: Уровень, при котором можно получить награду.
" Y5 f7 U* K/ h( {0 k* [) m7 K n- В данном случае это максимальное значение, указывающее, что награда доступна всегда./ {/ w2 e) ]5 t: U' q5 R
- reward_exp=0: Опыт (EXP), выдаваемый в качестве награды.
8 x. U3 a" D/ K- В данном случае опыт не выдается.
1 Y8 ~2 m5 _9 S* \
- reward_sp=0: Количество SP (Skill Points), выдаваемых в качестве награды.
& G9 r. W# u* b( q$ N+ b# x- Здесь тоже 0, значит, SP не выдаются.
" g! t" r+ d. y. n$ X) E
- reward_item={}: Наградные предметы.
/ K+ E1 A" Q) \3 f$ T- В данном случае наградные предметы отсутствуют.
7 {. T% w) \- D7 T) w; _
Этот файл определяет основной функционал и настройки для конкретного квеста в игре." b% z2 z" y' J7 B/ f/ B
; I( }- K, U- d9 {) b `3 \) D7 D$ k
0 x \5 y ~( Z: U0 r$ Z$ _: Y; G8 d# Y j: n( Z/ t
1 `. k/ J6 b/ c: K+ K6 l
0 X3 H H9 f& Q! F
8 q* k" u4 N6 ?6 T1 E
) N+ S) W8 G" {0 _ Y) @- Q- T) c8 m- h. _
7 t3 x B g2 B# r' a' M5 U
|