Зарегистрируйтесь сейчас чтобы найти еще больше друзей, и получить полноценный доступ ко всем функциям сайта!
Для просмотра Вам необходимо авторизоваться Если Вы еще не зарегистрированы, перейдите по ссылке:Зарегистрироваться
x
Сборка: L2l_Monius
; M" E6 m6 _6 T) c" {+ B3 z3 aСледующие квесты можно использовать в качестве шаблонов для создания практически любого простого квеста go kill или go talk.
/ E" q, z5 H- M& z$ d4 r$ L- Y J# e! Q
k$ e% y$ N9 R$ w! W
Иди и убей X монстров / Возвращение - награда.
1 r+ {. t" `' ~Q00529_RegularBarrierMaintenance
5 x6 R0 V% e. I0 H. w, W) N: `- Z3 B4 S1 Z
Получите квест от любого из двух разных NPC / Убейте X монстров / Вернитесь с наградой.
7 I8 b% _4 u: T3 s! ^0 |Q00683_AdventOfKrofinSubspecies6 h4 Y9 V8 ^! ^" d9 |9 _
7 f1 n8 Q3 ]* N7 \& b" o" L8 TПоговори с NPC 1 / Поговори с NPC 2 / Поговори с завершающим NPC / Награда.
- X5 ]/ y% U6 ^9 g. `' q9 VQ10516_UnveiledFafurionTemple
4 Z1 C; y; s( l6 k0 F* ~8 @' y# i. a5 c5 f, X; L$ [
Убейте X монстров, а также соберите X предметов / Возврат - награда.
9 M. u6 [& e* i9 a( L: ]5 VQ10517_FafurionsMinions3 N( G% @& }* D1 \, p: c
1 B+ G! ^ Z h" C2 s' d& S' lИди собери X капель монстров / Вернись - убей X монстров / Вернись - награда.
# h' E$ Y3 |0 z, g5 YQ10529_IvoryTowersResearchFloatingSeaJournal4 t+ C: m- T3 }- J. o, x
- m! y* v$ G) L/ OИди убей X монстров, а также собери X предметов / Возвращение - иди собери X предметов / Возвращение - награда./ n8 t; c$ ~& w. J5 t7 n3 O, e
Q10518_SucceedingThePriestess
# A) N; v3 L" c; F$ f( ]3 e) F$ {3 w
. W/ h0 s/ s# r: i; T" ]5 I6 TУчаствуйте в убийстве рейдбосса / Возврат - награда.
7 v; ^: x3 z/ ~- S6 {9 r2 k% YQ10519_контролирование вашей температуры
( E3 |& B/ y0 a5 d2 X& S/ A7 P' o/ C N
Поговорите с NPC 1 / Примите участие в убийстве рейдбосса / Возвращение - награда.- U1 L; H+ G2 q% o: b! D, v2 E
Q10533_OrfensAmbition
& C& y2 L3 I* K9 P2 A, a: A) ?. }* y( s F6 }6 K) V
' y! f5 }2 s# B3 Z- `( E1 z. c* m' J& X
Руководство требует обновления. И, к сожалению, с самыми последними хрониками вы не сможете избежать модификаций клиента. Поэтому, исключительно в образовательных целях, я предлагаю свой опыт по добавлению нового квеста!
6 h9 ^# h4 ^) W; ~; d& U! D" _1 W0 v$ O: ~; A1 o! C0 b
Шаг 1: Создайте свой квест с уникальным ID. В этом примере я буду ссылаться на квест как "Q98765_NewQuest".( m2 J# C8 Z0 q* M4 y
% s, R9 P4 j# \* x1 a/ h
Шаг 2: Когда вы успешно создали свой квест и Eclipse не выдает ошибок, добавьте название квеста и импортируйте его в файл "QuestMasterHandler.java".- o5 b7 d1 Z$ B
, D% [* ]+ E$ D( Y! A
Шаг 3: Перейдите в клиент и с помощью редактора клиента добавьте квест в следующие файлы .dat: "questname-ru.dat" и "QuestMarkConditionData.dat".
% r: K9 f- t7 g6 F" o+ H t
' t2 h9 G* R& \& }7 |% {# b6 o+ D& ?7 D7 AСледующие шаги относятся к любым новым хроникам, которые используют всплывающие окна квестов.0 ]7 | T/ P: E% \& ~& a8 i+ e
$ l$ g; a) _& U* A
Шаг 4: Найдите в серверных файлах файл с названием "NewQuestData.xml" и добавьте туда свой квест.
+ ~- h) w) S4 s& U+ H; j; X& X+ r/ z' B! q' h4 ]
Шаг 5: Найдите в клиенте следующие файлы и добавьте туда свой квест: "NewQuestData-ru.dat", "NewQuestDialog-ru.dat" и "NewQuestNpcPortrait.dat".+ Q3 T% G; R: I+ o4 ?3 T! s: g5 _
' a- M5 }; d, n" K! b$ k
Если я что-то забыл, не стесняйтесь исправить меня. Это руководство создано исключительно в образовательных целях.: L: E5 ?9 _0 H& _" l- `: \
7 |8 u" w. A1 G8 d3 ^1 [
Шаг 2:
7 A9 k. X: S5 U9 F) v" E3 M, m- O* I& X
- R3 Q7 S! r1 N. X9 VСледующий шаг заключается в добавлении вашего квеста в QuestMasterHandler.java. Вот общий план:4 y) {( C. q' n6 P7 _
6 m: q* C# L; Q1. Импорт вашего квеста: В начале файла после всех существующих импортов добавьте строку, которая будет импортировать ваш квест.
) P8 [! l2 i* SНапример:3 O9 t$ ~. z3 M( A7 N
8 s( Z6 u2 ~; p# V/ \2 y9 y# b
- import quests.<span style="background-color: rgb(255, 255, 255);">Q98765_NewQuest</span>.<span style="background-color: rgb(255, 255, 255);">Q98765_NewQuest</span>;
/ U2 S' K5 I4 N% a1 o! U, m+ v
Скопировать код 1. Регистрация квеста: Найдите метод, который отвечает за регистрацию всех квестов. Обычно это делается в статическом блоке или методе init, где происходит инициализация квестов. В этом блоке добавьте строку, которая будет регистрировать ваш квест:
8 {- S- d6 p+ F/ f C8 ]( f$ ]5 W# p$ ?6 I1 e8 `
- /**
8 q! f( O7 l: F, W$ n; X - * @author NosBit
, m4 Z. G& f1 U0 Y3 B - */# G8 i8 }, _) J% l1 F1 R
- public class QuestMasterHandler3 k; v* R5 W; o" L- i* i
- { A; _, |+ \) M! p& \
- private static final Logger LOGGER = Logger.getLogger(QuestMasterHandler.class.getName());
2 U) Y; s& P6 ~( Y - + ^1 w* V* O% [0 b! n* j% F/ C' I
- private static final Class<?>[] QUESTS =; D8 T H B5 p3 }5 d" Y& w B u
- {
Скопировать код Проверка: Убедитесь, что идентификатор вашего квеста (в данном случае Q98765_NewQuest.class) уникален и не конфликтует с уже существующими квестами.
4 Q( D. V3 A; a9 [) w- X" p' d8 S* D( L% k s
% `: Q/ x1 ?: c5 n5 k7 F' |
Шаг 3:
5 d6 X u1 v7 T6 z0 g7 K% p3 R ~# k) F. T- l5 `* ^, j& @4 }3 d
Файл QuestName-ru.dat используется для описания квестов и содержит различные параметры, которые задают характеристики квеста, его цели, награды, ограничения и т.д. 5 V2 k* n# b& h! F/ J
Давайте разберем все поля на основе примера:4 ` Q( S& I4 @: f t2 v+ j, i
4 ]* B* C( S, {- u4 Z0 I% L- 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
9 N- ~: {* j, S7 Q$ W
Скопировать код Поля данных:- 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 — завершение записи для квеста.
3 R6 F3 s8 J. C, W% [' i % N+ {% P$ U7 T
4 q3 ]* a* X* U9 D' e' k! f# CФайл клиента QuestMarkConditionData.dat содержит информацию о квестах, связанных с условиями, необходимыми для активации или завершения определённых действий в игре.
) E0 V& K) G3 }3 Y# Y) }Пример соодержания z. S/ } c, Q0 X" ~. j
Вот описание структуры строки:' r" _- b7 ?" c$ _2 L# I# Z2 `$ Z8 c
- 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
Скопировать код Давайте разберем все поля на основе примера:3 F2 _( F* ]5 S0 j
! Z. d8 L5 x) \, j- 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: Указывает на конец записи о квесте.- J$ }: C" k1 m! i' E
Эта структура помогает клиенту определять условия, при которых игрок может начать или выполнить квест, а также идентифицировать необходимые взаимодействия с NPC.
( {$ J' U: B+ L9 S, a9 \& v0 R# j# r$ B9 z, m6 Z& V8 ]0 t6 [
0 c d- r- t! a; r
! G) _0 w" b n* n. r) m5 h p6 a+ s
Следующие шаги относятся к любым новым хроникам, которые используют всплывающие окна квестов.- z% W8 c& @. B9 n5 }# @/ E
& l9 }. J1 W" i
Шаг 4
+ V( x' y. L8 k% v: rДля того чтобы добавить свой квест в файл NewQuestData.xml, нужно следовать структуре, аналогичной приведенному вами примеру. Вот как это может выглядеть:
0 q: \6 }! G# F2 p. Y- e& |Пример добавления нового квеста:
: }2 b: x* i% I. r- <quest id="20001" type="1" name="Mystery of the Lost Relic" startNpcId="30050" endNpcId="30051">
l7 ` e6 R D" T - <locations>
+ P& j. @! J: w* U% i) r9 x7 q - <param name="startLocationId">2001</param>1 ?/ y o. ~+ J' \2 ~! K3 n
- <param name="endLocationId">2002</param>
1 `- G4 f) m9 R' ?7 |6 E* N - <param name="questLocationId">2003</param>
9 c* c4 s% o. V, P - </locations>
. c' s* H( G0 Y3 _6 f& s$ M7 e - <conditions>
) F. {* Z+ G: t) h* X7 Q& I# X5 P - <param name="preQuestId">20000</param># q3 g1 W' C6 n2 Q: k8 W- M
- <param name="classIds">0;1;2;3;4;5;6</param> <!-- доступ для всех рас --># G! Y9 H; p% h
- </conditions>. m1 g1 v8 b# ]$ P) o: B4 r a
- <rewards>: L0 s6 ^' d5 l9 W- m" E8 i9 L
- <param name="rewardLevel">50</param>$ @& L+ K( E$ h( D: K+ }
- <param name="rewardSp">5000</param>
- J* C7 S* Q9 w$ u/ V9 R& E4 Y - <param name="rewardItemId">57</param> <!-- Adena -->
+ U: m4 W. t v" u - <param name="rewardItemCount">10000</param>! ~" t8 z$ b2 a0 }7 t) S; Y3 h
- </rewards>
' Y0 W2 g2 e, v - <goals>. y! _& X4 c: ~5 r. l8 a1 M
- <param name="goalCount">10</param>
) ~, l" m! C' G7 z6 q/ Q - <param name="goalString">Defeat monsters in the Ancient Forest</param>6 D5 a1 f- _* x8 D1 W* P$ `9 Z8 ~: i0 o& [
- <param name="goalItemId">92000</param> <!-- некий квестовый предмет -->7 t( P4 q: N; K V2 A
- <param name="goalItemCount">1</param>
; b( B+ a% P! w - </goals>
5 o* \: S4 {. v7 J7 k- @ - </quest>$ e8 _0 W& P9 S; `1 L
Скопировать код Описание структуры:- M) @) H( T. ^! u6 f
- quest: Основной элемент квеста, содержащий атрибуты:
' Y3 h4 F2 U" B3 Y- id: ID квеста, уникальный для каждого квеста.
- type: Тип квеста (1 – обычный квест).
- name: Название квеста.
- startNpcId: ID NPC, с которого начинается квест.
- endNpcId: ID NPC, у которого квест заканчивается., F- L( \, t4 m. y
- locations: Указывает места начала, окончания и квестовой активности.
" P& ?+ o8 V, }9 {+ }6 b B. t$ J- startLocationId: ID места, где начинается квест.
- endLocationId: ID места, где квест заканчивается.
- questLocationId: ID квестовой зоны.
& `. R; [! ~% R( A& i
- conditions: Условия для начала квеста.
# ~4 m" z" l7 q" m$ A" u- preQuestId: ID предварительного квеста (если есть).
- classIds: ID классов или рас, которым доступен квест.9 s5 j* t1 ?" H3 F+ @/ c
- rewards: Награды за выполнение квеста.1 }" O: Z, r( {7 t0 C1 V/ W4 y5 H$ h
- rewardLevel: Минимальный уровень для получения награды.
- rewardSp: Количество опыта (SP).
- rewardItemId: ID предмета (например, Adena).
- rewardItemCount: Количество предметов.5 q/ U) z8 Z4 G! }! @
- goals: Цели квеста.* ?3 u& k3 z1 F# k
- goalCount: Количество монстров, которых нужно убить или предметов, которые нужно собрать.
- goalString: Описание цели.
- goalItemId: ID квестового предмета (если требуется).
- goalItemCount: Количество квестовых предметов для завершения цели., d8 Z, }, y' r9 ~" L4 `$ ]
После того как вы добавите квест в файл NewQuestData.xml, нужно перезапустить сервер, чтобы изменения вступили в силу.
8 D+ u- c) U E# H0 E( J( z @0 p6 h5 M- P" F5 ` N
Шаг 5
, A2 f2 `4 e9 Z0 E, jФайл NewQuestDialog-ru.dat используется для хранения диалогов, связанных с квестом. Он определяет тексты, которые отображаются в окнах диалогов с NPC во время выполнения квеста. Вот разбор ключевых элементов строки и структура файла:4 }8 h- E! V7 E% P; ]
Структура данных- NewQuestDialog_begin — начало записи квеста в файле диалогов.
- QuestId=10001 — идентификатор квеста (должен соответствовать ID, который ты используешь в других файлах).
- Text0=... — первый диалог, который обычно отображается при старте квеста.
- Text1=... — дополнительный текст, который отображается на различных этапах квеста.
- Text2=... — текст, который отображается после выполнения определенных действий (например, после выполнения части задания).
- Text3=... — дополнительный диалог, например, при встрече с NPC на следующем этапе квеста.
- Text4=... — финальный текст или инструкции по следующему шагу для игрока.
- NewQuestDialog_end — завершение записи для этого квеста.
3 \6 Q5 b2 T, M2 N& V4 A3 H% J
; A# C) d0 J8 E) {+ KПример записи для нового квеста (ID 98765) Если ты хочешь создать диалоги для нового квеста с ID 98765, твой файл может выглядеть так:
9 {. |, u: ]' r- NewQuestDialog_begin QuestId=98765 Text0=[Вы готовы принять новый вызов и доказать свою силу?] Text1=[Как вы себя чувствуете? Вы выглядите уверенно. Это хороший знак, но не расслабляйтесь — впереди много испытаний. Примите это задание, если готовы.] Text2=[Пора приступить к тренировкам. Идите за мной в тренировочную зону.] Text3=[Следуйте моим указаниям, и вы раскроете весь свой потенциал.] Text4=[Поговорите с Дарти. Кликните на него и начните диалог.] NewQuestDialog_end
r1 G I7 d. E8 }/ E
Скопировать код Разъяснение полей:
2 }4 s" K2 B# I5 o1 [6 o& A. g0 D- QuestId=98765 — уникальный идентификатор нового квеста.
- Text0 — вводный текст квеста. Отображается при первом контакте с NPC.
- Text1 — дополнительный диалог, который дается игроку для создания контекста.
- Text2 — текст, который отображается на следующем этапе квеста, например, после выполнения части задания.
- Text3 — описание следующего шага или инструкции для игрока.
- Text4 — финальный диалог или текст с указанием цели (встреча с другим NPC).
0 s6 b* s! }9 C- S" @$ E- j3 S4 U
2 Z9 G( y/ h9 t5 O# L6 e2 w$ _! R1 c6 E
Что можно изменить:- Тексты диалогов (Text0, Text1 и так далее) можно адаптировать под конкретные ситуации в квесте.
- Количество текстов можно варьировать в зависимости от сложности квеста.
: N" T* O7 h# n" f& ^- w
( d1 k1 n- D0 l2 a5 V. s6 L) BФайл NewQuestData-ru.dat содержит параметры, связанные с квестом в игре Lineage II, и описывает условия, NPC, цели и награды. Рассмотрим параметры этого файла:
0 ^8 v6 w! ] L% o$ p* [! z
D5 i7 G/ i) W; t0 L- newquestdata_begin / newquestdata_end: Эти параметры обозначают начало и конец блока данных квеста.
- quest_id=10001: Уникальный идентификатор квеста (ID). В данном случае это квест с ID 10001.
- quest_type=1: Тип квеста.0 v% y8 O6 f3 @$ F; K2 G: K! I. @4 Y
- 1 обычно означает стандартный квест.
" G1 F' \, W: b; U
- quest_name=[Новый путь]: Название квеста. Здесь указано "[Новый путь]" — это имя, отображаемое в игре.
- quest_level={0;0}: Уровневые ограничения квеста.
. i0 N7 C8 v! U, q- Первое значение указывает минимальный уровень, второе — максимальный уровень.
- {0;0} означает, что нет ограничений по уровню.6 ^/ S1 V% V# C; A! I6 K0 u# c
- pre_quest={}: Предварительный квест, который нужно выполнить перед началом этого квеста.
+ l! k; o. H0 K. g2 [ J- В данном случае он пустой {}, что означает, что нет предварительных требований.
* i! V5 I6 ]" }! T. a
- class={0;10;18;25;31;38;44;49;53;123;124}: Классы или расы, которые могут брать квест.3 i* L) U& i- ]" T2 d9 P
- Номера классов указывают на те классы, которым доступен этот квест. В данном примере классы, такие как 0 (человеки), 10 (рыцари) и другие, имеют доступ.
1 P5 e+ T, G7 J" ?6 O
- quest_item=82948: ID квестового предмета, необходимого для выполнения цели или этапа квеста. q/ r! Y5 M* g
- В данном случае это предмет с ID 82948.
0 } J) x0 U+ \" {& M/ H; e
- start_item=0: Предмет, который выдается при начале квеста.8 T/ d, [& Q( ]6 O: O
- Значение 0 означает, что предмет не выдается.+ m) F; C4 L( u9 ^/ g& b$ {8 b) @) N
- start_npc=34505: ID NPC, у которого начинается квест.
- start_npc_loc=1002: Локация NPC, у которого начинается квест.
+ R4 E# O9 v1 i. |& @) _- Это ID локации, где находится стартовый NPC.% ~7 n" D7 T3 I8 E. q9 _
- end_npc=34696: ID NPC, у которого завершается квест.
- end_npc_loc=1003: Локация NPC, у которого завершается квест./ F$ |' G. ?* E3 W
- Это ID локации, где находится конечный NPC.
" M4 K# ?7 [0 B- s8 Q6 P
- quest_loc=1003: Основная локация выполнения квеста.4 @# S5 S6 d2 N. m) H
- Это ID зоны, где нужно выполнять основные задачи. l. V9 ^" M" \$ q: _* b. m% P
- goal_string=[Дарти (Зона Тренировки)]: Описание цели квеста.
& S, d- C2 a/ m2 r3 K: `' I0 o8 ~- В данном случае цель связана с персонажем по имени "Дарти" в Зоне Тренировки.
: T" ~, U# j% O) g' o7 g# Y
- goal_num=1: Количество действий, необходимых для выполнения цели (например, убийств монстров или сбора предметов).
$ `) \6 {! D. R* Q- B- В данном случае нужно выполнить одно действие (1).
0 T( t2 H' C+ N) g) R
- reward_level=65535: Уровень, при котором можно получить награду.0 f7 @% _$ E# h- }1 Y
- В данном случае это максимальное значение, указывающее, что награда доступна всегда.
1 D7 H Q7 v' x4 u' a! ^, R& Y# r
- reward_exp=0: Опыт (EXP), выдаваемый в качестве награды.
% o; ~ ?4 {$ [& o$ d* U0 J" Y- В данном случае опыт не выдается.
8 ]" B1 _3 C1 K. O$ q* y+ }( ^
- reward_sp=0: Количество SP (Skill Points), выдаваемых в качестве награды.6 g+ O1 h7 ~. r. W
- Здесь тоже 0, значит, SP не выдаются.
0 M' i5 b1 l1 x% J
- reward_item={}: Наградные предметы.+ g9 I v' z: _% E( Q+ P: }
- В данном случае наградные предметы отсутствуют.
2 B9 \- e( r4 e$ q0 `4 I
Этот файл определяет основной функционал и настройки для конкретного квеста в игре.
$ |( C6 G+ y, c/ z6 z( z1 Z* K2 G
/ r0 a" B* ` P' k7 r; G) G1 I2 r2 f# R: f+ G: }6 K# }! C$ ?
7 V" H8 ?; z; C( \* r y8 d' G1 m$ `# r; \/ a
8 o. ~1 u+ L( {1 i, |) o1 A. w
% d$ O- `. k# J0 x9 d. B" t
: E. Q [& a5 x/ N9 N
0 B4 ~% u2 v$ ~% ~. t
( y4 Z8 O4 C+ I" {- ~3 O
8 X4 t3 E; `, r W1 u; T |