Вопрос Загрузка иконок из панорамы

Ревёрсер среднего звена
Пользователь
Статус
Оффлайн
Регистрация
24 Ноя 2022
Сообщения
303
Реакции[?]
108
Поинты[?]
57K
Почитал https://yougame.biz/threads/264431/, попробовал загрузить через этот device со структурами как на его скрине, не получилось, хотя и возвращает тру. Какая должна быть структура класса у output?

Также хочу знать, можно ли и есть ли смысл конвертировать полученное изображение из формата DX11 в OpenGL. Или лучше не долбиться, а сделать напрямую через панораму, панельки там создавать и т. д.?
 
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
779
Реакции[?]
331
Поинты[?]
63K
единственный минус панорамы - она еще в "бете"(как и сама дота), поэтому ее габен часто модифицирует(= по кд меняются оффсеты индексы и тд) в общем сложно поддерживать панораму(еще у панорамы есть проблема с градиентами - там у габена кастомный уебанский алгоритм градиентов(по-другому высчитываются цвета), не как в традиционном html+css). кр4 жопу готовь если ты панораму собрался юзать, много ебли будет
 
Ревёрсер среднего звена
Пользователь
Статус
Оффлайн
Регистрация
24 Ноя 2022
Сообщения
303
Реакции[?]
108
Поинты[?]
57K
единственный минус панорамы - она еще в "бете"(как и сама дота), поэтому ее габен часто модифицирует(= по кд меняются оффсеты индексы и тд) в общем сложно поддерживать панораму(еще у панорамы есть проблема с градиентами - там у габена кастомный уебанский алгоритм градиентов(по-другому высчитываются цвета), не как в традиционном html+css). кр4 жопу готовь если ты панораму собрался юзать, много ебли будет
Ну значит будем на острие ревёрсинга. Мы люди закалённые, выдержим всё(кроме работы вальв по отлову читеров)
 
Ревёрсер среднего звена
Пользователь
Статус
Оффлайн
Регистрация
24 Ноя 2022
Сообщения
303
Реакции[?]
108
Поинты[?]
57K
А, не, всё нормально, этот метод можно вызывать даже без этого CUIRenderDevice:
C++:
typedef bool (*LoadUITextureFn)(void* thisptr, void** texturePtr, const char* textureName);
inline LoadUITextureFn LoadUITexture{};

SIGSCAN_OFF(LoadUITexture, "57 48 83 EC 20 48 8B 1A 49 8B F0 48 8B FA 48 85 DB", L"panorama.dll", -10);
Теперь остаётся только перелопатить мои сурсы с OpenGL в DirectX11 и можно шиковать
 
Начинающий
Статус
Оффлайн
Регистрация
12 Ноя 2022
Сообщения
63
Реакции[?]
23
Поинты[?]
3K
А inventory чейнджеры всякие, оверпласы фемиды панораму используют чтобы шмотки в инвентарь добавить?
 
Ревёрсер среднего звена
Пользователь
Статус
Оффлайн
Регистрация
24 Ноя 2022
Сообщения
303
Реакции[?]
108
Поинты[?]
57K
А inventory чейнджеры всякие, оверпласы фемиды панораму используют чтобы шмотки в инвентарь добавить?
Странное предположение при наличии инфы по этой теме даже здесь, на yougay.biz
Там долбят CGCClient, добавляя и надевая через инвентарь шмотки. Правда там ещё, вроде как, надо не дать доте перед началом игры обновить инвентарь
 
Пользователь
Статус
Оффлайн
Регистрация
8 Апр 2022
Сообщения
663
Реакции[?]
104
Поинты[?]
67K
А, не, всё нормально, этот метод можно вызывать даже без этого CUIRenderDevice:
C++:
typedef bool (*LoadUITextureFn)(void* thisptr, void** texturePtr, const char* textureName);
inline LoadUITextureFn LoadUITexture{};

SIGSCAN_OFF(LoadUITexture, "57 48 83 EC 20 48 8B 1A 49 8B F0 48 8B FA 48 85 DB", L"panorama.dll", -10);
Теперь остаётся только перелопатить мои сурсы с OpenGL в DirectX11 и можно шиковать
textureptr это ID3D11ShaderResourceView ?
 
Ревёрсер среднего звена
Пользователь
Статус
Оффлайн
Регистрация
24 Ноя 2022
Сообщения
303
Реакции[?]
108
Поинты[?]
57K
textureptr это ID3D11ShaderResourceView ?
Зайди в ту тему, на которую я оставил ссылку, там в последнем комменте скрин кода(ну или у меня в репе посмотри SDK/Interfaces/Panorama.h)
Это CSource2UITexture** на твою буфер-переменную, туда кладётся CSource2UITexture*, в котором есть всё ещё вальвоский CTextureDx11, а уже в нём лежат два шейдер вью: один UNORM, другой SRGB. Оба в DXGI_FORMATе BC3(я почитал про это, судя по всему сжатые для экономии места), он рендерится по-уродски, как в той теме. Хотя у предметов стандартный R8G8B8A8(и даже у некоторых способностей, лол)
В лучшем чите во Вселенной, судя по дампу, идёт ручная распаковка vtex_c файлов, и понятно почему
 
Сверху Снизу