public BaseEntity(BaseEntity copyFrom) : base(copyFrom.Address) { this.Address = copyFrom.Address; this.CopyFieldsFrom(copyFrom); this.iClassID = copyFrom.m_iClassID; this.iClientClass = copyFrom.m_iClientClass; this.szClassName = copyFrom.m_szClassName; }
public Weapon(BaseEntity baseEntity) : base(baseEntity) { this.AddField<int>("Weapon.m_iItemDefinitionIndex", CSGOOffsets.NetVars.Weapon.m_iItemDefinitionIndex); this.AddField<int>("Weapon.m_iState", CSGOOffsets.NetVars.Weapon.m_iState); this.AddField<int>("Weapon.m_iClip1", CSGOOffsets.NetVars.Weapon.m_iClip1); this.AddField<int>("Weapon.m_flNextPrimaryAttack", CSGOOffsets.NetVars.Weapon.m_flNextPrimaryAttack); this.AddField<int>("Weapon.m_bCanReload", CSGOOffsets.NetVars.Weapon.m_bCanReload); this.AddField<int>("Weapon.m_iWeaponTableIndex", CSGOOffsets.NetVars.Weapon.m_iWeaponTableIndex); this.AddField<int>("Weapon.m_fAccuracyPenalty", CSGOOffsets.NetVars.Weapon.m_fAccuracyPenalty); this.AddField<int>("Weapon.m_iWeaponID", CSGOOffsets.NetVars.Weapon.m_iWeaponID); }
public bool SeenBy(BaseEntity ent) { return SeenBy(ent.m_iID - 1); }
public CSPlayer(BaseEntity baseEntity) : base(baseEntity) { iWeaponIndex = 0; this.Bones = new Skeleton(this.m_hBoneMatrix); }
public void Update() { List<Tuple<int, CSPlayer>> players = new List<Tuple<int, CSPlayer>>(); List<Tuple<int, BaseEntity>> entities = new List<Tuple<int, BaseEntity>>(); List<Tuple<int, Weapon>> weapons = new List<Tuple<int, Weapon>>(); dwLocalPlayer = WithOverlay.MemUtils.Read<int>((IntPtr)(clientDllBase + CSGOOffsets.Misc.LocalPlayer)); dwIGameResources = WithOverlay.MemUtils.Read<int>((IntPtr)(clientDllBase + CSGOOffsets.GameResources.Base)); State = (SignOnState)WithOverlay.MemUtils.Read<int>((IntPtr)(dwClientState + CSGOOffsets.ClientState.m_dwInGame)); if (State != SignOnState.SIGNONSTATE_FULL) return; ViewMatrix = WithOverlay.MemUtils.ReadMatrix((IntPtr)dwViewMatrix, 4, 4); ViewAngles = WithOverlay.MemUtils.Read<Vector3>((IntPtr)(dwClientState + CSGOOffsets.ClientState.m_dwViewAngles)); NewViewAngles = ViewAngles; RCSHandled = false; #region Read entities byte[] data = new byte[16 * 8192]; WithOverlay.MemUtils.Read((IntPtr)(dwEntityList), out data, data.Length); for (int i = 0; i < data.Length / 16; i++) { int address = BitConverter.ToInt32(data, 16 * i); if (address != 0) { BaseEntity ent = new BaseEntity(address); if (!ent.IsValid()) continue; if (ent.IsPlayer()) players.Add(new Tuple<int, CSPlayer>(i, new CSPlayer(ent))); else if (ent.IsWeapon()) weapons.Add(new Tuple<int, Weapon>(i, new Weapon(ent))); else entities.Add(new Tuple<int, BaseEntity>(i, ent)); } } Players = players.ToArray(); Entities = entities.ToArray(); Weapons = weapons.ToArray(); #endregion #region LocalPlayer and Target if (players.Exists(x => x.Item2.Address == dwLocalPlayer)) { LocalPlayer = new CSLocalPlayer(players.First(x => x.Item2.Address == dwLocalPlayer).Item2); LocalPlayerWeapon = LocalPlayer.GetActiveWeapon(); } else { LocalPlayer = null; LocalPlayerWeapon = null; } if (LocalPlayer != null) { if (entities.Exists(x => x.Item1 == LocalPlayer.m_iCrosshairIdx - 1)) Target = entities.First(x => x.Item1 == LocalPlayer.m_iCrosshairIdx - 1).Item2; if (players.Exists(x => x.Item1 == LocalPlayer.m_iCrosshairIdx - 1)) Target = players.First(x => x.Item1 == LocalPlayer.m_iCrosshairIdx - 1).Item2; else Target = null; } #endregion if (LocalPlayer == null) return; #region IGameResources if (dwIGameResources != 0) { Kills = WithOverlay.MemUtils.ReadArray<int>((IntPtr)(dwIGameResources + CSGOOffsets.GameResources.Kills), 65); Deaths = WithOverlay.MemUtils.ReadArray<int>((IntPtr)(dwIGameResources + CSGOOffsets.GameResources.Deaths), 65); Armor = WithOverlay.MemUtils.ReadArray<int>((IntPtr)(dwIGameResources + CSGOOffsets.GameResources.Armor), 65); Assists = WithOverlay.MemUtils.ReadArray<int>((IntPtr)(dwIGameResources + CSGOOffsets.GameResources.Assists), 65); Score = WithOverlay.MemUtils.ReadArray<int>((IntPtr)(dwIGameResources + CSGOOffsets.GameResources.Score), 65); byte[] clantagsData = new byte[16 * 65]; WithOverlay.MemUtils.Read((IntPtr)(dwIGameResources + CSGOOffsets.GameResources.Clantag), out clantagsData, clantagsData.Length); string[] clantags = new string[65]; for (int i = 0; i < 65; i++) clantags[i] = Encoding.Unicode.GetString(clantagsData, i * 16, 16); Clantags = clantags; int[] namePtrs = WithOverlay.MemUtils.ReadArray<int>((IntPtr)(dwIGameResources + CSGOOffsets.GameResources.Names), 65); string[] names = new string[65]; for (int i = 0; i < 65; i++) try { names[i] = WithOverlay.MemUtils.ReadString((IntPtr)namePtrs[i], 32, Encoding.ASCII); } catch { } Names = names; } #endregion #region Aimbot if (WithOverlay.ConfigUtils.GetValue<bool>("aimEnabled")) { if (WithOverlay.ConfigUtils.GetValue<bool>("aimToggle")) { if (WithOverlay.KeyUtils.KeyWentUp(WithOverlay.ConfigUtils.GetValue<WinAPI.VirtualKeyShort>("aimKey"))) AimbotActive = !AimbotActive; } else if (WithOverlay.ConfigUtils.GetValue<bool>("aimHold")) { AimbotActive = WithOverlay.KeyUtils.KeyIsDown(WithOverlay.ConfigUtils.GetValue<WinAPI.VirtualKeyShort>("aimKey")); } if (AimbotActive) DoAimbot(); } #endregion #region RCS DoRCS(); #endregion #region Set view angles if (NewViewAngles != ViewAngles) SetViewAngles(NewViewAngles); #endregion #region triggerbot if (WithOverlay.ConfigUtils.GetValue<bool>("triggerEnabled")) { if (WithOverlay.ConfigUtils.GetValue<bool>("triggerToggle")) { if (WithOverlay.KeyUtils.KeyWentUp(WithOverlay.ConfigUtils.GetValue<WinAPI.VirtualKeyShort>("triggerKey"))) TriggerbotActive = !TriggerbotActive; } else if (WithOverlay.ConfigUtils.GetValue<bool>("triggerHold")) { TriggerbotActive = WithOverlay.KeyUtils.KeyIsDown(WithOverlay.ConfigUtils.GetValue<WinAPI.VirtualKeyShort>("triggerKey")); } if (TriggerbotActive && !WithOverlay.KeyUtils.KeyIsDown(WinAPI.VirtualKeyShort.LBUTTON)) DoTriggerbot(); } #endregion #region triggerbot-burst if (TriggerShooting) { if (LocalPlayerWeapon == null) { TriggerShooting = false; } else { if (WithOverlay.ConfigUtils.GetValue<bool>("triggerBurstEnabled")) { if (TriggerBurstFired >= TriggerBurstCount) { TriggerShooting = false; TriggerBurstFired = 0; } else { if (LocalPlayerWeapon.m_iClip1 != LastClip) { TriggerBurstFired += Math.Abs(LocalPlayerWeapon.m_iClip1 - LastClip); } else { Shoot(); } } } else { Shoot(); TriggerShooting = false; } } } #endregion if (LocalPlayerWeapon != null) LastClip = LocalPlayerWeapon.m_iClip1; else LastClip = 0; LastShotsFired = LocalPlayer.m_iShotsFired; LastPunch = LocalPlayer.m_vecPunch; }
public Weapon(BaseEntity baseEntity) : base(baseEntity) { }