Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Разработка
Войти через OpenID

Разработка Раздел для совместной разработки/доработки программы

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 19.12.2011, 23:50   #11
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Набор утилит для работы с пакетами.

dec2hex - для преобразования ID из DEC в HEX в файле packetsX.ini

makeLineagePackets - выбрасывает из *.java файлов всё за исключением процедур readImpl() и writeImpl(), имена пакетов берем из packets.ini. Сами java файлы исходников пакетов должны лежать в папках script\clientpackets и script\serverpackets.

makeLineageServerPackets - готовим серверные опкоды из *.java серверных пакетов для LineageII.
1. Выполняем в папке serverpackets команду DIR > server.ini
2. Удаляем в полученом текстовом файле server.ini всё кроме имен пакетов
3. Указываем в поле ввода имя файла, если оно отличается от server.ini
4. жмём MAKE и ждём...
5. результат в файле server.ini~
6. отсортировать имена пакетов по их ID можно по команде SORT server.ini~ /O server.ini~~, в файле server.ini~~ будет результат сортировки.
Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный.png
Просмотров: 125
Размер:	27.7 Кб
ID:	2521  Нажмите на изображение для увеличения
Название: Безымянный1.png
Просмотров: 94
Размер:	30.2 Кб
ID:	2526  Нажмите на изображение для увеличения
Название: Безымянный3.png
Просмотров: 84
Размер:	21.4 Кб
ID:	2527  
Вложения
Тип файла: rar dec2hex.rar (179.7 Кб, 59 просмотров)
Тип файла: rar dec2hexSrc.rar (5.3 Кб, 49 просмотров)
Тип файла: rar makeLineagePackets.rar (367.9 Кб, 70 просмотров)
Тип файла: rar makeLineagePacketsSrc.rar (9.6 Кб, 55 просмотров)
Тип файла: rar makeLineageServerPackets.rar (178.5 Кб, 64 просмотров)
Тип файла: rar makeLineageServerPacketsSrc.rar (3.9 Кб, 54 просмотров)
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни



Последний раз редактировалось NLObP, 20.12.2011 в 00:50.
NLObP вне форума   Ответить с цитированием
За это сообщение NLObP нажился 2 спасибками от:
Старый 25.12.2011, 05:20   #12
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Набор утилит для работы с пакетами.

MakePacketsIni v0.2 - для подготовки packetsX.ini из *.java файлов.
[+] обновил до версии 0.3

описание пакета берем из процедур readImpl() и writeImpl(), имена пакетов берем из packets.ini. Сами java файлы исходников пакетов должны лежать в папках script\clientpackets и script\serverpackets.

PS: допиливать packets.ini руками обязательно!

Давайте разберем как допиливать packets.ini, на примере пакета CM_CASTSPELL
Исходник
Код:
    protected void readImpl() {
        spellid = readH();
        level = readC();
        targetType = readC();
        switch (targetType) {
            case 0:
                targetObjectId = readD();
                break;
            case 1:
                x = readF();
                y = readF();
                z = readF();
                break;
            default:
                break;
        }
        time = readH();
    }
Кусочек
Код:
spellid = readH();
это будет
Код:
h(spellid)
Кусочек
Код:
level = readC();
это будет
Код:
c(level)
Кусочек
Код:
        targetType = readC();
        switch (targetType) {
это будет
Код:
c(targetType:switch.0.2)
где первый параметр после switch это элемент_с_которого_начинать, т.е. 0 - начать с первого
второй параметр после switch это сколько_элементов_входит, т.е. 2 - подсчитываем сколько case входит в этот switch (default не учитывать)

Кусочек
Код:
l           case 0:
                targetObjectId = readD();
                break;
это будет
Код:
_(id:case.0.1)d(targetOID)
где _(подчерк) просто так должно быть, id просто так должно быть,
первый параметр после case это с чем идет сравнение, в нашем случае с цифрой 0 (ноль)
второй параметр после case это количество_элементов_в_блоке, в нашем случае 1 (один)

Кусочек
Код:
l            case 1:
                x = readF();
                y = readF();
                z = readF();
                break;
это будет
Код:
_(id:case.1.3)n(x)n(y)n(z)
где _(подчерк) просто так должно быть, id просто так должно быть,
первый параметр после case это с чем идет сравнение, в нашем случае с цифрой 1 (один)
второй параметр после case это количество_элементов_в_блоке, в нашем случае 3 (три)

и в конце
Кусочек
Код:
time = readH();
это будет
Код:
h(time)
В итоге получаем строку
Код:
0090=CM_CASTSPELL:c(static)h(id2)h(spellID)c(level)c(targetType:switch.0.2)_(id:case.0.1)d(targetOID)_(id:case.1.3)n(x)n(y)n(z)h(time)
Конструкция FOR по аналогии (можно глянуть описание в packetsGracia.ini). Конструкцию IF надо преобразовать в конструкцию switch, так как IF в пакетхаке не поддерживается.

PS: надеюсь понятно объяснил.
Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный4.png
Просмотров: 77
Размер:	47.2 Кб
ID:	2555  
Вложения
Тип файла: rar packetsAion27.rar (8.6 Кб, 60 просмотров)
Тип файла: rar makePacketsIni.rar (405.8 Кб, 57 просмотров)
Тип файла: rar makePacketsIniSrc.rar (25.4 Кб, 53 просмотров)
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни



Последний раз редактировалось NLObP, 07.01.2012 в 17:37.
NLObP вне форума   Ответить с цитированием
За это сообщение NLObP нажился спасибкой от:
Старый 04.01.2012, 00:56   #13
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Еще один пример:
Код:
00A3=CM_MOVE:c(static)h(id2)n(x)n(y)n(z)c(heading)c(movementType:switch.0.6)_(id:case.224.3)n(x2)n(y2)n(z2)_(id:case.192.3)n(x2)n(y2)n(z2)_(id:case.196.3)n(x2)n(y2)n(z2)_(id:case.228.3)n(x2)n(y2)n(z2)_(id:case.132.1)c(glideFlag)_(id:case.164.1)c(glideFlag)
Исходный код
Код:
    protected void readImpl() {
        Player player = getConnection().getActivePlayer();
        if (!player.isSpawned())
            return;
        x = readF();
        y = readF();
        z = readF();
        heading = (byte) readC();
        movementType = (byte) readC();
        type = MovementType.getMovementTypeById(movementType);
        switch (type) {
            case MOVEMENT_START_MOUSE:
            case MOVEMENT_START_KEYBOARD:
                x2 = readF();
                y2 = readF();
                z2 = readF();
                break;
            case MOVEMENT_GLIDE_DOWN:
            case MOVEMENT_GLIDE_START_MOUSE:
                x2 = readF();
                y2 = readF();
                z2 = readF();
                // no break
            case MOVEMENT_GLIDE_UP:
            case VALIDATE_GLIDE_MOUSE:
                glideFlag = (byte) readC();
                break;
            default:
                break;
        }
    }
Код:
public enum MovementType {
    MOVEMENT_START_MOUSE(-32),
    MOVEMENT_START_KEYBOARD(-64),
    VALIDATE_MOUSE(-96),
    VALIDATE_KEYBOARD(-128),
    VALIDATE_JUMP(8),
    VALIDATE_JUMP_WHILE_MOVING(72),
    MOVEMENT_GLIDE_UP(-124),
    MOVEMENT_GLIDE_DOWN(-60),
    MOVEMENT_GLIDE_START_MOUSE(-28),
    VALIDATE_GLIDE_MOUSE(-92),
    MOVEMENT_STOP(0),

    MOVEMENT_STAYIN_ELEVATOR(24),
    MOVEMENT_JUMPIN_ELEVATOR(-48), //sometimes not jump
    MOVEMENT_VALIDATEIN_ELEVATOR(-112), //unk
    MOVEMENT_MOVIN_ELEVATOR(-16),
    MOVEMENT_ON_ELEVATOR(16),
    MOVEMENT_GO_UPDOWN_ELEVATOR(-80),

    UNKNOWN(1);
}
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
Старый 11.01.2012, 11:31   #14
Пользователь
 
Аватар для Silent
 
Регистрация: 07.02.2011
Сообщений: 32
Сказал Спасибо: 8
Имеет 4 спасибок в 4 сообщенях
Silent пока неопределено
По умолчанию

В пакете UserInfo на серверах NCWest перепутаны местами curHP/curMP, если нужно вечером могу выложить распарсенный пакет Вашей версией программы.

Последний раз редактировалось Silent, 11.01.2012 в 21:17.
Silent вне форума   Ответить с цитированием
За это сообщение Silent нажился спасибкой от:
Старый 12.01.2012, 01:55   #15
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Закоммитил на SVN, чтобы не пропала зря работа.
Цитата:
Revision: 267
Author: nlobp
Date: 12 января 2012 г. 0:49:11
Message:
[+] альтернативный парсер пакетов по исходникам java-сервера
----
Added : /3.5.x/Build/settings/packets.ini
Added : /3.5.x/Build/settings/packets.ini/aion21
Added : /3.5.x/Build/settings/packets.ini/aion21/clientpackets
Added : /3.5.x/Build/settings/packets.ini/aion21/serverpackets
Added : /3.5.x/Build/settings/packets.ini/aion27
Added : /3.5.x/Build/settings/packets.ini/aion27/clientpackets
Added : /3.5.x/Build/settings/packets.ini/aion27/serverpackets
Added : /3.5.x/Build/settings/packets.ini/c4
Added : /3.5.x/Build/settings/packets.ini/freya
Added : /3.5.x/Build/settings/packets.ini/god
Added : /3.5.x/Build/settings/packets.ini/god/clientpackets
Added : /3.5.x/Build/settings/packets.ini/god/serverpackets
Added : /3.5.x/Build/settings/packets.ini/gracia
Added : /3.5.x/Build/settings/packets.ini/gracia/clientpackets
Added : /3.5.x/Build/settings/packets.ini/gracia/serverpackets
Added : /3.5.x/Build/settings/packets.ini/graciaepilogue
Added : /3.5.x/Build/settings/packets.ini/graciafinal
Added : /3.5.x/Build/settings/packets.ini/highfive
Added : /3.5.x/Build/settings/packets.ini/highfive/clientpackets
Added : /3.5.x/Build/settings/packets.ini/highfive/serverpackets
Added : /3.5.x/Build/settings/packets.ini/interlude
Modified : /3.5.x/Build/settings/packetsAion27.ini
Modified : /3.5.x/l2ph.cfg
Modified : /3.5.x/l2ph.dpr
Added : /3.5.x/l2ph.dproj
Modified : /3.5.x/l2ph.res
Modified : /3.5.x/units/uAboutDialog.dfm
Modified : /3.5.x/units/uData.pas
Added : /3.5.x/units/uJavaParser.pas
Modified : /3.5.x/units/uMain.dfm
Modified : /3.5.x/units/uMainReplacer.dfm
Modified : /3.5.x/units/uPacketView.dfm
Modified : /3.5.x/units/uPacketView.pas
Modified : /3.5.x/units/uPacketViewer.dfm
Modified : /3.5.x/units/uProcessRawLog.dfm
Modified : /3.5.x/units/uScripts.dfm
Modified : /3.5.x/units/uScripts.pas
Modified : /3.5.x/units/uSettingsDialog.dfm
Modified : /3.5.x/units/uSettingsDialog.pas
Modified : /3.5.x/units/uVisualContainer.dfm
Modified : /3.5.x/units/uVisualContainer.pas
Modified : /3.5.x/units/uglobalfuncs.pas
Modified : /3.5.x/units/usharedstructs.pas
PS: простые пакеты показывает без какой либо модификации *.java файлов.
PPS: пилю дальше, по мере времени.
Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный7.png
Просмотров: 123
Размер:	27.5 Кб
ID:	2571  
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни



Последний раз редактировалось NLObP, 12.01.2012 в 01:59.
NLObP вне форума   Ответить с цитированием
За это сообщение NLObP нажился спасибкой от:
Старый 12.01.2012, 02:02   #16
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Залил скрин и заметил, что заслонил настройку - "обрабатывать пакеты"
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
Старый 28.04.2015, 19:18   #17
Новичок
 
Регистрация: 28.04.2015
Сообщений: 1
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
Caesarbogdan пока неопределено
По умолчанию

не могу настроить и понять как работает эта програма можете помоч?
Caesarbogdan вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Разработка


Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 01:31.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!