Зарегистрируйтесь сейчас чтобы найти еще больше друзей, и получить полноценный доступ ко всем функциям сайта!
Для просмотра Вам необходимо авторизоваться Если Вы еще не зарегистрированы, перейдите по ссылке:Зарегистрироваться
x
Сборка: L2l_Monius
! C4 @$ p9 s% N5 S7 P: Y4 rСледующие квесты можно использовать в качестве шаблонов для создания практически любого простого квеста go kill или go talk.
7 o5 v5 K8 ?3 y2 ]+ Y9 k* ?8 \6 i D& W2 C
1 c; |! q3 [! F T+ H
Иди и убей X монстров / Возвращение - награда.3 A( X8 j6 D6 P5 m" p/ J& D1 N( g% l
Q00529_RegularBarrierMaintenance- ?2 t5 Y9 s* [/ X0 p' V4 J% _2 K
. Q y" f T- T# ~; IПолучите квест от любого из двух разных NPC / Убейте X монстров / Вернитесь с наградой.
) K; p$ S/ f* ]: w7 Z" sQ00683_AdventOfKrofinSubspecies; V; s- t4 L3 b; L6 {
- C! G7 g1 \( G# f9 RПоговори с NPC 1 / Поговори с NPC 2 / Поговори с завершающим NPC / Награда.2 b1 m o X' ?' o- H, o9 k$ w* P
Q10516_UnveiledFafurionTemple7 Y5 G- ~( S! S& ~. r
7 X, L# E( [; W8 y) eУбейте X монстров, а также соберите X предметов / Возврат - награда.5 T# K1 {) v {# D( B& ]
Q10517_FafurionsMinions% p+ n( j; E8 v
% Z$ {; ~) k5 m2 S/ Q* UИди собери X капель монстров / Вернись - убей X монстров / Вернись - награда.2 C3 I; A, {3 M' D) \; K* H& L7 _
Q10529_IvoryTowersResearchFloatingSeaJournal
4 k" j6 [4 I9 `7 k0 T4 |1 f- \" r" m' f( ^& x/ ]0 q; w% G
Иди убей X монстров, а также собери X предметов / Возвращение - иди собери X предметов / Возвращение - награда.
2 R' o6 v, s$ E) U) P- xQ10518_SucceedingThePriestess
8 o! J" _. ]+ I6 _, J1 A) c$ M/ D
Участвуйте в убийстве рейдбосса / Возврат - награда.9 t* g1 u; w9 D4 m5 T: I
Q10519_контролирование вашей температуры
: f8 @2 ~+ {+ ^! R& M1 w" ]% I6 q9 u! z I( p" N
Поговорите с NPC 1 / Примите участие в убийстве рейдбосса / Возвращение - награда.$ S+ [( n8 f4 w; A
Q10533_OrfensAmbition
" Q4 K3 L; u. f8 u+ J" A3 C: z& q9 c8 _, d! R* h6 ]8 Z
3 t1 O! P1 }' [$ k$ ~; p1 s# |& s+ g
! W1 R1 u2 {- S f: p* ~
Руководство требует обновления. И, к сожалению, с самыми последними хрониками вы не сможете избежать модификаций клиента. Поэтому, исключительно в образовательных целях, я предлагаю свой опыт по добавлению нового квеста!$ e" s- L4 S1 i! b! c
5 O% _, w; w- }( a. DШаг 1: Создайте свой квест с уникальным ID. В этом примере я буду ссылаться на квест как "Q98765_NewQuest".
9 B( _( Y/ w* W6 X1 `7 ~. P# [' `; E% ]2 ?$ v
Шаг 2: Когда вы успешно создали свой квест и Eclipse не выдает ошибок, добавьте название квеста и импортируйте его в файл "QuestMasterHandler.java".
9 s2 N# Y9 X2 n% K. U* l/ q9 x) N+ g
" C- B, w4 u% h: h4 bШаг 3: Перейдите в клиент и с помощью редактора клиента добавьте квест в следующие файлы .dat: "questname-ru.dat" и "QuestMarkConditionData.dat".. Z9 s$ q; I9 X: W- z4 F5 T( G
) l2 q d# f8 n7 B, d$ g& @
Следующие шаги относятся к любым новым хроникам, которые используют всплывающие окна квестов.' M% Y$ _2 {" p9 C% g. d- I
" p) O% i/ a: D% Z/ U+ D A& NШаг 4: Найдите в серверных файлах файл с названием "NewQuestData.xml" и добавьте туда свой квест.: Z. X1 j4 ]0 z; L2 ?" D% \
* V( }& @1 |/ N' L: T% a5 [
Шаг 5: Найдите в клиенте следующие файлы и добавьте туда свой квест: "NewQuestData-ru.dat", "NewQuestDialog-ru.dat" и "NewQuestNpcPortrait.dat". p, k( V! z, \/ H
7 h$ i( U3 K3 g& R/ k" n3 X2 ~$ P; OЕсли я что-то забыл, не стесняйтесь исправить меня. Это руководство создано исключительно в образовательных целях.
5 F, N+ h: q& R, M2 j- `: X; }+ `- |0 f5 ]( l
Шаг 2:
7 }0 o! O3 @2 R. r
5 o8 f# _! {+ _Следующий шаг заключается в добавлении вашего квеста в QuestMasterHandler.java. Вот общий план:
, j0 Q+ |7 G, m) @
" O$ c$ |6 s! S1 o1. Импорт вашего квеста: В начале файла после всех существующих импортов добавьте строку, которая будет импортировать ваш квест. 7 i& Z- C$ T7 m6 \+ z: m2 d/ r7 Z
Например:& Q5 ?+ I% Z; ?7 I5 v: W
/ m& W+ l3 {, _! S- import quests.<span style="background-color: rgb(255, 255, 255);">Q98765_NewQuest</span>.<span style="background-color: rgb(255, 255, 255);">Q98765_NewQuest</span>;
& X8 q3 D# d4 i1 Y7 }( {# Y. k
Скопировать код 1. Регистрация квеста: Найдите метод, который отвечает за регистрацию всех квестов. Обычно это делается в статическом блоке или методе init, где происходит инициализация квестов. В этом блоке добавьте строку, которая будет регистрировать ваш квест:
* Z V0 z# [) ?' Q0 R. n) w2 W+ P- K
4 {) W5 ~; r4 z9 R. J- o9 \, A- /**8 N, N* F" {2 M( N
- * @author NosBit3 X0 o9 Y- R9 R g- T) _
- */1 S9 p. h9 L& i" e- U5 a2 L' ~, U. Z
- public class QuestMasterHandler6 t% b. z& d7 Z/ ~0 O
- {- K# c: j- h1 Z- I5 q
- private static final Logger LOGGER = Logger.getLogger(QuestMasterHandler.class.getName());
- Z4 E4 P" g3 M. B) e4 B+ Y -
( G0 j6 f8 _1 S) h - private static final Class<?>[] QUESTS =9 P, j) l3 Z1 N
- {
Скопировать код Проверка: Убедитесь, что идентификатор вашего квеста (в данном случае Q98765_NewQuest.class) уникален и не конфликтует с уже существующими квестами.
8 ] t0 ?) N8 c5 } R" C- U- C$ L2 X0 y+ r7 |
9 a3 z9 `7 V6 J+ q) UШаг 3:
; Y; w; `- F. W, p6 i
* _1 K: u6 b+ T/ D2 k, ^6 s% WФайл QuestName-ru.dat используется для описания квестов и содержит различные параметры, которые задают характеристики квеста, его цели, награды, ограничения и т.д. 6 o( P/ n% z7 ?5 R, }, ]2 M
Давайте разберем все поля на основе примера:" K6 X) _8 ^! a- A3 G
5 E$ z; K, \5 F4 M6 o8 \. E7 ~- 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
# O# ^7 @3 f: ~0 V" V
Скопировать код Поля данных:- 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 — завершение записи для квеста./ V: E; v+ N, u! E3 }* w
% T+ @7 p4 J) v+ j
1 Z( [( B" {- o2 P
Файл клиента QuestMarkConditionData.dat содержит информацию о квестах, связанных с условиями, необходимыми для активации или завершения определённых действий в игре. . W2 A: s b& J1 A5 m( m
Пример соодержания! L9 d8 o+ ~. B$ x' v
Вот описание структуры строки:2 l$ D/ ~: a% t7 \6 C l% H
- 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
Скопировать код Давайте разберем все поля на основе примера:
! d, _% v/ P2 }7 @4 H) W' z; d
. Z/ D, _% e$ |$ m4 v3 U4 t- 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: Указывает на конец записи о квесте.8 U; s, L7 ^. [9 m' l" K4 ?
Эта структура помогает клиенту определять условия, при которых игрок может начать или выполнить квест, а также идентифицировать необходимые взаимодействия с NPC.
! E2 x5 D* R, X- [7 e4 S% X8 i+ G) J1 i0 `6 v
8 [) n. |; w& z, I* \
" m* b7 M, ?3 n$ e
Следующие шаги относятся к любым новым хроникам, которые используют всплывающие окна квестов.& d' ~) W4 x$ i2 A" @$ ^
9 ^ B/ g" ?4 ]# ~. E
Шаг 4
6 o# w, j' q# G; I, hДля того чтобы добавить свой квест в файл NewQuestData.xml, нужно следовать структуре, аналогичной приведенному вами примеру. Вот как это может выглядеть:5 x! ^9 T9 y6 j Z7 Y( v) ~
Пример добавления нового квеста:( a/ t U5 ^! I9 S
- <quest id="20001" type="1" name="Mystery of the Lost Relic" startNpcId="30050" endNpcId="30051">
o6 B- Q6 u! m& b: l9 E- o - <locations>" L3 K) S" U' o% {7 r! h; }
- <param name="startLocationId">2001</param>
2 H& l( a5 ^6 p/ g, \ - <param name="endLocationId">2002</param>* ]2 p, M! o/ w' ?. h
- <param name="questLocationId">2003</param>+ B! P6 N+ f3 b+ ^6 \& ?
- </locations>4 A; [- ], j/ ^# E' r; d
- <conditions>
# q2 x7 P' k% U' g9 ? - <param name="preQuestId">20000</param>
: q* K& `' T4 o4 ~' q& Q - <param name="classIds">0;1;2;3;4;5;6</param> <!-- доступ для всех рас -->
2 {9 y2 X- g3 Q+ I- L8 @( R( y2 V; w6 h - </conditions>& c3 O# h7 p* [1 m
- <rewards>+ N* B/ U4 X; c6 i/ p: ?8 v
- <param name="rewardLevel">50</param> @ [& I) b( c; s' {4 K
- <param name="rewardSp">5000</param>
1 _0 E8 u- ~ g5 w3 h3 i5 K0 g - <param name="rewardItemId">57</param> <!-- Adena -->4 j0 i2 y! V' ~4 U5 b1 `) `) c7 z* ^
- <param name="rewardItemCount">10000</param>, l7 S5 b: u. T+ v T! I3 c" r
- </rewards> P! N0 ^$ Z+ Y. ^1 b# H5 n/ b
- <goals>3 V, S% A. B- r$ `9 n$ d/ V. x% y
- <param name="goalCount">10</param>
' Y" [6 ~3 `/ @2 S5 | - <param name="goalString">Defeat monsters in the Ancient Forest</param>/ {3 u# i: _0 L" Y$ A, b$ Q
- <param name="goalItemId">92000</param> <!-- некий квестовый предмет -->; e1 h l3 E( K# U$ G! C& E
- <param name="goalItemCount">1</param>
( e( B1 |& c2 B2 X- Y/ x/ ^ - </goals>
2 f* u* q& e5 I! ?6 m# M: | - </quest>
( ^4 \" F* j$ ~- c' y+ E
Скопировать код Описание структуры:3 M }' u n/ i' ~$ G" v0 A
- quest: Основной элемент квеста, содержащий атрибуты:( w, j* n3 w0 e: k: C
- id: ID квеста, уникальный для каждого квеста.
- type: Тип квеста (1 – обычный квест).
- name: Название квеста.
- startNpcId: ID NPC, с которого начинается квест.
- endNpcId: ID NPC, у которого квест заканчивается.
% P% p( g: S5 W$ |( _: w0 Z8 d# ~
- locations: Указывает места начала, окончания и квестовой активности.1 k' l6 x* N: X& Q
- startLocationId: ID места, где начинается квест.
- endLocationId: ID места, где квест заканчивается.
- questLocationId: ID квестовой зоны.% S5 f4 P0 I4 s; y5 \0 _
- conditions: Условия для начала квеста.
$ V n8 ^- H% Z4 V- preQuestId: ID предварительного квеста (если есть).
- classIds: ID классов или рас, которым доступен квест.
2 b1 Q' Z3 G7 P. a8 [: @
- rewards: Награды за выполнение квеста.
. O* e: s4 ~! U' N- rewardLevel: Минимальный уровень для получения награды.
- rewardSp: Количество опыта (SP).
- rewardItemId: ID предмета (например, Adena).
- rewardItemCount: Количество предметов.
7 h* z+ Z" D+ _5 r c, k
- goals: Цели квеста.2 A G+ t8 i6 z3 j5 {
- goalCount: Количество монстров, которых нужно убить или предметов, которые нужно собрать.
- goalString: Описание цели.
- goalItemId: ID квестового предмета (если требуется).
- goalItemCount: Количество квестовых предметов для завершения цели.) j, @/ ^- b9 F# x% [
После того как вы добавите квест в файл NewQuestData.xml, нужно перезапустить сервер, чтобы изменения вступили в силу.
6 w# Z2 k- ~% A' N2 d4 k3 o2 \$ s4 `4 T9 k! b U. }) p* N1 k+ z
Шаг 5
2 B* k: b1 r7 t, P X/ f; _Файл NewQuestDialog-ru.dat используется для хранения диалогов, связанных с квестом. Он определяет тексты, которые отображаются в окнах диалогов с NPC во время выполнения квеста. Вот разбор ключевых элементов строки и структура файла:
2 v# s$ C8 i/ ^6 J, cСтруктура данных- NewQuestDialog_begin — начало записи квеста в файле диалогов.
- QuestId=10001 — идентификатор квеста (должен соответствовать ID, который ты используешь в других файлах).
- Text0=... — первый диалог, который обычно отображается при старте квеста.
- Text1=... — дополнительный текст, который отображается на различных этапах квеста.
- Text2=... — текст, который отображается после выполнения определенных действий (например, после выполнения части задания).
- Text3=... — дополнительный диалог, например, при встрече с NPC на следующем этапе квеста.
- Text4=... — финальный текст или инструкции по следующему шагу для игрока.
- NewQuestDialog_end — завершение записи для этого квеста.
( s6 G- S1 S$ s) s7 i/ o * _+ w1 n) G( S& s3 B
Пример записи для нового квеста (ID 98765) Если ты хочешь создать диалоги для нового квеста с ID 98765, твой файл может выглядеть так:
/ S1 ~# l% o1 |/ {$ y) g- NewQuestDialog_begin QuestId=98765 Text0=[Вы готовы принять новый вызов и доказать свою силу?] Text1=[Как вы себя чувствуете? Вы выглядите уверенно. Это хороший знак, но не расслабляйтесь — впереди много испытаний. Примите это задание, если готовы.] Text2=[Пора приступить к тренировкам. Идите за мной в тренировочную зону.] Text3=[Следуйте моим указаниям, и вы раскроете весь свой потенциал.] Text4=[Поговорите с Дарти. Кликните на него и начните диалог.] NewQuestDialog_end
" @" G* \" [! L% A/ p6 o
Скопировать код Разъяснение полей:2 u2 b9 B) E/ \2 m* _) M
- QuestId=98765 — уникальный идентификатор нового квеста.
- Text0 — вводный текст квеста. Отображается при первом контакте с NPC.
- Text1 — дополнительный диалог, который дается игроку для создания контекста.
- Text2 — текст, который отображается на следующем этапе квеста, например, после выполнения части задания.
- Text3 — описание следующего шага или инструкции для игрока.
- Text4 — финальный диалог или текст с указанием цели (встреча с другим NPC).
; V. \0 ^6 U7 t8 _! A7 w6 w - j3 N! I& h- F+ c) r9 z) b' _1 G
/ J2 D* h: P" Z* i
Что можно изменить:- Тексты диалогов (Text0, Text1 и так далее) можно адаптировать под конкретные ситуации в квесте.
- Количество текстов можно варьировать в зависимости от сложности квеста.
- t a. ]- X/ D n0 Z+ X1 D6 E 7 Y4 X$ z6 ?+ h5 W( p
Файл NewQuestData-ru.dat содержит параметры, связанные с квестом в игре Lineage II, и описывает условия, NPC, цели и награды. Рассмотрим параметры этого файла:
5 y `- j( J. g7 o1 d: e- e: Q- x$ r( o
- newquestdata_begin / newquestdata_end: Эти параметры обозначают начало и конец блока данных квеста.
- quest_id=10001: Уникальный идентификатор квеста (ID). В данном случае это квест с ID 10001.
- quest_type=1: Тип квеста.
; }0 h& X) {7 I$ q- 1 обычно означает стандартный квест.5 d% e4 ]+ u' G/ ?! q
- quest_name=[Новый путь]: Название квеста. Здесь указано "[Новый путь]" — это имя, отображаемое в игре.
- quest_level={0;0}: Уровневые ограничения квеста.( f& T" a: A$ N9 b1 Y8 e
- Первое значение указывает минимальный уровень, второе — максимальный уровень.
- {0;0} означает, что нет ограничений по уровню.
5 J6 G8 a0 J4 [7 u
- pre_quest={}: Предварительный квест, который нужно выполнить перед началом этого квеста.( g" Q3 m8 X4 {+ R; |
- В данном случае он пустой {}, что означает, что нет предварительных требований.
2 n3 n, ~/ c5 R
- class={0;10;18;25;31;38;44;49;53;123;124}: Классы или расы, которые могут брать квест.
3 \8 D1 K' @( [' E- Номера классов указывают на те классы, которым доступен этот квест. В данном примере классы, такие как 0 (человеки), 10 (рыцари) и другие, имеют доступ.4 y8 E, P, X& n; ]
- quest_item=82948: ID квестового предмета, необходимого для выполнения цели или этапа квеста.; e2 ?7 a( n' C. i. H
- В данном случае это предмет с ID 82948.6 Z# l+ X' D" F) `9 y
- start_item=0: Предмет, который выдается при начале квеста.! i' \4 h2 S& E
- Значение 0 означает, что предмет не выдается.6 Q9 `* a; ^$ R4 g4 y; C) P
- start_npc=34505: ID NPC, у которого начинается квест.
- start_npc_loc=1002: Локация NPC, у которого начинается квест.
2 Y( J: y$ B+ Z/ d/ s* y2 E' Y- Это ID локации, где находится стартовый NPC.
, f' x9 z! A. q/ m
- end_npc=34696: ID NPC, у которого завершается квест.
- end_npc_loc=1003: Локация NPC, у которого завершается квест.! Y: | E- h% j2 F/ R% Z0 C
- Это ID локации, где находится конечный NPC./ l" d' X/ E8 q$ f- [0 ]/ `, c
- quest_loc=1003: Основная локация выполнения квеста., W% v& M; U' V/ ^1 F+ K9 w. E
- Это ID зоны, где нужно выполнять основные задачи.& _$ {+ ?8 {7 J
- goal_string=[Дарти (Зона Тренировки)]: Описание цели квеста.
# R$ o/ i9 @0 ?# |' F) `- В данном случае цель связана с персонажем по имени "Дарти" в Зоне Тренировки.
/ I2 e" ~0 d3 I$ |$ Q! p
- goal_num=1: Количество действий, необходимых для выполнения цели (например, убийств монстров или сбора предметов).. L, w. d- m) w k
- В данном случае нужно выполнить одно действие (1).
6 x4 e" A! M! ?! |" Z
- reward_level=65535: Уровень, при котором можно получить награду.
4 N, x4 p2 V' n! Y( W6 F1 L* ], Q- В данном случае это максимальное значение, указывающее, что награда доступна всегда.
$ i5 }9 Z, Y/ Q4 }& s
- reward_exp=0: Опыт (EXP), выдаваемый в качестве награды.
3 n( ^6 [2 E; \5 M- В данном случае опыт не выдается.
V& d6 M2 G- Y, |: z; O
- reward_sp=0: Количество SP (Skill Points), выдаваемых в качестве награды.6 D) I- q7 `$ Z1 @5 O0 G' R
- Здесь тоже 0, значит, SP не выдаются.- j! F, t$ ]+ z2 Z
- reward_item={}: Наградные предметы.
! D! b& F- X; l: ^8 O- В данном случае наградные предметы отсутствуют.
9 m# f! p# J9 t( x
Этот файл определяет основной функционал и настройки для конкретного квеста в игре.' j6 o- {! u- P2 E7 \; L
0 J: u0 L9 v( d$ D
) _( ?! o- p6 t5 r- O
5 P, ]9 }) k$ U/ T) X4 F" R6 F, x4 U. t q! d
% C6 ~$ E2 s' w; w, _ }# {" _7 }9 w% R0 d* t; r
6 U! u. `2 l# ]" t- O8 q. o
# d, Z; d5 j0 F
3 w: ~. R" W" o* D8 b; \) t* ], T
3 I' X* L! v7 I( h# z) Z
|