Створення npc, настройка Евентов, робота з клієнтом і сервером

html (test.htm згідно з нашою нпсдате)

(Ід 1000 згідно з нашим ВД в мультіселе)

= Налаштування Евентов =

Багато стикаються з такою проблемою, типу «Я поставив все як у вас, а в мене Дропана тільки перший (два перших) предмета. Ось чому так відбувається ...
Розглянемо flagsettingtime більш докладно. Значення 36000 відповідає 36 секундам проведення ОДНОГО циклу евент. За цей час в світі може впасти
dropitem0 = fir_spring 5
+
dropitem1 = deco_bead 2
+
dropitem2 = deco_star 2
+
dropitem3 = flowerpot 1
=
10 евентових предметів.
Причому спочатку має дропнуться ПОДРЯД 5 fir_spring, потім ПОДРЯД 2 deco_bead і т.д ... Якщо за 36 секунд вибили тільки 9 ПЕРШИХ пердмет, то flowerpot в даному циклу не дропнется, а наступним дропом буде fir_spring.
Тобто при різному онлайні буде різний дроп евентових предметів. Тобто крім дропа предметів потрібно, в залежності від онлайну. оперувати flagsettingtime.

Програма L2Decrypt - для кодування і декодування файлів

Програма L2Tool - для заміни відредагованих текстур в файлах .utx.

Плагін Photoshop DDS - для відкриття і редагування файлів DDS в Photoshop.
(Витягти в. \ Photoshop \ Plug-Ins \ File Formats)

З оздаем папку з будь-якою назвою і поміщаємо в неї файл L2Font-e.utx і програму L2decrypt. Потім відкриваємо цю папку
в стандартному Провіднику Windows (обов'язково). Далі беремо L2Font-e.utx і перетягуємо його на файл програми
l2decrypt.exe. Відкривається вікно l2decrypt і чекаємо появи внизу цього віконечка написи: All tasks have be finished, hit return
to exit. Дочекавшись цього напису, можна закрити віконце l2 decrypt.Теперь в цій самій папці після розшифровки
утворився файл "L2Font-e.clear.utx"

Про ткриваем L2tool (вона на японській мові) і
--в першому рядку вказуємо запакований (вихідний) архів L2Font-e.utx
--у другому рядку вказуємо свій відредагований в Фотошопі файл DDS з тією ж назвою, з яким виймав з
UTPT.exe.
--в третьому рядку вказуємо розшифрований архів L2Font-e.clear.utx, який ви розшифрували за допомогою l2 decrypt,
відразу ж з'являється вікно в якому ви повинен вибрати назву текстури, яку редагували. Після всього цього
натискаємо кнопку "set", і вуаля, все готово.

В аша відредагована текстура збереглася в розшифрованому вами архіві L2Font-e.clear.utx.

Д альшой перейменовуємо файл в L2Font-e.utx, копіюємо його в папку Systextures гри і замінюємо їм старий
оригінальний зашифрований архів.

Змінюємо предмети в грі

Зброя, броня, параметри ськиллов збережені в XML файлах і в базі даних. Незабаром
використання бази даних для ськиллов буде видалено. У XML файлах збережено опис як речі і скіли повинні
впливати на перегляд статті (які використовуються для підрахунку ушкоджень, шансів і т.д.).

Ось приклад XML файлу для зброї і броні:

Перший рядок потрібна тільки для самої мови XML, пропустіть її.

Другий рядок вказує ID речі і її назва (вони повинні збігатися з такими ж в БД).

Потім є деякі умови (condition) для прийняття річчю змін для суттєво (коли зброя одягнене або знято).
Таких умов може бути від нуль, один, два, або більше. Умова укладено в тег .

Тег умови складається з самого умови яке слід перевірити на гравця і ефекту на стати гравцем. В
вишенаписанное прикладі умова додавання ефекту - це раса людей (якщо не Хуман - ефект не включиться). Умова
укладено в тег , і воно не обов'язково. Якщо умови не вказані - всі гравці (які одягають цю броню \ зброя)
отримуватимуть ефект від нього.

Ефект - це додавання або множення суттєво гравця на задану кількість. У прикладі стат 'pDef' (power defence) і його
значення 36. Це означає, що до power defence гравця буде додано значення 36. Я опишу 'order' нижче.

В кінці, навіть якщо функцію підключена до гравця, необхідно щоб була умова коли воно буде працювати. В нашому
прикладі умова таке: pDef буде збільшений тільки тоді, коли мета гравця - атака skeleton.

І знову: може бути безліч умов , вони можуть мати умова приєднане до гравця , і кожен з них
може впливати на один або кілька суттєво гравця ( , , ,

), І кожен стат буде додано лише в тому
випадку коли умова буде виконана.

Звичайно, все це не обов'язково. Для більшості предметів броні і зброї ви будете мати щось просте схоже на
це:

яке всього лише додає 36 пунктів до power defence для кожного гравця який одягне її, без будь-яких умов.

Скіли описані практично так само, але з одним доповненням - у ськиллов є рівні. По-цьому значення для
збільшення \ зменшення Мінстату буде залежати від рівня ськілла.

Для цих цілей ми маємо таблиці:

В рядку ви вибірково вказуєте кількість рівнів. Потім ви проголошуєте таблицю (ви можете проголосити
багато * 04), кожен з них буде мати 'level' значення відокремлені один від одного пробілами. Назва таблиці може бути
будь-яким, але має починатися з символу #. У значеннях ви вказуєте назву вашої таблиці.

Зараз я опишу "order" параметр. "Order" це порядок проведення розрахунків. Давайте уявимо що ми маємо base power
defence гравця: basePDef
захист одягненого обладунку: armourPDef
level modifier of the player: lvl
passive skill of power defence яке треба додати: skillPDef1
buff of power defence яке треба помножити: skillPDef2

Отримуємо таку формулу:
((BasePDef + armorPDef) * lvl + skillPDef1) * skillPDef2

Знаки множення \ суми в цій формулі вказані 'order'ом розрахунку. виходить:
basePDef будеть мати order 0x10
armorPDef будеть мати order 0x10
lvl будеть мати order 0x30
skillPDef1 будеть мати order 0x40
skillPDef2 будеть мати order 0x50

Значення з однаковими 'order'амі розрахунку будуть розраховані в непередбачувані порядку. По-цьому, ніколи не вказуй
однаковий order параметрам add / substiture і multiplay / divide.

Трохи більше про умовах. Ви можете вказувати логічні операції , , :

Операціями над значеннями є:

Операція для "випадкових" чисел і коренів і інших математичний функцій можливо будуть додані пізніше, в разі
необхідності.

Ви повинні вказати значення не як константу, а як вираження:

Такий вираз починає розраховувати зі значення 0, і для прикладу вгорі ми маємо рівень гравця помножений на
значення з таблиці, і це значення буде використано для для розрахунку ушкоджень манни для кожного періоду ефекту.
Разом, в результаті ми маємо - підвищену точність (accuracy) в бою плюс віднімання за це манни (МР).
Можливі значення для розрахунків:

Тривалими ефектами ськиллов є:

Ось деякі статті для редагування:

Це не все, це всього лише частина суттєво, які мені прийшли в голову, але можуть вам бути корисними для редагування
шмаття і т.д.

Тепер розглянемо як зробити будь-якої шмаття унікальним.

І так, вибираємо шмотік який хочемо вдосконалити: я для себе вибрав:

Відкриваємо data \ stats \ armor \ 0600-0699.xml, знаходимо рядок з нашим "плащем магії".

Так як він плащ магії, неплoxо було б зробити його для магів. А що треба магам? Правильно МР, кр МР, швидкість
каста, сила каста. Але давати все це відразу - занадто багато, по-цьому зробимо якісь три зміни, наприклад
збільшимо інтелект на +1, regMp, ну і швидкість каста (mAtkSpd).

Хм, з бонусами на зразок визначилися, тепер треба визначиться в кількості цього бонусу, чи буде воно просто додавати
якесь задане число (константу) або відсотки від уже наявного Мінстату (тобішь був mdef 100, додали 10% - отримали
110).

Для себе я вибираю так.
INTу додаю 1.
Регенерацію МР - підвищую на 20%.
Швидкість каста на 25%.

Тепер що стосується відповідного коду:

Так як ми додаємо (знак +) INT, то використовуємо тег :

З інтом розібралися, тепер що стосується regMp (знак *, множення):

Шифрування і дешифрування * .ini

Для закодіровкі або розкодування L2.ini вам знадобиться L2encdec.

1. В папці l2encdec робимо два ярлика для l2encdec.exe.
2. Натискаємо правою кнопкою миші на 1-му ярлики, заходимо в Властивості
3. У рядку Об'єкт (після того що там написано) ставимо пробіл і пишемо -s l2.ini (після -s ставитися пробіл. А замість l2.ini
пишеться назва того файлу який вам потрібно розшифрувати). натискаємо ОК
4. Натискаємо правою кнопкою миші на 2-му ярлики, заходимо в Властивості
5. У рядку Об'єкт (після того що там написано) ставимо пробіл і пишемо -h 413 dec-l2.ini (дотримуйтесь прогалини так само як у
мене. а замість l2.ini пишеться назва того файлу який вам потрібно зашифрувати). Натискаємо ОК.

Отже l2encdec готовий до роботи

Тепер ставите файл який треба розшифрувати / зашифрувати в папку з l2encdec (в даному випадку це l2.ini. Ви ж
можете то що вам треба. Але не забудьте прописати назву цього файлу в св-ах ярликів!

Для розшифровки натискаємо 2 рази на ПЕРШОМУ ярлику і у вас з'явитися dec-l2.ini (розшифрований файл, ви можете
правити його за допомогою блокнота і керуєте в ньому то що вам треба))
Для кодування натискаємо 2 рази на ДРУГОМУ ярлику і у вас з'явитися enc-dec-l2.ini (зашифрований файл,
перейменовуємо його в l2.ini і пхає в папку system)

Eventmatch [Гайд За евент]

1 .Переместітесь в те місце, де ви хочете створити евент і введіть таку команду:
// eventmatch create 1 team1 team2 1 1 1 100 100

2 .Введіте // eventmatch list, має відобразиться щось на зразок такого:
SYS: - Event Match List Begin--
SYS: 1: 'team1' vs 'team2'
SYS --Event match List End--
Тут показано, що встановлений 1 евент, який має ID: 1 і називається "team1 vs team2", тобто. команда1 проти команди 2.

3 .Введіте // eventmatch manage 1, це вказує на те що вам відкриється панель управління евент який має ID: 1

4 .В правому верхньому куті є кнопка Remove a Race Track, що означає видалити гонки з треків, після чого натисніть Create a Race Track, вам відкриється нове вікном і в цьому вікні натисніть кнопку My Coordinates, з'явиться ваші координати по осях X, Y, Z, впишіть дані координати нижче в потрібних полях X, Y, Z, нижче йдуть 2 поля довжина і ширина арени, довжина арени з півночі на південь, і ширина зі сходу на захід.

5 .Тепер коли ви повернулися в головне вікно є 2 важливі речі це Race Setup File (Установки гонки) і Command File (команди гонки), я пропоную створити вам наприклад на диску C: /, наприклад такий файл C: \ arena_setup.ini, так вам буде легше вводити команди, і файл C: \ command.ini, для створення меню команд.Что вводити цих файлах показано нижче.

Race Setup File Format:
Установки гонки (файл: arena_setup.ini):
--Бафнуть всіх темних ельфів з рівнем 70+
--Заборонено геройське зброї
--Не дозволяти застосувати таки Скіл, як Cancel, Resurrections, Party recall.

[1] Рядок BuffCnt = 10, впливає на те скільки можна гравцеві бафнуть бафов собі під час початку бою, в даний момент 10 бафов.
Далі показані які бафи будуть дані гравцям при старті бою.
Після вказані Скіл які заборонені під час бою.
Далі вказані ітемов які заборонені для використання в бою.

Тобто при старті евента будуть видані ці рядки, поясню, що означають ці рядки:
1я рядок: "// announce Hello World"
Дана рядок виведе анонс в світ Hello World
2а рядок: "// announce Finally figured it out"
Дана рядок означає що буде виведений анонс в світі Finally figured it out
3-тя строчка: // eventmatch dispelall 1 "

Чи означає, що дається старт для евент матчу під ID: 1

Інші команди приклади:
Масовий рес всіх гравців в зоні видимості
// eventmatch useskill [match_Id] 1016 5

Масове відновлення СР
// eventmatch useskill [match_Id] 1306 6

У файлі команд евент просто вводите Cmd, і поруч ID команди, тобто. приклад:
Cmd1
Cmd2
Cmd3
І т.д.

Далі вводите = і в ковичках пишіть команду приклад:
Cmd3 = "// eventmatch useskill 1 1306 6"
Дана команда вказує що всі хто записаний на евент будуть реснути.

Ось готові місця підготовки арен:
Gludin Arena: -87908 142217 -3645 910x900
Гіра Arena: 72982 142759 -3772 920x900

Тобто для того, щоб створити закриту арену на глудін арені вам потрібно буде ввести таку команду:

// eventmatch create 1 team1 team2 -87908 142217 -3645 910 900
Створитися закрита арена і евент матч під ID: 1.

6 Після чого ви збираєте партії (команди), після того, як команди була створена і набрана тиснете на головного в партії і в меню управління евент тиснете кнопку Lockup a party, дана кнопка додасть всіх з партії в команду 1, після чого набираєте другу партію (команду) і так само тиснете таргет на головного в партії і тиснете Lockup a party, це буде 2 команда.

7 Після того як ви зібрали команди тиснете Fence Up, це підніме паркан навколо створеної вами ареною, тиснете ще раз і це прибере паркан навколо арени.

8 .Команда: // eventmatch dispelall 1, означає старт евент 1, з установками з файлів .ini

9 Після того як все готовий тисніть кнопку Старт, і вперед в бій.

10 Після того як матч закінчений можна заради забави натиснути одну з кнопок:
Team1 Fireworks or Team2 Fireworks
Яку з кнопок жати це залежить від того яка команда виграла, тобто. це своєрідні оплески (феєрверки) для гравців.

11 Після того як матч закінчився ви можете натиснути кнопку Fence Down (опустити паркан), і після натиснути Lift a lockup, розформувати команди, або ж натиснувши на кнопку Start a Race, почати знову битку даних команд.
12 .Перейдіте на крок 6 для вашої наступної битви.

Примітки:
1. Що б відправити повідомлення гравцям під час матчу (евент) введіть його в поле і натисніть кнопку Forward, але пам'ятайте що повідомлення повинно бути не великий довжини.
2. Ви після поразки тієї чи іншої команди можете натиснути на кнопку Ending Message, це виведе повідомлення на екрані у гравців: GAME OVER
3. Що б відкрити файл з вашого диска натисніть внизу кнопку Command і введіть шлях до файлу і назва файлу приклад:

Установки арени:
C: \ arena_setup.ini
Установки команд:
C: \ command.ini


Додам арена створюється так:
// eventmatch create [номер_матча] [імя_1_команди] [імя_2_команди] [координати х] [координати у] [координати z] [довга Стіни] [висота стіни]