Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- float GetBestHeadAngle(float yaw)
- {
- IClientEntity* plocal = Interfaces::EntList->GetClientEntity(Interfaces::Engine->GetLocalPlayer());
- float Back, Right, Left;
- Vector src3D, dst3D, forward, right, up, src, dst;
- trace_t tr;
- Ray_t ray, ray2, ray3, ray4, ray5;
- CTraceFilter filter;
- QAngle engineViewAngles;
- Interfaces::Engine->GetViewAngles(engineViewAngles);
- engineViewAngles.x = 0;
- AngleVectors2(engineViewAngles, &forward, &right, &up);
- filter.pSkip = plocal;
- src3D = plocal->GetEyePosition();
- dst3D = src3D + (forward * 384);
- ray.Init(src3D, dst3D);
- Interfaces::Trace->TraceRay(ray, MASK_SHOT, &filter, &tr);
- Back = (tr.endpos - tr.startpos).Length();
- ray2.Init(src3D + right * 35, dst3D + right * 35);
- Interfaces::Trace->TraceRay(ray2, MASK_SHOT, &filter, &tr);
- Right = (tr.endpos - tr.startpos).Length();
- ray3.Init(src3D - right * 35, dst3D - right * 35);
- Interfaces::Trace->TraceRay(ray3, MASK_SHOT, &filter, &tr);
- Left = (tr.endpos - tr.startpos).Length();
- if (Left > Right)
- {
- return (yaw - 90);
- }
- else if (Right > Left)
- {
- return (yaw + 90);
- }
- else if (Back > Right || Back > Left)
- {
- return (yaw - 180);
- }
- return 0;
- }
- float PredictedTime = 0.f;
- bool ShouldPredict()
- {
- IClientEntity* plocal = Interfaces::EntList->GetClientEntity(Interfaces::Engine->GetLocalPlayer());
- INetChannelInfo* nci = Interfaces::Engine->GetNetChannelInfo();
- float server_time = Interfaces::Globals->curtime + nci->GetLatency(FLOW_OUTGOING);
- static bool initialized;
- bool will_update = false;
- if (!initialized && !plocal->IsMoving())
- {
- initialized = true;
- PredictedTime = server_time + 0.22f;
- }
- else if (plocal->IsMoving())
- {
- initialized = false;
- }
- if (server_time >= (PredictedTime) && plocal->GetFlags() & FL_ONGROUND)
- {
- PredictedTime = server_time + 1.1f;
- will_update = true;
- }
- return will_update;
- }
- void BreakLowerbodyFreestand(CUserCmd* pCmd, bool &bSendPacket)
- {
- QAngle Angles;
- Interfaces::Engine->GetViewAngles(Angles);
- float BestHeadPosition = GetBestHeadAngle(Angles.y);
- int LowerbodyDelta = Options::Menu.RageBotTab.FreestandingDelta.GetValue();
- if (bSendPacket)
- {
- pCmd->viewangles.y = BestHeadPosition + LowerbodyDelta + RandomFloat2(-65.f, 65.f);
- }
- else
- {
- if (ShouldPredict())
- pCmd->viewangles.y = BestHeadPosition + LowerbodyDelta;
- else
- pCmd->viewangles.y = BestHeadPosition;
- }
- }
- // system aa
- if (Options::Menu.RageBotTab.AntiAimEnable.GetState())
- {
- if (Options::Menu.RageBotTab.Freestand.GetState() && pLocal->GetVelocity().Length() <= 75.f && pLocal->GetFlags() & FL_ONGROUND) // freestand
- {
- BreakLowerbodyFreestand(pCmd, bSendPacket);
- }
- else
- {
- if (bSendPacket)
- {
- DoFakeAA(pCmd, bSendPacket, pLocal);
- AntiAims::Maunal(pCmd, bSendPacket);
- }
- else
- {
- DoRealAA(pCmd, pLocal, bSendPacket);
- AntiAims::Maunal(pCmd, bSendPacket);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement