Зарегистрируйтесь сейчас чтобы найти еще больше друзей, и получить полноценный доступ ко всем функциям сайта!
Для просмотра Вам необходимо авторизоваться Если Вы еще не зарегистрированы, перейдите по ссылке:Зарегистрироваться
x
Сборка: L2l_Monius ; u9 }! u3 ^/ m7 s* Y2 E2 Q
Следующие квесты можно использовать в качестве шаблонов для создания практически любого простого квеста go kill или go talk.% u0 ?8 F+ x- o
& u: O5 c6 p5 |& {! M# y
; P$ i) T: |6 k$ O4 K$ q& f" l
Иди и убей X монстров / Возвращение - награда.. ^+ s0 @( J5 U8 [4 ]4 z8 l/ P
Q00529_RegularBarrierMaintenance
% H% M! k2 Y3 `1 E. E1 o4 t: h5 [' @7 w; ?* C
Получите квест от любого из двух разных NPC / Убейте X монстров / Вернитесь с наградой.
) Q4 v4 _' V( C [- s+ {Q00683_AdventOfKrofinSubspecies0 N! c* _, J4 X. f/ @/ g
z2 H n$ i( W) K2 n, H' {- x: |
Поговори с NPC 1 / Поговори с NPC 2 / Поговори с завершающим NPC / Награда.2 m2 B$ F6 [) x: u
Q10516_UnveiledFafurionTemple
+ Y4 v8 i+ k( J K3 p; h
& g; K+ [, b" J1 X( x! pУбейте X монстров, а также соберите X предметов / Возврат - награда.
0 v. w# I7 A4 ]* x; F+ wQ10517_FafurionsMinions
, w: M- c% o3 T$ O, b9 g8 Z- V/ d9 Q7 _/ q* Y
Иди собери X капель монстров / Вернись - убей X монстров / Вернись - награда.
0 |0 W3 x3 e; D' @5 e, FQ10529_IvoryTowersResearchFloatingSeaJournal
9 e3 i6 M9 D7 J. k
0 Y9 w* G/ Q3 d, Y; r& _+ e2 ^Иди убей X монстров, а также собери X предметов / Возвращение - иди собери X предметов / Возвращение - награда.. U% d+ H9 x- ]. v
Q10518_SucceedingThePriestess6 C H6 D. K6 x! y
, C: k T9 R, u. O7 @, W
Участвуйте в убийстве рейдбосса / Возврат - награда.7 ?; h0 T' ], Y' f3 Y& G
Q10519_контролирование вашей температуры
f5 y% m6 |# M& w! |8 ^4 e5 `- Y" {' W5 v
Поговорите с NPC 1 / Примите участие в убийстве рейдбосса / Возвращение - награда.
) [2 }( W& q) R( H1 {$ iQ10533_OrfensAmbition# V* g' e6 j9 L' }
% S% T; Z8 |' i' |9 t0 d
# n0 O) N" c& f9 h/ d
- D: M! J! ?+ e* o8 r
Руководство требует обновления. И, к сожалению, с самыми последними хрониками вы не сможете избежать модификаций клиента. Поэтому, исключительно в образовательных целях, я предлагаю свой опыт по добавлению нового квеста!# ^" B+ e* |" D$ o
) n/ S4 C3 g% G8 G1 o k! o! W8 VШаг 1: Создайте свой квест с уникальным ID. В этом примере я буду ссылаться на квест как "Q98765_NewQuest".
' j6 E7 v! E# T& U1 Q. b7 D* T! Z! m( H" O9 n- e0 ]! w5 v3 O# Z4 ]
Шаг 2: Когда вы успешно создали свой квест и Eclipse не выдает ошибок, добавьте название квеста и импортируйте его в файл "QuestMasterHandler.java".
4 X$ g% s3 V; d' X6 A, [# Y
, H2 F& K8 [, M6 @, T7 TШаг 3: Перейдите в клиент и с помощью редактора клиента добавьте квест в следующие файлы .dat: "questname-ru.dat" и "QuestMarkConditionData.dat"." n& N; n2 L1 S* ]
- h( V( t: e- m# m# QСледующие шаги относятся к любым новым хроникам, которые используют всплывающие окна квестов.
$ X% j* @/ _3 q' k) k8 r
' v# d- X {9 T- y3 QШаг 4: Найдите в серверных файлах файл с названием "NewQuestData.xml" и добавьте туда свой квест.% g0 ]% H- \" l }, H" |
$ E5 m' \/ Y ]6 U" b, ZШаг 5: Найдите в клиенте следующие файлы и добавьте туда свой квест: "NewQuestData-ru.dat", "NewQuestDialog-ru.dat" и "NewQuestNpcPortrait.dat".4 _' C/ {0 e5 G H) W& R! [
) e/ n- d* [* ~/ QЕсли я что-то забыл, не стесняйтесь исправить меня. Это руководство создано исключительно в образовательных целях.$ O5 t( O5 y0 I. a) Y5 o2 k: F+ _; R
* U L8 }0 Q. J; E
Шаг 2:
/ D. H+ F- V/ {5 z) w+ q' m3 E: v$ C
Следующий шаг заключается в добавлении вашего квеста в QuestMasterHandler.java. Вот общий план:
% [8 U z& l) _( v' n* Q1 H
3 m: ]$ l H/ O v1 H* h1. Импорт вашего квеста: В начале файла после всех существующих импортов добавьте строку, которая будет импортировать ваш квест.
) j: l9 z* B$ c9 r0 j' ~Например:
& {- r K, ]7 N5 H* \; I" K* e G" Y6 K
- import quests.<span style="background-color: rgb(255, 255, 255);">Q98765_NewQuest</span>.<span style="background-color: rgb(255, 255, 255);">Q98765_NewQuest</span>;
2 c3 E7 I B2 d2 w# s& F+ L
Скопировать код 1. Регистрация квеста: Найдите метод, который отвечает за регистрацию всех квестов. Обычно это делается в статическом блоке или методе init, где происходит инициализация квестов. В этом блоке добавьте строку, которая будет регистрировать ваш квест:+ p( N# x3 p( n
. T4 u$ ~% [9 \/ W* F% [- /**( ~4 k0 r7 F; E' S% {( u/ `. g3 E( ?
- * @author NosBit
) ]* u+ S2 h, Y" `! i - */
- m- {+ w5 a) D$ |; }- ~) r - public class QuestMasterHandler7 n( j. }5 H% m4 R4 ~
- {
* y, y( A0 m5 a N; B% o& F2 L S - private static final Logger LOGGER = Logger.getLogger(QuestMasterHandler.class.getName());( I$ X0 @2 m' B D/ M& c7 x: H
- & q3 C& T4 o6 }
- private static final Class<?>[] QUESTS =
3 f1 E& P3 `* Q+ x- i - {
Скопировать код Проверка: Убедитесь, что идентификатор вашего квеста (в данном случае Q98765_NewQuest.class) уникален и не конфликтует с уже существующими квестами.
, T! Q- N+ s6 T4 x2 H
. ^. |7 i; n a9 r# O5 v/ n- j
) c6 M6 |, Y! gШаг 3:3 b6 f3 f1 {/ s2 b; b1 x" x
" F1 G( s9 A' i1 e7 c7 T7 |7 sФайл QuestName-ru.dat используется для описания квестов и содержит различные параметры, которые задают характеристики квеста, его цели, награды, ограничения и т.д. ' h6 t# r9 D2 E2 z
Давайте разберем все поля на основе примера:
. [' |0 \( F: X. c9 z0 O. F- M- _0 p4 Q. h& o& `8 r
- 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+ W) c$ M& j' l/ h. s- z# E2 N( x
Скопировать код Поля данных:- 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 — завершение записи для квеста.
( q- j2 a, z3 X0 X, V
+ ^: A5 y0 A! p' `' H& u* ^( l& V8 n. S0 e3 [9 U7 @
Файл клиента QuestMarkConditionData.dat содержит информацию о квестах, связанных с условиями, необходимыми для активации или завершения определённых действий в игре. 6 Q' H, P) ~& h
Пример соодержания
+ s6 y( l: G B/ I- Y# p) WВот описание структуры строки:
( ?1 J# U6 ^* h/ P4 G2 u( V- 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
Скопировать код Давайте разберем все поля на основе примера:
2 z+ q$ q/ m' a: E# R7 J4 E& i* \! b& [9 K7 `
- 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: Указывает на конец записи о квесте.+ Y& v, f# }' Z7 P7 m3 G
Эта структура помогает клиенту определять условия, при которых игрок может начать или выполнить квест, а также идентифицировать необходимые взаимодействия с NPC., ^: Y/ R8 J" ?2 ^- O4 ]' }- b5 o
% \+ d! g: }" r# N0 K2 U* ~! {
6 n0 N. Q3 Y p6 f" ^3 D$ }4 S1 e3 ?, O f6 E# P
Следующие шаги относятся к любым новым хроникам, которые используют всплывающие окна квестов.' R# ~6 C- ]3 C1 d$ g
8 j- }) _- H4 h" c+ [0 dШаг 49 X( J, q8 }- `& v" ?. e, l
Для того чтобы добавить свой квест в файл NewQuestData.xml, нужно следовать структуре, аналогичной приведенному вами примеру. Вот как это может выглядеть:
7 B- I7 H( Q) NПример добавления нового квеста:
6 v% @3 x; C4 k( v" m' }- <quest id="20001" type="1" name="Mystery of the Lost Relic" startNpcId="30050" endNpcId="30051">( D: a- V6 k r, r) m) B y8 H0 F
- <locations>
( T% S/ u4 i$ d, \ - <param name="startLocationId">2001</param>
$ o+ Y9 h" V" `7 _/ W: T - <param name="endLocationId">2002</param>
7 u" f9 h7 L. ^8 H# S6 q) G - <param name="questLocationId">2003</param>/ e, t; O3 d9 P2 u
- </locations>
! H- T: {4 W' {+ V6 o9 { - <conditions>8 V( L" h& k* o& t, J) `9 W8 o7 d
- <param name="preQuestId">20000</param>; W; j6 L4 t- r8 F0 _& {
- <param name="classIds">0;1;2;3;4;5;6</param> <!-- доступ для всех рас -->
* _; X/ S8 |) }9 X& q& l/ w2 @5 O - </conditions>
6 h& x5 l9 J% a9 T: X - <rewards>+ }: Y9 a. S/ A: x c5 c% m, k
- <param name="rewardLevel">50</param># ^/ K. H: E. Y$ h: H1 p0 S
- <param name="rewardSp">5000</param>* ~3 A) Z, b: i+ R! O% R
- <param name="rewardItemId">57</param> <!-- Adena -->
! Y U7 L) C4 j: e - <param name="rewardItemCount">10000</param>. R/ A( a5 L" X' i
- </rewards>
0 ^5 G9 h2 }5 z' `( s- P - <goals># ?! u$ ^* h6 K4 M! V6 l$ ?
- <param name="goalCount">10</param>% c0 W! w6 [( n) Y% `
- <param name="goalString">Defeat monsters in the Ancient Forest</param>
# q* z9 {! m9 r$ X, U; P- } - <param name="goalItemId">92000</param> <!-- некий квестовый предмет -->
9 U% w3 J7 G2 y - <param name="goalItemCount">1</param> P, L0 d' ]2 e9 t8 `0 [ g
- </goals>
) i: @2 u5 _4 i8 m - </quest>6 ^+ }* f$ z5 a0 }2 T1 e) r
Скопировать код Описание структуры:
. `* h. ^. x; t8 {- quest: Основной элемент квеста, содержащий атрибуты:; A# B) F- Q O& A1 n
- id: ID квеста, уникальный для каждого квеста.
- type: Тип квеста (1 – обычный квест).
- name: Название квеста.
- startNpcId: ID NPC, с которого начинается квест.
- endNpcId: ID NPC, у которого квест заканчивается.* ^4 n; S) A: M3 Z/ J( [
- locations: Указывает места начала, окончания и квестовой активности.6 V/ F7 p# o; C
- startLocationId: ID места, где начинается квест.
- endLocationId: ID места, где квест заканчивается.
- questLocationId: ID квестовой зоны.+ g+ Q, \1 P$ d D
- conditions: Условия для начала квеста.2 h- m- G( L8 a3 v2 D8 z4 h4 b1 q
- preQuestId: ID предварительного квеста (если есть).
- classIds: ID классов или рас, которым доступен квест.3 t; J7 U* A# @ Z5 h9 G' H
- rewards: Награды за выполнение квеста.
( n) ]' Z1 e: p3 V5 V3 b8 G5 R/ k- rewardLevel: Минимальный уровень для получения награды.
- rewardSp: Количество опыта (SP).
- rewardItemId: ID предмета (например, Adena).
- rewardItemCount: Количество предметов.
5 h% B) b! \! _# I
- goals: Цели квеста.
5 w0 N5 _0 |8 l4 L& s- goalCount: Количество монстров, которых нужно убить или предметов, которые нужно собрать.
- goalString: Описание цели.
- goalItemId: ID квестового предмета (если требуется).
- goalItemCount: Количество квестовых предметов для завершения цели.% b3 U/ V2 C) C* M1 v& G; _
После того как вы добавите квест в файл NewQuestData.xml, нужно перезапустить сервер, чтобы изменения вступили в силу.
) f! R, S; R& K- S
% C. H6 z/ t+ [: a$ d% }( O5 KШаг 5
3 ` L5 L; U, g) Z- KФайл NewQuestDialog-ru.dat используется для хранения диалогов, связанных с квестом. Он определяет тексты, которые отображаются в окнах диалогов с NPC во время выполнения квеста. Вот разбор ключевых элементов строки и структура файла:
0 r' c* ?1 Y/ S' Z, c' t/ ]) j1 }6 MСтруктура данных- NewQuestDialog_begin — начало записи квеста в файле диалогов.
- QuestId=10001 — идентификатор квеста (должен соответствовать ID, который ты используешь в других файлах).
- Text0=... — первый диалог, который обычно отображается при старте квеста.
- Text1=... — дополнительный текст, который отображается на различных этапах квеста.
- Text2=... — текст, который отображается после выполнения определенных действий (например, после выполнения части задания).
- Text3=... — дополнительный диалог, например, при встрече с NPC на следующем этапе квеста.
- Text4=... — финальный текст или инструкции по следующему шагу для игрока.
- NewQuestDialog_end — завершение записи для этого квеста.. f+ P+ i2 ~0 y7 T4 c1 }
! T( F# k( c( k+ LПример записи для нового квеста (ID 98765) Если ты хочешь создать диалоги для нового квеста с ID 98765, твой файл может выглядеть так:, P' q. M/ z" Y+ _
- NewQuestDialog_begin QuestId=98765 Text0=[Вы готовы принять новый вызов и доказать свою силу?] Text1=[Как вы себя чувствуете? Вы выглядите уверенно. Это хороший знак, но не расслабляйтесь — впереди много испытаний. Примите это задание, если готовы.] Text2=[Пора приступить к тренировкам. Идите за мной в тренировочную зону.] Text3=[Следуйте моим указаниям, и вы раскроете весь свой потенциал.] Text4=[Поговорите с Дарти. Кликните на него и начните диалог.] NewQuestDialog_end
7 p4 {: v w! \! K/ o7 H
Скопировать код Разъяснение полей:
6 }- }4 A. w4 _5 y- QuestId=98765 — уникальный идентификатор нового квеста.
- Text0 — вводный текст квеста. Отображается при первом контакте с NPC.
- Text1 — дополнительный диалог, который дается игроку для создания контекста.
- Text2 — текст, который отображается на следующем этапе квеста, например, после выполнения части задания.
- Text3 — описание следующего шага или инструкции для игрока.
- Text4 — финальный диалог или текст с указанием цели (встреча с другим NPC).
* W0 w* w, U, }; n
3 O) A; s) R9 M& }5 B% q0 C+ ~% `9 O& \5 A2 k, K$ B
Что можно изменить:- Тексты диалогов (Text0, Text1 и так далее) можно адаптировать под конкретные ситуации в квесте.
- Количество текстов можно варьировать в зависимости от сложности квеста.
E J7 M; ^: P4 D - h! D6 o& ]" a) y0 J5 D
Файл NewQuestData-ru.dat содержит параметры, связанные с квестом в игре Lineage II, и описывает условия, NPC, цели и награды. Рассмотрим параметры этого файла:
3 p8 o7 R6 S7 j
! q. l6 i) e9 j( H1 a6 y+ E5 z3 i- newquestdata_begin / newquestdata_end: Эти параметры обозначают начало и конец блока данных квеста.
- quest_id=10001: Уникальный идентификатор квеста (ID). В данном случае это квест с ID 10001.
- quest_type=1: Тип квеста.& s1 X# r) U9 v% H5 e3 _( Z) b
- 1 обычно означает стандартный квест.
* G- t$ _, n$ p0 v! o H
- quest_name=[Новый путь]: Название квеста. Здесь указано "[Новый путь]" — это имя, отображаемое в игре.
- quest_level={0;0}: Уровневые ограничения квеста.
4 h7 H- z x" k" h8 O$ e) z1 `- Первое значение указывает минимальный уровень, второе — максимальный уровень.
- {0;0} означает, что нет ограничений по уровню.% L5 b- n4 d, |3 D, Y
- pre_quest={}: Предварительный квест, который нужно выполнить перед началом этого квеста.
) L: [. X& ~$ A0 \; D) o( {7 o. d2 Y- В данном случае он пустой {}, что означает, что нет предварительных требований.
9 M/ K* n4 `( _1 ^3 n s0 F
- class={0;10;18;25;31;38;44;49;53;123;124}: Классы или расы, которые могут брать квест.2 Z) U) m. H& h, n
- Номера классов указывают на те классы, которым доступен этот квест. В данном примере классы, такие как 0 (человеки), 10 (рыцари) и другие, имеют доступ.
) Z& \- J$ X" x5 D) w5 f# ^4 c
- quest_item=82948: ID квестового предмета, необходимого для выполнения цели или этапа квеста.0 N9 `) v* P/ ^% d- ]3 W! ~
- В данном случае это предмет с ID 82948.4 R7 J t% P3 T, q# i+ f
- start_item=0: Предмет, который выдается при начале квеста.) [1 ^" g* h" c' a
- Значение 0 означает, что предмет не выдается.
, b# S( T$ H: ]. `4 l0 k, x0 I
- start_npc=34505: ID NPC, у которого начинается квест.
- start_npc_loc=1002: Локация NPC, у которого начинается квест.: p+ R: V5 K( g4 U* L
- Это ID локации, где находится стартовый NPC.
}& {- h5 p) G/ C/ F
- end_npc=34696: ID NPC, у которого завершается квест.
- end_npc_loc=1003: Локация NPC, у которого завершается квест.2 x% c! q/ b ?. y
- Это ID локации, где находится конечный NPC.6 p0 W) ?7 i& J# R; D
- quest_loc=1003: Основная локация выполнения квеста.
6 e2 e6 s5 c) h3 q% J- Z1 w3 n- Это ID зоны, где нужно выполнять основные задачи.
4 W) Y! N! l0 x2 L% { D3 D
- goal_string=[Дарти (Зона Тренировки)]: Описание цели квеста.8 L3 p: y6 S. @# a9 ` o; ?
- В данном случае цель связана с персонажем по имени "Дарти" в Зоне Тренировки.9 x! G/ R' G. O ~2 Z. ~% f
- goal_num=1: Количество действий, необходимых для выполнения цели (например, убийств монстров или сбора предметов).3 m: g9 W2 v f1 z
- В данном случае нужно выполнить одно действие (1).8 H* E! Q; X$ t: r( p
- reward_level=65535: Уровень, при котором можно получить награду.- G" ~" K. {, e
- В данном случае это максимальное значение, указывающее, что награда доступна всегда.- s, H; z1 G2 d5 P
- reward_exp=0: Опыт (EXP), выдаваемый в качестве награды.3 U& V' R @1 u$ H* E+ T
- В данном случае опыт не выдается.# _" ~* `: Z+ E
- reward_sp=0: Количество SP (Skill Points), выдаваемых в качестве награды.) b8 i- V a( `% O1 \& v
- Здесь тоже 0, значит, SP не выдаются., l: F5 P2 G [% `0 G% m& S
- reward_item={}: Наградные предметы.7 `+ ~% j7 i1 w5 o
- В данном случае наградные предметы отсутствуют.1 _( p. n' G; t# ~/ S i" s
Этот файл определяет основной функционал и настройки для конкретного квеста в игре./ T4 h& `# v1 P/ {, k
/ Y2 _* q" P* |2 w* ~9 e
! M' f' G6 N, z: h t6 F5 w# K7 h; w
# ~' O0 e' o: V1 {5 P4 `$ \1 `! c& i
" r$ @# X1 c8 W) J ^/ E6 R
: }& `7 W& G! w0 b0 z/ t. K
?& {1 N# s* m3 e# A$ d
+ }1 N) _, T. h& }1 y2 ~5 s+ E2 d4 j# t7 `7 v
' S% h! M9 I% d( J( j! c0 ?8 Y! i0 S* S7 `; B
|