Advertisement
Dev

MW3 / BO2 Aimbot Source

Dev
Oct 30th, 2015
31,532
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.82 KB | None | 0 0
  1. vec3 myOrigin;
  2. char AttackerTeam;
  3. vec3 refOrigin;
  4. vec3 testOrigin;
  5.  
  6. #pragma region Aimbot
  7.  
  8. vec3 myOrigin;
  9. char AttackerTeam;
  10. vec3 refOrigin;
  11. vec3 testOrigin;
  12.  
  13. vec3 vectoangles(float value1, float value2, float value3)
  14. {
  15. float forward;
  16. float yaw, pitch;
  17. vec3 angles;
  18. if (value1 == 0 && value2 == 0)
  19. {
  20. yaw = 0;
  21. if (value3 > 0) pitch = 90.00;
  22. else pitch = 270.00;
  23. }
  24. else
  25. {
  26. if (value1 != -1) yaw = (float)(atan2((double)value2, (double)value1) * 180.00 / PI);
  27. else if (value2 > 0) yaw = 90.00;
  28. else yaw = 270;
  29. if (yaw < 0) yaw += 360.00;
  30.  
  31. forward = (float)sqrt((double)(value1 * value1 + value2 * value2));
  32. pitch = (float)(atan2((double)value3, (double)forward) * 180.00 / PI);
  33. if (pitch < 0) pitch += 360.00;
  34. }
  35. angles.angles[0] = -pitch;
  36. angles.angles[1] = yaw;
  37. angles.angles[2] = 0;
  38.  
  39. return angles;
  40. }
  41.  
  42. vec3 getOrigin(int client)
  43. {
  44. vec3 origin;
  45. origin.angles[0] = mw3Playerstate[client]->x;
  46. origin.angles[1] = mw3Playerstate[client]->y;
  47. origin.angles[2] = mw3Playerstate[client]->z;
  48. return origin;
  49. }
  50.  
  51. bool closer(vec3 myOrigin, vec3 referenceOrigin, vec3 newOrigin)
  52. {
  53. float onex = myOrigin.angles[0] - referenceOrigin.angles[0];
  54. float twox = myOrigin.angles[1] - referenceOrigin.angles[1];
  55. float threex = myOrigin.angles[2] - referenceOrigin.angles[2];
  56. double orig = (onex * onex) + (twox * twox) + (threex + threex);
  57. float myx = myOrigin.angles[0] - newOrigin.angles[0];
  58. float myx2 = myOrigin.angles[1] - newOrigin.angles[1];
  59. float myxx = myOrigin.angles[2] - newOrigin.angles[2];
  60. double newo = (myx * myx) + (myx2 * myx2) + (myxx + myxx);
  61.  
  62. if (newo < orig)
  63. return true;
  64. else
  65. return false;
  66. }
  67.  
  68. void setAngles(int client, float pitch, float yaw, float roll)
  69. {
  70. SetViewAngle setViewAngles = (SetViewAngle)0x8222FC90;
  71. float angles[] = { pitch, yaw, roll };
  72. setViewAngles(mw3Entity[client], angles);
  73. }
  74.  
  75. void aimAtNearestClient(int attacker)
  76. {
  77. myOrigin = getOrigin(attacker);
  78. AttackerTeam = mw3Playerstate[attacker]->team;
  79. for(int i=0; i<3; i++) refOrigin.angles[i] = 99999999.00;
  80. int numAlivePlayers = 0;
  81. for (int i = 0; i < 18; i++)
  82. {
  83. if (mw3Entity[i]->active == (char)1)
  84. {
  85. //printf("aimbot client %i active\n", i);
  86. if (Verified[i] == false && i != attacker)
  87. {
  88. //printf("client %i is not attacker\n", i);
  89. if (checkTeam(i, AttackerTeam))
  90. {
  91. //printf("client %i is not on attackers team\n", i);
  92. if (mw3Entity[i]->alive != (char)4)
  93. {
  94. //printf("client %i is alive\n", i);
  95. numAlivePlayers++;
  96. testOrigin = getOrigin(i);
  97. if (closer(myOrigin, refOrigin, testOrigin))
  98. {
  99. //printf("client %i is the closest\n", i);
  100. refOrigin = testOrigin;
  101. }
  102. }
  103. }
  104. }
  105. }
  106. }
  107. if (numAlivePlayers > 0)
  108. {
  109. vec3 test = vectoangles(refOrigin.angles[0] - myOrigin.angles[0], refOrigin.angles[1] - myOrigin.angles[1], refOrigin.angles[2] - myOrigin.angles[2]);
  110. //printf("target found, setting client view angles to %f, %f, %f", test.angles[0], test.angles[1], test.angles[2]);
  111. setAngles(attacker, test.angles[0], test.angles[1], test.angles[2]);
  112. }
  113. }
  114.  
  115. #pragma endregion All aimbot functions (mw3)
  116.  
  117. #pragma region Aimbot
  118.  
  119. vec3 getOriginBo2(int client)
  120. {
  121. vec3 origin;
  122. origin.angles[0] = bo2Playerstate[client]->x;
  123. origin.angles[1] = bo2Playerstate[client]->y;
  124. origin.angles[2] = bo2Playerstate[client]->z;
  125. return origin;
  126. }
  127.  
  128. bool checkTeamBo2(int client, int attackerTeam)
  129. {
  130. if (attackerTeam == 0) return true;
  131. int team = (int)bo2Playerstate[client]->team;
  132. if (attackerTeam != team) return true;
  133. else return false;
  134. }
  135.  
  136. void setAnglesBo2(int client, float pitch, float yaw, float roll)
  137. {
  138. float angles[] = { pitch, yaw, roll };
  139. setViewAnglesBo2(bo2Entity[client], angles);
  140. }
  141.  
  142. singleuchar *getClientStance(int client)
  143. {
  144. return (singleuchar*)(bo2PlayerstateInt(client) + 0xff);
  145. }
  146.  
  147. bool targetFound = false;
  148. void aimAtNearestClientBo2(int attacker)
  149. {
  150. targetFound = false;
  151. myOrigin = getOriginBo2(attacker);
  152. AttackerTeam = bo2Playerstate[attacker]->team;
  153. for(int i=0; i<3; i++) refOrigin.angles[i] = -99999999.00;
  154. int numAlivePlayers = 0;
  155. int closestInt = 0;
  156. for (int i = 0; i < 18; i++)
  157. {
  158. if (bo2Entity[i]->active == 0x04)
  159. {
  160. if (bo2Playerstate[i]->verificationLevel != 0x01 && i != attacker)
  161. {
  162. if (checkTeamBo2(i, AttackerTeam))
  163. {
  164. if (bo2Entity[i]->alive != 0x04)
  165. {
  166. numAlivePlayers++;
  167. testOrigin = getOriginBo2(i);
  168. if (closer(myOrigin, refOrigin, testOrigin))
  169. {
  170. refOrigin = testOrigin;
  171. targetFound = true;
  172. closestInt = i;
  173. }
  174. }
  175. }
  176. }
  177. }
  178. }
  179. if (numAlivePlayers > 0 && targetFound)
  180. {
  181. refOrigin = getOriginBo2(closestInt);
  182. myOrigin = getOriginBo2(attacker);
  183. unsigned char stance = getClientStance(closestInt)->character;
  184. if(stance == 0x04 || stance == 0x06 || stance == 0x44)
  185. refOrigin.angles[2] -= 14.00; //crouch
  186. else if(stance == 0x08 || stance == 0x0a || stance == 0x48)
  187. refOrigin.angles[2] -= 44.00; //prone
  188. vec3 test = vectoangles(refOrigin.angles[0] - myOrigin.angles[0], refOrigin.angles[1] - myOrigin.angles[1], refOrigin.angles[2] - myOrigin.angles[2]);
  189. setAnglesBo2(attacker, test.angles[0], test.angles[1], test.angles[2]);
  190. }
  191. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement