Advertisement
Guest User

Untitled

a guest
Aug 2nd, 2015
283
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.50 KB | None | 0 0
  1. void Aimbot() {
  2.  
  3. while (!GetAsyncKeyState(panickey)) {
  4.  
  5. // If aimbot is enabled and aimkey is pressed
  6. if ((aimbotenabled) && (GetAsyncKeyState(aimkey))) {
  7. // Resets best angle and best target
  8. double bestangle = std::numeric_limits<double>::infinity();
  9. int besttarget = NULL;
  10. aimbotting = true;
  11.  
  12. // For every entity
  13. for (int i = 0; i < 32; i++) {
  14.  
  15. // Read entity data
  16. players[i].dwBase = mem.Read<DWORD>(modClient.dwBase + offEntityList + i * 0x10);
  17. ReadData(&players[i]);
  18. GetBonePosition(&players[i], targetbone);
  19. // Read own data
  20. me.dwBase = mem.Read<DWORD>(modClient.dwBase + offLocalPlayer);
  21. ReadData(&me);
  22.  
  23. // If player is alive, is not on our team and is spotted by us (if smoothscale is not 1) then continue
  24. if ((players[i].health > 0) && (me.team != players[i].team) && (SpottedByMe(&players[i]) | (smoothscale == 1))) {
  25.  
  26. players[i].aimangle = CalcAngle(me.position, players[i].bone);
  27. float angledifferencex = me.currentangle.x - players[i].aimangle.x;
  28. float angledifferencey = me.currentangle.y - players[i].aimangle.y;
  29. if (angledifferencey > 180) { angledifferencey -= 360; }
  30. if (angledifferencey < -180) { angledifferencey += 360; }
  31. // totally worth 4 months of going back to school to learn that triangles have sides
  32. double angledifference = sqrt((angledifferencex * angledifferencex) + (angledifferencey * angledifferencey));
  33. // fix for locking on to random areas that aren't a target in rage mode due to me using 999999 fov in rage mode because i'm too lazy to find out the right calc for it
  34. if ((angledifference < bestangle) && (angledifference < fovscale)) {
  35.  
  36. bestangle = angledifference;
  37. besttarget = i;
  38.  
  39. }
  40.  
  41. }
  42.  
  43. }
  44.  
  45. //no killing dead people
  46. if ((besttarget != NULL) && (me.health > 0)) {
  47.  
  48. //no recoil scam
  49. me.punch.x *= rcsscalex;
  50. me.punch.y *= rcsscaley;
  51. //a5 said i need to use a vector in here
  52. Vector modifier = me.punch;
  53. players[besttarget].aimangle.x -= modifier.x;
  54. players[besttarget].aimangle.y -= modifier.y;
  55.  
  56. players[besttarget].aimangle = NormalizeAngle(players[besttarget].aimangle); //no rotating the screen to get better rcs anymore :(
  57. SetAngleSmooth(players[besttarget].aimangle, smoothscale);
  58. // Update besttarget's data
  59. players[besttarget].dwBase = mem.Read<DWORD>(modClient.dwBase + offEntityList + besttarget * 0x10);
  60. ReadData(&players[besttarget]);
  61.  
  62. // If besttarget dies from aimbot or goes out of vision (if smoothscale not 1) wait untill aimkey is resent to find another target if sticky is enabled
  63. while ((((players[besttarget].health > 0) != true) | ((smoothscale > 1) && (!SpottedByMe(&players[besttarget])) | ((smoothscale == 1) && (players[besttarget].health > 0) != true))) && (GetAsyncKeyState(aimkey)) && (stickyenabled == 1)) {
  64.  
  65. Sleep(10);
  66.  
  67. }
  68.  
  69. }
  70. //vac protection
  71. aimbotting = false;
  72. std::this_thread::sleep_for(std::chrono::milliseconds(1));
  73. }
  74.  
  75. }
  76.  
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement