-
Автор темы
- #1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
C++:
bool is_legit = player->get_sequence_activity(player->anim_overlays()[7].m_nSequence) == 797 && abs(animstate->m_flBebraYaw - player->eyeAngles().y) < -720.f);
if (is_legit)
{
__asm
{
mov eax, m_flBebraYaw
movss %%%%%%%
call do_devcore_club_source_leak
}
return;
}
if ( !is_legit ){
float m_flBebraValue = 120.f * 1 / 180.f * 180.f - 720.f;
switch ( data->m_iMissedShots & 8 ){
case 0: player->m_vecOrigin().z = m_flBebraValue;
break;
if (current_layer_activity == 979) // the current layer must be triggering 979
{
if (previous_layer_activity == 979) // the previous layer must be trigerring 979
{
// we can tell now that he is surely breaking lby in some sort
if ((previous_layer.m_flCycle != current_layer.m_flCycle) || current_layer.m_flWeight == 1.f)
{
float
flAnimTime = current_layer.m_flCycle,
flSimTime = player->m_flSimulationTime();
if (flAnimTime < 0.01f && previous_layer.m_flCycle > 0.01f && g_Options.rage_lagcompensation && CMBacktracking::Get().IsTickValid(TIME_TO_TICKS(flSimTime - flAnimTime))) // lby flicked here
{
CMBacktracking::Get().SetOverwriteTick(player, QAngle(player->m_angEyeAngles().pitch, player->m_flLowerBodyYawTarget(), 0), (flSimTime - flAnimTime), PRIORITY_LBY_FLICK);
}
new_yaw = player->m_flLowerBodyYawTarget() - 180.f; // for the resolver it's enough here to just flip him, because we will backtrack him
}
else if (current_layer.m_flWeight == 0.f && (previous_layer.m_flCycle > 0.92f && current_layer.m_flCycle > 0.92f)) // breaking lby with delta < 120; can fakewalk here aswell
{
float eye_delta = std::abs(resolver_info->resolver_layers[0][6].m_flPlaybackRate - record->anim_layers[6].m_flPlaybackRate);
float eye_positive_delta = std::abs(resolver_info->resolver_layers[1][6].m_flPlaybackRate - record->anim_layers[6].m_flPlaybackRate);
float eye_negative_delta = std::abs(resolver_info->resolver_layers[2][6].m_flPlaybackRate - record->anim_layers[6].m_flPlaybackRate);
static float old_layer_12_weight = prerecord->anim_layers[12].m_flWeight;
static float layer_12_weight = record->anim_layers[12].m_flWeight;
static float old_torso_yaw = std::abs(prerecord->ready_animstate.m_flCurrentFeetYaw);
static float old_lean = std::abs(prerecord->ready_animstate.m_flLeanWeight);
static float torso_yaw = std::abs(record->ready_animstate.m_flCurrentFeetYaw);
static float lean = std::abs(record->ready_animstate.m_flLeanWeight);
static int last_side = 0;
RebuiltLayer6(m_player, 0, m_player->get_animation_state()->m_abs_yaw, record);
RebuiltLayer6(m_player, 1, m_player->get_animation_state()->m_abs_yaw + record->resolver_delta_multiplier, record);
RebuiltLayer6(m_player, 2, m_player->get_animation_state()->m_abs_yaw - record->resolver_delta_multiplier, record);
const auto float_matches = [](const float float1, const float float2, float tolerance = 0.002f) { return fabsf(float1 - float2) < tolerance; };
const auto float_tolerance = [](const float float1, const float float2) { return fabsf(float1 - float2); };
if (layer_12_weight * 1000.f < 0.99f && old_layer_12_weight * 1000.f < 0.99f)//layer 12 laen
{
if (old_layer_12_weight <= 0.0009f && layer_12_weight <= 0.0009f)
{
if (layer_12_weight >= 0.0001f && old_layer_12_weight <= 0.0004f && layer_12_weight <= 0.0004f && old_layer_12_weight <= 0.0000001f)
{
if (layer_12_weight > 0.00001f && old_layer_12_weight > 0.00001f)
{
if (old_torso_yaw > torso_yaw && old_lean > lean)
{
last_side = -1;
}
else if (old_torso_yaw < torso_yaw && old_lean < lean)
{
last_side = 1;
}
}
}
}
if (eye_positive_delta > eye_negative_delta && eye_positive_delta != eye_delta)
{
record->resolver_index = 1;
record->resolver_type = 3;
resolver_info->anims_pre_resolving = record->resolver_index;
resolver_info->anim_time = csgo.m_globals()->realtime;
resolver_info->did_anims_update = true;
record->animations_updated = true;
}
else if (eye_negative_delta > eye_positive_delta && eye_negative_delta != eye_delta)
{
record->resolver_index = -1;
record->resolver_type = 3;
resolver_info->anims_pre_resolving = record->resolver_index;
resolver_info->anim_time = csgo.m_globals()->realtime;
resolver_info->did_anims_update = true;
record->animations_updated = true;
}
else
{
if (last_side == resolver_info->anims_pre_resolving)
{
record->resolver_index = last_side;
record->resolver_type = 4;
resolver_info->anim_time = csgo.m_globals()->realtime;
resolver_info->did_anims_update = true;
record->animations_updated = true;
}
else
{
record->resolver_index = record->freestanding_index;
record->resolver_type = 1;
resolver_info->anims_pre_resolving = record->resolver_index;
resolver_info->anim_time = csgo.m_globals()->realtime;
resolver_info->did_anims_update = true;
record->animations_updated = true;
last_side = resolver_info->anims_pre_resolving;
}
}
}
//record->m_LayerData[0].m_flPlaybackRate = eye_delta;
//record->m_LayerData[1].m_flPlaybackRate = eye_positive_delta;
//record->m_LayerData[2].m_flPlaybackRate = eye_negative_delta;
}
else
{
float delta = Math::AngleDiff(record->lower_body_yaw, record->abs_angles);
if (delta < 65.f && delta > 0.f)
{
record->resolver_index = delta > 0.f ? 1 : -1;
record->resolver_type = 5;
resolver_info->anims_pre_resolving = delta > 0.f ? 1 : -1;
resolver_info->anim_time = csgo.m_globals()->realtime;
resolver_info->did_anims_update = true;
record->animations_updated = true;
}
else
{
record->resolver_index = resolver_info->anims_pre_resolving;
record->resolver_type = 5;
resolver_info->anim_time = csgo.m_globals()->realtime;
resolver_info->did_anims_update = true;
record->animations_updated = true;
}
}
}
}
}
}