Advertisement
dcomicboy

halo aimbot

Apr 30th, 2012
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.74 KB | None | 0 0
  1. //BOOLS///////////////////////////////////
  2.  
  3. float Get2dDistance(float x, float y)
  4. {
  5. return ((float)sqrt((x * x) + (y * y)));
  6. }
  7.  
  8. float GetAngleDistance(float fLocal[3],float f2Enemy[3])
  9. {
  10. return (float)(60 * acos(sin(fLocal[1]) * sin(f2Enemy[1]) + cos(fLocal[1]) * cos(f2Enemy[1]) * cos(f2Enemy[0] - fLocal[0])));
  11. }
  12.  
  13. bool GetAngleToEnemy(unsigned int index)
  14. {
  15. float mx,my,mz;
  16. gHook.m_fLead = 7.0f;
  17.  
  18. if(GetPlayerByIndex(index))
  19. {
  20. mx = Masterchief->Head[10] - Camera->m_fWorld[0];
  21. my = Masterchief->Head[11] - Camera->m_fWorld[1];
  22. mz = Masterchief->Head[12] - Camera->m_fWorld[2];
  23.  
  24. mx += (Masterchief->m_Velocity[0] *gHook.m_fLead);
  25. my += (Masterchief->m_Velocity[1] *gHook.m_fLead);
  26. mz += (Masterchief->m_Velocity[2] *gHook.m_fLead);
  27.  
  28. float dist = Get2dDistance(mx,my);
  29. gHook.m_fRot[0] = (float)atanf(my/mx);
  30. gHook.m_fRot[1] = (float)atan2f(mz, dist);
  31.  
  32. if(gHook.m_fRot[0] < 0.0f)
  33. gHook.m_fRot[0] *= -1.0f;
  34.  
  35. if (mx < 0.0f && my >= 0.0f)
  36. gHook.m_fRot[0] = (float)(PI - gHook.m_fRot[0]);
  37. if (mx < 0.0f && my < 0.0f)
  38. gHook.m_fRot[0] = (float)(PI + gHook.m_fRot[0]);
  39. if (mx > 0.0f && my < 0.0f)
  40. gHook.m_fRot[0] = (float)(2.0f * PI - gHook.m_fRot[0]);
  41. return true;
  42. }
  43. return false;
  44. }
  45.  
  46. //CLASSES//////////////////////////////////////////////////////////////
  47. #define MAX_PLAYERS 16
  48.  
  49.  
  50.  
  51. //-------------------------------------------
  52. struct dzHook
  53. {
  54. float m_fRot[3];
  55. float m_fLead;
  56. float m_fDist;
  57. float m_fShortest;
  58. bool m_bAim;
  59. float m_fAng[2]; // x,y angle differences
  60. float m_fTrueBX, m_fTrueBY;
  61. float m_fAX, m_fAY;
  62. float m_fExtremeBX, m_fExtremeBY;
  63. float m_fScreen[2]; // x,y screen coordinates
  64. unsigned int m_uiClosest;
  65. } extern gHook;
  66. //-------------------------------------------
  67. struct Object_Table_Header
  68. {
  69. unsigned char TName[32]; // 'object'
  70. unsigned short MaxObjects; // Maximum number of objects - 0x800(2048 objects)
  71. unsigned short Size; // Size of each object array - 0x0C(12 bytes)
  72. unsigned long Unknown0; // always 1?
  73. unsigned char Data[4]; // '@t@d' - translates to 'data'?
  74. unsigned short Max; // Max number of objects the game has reached (slots maybe?)
  75. unsigned short Num; // Number of objects in the current game
  76. unsigned short NextObjectIndex; // Index number of the next object to spawn
  77. unsigned short NextObjectID; // ID number of the next object to spawn
  78. unsigned long FirstObject; // Pointer to the first object in the table
  79. };
  80. extern Object_Table_Header *ObjectTableHeader;
  81. //-------------------------------------------
  82. struct Object_Table_Array
  83. {
  84. unsigned short ObjectID; // Matches up to Object ID in static player table ( for players )
  85. unsigned short Unknown0;
  86. unsigned short Unknown1;
  87. unsigned short Size; // Structure size
  88. unsigned long Offset; // Pointer to the object data structure
  89. };
  90. extern Object_Table_Array *ObjectTableArray;
  91. //-------------------------------------------
  92. struct AMasterchief
  93. {
  94. unsigned short BipdMetaIndex; // [Biped]characters\cyborg_mp\cyborg_mp
  95. unsigned short BipdMetaID; // [Biped]characters\cyborg_mp\cyborg_mp
  96. unsigned char Zeros_00[4];
  97. unsigned char BitFlags_00[4];
  98. unsigned long Timer_00;
  99. unsigned char BitFlags_01[4];
  100. unsigned long Timer_01;
  101. unsigned char Zeros_01[68];
  102. float m_World[3];
  103. float m_Velocity[3];
  104. float m_LowerRot[3];
  105. float m_Scale[3];
  106. unsigned char Zeros_02[12];
  107. unsigned long LocationID;
  108. unsigned long Pointer_00;
  109. float xUnknown;
  110. float yUnknown;
  111. float zUnknown;
  112. unsigned char Zeros_03[20];
  113. unsigned short PlayerIndex;
  114. unsigned short PlayerID;
  115. unsigned long Unknown00;
  116. unsigned char Zeros_04[4];
  117. unsigned short AntrMetaIndex; // [Animation Trigger]characters\cyborg\cyborg
  118. unsigned short AntrMetaID; // [Animation Trigger]characters\cyborg\cyborg
  119. unsigned char BitFlags_02[8];
  120. unsigned char Unknown01[8];
  121. float Health;
  122. float Shield_00;
  123. unsigned long Zeros_05;
  124. float Unknown02;
  125. unsigned long Unknown03;
  126. float Unknown04;
  127. float Unknown05;
  128. unsigned char Unknown06[24];
  129. unsigned short VehicleWeaponIndex;
  130. unsigned short VehicleWeaponID;
  131. unsigned short WeaponIndex;
  132. unsigned short WeaponID;
  133. unsigned short VehicleIndex; // Ex: Turret on Warthog
  134. unsigned short VehicleID;
  135. unsigned short SeatType;
  136. unsigned char BitFlags_03[2];
  137. unsigned long Zeros_06;
  138. float Shield_01;
  139. float Flashlight_00;
  140. float Zeros_07;
  141. float Flashlight_01;
  142. unsigned char Zeros_08[20];
  143. unsigned long Unknown07;
  144. unsigned char Zeros_09[28];
  145. unsigned char Unknown08[8];
  146. unsigned char Unknown10[148];
  147. unsigned long IsInvisible; // normal = 0x41 invis = 0x51 (bitfield?)
  148. unsigned char IsCrouching; // crouch = 1, jump = 2
  149. unsigned char Unknown11[3];
  150. unsigned char Unknown09[884];
  151. float LeftThigh[13];
  152. float RightThigh[13];
  153. float Pelvis[13];
  154. float LeftCalf[13];
  155. float RightCalf[13];
  156. float Spine[13];
  157. float LeftClavicle[13];
  158. float LeftFoot[13];
  159. float Neck[13];
  160. float RightClavicle[13];
  161. float RightFoot[13];
  162. float Head[13];
  163. float LeftUpperArm[13];
  164. float RightUpperArm[13];
  165. float LeftLowerArm[13];
  166. float RightLowerArm[13];
  167. float LeftHand[13];
  168. float RightHand[13];
  169. char m_cZoom00;
  170. };
  171. extern AMasterchief *Masterchief;
  172. extern AMasterchief *LocalMC;
  173. //-------------------------------------------
  174. struct Static_Player_Header
  175. {
  176. unsigned char TName[32]; // 'players'
  177. unsigned short MaxSlots; // Max number of slots/players possible
  178. unsigned short SlotSize; // Size of each Static_Player struct
  179. unsigned long Unknown; // always 1?
  180. unsigned char Data[4]; // '@t@d' - translated as 'data'?
  181. unsigned short IsInMainMenu; // 0 = in game 1 = in main menu / not in game
  182. unsigned short SlotsTaken; // or # of players
  183. unsigned short NextPlayerIndex; // Index # of the next player to join
  184. unsigned short NextPlayerID; // ID # of the next player to join
  185. unsigned long FirstPlayer; // Pointer to the first static player
  186. };
  187. extern Static_Player_Header *StaticPlayerHeader;
  188. //-------------------------------------------
  189. struct Static_Player
  190. {
  191. unsigned short PlayerID; // Stats at 0x70EC
  192. unsigned short PlayerID2; // ???
  193. wchar_t PlayerName0[12]; // Unicode / Max - 11 Chars + EOS (12 total)
  194. long Unknown0; // Always -1 / 0xFFFFFFFF
  195. unsigned long Team; // 0 = Red / 1 = Blue
  196. unsigned long SwapID; // ObjectID
  197. unsigned short SwapType; // 8 = Vehicle / 6 = Weapon
  198. short SwapSeat; // Warthog - Driver = 0 / Passenger = 1 / Gunner = 2 / Weapon = -1
  199. unsigned long RespawnTimer; // ?????? Counts down when dead, Alive = 0
  200. unsigned long Unknown1; // Always 0
  201. unsigned short ObjectIndex;
  202. unsigned short ObjectID; // Matches against object table
  203. unsigned long Unknown3; // Some sort of ID
  204. unsigned long LocationID; // This is very, very interesting. BG is split into 25 location ID's. 1 -19
  205. long Unknown4; // Always -1 / 0xFFFFFFFF
  206. unsigned long BulletCount; // Something to do with bullets increases - weird.
  207. wchar_t PlayerName1[12]; // Unicode / Max - 11 Chars + EOS (12 total)
  208. unsigned long Unknown5; // 02 00 FF FF
  209. unsigned char Index00;
  210. unsigned char Unknown6;
  211. unsigned char iTeam;
  212. unsigned char Index01;
  213. unsigned long Unknown7;
  214. float SpeedModifier;
  215. };
  216. extern Static_Player *StaticPlayer;
  217. extern Static_Player *LocalPlayer;
  218. //-------------------------------------------
  219. struct ALocal
  220. {
  221. unsigned short PlayerIndex;
  222. unsigned short PlayerID;
  223. unsigned char Unknown00[160];
  224. unsigned short ObjectIndex;
  225. unsigned short ObjectID;
  226. unsigned char Unknown01[8];
  227. float m_fRot[3];
  228. };
  229. //extern ALocal *Local;
  230. extern ALocal *Local;
  231. //-------------------------------------------
  232. struct ACamera
  233. {
  234. float m_fWorld[3];
  235. float m_fShift[3]; // x,y,z -- forward/back,side,vertical
  236. float m_fBackDist;
  237. float m_fFov; // default = 70 degrees
  238. float m_fForward[3];
  239. float m_fUp[3];
  240. float m_fVelocity[3];
  241. };
  242. //-------------------------------------------
  243. unsigned long LocalAddy = 0x402AD408; //CE 0x402AD408; //Trial 0x4BD7D408;
  244. unsigned long StaticPlayerHeaderAddy = 0x402AAF94; //CE 0x402AAF94; //Trial 0x4BD7AF94;
  245. //unsigned long LocalAddy = 0x4BD7D408; //CE 0x402AD408;
  246. //unsigned long StaticPlayerHeaderAddy = 0x4BD7AF94; //CE 0x402AAF94;
  247. unsigned long ObjectTableHeaderAddy = 0x400506B4; //CE 0x400506B4;
  248. unsigned long CameraAddy = 0x00647424; //CE 0x00647424;
  249. #define OBJECT_ADDRESS 0x400506B4;
  250.  
  251. #define PI 3.141592653589793f
  252.  
  253. class PointerTo;
  254. class PlayerInfo;
  255. class _Object;
  256.  
  257. class PointerTo
  258. {
  259. public:
  260. char pad[4];
  261. PlayerInfo * first;
  262. __int32 index;
  263. };
  264.  
  265. class _Object
  266. {
  267. public:
  268. char Pad[4];
  269. D3DXVECTOR3 origin;
  270. };
  271.  
  272. //------------------------------------------------------------------------------
  273. Object_Table_Header *ObjectTableHeader = (Object_Table_Header*)ObjectTableHeaderAddy; //4BB206B4 = trial
  274. Static_Player_Header *StaticPlayerHeader = (Static_Player_Header*)StaticPlayerHeaderAddy; //4BD7AF94 = trial
  275. ALocal *Local = (ALocal*)LocalAddy; //4BD7D408 = trial
  276. ACamera *Camera = (ACamera*)CameraAddy; //006A3964 = trial
  277. Object_Table_Array *ObjectTableArray;
  278. AMasterchief *Masterchief;
  279. AMasterchief *LocalMC;
  280. Static_Player *StaticPlayer;
  281. Static_Player *LocalPlayer;
  282. //ACamera *Camera = (ACamera*)CameraAddy; //006A3964 = trial
  283. dzHook gHook;
  284.  
  285.  
  286.  
  287.  
  288. //AIMBOT//////////////////////////////////////////////////////////////////
  289.  
  290. if(opt.hacks.Aim)
  291. {
  292. if( GetAsyncKeyState( VK_CAPITAL ))
  293.  
  294. {
  295. if(gHook.m_bAim)
  296. {
  297. for( unsigned short i = 0; i < StaticPlayerHeader->MaxSlots; i++)
  298. {
  299. if(GetAngleToEnemy(i))
  300. {
  301. if(GetLocalPlayer(Local->PlayerIndex))
  302. {
  303. if(LocalPlayer->Team == StaticPlayer->Team)
  304. continue;
  305.  
  306. float dist = GetAngleDistance(Local->m_fRot,gHook.m_fRot);
  307. if (dist != 0 && (dist < gHook.m_fShortest || gHook.m_fShortest == 0))
  308.  
  309. {
  310. gHook.m_fShortest = dist;
  311. gHook.m_uiClosest = i;
  312.  
  313. }
  314. }
  315. }
  316. }
  317. gHook.m_fShortest = 0;
  318. gHook.m_bAim = false;
  319. }
  320. else
  321. {
  322. if(GetAngleToEnemy(gHook.m_uiClosest))
  323. {
  324. Local->m_fRot[0] = gHook.m_fRot[0];
  325. Local->m_fRot[1] = gHook.m_fRot[1];
  326. }
  327. else
  328. gHook.m_bAim = true;
  329. }
  330. }
  331. else
  332. gHook.m_bAim = true;
  333. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement