Добрый вечер. Для чтения маленьких картинок из файла клиента L2 "Icon.utx" использую компонент TUt_packages, но он не поддерживает новые версии этого файла и соответвенно нет очень многих новых значков.
Подскажите есть ли какой то компонент для извлечения картинок из клиента хотя бы Эпилога?
Удалось открыть item.utx из эпилога, предварительно обработав файл утилитой L2UTX_Fixer_CT2.3. Все нужные иконки там практически есть.
Теперь другая задача. Нужны иконки (хотя бы просто в виде графических файлов) кубиков для заточек. NC soft почему то решил запихнуть их текстуры в большой файл branchsys2.utx. Но при открытии его редактором просмотра ресурсов utpt20beta5 нужные текстуры в списке есть но отрыть их не удается .
Yegor, через utpt20beta5 открой item.utx от нужных тебе хроник и от хроник нормально открывающихся, далее открой из обоих файлов одну и ту же текстуру в хекс виде и увидишь что в новых версиях просто данные изображения сдвинуты на несколько десятков байт, далее в TUt_packages находишь (я искал через пошаговую отладку при попытке получения данных текстуры) место где считываются данные картинки и добавляешь там соответствующий офсет.
Я своего бота так учил новые item.utx открывать, но это было давно, возможно в последних item.utx что то ещё изменилось, хотя сомневаюсь что это так.
Добавлено через 12 минут
у меня похоже на строке 6445 исправлено с такого:
delphi Код:
elseif FOwner.GameHint=UTPGH_Lineage2 then
FOwner.read_dword(buffer)// TODO : unknown dword in Lineage 2elseif FOwner.GameHint=UTPGH_Unreal2 then
на такое:
delphi Код:
elseif FOwner.GameHint=UTPGH_Lineage2 thenbegin
buffer.Seek(37,soFromCurrent); // null array
FOwner.read_sizedascii(buffer); // texture name
FOwner.read_byte(buffer);
FOwner.read_sizedascii(buffer);
FOwner.read_dword(buffer)// TODO : unknown dword in Lineage 2endelseif FOwner.GameHint=UTPGH_Unreal2 then
возможно такая правка и с новыми будет пахать, не проверял
__________________
Я здесь практически не появляюсь!, Skype - ikskor
Последний раз редактировалось xkor, 05.08.2011 в 15:27.
Причина: Добавлено сообщение
возможно такая правка и с новыми будет пахать, не проверял
Сработало даже для файла icon.utx из ГОДа. Мегаспасибо.
Добавлено через 23 часа 50 минут
Вот только почему то некоторые даже старые иконки не соответствуют названию текстуры . При этом название текстуры проверял в файле etcitemgrp.dat из клиента GOD.
Запрос l2IconsData.ExportIndex['scroll_of_enchant_weapon_i06', 'Texture']
возвращает индекс 6512, но по нему читается вообще левая картинка.
Перебрав в цикле ближайшие по списку иконки обнаружил что искомая находится по индексу 6556.
Почему может не совпадать список экспортируемых названий текстур с их изображениями?
Кстати уже успел еще раз прогнать фиксером. Теперь изображение совпадает, только поменялись префиксы названий текстур. Так что немного переделал функцию поиска индекса текступры по имени и все работает.