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); }
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); } }