Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Offsets
- {
- public static uint
- //G_Client
- G_Client = 0x1780F28,
- G_ClientSize = 0x5808,
- ClientOrigin = 0x28,
- ClientAngles = 0x56BC,
- ClientTeam = 0x5504,
- ClientIsAlive = 0x55D0,
- ClientStance = 0xFC,
- //Entity
- G_Entity = 0x16B9F20,
- G_EntitySize = 0x31C,
- SetClientViewAngles = 0x1E1D90;
- public class Funcs
- {
- public static float[] getPlayerPosition(int clientIndex)
- {
- float[] Position = Lib.ReadSingle(Offsets.Funcs.G_Client(clientIndex, Offsets.ClientOrigin), 3);
- return Position;
- }
- public static uint G_Client(int clientIndex, uint Mod = 0x00)
- {
- return (Offsets.G_Client + (UInt32)Mod) + ((uint)clientIndex * 0x5808);
- }
- public static uint G_Entity(int entityIndex, uint Mod = 0x00)
- {
- return (Offsets.G_Entity + (UInt32)Mod) + ((uint)entityIndex * 0x31C);
- }
- }
- }
- public static bool ClientIsSameTeam(int clientIndex, int otherPlayer)
- {
- return (Lib.ReadInt32(Offsets.Funcs.G_Client(clientIndex, Offsets.ClientTeam)) == Lib.ReadInt32(Offsets.Funcs.G_Client(otherPlayer, Offsets.ClientTeam)));
- }
- public static bool ClientIsInGame(int clientIndex)
- {
- return (Lib.ReadInt32(Offsets.Funcs.G_Client(clientIndex, 0x00)) != 0);
- }
- public static bool ClientIsAlive(int clientIndex)
- {
- return (Lib.ReadInt32(Offsets.Funcs.G_Client(clientIndex, Offsets.ClientIsAlive)) == 0);
- }
- public static void Player_Die(int Killer, int Victim, int meansOfDeath = 18, int iWeapon = 0)
- {
- iWeapon = Lib.ReadInt32(Offsets.Funcs.G_Client(Killer, Offsets.ClientCurrentWeapon));
- UInt32 Attacker = Offsets.Funcs.G_Entity(Killer);
- UInt32 Inflictor = Offsets.Funcs.G_Entity(Victim);
- RPC.Call(Offsets.Scr_PlayerKilled, Inflictor, Attacker, Attacker, 0xFF, meansOfDeath, iWeapon, 0xD0300AD4C);
- Thread.Sleep(100);
- }
- public static float[] vectoangles(float[] Angles)
- {
- float forward;
- float yaw, pitch;
- float[] angles = new float[3];
- if (Angles[1] == 0 && Angles[0] == 0)
- {
- yaw = 0;
- if (Angles[2] > 0) pitch = 90f;
- else pitch = 270f;
- }
- else
- {
- if (Angles[0] != -1) yaw = (float)(Math.Atan2((double)Angles[1], (double)Angles[0]) * 180f / Math.PI);
- else if (Angles[1] > 0) yaw = 90f;
- else yaw = 270;
- if (yaw < 0) yaw += 360f;
- forward = (float)Math.Sqrt((double)(Angles[0] * Angles[0] + Angles[1] * Angles[1]));
- pitch = (float)(Math.Atan2((double)Angles[2], (double)forward) * 180f / Math.PI);
- if (pitch < 0) pitch += 360f;
- }
- angles[0] = -pitch;
- angles[1] = yaw;
- angles[2] = 0;
- return angles;
- }
- public static float[] getVector(float[] point1, float[] point2)
- {
- return new float[] { (point2[0] - point1[0]), (point2[1] - point1[1]), (point2[2] - point1[2]) };
- }
- public static float Distance3D(float[] point1, float[] point2)
- {
- float deltax = point2[0] - point1[0];
- float deltay = point2[1] - point1[1];
- float deltaz = point2[2] - point1[2];
- return Convert.ToSingle(Math.Sqrt((deltax * deltax) + (deltay * deltay) + (deltaz * deltaz)));
- }
- public static float Distance2D(float[] point1, float[] point2)
- {
- float deltax = point2[0] - point1[0];
- float deltaz = point2[1] - point1[1];
- return Convert.ToSingle(Math.Sqrt((deltax * deltax) + (deltaz * deltaz)));
- }
- public static void vec_scale(float[] vec, float scale, out float[] Forward)
- {
- Forward = new float[] { vec[0] * scale, vec[1] * scale, vec[2] * scale };
- }
- public static int GetNearestPlayer(Int32 clientIndex, Boolean EnemyOnly = false)
- {
- int nearestClient = 0;
- float nearestDistance = 99999999;
- for (int i = 0; i < MenuBase.MaxClients; i++)
- {
- if (i != clientIndex)
- {
- if ((ClientIsInGame(i)) && ClientIsAlive(i))
- {
- if (Lib.ReadInt32(Offsets.Funcs.G_Client(clientIndex, Offsets.ClientTeam)) != 0 && EnemyOnly)
- {
- if (!ClientIsSameTeam(clientIndex, i))
- {
- float Distance = Distance3D(Functions.getPlayerPosition(clientIndex), Functions.getPlayerPosition(i));
- if (Distance < nearestDistance)
- {
- nearestDistance = Distance;
- nearestClient = i;
- }
- }
- }
- else
- {
- float Distance = Distance3D(Functions.getPlayerPosition(clientIndex), Functions.getPlayerPosition(i));
- if (Distance < nearestDistance)
- {
- nearestDistance = Distance;
- nearestClient = i;
- }
- }
- }
- }
- }
- return nearestClient;
- }
- public static bool[] AimbotStatus = new bool[MenuBase.MaxClients];
- public static Thread[] AimbotThread = new Thread[MenuBase.MaxClients];
- public static bool[] UnfairAimbot = new bool[MenuBase.MaxClients];
- public static bool[] AimingRequired = new bool[MenuBase.MaxClients];
- private static float CheckStance(int clientIndex)
- {
- Int32 CurrentStance = Lib.ReadByte(Functions.G_Client(clientIndex) + Offsets.ClientStance + 0x03);
- if (CurrentStance == 0x08 || CurrentStance == 0x0A || CurrentStance == 0x48 || CurrentStance == 0x4A)
- { return 44f; }
- if (CurrentStance == 0x04 || CurrentStance == 0x06 || CurrentStance == 0x44 || CurrentStance == 0x46)
- { return 14f; }
- return 0f;
- }
- private static float CheckStanceAttacker(int clientIndex)
- {
- Int32 CurrentStance = Lib.ReadByte(Functions.G_Client(clientIndex) + Offsets.ClientStance + 0x03);
- if (CurrentStance == 0x08 || CurrentStance == 0x0A || CurrentStance == 0x48 || CurrentStance == 0x4A)
- { return 46f; }
- if (CurrentStance == 0x04 || CurrentStance == 0x06 || CurrentStance == 0x44 || CurrentStance == 0x46)
- { return 18f; }
- return 0f;
- }
- private static void InitializeAimbot(int clientIndex)
- {
- PS3.Reconnect();
- while (AimbotStatus[clientIndex])
- {
- if (MenuBase.Menu[clientIndex].isOpen == false)
- {
- int nearestPlayer = GetNearestPlayer(clientIndex);
- if (nearestPlayer != clientIndex)
- {
- if (AimingRequired[clientIndex] == true && UnfairAimbot[clientIndex] == false)
- {
- if (Buttons.Normal.DetectButton(clientIndex, Buttons.Normal.L1))
- {
- SetClientViewAngles(clientIndex, nearestPlayer);
- }
- }
- if (UnfairAimbot[clientIndex] == true && AimingRequired[clientIndex] == true)
- {
- if (Buttons.Normal.DetectButton(clientIndex, Buttons.Normal.L1))
- {
- SetClientViewAngles(clientIndex, nearestPlayer);
- if (Buttons.Normal.DetectButton(clientIndex, Buttons.Normal.R1))
- {
- SetClientViewAngles(clientIndex, nearestPlayer);
- Player_Die(clientIndex, nearestPlayer);
- }
- }
- }
- if (UnfairAimbot[clientIndex] == true && AimingRequired[clientIndex] == false)
- {
- SetClientViewAngles(clientIndex, nearestPlayer);
- if (Buttons.Normal.DetectButton(clientIndex, Buttons.Normal.R1))
- {
- Player_Die(clientIndex, nearestPlayer);
- }
- }
- if (UnfairAimbot[clientIndex] == false && AimingRequired[clientIndex] == false)
- {
- SetClientViewAngles(clientIndex, nearestPlayer);
- }
- }
- }
- }
- }
- public static float[] PlayerAnglesToForward(int clientIndex, float Distance = 200f)
- {
- float[] Angles = Lib.ReadSingle(Offsets.Funcs.G_Client(clientIndex, Offsets.ClientAngles), 3);
- float[] Position = Lib.ReadSingle(Offsets.Funcs.G_Client(clientIndex, Offsets.ClientOrigin), 3);
- float angle, sr, sp, sy, cr, cp, cy, PiDiv;
- PiDiv = ((float)Math.PI / 180f);
- angle = Angles[1] * PiDiv;
- sy = (float)Math.Sin(angle);
- cy = (float)Math.Cos(angle);
- angle = Angles[0] * PiDiv;
- sp = (float)Math.Sin(angle);
- cp = (float)Math.Cos(angle);
- angle = Angles[2] * PiDiv;
- sr = (float)Math.Sin(angle);
- cr = (float)Math.Cos(angle);
- float[] Forward = new float[] { (cp * cy * Distance) + Position[0], (cp * sy * Distance) + Position[1], (-sp * Distance) + Position[2] };
- return Forward;
- }
- public static float[] AnglesToForward(float[] Angles, float Distance = 200f)
- {
- float angle, sr, sp, sy, cr, cp, cy, PiDiv;
- PiDiv = ((float)Math.PI / 180f);
- angle = Angles[1] * PiDiv;
- sy = (float)Math.Sin(angle);
- cy = (float)Math.Cos(angle);
- angle = Angles[0] * PiDiv;
- sp = (float)Math.Sin(angle);
- cp = (float)Math.Cos(angle);
- angle = Angles[2] * PiDiv;
- sr = (float)Math.Sin(angle);
- cr = (float)Math.Cos(angle);
- float[] Forward = new float[] { (cp * cy * Distance), (cp * sy * Distance), (-sp * Distance) };
- return Forward;
- }
- private static void SetClientViewAngles(int clientIndex, int Victim)
- {
- float[] Vec = getVector(Functions.getPlayerPosition(clientIndex), Functions.getPlayerPosition(Victim));
- Vec[2] -= CheckStance(Victim);
- Vec[2] += CheckStanceAttacker(clientIndex);
- float[] Angles = vectoangles(Vec);
- setViewAngles((UInt32)clientIndex, Angles);
- }
- public static void setViewAngles(UInt32 clientIndex, float[] Angles)
- {
- Lib.WriteSingle(0x10040000, Angles);
- RPC.Call(Offsets.SetClientViewAngles, Offsets.Funcs.G_Entity((int)clientIndex), 0x10040000);
- }
- public static float[] getViewAngles(int clientIndex)
- {
- return Lib.ReadSingle(Offsets.Funcs.G_Client(clientIndex, Offsets.ClientAngles), 3);
- }
Add Comment
Please, Sign In to add comment