void CChams::AddHitmatrix( C_CSPlayer* player, matrix3x4_t* bones ) {
auto& hit = m_Hitmatrix.emplace_back( );
std::memcpy( hit.pBoneToWorld, bones, player->m_CachedBoneData( ).Count( ) * sizeof( matrix3x4_t ) );
hit.time = Source::m_pGlobalVars->realtime + g_Vars.esp.hitmatrix_time;
static int m_nSkin = Horizon::Memory::FindInDataMap( player->GetPredDescMap( ), XorStr( "m_nSkin" ) );
static int m_nBody = Horizon::Memory::FindInDataMap( player->GetPredDescMap( ), XorStr( "m_nBody" ) );
hit.info.origin = player->GetAbsOrigin( );
hit.info.angles = player->GetAbsAngles( );
auto renderable = player->GetClientRenderable( );
if ( !renderable )
return;
auto model = player->GetModel( );
if ( !model )
return;
auto hdr = *( studiohdr_t** ) ( player->m_pStudioHdr( ) );
if ( !hdr )
return;
hit.state.m_pStudioHdr = hdr;
hit.state.m_pStudioHWData = Source::m_pMDLCache->GetHardwareData( model->studio );
hit.state.m_pRenderable = renderable;
hit.state.m_drawFlags = 0;
hit.info.pRenderable = renderable;
hit.info.pModel = model;
hit.info.pLightingOffset = nullptr;
hit.info.pLightingOrigin = nullptr;
hit.info.hitboxset = player->m_nHitboxSet( );
hit.info.skin = ( int ) ( uintptr_t( player ) + m_nSkin );
hit.info.body = ( int ) ( uintptr_t( player ) + m_nBody );
hit.info.entity_index = player->m_entIndex;
hit.info.instance = Memory::VCall<ModelInstanceHandle_t( __thiscall* )( void* ) >( renderable, 30u )( renderable );
hit.info.flags = 0x1;
hit.info.pModelToWorld = &hit.model_to_world;
hit.state.m_pModelToWorld = &hit.model_to_world;
hit.model_to_world.AngleMatrix( hit.info.angles, hit.info.origin );
}
void CChams::OnPostScreenEffects( ) {
if ( !g_Vars.globals.HackIsReady )
m_Hitmatrix.clear( );
if ( m_Hitmatrix.empty( ) )
return;
if ( !Source::m_pStudioRender.Xor( ) )
return;
auto drawed_shit = false;
auto ctx = Source::m_pMatSystem->GetRenderContext( );
if ( !ctx )
return;
auto it = m_Hitmatrix.begin( );
while ( it != m_Hitmatrix.end( ) ) {
if ( !it->state.m_pModelToWorld || !it->state.m_pRenderable || !it->state.m_pStudioHdr || !it->state.m_pStudioHWData ||
!it->info.pRenderable || !it->info.pModelToWorld || !it->info.pModel ) {
++it;
continue;
}
auto alpha = 1.0f;
auto delta = Source::m_pGlobalVars->realtime - it->time;
if ( delta > 0.0f ) {
alpha -= delta;
if ( delta > 1.0f ) {
it = m_Hitmatrix.erase( it );
continue;
}
}
drawed_shit = true;
auto color = g_Vars.esp.hitmatrix_color;
color.a *= alpha;
OverrideMaterial( true, g_Vars.esp.chams_hitmatrix_mat, color );
Hooked::oDrawModelExecute( Source::m_pModelRender.Xor( ), ctx, it->state, it->info, it->pBoneToWorld );
Source::m_pStudioRender->m_pForcedMaterial = nullptr;
Source::m_pStudioRender->m_nForcedMaterialType = 0;
++it;
}
}
struct C_HitMatrixEntry {
int ent_index;
ModelRenderInfo_t info;
DrawModelState_t state;
matrix3x4_t pBoneToWorld[ 128 ] = {};
float time;
matrix3x4_t model_to_world;
};
КУДА тебя можно поцеловать ?C++:void CChams::AddHitmatrix( C_CSPlayer* player, matrix3x4_t* bones ) { auto& hit = m_Hitmatrix.emplace_back( ); std::memcpy( hit.pBoneToWorld, bones, player->m_CachedBoneData( ).Count( ) * sizeof( matrix3x4_t ) ); hit.time = Source::m_pGlobalVars->realtime + g_Vars.esp.hitmatrix_time; static int m_nSkin = Horizon::Memory::FindInDataMap( player->GetPredDescMap( ), XorStr( "m_nSkin" ) ); static int m_nBody = Horizon::Memory::FindInDataMap( player->GetPredDescMap( ), XorStr( "m_nBody" ) ); hit.info.origin = player->GetAbsOrigin( ); hit.info.angles = player->GetAbsAngles( ); auto renderable = player->GetClientRenderable( ); if ( !renderable ) return; auto model = player->GetModel( ); if ( !model ) return; auto hdr = *( studiohdr_t** ) ( player->m_pStudioHdr( ) ); if ( !hdr ) return; hit.state.m_pStudioHdr = hdr; hit.state.m_pStudioHWData = Source::m_pMDLCache->GetHardwareData( model->studio ); hit.state.m_pRenderable = renderable; hit.state.m_drawFlags = 0; hit.info.pRenderable = renderable; hit.info.pModel = model; hit.info.pLightingOffset = nullptr; hit.info.pLightingOrigin = nullptr; hit.info.hitboxset = player->m_nHitboxSet( ); hit.info.skin = ( int ) ( uintptr_t( player ) + m_nSkin ); hit.info.body = ( int ) ( uintptr_t( player ) + m_nBody ); hit.info.entity_index = player->m_entIndex; hit.info.instance = Memory::VCall<ModelInstanceHandle_t( __thiscall* )( void* ) >( renderable, 30u )( renderable ); hit.info.flags = 0x1; hit.info.pModelToWorld = &hit.model_to_world; hit.state.m_pModelToWorld = &hit.model_to_world; hit.model_to_world.AngleMatrix( hit.info.angles, hit.info.origin ); }
C++:void CChams::OnPostScreenEffects( ) { if ( !g_Vars.globals.HackIsReady ) m_Hitmatrix.clear( ); if ( m_Hitmatrix.empty( ) ) return; if ( !Source::m_pStudioRender.Xor( ) ) return; auto drawed_shit = false; auto ctx = Source::m_pMatSystem->GetRenderContext( ); if ( !ctx ) return; auto it = m_Hitmatrix.begin( ); while ( it != m_Hitmatrix.end( ) ) { if ( !it->state.m_pModelToWorld || !it->state.m_pRenderable || !it->state.m_pStudioHdr || !it->state.m_pStudioHWData || !it->info.pRenderable || !it->info.pModelToWorld || !it->info.pModel ) { ++it; continue; } auto alpha = 1.0f; auto delta = Source::m_pGlobalVars->realtime - it->time; if ( delta > 0.0f ) { alpha -= delta; if ( delta > 1.0f ) { it = m_Hitmatrix.erase( it ); continue; } } drawed_shit = true; auto color = g_Vars.esp.hitmatrix_color; color.a *= alpha; OverrideMaterial( true, g_Vars.esp.chams_hitmatrix_mat, color ); Hooked::oDrawModelExecute( Source::m_pModelRender.Xor( ), ctx, it->state, it->info, it->pBoneToWorld ); Source::m_pStudioRender->m_pForcedMaterial = nullptr; Source::m_pStudioRender->m_nForcedMaterialType = 0; ++it; } }
C++:struct C_HitMatrixEntry { int ent_index; ModelRenderInfo_t info; DrawModelState_t state; matrix3x4_t pBoneToWorld[ 128 ] = {}; float time; matrix3x4_t model_to_world; };
а зачемC++:void CChams::AddHitmatrix( C_CSPlayer* player, matrix3x4_t* bones ) { auto& hit = m_Hitmatrix.emplace_back( ); std::memcpy( hit.pBoneToWorld, bones, player->m_CachedBoneData( ).Count( ) * sizeof( matrix3x4_t ) ); hit.time = Source::m_pGlobalVars->realtime + g_Vars.esp.hitmatrix_time; static int m_nSkin = Horizon::Memory::FindInDataMap( player->GetPredDescMap( ), XorStr( "m_nSkin" ) ); static int m_nBody = Horizon::Memory::FindInDataMap( player->GetPredDescMap( ), XorStr( "m_nBody" ) ); hit.info.origin = player->GetAbsOrigin( ); hit.info.angles = player->GetAbsAngles( ); auto renderable = player->GetClientRenderable( ); if ( !renderable ) return; auto model = player->GetModel( ); if ( !model ) return; auto hdr = *( studiohdr_t** ) ( player->m_pStudioHdr( ) ); if ( !hdr ) return; hit.state.m_pStudioHdr = hdr; hit.state.m_pStudioHWData = Source::m_pMDLCache->GetHardwareData( model->studio ); hit.state.m_pRenderable = renderable; hit.state.m_drawFlags = 0; hit.info.pRenderable = renderable; hit.info.pModel = model; hit.info.pLightingOffset = nullptr; hit.info.pLightingOrigin = nullptr; hit.info.hitboxset = player->m_nHitboxSet( ); hit.info.skin = ( int ) ( uintptr_t( player ) + m_nSkin ); hit.info.body = ( int ) ( uintptr_t( player ) + m_nBody ); hit.info.entity_index = player->m_entIndex; hit.info.instance = Memory::VCall<ModelInstanceHandle_t( __thiscall* )( void* ) >( renderable, 30u )( renderable ); hit.info.flags = 0x1; hit.info.pModelToWorld = &hit.model_to_world; hit.state.m_pModelToWorld = &hit.model_to_world; hit.model_to_world.AngleMatrix( hit.info.angles, hit.info.origin ); }
C++:void CChams::OnPostScreenEffects( ) { if ( !g_Vars.globals.HackIsReady ) m_Hitmatrix.clear( ); if ( m_Hitmatrix.empty( ) ) return; if ( !Source::m_pStudioRender.Xor( ) ) return; auto drawed_shit = false; auto ctx = Source::m_pMatSystem->GetRenderContext( ); if ( !ctx ) return; auto it = m_Hitmatrix.begin( ); while ( it != m_Hitmatrix.end( ) ) { if ( !it->state.m_pModelToWorld || !it->state.m_pRenderable || !it->state.m_pStudioHdr || !it->state.m_pStudioHWData || !it->info.pRenderable || !it->info.pModelToWorld || !it->info.pModel ) { ++it; continue; } auto alpha = 1.0f; auto delta = Source::m_pGlobalVars->realtime - it->time; if ( delta > 0.0f ) { alpha -= delta; if ( delta > 1.0f ) { it = m_Hitmatrix.erase( it ); continue; } } drawed_shit = true; auto color = g_Vars.esp.hitmatrix_color; color.a *= alpha; OverrideMaterial( true, g_Vars.esp.chams_hitmatrix_mat, color ); Hooked::oDrawModelExecute( Source::m_pModelRender.Xor( ), ctx, it->state, it->info, it->pBoneToWorld ); Source::m_pStudioRender->m_pForcedMaterial = nullptr; Source::m_pStudioRender->m_nForcedMaterialType = 0; ++it; } }
C++:struct C_HitMatrixEntry { int ent_index; ModelRenderInfo_t info; DrawModelState_t state; matrix3x4_t pBoneToWorld[ 128 ] = {}; float time; matrix3x4_t model_to_world; };
отрисовкаКУДА тебя можно поцеловать ?
а зачем
void CChams::OnPostScreenEffects( )?
а точнее для чего ?
он рендерит сами "чамсы"а зачем
void CChams::OnPostScreenEffects( )?
а точнее для чего ?
Ебааа, а нахуя вопрос столько кодаC++:void CChams::AddHitmatrix( C_CSPlayer* player, matrix3x4_t* bones ) { auto& hit = m_Hitmatrix.emplace_back( ); std::memcpy( hit.pBoneToWorld, bones, player->m_CachedBoneData( ).Count( ) * sizeof( matrix3x4_t ) ); hit.time = Source::m_pGlobalVars->realtime + g_Vars.esp.hitmatrix_time; static int m_nSkin = Horizon::Memory::FindInDataMap( player->GetPredDescMap( ), XorStr( "m_nSkin" ) ); static int m_nBody = Horizon::Memory::FindInDataMap( player->GetPredDescMap( ), XorStr( "m_nBody" ) ); hit.info.origin = player->GetAbsOrigin( ); hit.info.angles = player->GetAbsAngles( ); auto renderable = player->GetClientRenderable( ); if ( !renderable ) return; auto model = player->GetModel( ); if ( !model ) return; auto hdr = *( studiohdr_t** ) ( player->m_pStudioHdr( ) ); if ( !hdr ) return; hit.state.m_pStudioHdr = hdr; hit.state.m_pStudioHWData = Source::m_pMDLCache->GetHardwareData( model->studio ); hit.state.m_pRenderable = renderable; hit.state.m_drawFlags = 0; hit.info.pRenderable = renderable; hit.info.pModel = model; hit.info.pLightingOffset = nullptr; hit.info.pLightingOrigin = nullptr; hit.info.hitboxset = player->m_nHitboxSet( ); hit.info.skin = ( int ) ( uintptr_t( player ) + m_nSkin ); hit.info.body = ( int ) ( uintptr_t( player ) + m_nBody ); hit.info.entity_index = player->m_entIndex; hit.info.instance = Memory::VCall<ModelInstanceHandle_t( __thiscall* )( void* ) >( renderable, 30u )( renderable ); hit.info.flags = 0x1; hit.info.pModelToWorld = &hit.model_to_world; hit.state.m_pModelToWorld = &hit.model_to_world; hit.model_to_world.AngleMatrix( hit.info.angles, hit.info.origin ); }
C++:void CChams::OnPostScreenEffects( ) { if ( !g_Vars.globals.HackIsReady ) m_Hitmatrix.clear( ); if ( m_Hitmatrix.empty( ) ) return; if ( !Source::m_pStudioRender.Xor( ) ) return; auto drawed_shit = false; auto ctx = Source::m_pMatSystem->GetRenderContext( ); if ( !ctx ) return; auto it = m_Hitmatrix.begin( ); while ( it != m_Hitmatrix.end( ) ) { if ( !it->state.m_pModelToWorld || !it->state.m_pRenderable || !it->state.m_pStudioHdr || !it->state.m_pStudioHWData || !it->info.pRenderable || !it->info.pModelToWorld || !it->info.pModel ) { ++it; continue; } auto alpha = 1.0f; auto delta = Source::m_pGlobalVars->realtime - it->time; if ( delta > 0.0f ) { alpha -= delta; if ( delta > 1.0f ) { it = m_Hitmatrix.erase( it ); continue; } } drawed_shit = true; auto color = g_Vars.esp.hitmatrix_color; color.a *= alpha; OverrideMaterial( true, g_Vars.esp.chams_hitmatrix_mat, color ); Hooked::oDrawModelExecute( Source::m_pModelRender.Xor( ), ctx, it->state, it->info, it->pBoneToWorld ); Source::m_pStudioRender->m_pForcedMaterial = nullptr; Source::m_pStudioRender->m_nForcedMaterialType = 0; ++it; } }
C++:struct C_HitMatrixEntry { int ent_index; ModelRenderInfo_t info; DrawModelState_t state; matrix3x4_t pBoneToWorld[ 128 ] = {}; float time; matrix3x4_t model_to_world; };
а можно разве короче код сделать ?)Ебааа, а нахуя вопрос столько кода
а теперь перепиши под легендвар пж)C++:void CChams::AddHitmatrix( C_CSPlayer* player, matrix3x4_t* bones ) { auto& hit = m_Hitmatrix.emplace_back( ); std::memcpy( hit.pBoneToWorld, bones, player->m_CachedBoneData( ).Count( ) * sizeof( matrix3x4_t ) ); hit.time = Source::m_pGlobalVars->realtime + g_Vars.esp.hitmatrix_time; static int m_nSkin = Horizon::Memory::FindInDataMap( player->GetPredDescMap( ), XorStr( "m_nSkin" ) ); static int m_nBody = Horizon::Memory::FindInDataMap( player->GetPredDescMap( ), XorStr( "m_nBody" ) ); hit.info.origin = player->GetAbsOrigin( ); hit.info.angles = player->GetAbsAngles( ); auto renderable = player->GetClientRenderable( ); if ( !renderable ) return; auto model = player->GetModel( ); if ( !model ) return; auto hdr = *( studiohdr_t** ) ( player->m_pStudioHdr( ) ); if ( !hdr ) return; hit.state.m_pStudioHdr = hdr; hit.state.m_pStudioHWData = Source::m_pMDLCache->GetHardwareData( model->studio ); hit.state.m_pRenderable = renderable; hit.state.m_drawFlags = 0; hit.info.pRenderable = renderable; hit.info.pModel = model; hit.info.pLightingOffset = nullptr; hit.info.pLightingOrigin = nullptr; hit.info.hitboxset = player->m_nHitboxSet( ); hit.info.skin = ( int ) ( uintptr_t( player ) + m_nSkin ); hit.info.body = ( int ) ( uintptr_t( player ) + m_nBody ); hit.info.entity_index = player->m_entIndex; hit.info.instance = Memory::VCall<ModelInstanceHandle_t( __thiscall* )( void* ) >( renderable, 30u )( renderable ); hit.info.flags = 0x1; hit.info.pModelToWorld = &hit.model_to_world; hit.state.m_pModelToWorld = &hit.model_to_world; hit.model_to_world.AngleMatrix( hit.info.angles, hit.info.origin ); }
C++:void CChams::OnPostScreenEffects( ) { if ( !g_Vars.globals.HackIsReady ) m_Hitmatrix.clear( ); if ( m_Hitmatrix.empty( ) ) return; if ( !Source::m_pStudioRender.Xor( ) ) return; auto drawed_shit = false; auto ctx = Source::m_pMatSystem->GetRenderContext( ); if ( !ctx ) return; auto it = m_Hitmatrix.begin( ); while ( it != m_Hitmatrix.end( ) ) { if ( !it->state.m_pModelToWorld || !it->state.m_pRenderable || !it->state.m_pStudioHdr || !it->state.m_pStudioHWData || !it->info.pRenderable || !it->info.pModelToWorld || !it->info.pModel ) { ++it; continue; } auto alpha = 1.0f; auto delta = Source::m_pGlobalVars->realtime - it->time; if ( delta > 0.0f ) { alpha -= delta; if ( delta > 1.0f ) { it = m_Hitmatrix.erase( it ); continue; } } drawed_shit = true; auto color = g_Vars.esp.hitmatrix_color; color.a *= alpha; OverrideMaterial( true, g_Vars.esp.chams_hitmatrix_mat, color ); Hooked::oDrawModelExecute( Source::m_pModelRender.Xor( ), ctx, it->state, it->info, it->pBoneToWorld ); Source::m_pStudioRender->m_pForcedMaterial = nullptr; Source::m_pStudioRender->m_nForcedMaterialType = 0; ++it; } }
C++:struct C_HitMatrixEntry { int ent_index; ModelRenderInfo_t info; DrawModelState_t state; matrix3x4_t pBoneToWorld[ 128 ] = {}; float time; matrix3x4_t model_to_world; };
В разы, я тут как бы со стула упал видели теа можно разве короче код сделать ?)
а теперь перепиши под легендвар пж)
Я конечно понимаю, что этот способ рабочий, но кол-во символов меня пугает, я уже в это время дописал то, что хотел сюда отправить, видимо мой мега короткий код не увидит этот мир, спасибо за понимание
дописывай дальше )Я конечно понимаю, что этот способ рабочий, но кол-во символов меня пугает, я уже в это время дописал то, что хотел сюда отправить, видимо мой мега короткий код не увидит этот мир, спасибо за понимание
спасибо за кволити пасту с еексомиC++:void CChams::AddHitmatrix( C_CSPlayer* player, matrix3x4_t* bones ) { auto& hit = m_Hitmatrix.emplace_back( ); std::memcpy( hit.pBoneToWorld, bones, player->m_CachedBoneData( ).Count( ) * sizeof( matrix3x4_t ) ); hit.time = Source::m_pGlobalVars->realtime + g_Vars.esp.hitmatrix_time; static int m_nSkin = Horizon::Memory::FindInDataMap( player->GetPredDescMap( ), XorStr( "m_nSkin" ) ); static int m_nBody = Horizon::Memory::FindInDataMap( player->GetPredDescMap( ), XorStr( "m_nBody" ) ); hit.info.origin = player->GetAbsOrigin( ); hit.info.angles = player->GetAbsAngles( ); auto renderable = player->GetClientRenderable( ); if ( !renderable ) return; auto model = player->GetModel( ); if ( !model ) return; auto hdr = *( studiohdr_t** ) ( player->m_pStudioHdr( ) ); if ( !hdr ) return; hit.state.m_pStudioHdr = hdr; hit.state.m_pStudioHWData = Source::m_pMDLCache->GetHardwareData( model->studio ); hit.state.m_pRenderable = renderable; hit.state.m_drawFlags = 0; hit.info.pRenderable = renderable; hit.info.pModel = model; hit.info.pLightingOffset = nullptr; hit.info.pLightingOrigin = nullptr; hit.info.hitboxset = player->m_nHitboxSet( ); hit.info.skin = ( int ) ( uintptr_t( player ) + m_nSkin ); hit.info.body = ( int ) ( uintptr_t( player ) + m_nBody ); hit.info.entity_index = player->m_entIndex; hit.info.instance = Memory::VCall<ModelInstanceHandle_t( __thiscall* )( void* ) >( renderable, 30u )( renderable ); hit.info.flags = 0x1; hit.info.pModelToWorld = &hit.model_to_world; hit.state.m_pModelToWorld = &hit.model_to_world; hit.model_to_world.AngleMatrix( hit.info.angles, hit.info.origin ); }
C++:void CChams::OnPostScreenEffects( ) { if ( !g_Vars.globals.HackIsReady ) m_Hitmatrix.clear( ); if ( m_Hitmatrix.empty( ) ) return; if ( !Source::m_pStudioRender.Xor( ) ) return; auto drawed_shit = false; auto ctx = Source::m_pMatSystem->GetRenderContext( ); if ( !ctx ) return; auto it = m_Hitmatrix.begin( ); while ( it != m_Hitmatrix.end( ) ) { if ( !it->state.m_pModelToWorld || !it->state.m_pRenderable || !it->state.m_pStudioHdr || !it->state.m_pStudioHWData || !it->info.pRenderable || !it->info.pModelToWorld || !it->info.pModel ) { ++it; continue; } auto alpha = 1.0f; auto delta = Source::m_pGlobalVars->realtime - it->time; if ( delta > 0.0f ) { alpha -= delta; if ( delta > 1.0f ) { it = m_Hitmatrix.erase( it ); continue; } } drawed_shit = true; auto color = g_Vars.esp.hitmatrix_color; color.a *= alpha; OverrideMaterial( true, g_Vars.esp.chams_hitmatrix_mat, color ); Hooked::oDrawModelExecute( Source::m_pModelRender.Xor( ), ctx, it->state, it->info, it->pBoneToWorld ); Source::m_pStudioRender->m_pForcedMaterial = nullptr; Source::m_pStudioRender->m_nForcedMaterialType = 0; ++it; } }
C++:struct C_HitMatrixEntry { int ent_index; ModelRenderInfo_t info; DrawModelState_t state; matrix3x4_t pBoneToWorld[ 128 ] = {}; float time; matrix3x4_t model_to_world; };
хайд ставь, ща пастеры поналетятC++:void CChams::AddHitmatrix( C_CSPlayer* player, matrix3x4_t* bones ) { auto& hit = m_Hitmatrix.emplace_back( ); std::memcpy( hit.pBoneToWorld, bones, player->m_CachedBoneData( ).Count( ) * sizeof( matrix3x4_t ) ); hit.time = Source::m_pGlobalVars->realtime + g_Vars.esp.hitmatrix_time; static int m_nSkin = Horizon::Memory::FindInDataMap( player->GetPredDescMap( ), XorStr( "m_nSkin" ) ); static int m_nBody = Horizon::Memory::FindInDataMap( player->GetPredDescMap( ), XorStr( "m_nBody" ) ); hit.info.origin = player->GetAbsOrigin( ); hit.info.angles = player->GetAbsAngles( ); auto renderable = player->GetClientRenderable( ); if ( !renderable ) return; auto model = player->GetModel( ); if ( !model ) return; auto hdr = *( studiohdr_t** ) ( player->m_pStudioHdr( ) ); if ( !hdr ) return; hit.state.m_pStudioHdr = hdr; hit.state.m_pStudioHWData = Source::m_pMDLCache->GetHardwareData( model->studio ); hit.state.m_pRenderable = renderable; hit.state.m_drawFlags = 0; hit.info.pRenderable = renderable; hit.info.pModel = model; hit.info.pLightingOffset = nullptr; hit.info.pLightingOrigin = nullptr; hit.info.hitboxset = player->m_nHitboxSet( ); hit.info.skin = ( int ) ( uintptr_t( player ) + m_nSkin ); hit.info.body = ( int ) ( uintptr_t( player ) + m_nBody ); hit.info.entity_index = player->m_entIndex; hit.info.instance = Memory::VCall<ModelInstanceHandle_t( __thiscall* )( void* ) >( renderable, 30u )( renderable ); hit.info.flags = 0x1; hit.info.pModelToWorld = &hit.model_to_world; hit.state.m_pModelToWorld = &hit.model_to_world; hit.model_to_world.AngleMatrix( hit.info.angles, hit.info.origin ); }
C++:void CChams::OnPostScreenEffects( ) { if ( !g_Vars.globals.HackIsReady ) m_Hitmatrix.clear( ); if ( m_Hitmatrix.empty( ) ) return; if ( !Source::m_pStudioRender.Xor( ) ) return; auto drawed_shit = false; auto ctx = Source::m_pMatSystem->GetRenderContext( ); if ( !ctx ) return; auto it = m_Hitmatrix.begin( ); while ( it != m_Hitmatrix.end( ) ) { if ( !it->state.m_pModelToWorld || !it->state.m_pRenderable || !it->state.m_pStudioHdr || !it->state.m_pStudioHWData || !it->info.pRenderable || !it->info.pModelToWorld || !it->info.pModel ) { ++it; continue; } auto alpha = 1.0f; auto delta = Source::m_pGlobalVars->realtime - it->time; if ( delta > 0.0f ) { alpha -= delta; if ( delta > 1.0f ) { it = m_Hitmatrix.erase( it ); continue; } } drawed_shit = true; auto color = g_Vars.esp.hitmatrix_color; color.a *= alpha; OverrideMaterial( true, g_Vars.esp.chams_hitmatrix_mat, color ); Hooked::oDrawModelExecute( Source::m_pModelRender.Xor( ), ctx, it->state, it->info, it->pBoneToWorld ); Source::m_pStudioRender->m_pForcedMaterial = nullptr; Source::m_pStudioRender->m_nForcedMaterialType = 0; ++it; } }
C++:struct C_HitMatrixEntry { int ent_index; ModelRenderInfo_t info; DrawModelState_t state; matrix3x4_t pBoneToWorld[ 128 ] = {}; float time; matrix3x4_t model_to_world; };
а какой смысл в хайде на обычный рендер моделькихайд ставь, ща пастеры поналетят
то догадаться надо, да и дамп не каждый прочтет, а тут код готовый - бери и ешь как говоритсяа какой смысл в хайде на обычный рендер модельки
к тому же это есть в паблик дампе еексоми/фт......
На uc(no ad) давно уже лежит это...то догадаться надо, да и дамп не каждый прочтет, а тут код готовый - бери и ешь как говорится
именно этот код - нет.На uc(no ad) давно уже лежит это...
Проект предоставляет различный материал, относящийся к сфере киберспорта, программирования, ПО для игр, а также позволяет его участникам общаться на многие другие темы. Почта для жалоб: admin@yougame.biz