示例#1
0
        private void DrawTurretESP(Turret turret)
        {
            if (!turret.IsValid)
            {
                return;
            }

            if (!Settings.Default.Turrets)
            {
                return;
            }

            // Don't draw the ESP if the other vector is very close
            if (Vector.Distance(turret.Origin, Game.ViewOrigin) < 80.0f)
            {
                return;
            }

            PointF botPoint, topPoint;

            if (MathHelper.WorldToScreen(turret.Origin, out botPoint))
            {
                MathHelper.WorldToScreen(turret.Origin + new Vector(0f, 0f, 55f), out topPoint);
            }
            else
            {
                return;
            }

            var drawPoint = new PointF();

            drawPoint.Y = botPoint.Y - topPoint.Y;
            drawPoint.X = drawPoint.Y / 2.75f;

            var boundingBox = new RectangleF();

            boundingBox.X      = botPoint.X - (drawPoint.X / 2.0f);
            boundingBox.Y      = botPoint.Y;
            boundingBox.Width  = drawPoint.X;
            boundingBox.Height = -drawPoint.Y;

            var namePoint = new PointF();

            namePoint.X = boundingBox.X + boundingBox.Width + 5.0f;
            namePoint.Y = botPoint.Y - drawPoint.Y - 2.8f;

            DrawRect(boundingBox, 2.0f, Color.Purple);
            DrawSmallText(Turret.NAME, namePoint, Color.White);
        }
示例#2
0
        private void DrawPlayerESP(Player player)
        {
            // Don't draw the ESP if the other vector is very close
            if (Vector.Distance(player.Origin, Game.ViewOrigin) < 80.0f)
            {
                return;
            }

            if (Settings.Default.OnlyHostilePlayers && player.Team == PlayerTeam.Friendly)
            {
                return;
            }

            string name = string.Format("#{0}{{{1}}}", player.Rank, player.Name);

            Color color;

            if (player.Team == PlayerTeam.Friendly)
            {
                color = Settings.Default.FriendlyColor;
            }
            else
            {
                color = Settings.Default.HostileColor;
            }
            if (!player.IsAlive)
            {
                if (!Settings.Default.DeadPlayers)
                {
                    return;
                }

                name  = string.Format("DEAD{{{0}}}", player.Name);
                color = Settings.Default.DeadPlayerColor;
            }

            PointF feetPoint, headPoint;

            if (MathHelper.WorldToScreen(player.Origin, out feetPoint))
            {
                MathHelper.WorldToScreen(player.Origin + new Vector(0f, 0f, 63f), out headPoint);
            }
            else
            {
                return;
            }

            var drawPoint = new PointF();

            drawPoint.Y = feetPoint.Y - headPoint.Y;

            if (drawPoint.Y < 10.0f)
            {
                drawPoint.Y = 10.0f;
            }

            if ((player.Flag & Flags.Crouched) != 0)
            {
                drawPoint.Y /= 1.4f;
                drawPoint.X  = drawPoint.Y / 1.5f;
            }
            else if ((player.Flag & Flags.Prone) != 0)
            {
                drawPoint.Y /= 3.0f;
                drawPoint.X  = drawPoint.Y * 2.0f;
            }
            else
            {
                drawPoint.X = drawPoint.Y / 2.75f;
            }

            var boundingBox = new RectangleF();

            boundingBox.X      = feetPoint.X - (drawPoint.X / 2.0f);
            boundingBox.Y      = feetPoint.Y;
            boundingBox.Width  = drawPoint.X;
            boundingBox.Height = -drawPoint.Y;

            var namePoint = new PointF();

            namePoint.X = boundingBox.X + boundingBox.Width + 5.0f;
            namePoint.Y = feetPoint.Y - drawPoint.Y - 2.8f;

            var distancePoint = new PointF();

            distancePoint.X = boundingBox.X + boundingBox.Width + 5.0f;
            distancePoint.Y = Settings.Default.PlayerName ? feetPoint.Y - drawPoint.Y + 9.8f : namePoint.Y;
            Distance distanceType   = Settings.Default.DistanceType == 0 ? Distance.Meter() : Distance.Feet();
            float    baseDistance   = Vector.Distance(Game.LocalPlayer.Origin, player.Origin);
            float    distance       = (float)Math.Round((double)baseDistance * distanceType.Const);
            string   distanceString = string.Format("➔{0}{1}", distance, distanceType.Suffix);

            DrawRect(boundingBox, 2f, color);

            if (Settings.Default.PlayerName)
            {
                DrawSmallText(name, namePoint, Settings.Default.PlayerNameColor);
            }
            if (Settings.Default.DistanceToPlayer)
            {
                DrawSmallText(distanceString, distancePoint, Settings.Default.DistanceToPlayerColor);
            }
            if (Settings.Default.HostilePlayerWarning)
            {
                DrawHostilePlayerWarning(player, baseDistance);
            }
        }