Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Игровой клиент (https://forum.zone-game.info/forumdisplay.php?f=54)
-   -   Некоторые ddf для Helios (https://forum.zone-game.info/showthread.php?t=40993)

Melcor 28.03.2017 23:21

Re: Некоторые ddf для Helios
 
Цитата:

Сообщение от Mantra (Сообщение 424973)
Пробывал сделать сравнение zonaname-ru в 109

По этому мануалу, летит ошибка и название столбца. Что я не так делаю или метод не работает уже со всеми датками?

не, это не сработает. Разобрать структуру можно выдрав ее из клиента или вывести ее саму, просматривая декодированный файл.

Mantra 29.03.2017 20:21

Re: Некоторые ddf для Helios
 
Вытащил структуру skillname из Engine.dll

Цитата:

skill_begin;
skill_id;
level;
sub_level;
name;
desc;
desc_param;
enchant_name;
enchant_name_param;
enchant_desc;
enchant_desc_param;
skill_end;
Непонятно следующее, откуда взять UWORD,WORD,ASCF,INT итд?

Melcor 30.03.2017 02:21

Re: Некоторые ddf для Helios
 
Цитата:

Сообщение от Mantra (Сообщение 424988)
Вытащил структуру skillname из Engine.dll



Непонятно следующее, откуда взять UWORD,WORD,ASCF,INT итд?

по сути структура правильная, вот только fileedit уже не подойдет.
корейцы оптимизаторы хреновы, накидали типа такого
Код:

a,Рывок\a //name
12 //id
a,В течение $s1 Скорость +$s2.\a
13
//и так далее, по нарастающей
//тут непонятно только одно: как определить конец таблицы

теперь обычный даш выглядит так вот примерно
Код:

=====================
4 //id
1 //level && sublevel
0 //тут id с которого берется описание
-1 // тут level  && sublevel с которого берется описание
12 //вот а здесь и ниже уже оптимизация, берется данные из примера выше
13
14
3
3
3
3


Zubastic 30.03.2017 09:01

Re: Некоторые ddf для Helios
 
Цитата:

Сообщение от Melcor (Сообщение 424997)
по сути структура правильная, вот только fileedit уже не подойдет.
корейцы оптимизаторы хреновы, накидали типа такого

И что плохого в L2GameDataName?

Теперь они строки хранят не в том же файлике, а в отдельном, тем самым экономя место и время загрузки. Там есть ряд веселых моментов, это вы еще до армора и веапона не добрались :)

Mantra 30.03.2017 10:39

Re: Некоторые ddf для Helios
 
По поводу армора, вообще хз как он открывает, там не хватает 4 столбцов в конце. Видимо по этому и не сохраняет, а только открывает.

С L2GameDataName давно разобрался ничего там сложного нет, главное чтобы строки не повторялись, минус в этом только в том что трудно локализовать, если с кореи например. Раньше можно было экселем теперь видимо вручную.

Melcor 30.03.2017 10:47

Re: Некоторые ddf для Helios
 
Цитата:

Сообщение от Zubastic (Сообщение 424998)
И что плохого в L2GameDataName?

Теперь они строки хранят не в том же файлике, а в отдельном, тем самым экономя место и время загрузки. Там есть ряд веселых моментов, это вы еще до армора и веапона не добрались :)

так вот со skillname они заморачиваться не стали, и в L2GameDataName не запихнули, а прямо там и оставили.

Mantra 30.03.2017 11:02

Re: Некоторые ddf для Helios
 
Цитата:

Сообщение от Melcor (Сообщение 424997)
по сути структура правильная, вот только fileedit уже не подойдет.
корейцы оптимизаторы хреновы, накидали типа такого
Код:

a,Рывок\a //name
12 //id
a,В течение $s1 Скорость +$s2.\a
13
//и так далее, по нарастающей
//тут непонятно только одно: как определить конец таблицы

теперь обычный даш выглядит так вот примерно
Код:

=====================
4 //id
1 //level && sublevel
0 //тут id с которого берется описание
-1 // тут level  && sublevel с которого берется описание
12 //вот а здесь и ниже уже оптимизация, берется данные из примера выше
13
14
3
3
3
3


Если я не ошибаюсь это добавили еще в 24 или 28 протоколе. Ради интереса попробую сравнить столбцы с 28 и 64+ протокола из двух дампов. Интересно что добавили.

Цитата:

Сообщение от Melcor (Сообщение 425000)
так вот со skillname они заморачиваться не стали, и в L2GameDataName не запихнули, а прямо там и оставили.

npcname вообще не разу не менялся вроде как.:D

Melcor 31.03.2017 17:03

Re: Некоторые ddf для Helios
 
Кто в курсе, что с заголовком в декодированном skillname? Как его расшифровать то? 3 байта вместо обычных 4.

Mifesto 02.04.2017 18:46

Re: Некоторые ddf для Helios
 
Как я понял, файл состоит из 2х частей, и у него 2 размера таблиц.
1 - 3х байтовый, брал за основу себе тулзу asmi, и там оно реализовано как compactInt:
Код:

public int readCompactInt() throws IOException
        {
                int output = 0;
                boolean signed = false;
                for (int i = 0; i < 5; i++)
                {
                        int x = in.read();
                        if (x < 0)
                        {
                                throw new EOFException();
                        }
                        if (i == 0)
                        {
                                if ((x & 0x80) > 0)
                                {
                                        signed = true;
                                }
                                output |= (x & 0x3F);
                                if ((x & 0x40) == 0)
                                {
                                        break;
                                }
                        }
                        else if (i == 4)
                        {
                                output |= (x & 0x1F) << (6 + (3 * 7));
                        }
                        else
                        {
                                output |= (x & 0x7F) << (6 + ((i - 1) * 7));
                                if ((x & 0x80) == 0)
                                {
                                        break;
                                }
                        }
                }
                if (signed)
                {
                        output *= -1;
                }
                return output;
        }

Формат первой таблицы прост:
Код:

        public String str;
        private int str_id;

2 - стандартный размер.
Формат второй примерно такой:
Код:

public int id;
        public short lvl;
        public short sub_lvl;
        public int pr_id;
        public short pr_lvl;
        public short pr_sblvl;
        public int name_id;
        public int info_id;
        public int stats_id;

        private int enchant_name_id;
        private int enchant_name_param_id;
        private int enchant_desc_id;
        private int enchant_desc_param_id;


Melcor 02.04.2017 19:16

Re: Некоторые ddf для Helios
 
Цитата:

Сообщение от Mifesto (Сообщение 425025)
quote:
Свернуть ↑Развернуть ↓

Огромное спасибо! Работает как надо. :ct:


Текущее время: 04:35. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot