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 "../UTILS/render.h"
- #include "../SDK/CTrace.h"
- #include "../SDK/CBaseWeapon.h"
- #include "../SDK/CGlobalVars.h"
- #include "../SDK/ConVar.h"
- #include "../SDK/AnimLayer.h"
- #include "../UTILS/qangle.h"
- #include "../FEATURES/Aimbot.h"
- #include "../FEATURES/Resolver.h"
- Vector old_calcangle(Vector dst, Vector src)
- {
- Vector angles;
- double delta[3] = { (src.x - dst.x), (src.y - dst.y), (src.z - dst.z) };
- double hyp = sqrt(delta[0] * delta[0] + delta[1] * delta[1]);
- angles.x = (float)(atan(delta[2] / hyp) * 180.0 / 3.14159265);
- angles.y = (float)(atanf(delta[1] / delta[0]) * 57.295779513082f);
- angles.z = 0.0f;
- if (delta[0] >= 0.0)
- {
- angles.y += 180.0f;
- }
- return angles;
- }
- float old_normalize(float Yaw)
- {
- if (Yaw > 180)
- {
- Yaw -= (round(Yaw / 360) * 360.f);
- }
- else if (Yaw < -180)
- {
- Yaw += (round(Yaw / 360) * -360.f);
- }
- return Yaw;
- }
- void CResolver::record(SDK::CBaseEntity* entity, float new_yaw)
- {
- if (entity->GetVelocity().Length2D() > 36) return;
- auto c_baseweapon = reinterpret_cast<SDK::CBaseWeapon*>(INTERFACES::ClientEntityList->GetClientEntity(entity->GetActiveWeaponIndex()));
- if (!c_baseweapon) return;
- auto &info = player_info[entity->GetIndex()];
- if (entity->GetActiveWeaponIndex() && info.last_ammo < c_baseweapon->GetLoadedAmmo()) {
- info.last_ammo = c_baseweapon->GetLoadedAmmo();
- return;
- }
- info.unresolved_yaw.insert(info.unresolved_yaw.begin(), new_yaw);
- if (info.unresolved_yaw.size() > 20) info.unresolved_yaw.pop_back();
- if (info.unresolved_yaw.size() < 2) return;
- auto average_unresolved_yaw = 0;
- for (auto val : info.unresolved_yaw)
- average_unresolved_yaw += val;
- average_unresolved_yaw /= info.unresolved_yaw.size();
- int delta = average_unresolved_yaw - entity->GetLowerBodyYaw();
- auto big_math_delta = abs((((delta + 180) % 360 + 360) % 360 - 180));
- info.lby_deltas.insert(info.lby_deltas.begin(), big_math_delta);
- if (info.lby_deltas.size() > 10) {
- info.lby_deltas.pop_back();
- }
- }
- void CResolver::UpdateResolveRecord(SDK::CBaseEntity* entity)
- {
- /// a copy of the previous record for comparisons and shit
- const auto previous_record = player_resolve_records[entity->GetIndex()];
- auto& record = player_resolve_records[entity->GetIndex()];
- record.resolved_angles = record.networked_angles;
- record.velocity = entity->GetVelocity();
- record.origin = entity->GetVecOrigin();
- record.lower_body_yaw = entity->GetLowerBodyYaw();
- record.is_dormant = entity->GetIsDormant();
- record.resolve_type = 0;
- record.is_balance_adjust_triggered = false, record.is_balance_adjust_playing = false;
- for (int i = 0; i < 15; i++) /// go through each animation layer
- {
- record.anim_layers[i] = entity->GetAnimOverlay(i);
- /// balanceadjust act
- if (entity->GetSequenceActivity(record.anim_layers[i].m_nSequence) == SDK::CSGO_ACTS::ACT_CSGO_IDLE_TURN_BALANCEADJUST)
- {
- record.is_balance_adjust_playing = true;
- /// balance adjust is being triggered
- if (record.anim_layers[i].m_flWeight == 1 || record.anim_layers[i].m_flCycle > previous_record.anim_layers[i].m_flCycle)
- record.last_balance_adjust_trigger_time = UTILS::GetCurtime();
- if (fabs(UTILS::GetCurtime() - record.last_balance_adjust_trigger_time) < 0.5f)
- record.is_balance_adjust_triggered = true;
- }
- }
- }
- bool CResolver::AntiFreestanding(SDK::CBaseEntity* entity, float& yaw)
- {
- const auto freestanding_record = player_resolve_records[entity->GetIndex()].anti_freestanding_record;
- auto local_player = INTERFACES::ClientEntityList->GetClientEntity(INTERFACES::Engine->GetLocalPlayer());
- if (!local_player)
- return false;
- if (freestanding_record.left_damage >= 20 && freestanding_record.right_damage >= 20)
- return false;
- const float at_target_yaw = UTILS::CalcAngle(local_player->GetVecOrigin(), entity->GetVecOrigin()).y;
- if (freestanding_record.left_damage <= 0 && freestanding_record.right_damage <= 0)
- {
- if (freestanding_record.right_fraction < freestanding_record.left_fraction)
- yaw = at_target_yaw + 125.f;
- else
- yaw = at_target_yaw - 73.f;
- }
- else
- {
- if (freestanding_record.left_damage > freestanding_record.right_damage)
- yaw = at_target_yaw + 130.f;
- else
- yaw = at_target_yaw - 49.f;
- }
- return true;
- }
- void CResolver::resolve(SDK::CBaseEntity* entity)
- {
- auto local_player = INTERFACES::ClientEntityList->GetClientEntity(INTERFACES::Engine->GetLocalPlayer());
- if (!entity) return;
- if (!local_player) return;
- bool is_local_player = entity == local_player;
- bool is_teammate = local_player->GetTeam() == entity->GetTeam() && !is_local_player;
- if (is_local_player) return;
- if (is_teammate) return;
- if (entity->GetHealth() <= 0) return;
- if (local_player->GetHealth() <= 0) return;
- if ((SETTINGS::settings.overridemethod == 1 && GetAsyncKeyState(UTILS::INPUT::input_handler.keyBindings(SETTINGS::settings.overridekey))) || (SETTINGS::settings.overridemethod == 0 && SETTINGS::settings.overridething))
- {
- Vector viewangles; INTERFACES::Engine->GetViewAngles(viewangles);
- auto at_target_yaw = UTILS::CalcAngle(entity->GetVecOrigin(), local_player->GetVecOrigin()).y;
- auto delta = MATH::NormalizeYaw(viewangles.y - at_target_yaw);
- auto rightDelta = Vector(entity->GetEyeAngles().x, at_target_yaw + 90, entity->GetEyeAngles().z);
- auto leftDelta = Vector(entity->GetEyeAngles().x, at_target_yaw - 90, entity->GetEyeAngles().z);
- if (delta > 0)
- entity->SetEyeAngles(rightDelta);
- else
- entity->SetEyeAngles(leftDelta);
- return;
- }
- auto &info = player_info[entity->GetIndex()];
- float fl_lby = entity->GetLowerBodyYaw();
- info.lby = Vector(entity->GetEyeAngles().x, entity->GetLowerBodyYaw(), 0.f);
- info.inverse = Vector(entity->GetEyeAngles().x, entity->GetLowerBodyYaw() + 180.f, 0.f);
- info.last_lby = Vector(entity->GetEyeAngles().x, info.last_moving_lby, 0.f);
- info.inverse_left = Vector(entity->GetEyeAngles().x, entity->GetLowerBodyYaw() + 115.f, 0.f);
- info.inverse_right = Vector(entity->GetEyeAngles().x, entity->GetLowerBodyYaw() - 115.f, 0.f);
- info.back = Vector(entity->GetEyeAngles().x, UTILS::CalcAngle(entity->GetVecOrigin(), local_player->GetVecOrigin()).y + 180.f, 0.f);
- info.right = Vector(entity->GetEyeAngles().x, UTILS::CalcAngle(entity->GetVecOrigin(), local_player->GetVecOrigin()).y + 70.f, 0.f);
- info.left = Vector(entity->GetEyeAngles().x, UTILS::CalcAngle(entity->GetVecOrigin(), local_player->GetVecOrigin()).y - 70.f, 0.f);
- info.backtrack = Vector(entity->GetEyeAngles().x, lby_to_back[entity->GetIndex()], 0.f);
- shots_missed[entity->GetIndex()] = shots_fired[entity->GetIndex()] - shots_hit[entity->GetIndex()];
- if (SETTINGS::settings.fakefix_bool) info.is_moving = entity->GetVelocity().Length2D() > 0.1 && entity->GetFlags() & FL_ONGROUND && !info.could_be_slowmo;
- else info.is_moving = entity->GetVelocity().Length2D() > 0.1 && entity->GetFlags() & FL_ONGROUND;
- info.is_jumping = !entity->GetFlags() & FL_ONGROUND;
- info.could_be_slowmo = entity->GetVelocity().Length2D() > 6 && entity->GetVelocity().Length2D() < 36 && !info.is_crouching;
- info.is_crouching = entity->GetFlags() & FL_DUCKING;
- update_time[entity->GetIndex()] = info.next_lby_update_time;
- static float old_simtime[65];
- if (entity->GetSimTime() != old_simtime[entity->GetIndex()])
- {
- using_fake_angles[entity->GetIndex()] = entity->GetSimTime() - old_simtime[entity->GetIndex()] == INTERFACES::Globals->interval_per_tick;
- old_simtime[entity->GetIndex()] = entity->GetSimTime();
- }
- if (!using_fake_angles[entity->GetIndex()])
- {
- if (backtrack_tick[entity->GetIndex()])
- {
- resolve_type[entity->GetIndex()] = 7;
- /* entity->SetEyeAngles(info.backtrack);*/
- }
- else if (info.stored_lby != entity->GetLowerBodyYaw())
- {
- entity->SetEyeAngles(info.lby);
- info.stored_lby = entity->GetLowerBodyYaw();
- resolve_type[entity->GetIndex()] = 3;
- }
- else if (info.is_moving)
- {
- entity->SetEyeAngles(info.lby);
- info.last_moving_lby = entity->GetLowerBodyYaw();
- info.stored_missed = shots_missed[entity->GetIndex()];
- resolve_type[entity->GetIndex()] = 1;
- }
- else
- {
- if (shots_missed[entity->GetIndex()] > info.stored_missed)
- {
- resolve_type[entity->GetIndex()] = 4;
- switch (shots_missed[entity->GetIndex()] % 4)
- {
- case 0: entity->SetEyeAngles(info.inverse); break;
- case 1: entity->SetEyeAngles(info.left); break;
- case 2: entity->SetEyeAngles(info.back); break;
- case 3: entity->SetEyeAngles(info.right); break;
- }
- }
- else
- {
- entity->SetEyeAngles(info.last_lby);
- resolve_type[entity->GetIndex()] = 5;
- }
- }
- }
- }
- CResolver* resolver = new CResolver();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement