private void InfoThread() { // offset int controllerOffset, posOffset, healthOffset, nameOffset, teamIDOffset, poseOffset, statusOffset; controllerOffset = 96; posOffset = 336; healthOffset = 1928; nameOffset = 1512; teamIDOffset = 1552; statusOffset = 868; poseOffset = 288; while (true) { // Read Basic Offset uWorlds = Mem.ReadMemory <int>(uWorld); uLevel = Mem.ReadMemory <int>(uWorlds + 32); gameInstance = Mem.ReadMemory <int>(uWorlds + 36); playerController = Mem.ReadMemory <int>(gameInstance + controllerOffset); playerCarry = Mem.ReadMemory <int>(playerController + 32); uMyObject = Mem.ReadMemory <int>(playerCarry + 792); //788 old value //uMyself = Mem.ReadMemory<int>(uLevel + 124); //uMyself = Mem.ReadMemory<int>(uMyself + 36); //uMyself = Mem.ReadMemory<int>(uMyself + 312); //uCamera = Mem.ReadMemory<int>(playerCarry + 804) + 832; //uCursor = playerCarry + 732; //myWorld = Mem.ReadMemory<int>(uMyObject + 312); //myObjectPos = Mem.ReadMemory<Vector3>(myWorld + posOffset); entityEntry = Mem.ReadMemory <int>(uLevel + 112); entityCount = Mem.ReadMemory <int>(uLevel + 116); // Initilize Display Data DisplayData data = new DisplayData(viewWorld, uMyObject); List <PlayerData> playerList = new List <PlayerData>(); List <ItemData> itemList = new List <ItemData>(); List <VehicleData> vehicleList = new List <VehicleData>(); List <BoxData> boxList = new List <BoxData>(); List <GrenadeData> grenadeList = new List <GrenadeData>(); for (int i = 0; i < entityCount; i++) { long entityAddv = Mem.ReadMemory <int>(entityEntry + i * 4); long entityStruct = Mem.ReadMemory <int>(entityAddv + 16); string entityType = GameData.GetEntityType(gNames, entityStruct); if (Settings.PlayerESP) { // if entity is player if (GameData.IsPlayer(entityType)) { //Console.WriteLine(entityType); long playerWorld = Mem.ReadMemory <int>(entityAddv + 312); // read player info // dead player continue int status = Mem.ReadMemory <int>(playerWorld + statusOffset); if (status == 6) { continue; } // my team player continue //int isTeam = Mem.ReadMemory<int>(Mem.ReadMemory<int>(Mem.ReadMemory<int>(entityAddv + 724 + 4)) + 20); //if (isTeam > 0) // continue; Mem.WriteMemory <int>(Mem.ReadMemory <int>(uMyObject + 2656) + 352, 300000); string name = Encoding.Unicode.GetString(Mem.ReadMemory(Mem.ReadMemory <int>(entityAddv + nameOffset), 32)); name = name.Substring(0, name.IndexOf('\0')); PlayerData playerData = new PlayerData { Type = entityType, Address = entityAddv, Position = Mem.ReadMemory <ShpVector3>(playerWorld + posOffset), Status = status, Pose = Mem.ReadMemory <int>(playerWorld + poseOffset), IsRobot = Mem.ReadMemory <int>(entityAddv + 692) == 0 ? true : false, Health = Mem.ReadMemory <float>(entityAddv + healthOffset), Name = name, TeamID = Mem.ReadMemory <int>(entityAddv + teamIDOffset), //IsTeam = isTeam }; if (playerData.Address == uMyObject || playerData.Address == uMyself) { myTeamID = playerData.TeamID; continue; } if (playerData.TeamID == myTeamID) { continue; } //Console.WriteLine(entityType); playerList.Add(playerData); continue; } } if (Settings.ItemESP) { // check if this entity is item Item item = GameData.GetItemType(entityType); if (item != Item.Useless) { // Read Item Info ItemData itemData = new ItemData { Name = item.GetDescription(), Position = Mem.ReadMemory <ShpVector3>(Mem.ReadMemory <int>(entityAddv + 312) + posOffset), Type = item }; itemList.Add(itemData); } // check if this entity is box if (GameData.IsBox(entityType)) { // Read Box Info long boxEntity = Mem.ReadMemory <int>(entityAddv + 312); BoxData boxData = new BoxData(); boxData.Position = Mem.ReadMemory <ShpVector3>(boxEntity + posOffset); boxList.Add(boxData); continue; } } if (Settings.VehicleESP) { Vehicle vehicle = GameData.GetVehicleType(entityType); if (vehicle != Vehicle.Unknown) { // Read Vehicle Info VehicleData vehicleData = new VehicleData { Position = Mem.ReadMemory <ShpVector3>(Mem.ReadMemory <int>(entityAddv + 312) + posOffset), Type = vehicle, Name = vehicle.GetDescription() }; vehicleList.Add(vehicleData); continue; } } // check if the entity is a grenade Grenade grenade = GameData.GetGrenadeType(entityType); if (grenade != Grenade.Unknown) { long grenadeEntity = Mem.ReadMemory <int>(entityAddv + 312); GrenadeData greData = new GrenadeData { Type = grenade, Position = Mem.ReadMemory <ShpVector3>(grenadeEntity + posOffset) }; grenadeList.Add(greData); } } data.Players = playerList.ToArray(); data.Items = itemList.ToArray(); data.Vehicles = vehicleList.ToArray(); data.Boxes = boxList.ToArray(); data.Grenades = grenadeList.ToArray(); espForm.UpdateData(data); aimbotForm.UpdateData(data); Thread.Sleep(10); } }