-
Автор темы
- #1
Достижение вот этого https://yougame.biz/threads/119970/ наиболее правильным путем:
Так как мы с вами не лохи какие-то, парсер мы юзать не буим, вместо этого мы заюзаем IBaseFileSystem
И добавляем переменную которая будет хранить этот интерфейс:
После этого мы инициализируем текстуру так:
И дальше можете отрисовывать как хотите, у меня меню на имгуи - поэтому я буду отрисовывать так:
Результат:
Так как мы с вами не лохи какие-то, парсер мы юзать не буим, вместо этого мы заюзаем IBaseFileSystem
Код:
struct IBaseFileSystem
{
VFUNC( 0, Read( void* output, int size, void* file ), int( __thiscall* )( void*, void*, int, void* ) )( output, size, file );
VFUNC( 2, Open( const char* file_name, const char* options, const char* path_id ), void* ( __thiscall* )( void*, const char*, const char*, const char* ) )( file_name, options, path_id );
VFUNC( 3, Close( void* file ), void( __thiscall* )( void*, void* ) )( file );
VFUNC( 7, Size( void* file ), unsigned int( __thiscall* )( void*, void* ) )( file );
};
Код:
ADD_INTERFACE( IBaseFileSystem, basefilesys, "VBaseFileSystem" ); // VBaseFileSystem011 в filesystem_stdio.dll
Код:
const auto handle = ctx::csgo->basefilesys->Open( "resource/flash/econ/default_generated/weapon_ak47_cu_ak_neon_rider_light_large.png", "r", "GAME" );
if ( handle )
{
int file_len = ctx::csgo->basefilesys->Size( handle );
char* image = new char[ file_len ];
ctx::csgo->basefilesys->Read( image, file_len, handle );
ctx::csgo->basefilesys->Close( handle );
D3DXCreateTextureFromFileInMemory( ctx::csgo->device, image, file_len, &m_skin_texture );
delete[ ] image;
}
Код:
if ( m_skin_texture )
ImGui::Image( m_skin_texture, { 256, 192 } );
Последнее редактирование: