-
Автор темы
- #1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Всем привет ребят
как вы знаете вы устанавливаете 4 матрицы
первая матрица основная с маской bone_used_by_anything
вторая матрица это правая матрица с маской bone_used_by_hitbox
третья матрица это центральная с маской bone_used_by_hitbox
четвертая матрица это левая с маской bone_used_by_hitbox
устанавливаете их в порядке
теперь само улучшение
как вы знаете вы устанавливаете 4 матрицы
первая матрица основная с маской bone_used_by_anything
вторая матрица это правая матрица с маской bone_used_by_hitbox
третья матрица это центральная с маской bone_used_by_hitbox
четвертая матрица это левая с маской bone_used_by_hitbox
устанавливаете их в порядке
C++:
/* проверки на ботов, на жив ли локал, на тиму, етс.. */
if ( ... )
{
// применяем к гоал фит яв нормализированный еуе англ.
// поворачиваем игрока в правую сторону.
state->m_flGoalFeetYaw = math::NormalizeYaw( player->m_vecEyeAngles( ).yaw + 60.0f );
// обновляем анимации.
globals->get_player_update_animations = true;
player->get_clientside_animation( );
globals->get_player_update_animations = false;
// устанавливаем правую матрицу.
setup_matrix( MATRIX_LEFT, AnimationLayers, player );
// копируем ресольве аним лееры для ресольвера на анимациях.
// КОПИРУЕМ ПРАВУЮ СТОРОНУ АНИМАЦИЙ.
std::memcpy( ResolverData->m_pResolverLayers[ 0 ], AnimationLayers * 13, sizeof( CAnimationLayer ) );
// применяем к гоал фит яв нормализированный еуе англ.
state->m_flGoalFeetYaw = math::NormalizeYaw( player->m_vecEyeAngles( ).yaw );
// обновляем анимации.
globals->get_player_update_animations = true;
player->get_clientside_animation( );
globals->get_player_update_animations = false;
// устанавливаем центральную матрицу.
setup_matrix( MATRIX_СENTER, AnimationLayers, player );
// копируем ресольве аним лееры для ресольвера на анимациях.
// КОПИРУЕМ ЦЕНТРАЛЬНУЮ СТОРОНУ АНИМАЦИЙ.
std::memcpy( ResolverData->m_pResolverLayers[ 1 ], AnimationLayers * 13, sizeof( CAnimationLayer ) );
// применяем к гоал фит яв нормализированный еуе англ.
// поворачиваем игрока в левую сторону.
state->m_flGoalFeetYaw = math::NormalizeYaw( player->m_vecEyeAngles( ).yaw - 60.0f );
// обновляем анимации.
globals->get_player_update_animations = true;
player->get_clientside_animation( );
globals->get_player_update_animations = false;
// устанавливаем левую матрицу.
setup_matrix( MATRIX_RIGHT, AnimationLayers, player );
// копируем ресольве аним лееры для ресольвера на анимациях.
// КОПИРУЕМ ЛЕВУЮ СТОРОНУ АНИМАЦИЙ.
std::memcpy( ResolverData->m_pResolverLayers[ 2 ], AnimationLayers * 13, sizeof( CAnimationLayer ) );
// вызываем ресольвер.
ResolverData->RunAnimationResolver( player );
// брутфорс парт.
// отсуствует потому что я брутфоршу в самой функции ресольвера.
}
C++:
void CAnimations::SwapPlayerData( CResolverRecord* ResolverData, PlayerPtr* player, CBasePlayerAnimationState* state )
{
// получаем дельту между еуе англ и фут ява.
auto flNegateDelta = math::AngleDifference( player->m_vecEyeAngles( ).yaw, state->m_flGoalFeetYaw );
if ( flNegateDelta < 0.0f )
{
// меняем левый сайд на правый.
std::swap( ResolverData->m_flLeftSide, ResolverData->m_flRightSide );
// меняем ресольвер лееры левый на правый.
std::swap( ResolverData->m_pResolverLayers[ 0 ], ResolverData->m_pResolverLayers[ 1 ] );
// меняем левые позы на правые позы.
std::swap( ResolverData->m_flLeftPoses, ResolverData->m_flRightPoses );
// меняем левые кости на правые кости.
std::swap( ResolverData->m_flLeftBones, ResolverData->m_flRightBones );
}
else
{
// меняем левый сайд на правый сайд.
std::swap( ResolverData->m_flRightSide, ResolverData->m_flLeftSide );
// меняем ресольвер лееры левый на правый.
std::swap( ResolverData->m_pResolverLayers[ 1 ], ResolverData->m_pResolverLayers[ 0 ] );
// меняем левые позы на правые позы.
std::swap( ResolverData->m_flLeftPoses, ResolverData->m_flRightPoses );
// меняем левые кости на правые кости.
std::swap( ResolverData->m_flLeftBones, ResolverData->m_flRightBones );
}
}