Esempio n. 1
0
        private void DrawWeapon(CSLocalPlayer lp, BaseCombatWeapon weapon, ESPEntry settings)
        {
            var up   = Vector2.Zero;
            var down = Vector2.Zero;

            if (!w2s(ref up, weapon.m_vecOrigin + Vector3.UnitZ * 5f) || !w2s(ref down, weapon.m_vecOrigin - Vector3.UnitZ * 5f))
            {
                return;
            }
            var mid   = (down + up) * 0.5f;
            var delta = weapon.m_vecOrigin - lp.m_vecOrigin;
            var size  = new Vector2((down - up).Y);

            if (settings.ShowDist || settings.ShowName)
            {
                var text = "";
                if (settings.ShowName)
                {
                    text += string.Format("{0} [{1}/{2}]",
                                          weapon.m_ClientClass.NetworkName.Value.Replace("CWeapon", ""),
                                          weapon.m_iClip1 >= 0 ? weapon.m_iClip1.ToString() : "-",
                                          weapon.m_iClip2 >= 0 ? weapon.m_iClip2.ToString() : "-") + "\n";
                }
                if (settings.ShowDist)
                {
                    text += DistToMeters(lp.DistanceTo(weapon)).ToString("0.00") + "m";
                }
                var nameSize = espFont.MeasureString(text);
                Program.Hack.Overlay.Visuals.DrawString(settings.Color, espFont, mid + Vector2.UnitY * size.Y - nameSize * 0.5f, text);
            }
            DrawWeaponIcon(weapon.WeaponId, mid, lp.DistanceTo(weapon), settings.Color);
        }
Esempio n. 2
0
        private void DrawPlayers(IEnumerable <CSPlayer> players, ESPEntry settings)
        {
            List <Vector2> points = new List <Vector2>();

            foreach (var player in players)
            {
                if (!player.IsValid || player.IsDormant || player.m_lifeState != Enums.LifeState.Alive)
                {
                    continue;
                }

                var     _head = player.m_Skeleton.m_Bones[8].ToVector() + Vector3.UnitZ * 15;
                var     _feet = player.m_Skeleton.m_Bones[1].ToVector() - Vector3.UnitZ * 10;
                Vector2 head = Vector2.Zero, feet = Vector2.Zero;
                if (!w2s(ref head, _head) || !w2s(ref feet, _feet))
                {
                    continue;
                }

                var width = (feet - head).Y * 0.5f;
                var x     = (head.X + feet.X) / 2f;

                var position = new Vector2(x - width / 2, head.Y);
                var size     = new Vector2(width, feet.Y - head.Y);
                DrawPlayer(player, settings, position, size);

                points.Clear();
            }
        }
Esempio n. 3
0
        private void DrawEsp <T>(
            T ent,
            ESPEntry settings,
            Func <T, Vector3> fnGetBottom,
            Func <T, Vector3> fnGetTop,
            Func <Vector2, Vector2, Vector2> fnGetSize,
            Func <T, float> fnGetLife,
            Func <T, float> fnGetArmor,
            Func <T, ESPEntry, string> fnGetText) where T : BaseEntity
        {
            var     ptDown3d = fnGetBottom(ent) - MARGINS_Z;
            var     ptUp3d = fnGetTop(ent) + MARGINS_Z;
            Vector2 ptDown = Vector2.Zero, ptUp = Vector2.Zero;

            if (!w2s(ref ptDown, ptDown3d) || !w2s(ref ptUp, ptUp3d))
            {
                return;
            }

            var size      = fnGetSize(ptDown, ptUp);
            var upperLeft = new Vector2((ptUp.X + ptDown.X) / 2f - size.X * 0.5f, ptUp.Y);
            var text      = fnGetText(ent, settings);

            if (settings.ShowBox)
            {
                DrawOutlinedRect(upperLeft, size, settings.Color, Color.Black);
            }

            if (settings.ShowHealth && fnGetLife != null && fnGetArmor != null)
            {
                Vector2 barSize = new Vector2(size.X, size.Y / 20f);
                Vector2 barPos  = new Vector2(upperLeft.X, upperLeft.Y + size.Y + barSize.Y * 0.5f);
                if (fnGetLife != null)
                {
                    DrawHBar(barPos, barSize, fnGetLife(ent) / 100f, settings.Color, Color.Transparent, Color.Green, Color.Black);
                    barPos.Y += barSize.Y * 1.5f;
                }
                if (fnGetArmor != null && fnGetArmor(ent) > 0f)
                {
                    DrawHBar(barPos, barSize, fnGetArmor(ent) / 100f, settings.Color, Color.Transparent, Color.White, Color.Black);
                }
            }

            if (!string.IsNullOrEmpty(text))
            {
                espFont = Program.Hack.Overlay.Renderer.Fonts[espFont];
                var textPos = upperLeft + Vector2.UnitX * size.X;
                Program.Hack.Overlay.Visuals.DrawString(settings.Color, espFont, textPos, text);
            }
        }
Esempio n. 4
0
 private void DrawEspSet <T>(
     IEnumerable <T> ents,
     ESPEntry settings,
     Func <T, Vector3> fnGetBottom,
     Func <T, Vector3> fnGetTop,
     Func <Vector2, Vector2, Vector2> fnGetSize,
     Func <T, float> fnGetLife,
     Func <T, float> fnGetArmor,
     Func <T, ESPEntry, string> fnGetText) where T : BaseEntity
 {
     foreach (var e in ents)
     {
         DrawEsp <T>(e, settings, fnGetBottom, fnGetTop, fnGetSize, fnGetLife, fnGetArmor, fnGetText);
     }
 }
Esempio n. 5
0
        private void DrawEntityEsp(Vector2 upperLeft, Vector2 size, ESPEntry settings, string text, float armor = 0f, float life = 0f)
        {
            if (settings.ShowBox)
            {
                DrawOutlinedRect(upperLeft, size, settings.Color, Color.Black);
            }

            if (settings.ShowHealth)
            {
                Vector2 barSize  = new Vector2(size.X, size.Y / 20f);
                Vector2 barHP    = new Vector2(upperLeft.X, upperLeft.Y + size.Y + barSize.Y * 0.5f);
                Vector2 barArmor = new Vector2(upperLeft.X, upperLeft.Y + size.Y + barSize.Y + barSize.Y);
                DrawHBar(barHP, barSize, life / 100f, settings.Color, Color.Transparent, Color.Green, Color.Black);
                DrawHBar(barArmor, barSize, armor / 100f, settings.Color, Color.Transparent, Color.White, Color.Black);
            }

            if (!string.IsNullOrEmpty(text))
            {
                espFont = Program.Hack.Overlay.Renderer.Fonts[espFont];
                var textPos = upperLeft + Vector2.UnitX * size.X;
                Program.Hack.Overlay.Visuals.DrawString(settings.Color, espFont, textPos, text);
            }
        }
Esempio n. 6
0
        private void DrawBaseEntitySet(CSLocalPlayer lp, IEnumerable <BaseEntity> ents, ESPEntry settings)
        {
            DrawEspSet <BaseEntity>(
                ents,
                settings,
                (w) => w.m_vecOrigin,
                (w) => w.m_vecOrigin,
                (d, u) =>
            {
                var f = d - u;
                return(new Vector2(System.Math.Max(f.X, f.Y)));
            },
                null,
                null,
                (w, s) =>
            {
                string text = "";
                if (settings.ShowName)
                {
                    text += w.m_ClientClass.NetworkName + "\n";
                }

                if (settings.ShowDist)
                {
                    text += string.Format("[{0}m]", DistToMeters(lp.DistanceTo(w)).ToString("0.00")) + "\n";
                }

                return(text);
            }
                );
        }
Esempio n. 7
0
        private void DrawWeaponSet(CSLocalPlayer lp, IEnumerable <BaseCombatWeapon> weapons, ESPEntry settings)
        {
            //DrawEspSet<BaseCombatWeapon>(
            //    weapons,
            //    settings,
            //    (w) => w.m_vecOrigin,
            //    (w) => w.m_vecOrigin,
            //    (d, u) =>
            //    {
            //        var f = d - u;
            //        return new Vector2(System.Math.Max(f.X, f.Y));
            //    },
            //    null,
            //    null,
            //    (w, s) =>
            //    {
            //        string text = "";
            //        if (settings.ShowName)
            //            text += string.Format("{0} [{1}]",
            //                w.m_ClientClass.NetworkName.Replace("CWeapon", ""),
            //                w.m_iClip1 >= 0 ? w.m_iClip1.ToString() : "/") + "\n";

            //        if (settings.ShowDist)
            //            text += string.Format("[{0}m]", DistToMeters(lp.DistanceTo(w)).ToString("0.00")) + "\n";

            //        return text;
            //    }
            //);
            foreach (var wep in weapons)
            {
                DrawWeapon(lp, wep, settings);
            }
        }
Esempio n. 8
0
        private void DrawPlayer(CSPlayer player, ESPEntry settings, Vector2 position, Vector2 size)
        {
            var drawColor = settings.Color;
            var map       = Program.Hack.StateMod.Map;

            if (map != null)
            {
                var from = Program.Hack.StateMod.LocalPlayer.Value.m_vecOrigin + Program.Hack.StateMod.LocalPlayer.Value.m_vecViewOffset;
                var to   = player.m_Skeleton.m_Bones[8].ToVector();
                if (map.IsVisible(from, to))
                {
                    drawColor = settings.ColorOccluded;
                }
            }
            if (settings.ShowBox)
            {
                Program.Hack.Overlay.Visuals.DrawRectangle(drawColor, position, size);
                //DrawOutlinedRect(position, size, drawColor, Color.Black);
            }
            if (settings.ShowHealth)
            {
                var lifePerc = System.Math.Max(System.Math.Min(player.m_iHealth, 100), 0) / 100f;
                var lifeFrom = position - Vector2.UnitX * 2f;
                var lifeTo   = lifeFrom + Vector2.UnitY * size.Y * lifePerc;
                Program.Hack.Overlay.Visuals.DrawLine(Color.Green, lifeFrom, lifeTo);

                //var lifeSize = espFont.MeasureString(player.m_iHealth.ToString());
                //var lifeText = lifeFrom - Vector2.UnitY * lifeSize.Y - Vector2.UnitX * lifeSize.X * 0.5f;
                //Program.Hack.Overlay.Visuals.DrawString(Color.White, espFont, lifeText, player.m_iHealth.ToString());

                var armorPerc = System.Math.Max(System.Math.Min(player.m_ArmorValue, 100), 0) / 100f;
                var armorFrom = position + Vector2.UnitX * size.X + Vector2.UnitX * 2f;
                var armorTo   = armorFrom + Vector2.UnitY * size.Y * armorPerc;
                Program.Hack.Overlay.Visuals.DrawLine(Color.Blue, armorFrom, armorTo);

                //var armorSize = espFont.MeasureString(player.m_ArmorValue.ToString());
                //var armorText = armorFrom - Vector2.UnitY * armorSize.Y - Vector2.UnitX * armorSize.X * 0.5f;
                //Program.Hack.Overlay.Visuals.DrawString(Color.White, espFont, armorText, player.m_ArmorValue.ToString());
            }
            var infoMiddle = position + Vector2.UnitY * size.Y + Vector2.UnitX * size.X * 0.5f + Vector2.UnitY * 2f;

            if (settings.ShowName && Program.Hack.StateMod.PlayerResources != null)
            {
                var name     = Program.Hack.StateMod.PlayerResources.Value.m_sNames[player.m_iID];
                var nameSize = espFont.MeasureString(name);
                Program.Hack.Overlay.Visuals.DrawString(drawColor, espFont, infoMiddle + Vector2.UnitX * (nameSize.X * -0.5f), name);
                infoMiddle += Vector2.UnitY * nameSize.Y;
            }
            if (settings.ShowDist)
            {
                var dist     = System.Math.Ceiling(DistToMeters((player.m_vecOrigin - Program.Hack.StateMod.LocalPlayer.Value.m_vecOrigin).Length)).ToString() + "m";
                var distSize = espFont.MeasureString(dist);
                Program.Hack.Overlay.Visuals.DrawString(drawColor, espFont, infoMiddle + Vector2.UnitX * (distSize.X * -0.5f), dist);
            }
            if (settings.ShowWeapon)
            {
                var wep = player.m_ActiveWeapon.Value;
                if (wep != null)
                {
                    DrawWeaponIcon(
                        wep.WeaponId,
                        position + Vector2.UnitX * size.X * 0.5f - Vector2.UnitY * 10f,
                        DistToMeters((player.m_vecOrigin - Program.Hack.StateMod.LocalPlayer.Value.m_vecOrigin).Length) * 0.5f,
                        settings.Color);
                }
            }
        }
Esempio n. 9
0
        private void DrawPlayer(CSPlayer player, ESPEntry settings, Vector2 position, Vector2 size)
        {
            var drawColor = settings.Color;
            var map       = Program.Hack.StateMod.Map;

            if (map != null)
            {
                var from = Program.Hack.StateMod.LocalPlayer.Value.m_vecOrigin + Program.Hack.StateMod.LocalPlayer.Value.m_vecViewOffset;
                var to   = player.m_Skeleton.m_Bones[8].ToVector();
                if (!map.IsVisible(from, to))
                {
                    drawColor = settings.ColorOccluded;
                }
            }
            if (settings.ShowBox)
            {
                Program.Hack.Overlay.Visuals.DrawRectangle(drawColor, position, size);
                //DrawOutlinedRect(position, size, drawColor, Color.Black);
            }
            if (settings.ShowHealth)
            {
                var lifePerc = System.Math.Max(System.Math.Min(player.m_iHealth, 100), 0) / 100f;
                var lifeFrom = position - Vector2.UnitX * 2f;
                var lifeTo   = lifeFrom + Vector2.UnitY * size.Y * lifePerc;
                Program.Hack.Overlay.Visuals.DrawLine(Color.Green, lifeFrom, lifeTo);

                //var lifeSize = espFont.MeasureString(player.m_iHealth.ToString());
                //var lifeText = lifeFrom - Vector2.UnitY * lifeSize.Y - Vector2.UnitX * lifeSize.X * 0.5f;
                //Program.Hack.Overlay.Visuals.DrawString(Color.White, espFont, lifeText, player.m_iHealth.ToString());

                var armorPerc = System.Math.Max(System.Math.Min(player.m_ArmorValue, 100), 0) / 100f;
                var armorFrom = position + Vector2.UnitX * size.X + Vector2.UnitX * 2f;
                var armorTo   = armorFrom + Vector2.UnitY * size.Y * armorPerc;
                Program.Hack.Overlay.Visuals.DrawLine(Color.Blue, armorFrom, armorTo);

                //var armorSize = espFont.MeasureString(player.m_ArmorValue.ToString());
                //var armorText = armorFrom - Vector2.UnitY * armorSize.Y - Vector2.UnitX * armorSize.X * 0.5f;
                //Program.Hack.Overlay.Visuals.DrawString(Color.White, espFont, armorText, player.m_ArmorValue.ToString());
            }
            var infoMiddle = position + Vector2.UnitY * size.Y + Vector2.UnitX * size.X * 0.5f + Vector2.UnitY * 2f;

            if (settings.ShowName && Program.Hack.StateMod.PlayerResources.Value != null)
            {
                var name = Program.Hack.StateMod.PlayerResources.Value.m_sNames[player.m_iID];
                if (name != null)
                {
                    var nameSize = espFont.MeasureString(name);
                    Program.Hack.Overlay.Visuals.DrawString(drawColor, espFont, infoMiddle + Vector2.UnitX * (nameSize.X * -0.5f), name);
                    infoMiddle += Vector2.UnitY * nameSize.Y;
                }
            }
            if (settings.ShowDist)
            {
                var dist     = System.Math.Ceiling(DistToMeters((player.m_vecOrigin - Program.Hack.StateMod.LocalPlayer.Value.m_vecOrigin).Length)).ToString() + "m";
                var distSize = espFont.MeasureString(dist);
                Program.Hack.Overlay.Visuals.DrawString(drawColor, espFont, infoMiddle + Vector2.UnitX * (distSize.X * -0.5f), dist);
            }
            if (settings.ShowWeapon)
            {
                var wep = player.m_ActiveWeapon.Value;
                if (wep != null)
                {
                    DrawWeaponIcon(
                        wep.WeaponId,
                        position + Vector2.UnitX * size.X * 0.5f - Vector2.UnitY * 10f,
                        DistToMeters((player.m_vecOrigin - Program.Hack.StateMod.LocalPlayer.Value.m_vecOrigin).Length) * 0.5f,
                        settings.Color);
                }
            }

            //Loot stuff

            //var lootstuff = Enumerable.Range(0, 1024).Select(x => Program.Hack.StateMod.BaseEntitites[x]).Where(x =>
            // x!=null && x.m_ClientClass!=null &&(
            //    x.m_ClientClass.ClassID == 47 ||
            //    x.m_ClientClass.ClassID == 48 ||
            //    x.m_ClientClass.ClassID == 123 ||
            //    x.m_ClientClass.ClassID == 124 ||
            //    x.m_ClientClass.ClassID == 125
            //    )).ToArray();
            //DrawEspSet(lootstuff, new ESPEntry() { Enabled = true, Color = Color.Orange, ColorOccluded = Color.Orange, ShowName = true, ShowBox=true },
            //    x => x.m_vecOrigin, x => x.m_vecOrigin, (d, u) => Vector2.Unit*32f, x => 100f, x => 100f, (x, e) => x.m_ClientClass.NetworkName.Value);
        }