-
Автор темы
- #1
Me and my friend wanted to find a new and better way to resolve. And we did indeed find a better way to resolve. After reversing csgo's engine.dll and penguware dump we found some useful stuff and wrote this god tier resolver. After testing and ripping heads we decided to post this. Please do not abuse our resolver too much ty :D
This is my take
This is my friend's take at it
Пожалуйста, авторизуйтесь для просмотра ссылки.
This is my take
Resolver:
// getting propper values
auto pAnimstate = pEntity->GetAnimationState(); if (!pAnimstate) return;
// save old goalfeet yaw
auto flOldGoalFeetYaw = pAnimstate->flGoalFeetYaw;
// save old eye angles
auto angOldEyeAngles = pEntity->GetEyeAngles();
// get max desync delta
auto flMaxDesync = CAntiAim::Get().GetMaxDesyncDelta(pAnimstate);
// get max desync delta when breaking the lower body
auto flMaxDesyncLby = CAntiAim::Get().GetMaxDesyncDelta(pAnimstate) * 2;
// check if player has low delta
auto bHasLowDelta = pEntity->GetVelocity().Length2D() > pEntity->GetMaxSpeed() / 6.99;
// get our weapon
auto pWeapon = G::pLocal->GetWeapon(); if (pWeapon == nullptr) return;
// adjusting desync based on delta
if (bHasLowDelta) flMaxDesync = flMaxDesync / 2;
// adjusting desync based on delta
if (bHasLowDelta) flMaxDesyncLby = flMaxDesyncLby / 2;
// let's count missed shots
auto iMissedShots = 0;
// increment
if (G::pLocal->CanShoot(static_cast<CWeaponCSBase*>(pWeapon)) && (G::pCmd->iButtons & IN_ATTACK)) iMissedShots = iMissedShots + 1;
// Corrected angles
auto flCorrectDesyncRange = 0.f; auto flPitchCorrection = 0.f; auto flRollCorrection = 0.f;
switch (iMissedShots)
{
case 0:
flCorrectDesyncRange = M::RandomFloat(0, CAntiAim::Get().GetMaxDesyncDelta(pAnimstate) * 2 / 4); flMaxDesync = M::RandomFloat(flMaxDesync, flCorrectDesyncRange); // GG Kiddo, you got tapped
break;
case 1:
flCorrectDesyncRange = M::RandomFloat(0, pEntity->GetMaxSpeed()); if (flCorrectDesyncRange > 32) flMaxDesync = 25.f; if (flCorrectDesyncRange > 82) flMaxDesync = 73.f; if (flCorrectDesyncRange > 132) flMaxDesync = 43.f; if (flCorrectDesyncRange > 50) flMaxDesync = 55.f; if (flCorrectDesyncRange > 250) flMaxDesync = 1.f; flMaxDesync = M::RandomFloat(flMaxDesync, flCorrectDesyncRange); // GG Kiddo, you lucky bitch, you get tapped this time though
break;
case 2:
flPitchCorrection = M::RandomFloat(-1935.f, 1935.f); pEntity->GetEyeAngles().x + flPitchCorrection;// at this point they must be fake pitching so let's fix that
break;
case 3:
flPitchCorrection = M::RandomFloat(-1935.f, 1935.f); pEntity->GetEyeAngles().x - flPitchCorrection; // ig they are fake pitching in the other direction
break;
case 4:
flRollCorrection = M::RandomFloat(-45, 45.); pEntity->GetEyeAngles().z + flRollCorrection; // they are using extended desync cus gey
break;
case 5:
flRollCorrection = M::RandomFloat(-45, 45.); pEntity->GetEyeAngles().z - flRollCorrection; // they are extending in the other direction
break;
default:
pAnimstate->flGoalFeetYaw = flOldGoalFeetYaw; pEntity->GetEyeAngles() = angOldEyeAngles;
}
// Reset missed shots
if (iMissedShots == 6) iMissedShots = 0;
// esoterik doesn't even stand a chance against this bitch
if (pAnimstate->flGoalFeetYaw > 1.f) pAnimstate->flGoalFeetYaw = -flMaxDesync; else if (pAnimstate->flGoalFeetYaw == 0.f) pAnimstate->flGoalFeetYaw = -flMaxDesyncLby;
if (pAnimstate->flGoalFeetYaw < 1.f) pAnimstate->flGoalFeetYaw = +flMaxDesync; else if (pAnimstate->flGoalFeetYaw == -0.f) pAnimstate->flGoalFeetYaw = +flMaxDesyncLby;
// eso cheat dog tapped ez laff hdf nn fag
/* if u doing this u minimal need to know basis of c++ and how game works and here i can't be helpful cuz ways of resolve always updates and changes */
Resolver:
auto AnimState = pPlayer->m_PlayerAnimStateCSGO();
if (!AnimState)
return;
auto flOldGoalFootYaw = AnimState->m_flFootYaw;
auto flOldEyeAngles = pPlayer->m_angEyeAngles();
// Fetching proper values from CS:GO CODE!
float maximum_desync = pPlayer->GetAbsoluteMaximumDesync();
float maximum_desync_lby = pPlayer->GetAbsoluteMaximumDesync() * 2;
auto low_delta = pPlayer->m_vecVelocity().Length() > pPlayer->GetMaxPlayerSpeed() / 6.99;
// superior low_delta check, adjusting desync based on delta!
if (low_delta)
maximum_desync = maximum_desync / 2;
if (low_delta)
maximum_desync_lby = maximum_desync_lby / 2;
auto missed_shots = 0;
if (g_sdk.local->CanFire(true))
missed_shots = missed_shots +1;
switch (missed_shots)
{
case 0:
float random_value = g_Tools->RandomFloat(0, pPlayer->GetAbsoluteMaximumDesync() * 2 / 4); // proper checks!
maximum_desync = g_Tools->RandomFloat(maximum_desync, random_value); // gg kiddo, dont even need case 1;
break;
case 1:
float random_value = g_Tools->RandomFloat(0, pPlayer->GetMaxPlayerSpeed()); // proper checks!
if (random_value > 33)
maximum_desync = 25.f;
if (random_value > 82)
maximum_desync = 73.f;
if (random_value > 132)
maximum_desync = 43.f;
if (random_value > 50)
maximum_desync = 55.f;
if (random_value > 250)
maximum_desync = 1.f;
break;
case 2:
float flPitchCorrection = g_Tools->RandomFloat(-1935.f, 1935.f); // their fake pitching, proper fix here.
pPlayer->m_angEyeAngles().pitch + flPitchCorrection;
break;
case 3:
float flPitchCorrection = g_Tools->RandomFloat(-1935.f, 1935.f); // their faking pitching, the fake pitch!
pPlayer->m_angEyeAngles().pitch - flPitchCorrection;
break;
case 4:
float flRollCorrection = g_Tools->RandomFloat(-45.f, 45.f); // their rolling, like toilet paper
pPlayer->m_angEyeAngles().roll + flRollCorrection;
break;
case 5:
float flRollCorrection = g_Tools->RandomFloat(-45.f, 45.f); // they paper rolled the other way!
pPlayer->m_angEyeAngles().roll - flRollCorrection;
break;
default:
pPlayer->m_angEyeAngles() = flOldEyeAngles;
AnimState->m_flFootYaw = flOldGoalFootYaw;
break;
}
if (missed_shots == 69)
missed_shots = 0;
// dont touch its superior checks!
//if negative
if (AnimState->m_flFootYaw > 1.f)
AnimState->m_flFootYaw = -maximum_desync;
else if (AnimState->m_flFootYaw == 0.f)
AnimState->m_flFootYaw = -maximum_desync_lby;
// dont touch its superior checks!
//if positive
if (AnimState->m_flFootYaw < 1.f)
AnimState->m_flFootYaw = +maximum_desync;
else if (AnimState->m_flFootYaw == -0.f)
AnimState->m_flFootYaw = +maximum_desync_lby;
// WHERE YOU AT ESO?, 1v1 ME!