Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   Опкоды, Формулы, Клиент (http://mangos.ytdb.ru/forumdisplay.php?f=9)
-   -   Компрессия 5.x (http://mangos.ytdb.ru/showthread.php?t=7419)

Amaru 12.09.2013 12:12

Компрессия 5.x
 
Кто-нибудь собирался со сжатием опкодов в пандарии?

Походу теперь сжатый пакет имеет вид

Opcode:
SMSG_COMPRESSED_PACKET

Data:
uint32(compressedsize)array(compressedData)

compressedData:
compress(uint32(originalOpcode)array(originalData) )

RomanRom2 12.09.2013 13:32

он вроде таким и был всегда, обычный зип. а что за компресс в конце? что имеется ввиду?

Amaru 12.09.2013 13:57

это то что внутри array(compressedData)
сжатый оригинальный пакет, теперь 4-байтовый оригинальный опкод+данные. раньше оригинальный опкод не слался, к опкоду сжатого пакета прибавлялась маска 0x8000, означающая что он сжатый.

Ката:
Код:

Opcode:
originalOpcode |= 0x8000;
Data:
uint32(compressedsize)array(zlib_compress(array(data)))

Пандоры:
Код:

Opcode:
SMSG_COMPRESSED_PACKET
Data:
uint32(compressedsize)array(zlib_compress(uint32(originalOpcode)array(data)))



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

ru-mangos.ru - Русское сообщество MaNGOS