Re: Костылизация nwindow.dll
Да возможно передавать картинку эмблем в клиент которые хранятся на сервере, такое делали хранили сами картинки в папке сервера(не помню в каком формате) и оттуда их передавали в клиент. Могу ошибаться но вы вроде это имели в виду?
У себя я это делал для отображения эмблем фракций вместо картинки альянса. |
Re: Костылизация nwindow.dll
Цитата:
Только я хочу писать велосипеды, а не костыли. :) А размер текстуры удалось изменить ? |
Re: Костылизация nwindow.dll
Решил попробовать пойти легким путем и передать нужное мне изображение через эмблему клана. Но тут появилась проблема, как заменить уже существующую в кэше эмблему, ибо клиент просто игнорирует пакет PledgeCrest с crestId который уже есть в кэше.
|
Re: Костылизация nwindow.dll
Цитата:
|
Re: Костылизация nwindow.dll
Нашел в engine.dll функцию которая вроде как сохраняет эмблемы. Но больше понимания к тому как оно работает это мне не дало.
Из того что я понял: На клиент приходить пакет PledgeCrest с dds файлом клиент сохраняет его в папку ../crest/ затем, вызывается функция ImportCrestFile, которая подгружает файлы из crest в оперативку или если их много создает utx файл, но это лишь догадка, так как после вызова данной функции dds-ки пропадают, а crest.utx не всегда появляется. UCanvas::ImportCrestFile:Развернуть ↓Собственно вопрос, как узнать куда оно сохраняет текстуру, и как ее оттуда удалить ? За любую информацию, как всегда, буду благодарен. |
Re: Костылизация nwindow.dll
Для того чтобы понять как удаляет - смотри обработку диалога где ставится/убирается значок - там вот скорее всего и дергается какая нибудь функция для удаления старой текустуры (или просто пометки что такая-то текстура удалена) в случае когда удаляется/меняется значок.
|
Re: Костылизация nwindow.dll
Сохраняет текстуру оно в пакет crest.
Это видно с поиска пакета UObject::LoadPackage(0, L"crest", 0x10u, 0) или создания нового UObject::CreatePackage(0, L"crest"). далее оно делает что то типа: ImportObject<UTexture>( Level, Pkg, TempName, RF_Public|RF_Standalone, TempFname ); ну и по сути вся соль импорта в этом вызове он сам найдет импортер для данного обьекта если таковой имееться. Если интиресно фабрику для импорта текстур можно найти в ИДА по строке "RLE compression of BMP images not supported". а удалется обьект как то вот так: UObject* Pkg = Object; while( Pkg->GetOuter() ) Pkg = Pkg->GetOuter(); if( Pkg && Pkg->IsA(UPackage::StaticClass() ) ) ((UPackage*)Pkg)->bDirty = 1; unguard; delete Object; что в итоге превращается в установку флагов для обьекта что он удален. |
Re: Костылизация nwindow.dll
Цитата:
Нажатие кнопки удаления эмблемы клана вызывает RequestClanUnregisterCrest() в NWindow.dll, а там: execRequestClanUnregisteCrest:Развернуть ↓Но к сожалению я не понимаю что тут происходит. Цитата:
Стукните в скайп Triumvare или дайте свой. |
Re: Костылизация nwindow.dll
Позже распишу варианты и постараюсь найти древние наработки которые генерит *.lib файлы с дллок л2 и публичные хедеры к ут2003 на которых в своё время запускал UCC на длл от прелюда.
|
Re: Костылизация nwindow.dll
Вложений: 1
Можешь на базе этого собрать себе нужные хедеры и либы.
|
Текущее время: 23:31. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot