Перейти к содержанию

Дайджесты за январь-февраль

Обновления гайдов и аддонов

Январь Февраль

Мониторинг серверов и редактор аддонов

Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.

Мониторинг серверов Редактор аддонов

Подсказки из игры на вашем сайте

Теперь вы можете отображать сведения о внутриигровых элементах простым наведением курсора мыши.

Подробнее

Апдейтер аддонов

Представляем вам программу для автообновления аддонов и делимся подробностями.

Подробнее Скачать

Иконки


Гость koster

Рекомендуемые сообщения

У кого нибудь получилось достать иконки скиллов, оружия, итп из игры?

Ссылка на комментарий
Поделиться на другие сайты

Иконки хранятся в файле Interface.pak.

После распаковки, иконки вещей находятся тут: \Interface\Icons\Equipment\

Разберём на примере кольца:

Interface\Icons\Equipment\Jewelry\TheRing.(UITexture).bin

782c3a37198d.png

Распакуем ZLib, и получим файл, размером 2056 байт.

По сути, файл является DDS файлом с отрезанным заголовком.

Содержимое размером 2048 байт и заголовок 128 байт.

8 байт уже есть.

Вот, недостающая часть, 120 байт:

Code:
0000000000: 44 44 53 20 7C 00 00 00 │ 07 10 08 00 40 00 00 00  DDS |   •►◘ @

0000000010: 40 00 00 00 00 08 00 00 │ 00 00 00 00 00 00 00 00  @    ◘

0000000020: 00 00 00 00 00 00 00 00 │ 00 00 00 00 00 00 00 00

0000000030: 00 00 00 00 00 00 00 00 │ 00 00 00 00 00 00 00 00

0000000040: 00 00 00 00 00 00 00 00 │ 00 00 00 00 20 00 00 00

0000000050: 04 00 00 00 44 58 54 31 │ 00 00 00 00 00 00 00 00  ♦   DXT1

0000000060: 00 00 00 00 00 00 00 00 │ 00 00 00 00 00 10 00 00               ►

0000000070: 00 00 00 00 00 00 00 00 │

Склеиваем заголовок и данные, и получаем DDS файл, который легко открывается и конвертируется.

Например, DDS-tools от NVidia (во вложении)

Ссылка на комментарий
Поделиться на другие сайты

распаковал винраром, вставил заголовок в хекс редакторе, получилось это

dc47cda6d00e.jpg

Ссылка на комментарий
Поделиться на другие сайты

Надо просто ZLib - ом. Это библиотека упаковки-распаковки.

Подробнее о ZLib на wiki:

http://ru.wikipedia.org/wiki/Zlib

Ссылка на комментарий
Поделиться на другие сайты

питон

Code:
import zlib, sys

name = sys.argv [1] 

file = open(name, 'rb').read()

decompressed = zlib.decompress(file)

dds_header = open('D:/allods_pak/header.bin','rb').read()

n_file = open('D:/allods_pak/texture.bin', 'wb') 

n_file.write(dds_header+decompressed)

n_file.close())

огромное спасибо!

PS а как сделать фон прозрачным, или его нельзя сделать прозрачным?

PPS некоторые файлы почемуто распаковываются такими fb675da7446f.jpg, я как понял это от неправильного размера картинки указаного в ддс хедере, где взять размер иконки?

Ссылка на комментарий
Поделиться на другие сайты

Заголовок сделан для метода сжатия DXT1.

Файлы могут быть сжаты с помощью DXT3, DXT5.

Отличить DXT1 от DXT3 и DXT5 можно по размеру, а DXT3 от DXT5 только по результату.

Прозрачный (альфа) канал уже зашит в эти текстуры. Поставь плагин для Photoshop-а, с помощью него можно конвертить DDS в PNG, например.

В игре, размеры текстур и тип сжатия прописаны в файле pack.bin. Но, к сожалению, пока мы его не расшифровали полностью.

Если есть руки и желание, то помогай)

Ссылка на комментарий
Поделиться на другие сайты

я никогда этим не занимался, могу пару скриптов только написать,

Ссылка на комментарий
Поделиться на другие сайты

в хекс редакторе можно поменять тип сжатия и распаковать такие иконки

Ссылка на комментарий
Поделиться на другие сайты

Странно... у меня хэкс-редактор ничего не сжимает.

Можно поподробнее?

Ссылка на комментарий
Поделиться на другие сайты

использовал сокращенную версию вашего скрипта

Code:
import zlib, sys

file = open('D:/Games/Allods Online/data/Packs/Interface.pak', 'rb').read()

decompressed = zlib.decompress(file)

выдал такое сообщение:

Code:
Traceback (most recent call last):

  File "C:\Python26\test.py", line 3, in <module>

    decompressed = zlib.decompress(file)

zlib.error: Error -3 while decompressing data: incorrect header check

С питоном я мало знаком, сразу говорю. Мне просто нужен инструмент для декомпрессии .pak файлов, чтобы можно было с текстурами разбираться

Ссылка на комментарий
Поделиться на другие сайты

ну ты дал)

*.pak - это обычные ZIP-архивы)

А вот уже там внутри...

Ссылка на комментарий
Поделиться на другие сайты

я себе вчера таким способом установил "Vinдoвз ХП"... очень быстренько бегает...

Ссылка на комментарий
Поделиться на другие сайты

то что эти ЗИП я знаю. Но тогда скажите как мне правильно распаковать эти зипы, чтобы можно было получить нормальные dds без заголовков?

Ссылка на комментарий
Поделиться на другие сайты

Вот софтинка если кому нужна - указываем папку с *.bin файлами иконок (64х64) и на выходе получаем готовые иконки. определяется 99.9% нормально.

если положить в папку nvdecompress.exe то он его подцепит и получите еще и переконвертированный вариант

Ссылка на комментарий
Поделиться на другие сайты

Valltron, первый баг в твоей программе: она пытается сконвертировать ВСЕ файлы в указанной директории. Как только ей попался .RAR архив, она и его попробовала сконвертировать, и, естественно, вылетела.

В общем, перед открытием файла, она должна проверять, есть ли в нём сигнатура ZLib (hex: "78 9С").

P.S. Что-то не понял, из-за каких-то багов форума, не появляется моё сообщение. Придётся дописать здесь:

Ура, товарищи!

Формат текстур ПОЛНОСТЬЮ разобран.

Креатив скоро будет:

http://ui9.ru/forum/develop/topic/54

Ссылка на комментарий
Поделиться на другие сайты

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

Мне помогла и ладно, выложил для всех - может кому полезна будет.

а найти способов как программу уронить всегда можно найти много :)

Ссылка на комментарий
Поделиться на другие сайты

  • 1 год спустя...

Есть ли где-нибудь база соответствий itemId и иконок из Interface.pak/Interface/Icons/Equipment? Идентификаторы целочисленные, ясно-понятно. Но иконки хранятся с именами типа "Interface.pak/Interface/Icons/Equipment/Leather/BeltLeatherCrude.(UITexture).bin"

Ссылка на комментарий
Поделиться на другие сайты

Потому что это принцип любой базы данных. Грубо говоря, есть таблица с предметами, где у каждого свой ID и все остальные атрибуты (имя, тип, уровень и т.п.). Есть таблица с иконками, где у каждой свой ID и остальные атрибуты (имя файла в паке, например). И есть таблица связей между ними. Либо в таблице предметов явно указано в поле "ID иконки" идентификатор этой самой иконки.

И вот в API есть такая функция GetItemInfo(), которая помимо прочего возвращает свойство icon - это и есть ID иконки, если я правильно понял мануал. В общем это подтверждает мою догадку, но свойство это доступно только в UI и я не очень понимаю, что это значит. Но например в лог эту информацию не выведешь.

Ну либо я ошибаюсь и есть только таблица предметов, в которой явно строкой указано имя файла иконки. В любом случае хотелось бы как-то получить эту информацию.

Ссылка на комментарий
Поделиться на другие сайты

GetItemInfo выдает "ссылку на иконку" в формате USERDATA. то есть это иконка, которая хранится в самом клиенте, и которую через API ты можешь использовать в UI... короче чтобы вывести на экран. визуализировать...

в общем как то так. никаких ID у иконки нет. так вот оно реализовано...

Ссылка на комментарий
Поделиться на другие сайты

Тогда подходит последний абзац из моего сообщения. Каким-то же образом налажена связь между "Бушлат краеведа ИВО" и FurryUndershirt.(UITexture).bin? Совпадения случайны, просто для примера привёл два первых попавшихся названия.

Ссылка на комментарий
Поделиться на другие сайты

Если бы всё было так просто, уже давно бы аналог wowhead-а нормальный состряпали.

Нет никакого item id, айдишники возвращаются для сеансовых экземпляров предметов в клиенте.

Впрочем, где-то внутри, на сервере Нивалов, оно всё как-то хранится, и скорее всего шаблолны предметов с айдишниками там есть.

Quote:
Каким-то же образом налажена связь между "Бушлат краеведа ИВО" и FurryUndershirt.(UITexture).bin?

Соответствие скорее всего описано в файле pack.bin, но к сожалению этот файл пока не поддался распаковке.

В этом файле запакованы некоторые таблицы игровой механики, и также, например, xdb файлы, отвечающие за отображение текстур (ширина, высота, некоторые атрибуты).

Если сможешь расколупать файл, будешь первым, кто сможет описать соответствия предметов и их иконок.

Ссылка на комментарий
Поделиться на другие сайты

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...

Важная информация

Пользуясь сайтом, вы принимаете Условия использования