Предыдущие версии
Название | Размер | Обновлено | Версия игры | Загрузок | |
r86-release release | 17.00 KB | Feb 28, 2021 | 9.0.2 | 0 | ![]() |
r84-release release | 17.05 KB | Jul 3, 2018 | 7.3.5 | 3,748 | ![]() |
r82-release release | 17.08 KB | Feb 25, 2018 | 7.3.5 | 1,472 | ![]() |
r78-release release | 17.02 KB | Jul 15, 2017 | 7.2.5 | 2,369 | ![]() |
r76-release release | 17.40 KB | Nov 6, 2016 | 7.1.0 | 3,802 | ![]() |
r73-release release | 17.31 KB | Aug 28, 2016 | 7.0.3 | 3,390 | ![]() |
7.0-release1 release | 16.52 KB | Jul 19, 2016 | 7.0.3 | 2,529 | ![]() |
r69-release release | 16.66 KB | Apr 13, 2016 | 6.2.4 | 2,183 | ![]() |
r65-release release | 16.60 KB | Aug 23, 2015 | 6.2.0 | 3,401 | ![]() |
r60-release release | 17.18 KB | Jan 16, 2015 | 6.0.3 | 3,437 | ![]() |
r49-release +1 More release | 13.97 KB | Jan 4, 2011 | 4.0.3a | 7,566 | ![]() |
r42-release +1 More release | 13.91 KB | Jul 4, 2010 | 3.3.5 | 785 | ![]() |
LibCompress r42-release +1 More release | 14.03 KB | Dec 12, 2009 | 3.3.0 | 548 | ![]() |
LibCompress r40-release +1 More release | 13.94 KB | Aug 5, 2009 | 3.2.0 | 864 | ![]() |
r38-release +1 More release | 13.91 KB | May 3, 2009 | 3.1.0 | 182 | ![]() |
r36-release release | 14.71 KB | Nov 24, 2008 | 3.0.3 | 96 | ![]() |
r32-release release | 8.52 KB | Nov 18, 2008 | 3.0.3 | 97 | ![]() |
r30-release release | 8.40 KB | Nov 16, 2008 | 3.0.3 | 94 | ![]() |
r27-release release | 7.96 KB | Oct 29, 2008 | 3.0.2 | 110 | ![]() |
LibCompress-r75740 beta | 8.57 KB | Jun 1, 2008 | 2.4.3 | 254 | ![]() |
LibCompress-r74189 beta | 7.30 KB | May 17, 2008 | 2.4.3 | 98 | ![]() |
LibCompress-r73518 beta | 3.46 KB | May 11, 2008 | 2.4.3 | 126 | ![]() |
r83-alpha alpha | 16.69 KB | Jul 3, 2018 | 7.3.5 | 88 | ![]() |
r81-alpha alpha | 17.07 KB | Feb 25, 2018 | 7.3.5 | 50 | ![]() |
r80-alpha alpha | 16.99 KB | Feb 23, 2018 | 7.2.5 | 58 | ![]() |
r79-alpha alpha | 16.71 KB | Feb 23, 2018 | 7.2.5 | 40 | ![]() |
r77-alpha alpha | 16.74 KB | Jul 13, 2017 | 7.2.5 | 103 | ![]() |
r75 alpha | 17.34 KB | Nov 6, 2016 | 7.1.0 | 125 | ![]() |
r74 alpha | 17.24 KB | Nov 6, 2016 | 7.1.0 | 90 | ![]() |
r72 alpha | 17.23 KB | Aug 28, 2016 | 7.0.3 | 62 | ![]() |
r70 alpha | 16.46 KB | Jul 19, 2016 | 7.0.3 | 61 | ![]() |
r68 alpha | 16.60 KB | Apr 13, 2016 | 6.2.4 | 63 | ![]() |
r67 alpha | 16.61 KB | Aug 24, 2015 | 6.2.0 | 316 | ![]() |
r65 alpha | 16.55 KB | Aug 23, 2015 | 6.2.0 | 59 | ![]() |
r64 alpha | 16.50 KB | Aug 23, 2015 | 6.2.0 | 79 | ![]() |
r60 alpha | 17.13 KB | Jan 16, 2015 | 6.0.3 | 62 | ![]() |
r58 alpha | 17.10 KB | Jan 16, 2015 | 6.0.3 | 62 | ![]() |
r56 alpha | 17.06 KB | Jan 16, 2015 | 6.0.3 | 75 | ![]() |
r55 alpha | 16.96 KB | Jan 16, 2015 | 6.0.3 | 67 | ![]() |
r54 alpha | 16.91 KB | Jan 16, 2015 | 6.0.3 | 55 | ![]() |
r53 alpha | 16.85 KB | Jan 16, 2015 | 6.0.3 | 62 | ![]() |
r52 alpha | 16.79 KB | Jan 16, 2015 | 6.0.3 | 68 | ![]() |
r51 +1 More alpha | 20.93 KB | Jan 16, 2015 | 6.0.3 | 66 | ![]() |
r49 +1 More alpha | 13.91 KB | Jan 4, 2011 | 4.0.3a | 79 | ![]() |
r42 +1 More alpha | 13.94 KB | Dec 12, 2009 | 3.3.0 | 80 | ![]() |
r40 +1 More alpha | 13.85 KB | Aug 5, 2009 | 3.2.0 | 61 | ![]() |
r38 +1 More alpha | 13.85 KB | May 3, 2009 | 3.1.0 | 56 | ![]() |
r36 alpha | 14.20 KB | Nov 24, 2008 | 3.0.3 | 42 | ![]() |
r35 alpha | 14.09 KB | Nov 24, 2008 | 3.0.3 | 50 | ![]() |
r34 alpha | 10.68 KB | Nov 23, 2008 | 3.0.3 | 64 | ![]() |
r32 alpha | 7.99 KB | Nov 18, 2008 | 3.0.3 | 48 | ![]() |
r30 alpha | 7.85 KB | Nov 16, 2008 | 3.0.3 | 50 | ![]() |
r29 alpha | 7.46 KB | Nov 16, 2008 | 3.0.3 | 52 | ![]() |
r27 alpha | 7.51 KB | Oct 29, 2008 | 2.4.3 | 89 | ![]() |
r27 alpha | 7.51 KB | Oct 9, 2008 | 2.4.3 | 59 | ![]() |
Описание
LibCompress-это библиотека сжатия и декомпрессии, полностью реализованная в WoW-дружественном Lua. Он поддерживает алгоритмы LZW и Хаффмана и может автоматически выбирать наиболее эффективный алгоритм для ваших данных. Одним из популярных способов использования этой библиотеки является отправка сжатой таблицы другому игроку или дополнению. Для этого требуется дополнительная кодировка для удаления символов \000 из потока данных.
Взгляните на сообщение на форуме для получения дополнительной информации и обсуждения развития:
[http://forums.wowace.com/showthread.php?t=12660]
Использование:
Компрессия
Загрузите библиотеку с помощью:
libc = LibStub:GetLibrary("LibCompress")
Сжатие данных (должно быть в строковой форме):
compressed_data = libc:Сжатие(данных)
Это позволит попробовать все алгоритмы сжатия и вернуть наилучший сжатый результат. Можно указать конкретный алгоритм сжатия, например:
compressed_data = libc:CompressHuffman(data)
или
compressed_data = libc:CompressLZW(данные)
Данные будут либо сжаты с помощью алгоритма сжатия Хаффмана, либо вообще не будут сжаты. Данные, возвращаемые с префиксным байтом, идентифицирующим, что данные распакованы.
Чтобы распаковать данные, просто используйте это:
decompressed_data = libc:Распаковать(compressed_data)
Сжатие и распаковка могут возвращать ошибку, и об этом сигнализирует первый возвращаемый аргумент, равный нулю, а второй-сообщение об ошибке. Так что проверить это было бы уместно.
Кодирование
LibCompress также имеет возможность кодировать и декодировать данные, подготавливая их к передаче по каналу аддона или каналу чата (или пользовательской кодировке). Предусмотрены две формы кодирования:
Префиксное кодирование
Первая форма-префикс-кодирование. В основном зарезервированные символы заменяются префиксом/escape-символом, за которым следует символ суффикса, то есть зарезервированные байты заменяются двухбайтовой комбинацией. Вот как это делается:
таблица, msg = libc:GetEncodeTable(reservedChars, escapeChars, mapChars)
reservedChars: Символы в этой строке не будут отображаться в закодированных данных.
escapeChars: Строка символов, используемых в качестве escape-символов (не предоставляйте больше, чем необходимо). #escapeChars >= 1
mapChars: Первые символы в reservedChars сопоставляются с первыми символами в mapChars. (#mapChars <= #reservedChars)
Если таблица равна нулю, то msg содержит сообщение об ошибке. В противном случае использование очень простое:
encoded_message = таблица:Кодирование(сообщение) сообщение = таблица:Декодирование(encoded_message)
Были включены две предопределенные настройки:
GetAddonEncodeTable: Настройка кодировки для канала аддона (кодируется\000)
GetChatEncodeTable: Настройка кодировки для канала чата (многие байты закодированы, подробнее см. функцию)
7-битное кодирование
Эта кодировка упаковывает биты, а не байты. Он помещает 7 бит в каждый байт, увеличивая данные примерно на 14%. Значения от 0 до 127 (оба включительно) присутствуют в закодированных данных, и поэтому они также должны быть закодированы префиксом. Эта кодировка генерирует немного строкового мусора и должна использоваться с осторожностью.
Кодируйте данные вот так:
encoded_data = libc:Encode7bit(данные)
Расшифровать такие данные :
decoded_data = libc:Decode7bit(encoded_data)
Контрольная сумма/хэш-алгоритмы
LibCompress также предоставляет 2 разумных быстрых алгоритма хэширования. Они преобразуются из C-реализации в lua и довольно быстры. Хэш-значение может быть либо 16-битным, либо 32-битным.
Используйте вот так (data1, data2, data… = string):
код = libc:fcs16init() code = libc:fcs16update(code, data1) code = libc:fcs16update(code, data2) code = libc:fcs16update(код, данные...) code = libc:fcs16final(код)
data = string
fcs16 предоставляет 16-битную контрольную сумму, fcs32 предоставляет 32-битную контрольную сумму.
Добавить комментарий