Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //BOOLS///////////////////////////////////
- float Get2dDistance(float x, float y)
- {
- return ((float)sqrt((x * x) + (y * y)));
- }
- float GetAngleDistance(float fLocal[3],float f2Enemy[3])
- {
- return (float)(60 * acos(sin(fLocal[1]) * sin(f2Enemy[1]) + cos(fLocal[1]) * cos(f2Enemy[1]) * cos(f2Enemy[0] - fLocal[0])));
- }
- bool GetAngleToEnemy(unsigned int index)
- {
- float mx,my,mz;
- gHook.m_fLead = 7.0f;
- if(GetPlayerByIndex(index))
- {
- mx = Masterchief->Head[10] - Camera->m_fWorld[0];
- my = Masterchief->Head[11] - Camera->m_fWorld[1];
- mz = Masterchief->Head[12] - Camera->m_fWorld[2];
- mx += (Masterchief->m_Velocity[0] *gHook.m_fLead);
- my += (Masterchief->m_Velocity[1] *gHook.m_fLead);
- mz += (Masterchief->m_Velocity[2] *gHook.m_fLead);
- float dist = Get2dDistance(mx,my);
- gHook.m_fRot[0] = (float)atanf(my/mx);
- gHook.m_fRot[1] = (float)atan2f(mz, dist);
- if(gHook.m_fRot[0] < 0.0f)
- gHook.m_fRot[0] *= -1.0f;
- if (mx < 0.0f && my >= 0.0f)
- gHook.m_fRot[0] = (float)(PI - gHook.m_fRot[0]);
- if (mx < 0.0f && my < 0.0f)
- gHook.m_fRot[0] = (float)(PI + gHook.m_fRot[0]);
- if (mx > 0.0f && my < 0.0f)
- gHook.m_fRot[0] = (float)(2.0f * PI - gHook.m_fRot[0]);
- return true;
- }
- return false;
- }
- //CLASSES//////////////////////////////////////////////////////////////
- #define MAX_PLAYERS 16
- //-------------------------------------------
- struct dzHook
- {
- float m_fRot[3];
- float m_fLead;
- float m_fDist;
- float m_fShortest;
- bool m_bAim;
- float m_fAng[2]; // x,y angle differences
- float m_fTrueBX, m_fTrueBY;
- float m_fAX, m_fAY;
- float m_fExtremeBX, m_fExtremeBY;
- float m_fScreen[2]; // x,y screen coordinates
- unsigned int m_uiClosest;
- } extern gHook;
- //-------------------------------------------
- struct Object_Table_Header
- {
- unsigned char TName[32]; // 'object'
- unsigned short MaxObjects; // Maximum number of objects - 0x800(2048 objects)
- unsigned short Size; // Size of each object array - 0x0C(12 bytes)
- unsigned long Unknown0; // always 1?
- unsigned char Data[4]; // '@t@d' - translates to 'data'?
- unsigned short Max; // Max number of objects the game has reached (slots maybe?)
- unsigned short Num; // Number of objects in the current game
- unsigned short NextObjectIndex; // Index number of the next object to spawn
- unsigned short NextObjectID; // ID number of the next object to spawn
- unsigned long FirstObject; // Pointer to the first object in the table
- };
- extern Object_Table_Header *ObjectTableHeader;
- //-------------------------------------------
- struct Object_Table_Array
- {
- unsigned short ObjectID; // Matches up to Object ID in static player table ( for players )
- unsigned short Unknown0;
- unsigned short Unknown1;
- unsigned short Size; // Structure size
- unsigned long Offset; // Pointer to the object data structure
- };
- extern Object_Table_Array *ObjectTableArray;
- //-------------------------------------------
- struct AMasterchief
- {
- unsigned short BipdMetaIndex; // [Biped]characters\cyborg_mp\cyborg_mp
- unsigned short BipdMetaID; // [Biped]characters\cyborg_mp\cyborg_mp
- unsigned char Zeros_00[4];
- unsigned char BitFlags_00[4];
- unsigned long Timer_00;
- unsigned char BitFlags_01[4];
- unsigned long Timer_01;
- unsigned char Zeros_01[68];
- float m_World[3];
- float m_Velocity[3];
- float m_LowerRot[3];
- float m_Scale[3];
- unsigned char Zeros_02[12];
- unsigned long LocationID;
- unsigned long Pointer_00;
- float xUnknown;
- float yUnknown;
- float zUnknown;
- unsigned char Zeros_03[20];
- unsigned short PlayerIndex;
- unsigned short PlayerID;
- unsigned long Unknown00;
- unsigned char Zeros_04[4];
- unsigned short AntrMetaIndex; // [Animation Trigger]characters\cyborg\cyborg
- unsigned short AntrMetaID; // [Animation Trigger]characters\cyborg\cyborg
- unsigned char BitFlags_02[8];
- unsigned char Unknown01[8];
- float Health;
- float Shield_00;
- unsigned long Zeros_05;
- float Unknown02;
- unsigned long Unknown03;
- float Unknown04;
- float Unknown05;
- unsigned char Unknown06[24];
- unsigned short VehicleWeaponIndex;
- unsigned short VehicleWeaponID;
- unsigned short WeaponIndex;
- unsigned short WeaponID;
- unsigned short VehicleIndex; // Ex: Turret on Warthog
- unsigned short VehicleID;
- unsigned short SeatType;
- unsigned char BitFlags_03[2];
- unsigned long Zeros_06;
- float Shield_01;
- float Flashlight_00;
- float Zeros_07;
- float Flashlight_01;
- unsigned char Zeros_08[20];
- unsigned long Unknown07;
- unsigned char Zeros_09[28];
- unsigned char Unknown08[8];
- unsigned char Unknown10[148];
- unsigned long IsInvisible; // normal = 0x41 invis = 0x51 (bitfield?)
- unsigned char IsCrouching; // crouch = 1, jump = 2
- unsigned char Unknown11[3];
- unsigned char Unknown09[884];
- float LeftThigh[13];
- float RightThigh[13];
- float Pelvis[13];
- float LeftCalf[13];
- float RightCalf[13];
- float Spine[13];
- float LeftClavicle[13];
- float LeftFoot[13];
- float Neck[13];
- float RightClavicle[13];
- float RightFoot[13];
- float Head[13];
- float LeftUpperArm[13];
- float RightUpperArm[13];
- float LeftLowerArm[13];
- float RightLowerArm[13];
- float LeftHand[13];
- float RightHand[13];
- char m_cZoom00;
- };
- extern AMasterchief *Masterchief;
- extern AMasterchief *LocalMC;
- //-------------------------------------------
- struct Static_Player_Header
- {
- unsigned char TName[32]; // 'players'
- unsigned short MaxSlots; // Max number of slots/players possible
- unsigned short SlotSize; // Size of each Static_Player struct
- unsigned long Unknown; // always 1?
- unsigned char Data[4]; // '@t@d' - translated as 'data'?
- unsigned short IsInMainMenu; // 0 = in game 1 = in main menu / not in game
- unsigned short SlotsTaken; // or # of players
- unsigned short NextPlayerIndex; // Index # of the next player to join
- unsigned short NextPlayerID; // ID # of the next player to join
- unsigned long FirstPlayer; // Pointer to the first static player
- };
- extern Static_Player_Header *StaticPlayerHeader;
- //-------------------------------------------
- struct Static_Player
- {
- unsigned short PlayerID; // Stats at 0x70EC
- unsigned short PlayerID2; // ???
- wchar_t PlayerName0[12]; // Unicode / Max - 11 Chars + EOS (12 total)
- long Unknown0; // Always -1 / 0xFFFFFFFF
- unsigned long Team; // 0 = Red / 1 = Blue
- unsigned long SwapID; // ObjectID
- unsigned short SwapType; // 8 = Vehicle / 6 = Weapon
- short SwapSeat; // Warthog - Driver = 0 / Passenger = 1 / Gunner = 2 / Weapon = -1
- unsigned long RespawnTimer; // ?????? Counts down when dead, Alive = 0
- unsigned long Unknown1; // Always 0
- unsigned short ObjectIndex;
- unsigned short ObjectID; // Matches against object table
- unsigned long Unknown3; // Some sort of ID
- unsigned long LocationID; // This is very, very interesting. BG is split into 25 location ID's. 1 -19
- long Unknown4; // Always -1 / 0xFFFFFFFF
- unsigned long BulletCount; // Something to do with bullets increases - weird.
- wchar_t PlayerName1[12]; // Unicode / Max - 11 Chars + EOS (12 total)
- unsigned long Unknown5; // 02 00 FF FF
- unsigned char Index00;
- unsigned char Unknown6;
- unsigned char iTeam;
- unsigned char Index01;
- unsigned long Unknown7;
- float SpeedModifier;
- };
- extern Static_Player *StaticPlayer;
- extern Static_Player *LocalPlayer;
- //-------------------------------------------
- struct ALocal
- {
- unsigned short PlayerIndex;
- unsigned short PlayerID;
- unsigned char Unknown00[160];
- unsigned short ObjectIndex;
- unsigned short ObjectID;
- unsigned char Unknown01[8];
- float m_fRot[3];
- };
- //extern ALocal *Local;
- extern ALocal *Local;
- //-------------------------------------------
- struct ACamera
- {
- float m_fWorld[3];
- float m_fShift[3]; // x,y,z -- forward/back,side,vertical
- float m_fBackDist;
- float m_fFov; // default = 70 degrees
- float m_fForward[3];
- float m_fUp[3];
- float m_fVelocity[3];
- };
- //-------------------------------------------
- unsigned long LocalAddy = 0x402AD408; //CE 0x402AD408; //Trial 0x4BD7D408;
- unsigned long StaticPlayerHeaderAddy = 0x402AAF94; //CE 0x402AAF94; //Trial 0x4BD7AF94;
- //unsigned long LocalAddy = 0x4BD7D408; //CE 0x402AD408;
- //unsigned long StaticPlayerHeaderAddy = 0x4BD7AF94; //CE 0x402AAF94;
- unsigned long ObjectTableHeaderAddy = 0x400506B4; //CE 0x400506B4;
- unsigned long CameraAddy = 0x00647424; //CE 0x00647424;
- #define OBJECT_ADDRESS 0x400506B4;
- #define PI 3.141592653589793f
- class PointerTo;
- class PlayerInfo;
- class _Object;
- class PointerTo
- {
- public:
- char pad[4];
- PlayerInfo * first;
- __int32 index;
- };
- class _Object
- {
- public:
- char Pad[4];
- D3DXVECTOR3 origin;
- };
- //------------------------------------------------------------------------------
- Object_Table_Header *ObjectTableHeader = (Object_Table_Header*)ObjectTableHeaderAddy; //4BB206B4 = trial
- Static_Player_Header *StaticPlayerHeader = (Static_Player_Header*)StaticPlayerHeaderAddy; //4BD7AF94 = trial
- ALocal *Local = (ALocal*)LocalAddy; //4BD7D408 = trial
- ACamera *Camera = (ACamera*)CameraAddy; //006A3964 = trial
- Object_Table_Array *ObjectTableArray;
- AMasterchief *Masterchief;
- AMasterchief *LocalMC;
- Static_Player *StaticPlayer;
- Static_Player *LocalPlayer;
- //ACamera *Camera = (ACamera*)CameraAddy; //006A3964 = trial
- dzHook gHook;
- //AIMBOT//////////////////////////////////////////////////////////////////
- if(opt.hacks.Aim)
- {
- if( GetAsyncKeyState( VK_CAPITAL ))
- {
- if(gHook.m_bAim)
- {
- for( unsigned short i = 0; i < StaticPlayerHeader->MaxSlots; i++)
- {
- if(GetAngleToEnemy(i))
- {
- if(GetLocalPlayer(Local->PlayerIndex))
- {
- if(LocalPlayer->Team == StaticPlayer->Team)
- continue;
- float dist = GetAngleDistance(Local->m_fRot,gHook.m_fRot);
- if (dist != 0 && (dist < gHook.m_fShortest || gHook.m_fShortest == 0))
- {
- gHook.m_fShortest = dist;
- gHook.m_uiClosest = i;
- }
- }
- }
- }
- gHook.m_fShortest = 0;
- gHook.m_bAim = false;
- }
- else
- {
- if(GetAngleToEnemy(gHook.m_uiClosest))
- {
- Local->m_fRot[0] = gHook.m_fRot[0];
- Local->m_fRot[1] = gHook.m_fRot[1];
- }
- else
- gHook.m_bAim = true;
- }
- }
- else
- gHook.m_bAim = true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement