Advertisement
Guest User

Untitled

a guest
Sep 16th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.77 KB | None | 0 0
  1. #include "Anti-aim.hpp"
  2. #include "../../menu/menu.hpp"
  3. #include "../../sdk/interfaces/engineTrace.hpp"
  4.  
  5. CAntiAim2 g_AntiAim2;
  6.  
  7. bool Swtich = false;
  8.  
  9. enum MovingAAType {
  10. Standing = 0,
  11. Moving,
  12. Air
  13. };
  14.  
  15.  
  16. int ReturnMovementType() {
  17. if (Globals::localPlayer->flags() & FL_ONGROUND)
  18. {
  19. if (Globals::localPlayer->velocity().Length2D() < 32)
  20. {
  21. return MovingAAType::Standing;
  22. }
  23. else if (Globals::localPlayer->velocity().Length2D() > 32)
  24. {
  25. return MovingAAType::Moving;
  26. }
  27. }
  28. else
  29. {
  30. return MovingAAType::Air;
  31. }
  32. }
  33.  
  34. void FreeStanding()
  35. {
  36. static float FinalAngle;
  37. bool bside1 = false;
  38. bool bside2 = false;
  39. bool autowalld = false;
  40. for (int i = 0; i <= g_Interfaces->globalVars->maxClients; ++i)
  41. {
  42. CBaseEntity* pPlayerEntity = g_Interfaces->clientEntity->GetClientEntity(i);
  43.  
  44. if (!pPlayerEntity
  45. || !pPlayerEntity->alive()
  46. || pPlayerEntity->IsDormant()
  47. || pPlayerEntity == Globals::localPlayer
  48. || pPlayerEntity->team() == Globals::localPlayer->team())
  49. continue;
  50.  
  51. float angToLocal = g_Math.calcAngle(Globals::localPlayer->GetOrigin(), pPlayerEntity->GetOrigin()).y;
  52. Vector3 ViewPoint = pPlayerEntity->GetOrigin() + Vector3(0, 0, 90);
  53.  
  54. Vector2 Side1 = { (45 * sin(g_Math.GRD_TO_BOG(angToLocal))),(45 * cos(g_Math.GRD_TO_BOG(angToLocal))) };
  55. Vector2 Side2 = { (45 * sin(g_Math.GRD_TO_BOG(angToLocal + 180))) ,(45 * cos(g_Math.GRD_TO_BOG(angToLocal + 180))) };
  56.  
  57. Vector2 Side3 = { (50 * sin(g_Math.GRD_TO_BOG(angToLocal))),(50 * cos(g_Math.GRD_TO_BOG(angToLocal))) };
  58. Vector2 Side4 = { (50 * sin(g_Math.GRD_TO_BOG(angToLocal + 180))) ,(50 * cos(g_Math.GRD_TO_BOG(angToLocal + 180))) };
  59.  
  60. Vector3 Origin = Globals::localPlayer->GetOrigin();
  61.  
  62. Vector2 OriginLeftRight[] = { Vector2(Side1.x, Side1.y), Vector2(Side2.x, Side2.y) };
  63.  
  64. Vector2 OriginLeftRightLocal[] = { Vector2(Side3.x, Side3.y), Vector2(Side4.x, Side4.y) };
  65.  
  66. for (int side = 0; side < 2; side++)
  67. {
  68. Vector3 OriginAutowall = { Origin.x + OriginLeftRight[side].x, Origin.y - OriginLeftRight[side].y , Origin.z + 80 };
  69. Vector3 OriginAutowall2 = { ViewPoint.x + OriginLeftRightLocal[side].x, ViewPoint.y - OriginLeftRightLocal[side].y , ViewPoint.z };
  70.  
  71. if (g_Autowall.CanHitFloatingPoint(OriginAutowall, ViewPoint))
  72. {
  73. if (side == 0)
  74. {
  75. bside1 = true;
  76. FinalAngle = angToLocal + 90;
  77. }
  78. else if (side == 1)
  79. {
  80. bside2 = true;
  81. FinalAngle = angToLocal - 90;
  82. }
  83. autowalld = true;
  84. }
  85. else
  86. {
  87. for (int side222 = 0; side222 < 2; side222++)
  88. {
  89. Vector3 OriginAutowall222 = { Origin.x + OriginLeftRight[side222].x, Origin.y - OriginLeftRight[side222].y , Origin.z + 80 };
  90.  
  91. if (g_Autowall.CanHitFloatingPoint(OriginAutowall222, OriginAutowall2))
  92. {
  93. if (side222 == 0)
  94. {
  95. bside1 = true;
  96. FinalAngle = angToLocal + 90;
  97. }
  98. else if (side222 == 1)
  99. {
  100. bside2 = true;
  101. FinalAngle = angToLocal - 90;
  102. }
  103. autowalld = true;
  104. }
  105. }
  106. }
  107. }
  108. }
  109.  
  110. if (!autowalld || (bside1 && bside2)) {
  111. switch (ReturnMovementType()) {
  112. case MovingAAType::Standing: {
  113. switch (config->get_int("aaStandingYaw")) {
  114. case 1: Globals::oCmd->viewAngles.y += 180; break;
  115. case 2: Globals::oCmd->viewAngles.y = 0; break;
  116. case 3: Globals::oCmd->viewAngles.y += g_Interfaces->globalVars->curtime * 3000; break;
  117. }
  118. }break;
  119. case MovingAAType::Moving: {
  120. switch (config->get_int("aaMovingYaw")) {
  121. case 1: Globals::oCmd->viewAngles.y += 180; break;
  122. case 2: Globals::oCmd->viewAngles.y = 0; break;
  123. case 3: Globals::oCmd->viewAngles.y += g_Interfaces->globalVars->curtime * 3000; break;
  124. }
  125. }break;
  126. case MovingAAType::Air: {
  127. switch (config->get_int("aaInAirYaw")) {
  128. case 1: Globals::oCmd->viewAngles.y += 180; break;
  129. case 2: Globals::oCmd->viewAngles.y = 0; break;
  130. case 3: Globals::oCmd->viewAngles.y += g_Interfaces->globalVars->curtime * 3000; break;
  131. }
  132. }break;
  133. }
  134. }
  135. else
  136. Globals::oCmd->viewAngles.y = FinalAngle;
  137.  
  138. if (config->get_int("jitterAdd"))
  139. {
  140. float Offset = config->get_int("jitterAdd");
  141.  
  142.  
  143. Swtich ? Globals::oCmd->viewAngles.y -= Offset : Globals::oCmd->viewAngles.y += Offset;
  144. }
  145. }
  146.  
  147. //#include "..\..\SDK\IVModelInfo.h"
  148. mstudiobbox_t* get_hitboxv2(CBaseEntity* entity, int hitbox_index)
  149. {
  150. if (entity->IsDormant() || entity->health() <= 0)
  151. return NULL;
  152.  
  153. const auto pModel = entity->GetModel();
  154. if (!pModel)
  155. return NULL;
  156.  
  157. auto pStudioHdr = g_Interfaces->modelInfo->getStudiomodel(pModel);
  158. if (!pStudioHdr)
  159. return NULL;
  160.  
  161. auto pSet = pStudioHdr->getHitboxSet(0);
  162. if (!pSet)
  163. return NULL;
  164.  
  165. if (hitbox_index >= pSet->numhitboxes || hitbox_index < 0)
  166. return NULL;
  167.  
  168. return pSet->getHitbox(hitbox_index);
  169. }
  170. Vector3 GetHitboxPositionv2(CBaseEntity* entity, int hitbox_id)
  171. {
  172. auto hitbox = get_hitboxv2(entity, hitbox_id);
  173. if (!hitbox)
  174. return Vector3(0, 0, 0);
  175.  
  176. auto bone_matrix = entity->GetBonesMatrix(hitbox->bone);
  177.  
  178. Vector3 bbmin, bbmax;
  179. g_Math.vectorTransform(hitbox->min, bone_matrix, bbmin);
  180. g_Math.vectorTransform(hitbox->max, bone_matrix, bbmax);
  181.  
  182. return (bbmin + bbmax) * 0.5f;
  183. }
  184. float m_bestthreat = 0.f;
  185. void NormalizeNum(Vector3& vIn, Vector3& vOut)
  186. {
  187. float flLen = vIn.Length();
  188. if (flLen == 0) {
  189. vOut.Init(0, 0, 1);
  190. return;
  191. }
  192. flLen = 1 / flLen;
  193. vOut.Init(vIn.x * flLen, vIn.y * flLen, vIn.z * flLen);
  194. }
  195. void VectorSubtractv2(const Vector3& a, const Vector3& b, Vector3& c)
  196. {
  197. c.x = a.x - b.x;
  198. c.y = a.y - b.y;
  199. c.z = a.z - b.z;
  200. }
  201. float fov_player(Vector3 ViewOffSet, Vector3 View, CBaseEntity* entity, int hitbox)
  202. {
  203. // Anything past 180 degrees is just going to wrap around
  204. CONST FLOAT MaxDegrees = 180.0f;
  205.  
  206. // Get local angles
  207. Vector3 Angles = View;
  208.  
  209. // Get local view / eye position
  210. Vector3 Origin = ViewOffSet;
  211.  
  212. // Create and intiialize vectors for calculations below
  213. Vector3 Delta(0, 0, 0);
  214. //Vector Origin(0, 0, 0);
  215. Vector3 Forward(0, 0, 0);
  216.  
  217. // Convert angles to normalized directional forward vector
  218. g_Math.angleVectors(Angles, &Forward);
  219.  
  220. Vector3 AimPos = GetHitboxPositionv2(entity, hitbox); //pvs fix disabled
  221.  
  222. Vector3Subtract(AimPos, Origin, Delta);
  223. //Delta = AimPos - Origin;
  224.  
  225. // Normalize our delta vector
  226. NormalizeNum(Delta, Delta);
  227.  
  228. // Get dot product between delta position and directional forward vectors
  229. FLOAT DotProduct = Forward.Dot(Delta);
  230.  
  231. // Time to calculate the field of view
  232. return (acos(DotProduct) * (MaxDegrees / M_PI));
  233. }
  234.  
  235.  
  236. int closest_to_crosshair()
  237. {
  238. int index = -1;
  239. float lowest_fov = INT_MAX;
  240.  
  241. auto local_player = Globals::localPlayer;
  242.  
  243. if (!local_player)
  244. return -1;
  245.  
  246. Vector3 local_position = local_player->vecOrigin() + local_player->viewOffset();
  247.  
  248. Vector3 angles;
  249. g_Interfaces->gameEngine->getViewAngles(angles);
  250.  
  251. for (int i = 1; i <= g_Interfaces->globalVars->maxClients; i++)
  252. {
  253. auto entity = g_Interfaces->clientEntity->GetClientEntity(i);
  254.  
  255. if (!entity || !entity->alive() || entity->team() == local_player->team() || entity->IsDormant() || entity == local_player)
  256. continue;
  257.  
  258. float fov = fov_player(local_position, angles, entity, 0);
  259.  
  260. if (fov < lowest_fov)
  261. {
  262. lowest_fov = fov;
  263. index = i;
  264. }
  265. }
  266.  
  267. return index;
  268. }
  269.  
  270. int closest_to_local_player()
  271. {
  272. int index = -1;
  273. float lowest_distance = INT_MAX;
  274.  
  275. auto local_player = Globals::localPlayer;
  276.  
  277. if (!local_player)
  278. return -1;
  279.  
  280. Vector3 local_position = local_player->vecOrigin() + local_player->viewOffset();
  281.  
  282. Vector3 angles;
  283. g_Interfaces->gameEngine->getViewAngles(angles);
  284.  
  285. for (int i = 1; i <= g_Interfaces->globalVars->maxClients; i++)
  286. {
  287. auto entity = g_Interfaces->clientEntity->GetClientEntity(i);
  288.  
  289. if (!entity || !entity->alive() || entity->team() == local_player->team() || entity->IsDormant() || entity == local_player)
  290. continue;
  291.  
  292. float distance = g_Math.Distance(Vector2(local_player->GetOrigin().x, local_player->GetOrigin().y), Vector2(entity->GetOrigin().x, entity->GetOrigin().y));
  293.  
  294. if (distance < lowest_distance)
  295. {
  296. lowest_distance = distance;
  297. index = i;
  298. }
  299. }
  300.  
  301. return index;
  302. }
  303.  
  304.  
  305. int BestTargetByThreat() {
  306.  
  307. for (int i = 0; i <= g_Interfaces->globalVars->maxClients; i++)
  308. {
  309. auto Entity = g_Interfaces->clientEntity->GetClientEntity(i);
  310. auto LocalPlayer = Globals::localPlayer;
  311.  
  312. if (!Entity || !LocalPlayer || !Entity->alive() || Entity->IsDormant())
  313. continue;
  314.  
  315. m_bestthreat = 0.f;
  316.  
  317. float dist = g_Math.Distance(Vector2(LocalPlayer->GetOrigin().x, LocalPlayer->GetOrigin().y), Vector2(Entity->GetOrigin().x, Entity->GetOrigin().y));
  318.  
  319. float health = (float)Entity->health();
  320.  
  321. float threat = health / dist;
  322.  
  323. if (threat > m_bestthreat)
  324. {
  325. return Entity->EntIndex();
  326. }
  327.  
  328. return 0;
  329. }
  330. }
  331. void freestand(CUserCmd* cmd)
  332. {
  333. auto local_player = Globals::localPlayer;
  334.  
  335. if (!local_player)
  336. return;
  337.  
  338. static float last_real;
  339. bool no_active = true;
  340. float bestrotation = 0.f;
  341. float highestthickness = 0.f;
  342. Vector3 besthead;
  343.  
  344. m_bestthreat = 0.f;
  345.  
  346. auto leyepos = local_player->vecOrigin() + local_player->viewOffset();
  347. auto headpos = GetHitboxPositionv2(local_player, 0);
  348. auto origin = local_player->GetAbsOrigin();
  349.  
  350.  
  351. auto checkWallThickness = [&](CBaseEntity* pPlayer, Vector3 newhead) -> float
  352. {
  353. Vector3 endpos1, endpos2;
  354. Vector3 eyepos = pPlayer->vecOrigin() + pPlayer->viewOffset();
  355.  
  356.  
  357. CTraceFilterSkipTwoEntities filter(pPlayer, local_player);
  358.  
  359. C_Trace trace1, trace2;
  360. g_Interfaces->trace->TraceRay2(C_Ray(newhead, eyepos), mask_shot_brushonly, &filter, &trace1);
  361.  
  362. if (trace1.DidHit())
  363. endpos1 = trace1.end;
  364. else
  365. return 0.f;
  366.  
  367.  
  368. g_Interfaces->trace->TraceRay2(C_Ray(eyepos, newhead), mask_shot_brushonly, &filter, &trace2);
  369.  
  370. if (trace2.DidHit())
  371. endpos2 = trace2.end;
  372.  
  373. float add = newhead.DistTo(eyepos) - leyepos.DistTo(eyepos) + 3.f;
  374. return endpos1.DistTo(endpos2) + add / 3;
  375. };
  376.  
  377. int index = -1;
  378.  
  379. switch (config->get_int("aaAutoDirType")) {
  380. case 1: { index = closest_to_crosshair(); } break;
  381. case 2: { index = closest_to_local_player(); } break;
  382. }
  383.  
  384. static CBaseEntity* entity;
  385.  
  386. if (index != -1)
  387. entity = g_Interfaces->clientEntity->GetClientEntity(index);
  388.  
  389. float step = (2 * M_PI) / 18.f; // One PI = half a circle ( for stacker cause low iq :sunglasses: ), 28
  390.  
  391. float radius = fabs(Vector3(headpos - origin).Length2D());
  392.  
  393. if (index == -1)
  394. {
  395. no_active = true;
  396. }
  397. else
  398. {
  399. for (float rotation = 0; rotation < (M_PI * 2.0); rotation += step)
  400. {
  401. Vector3 newhead(radius * cos(rotation) + leyepos.x, radius * sin(rotation) + leyepos.y, leyepos.z);
  402.  
  403. float totalthickness = 0.f;
  404.  
  405. no_active = false;
  406.  
  407. totalthickness += checkWallThickness(entity, newhead);
  408.  
  409. if (totalthickness > highestthickness)
  410. {
  411. highestthickness = totalthickness;
  412. bestrotation = rotation;
  413. besthead = newhead;
  414. }
  415. }
  416. }
  417.  
  418.  
  419. if (no_active)
  420. switch (ReturnMovementType()) {
  421. case MovingAAType::Standing: {
  422. switch (config->get_int("aaStandingYaw")) {
  423. case 1: Globals::oCmd->viewAngles.y += 180; break;
  424. case 2: Globals::oCmd->viewAngles.y = 0; break;
  425. case 3: Globals::oCmd->viewAngles.y += g_Interfaces->globalVars->curtime * 3000; break;
  426. }
  427. }break;
  428. case MovingAAType::Moving: {
  429. switch (config->get_int("aaMovingYaw")) {
  430. case 1: Globals::oCmd->viewAngles.y += 180; break;
  431. case 2: Globals::oCmd->viewAngles.y = 0; break;
  432. case 3: Globals::oCmd->viewAngles.y += g_Interfaces->globalVars->curtime * 3000; break;
  433. }
  434. }break;
  435. case MovingAAType::Air: {
  436. switch (config->get_int("aaInAirYaw")) {
  437. case 1: Globals::oCmd->viewAngles.y += 180; break;
  438. case 2: Globals::oCmd->viewAngles.y = 0; break;
  439. case 3: Globals::oCmd->viewAngles.y += g_Interfaces->globalVars->curtime * 3000; break;
  440. }
  441. }break;
  442. }
  443. else
  444. cmd->viewAngles.y = RAD2DEG(bestrotation);
  445.  
  446. last_real = cmd->viewAngles.y;
  447. }
  448.  
  449. bool Left_AA = false;
  450. bool Right_AA = false;
  451. bool Back_AA = false;
  452.  
  453. static float next_lby_update_time = 0;
  454. float get_curtime(CUserCmd* ucmd) {
  455. auto local_player = Globals::localPlayer;
  456.  
  457. if (!local_player)
  458. return 0;
  459.  
  460. int g_tick = 0;
  461. CUserCmd* g_pLastCmd = nullptr;
  462. if (!g_pLastCmd || g_pLastCmd->hasbeenPredicted) {
  463. g_tick = (float)local_player->tickBase();
  464. }
  465. else {
  466. ++g_tick;
  467. }
  468. g_pLastCmd = ucmd;
  469. float curtime = g_tick * g_Interfaces->globalVars->intervalPerTick;
  470. return curtime;
  471. }
  472. bool next_lby_update(const float yaw_to_break, CUserCmd* cmd)
  473. {
  474. auto local_player = Globals::localPlayer;
  475.  
  476. if (!local_player)
  477. return false;
  478.  
  479. static float next_lby_update_time = 0;
  480. float curtime = get_curtime(cmd);
  481.  
  482. auto animstate = local_player->animState();
  483. if (!animstate)
  484. return false;
  485.  
  486. if (!(local_player->flags() & FL_ONGROUND))
  487. return false;
  488.  
  489. if (animstate->speed_2d > 0.1)
  490. next_lby_update_time = curtime + 0.22f;
  491.  
  492. if (next_lby_update_time < curtime)
  493. {
  494. next_lby_update_time = curtime + 1.1f;
  495. return true;
  496. }
  497.  
  498. return false;
  499. }
  500. bool m_bAutomaticDir = false;
  501. int m_iAutoDirection = 0;
  502.  
  503. int m_iJitter = 0;
  504. int m_iJitterIteration = 0;
  505.  
  506. float m_flCurrentFeetYaw = 0.0f;
  507. float m_flPreviousFeetYaw = 0.0f;
  508.  
  509. void Real()
  510. {
  511. //if (!g::bSendPacket && g::pLocalEntity->AnimState() && g_Menu.Config.DesyncAngle)
  512. //g::pCmd->viewangles.y = g_Math.NormalizeYaw(g::pLocalEntity->AnimState()->m_flGoalFeetYaw + 180.f);
  513. //else {
  514. // freestanding soon
  515. //}
  516.  
  517. static bool Swtich2 = false;
  518. Swtich2 = !Swtich2;
  519.  
  520. static float test = 0.f;
  521. if (Swtich2)
  522. test += 90.f;
  523.  
  524. test = g_Math.normalizeYaw(test);
  525.  
  526. if (config->get_int("aaDesync") > 0) {
  527. Globals::desyncEnabledSpecialChecks = true;
  528. }
  529. else {
  530. Globals::desyncEnabledSpecialChecks = false;
  531. }
  532. if (config->get_int("aaDesyncType") == 2 && Globals::localPlayer->animState()) { // balance
  533. float desync = Globals::localPlayer->calculateDesyncValue();
  534. float balance = 1.0f;
  535.  
  536. int type = 2;
  537. if (type == 2)
  538. balance = -1.0f;
  539.  
  540. if (g_Interfaces->globalVars->curtime <= next_lby_update(Globals::oCmd->viewAngles.y, Globals::oCmd)) {
  541.  
  542. auto net_channel = g_Interfaces->gameEngine->getNetChannel();
  543.  
  544. if (!net_channel)
  545. return;
  546.  
  547. if (net_channel->m_nChokedPackets >= 2) {
  548. Globals::oCmd->viewAngles.y = g_Math.normalizeYaw(Globals::oCmd->viewAngles.y);
  549. return;
  550. }
  551.  
  552. if (type == 1)
  553. Globals::oCmd->viewAngles.y -= 100.0f;
  554. else
  555. Globals::oCmd->viewAngles.y += (balance * 120.0f);
  556. }
  557. else if (type != 1) {
  558. Globals::oCmd->viewAngles.y -= (desync + 30.0f) * balance;
  559. }
  560. }
  561.  
  562. if (config->get_int("aaDesyncType") == 3) { //jitter
  563. int jitter_side = 1;
  564.  
  565. Globals::oCmd->viewAngles.y += 180.0f;
  566.  
  567. float desync = Globals::localPlayer->calculateDesyncValue();
  568. float lby_delta = 180.0f - desync + 10.0f;
  569. float desync_length = 180.0f - lby_delta * 0.5f;
  570. float jitter = 90.0f * jitter_side;
  571.  
  572.  
  573. if (jitter_side == 1)
  574. Globals::oCmd->viewAngles.y += desync_length;
  575. else if (jitter_side == -1)
  576. Globals::oCmd->viewAngles.y -= desync_length;
  577.  
  578.  
  579. int v19 = 0;
  580. if (g_Interfaces->globalVars->curtime < g_Interfaces->globalVars->curtime <= next_lby_update(Globals::oCmd->viewAngles.y, Globals::oCmd)) {
  581. v19 = m_iJitter;
  582. }
  583. else {
  584. m_iJitter = 0;
  585. }
  586.  
  587. int v20 = v19 - 1;
  588. if (v20) {
  589. if (v20 == 1) {
  590. if (jitter_side == 1)
  591. Globals::oCmd->viewAngles.y += lby_delta;
  592. else
  593. Globals::oCmd->viewAngles.y += desync - 190.0f;
  594. }
  595. }
  596. else {
  597. if (jitter_side == 1)
  598. Globals::oCmd->viewAngles.y += desync - 190.0;
  599. else
  600. Globals::oCmd->viewAngles.y += lby_delta;
  601. Globals::bSendPacket = true;
  602. }
  603.  
  604. if (++m_iJitter >= 3)
  605. m_iJitter = 0;
  606.  
  607. Globals::oCmd->viewAngles.y = g_Math.normalizeYaw(Globals::oCmd->viewAngles.y);
  608. }
  609.  
  610. if (!Globals::bSendPacket && Globals::localPlayer->animState() && config->get_int("aaDesyncType") > 0) {
  611. /*if (c_config::get().desync == 1) {
  612. Globals::oCmd->viewAngles.y = g_Math.normalizeYaw(Globals::realAngle.y + 90 + test);
  613. }*/
  614. if (config->get_int("aaDesyncType") == 1) {
  615. Globals::oCmd->viewAngles.y += Globals::localPlayer->calculateDesyncValue();
  616. }
  617. }
  618. else {
  619. if (!config->get_bool("aaAutoDir"))
  620. {
  621. switch (ReturnMovementType()) {
  622. case MovingAAType::Standing: {
  623. switch (config->get_int("aaStandingYaw")) {
  624. case 1: Globals::oCmd->viewAngles.y += 180; break;
  625. case 2: Globals::oCmd->viewAngles.y = 0; break;
  626. case 3: Globals::oCmd->viewAngles.y += g_Interfaces->globalVars->curtime * 3000; break;
  627. }
  628. }break;
  629. case MovingAAType::Moving: {
  630. switch (config->get_int("aaMovingYaw")) {
  631. case 1: Globals::oCmd->viewAngles.y += 180; break;
  632. case 2: Globals::oCmd->viewAngles.y = 0; break;
  633. case 3: Globals::oCmd->viewAngles.y += g_Interfaces->globalVars->curtime * 3000; break;
  634. }
  635. }break;
  636. case MovingAAType::Air: {
  637. switch (config->get_int("aaInAirYaw")) {
  638. case 1: Globals::oCmd->viewAngles.y += 180; break;
  639. case 2: Globals::oCmd->viewAngles.y = 0; break;
  640. case 3: Globals::oCmd->viewAngles.y += g_Interfaces->globalVars->curtime * 3000; break;
  641. }
  642. }break;
  643. }
  644.  
  645. }
  646. else {
  647. if (config->get_int("aaAutoDirType") == 0) {
  648. FreeStanding();
  649. }
  650. else {
  651. freestand(Globals::oCmd);
  652. }
  653. }
  654. }
  655. }
  656.  
  657. void CAntiAim2::OnMoveAA()
  658. {
  659. if (!Globals::localPlayer || !g_Interfaces->gameEngine->inGame() || !Globals::localPlayer->activeWeapon() || !config->get_bool("aaEnable")) {
  660. Globals::desyncEnabledSpecialChecks = false;
  661. return;
  662. }
  663.  
  664.  
  665. if (!Globals::localPlayer->alive() || Globals::localPlayer->isNade()) {
  666. Globals::desyncEnabledSpecialChecks = false;
  667. return;
  668. }
  669.  
  670.  
  671. if (Globals::localPlayer->moveType() == movetype_ladder) {
  672. Globals::desyncEnabledSpecialChecks = false;
  673. return;
  674. }
  675.  
  676. if (Globals::oCmd->buttons & IN_USE)
  677. {
  678. Globals::desyncEnabledSpecialChecks = false;
  679. return;
  680. }
  681.  
  682.  
  683. float flServerTime = Globals::localPlayer->tickBase() * g_Interfaces->globalVars->intervalPerTick;
  684. bool canShoot = (Globals::localPlayer->activeWeapon()->nextPrimaryAttack() <= flServerTime);
  685.  
  686. if ((canShoot && (Globals::oCmd->buttons & IN_ATTACK)) && Globals::localPlayer->activeWeapon()->GetItemDefinitionIndex() != item_definition_indexes::weapon_revolver) {
  687. Globals::desyncEnabledSpecialChecks = false;
  688.  
  689. return;
  690. }
  691.  
  692. if (Globals::bSendPacket)
  693. Swtich = !Swtich;
  694.  
  695. switch (ReturnMovementType()) {
  696. case MovingAAType::Standing:
  697. switch (config->get_int("aaStandingPitch"))
  698. {
  699. case 1: Globals::oCmd->viewAngles.x = 89.9f; break; // DOWN
  700. case 2: Globals::oCmd->viewAngles.x = -89.9f; break; // UP
  701. case 3: Globals::oCmd->viewAngles.x = 0; break; // ZERO
  702. case 4: Globals::oCmd->viewAngles.x = -991; break; // FAKEDOWN
  703. case 5: Globals::oCmd->viewAngles.x = 991; break; // FAKEUP
  704. }
  705.  
  706. break;
  707. case MovingAAType::Moving:
  708. switch (config->get_int("aaMovingPitch"))
  709. {
  710. case 1: Globals::oCmd->viewAngles.x = 89.9f; break; // DOWN
  711. case 2: Globals::oCmd->viewAngles.x = -89.9f; break; // UP
  712. case 3: Globals::oCmd->viewAngles.x = 0; break; // ZERO
  713. case 4: Globals::oCmd->viewAngles.x = -991; break; // FAKEDOWN
  714. case 5: Globals::oCmd->viewAngles.x = 991; break; // FAKEUP
  715. }
  716. break;
  717. case MovingAAType::Air:
  718. switch (config->get_int("aaInAirPitch"))
  719. {
  720. case 1: Globals::oCmd->viewAngles.x = 89.9f; break; // DOWN
  721. case 2: Globals::oCmd->viewAngles.x = -89.9f; break; // UP
  722. case 3: Globals::oCmd->viewAngles.x = 0; break; // ZERO
  723. case 4: Globals::oCmd->viewAngles.x = -991; break; // FAKEDOWN
  724. case 5: Globals::oCmd->viewAngles.x = 991; break; // FAKEUP
  725. }
  726. break;
  727. }
  728.  
  729.  
  730. Real();
  731. }
  732.  
  733.  
  734. //
  735.  
  736.  
  737. #pragma once
  738.  
  739. #include "../../utilities/includes.h"
  740. #include "../Aimbot/Autowall.hpp"
  741.  
  742. class CAntiAim2
  743. {
  744. public:
  745. void OnMoveAA();
  746. private:
  747.  
  748. }; extern CAntiAim2 g_AntiAim2;
  749.  
  750. //mstudiobbox_t* get_hitboxv2(CBaseEntity* entity, int hitbox_index);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement