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

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Lineage II (https://forum.zone-game.info/forumdisplay.php?f=34)
-   -   Работа над Goddess of Destruction (part 6) (https://forum.zone-game.info/showthread.php?t=31771)

Bonux 17.12.2013 19:25

Re: Работа над Goddess of Destruction (part 6)
 
Оффтоп:
Свернуть ↑Развернуть ↓

Mifesto 17.12.2013 22:26

Re: Работа над Goddess of Destruction (part 6)
 
Цитата:

Сообщение от BoneBreaker (Сообщение 339654)
А вместо CharInfo что идёт оО?

Engine - http://rghost.ru/51030918


CharInfo как был так и остался, он в клиенте называется CIPacket.

BoneBreaker 17.12.2013 23:12

Re: Работа над Goddess of Destruction (part 6)
 
Цитата:

Сообщение от Mifesto (Сообщение 339728)
CharInfo как был так и остался, он в клиенте называется CIPacket.

Хм, я думал он не используется больше.

Добавлено через 2 часа 7 минут
С CharInfo разобрался, не критует.

Такой вопрос, что сталось с ItemInfo?

Структуру нашёл, переделал, в лобби при выборе всё хорошо, в игре у оружия заточка сразу светится.

И еще, если не надет верхний доспех, то остальные части не отображаются.

из L2GameServerPacket:
Свернуть ↑Развернуть ↓

Mifesto 18.12.2013 01:40

Re: Работа над Goddess of Destruction (part 6)
 
Цитата:

Сообщение от BoneBreaker (Сообщение 339751)
Хм, я думал он не используется больше.

Добавлено через 2 часа 7 минут
С CharInfo разобрался, не критует.

Такой вопрос, что сталось с ItemInfo?

Структуру нашёл, переделал, в лобби при выборе всё хорошо, в игре у оружия заточка сразу светится.

И еще, если не надет верхний доспех, то остальные части не отображаются.

За отображение у персонажа отвечает ExUserInfoEquipSlot, за отображение у других персонажуй CharInfo, itemInfo всего лиш записывает инфу в пакеты такие как инвентарь, трэйд и тд.

BoneBreaker 18.12.2013 01:50

Re: Работа над Goddess of Destruction (part 6)
 
Цитата:

Сообщение от Mifesto (Сообщение 339779)
За отображение у персонажа отвечает ExUserInfoEquipSlot, за отображение у других персонажуй CharInfo, itemInfo всего лиш записывает инфу в пакеты такие как инвентарь, трэйд и тд.

ну даже если брать ExUserInfoEquipSlot.

Код:

_inv = new int[Inventory.PAPERDOLL_MAX][5];
                for(int PAPERDOLL_ID : Inventory.PAPERDOLL_ORDER)
                {
                        _inv[PAPERDOLL_ID][0] = player.getInventory().getPaperdollObjectId(PAPERDOLL_ID);
                        _inv[PAPERDOLL_ID][1] = player.getInventory().getPaperdollItemId(PAPERDOLL_ID);
                        _inv[PAPERDOLL_ID][2] = player.getInventory().getPaperdollAugmentationId(PAPERDOLL_ID);
                        _inv[PAPERDOLL_ID][3] = player.getInventory().getPaperdollAugmentationId(PAPERDOLL_ID);
                        _inv[PAPERDOLL_ID][4] = player.getInventory().getVisualItemId(PAPERDOLL_ID);
                }

Код:

writeB(new byte[]{(byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF});
                        writeH(18);
                        for(int[] inv : _inv)
                        {
                                writeD(inv[0]);
                                writeD(inv[1]);
                                writeH(inv[2]);
                                writeH(inv[3]);
                                writeD(inv[4]);
                                writeH(18);
                        }
                        writeD(0x00);
                        writeD(0x00);
                        writeD(0x00);
                        writeD(0x00);

Брошь и 6 камушков для порядка добавил.

Mifesto 18.12.2013 07:41

Re: Работа над Goddess of Destruction (part 6)
 
очень интересно сформировали пакет=)

у меня получается так:

Код HTML:

<part name="objectId" type="d"/>

                                        <part name="size" type="h" id="0"/>
                                        <part name="Неизвестно" type="c"/>
                                        <part name="Неизвестно" type="c"/>
                                        <part name="Неизвестно" type="c"/>
                                        <part name="Неизвестно" type="c"/>
                                        <part name="Неизвестно" type="c"/>

                                        <for id="0">
                                                <part name="block_size" type="h"/>
                                                <part name="objectId" type="d"/>
                                                <part name="itemId" type="d"/>
                                                <part name="Неизвестно" type="d"/>
                                                <part name="Неизвестно" type="d"/>
                                        </for>

не знаю верные ли последние 2 D, так как разбираю пока просто протокол, без тестов, но зачем ставить размер блока в конец? Ведь размер блока перед записью идет.

BoneBreaker 18.12.2013 07:47

Re: Работа над Goddess of Destruction (part 6)
 
Цитата:

Сообщение от Mifesto (Сообщение 339797)
очень интересно сформировали пакет=)

у меня получается так:

Код HTML:

<part name="objectId" type="d"/>

                                        <part name="size" type="h" id="0"/>
                                        <part name="Неизвестно" type="c"/>
                                        <part name="Неизвестно" type="c"/>
                                        <part name="Неизвестно" type="c"/>
                                        <part name="Неизвестно" type="c"/>
                                        <part name="Неизвестно" type="c"/>

                                        <for id="0">
                                                <part name="block_size" type="h"/>
                                                <part name="objectId" type="d"/>
                                                <part name="itemId" type="d"/>
                                                <part name="Неизвестно" type="d"/>
                                                <part name="Неизвестно" type="d"/>
                                        </for>

не знаю верные ли последние 2 D, так как разбираю пока просто протокол, без тестов, но зачем ставить размер блока в конец? Ведь размер блока перед записью идет.

Ну про последние 2D, там в любом случае одна, по идее, - визуальный ID после обработки.

Ан не, со свечением разобрался, это в ExUserInfo накосячил

Mifesto 18.12.2013 07:56

Re: Работа над Goddess of Destruction (part 6)
 
это понятно, просто для аргументации если не ошибаюсь хватит и short, так же для заточки, вот можно Дшку и разделить так, а вообще буду потом эксперементировать... Сей час главное правильную работу UserInfo и NpcInfo разобрать, так как тут эти чертовы флаги.

BoneBreaker 18.12.2013 08:05

Re: Работа над Goddess of Destruction (part 6)
 
С UserInfo я вроде доразобрался, а вот с Npc застопорился.

получилось как то так, но это бредятина

Код:

D - obj
C - unk
H - кол-во блоков
C
C
C
C
C
C - блок с титулом
C - isAtack
D unk
S - title
H - unk

H - block
D - npcId
D - x
D - y
D - z
D - h
D - unk
D - matkspd
D - patkspd
F
F
C - nameAbove
C - run
C - combat
C - dead
C - spawn

C - unk
C - unk
D - unk

D - hp
D - mp

C - unk

H - unk

А вот кстати с визуальным одеванием сета трабла неясна.

Bonux 18.12.2013 16:58

Re: Работа над Goddess of Destruction (part 6)
 
Цитата:

Сообщение от BoneBreaker (Сообщение 339803)
С UserInfo я вроде доразобрался, а вот с Npc застопорился.

получилось как то так, но это бредятина

Код:

D - obj
C - unk
H - кол-во блоков
C
C
C
C
C
C - блок с титулом
C - isAtack
D unk
S - title
H - unk

H - block
D - npcId
D - x
D - y
D - z
D - h
D - unk
D - matkspd
D - patkspd
F
F
C - nameAbove
C - run
C - combat
C - dead
C - spawn

C - unk
C - unk
D - unk

D - hp
D - mp

C - unk

H - unk

А вот кстати с визуальным одеванием сета трабла неясна.

Пока то что мне удалось разобрать... Надеюсь поможет.
Код:

                writeEx(0x167);
                writeD(_npcObjId);
                writeC(0x00); // UNK
                writeH(37);
                writeB(new byte[]{(byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF});
                writeC(7 + _title.length() * 2);
                writeC(_isAttackable ? 1 : 0);
                writeD(0x00); // UNK
                writeCutS(_title);
                writeH(0x00); // UNK

                if(_isLoading)
                {
                        writeH(143);
                        writeD(_npcId + 1000000); // npctype id c4
                        writeD(_loc.x);
                        writeD(_loc.y);
                        writeD(_loc.z + Config.CLIENT_Z_SHIFT);
                        writeD(_loc.h);
                        writeD(0x00); //UNK
                        writeD(_mAtkSpd);
                        writeD(_pAtkSpd);
                        writeF(_runSpdMul);
                        writeF(_atkSpdMul);
                        writeC(dead);
                        writeC(running);
                        writeC(isFlying ? 2 : 0); // C2
                        writeC(isFlying ? 1 : 0); // C2
                        // Неизвестный формат. Забываем длину пакета. START
                        writeD(0x01); //UNK
                        writeD(0x00); //UNK
                        writeD(0x00); //UNK
                        writeD(0x00); //UNK
                        writeD(0x00); //UNK
                        writeD(0x00); //UNK
                        writeD(0x00); //UNK
                        // Неизвестный формат. Забываем длину пакета. END
                        writeD(_currentHP);
                        writeD(_currentMP);
                        writeD(_maxHP);
                        writeD(_maxMP);
                        // Далее идет еще 47 неизвестных байт.
                }

А что с одеванием сета не ясно?


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

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