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"
- inline float RandomFloat(float min, float max)
- {
- static auto fn = (decltype(&RandomFloat))(GetProcAddress(GetModuleHandle("vstdlib.dll"), "RandomFloat"));
- return fn(min, max);
- }
- void CResolver::UpdateResolveRecord(SDK::CBaseEntity* entity)
- {
- 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++)
- {
- record.anim_layers[i] = entity->GetAnimOverlay(i);
- if (entity->GetSequenceActivity(record.anim_layers[i].m_nSequence) == SDK::CSGO_ACTS::ACT_CSGO_IDLE_TURN_BALANCEADJUST)
- {
- record.is_balance_adjust_playing = true;
- 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;
- }
- }
- if (record.is_dormant)
- record.next_predicted_lby_update = FLT_MAX;
- if (record.lower_body_yaw != previous_record.lower_body_yaw && !record.is_dormant && !previous_record.is_dormant)
- record.did_lby_flick = true;
- const bool is_moving_on_ground = record.velocity.Length2D() > 50 && entity->GetFlags() & FL_ONGROUND;
- if (is_moving_on_ground && record.is_balance_adjust_triggered)
- record.is_fakewalking = true;
- else
- record.is_fakewalking = false;
- if (is_moving_on_ground && !record.is_fakewalking && record.velocity.Length2D() > 1.f && !record.is_dormant)
- {
- record.is_last_moving_lby_valid = true;
- record.is_last_moving_lby_delta_valid = false;
- record.shots_missed_moving_lby = 0;
- record.shots_missed_moving_lby_delta = 0;
- record.last_moving_lby = record.lower_body_yaw + 45;
- record.last_time_moving = UTILS::GetCurtime();
- }
- if (!record.is_dormant && previous_record.is_dormant)
- {
- if ((record.origin - previous_record.origin).Length2D() > 16.f)
- record.is_last_moving_lby_valid = false;
- }
- if (!record.is_last_moving_lby_delta_valid && record.is_last_moving_lby_valid && record.velocity.Length2D() < 20 && fabs(UTILS::GetCurtime() - record.last_time_moving) < 1.0)
- {
- if (record.lower_body_yaw != previous_record.lower_body_yaw)
- {
- record.last_moving_lby_delta = MATH::NormalizeYaw(record.last_moving_lby - record.lower_body_yaw);
- record.is_last_moving_lby_delta_valid = true;
- }
- }
- if (MATH::NormalizePitch(record.networked_angles.x) > 5.f)
- record.last_time_down_pitch = UTILS::GetCurtime();
- }
- int CResolver::GetResolveTypeIndex(unsigned short resolve_type)
- {
- if (resolve_type & RESOLVE_TYPE_OVERRIDE)
- return 0;
- else if (resolve_type & RESOLVE_TYPE_NO_FAKE)
- return 1;
- else if (resolve_type & RESOLVE_TYPE_LBY)
- return 2;
- else if (resolve_type & RESOLVE_TYPE_LBY_UPDATE)
- return 3;
- else if (resolve_type & RESOLVE_TYPE_PREDICTED_LBY_UPDATE)
- return 4;
- else if (resolve_type & RESOLVE_TYPE_LAST_MOVING_LBY)
- return 5;
- else if (resolve_type & RESOLVE_TYPE_NOT_BREAKING_LBY)
- return 6;
- else if (resolve_type & RESOLVE_TYPE_BRUTEFORCE)
- return 7;
- else if (resolve_type & RESOLVE_TYPE_LAST_MOVING_LBY_DELTA)
- return 8;
- else if (resolve_type & RESOLVE_TYPE_ANTI_FREESTANDING)
- return 9;
- return 0;
- }
- void CResolver::ProcessSnapShots()
- {
- if (shot_snapshots.size() <= 0)
- return;
- const auto snapshot = shot_snapshots.front();
- if (fabs(UTILS::GetCurtime() - snapshot.time) > 1.f)
- {
- shot_snapshots.erase(shot_snapshots.begin());
- return;
- }
- const int player_index = snapshot.entity->GetIndex();
- if (snapshot.hitgroup_hit != -1)
- {
- for (int i = 0; i < RESOLVE_TYPE_NUM; i++)
- {
- if (snapshot.resolve_record.resolve_type & (1 << i))
- {
- player_resolve_records[player_index].shots_fired[i]++;
- player_resolve_records[player_index].shots_hit[i]++;
- }
- }
- }
- else if (snapshot.first_processed_time != 0.f && fabs(UTILS::GetCurtime() - snapshot.first_processed_time) > 0.1f)
- {
- for (int i = 0; i < RESOLVE_TYPE_NUM; i++)
- {
- if (snapshot.resolve_record.resolve_type & (1 << i))
- player_resolve_records[player_index].shots_fired[i]++;
- }
- if (snapshot.resolve_record.resolve_type & RESOLVE_TYPE_LAST_MOVING_LBY)
- player_resolve_records[player_index].shots_missed_moving_lby++;
- if (snapshot.resolve_record.resolve_type & RESOLVE_TYPE_LAST_MOVING_LBY_DELTA)
- player_resolve_records[player_index].shots_missed_moving_lby_delta++;
- }
- else
- return;
- shot_snapshots.erase(shot_snapshots.begin());
- }
- void CResolver::ResolveYawBruteforce(SDK::CBaseEntity* entity)
- {
- auto local_player = INTERFACES::ClientEntityList->GetClientEntity(INTERFACES::Engine->GetLocalPlayer());
- if (!local_player)
- return;
- auto& resolve_record = player_resolve_records[entity->GetIndex()];
- resolve_record.resolve_type |= RESOLVE_TYPE_BRUTEFORCE;
- const float at_target_yaw = UTILS::CalcAngle(entity->GetVecOrigin(), local_player->GetVecOrigin()).y;
- const int shots_missed = resolve_record.shots_fired[GetResolveTypeIndex(resolve_record.resolve_type)] -
- resolve_record.shots_hit[GetResolveTypeIndex(resolve_record.resolve_type)];
- switch (shots_missed % 3)
- {
- case 0:
- resolve_record.resolved_angles.y = UTILS::GetLBYRotatedYaw(entity->GetLowerBodyYaw(), at_target_yaw + 60.f);
- break;
- case 1:
- resolve_record.resolved_angles.y = at_target_yaw + 140.f;
- break;
- case 2:
- resolve_record.resolved_angles.y = at_target_yaw - 75.f;
- break;
- }
- }
- 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;
- }
- 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;
- }
- float curtime(SDK::CUserCmd* cmd) {
- auto local_player = INTERFACES::ClientEntityList->GetClientEntity(INTERFACES::Engine->GetLocalPlayer());
- if (!local_player)
- return 0;
- int g_tick = 0;
- SDK::CUserCmd* g_pLastCmd = nullptr;
- if (!g_pLastCmd || g_pLastCmd->hasbeenpredicted) {
- g_tick = (float)local_player->GetTickBase();
- }
- else {
- ++g_tick;
- }
- g_pLastCmd = cmd;
- float curtime = g_tick * INTERFACES::Globals->interval_per_tick;
- return curtime;
- }
- bool find_layer(SDK::CBaseEntity* entity, int act, SDK::CAnimationLayer *set)
- {
- for (int i = 0; i < 13; i++)
- {
- SDK::CAnimationLayer layer = entity->GetAnimOverlay(i);
- const int activity = entity->GetSequenceActivity(layer.m_nSequence);
- if (activity == act) {
- *set = layer;
- return true;
- }
- }
- return false;
- }
- bool IsAdjustingBalance(SDK::CBaseEntity* player, SDK::CAnimationLayer *layer)
- {
- for (int i = 0; i < 15; i++)
- {
- const int activity = player->GetSequenceActivity(layer[i].m_nSequence);
- if (activity == 979)
- {
- return true;
- }
- }
- return false;
- }
- void VectorAngles(Vector forward, Vector &angles)
- {
- float tmp, yaw, pitch;
- if (forward[2] == 0 && forward[0] == 0)
- {
- yaw = 0;
- if (forward[2] > 0)
- pitch = 90;
- else
- pitch = 270;
- }
- else
- {
- yaw = (atan2(forward[1], forward[0]) * 180 / pitch);
- if (yaw < 0)
- yaw += 360;
- tmp = sqrt(forward[0] * forward[0] + forward[1] * forward[1]);
- pitch = (atan2(-forward[2], tmp) * 180 / pitch);
- if (pitch < 0)
- pitch += 360;
- }
- if (pitch > 180)
- pitch -= 360;
- else if (pitch < -180)
- pitch += 360;
- if (yaw > 180)
- yaw -= 360;
- else if (yaw < -180)
- yaw += 360;
- if (pitch > 89)
- pitch = 89;
- else if (pitch < -89)
- pitch = -89;
- if (yaw > 180)
- yaw = 180;
- else if (yaw < -180)
- yaw = -180;
- angles[0] = pitch;
- angles[1] = yaw;
- angles[2] = 0;
- }
- 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::resolve(SDK::CBaseEntity* entity)
- {
- auto local_player = INTERFACES::ClientEntityList->GetClientEntity(INTERFACES::Engine->GetLocalPlayer());
- if (!entity) return;
- if (!local_player) return;
- auto &info = player_info[entity->GetIndex()];
- float v18 = entity->GetEyeAngles().y + 180.0;
- float v19 = entity->GetEyeAngles().y + 180.0;
- double v20;
- if (v19 <= 180.0)
- {
- if (v18 < -180.0)
- v19 = v18 + 360.0;
- }
- else
- {
- v19 = v18 - 360.0;
- }
- float v22;//lets assume v20 = viewangles or some shit
- v22 = entity->GetEyeAngles().y + 180.0;
- float v23; float v24;
- {
- if ((entity->GetEyeAngles().y + 180.0) <= 180.0)
- {
- if (v22 < -180.0)
- v22 = v22 + 360.0;
- }
- else
- {
- v22 = v22 - 360.0;
- }
- v23 = v22 - entity->GetLowerBodyYaw();
- if (v23 <= 180.0)
- {
- if (v23 < -180.0)
- v23 = v23 + 360.0;
- }
- else
- {
- v23 = v23 - 360.0;
- }
- }
- auto EyeAngles = entity->GetEyeAnglesPointer();
- if (entity->GetVelocity().Length() > 1 && (entity->GetFlags() & (int)entity->GetFlags() & FL_ONGROUND))
- EyeAngles->y = entity->GetLowerBodyYaw();
- bool IsFast;
- if (entity->GetFlags() & FL_ONGROUND & entity->GetVelocity().Length2D() >= 0.9)
- IsFast = true;
- else
- IsFast = false;
- bool MeetsLBYReq;
- if (entity->GetFlags() & FL_ONGROUND)
- MeetsLBYReq = true;
- else
- MeetsLBYReq = false;
- bool IsMoving;
- if (entity->GetVelocity().Length2D() >= 0.09)
- IsMoving = true;
- else
- IsMoving = false;
- entity->GetEyeAnglesPointer()->y = 160.f;
- {
- if ((shots_missed[entity->GetIndex()] % 1))
- {
- if (MeetsLBYReq && RESOLVE_TYPE_LBY_UPDATE)
- {
- entity->GetEyeAnglesPointer()->y = entity->GetLowerBodyYaw();
- }
- else if (!MeetsLBYReq && RESOLVE_TYPE_LBY_UPDATE)
- {
- switch (shots_missed[entity->GetIndex()] % 1)
- {
- case 1:
- entity->GetEyeAnglesPointer()->y = -30 + rand() % 45 - rand() % 51;
- break;
- case 2:
- entity->GetEyeAnglesPointer()->y = entity->GetLowerBodyYaw() + 20 - rand() % 35;
- break;
- case 3:
- entity->GetEyeAnglesPointer()->y = entity->GetLowerBodyYaw() + 45 % 30 - rand() % 90;
- break;
- case 4:
- entity->GetEyeAnglesPointer()->y = entity->GetLowerBodyYaw() - 90 - rand() % 90 - rand() % 40;
- break;
- case 5:
- entity->GetEyeAnglesPointer()->y = -160 - rand() % 90 - rand() % 40;
- break;
- }
- }
- else
- entity->GetEyeAnglesPointer()->y = rand() % 180 - rand() % 45;
- }
- }
- //--- Variable Defenitions/Checks ---//
- float fl_lby = entity->GetLowerBodyYaw();
- 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;
- }
- 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;
- {
- 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;
- }
- shots_missed[entity->GetIndex()] = shots_fired[entity->GetIndex()] - shots_hit[entity->GetIndex()];
- int i = entity->GetIndex();
- auto player_move = entity->GetVelocity().Length2D() > 36 && !entity->GetFlags() & FL_ONGROUND;
- float player_lastmove[65], player_lastmove_active[65];
- float bruteforce_angle[65];
- player_lastmove_active[i] = false;
- float banana6 = 1337.f, banana7 = 228.f, banana8 = 007.f,
- banana4 = 180.f, banana1 = 90.f, banana2 = -47.f, // ????????? ??????
- banana3 = 46.f, banana5 = -777.f; // ??? float ??? ?????)
- switch (shots_missed[i] % 8)
- {
- case 0: bruteforce_angle[i] = banana1; break;
- case 1: bruteforce_angle[i] = banana2; break;
- case 2: bruteforce_angle[i] = banana3; break;
- case 3: bruteforce_angle[i] = banana4; break;
- case 4: bruteforce_angle[i] = banana5; break;
- case 5: bruteforce_angle[i] = banana6; break;
- case 6: bruteforce_angle[i] = banana7; break;
- case 7: bruteforce_angle[i] = banana8; break;
- }
- if (player_move)
- {
- entity->GetEyeAnglesPointer()->y = entity->GetLowerBodyYaw();
- player_lastmove[i] = entity->GetLowerBodyYaw();
- player_lastmove_active[i] = true;
- }
- else
- {
- if (player_lastmove_active[i])
- {
- if (shots_missed[i] <= 2) entity->GetEyeAnglesPointer()->y = player_lastmove[i];
- else entity->GetEyeAnglesPointer()->y = player_lastmove[i] + bruteforce_angle[i];
- }
- else
- {
- entity->GetEyeAnglesPointer()->y = entity->GetLowerBodyYaw();
- }
- float ltmb[64]; // storing lastmove value
- bool breaking_lby; // breaking lby check
- //@breaking lby check not prediction
- bool unforcelby;
- if (entity->GetLowerBodyYaw() > 0)
- {
- entity->GetLowerBodyYaw() > INTERFACES::Globals->curtime > 2.2 / 2; // if curtime > 1.1 we / but its slowly then 1.1 and we can check double flicks credits @ zero
- breaking_lby = true;
- }
- else
- {
- breaking_lby = false;
- }
- auto Yaws = entity->GetEyeAnglesPointer()->y / 6 + 45 / +24; MATH::GetYawDelta(34, -143) - 42 / 2 + 45; // calc last lastmove delta after landing
- auto serverside = Yaws; // delta calculation credits @@ esoteric
- auto angeldelta = entity->GetLowerBodyYaw() - entity->GetEyeAnglesPointer()->y;
- auto tap = entity->GetLowerBodyYaw() + serverside + angeldelta; // delta abusing reversed aw by @@ zero
- float GetFakeYaw = entity->GetSimTime(); // here we get fakes
- float RealYaw = info.next_lby_update_time ? entity->GetEyeAnglesPointer()->y + 180 : entity->GetLowerBodyYaw() + RandomFloat(180, 23 * 4 / 2 - 3 * 1 / 1 * 3 / 2) + 180; // so here we can take their real ang but we need still manipulate with it
- auto AnimSyncYaw = GetFakeYaw / RealYaw;
- auto BruteToRealYaw = AnimSyncYaw * angeldelta;
- if (fabs(RealYaw >= 45))
- RealYaw = entity->GetEyeAnglesPointer()->y + 90 * GetFakeYaw + RandomFloat(10, -15); // anti freestand and broken lastmove angels
- if (fabs(RealYaw < 45))
- RealYaw = entity->GetEyeAnglesPointer()->y - 90 / angeldelta - RandomFloat(-15, 10); // anti frestand right
- if (entity->GetVelocity().Length2D() > 0.1f)
- {
- entity->GetEyeAnglesPointer()->y = entity->GetLowerBodyYaw();
- }
- else if (breaking_lby) // if we ghot delta stored delta and breaker
- {
- entity->GetEyeAnglesPointer()->y = Yaws; // tap if shaking real or stand more than 0.3 * curtime - simulation time isnt dormant and ghost
- if (shots_missed[entity->GetIndex()] % 2)
- entity->GetEyeAnglesPointer()->y = Yaws - serverside; // if angel static or freestand
- else if (shots_missed[entity->GetIndex()] % 3)
- entity->GetEyeAnglesPointer()->y = Yaws + angeldelta; // if delta < 90
- else if (shots_missed[entity->GetIndex()] % 4)
- entity->GetEyeAnglesPointer()->y = Yaws + tap; // perfect deteck if delta > 90
- else if (shots_missed[entity->GetIndex()] % 5)
- entity->GetEyeAnglesPointer()->y = Yaws + tap + 180 - 45 / angeldelta + serverside; // if lby update cant shake lowercurtime to 0 but animlayer buggy in cs hook animdata hook
- }
- else
- {
- entity->GetEyeAnglesPointer()->y = entity->GetLowerBodyYaw(); // if not break its real
- }
- if (unforcelby && !breaking_lby && angeldelta <= 180)
- {
- entity->GetEyeAnglesPointer()->y = RealYaw;
- }
- 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