示例#1
0
        private static void DrawBlip(GameOverlay.Drawing.Graphics gfx, FlatSDKInternal.Entity go)
        {
            FlatSDK.WorldToScreen(FlatSDK.Overlay.Width, FlatSDK.Overlay.Height, go.extra.FootPos, out Vector2 MaxOutput);
            bool   w2s          = FlatSDK.WorldToScreen(FlatSDK.Overlay.Width, FlatSDK.Overlay.Height, go.position, out Vector2 MinOutput);
            var    distance     = (go.position - LocalPlayer.position).Length() / 100;
            var    fark2        = (go.extra.FootPos - go.position).Length() / 100;
            var    fark         = MinOutput.Y - MaxOutput.Y;
            string state        = string.Empty;
            var    FontSize     = Math.Max(10, Math.Min(fark, 16.0f));
            string HealthDSTR   = ESPOptions.bShowHealth == 1 ? Math.Round(go.extra.health) + "hp" : string.Empty;
            string DistanceDSTR = ESPOptions.bShowDistance == 1? Math.Round(distance) + "mt" : string.Empty;

            if (ESPOptions.bShowState == 1)
            {
                if (fark2 > 3)
                {
                    state = "| Driving |" + Environment.NewLine;
                }
                else if (fark2 > 0.88f && fark2 < 3)
                {
                    state = "| Running |" + Environment.NewLine;
                }

                else if (fark2 < 0.5f && fark2 < 3)
                {
                    state = "| Snake |" + Environment.NewLine;
                }
                else if (fark2 == 0.6f)
                {
                    state = "| Crouch |" + Environment.NewLine;
                }
                else if (fark2 == 0.88f)
                {
                    state = "| Stand |" + Environment.NewLine;
                }
            }


            if (w2s)
            {
                var topx = FlatSDK.Overlay.Width / 2;
                var topy = 0;

                if (ESPOptions.bSnapLines == 1)
                {
                    if (fark2 > 3)
                    {
                        gfx.DrawLine(FlatSDKInternal.IRenderer._opakwhite, topx, topy, MinOutput.X, MinOutput.Y, 1);
                    }
                    else
                    {
                        gfx.DrawLine(FlatSDKInternal.IRenderer._opakwhite, topx, topy, MinOutput.X, MinOutput.Y - fark * 2.2f, 1);
                    }
                }

                // 2DBOX
                if (ESPOptions.bShowBox == 1)
                {
                    if (fark2 > 3)
                    {
                        gfx.OutlineRectangle(FlatSDKInternal.IRenderer._black, FlatSDKInternal.IRenderer._blue, Rectangle.Create(MinOutput.X, MinOutput.Y, 5, 5), 2);
                    }
                    else
                    {
                        gfx.OutlineRectangle(FlatSDKInternal.IRenderer._black, FlatSDKInternal.IRenderer._blue, Rectangle.Create(MinOutput.X - (fark / 2), MinOutput.Y - fark * 2.2f, fark, fark * 2.2f), 2);
                    }
                }


                // TEXT
                if (ESPOptions.bShowState == 1 || ESPOptions.bShowDistance == 1 || ESPOptions.bShowHealth == 1)
                {
                    gfx.DrawText(FlatSDKInternal.IRenderer._font, FontSize, FlatSDKInternal.IRenderer._white, MinOutput.X - FontSize - 10, MinOutput.Y, $"{DistanceDSTR} {HealthDSTR} {Environment.NewLine + state} ");
                }
            }
        }