Зарегистрируйтесь сейчас чтобы найти еще больше друзей, и получить полноценный доступ ко всем функциям сайта!
Для просмотра Вам необходимо авторизоваться Если Вы еще не зарегистрированы, перейдите по ссылке:Зарегистрироваться
x
Гайд по файлу NewQuestData.xml для Lineage 2 сборка L2J_Mobius$ S# Q) A0 e& t9 l: u
: R1 o$ R6 z1 F8 }; z* `* _ F
% _: k" x) p. [( p1 F# O: {Файл NewQuestData.xml является важным элементом серверной части Lineage 2, так как он определяет ключевые параметры для квестов. Он содержит информацию о начальных и конечных NPC, условиях выполнения, наградах и целях квестов. Этот гайд поможет вам понять, как работает файл, и как добавлять или редактировать квесты на сервере.% T* c6 |/ A4 H. w. ]2 e2 h
1. Введение в структуру файлаФайл NewQuestData.xml используется для описания квестов, начиная с их идентификаторов и заканчивая подробными условиями, целями и наградами. Каждый квест имеет уникальный идентификатор (ID), тип, имя, а также ряд параметров, которые определяют его работу на сервере.4 A* k# j5 p# l0 E1 p6 Z3 H) b \# _
Пример записи квеста в NewQuestData.xml:
' ^( f( B5 j8 Y5 j9 B' b! j$ ]5 e- <quest id="10020" type="1" name="Attack of the Enraged Forest" startNpcId="33963" endNpcId="34505">
: Y6 g$ z: O& U1 t0 X/ P; e+ Q, z# c - <locations>8 ^- y- r: K( I \( s
- <param name="startLocationId">1015</param>; F4 _/ O! \1 A4 j& n, y
- <param name="endLocationId">1002</param>
0 ]* }9 l$ Z* B8 N( _1 `: e - <param name="questLocationId">1020</param>$ w9 }: C# m- C+ e" G
- </locations>
6 L" n" }" y* c/ P& d, F3 p! Z3 Q - <conditions>' A4 j3 z; b' d5 d" ~ m/ {' p& I" X( \
- <param name="preQuestId">10019</param>
; w& m( A, }; b/ g3 S/ x, M8 c0 e - <param name="classIds">2;3;5;6;8;9;12;13;14;16;17;20;21;23;24;27;28;30;33;34;36;37;40;41;43;46;48;51;52;55;57;127;128;129;130</param>
% L# E3 f9 v. n - </conditions>9 p& D' |1 C6 w6 S8 E3 w, o- n9 ~% J
- <rewards>8 i- m/ i/ e, x! Q7 t3 `
- <items>
5 w% ]) f1 z h6 b* L4 H7 ^ - <item id="57" count="240000" />
4 ] V7 ?2 `! ?# m. u! ] - </items>
7 A1 S0 ?& ]' h/ \% v& R - <param name="rewardLevel">76</param>7 g1 E% |% _; M# G; q
- <param name="rewardSp">84</param>) R& c$ g$ H" H, P; J) u1 K- U
- </rewards>
" l8 b2 z. K, [' Q9 e0 B: K - <goals>3 ~, Y2 g7 ?0 s) p$ T C$ e2 s
- <param name="goalCount">30</param>- C! f9 b* f1 W( m8 F$ E$ b
- <param name="goalString">Monsters on the Windy Hill</param>
/ h0 n. {: ^. z' f/ ~ - </goals>
0 m, Q! J6 v( S2 C5 B3 K' i. y - </quest>0 V0 b% J$ t3 X' y8 K: m$ S3 f
Скопировать код 2. Описание структуры2.1. Тег <quest>Каждый квест начинается с тега <quest>, который задаёт основные параметры квеста:
9 p4 z; {8 w% {3 b- id — уникальный идентификатор квеста. Например, id="10020" указывает, что это квест с ID 10020.
- type — тип квеста, обычно это 1 для стандартных квестов.
- name — название квеста, которое будет отображаться в игре.
- startNpcId — ID NPC, который начинает квест. Это тот NPC, к которому игрок должен обратиться для начала квеста.
- endNpcId — ID NPC, у которого завершается квест. Игрок должен вернуться к этому NPC для завершения задания.
/ x5 ]0 q3 ?' u7 q 2.2. Тег <locations>В этом блоке указываются ключевые локации, связанные с квестом:; H0 t5 ~3 G3 w% o1 P/ c* |& C
0 j) x7 |: E1 v
- <param name="startLocationId"> — место, где игрок начинает квест.
- <param name="endLocationId"> — место, где квест заканчивается.
- <param name="questLocationId"> — основная локация выполнения квеста. Это может быть область, где нужно убить монстров или выполнить другую задачу.
# H7 u' Z: Q7 o' V* t! G' @2 E& ? 2.3. Тег <conditions>Этот блок определяет условия для начала квеста:
) T# n) s- R% v9 N' w% ~- <param name="preQuestId"> — ID предыдущего квеста, который должен быть завершён для начала текущего. Если значение задано, игрок должен завершить этот квест перед тем, как начать новый.
- <param name="classIds"> — список ID классов, которые могут принять этот квест. Здесь указаны ID классов, имеющих право начать квест.
; F& K/ l! n; L- a( c: K 2.4. Тег <rewards>Блок наград описывает, что игрок получит за выполнение квеста:2 |+ j$ N4 U$ w5 w) V( s
- <items> — внутренняя секция с наградами в виде предметов.9 O2 u1 h4 E4 l: P0 A0 V
- <item id="57" count="240000" /> — предмет, который игрок получит. В данном случае это адена (ID 57) в количестве 240 000.. v% ^5 }! G% t
- <param name="rewardLevel"> — минимальный уровень игрока для получения награды.
- <param name="rewardSp"> — количество SP (Skill Points), которые игрок получит за выполнение квеста.
" N+ k7 X' \! e5 `# m# c 2.5. Тег <goals>Этот блок определяет цели квеста:
" n# f8 f$ F) B2 [7 P- <param name="goalCount"> — количество целей для выполнения, например, сколько монстров нужно убить.
- <param name="goalString"> — описание цели. Это текст, который объясняет, что нужно сделать (например, убить монстров на определённой территории).
: {+ e6 _& f$ s" P+ q& ^( n
3. Пример полного квеста6 |' ~, U8 i2 ^1 J5 z7 x; v
' y1 ?% Q; q; B( n
Предположим, вы хотите создать новый квест, где игрок должен убить 10 демонов и получить награду:
; k# @ b- D+ s/ V+ p- <quest id="10101" type="1" name="Demon Hunt" startNpcId="34001" endNpcId="34001">
, N9 ^* A% W" t6 | - <locations>. r! u8 Z* S( P7 d1 r# G
- <param name="startLocationId">1015</param>% T2 R( l2 z$ I! m9 }/ C% ]# R; M
- <param name="endLocationId">1015</param>- v0 G: A% j/ ^" Q
- <param name="questLocationId">1020</param>, W8 x% {$ D0 L1 w; B
- </locations>% R5 ~% }$ T* l7 c0 A, R
- <conditions>; o3 Z/ g2 ~) L/ Q/ O, }& e" ?
- <param name="preQuestId">10099</param>
, w/ `& n; K# b - <param name="classIds">1;2;3;4;5</param>' E2 A( {0 g; h* H9 Q3 C) J, W
- </conditions>. {# C$ _; ^1 T7 e
- <rewards>: E+ f; S' ?1 f9 s
- <items>
; {7 c4 J! F A* R" C \ - <item id="57" count="50000" />( j: V5 G+ ^( J. _3 d8 a
- </items>
, d/ q. L. w* S' a- \1 \( r - <param name="rewardLevel">50</param>
6 }6 N& ?. t" o+ ] u4 O% a( k, ] - <param name="rewardSp">1000</param># w v u$ O, |0 [- E X& O8 J
- </rewards>
; J0 C+ @8 V" h( q/ q - <goals>8 g5 M; M, Y o0 q! P8 t; p1 m8 T
- <param name="goalCount">10</param>
# N1 |7 v$ D8 h# G3 f8 s+ k* p - <param name="goalString">Demons in the cursed forest</param>6 \* G/ S+ G& i; A
- </goals>7 v' }; `) F1 Z
- </quest>
" e2 R! g$ B/ I# X* b4 X- Z5 ?
Скопировать код Здесь:
( Q" r/ f: l& y( m' P- ID квеста: 10101.
- Название квеста: "Demon Hunt".
- Начальный и конечный NPC: Жрец с ID 34001.
- Локации: игрок начнет и закончит квест в одной и той же локации (ID 1015).
- Условие начала: игрок должен завершить квест с ID 10099.
- Цель: убить 10 демонов в заколдованном лесу.
- Награда: 50 000 аден и 1000 SP.
, y) L* v: _: J/ [
4. Частые ошибки и их решения- Некорректные ID — убедитесь, что все ID NPC, предметов и локаций существуют в базе данных.
- Несовместимость классов — если квест доступен только для определенных классов, проверьте, правильно ли вы указали их ID в classIds.
- Цели не выполняются — проверьте правильность параметров в <goals>, убедитесь, что все цели прописаны верно.
/ s1 e: L% P" U8 v
5. ЗаключениеФайл NewQuestData.xml является важной частью механики квестов на сервере Lineage 2. Правильная настройка параметров, таких как ID, условия и цели, позволяет создавать уникальные квесты с интересными наградами. Этот гайд поможет вам уверенно добавлять и редактировать квесты на вашем сервере.( g% W' ~) ~5 S, M* E+ z
% d( P% q* Y' @0 E |