take a look на данные строчки кода c++
void Lbot::LegitAA(CUserCmd * cmd, bool & bSendPacket)
{
QAngle OldAngles = cmd->viewangles;
if (cmd->buttons & (IN_ATTACK | IN_ATTACK2 | IN_USE) ||
g_LocalPlayer->m_nMoveType() == MOVETYPE_LADDER || g_LocalPlayer->m_nMoveType() == MOVETYPE_NOCLIP
|| !g_LocalPlayer->IsAlive())
return;
auto weapon = g_LocalPlayer->m_hActiveWeapon().Get();
if (!weapon)
return;
auto weapon_index = weapon->m_Item().m_iItemDefinitionIndex();
if ((weapon_index == WEAPON_GLOCK || weapon_index == WEAPON_FAMAS) && weapon->m_flNextPrimaryAttack() >= g_GlobalVars->curtime)
return;
auto weapon_data = weapon->GetCSWeaponData();
if (weapon_data->WeaponType == WEAPONTYPE_GRENADE)
{
if (!weapon->m_bPinPulled())
{
float throwTime = weapon->m_fThrowTime();
if (throwTime > 0.f)
return;
}
if ((cmd->buttons & IN_ATTACK) || (cmd->buttons & IN_ATTACK2))
{
if (weapon->m_fThrowTime() > 0.f)
return;
}
}
static bool broke_lby = false;
if (InputSys::Get().WasKeyPressed(Settings::Aimbot::AAFlipHotkey))
Settings::Aimbot::AaSide = -Settings::Aimbot::AaSide;
if (Settings::Aimbot::LegitAA == 1)
{
float minimal_move = 2.0f;
if (g_LocalPlayer->m_fFlags() & FL_DUCKING)
minimal_move *= 3.f;
if (cmd->buttons & IN_WALK)
minimal_move *= 3.f;
bool should_move = g_LocalPlayer->m_vecVelocity().Length2D() <= 0.0f
|| std::fabsf(g_LocalPlayer->m_vecVelocity().z) <= 100.0f;
if ((cmd->command_number % 2) == 1)
{
cmd->viewangles.yaw += 120.0f * side;
if (should_move)
cmd->sidemove -= minimal_move;
bSendPacket = false;
}
else if (should_move)
cmd->sidemove += minimal_move;
}
else
{
if (next_lby >= g_GlobalVars->curtime)
{
if (!broke_lby && bSendPacket && g_ClientState->chokedcommands > 0)
return;
broke_lby = false;
bSendPacket = false;
cmd->viewangles.yaw += 120.0f * Settings::Aimbot::AaSide;
}
else
{
broke_lby = true;
bSendPacket = false;
cmd->viewangles.yaw += 120.0f * -Settings::Aimbot::AaSide;
}
}
Math::FixAngles(cmd->viewangles);
MovementFix::Get().FixMovement(cmd, cmd->viewangles);
auto anim_state = g_LocalPlayer->GetPlayerAnimState();
if (anim_state)
{
CCSGOPlayerAnimState anim_state_backup = *anim_state;
*anim_state = g_Saver.AnimState;
*g_LocalPlayer->GetVAngles() = cmd->viewangles;
g_LocalPlayer->UpdateClientSideAnimation();
if (anim_state->speed_2d > 0.1f || std::fabsf(anim_state->flUpVelocity)) {
next_lby = g_GlobalVars->curtime + 0.22f;
}
else if (g_GlobalVars->curtime > next_lby) {
if (std::fabsf(Math::AngleDiff(anim_state->m_flGoalFeetYaw, anim_state->m_flEyeYaw)) > 35.0f) {
next_lby = g_GlobalVars->curtime + 1.1f;
}
}
g_Saver.AnimState = *anim_state;
*anim_state = anim_state_backup;
}
if (bSendPacket)
{
g_Saver.RealYaw = g_Saver.AnimState.m_flGoalFeetYaw;
g_Saver.DesyncYaw = g_Saver.AnimState.m_flEyeYaw;
}
}
проще говоря, перед фликом там этово таво, чтобы создать десинк, тебе надо заранее сохранить твои углы, чтобы у тебя ничего там не треслось
создаешь десинк обычным способом и при sendbacket ставишь свои углы (последние 5 строчек кода сам видишь как бы)