-
Автор темы
- #1
Итак, я попытался улучшить исправление анимации и начал устанавливать новую матрицу (установочная матрица (e, animlayer, ZERO/FIRST/SECOND)
после того, как я это сделал, я попытался отладить через Bone ESP, если он работает правильно и: он показывает линии на всей карте. Работает только основная матрица.
после того, как я это сделал, я попытался отладить через Bone ESP, если он работает правильно и: он показывает линии на всей карте. Работает только основная матрица.
C++:
memcpy(&e->m_flPoseParameter(), pose_parametrs, 24 * sizeof(float));
animstate->m_flGoalFeetYaw = math::normalize_yaw(e->m_angEyeAngles().y); //-V807
g_ctx.globals.updating_animation = true;
e->update_clientside_animation();
g_ctx.globals.updating_animation = false;
setup_matrix(e, animlayers, NONE);
memcpy(animstate, &state, sizeof(c_baseplayeranimationstate));
memcpy(player_resolver[e->EntIndex()].resolver_layers[0], e->get_animlayers(), 13 * sizeof(AnimationLayer));
memcpy(&e->m_flPoseParameter(), pose_parametrs, 24 * sizeof(float));
animstate->m_flGoalFeetYaw = math::normalize_yaw(e->m_angEyeAngles().y + 60.0f);
g_ctx.globals.updating_animation = true;
e->update_clientside_animation();
g_ctx.globals.updating_animation = false;
record->right_poses = e->m_flPoseParameter();
e->invalidate_bone_cache();
setup_matrix(e, animlayers, FIRST);
memcpy(animstate, &state, sizeof(c_baseplayeranimationstate));
memcpy(player_resolver[e->EntIndex()].resolver_layers[1], e->get_animlayers(), 13 * sizeof(AnimationLayer));
memcpy(&e->m_flPoseParameter(), pose_parametrs, 24 * sizeof(float));
animstate->m_flGoalFeetYaw = math::normalize_yaw(e->m_angEyeAngles().y - 60.0f);
g_ctx.globals.updating_animation = true;
e->update_clientside_animation();
g_ctx.globals.updating_animation = false;
record->left_poses = e->m_flPoseParameter();
setup_matrix(e, animlayers, SECOND);
memcpy(animstate, &state, sizeof(c_baseplayeranimationstate));
memcpy(player_resolver[e->EntIndex()].resolver_layers[2], e->get_animlayers(), 13 * sizeof(AnimationLayer));
memcpy(&e->m_flPoseParameter(), pose_parametrs, 24 * sizeof(float));
player_resolver[e->EntIndex()].start();
//goal feet yaw get's set there.
}
g_ctx.globals.updating_animation = true;
e->update_clientside_animation();
g_ctx.globals.updating_animation = false;
setup_matrix(e, animlayers, MAIN);
memcpy(e->m_CachedBoneData().Base(), record->matrixes_data.main, e->m_CachedBoneData().Count() * sizeof(matrix3x4_t));
m_globals()->m_curtime = backup_curtime;
m_globals()->m_frametime = backup_frametime;
e->m_flLowerBodyYawTarget() = backup_lower_body_yaw_target;
e->m_flDuckAmount() = backup_duck_amount;
e->m_fFlags() = backup_flags;
e->m_iEFlags() = backup_eflags;
//e->set_abs_origin(backup_absorigin);
//e->set_abs_angles(backup_absangles);
memcpy(e->get_animlayers(), animlayers, e->animlayer_count() * sizeof(AnimationLayer));