Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Некоторые ddf для Helios
#51
Mantra Написал:Пробывал сделать сравнение zonaname-ru в 109

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

не, это не сработает. Разобрать структуру можно выдрав ее из клиента или вывести ее саму, просматривая декодированный файл.
Ответ
#52
Вытащил структуру 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 итд?
Разработка Lineage II Classic: Saviors 2.0
Ответ
#53
Mantra Написал:Вытащил структуру 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
Ответ
#54
Melcor Написал:по сути структура правильная, вот только fileedit уже не подойдет.
корейцы оптимизаторы хреновы, накидали типа такого
И что плохого в L2GameDataName?

Теперь они строки хранят не в том же файлике, а в отдельном, тем самым экономя место и время загрузки. Там есть ряд веселых моментов, это вы еще до армора и веапона не добрались Smile
[Изображение: 4e38c909fcd08c5fcdf363b54a62.png]
Ответ
#55
По поводу армора, вообще хз как он открывает, там не хватает 4 столбцов в конце. Видимо по этому и не сохраняет, а только открывает.

С L2GameDataName давно разобрался ничего там сложного нет, главное чтобы строки не повторялись, минус в этом только в том что трудно локализовать, если с кореи например. Раньше можно было экселем теперь видимо вручную.
Разработка Lineage II Classic: Saviors 2.0
Ответ
#56
Zubastic Написал:И что плохого в L2GameDataName?

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

так вот со skillname они заморачиваться не стали, и в L2GameDataName не запихнули, а прямо там и оставили.
Ответ
#57
Melcor Написал:по сути структура правильная, вот только 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 Написал:так вот со skillname они заморачиваться не стали, и в L2GameDataName не запихнули, а прямо там и оставили.
npcname вообще не разу не менялся вроде как.Big Grin
Разработка Lineage II Classic: Saviors 2.0
Ответ
#58
Кто в курсе, что с заголовком в декодированном skillname? Как его расшифровать то? 3 байта вместо обычных 4.
Ответ
#59
Как я понял, файл состоит из 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;
Ответ
#60
Mifesto Написал:
quote

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


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Некоторые ddf для Grand Crusade Hint 4 3,442 05-29-2017, 11:45 AM
Последний пост: babyjason
  Is it possible to launch "patched" Helios client in Official server ? Syncia_Lin 0 1,105 12-05-2016, 07:01 PM
Последний пост: Syncia_Lin
  System 55 korea helios/ssviors Mantra 3 1,697 09-30-2016, 07:22 PM
Последний пост: KOPKA
  L2asm-disasm ddf HELIOS 64 protocol gordo 5 4,591 06-11-2016, 11:14 PM
Последний пост: Emperor
  Некоторые ddf для Ertheia (l2.ru) Hint 4 3,944 08-21-2014, 06:18 PM
Последний пост: Hint
  Некоторые ddf для Lindvior (l2.ru PTS) Hint 12 6,340 05-30-2013, 05:09 PM
Последний пост: Be3geBJIa3
  Некоторые ddf для Tauti (l2.ru PTS) Hint 0 5,870 07-06-2012, 05:48 PM
Последний пост: Hint
  Клиент+Некоторые ивенты Subzero 0 1,338 01-30-2012, 03:52 PM
Последний пост: Subzero

Перейти к форуму:


Пользователи, просматривающие эту тему: 7 Гость(ей)