-
Автор темы
- #1
покажи сетап бонс и как ты его используешьпосле установки проверенных enemy animations в деф supremacy появились баги, похожие на скриншотах (см. ниже)
after installing the proven enemy animations in def supremacy, bugs similar to the screenshots appeared (see below)
Посмотреть вложение 257357Посмотреть вложение 257360Посмотреть вложение 257361
setupbones
#include "includes.h"
Bones g_bones{};;
bool Bones::setup( Player* player, BoneArray* out, LagRecord* record ) {
// if the record isnt setup yet.
if( !record->m_setup ) {
// run setupbones rebuilt.
if( !BuildBones( player, 0x7FF00, record->m_bones, record ) )
return false;
// we have setup this record bones.
record->m_setup = true;
}
// record is setup.
if( out && record->m_setup )
std::memcpy( out, record->m_bones, sizeof( BoneArray ) * 128 );
return true;
}
bool Bones::BuildBones( Player* target, int mask, BoneArray* out, LagRecord* record ) {
vec3_t pos[ 128 ];
quaternion_t q[ 128 ];
vec3_t backup_origin;
ang_t backup_angles;
float backup_poses[ 24 ];
C_AnimationLayer backup_layers[ 13 ];
// get hdr.
CStudioHdr* hdr = target->GetModelPtr( );
if( !hdr )
return false;
// get ptr to bone accessor.
CBoneAccessor* accessor = &target->m_BoneAccessor( );
if( !accessor )
return false;
// store origial output matrix.
// likely cachedbonedata.
BoneArray* backup_matrix = accessor->m_pBones;
if( !backup_matrix )
return false;
// prevent the game from calling ShouldSkipAnimationFrame.
auto bSkipAnimationFrame = *reinterpret_cast< int* >( uintptr_t( target ) + 0x260 );
*reinterpret_cast< int* >( uintptr_t( target ) + 0x260 ) = NULL;
// backup original.
backup_origin = target->GetAbsOrigin( );
backup_angles = target->GetAbsAngles( );
target->GetPoseParameters( backup_poses );
target->GetAnimLayers( backup_layers );
// compute transform from raw data.
matrix3x4_t transform;
math::AngleMatrix( record->m_abs_ang, record->m_pred_origin, transform );
// set non interpolated data.
target->AddEffect( EF_NOINTERP );
target->SetAbsOrigin( record->m_pred_origin );
target->SetAbsAngles( record->m_abs_ang );
target->SetPoseParameters( record->m_poses );
target->SetAnimLayers( record->m_layers );
// force game to call AccumulateLayers - pvs fix.
m_running = true;
// set bone array for write.
accessor->m_pBones = out;
// compute and build bones.
target->StandardBlendingRules( hdr, pos, q, record->m_pred_time, mask );
uint8_t computed[ 0x100 ];
std::memset( computed, 0, 0x100 );
target->BuildTransformations( hdr, pos, q, transform, mask, computed );
// restore old matrix.
accessor->m_pBones = backup_matrix;
// restore original interpolated entity data.
target->m_fEffects() &= ~EF_NOINTERP;
target->SetAbsOrigin( backup_origin );
target->SetAbsAngles( backup_angles );
target->SetPoseParameters( backup_poses );
target->SetAnimLayers( backup_layers );
// revert to old game behavior.
m_running = false;
// allow the game to call ShouldSkipAnimationFrame.
*reinterpret_cast< int* >( uintptr_t( target ) + 0x260 ) = bSkipAnimationFrame;
return true;
}
спасти еще сетап бонес от тудапосле установки проверенных enemy animations в деф supremacy появились баги, похожие на скриншотах (см. ниже)
не помогло(спасти еще сетап бонес от туда
отключи интерполяцию :dпосле установки проверенных enemy animations в деф supremacy появились баги, похожие на скриншотах (см. ниже)
after installing the proven enemy animations in def supremacy, bugs similar to the screenshots appeared (see below)
Посмотреть вложение 257357Посмотреть вложение 257360Посмотреть вложение 257361
помогло спасибоотключи интерполяцию :d
Отключаем интерполяцию как настоящие мужчины
Привет всем Недавно я возник вопросом, как можно нормально офать интерполяцию (т.к метод через GetVarMap говно и неправильный) Тут есть два способа: 1) Через бул IsPaused в engine (90 индекс) Находим ретурн адрес для этой параши, если он находится - ставим true Пруф...yougame.biz
glad to help u my friend :Dпомогло спасибо
Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.
Проект предоставляет различный материал, относящийся к сфере киберспорта, программирования, ПО для игр, а также позволяет его участникам общаться на многие другие темы. Почта для жалоб: admin@yougame.biz