Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "../includes.h"
- #include "../UTILS/interfaces.h"
- #include "../SDK/IEngine.h"
- #include "../SDK/CUserCmd.h"
- #include "../SDK/CBaseEntity.h"
- #include "../SDK/CClientEntityList.h"
- #include "../SDK/CTrace.h"
- #include "../SDK/CBaseWeapon.h"
- #include "../SDK/CGlobalVars.h"
- #include "../SDK/ConVar.h"
- #include "../FEATURES/AutoWall.h"
- #include "../FEATURES/Backtracking.h"
- #include "../FEATURES/bt.h"
- #include "../FEATURES/Aimbot.h"
- #include "../FEATURES/Movement.h"
- #include "../FEATURES/override.h"
- void CResolver::HandleBackUpResolve(SDK::CBaseEntity* player) {
- auto local_player = INTERFACES::ClientEntityList->GetClientEntity(INTERFACES::Engine->GetLocalPlayer());
- auto animation_state = player->GetAnimState();
- auto animState = uintptr_t(local_player->GetAnimState());
- if (!animState)
- return;
- // Rebuild setup velocity to receive flMinBodyYaw and flMaxBodyYaw
- Vector velocity = player->GetVelocity();
- float spd = velocity.Length2D();
- if (spd > std::powf(1.2f * 260.0f, 2.f)) {
- Vector velocity_normalized = velocity.Normalize();
- velocity = velocity_normalized * (1.2f * 260.0f);
- }
- float flDuckAmount = animation_state->m_fDuckAmount;
- float m_flLastClientSideAnimationUpdateTimeDelta = fabs(animation_state->m_iLastClientSideAnimationUpdateFramecount - animation_state->m_flLastClientSideAnimationUpdateTime);
- auto v48 = 0.f;
- if (animation_state->m_flFeetSpeedForwardsOrSideWays >= 0.0f)
- {
- v48 = fminf(animation_state->m_flFeetSpeedForwardsOrSideWays, 1.0f);
- }
- else
- {
- v48 = 0.0f;
- }
- float v49 = ((animation_state->m_flStopToFullRunningFraction * -0.30000001) - 0.19999999) * v48;
- float flYawModifier = v49 + 1.0;
- //float flYawModifier = (((animState->m_flUnknownFraction * -0.3f) - 0.2f) * flRunningSpeed) + 1.0f;
- if (flDuckAmount > 0.0f) {
- float flDuckingSpeed = clamp(flDuckingSpeed, 0.0f, 1.0f);
- flYawModifier += (flDuckAmount * flDuckingSpeed) * (0.5f - flYawModifier);
- }
- float flMinBodyYaw = std::fabsf(animation_state->pad10[516] * flYawModifier);
- float flMaxBodyYaw = std::fabsf(animation_state->pad10[512] * flYawModifier);
- float flEyeYaw = animation_state->m_flEyeYaw;
- auto lbyYaw = animation_state->m_flGoalFeetYaw;
- float eye_feet_delta = fabs(flEyeYaw - lbyYaw);
- float resolveYaw;
- for (size_t i = 0; i < player->GetNumAnimOverlays(); i++)
- {
- auto currentLayer = player->GetAnimOverlay4(i);
- auto previousLayer = player->GetAnimOverlay4(i - 1);
- if (player->GetSequenceActivity(currentLayer->m_nSequence) == 979) // the current layer must be triggering 979
- {
- if (player->GetSequenceActivity(previousLayer->m_nSequence) == 979) // the previous layer must be trigerring 979
- {
- //we can tell now that he is surely breaking lby in some sort
- if ((previousLayer->m_flCycle != currentLayer->m_flCycle) || currentLayer->m_flWeight == 1.f)
- {
- animation_state->m_flGoalFeetYaw = player->GetLowerBodyYaw() - 180;
- }
- else if (currentLayer->m_flWeight == 0.f && (previousLayer->m_flCycle > 0.92f && currentLayer->m_flCycle > 0.92f)) // breaking lby with delta < 120; can fakewalk here aswell
- {
- float Left = fabs(flMinBodyYaw) + flEyeYaw;
- float Right = flEyeYaw - fabs(flMaxBodyYaw);
- if (eye_feet_delta <= flMaxBodyYaw)
- {
- resolveYaw = Left;
- switch (shots_missed[player->GetIndex()] % 2)
- {
- case 0:
- resolveYaw = resolveYaw + 15.0;
- break;
- case 1:
- resolveYaw = resolveYaw + 30.0;
- break;
- case 2:
- resolveYaw = resolveYaw + 45.0;
- break;
- case 3:
- resolveYaw = resolveYaw + 58.0;
- break;
- case 4:
- resolveYaw = resolveYaw + 79.0;
- break;
- case 5:
- resolveYaw = resolveYaw + 90.0;
- break;
- case 6:
- resolveYaw = resolveYaw + 180.0;
- break;
- }
- }
- else
- {
- resolveYaw = Right;
- switch (shots_missed[player->GetIndex()] % 2)
- {
- case 0:
- resolveYaw = resolveYaw - 15.0;
- break;
- case 1:
- resolveYaw = resolveYaw - 30.0;
- break;
- case 2:
- resolveYaw = resolveYaw - 45.0;
- break;
- case 3:
- resolveYaw = resolveYaw - 58.0;
- break;
- case 4:
- resolveYaw = resolveYaw - 79.0;
- break;
- case 5:
- resolveYaw = resolveYaw - 90.0;
- break;
- case 6:
- resolveYaw = resolveYaw - 180.0;
- break;
- }
- }
- animation_state->m_flGoalFeetYaw = resolveYaw;
- }
- }
- resolveYaw = player->GetLowerBodyYaw();
- if (shots_missed[player->GetIndex()] >= 1) {
- auto eyeYaw = animation_state->m_flEyeYaw;
- auto lbyYaw = animation_state->m_flGoalFeetYaw;
- float eye_feet_delta = fabs(eyeYaw - lbyYaw);
- if (eye_feet_delta <= flMaxBodyYaw)
- {
- if (flMinBodyYaw < eye_feet_delta)
- {
- resolveYaw = fabs(flMinBodyYaw) + eyeYaw;
- }
- }
- else
- {
- resolveYaw = eyeYaw - fabs(flMaxBodyYaw);
- }
- // was
- float resolveYaw = fmod(resolveYaw, 180.0);
- if (resolveYaw > 180.0)
- {
- resolveYaw = resolveYaw - 360.0;
- }
- if (resolveYaw < 180.0)
- {
- resolveYaw = resolveYaw + 360.0;
- }
- if (shots_missed[player->GetIndex()] > 4) {
- if (eye_feet_delta <= flMaxBodyYaw)
- {
- if (flMinBodyYaw < eye_feet_delta)
- {
- switch (shots_missed[player->GetIndex()] % 2)
- {
- case 0:
- resolveYaw = resolveYaw + 15.0;
- break;
- case 1:
- resolveYaw = resolveYaw + 30.0;
- break;
- case 2:
- resolveYaw = resolveYaw + 45.0;
- break;
- case 3:
- resolveYaw = resolveYaw + 58.0;
- break;
- case 4:
- resolveYaw = resolveYaw + 79.0;
- break;
- case 5:
- resolveYaw = resolveYaw + 90.0;
- break;
- case 6:
- resolveYaw = resolveYaw + 180.0;
- break;
- }
- }
- }
- else
- {
- switch (shots_missed[player->GetIndex()] % 2)
- {
- case 0:
- resolveYaw = resolveYaw - 15.0;
- break;
- case 1:
- resolveYaw = resolveYaw - 30.0;
- break;
- case 2:
- resolveYaw = resolveYaw - 45.0;
- break;
- case 3:
- resolveYaw = resolveYaw - 58.0;
- break;
- case 4:
- resolveYaw = resolveYaw - 79.0;
- break;
- case 5:
- resolveYaw = resolveYaw - 90.0;
- break;
- case 6:
- resolveYaw = resolveYaw - 180.0;
- break;
- }
- }
- }
- }
- animation_state->m_flGoalFeetYaw = resolveYaw;
- float Left = fabs(flMinBodyYaw) + flEyeYaw;
- float Right = flEyeYaw - fabs(flMaxBodyYaw);
- if (eye_feet_delta <= flMaxBodyYaw)
- {
- if (flMinBodyYaw < eye_feet_delta)
- {
- resolveYaw = Left;
- switch (shots_missed[player->GetIndex()] % 2)
- {
- case 0:
- resolveYaw = resolveYaw + 15.0;
- break;
- case 1:
- resolveYaw = resolveYaw + 30.0;
- break;
- case 2:
- resolveYaw = resolveYaw + 45.0;
- break;
- case 3:
- resolveYaw = resolveYaw + 58.0;
- break;
- case 4:
- resolveYaw = resolveYaw + 79.0;
- break;
- case 5:
- resolveYaw = resolveYaw + 90.0;
- break;
- case 6:
- resolveYaw = resolveYaw + 180.0;
- break;
- }
- }
- }
- else
- {
- resolveYaw = Right;
- switch (shots_missed[player->GetIndex()] % 2)
- {
- case 0:
- resolveYaw = resolveYaw - 15.0;
- break;
- case 1:
- resolveYaw = resolveYaw - 30.0;
- break;
- case 2:
- resolveYaw = resolveYaw - 45.0;
- break;
- case 3:
- resolveYaw = resolveYaw - 58.0;
- break;
- case 4:
- resolveYaw = resolveYaw - 79.0;
- break;
- case 5:
- resolveYaw = resolveYaw - 90.0;
- break;
- case 6:
- resolveYaw = resolveYaw - 180.0;
- break;
- }
- }
- animation_state->m_flGoalFeetYaw = resolveYaw;
- }
- }
- for (size_t a2a = 0; a2a < player->GetNumAnimOverlays(); ++a2a)
- {
- auto v32 = player->GetAnimOverlay4(a2a);
- if (v32 && player->GetSequenceActivity(v32->m_nSequence) == 979) {
- animation_state->m_flGoalFeetYaw = player->GetLowerBodyYaw();
- return;
- }
- }
- float v20 = animation_state->m_vVelocityX * flYawModifier;
- float a1 = animation_state->m_vVelocityY * flYawModifier;
- float v30 = 0.0;
- float eye_angles_y = animation_state->m_flEyeYaw;
- float goal_feet_yaw = animation_state->m_flGoalFeetYaw;
- float v22 = fabs(eye_angles_y - goal_feet_yaw);
- if (v20 < v22)
- {
- float v11 = fabs((v20));
- v30 = eye_angles_y - v11;
- }
- else if (a1 > v22)
- {
- float v12 = fabs((a1));
- v30 = v12 + eye_angles_y;
- }
- float v36 = std::fmodf((v30), 180.0);
- if (v36 > 180.0)
- v36 = v36 - 360.0;
- if (v36 < 180.0)
- v36 = v36 + 360.0;
- resolveYaw = v36;
- float flEyeDiff = std::remainderf(flEyeYaw - animation_state->m_flGoalFeetYaw, 180.f);
- if (flEyeDiff <= flMaxBodyYaw) {
- if (flMinBodyYaw > flEyeDiff)
- animation_state->m_flGoalFeetYaw = fabs(flMinBodyYaw) + flEyeYaw;
- }
- else {
- animation_state->m_flGoalFeetYaw = flEyeYaw - fabs(flMaxBodyYaw);
- }
- animation_state->m_flGoalFeetYaw = std::remainderf(animation_state->m_flGoalFeetYaw, 180.f);
- if (animation_state->speed_2d > 0.1f || fabs(velocity.z) > 100.0f) {
- animation_state->m_flGoalFeetYaw = (
- flEyeYaw,
- animation_state->m_flGoalFeetYaw,
- ((animation_state->m_flUnknownFraction * 20.0f) + 30.0f)
- *animation_state->m_flLastClientSideAnimationUpdateTime);
- }
- else {
- animation_state->m_flGoalFeetYaw = (
- player->GetLowerBodyYaw(),
- animation_state->m_flGoalFeetYaw,
- animation_state->m_flLastClientSideAnimationUpdateTime * 100.0f);
- }
- }
- CResolver* resolver = new CResolver();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement