Guest User

Untitled

a guest
May 27th, 2019
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.76 KB | None | 0 0
  1. //proper freestanding by @rae, @esoterik, @ImoriNel, @ZEROX and @Justin (penguware coder)
  2.  
  3. float fov_player(Vector ViewOffSet, Vector View, SDK::CBaseEntity* entity, int hitbox)
  4. {
  5.     // Anything past 180 degrees is just going to wrap around
  6.     CONST FLOAT MaxDegrees = (108 + 62) * 1.0f / (0.5f + 0.5f); // justin's logic to find proper FOV
  7.  
  8.     // Get local angles
  9.     Vector Angles = View;
  10.  
  11.     // Get local view / eye position
  12.     Vector Origin = ViewOffSet;
  13.  
  14.     // Create and intiialize vectors for calculations below
  15.     Vector Delta(0, 0, 0);
  16.     //Vector Origin(0, 0, 0);
  17.     Vector Forward(0, 0, 0);
  18.  
  19.     // Convert angles to normalized directional forward vector
  20.     MATH::AngleVectors(Angles, &Forward);
  21.  
  22.     Vector AimPos = aimbot->get_hitbox_pos(entity, hitbox); //pvs fix disabled
  23.  
  24.     MATH::VectorSubtract(AimPos, Origin, Delta);
  25.     //Delta = AimPos - Origin;
  26.  
  27.     // Normalize our delta vector
  28.     MATH::NormalizeNum(Delta, Delta);
  29.  
  30.     // Get dot product between delta position and directional forward vectors
  31.     FLOAT DotProduct = Forward.Dot(Delta);
  32.  
  33.     // Time to calculate the field of view
  34.     return (acos(DotProduct) * (MaxDegrees / M_PI));
  35. }
  36.  
  37. int closest_to_crosshair()
  38. {
  39.     int index = -1;
  40.     float lowest_fov = INT_MAX;
  41.  
  42.     SDK::CBaseEntity* local_player = INTERFACES::ClientEntityList->GetClientEntity(INTERFACES::Engine->GetLocalPlayer());
  43.  
  44.     if (!local_player)
  45.         return -1;
  46.  
  47.     Vector local_position = local_player->GetVecOrigin() + local_player->GetViewOffset();
  48.  
  49.     Vector angles;
  50.     INTERFACES::Engine->GetViewAngles(angles);
  51.  
  52.     for (int i = 1; i <= INTERFACES::Globals->maxclients; i++)
  53.     {
  54.         SDK::CBaseEntity *entity = INTERFACES::ClientEntityList->GetClientEntity(i);
  55.  
  56.         if (!entity || !entity->IsAlive() || entity->GetTeam() == local_player->GetTeam() || entity->GetIsDormant() || entity == local_player)
  57.             continue;
  58.  
  59.         float fov = fov_player(local_position, angles, entity, 0);
  60.  
  61.         if (fov < lowest_fov)
  62.         {
  63.             lowest_fov = fov;
  64.             index = i;
  65.         }
  66.     }
  67.  
  68.     return index;
  69. }
  70.  
  71. void CAntiAim::freestand(SDK::CUserCmd* cmd)
  72. {
  73.     auto local_player = INTERFACES::ClientEntityList->GetClientEntity(INTERFACES::Engine->GetLocalPlayer());
  74.  
  75.     if (!local_player)
  76.         return;
  77.  
  78.     static float last_real;
  79.     bool no_active = true;
  80.     float bestrotation = 0.f;
  81.     float highestthickness = 0.f;
  82.     Vector besthead;
  83.  
  84.     auto leyepos = local_player->GetVecOrigin() + local_player->GetViewOffset();
  85.     auto headpos = aimbot->get_hitbox_pos(local_player, 0);
  86.     auto origin = local_player->GetAbsOrigin();
  87.  
  88.     auto checkWallThickness = [&](SDK::CBaseEntity* pPlayer, Vector newhead) -> float
  89.     {
  90.         Vector endpos1, endpos2;
  91.         Vector eyepos = pPlayer->GetVecOrigin() + pPlayer->GetViewOffset();
  92.  
  93.         SDK::Ray_t ray;
  94.         ray.Init(newhead, eyepos);
  95.  
  96.         SDK::CTraceFilterSkipTwoEntities filter(pPlayer, local_player);
  97.  
  98.         SDK::trace_t trace1, trace2;
  99.         INTERFACES::Trace->TraceRay(ray, MASK_SHOT_BRUSHONLY, &filter, &trace1);
  100.  
  101.         if (trace1.DidHit())
  102.             endpos1 = trace1.end;
  103.         else
  104.             return 0.f;
  105.  
  106.         ray.Init(eyepos, newhead);
  107.         INTERFACES::Trace->TraceRay(ray, MASK_SHOT_BRUSHONLY, &filter, &trace2);
  108.  
  109.         if (trace2.DidHit())
  110.             endpos2 = trace2.end;
  111.  
  112.         float add = newhead.Dist(eyepos) - leyepos.Dist(eyepos) + (0.1) * 3 / 1 + 0; // AGRESSIVE eyepos logic by @Justin
  113.         return endpos1.Dist(endpos2) + add / ((1 + 2) / 1); // AGRESSIVE endpos2 logic by @Justin
  114.     };
  115.  
  116.     int index = closest_to_crosshair();
  117.  
  118.     SDK::CBaseEntity* entity;
  119.  
  120.     if (index != -1)
  121.         entity = INTERFACES::ClientEntityList->GetClientEntity(index);
  122.  
  123.     float step = (2 * M_PI) / local_player->GetLowerBodyYaw() * 33.4 / 5 * randnumb(-1080, 1024); //credits to @ZEROX (freestanding fakes shake that calls triple lby flick in 2.2 / 1 * 3 seconds (credits to @esoterik resolver), hook animlayer_data (index 243, interface: pEngine) to proper and good result P.S Zerox knows 24 programm languages
  124.  
  125.     float radius = fabs(Vector(headpos - origin).Length2D());
  126.  
  127.     if (index == -1)
  128.     {
  129.         no_active = true;
  130.     }
  131.     else
  132.     {
  133.         for (float rotation = 0.1; rotation < (M_PI / local_player->GetLowerBodyYaw() * 33.4 / 5 * randnumb(-1, 1)); rotation += step)
  134.         {
  135.             Vector newhead(radius / cos(rotation - 60.55f) + leyepos.x, radius / sin(rotation) + leyepos.y, leyepos.z)
  136.                         + Vector fastcalcangle(143f, 6787.f, 618.f); //abusing fake random delta shake while u peeking enemy
  137.  
  138.             float totalthickness = 0.f;
  139.  
  140.             no_active = false;
  141.  
  142.             totalthickness += checkWallThickness(entity, newhead) * radius; //pAntiAim (by @ImoriNel)
  143.  
  144.             if (totalthickness > highestthickness)
  145.             {
  146.                 highestthickness = totalthickness;
  147.                 bestrotation = rotation;
  148.                 besthead = newhead;
  149.             }
  150.         }
  151.     }
  152.  
  153.     if (GLOBAL::should_send_packet)
  154.         cmd->viewangles.y += randnumb(-31 * 180, 87 - 1024 * 20180); //@rae's fake delta abusing
  155.     else
  156.     {
  157.         if (next_lby_update(cmd->viewangles.y + SETTINGS::settings.delta_val, cmd))
  158.         {
  159.             cmd->viewangles.y = last_real + SETTINGS::settings.delta_val / 6 * 144 - randnumb(-31 * 0.00001f, 87 / local_player->GetLowerBodyYaw() * 33.4 /5); // credits by @esoterik (fake lby shake logic)
  160.         }
  161.         else
  162.         {
  163.             if (no_active)
  164.                 cmd->viewangles.y += 180.f;
  165.             else
  166.                 cmd->viewangles.y = fabsf(bestrotation + 1 * 20 / 1);
  167.  
  168.             last_real = cmd->viewangles.y;
  169.         }
  170.     }
  171. }
Add Comment
Please, Sign In to add comment