Beispiel #1
0
        private static Vector2 GetJumpPosition(AIHeroClient t, float range, string name = "first")
        {
            List<Vector2> xList = new List<Vector2>();

            Vector2 location = ObjectManager.Player.Position.LSTo2D() +
                               Vector2.Normalize(t.Position.LSTo2D() - ObjectManager.Player.Position.LSTo2D()) * W.Range;
            Vector2 wCastPosition = location;

            //Render.Circle.DrawCircle(wCastPosition.To3D(), 105f, System.Drawing.Color.Red);

            if (!wCastPosition.LSIsWall())
            {
                xList.Add(wCastPosition);
            }

            if (!wCastPosition.LSIsWall())
            {
                ExistingJumpPositions.Add(new ListJumpPositions
                {
                    Position = wCastPosition,
                    Name = name
                });

                ListWJumpPositions.Add(wCastPosition);
            }

            if (wCastPosition.LSIsWall())
            {
                for (int j = 20; j < 80; j += 20)
                {
                    Vector2 wcPositive = ObjectManager.Player.Position.LSTo2D() +
                                         Vector2.Normalize(t.Position.LSTo2D() - ObjectManager.Player.Position.LSTo2D())
                                             .LSRotated(j * (float)Math.PI / 180) * W.Range;
                    if (!wcPositive.LSIsWall())
                    {
                        ListWJumpPositions.Add(wcPositive);
                    }

                    Vector2 wcNegative = ObjectManager.Player.Position.LSTo2D() +
                                         Vector2.Normalize(t.Position.LSTo2D() - ObjectManager.Player.Position.LSTo2D())
                                             .LSRotated(-j * (float)Math.PI / 180) * W.Range;
                    if (!wcNegative.LSIsWall())
                    {
                        ListWJumpPositions.Add(wcNegative);
                    }
                }

                float xDiff = ObjectManager.Player.Position.X - t.Position.X;
                float yDiff = ObjectManager.Player.Position.Y - t.Position.Y;
                int angle = (int)(Math.Atan2(yDiff, xDiff) * 180.0 / Math.PI);
            }

            //foreach (var aa in ListWJumpPositions)
            //{
            //    Render.Circle.DrawCircle(aa.To3D2(), 105f, System.Drawing.Color.White);
            //}
            var al1 = xList.OrderBy(al => al.LSDistance(t.Position)).First();

            var color = System.Drawing.Color.DarkRed;
            var width = 4;

            var startpos = ObjectManager.Player.Position;
            var endpos = al1.To3D();
            if (startpos.LSDistance(endpos) > 100)
            {
                var endpos1 = al1.To3D() +
                              (startpos - endpos).LSTo2D().LSNormalized().LSRotated(25 * (float)Math.PI / 180).To3D() * 75;
                var endpos2 = al1.To3D() +
                              (startpos - endpos).LSTo2D().LSNormalized().LSRotated(-25 * (float)Math.PI / 180).To3D() * 75;

                //var x1 = new LeagueSharp.Common.Geometry.Polygon.Line(startpos, endpos);
                //x1.Draw(color, width - 2);
                new LeagueSharp.Common.Geometry.Polygon.Line(startpos, endpos).Draw(color, width - 2);

                var y1 = new LeagueSharp.Common.Geometry.Polygon.Line(endpos, endpos1);
                y1.Draw(color, width - 2);
                var z1 = new LeagueSharp.Common.Geometry.Polygon.Line(endpos, endpos2);
                z1.Draw(color, width - 2);
            }

            //foreach (var al in ListWJumpPositions.OrderBy(al => al.LSDistance(t.Position)))
            //{
            //    Render.Circle.DrawCircle(al.To3D(), 105f, System.Drawing.Color.White);
            //}
            //            Render.Circle.DrawCircle(al1.To3D(), 85, System.Drawing.Color.White);
            return al1;
        }
Beispiel #2
0
        private static void Drawing_OnDraw_Insec(EventArgs args)
        {
            if (!Config.Item("Insec").GetValue<KeyBind>().Active)
            {
                return;
            }

            //InsecDirection2.Clear();
            //foreach (var insecDirect in ObjectManager.Get<Obj_AI_Base>().OrderBy(obj => obj.NetworkId).Where(
            //    obj =>
            //            obj.IsAlly && !obj.IsMe && !obj.IsDead && !obj.IsMinion && (obj is Obj_AI_Turret || obj is Obj_AI_Hero) &&
            //            obj.Distance(ObjectManager.Player.Position) < Q.Range * 4))
            //{
            //    InsecDirection2.Add(insecDirect);
            //}
            //if (SelectedInsecDirectionIndex == null)
            //{
            //    SelectedInsecDirectionIndex = InsecDirection2[0];
            //}

            //if (InsecDirection2.Count == 0)
            //{
            //    return;
            //}

            //if (SelectedInsecDirectionIndex != null)
            //{
            //    var ignoredEnemies =
            //                       HeroManager.Enemies.Where(
            //                           e => MenuInsec.Item("Insec." + e.ChampionName).GetValue<StringList>().SelectedIndex == 0)
            //                           .ToList();

            //    var t = AssassinManager.GetTarget(Q.Range * 2, TargetSelector.DamageType.Physical, ignoredEnemies);
            //    InsecJumpPosition = t.ServerPosition.Extend(SelectedInsecDirectionIndex.Position, -220);

            //    Render.Circle.DrawCircle(InsecJumpPosition, 150f, Color.Blue);
            //    Render.Circle.DrawCircle(SelectedInsecDirectionIndex.Position, 150f, Color.Red);

            //    InsecEndPosition = t.ServerPosition.Extend(SelectedInsecDirectionIndex.Position, +500);

            //    var startpos = t.Position;
            //    var endpos = InsecEndPosition;
            //    var endpos1 = InsecEndPosition + (startpos - endpos).To2D().Normalized().Rotated(25 * (float)Math.PI / 180).To3D() * t.BoundingRadius * 2;
            //    var endpos2 = InsecEndPosition + (startpos - endpos).To2D().Normalized().Rotated(-25 * (float)Math.PI / 180).To3D() * t.BoundingRadius * 2;

            //    var width = 2;

            //    var x = new LeagueSharp.Common.Geometry.Polygon.Line(startpos, endpos); x.Draw(Color.Blue, width);
            //    var y = new LeagueSharp.Common.Geometry.Polygon.Line(endpos, endpos1); y.Draw(Color.Blue, width);
            //    var z = new LeagueSharp.Common.Geometry.Polygon.Line(endpos, endpos2); z.Draw(Color.Blue, width);
            //}

            //return;
            if (enemyInsecMethod == 0)
            {
                return;
            }

            var t = AssassinManager.GetTarget(Q.Range * 2, TargetSelector.DamageType.Physical);

            var turrents = from u in
                ObjectManager.Get<Obj_AI_Base>()
                    .Where(
                        obj =>
                            obj.IsAlly && !obj.IsMe && !obj.IsDead && !obj.IsMinion && obj is Obj_AI_Turret &&
                            obj.Distance(ObjectManager.Player.Position) < Q.Range*5).OrderBy(obj => obj.Distance(ObjectManager.Player.Position))
                           select u;

            var allies = from u in
                HeroManager.Allies
                    .Where(
                        obj =>
                            !obj.IsMe && !obj.IsDead && !obj.IsMinion && obj.Health >= t.Health &&
                            obj.Distance(ObjectManager.Player.Position) < Q.Range*5).OrderBy(obj => obj.Distance(ObjectManager.Player.Position))
                select u;

            insecDirection = turrents.Union(allies).ToList();


            //Obj_AI_Base insecDirection = ObjectManager.Get<Obj_AI_Base>()
            //    .OrderBy(obj => obj.Distance(ObjectManager.Player.ServerPosition))
            //    .FirstOrDefault(
            //        obj =>
            //            obj.IsAlly && !obj.IsMe && !obj.IsDead && !obj.IsMinion && (obj is Obj_AI_Turret || obj is Obj_AI_Hero) &&
            //            obj.Distance(ObjectManager.Player.Position) < Q.Range * 10);

            aInsecJumpPosition = new Geometry.Rectangle(t.Position.To2D().Extend(insecDirection[0].Position.To2D(), -50), t.Position.To2D().Extend(insecDirection[0].Position.To2D(), -R.Range - 50), 100).ToPolygon();
            //aInsecJumpPosition.Draw(Color.Yellow, 2);
            //InsecJumpPosition = t.ServerPosition.Extend(insecDirection[0].Position, -220);

            Render.Circle.DrawCircle(InsecJumpPosition, 150f, Color.Blue);
            Render.Circle.DrawCircle(insecDirection[0].Position, 150f, Color.Red);

                InsecEndPosition = t.ServerPosition.Extend(insecDirection[0].Position, +500);

                var startpos = t.Position;
                var endpos = InsecEndPosition;
                var endpos1 = InsecEndPosition + (startpos - endpos).To2D().Normalized().Rotated(25 * (float)Math.PI / 180).To3D() * t.BoundingRadius * 2;
                var endpos2 = InsecEndPosition + (startpos - endpos).To2D().Normalized().Rotated(-25 * (float)Math.PI / 180).To3D() * t.BoundingRadius * 2;

                var width = 2;

                var x = new LeagueSharp.Common.Geometry.Polygon.Line(startpos, endpos); x.Draw(Color.Blue, width);
                var y = new LeagueSharp.Common.Geometry.Polygon.Line(endpos, endpos1); y.Draw(Color.Blue, width);
                var z = new LeagueSharp.Common.Geometry.Polygon.Line(endpos, endpos2); z.Draw(Color.Blue, width);
        }
Beispiel #3
0
        private static void Drawing_OnDraw(EventArgs args)
        {
            //if (WStage != Program.WCastStage.IsReady)
            //{
            //    return;
            //}

            if (!Program.MenuKeys.Item("Flee.Active").GetValue<KeyBind>().Active)
            {
                return;
            }

            if (LocalMenu.Item("Flee.Draw").GetValue<Circle>().Active)
            {
                var fleeDraw = LocalMenu.Item("Flee.Draw").GetValue<Circle>();
                Render.Circle.DrawCircle(Game.CursorPos, LocalMenu.Item("Flee.Range").GetValue<Slider>().Value,
                    fleeDraw.Color);
            }


            if (wardJumpObjectforFlee != null)
            {
                Render.Circle.DrawCircle(wardJumpObjectforFlee.Position, 105f, Color.Aquamarine);

                var x = new LeagueSharp.Common.Geometry.Polygon.Line(ObjectManager.Player.Position,
                    wardJumpObjectforFlee.Position);
                x.Draw(Color.Blue, 2);

                Vector3[] vCent = new[] {ObjectManager.Player.Position, wardJumpObjectforFlee.Position};
                var aX =
                    Drawing.WorldToScreen(new Vector3(DrawUtils.CenterOfVectors(vCent).X,
                        DrawUtils.CenterOfVectors(vCent).Y,
                        DrawUtils.CenterOfVectors(vCent).Z));
                Drawing.DrawText(aX.X, aX.Y, Color.White, "Jump to Selected Object");
            }
        }
Beispiel #4
0
        private static void DrawAxeTimes()
        {
            if (PlayerObjects.AxeObject == null)
            {
                return;
            }

            var drawAxePosition = MenuLocal["Draw.AxePosition"].Cast<ComboBox>().CurrentValue;

            var exTime = TimeSpan.FromSeconds(PlayerObjects.EndTime - Game.Time).TotalSeconds;
            var color = exTime > 4 ? Color.White : Color.Red;
            switch (drawAxePosition)
            {
                case 1:
                    {
                        var circle1 = new CommonGeometry.Circle2(new Vector2(PlayerObjects.AxeObject.Position.X + 3, PlayerObjects.AxeObject.Position.Y - 3), 150f, Game.Time * 100 - PlayerObjects.StartTime * 100, PlayerObjects.EndTime * 100 - PlayerObjects.StartTime * 100).ToPolygon();
                        circle1.Draw(Color.Black, 4);

                        var circle = new CommonGeometry.Circle2(PlayerObjects.AxeObject.Position.LSTo2D(), 150f, Game.Time * 100 - PlayerObjects.StartTime * 100, PlayerObjects.EndTime * 100 - PlayerObjects.StartTime * 100).ToPolygon();
                        circle.Draw(TimeSpan.FromSeconds(PlayerObjects.EndTime - Game.Time).TotalSeconds > 4 ? Color.White : Color.Red, 4);
                        break;
                    }
                case 2:
                    {
                        var startpos = ObjectManager.Player.Position.LSTo2D();
                        var endpos = PlayerObjects.AxeObject.Position.LSTo2D();
                        if (startpos.LSDistance(endpos) > 100)
                        {
                            var endpos1 = PlayerObjects.AxeObject.Position + (startpos - endpos).LSNormalized().LSRotated(25 * (float)Math.PI / 180).To3D() * 75;
                            var endpos2 = PlayerObjects.AxeObject.Position + (startpos - endpos).LSNormalized().LSRotated(-25 * (float)Math.PI / 180).To3D() * 75;

                            var x1 = new LeagueSharp.Common.Geometry.Polygon.Line(startpos, endpos);
                            x1.Draw(color, 1);
                            var y1 = new LeagueSharp.Common.Geometry.Polygon.Line(endpos.To3D(), endpos1);
                            y1.Draw(color, 2);
                            var z1 = new LeagueSharp.Common.Geometry.Polygon.Line(endpos.To3D(), endpos2);
                            z1.Draw(color, 2);
                        }
                        break;
                    }

                case 3:
                    {
                        var circle1 = new CommonGeometry.Circle2(new Vector2(PlayerObjects.AxeObject.Position.X + 3, PlayerObjects.AxeObject.Position.Y - 3), 150f, Game.Time * 100 - PlayerObjects.StartTime * 100, PlayerObjects.EndTime * 100 - PlayerObjects.StartTime * 100).ToPolygon();
                        circle1.Draw(Color.Black, 4);

                        var circle = new CommonGeometry.Circle2(PlayerObjects.AxeObject.Position.LSTo2D(), 150f, Game.Time * 100 - PlayerObjects.StartTime * 100, PlayerObjects.EndTime * 100 - PlayerObjects.StartTime * 100).ToPolygon();
                        circle.Draw(TimeSpan.FromSeconds(PlayerObjects.EndTime - Game.Time).TotalSeconds > 4 ? Color.White : Color.Red, 4);

                        var startpos = ObjectManager.Player.Position.LSTo2D();
                        var endpos = PlayerObjects.AxeObject.Position.LSTo2D();
                        if (startpos.LSDistance(endpos) > 100)
                        {
                            var endpos1 = PlayerObjects.AxeObject.Position + (startpos - endpos).LSNormalized().LSRotated(25 * (float)Math.PI / 180).To3D() * 75;
                            var endpos2 = PlayerObjects.AxeObject.Position + (startpos - endpos).LSNormalized().LSRotated(-25 * (float)Math.PI / 180).To3D() * 75;

                            var x1 = new LeagueSharp.Common.Geometry.Polygon.Line(startpos, endpos);
                            x1.Draw(color, 1);
                            var y1 = new LeagueSharp.Common.Geometry.Polygon.Line(endpos.To3D(), endpos1);
                            y1.Draw(color, 2);
                            var z1 = new LeagueSharp.Common.Geometry.Polygon.Line(endpos.To3D(), endpos2);
                            z1.Draw(color, 2);
                        }

                        var line = new Geometry.Polygon.Line(ObjectManager.Player.Position, PlayerObjects.AxeObject.Position, ObjectManager.Player.LSDistance(PlayerObjects.AxeObject.Position));
                        line.Draw(color, 2);
                        break;
                    }
            }

            if (MenuLocal["Draw.AxeTime"].Cast<CheckBox>().CurrentValue)
            {
                var time = TimeSpan.FromSeconds(PlayerObjects.EndTime - Game.Time);
                var pos = Drawing.WorldToScreen(PlayerObjects.AxeObject.Position);
                var display = $"{time.Seconds:D1}";

                SharpDX.Color vTimeColor = time.TotalSeconds > 4 ? SharpDX.Color.White : SharpDX.Color.Red;
                DrawText(AxeDisplayText, display, (int)pos.X - display.Length, (int)pos.Y - 105, vTimeColor);
            }
        }
Beispiel #5
0
        private static void DrawingOnOnDraw(EventArgs args)
        {
            if (ObjectManager.Player.IsDead)
            {
                return;
            }

            if (getCheckBoxItem(MenuLocal, "Jump.Draw.Status"))
            {
                var enabled = getKeyBindItem(MenuLocal, "Jump.Enabled");
                var stat = getBoxItem(MenuLocal, "Jump.Mode");
                CommonHelper.DrawText(CommonHelper.TextStatus, "Q Jump: " + stat, (int)ObjectManager.Player.HPBarPosition.X + 145, (int)ObjectManager.Player.HPBarPosition.Y + 5, enabled && stat != 0 ? Color.White : Color.Gray);
            }

            if (!getCheckBoxItem(MenuLocal, "Jump.Draw.Arrows"))
            {
                return;
            }
            if (JumpTarget.LSIsValidTarget(Q.Range))
            {
                return;
            }

            if (JumpTarget.LSIsValidTarget() && ObjectManager.Player.LSDistance(JumpTarget) > Q.Range)
            {

                var toPolygon = new Common.CommonGeometry.Rectangle(ObjectManager.Player.Position.LSTo2D(), ObjectManager.Player.Position.LSTo2D().LSExtend(JumpTarget.Position.LSTo2D(), Q.Range * 3), 250).ToPolygon();
                toPolygon.Draw(System.Drawing.Color.Red, 1);
                var otherEnemyObjects =
                    ObjectManager.Get<Obj_AI_Base>()
                        .Where(m => m.IsEnemy && !m.IsDead && !m.IsZombie && m.LSIsValidTarget(Q.Range) && m.NetworkId != JumpTarget.NetworkId)
                        .Where(m => toPolygon.IsInside(m))
                        .Where(m => ObjectManager.Player.LSDistance(JumpTarget) > ObjectManager.Player.LSDistance(m))
                        .Where(m => m.Health < Q.GetDamage(m))
                        .Where(m => !m.LSIsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 165))
                        .OrderBy(m => m.LSDistance(JumpTarget.Position));

                JumpObject = otherEnemyObjects.FirstOrDefault(m => m.LSDistance(JumpTarget.Position) <= Q.Range * 2 && m.LSDistance(JumpTarget.Position) > Orbwalking.GetRealAutoAttackRange(null));

                if (JumpObject != null)
                {
                    if (JumpObject.LSIsValidTarget(Q.Range))// && JumpTarget.Health <= ComboDamage(t, R.Instance.Ammo - 1 < 0 ? 0: R.Instance.Ammo - 1) && Utils.UltiChargeCount >= 2)
                    {
                        var startpos = ObjectManager.Player.Position;
                        var endpos = JumpObject.Position;
                        var endpos1 = JumpObject.Position + (startpos - endpos).LSTo2D().LSNormalized().LSRotated(30 * (float)Math.PI / 180).To3D() * ObjectManager.Player.BoundingRadius * 2;
                        var endpos2 = JumpObject.Position + (startpos - endpos).LSTo2D().LSNormalized().LSRotated(-30 * (float)Math.PI / 180).To3D() * ObjectManager.Player.BoundingRadius * 2;

                        var width = 1;

                        var x = new LeagueSharp.Common.Geometry.Polygon.Line(startpos, endpos); x.Draw(System.Drawing.Color.Blue, width);
                        var y = new LeagueSharp.Common.Geometry.Polygon.Line(endpos, endpos1); y.Draw(System.Drawing.Color.Blue, width + 1);
                        var z = new LeagueSharp.Common.Geometry.Polygon.Line(endpos, endpos2); z.Draw(System.Drawing.Color.Blue, width + 1);

                        Vector3[] objectCenter = new[] { ObjectManager.Player.Position, JumpObject.Position };
                        var aX = Drawing.WorldToScreen(new Vector3(Common.CommonHelper.CenterOfVectors(objectCenter).X, Common.CommonHelper.CenterOfVectors(objectCenter).Y, Common.CommonHelper.CenterOfVectors(objectCenter).Z));
                        Drawing.DrawText(aX.X - 15, aX.Y - 15, System.Drawing.Color.White, "1st Jump");

                        /*---------------------------------------------------------------------------------------------------------*/
                        var xStartPos = JumpObject.Position;
                        var xEndPos = JumpTarget.Position;
                        var xEndPos1 = JumpTarget.Position + (xStartPos - xEndPos).LSTo2D().LSNormalized().LSRotated(30 * (float)Math.PI / 180).To3D() * JumpObject.BoundingRadius * 2;
                        var xEndPost2 = JumpTarget.Position + (xStartPos - xEndPos).LSTo2D().LSNormalized().LSRotated(-30 * (float)Math.PI / 180).To3D() * JumpObject.BoundingRadius * 2;

                        var xWidth = 1;

                        var x1 = new LeagueSharp.Common.Geometry.Polygon.Line(xStartPos, xEndPos); x1.Draw(System.Drawing.Color.IndianRed, xWidth);

                        var y1 = new LeagueSharp.Common.Geometry.Polygon.Line(xEndPos, xEndPos1); y1.Draw(System.Drawing.Color.IndianRed, xWidth + 1);
                        var z1 = new LeagueSharp.Common.Geometry.Polygon.Line(xEndPos, xEndPost2); z1.Draw(System.Drawing.Color.IndianRed, xWidth + 1);

                        Vector3[] enemyCenter = new[] { JumpObject.Position, JumpTarget.Position };
                        var bX =
                            Drawing.WorldToScreen(new Vector3(Common.CommonHelper.CenterOfVectors(enemyCenter).X, Common.CommonHelper.CenterOfVectors(enemyCenter).Y,
                                Common.CommonHelper.CenterOfVectors(enemyCenter).Z));
                    }
                }
            }
        }
Beispiel #6
0
        private static void DrawAxeTimes()
        {
            if (PlayerObjects.AxeObject == null)
            {
                return;
            }

            var drawAxePosition = MenuLocal.Item(GetPcModeStringValue + "Draw.AxePosition").GetValue <StringList>().SelectedIndex;

            var exTime = TimeSpan.FromSeconds(PlayerObjects.EndTime - Game.Time).TotalSeconds;
            var color  = exTime > 4 ? Color.White : Color.Red;

            switch (drawAxePosition)
            {
            case 1:
            {
                var circle1 = new CommonGeometry.Circle2(new Vector2(PlayerObjects.AxeObject.Position.X + 3, PlayerObjects.AxeObject.Position.Y - 3), 150f, Game.Time * 100 - Champion.PlayerObjects.StartTime * 100, Champion.PlayerObjects.EndTime * 100 - Champion.PlayerObjects.StartTime * 100).ToPolygon();
                circle1.Draw(Color.Black, 4);

                var circle = new CommonGeometry.Circle2(PlayerObjects.AxeObject.Position.To2D(), 150f, Game.Time * 100 - Champion.PlayerObjects.StartTime * 100, Champion.PlayerObjects.EndTime * 100 - Champion.PlayerObjects.StartTime * 100).ToPolygon();
                circle.Draw(TimeSpan.FromSeconds(PlayerObjects.EndTime - Game.Time).TotalSeconds > 4 ? Color.White : Color.Red, 4);
                break;
            }

            case 2:
            {
                var startpos = ObjectManager.Player.Position.To2D();
                var endpos   = Champion.PlayerObjects.AxeObject.Position.To2D();
                if (startpos.Distance(endpos) > 100)
                {
                    var endpos1 = Champion.PlayerObjects.AxeObject.Position + (startpos - endpos).Normalized().Rotated(25 * (float)Math.PI / 180).To3D() * 75;
                    var endpos2 = Champion.PlayerObjects.AxeObject.Position + (startpos - endpos).Normalized().Rotated(-25 * (float)Math.PI / 180).To3D() * 75;

                    var x1 = new LeagueSharp.Common.Geometry.Polygon.Line(startpos, endpos);
                    x1.Draw(color, 1);
                    var y1 = new LeagueSharp.Common.Geometry.Polygon.Line(endpos.To3D(), endpos1);
                    y1.Draw(color, 2);
                    var z1 = new LeagueSharp.Common.Geometry.Polygon.Line(endpos.To3D(), endpos2);
                    z1.Draw(color, 2);
                }
                break;
            }

            case 3:
            {
                var circle1 = new CommonGeometry.Circle2(new Vector2(PlayerObjects.AxeObject.Position.X + 3, PlayerObjects.AxeObject.Position.Y - 3), 150f, Game.Time * 100 - Champion.PlayerObjects.StartTime * 100, Champion.PlayerObjects.EndTime * 100 - Champion.PlayerObjects.StartTime * 100).ToPolygon();
                circle1.Draw(Color.Black, 4);

                var circle = new CommonGeometry.Circle2(PlayerObjects.AxeObject.Position.To2D(), 150f, Game.Time * 100 - Champion.PlayerObjects.StartTime * 100, Champion.PlayerObjects.EndTime * 100 - Champion.PlayerObjects.StartTime * 100).ToPolygon();
                circle.Draw(TimeSpan.FromSeconds(PlayerObjects.EndTime - Game.Time).TotalSeconds > 4 ? Color.White : Color.Red, 4);

                var startpos = ObjectManager.Player.Position.To2D();
                var endpos   = Champion.PlayerObjects.AxeObject.Position.To2D();
                if (startpos.Distance(endpos) > 100)
                {
                    var endpos1 = Champion.PlayerObjects.AxeObject.Position + (startpos - endpos).Normalized().Rotated(25 * (float)Math.PI / 180).To3D() * 75;
                    var endpos2 = Champion.PlayerObjects.AxeObject.Position + (startpos - endpos).Normalized().Rotated(-25 * (float)Math.PI / 180).To3D() * 75;

                    var x1 = new LeagueSharp.Common.Geometry.Polygon.Line(startpos, endpos);
                    x1.Draw(color, 1);
                    var y1 = new LeagueSharp.Common.Geometry.Polygon.Line(endpos.To3D(), endpos1);
                    y1.Draw(color, 2);
                    var z1 = new LeagueSharp.Common.Geometry.Polygon.Line(endpos.To3D(), endpos2);
                    z1.Draw(color, 2);
                }

                var line = new Geometry.Polygon.Line(ObjectManager.Player.Position, PlayerObjects.AxeObject.Position, ObjectManager.Player.Distance(PlayerObjects.AxeObject.Position));
                line.Draw(color, 2);
                break;
            }
            }

            if (MenuLocal.Item(GetPcModeStringValue + "Draw.AxeTime").GetValue <bool>())
            {
                var time    = TimeSpan.FromSeconds(PlayerObjects.EndTime - Game.Time);
                var pos     = Drawing.WorldToScreen(PlayerObjects.AxeObject.Position);
                var display = $"{time.Seconds:D1}";

                SharpDX.Color vTimeColor = time.TotalSeconds > 4 ? SharpDX.Color.White : SharpDX.Color.Red;
                DrawText(AxeDisplayText, display, (int)pos.X - display.Length, (int)pos.Y - 105, vTimeColor);
            }
        }
Beispiel #7
0
        private static Vector2 GetJumpPosition(AIHeroClient t, float range, string name = "first")
        {
            List <Vector2> xList = new List <Vector2>();

            Vector2 location = ObjectManager.Player.Position.LSTo2D() +
                               Vector2.Normalize(t.Position.LSTo2D() - ObjectManager.Player.Position.LSTo2D()) * W.Range;
            Vector2 wCastPosition = location;

            //Render.Circle.DrawCircle(wCastPosition.To3D(), 105f, System.Drawing.Color.Red);


            if (!wCastPosition.LSIsWall())
            {
                xList.Add(wCastPosition);
            }

            if (!wCastPosition.LSIsWall())
            {
                ExistingJumpPositions.Add(new ListJumpPositions
                {
                    Position = wCastPosition,
                    Name     = name
                });

                ListWJumpPositions.Add(wCastPosition);
            }

            if (wCastPosition.LSIsWall())
            {
                for (int j = 20; j < 80; j += 20)
                {
                    Vector2 wcPositive = ObjectManager.Player.Position.LSTo2D() +
                                         Vector2.Normalize(t.Position.LSTo2D() - ObjectManager.Player.Position.LSTo2D())
                                         .LSRotated(j * (float)Math.PI / 180) * W.Range;
                    if (!wcPositive.LSIsWall())
                    {
                        ListWJumpPositions.Add(wcPositive);
                    }

                    Vector2 wcNegative = ObjectManager.Player.Position.LSTo2D() +
                                         Vector2.Normalize(t.Position.LSTo2D() - ObjectManager.Player.Position.LSTo2D())
                                         .LSRotated(-j * (float)Math.PI / 180) * W.Range;
                    if (!wcNegative.LSIsWall())
                    {
                        ListWJumpPositions.Add(wcNegative);
                    }
                }

                float xDiff = ObjectManager.Player.Position.X - t.Position.X;
                float yDiff = ObjectManager.Player.Position.Y - t.Position.Y;
                int   angle = (int)(Math.Atan2(yDiff, xDiff) * 180.0 / Math.PI);
            }

            //foreach (var aa in ListWJumpPositions)
            //{
            //    Render.Circle.DrawCircle(aa.To3D2(), 105f, System.Drawing.Color.White);
            //}
            var al1 = xList.OrderBy(al => al.LSDistance(t.Position)).First();

            var color = System.Drawing.Color.DarkRed;
            var width = 4;

            var startpos = ObjectManager.Player.Position;
            var endpos   = al1.To3D();

            if (startpos.LSDistance(endpos) > 100)
            {
                var endpos1 = al1.To3D() +
                              (startpos - endpos).LSTo2D().LSNormalized().LSRotated(25 * (float)Math.PI / 180).To3D() * 75;
                var endpos2 = al1.To3D() +
                              (startpos - endpos).LSTo2D().LSNormalized().LSRotated(-25 * (float)Math.PI / 180).To3D() * 75;

                //var x1 = new LeagueSharp.Common.Geometry.Polygon.Line(startpos, endpos);
                //x1.Draw(color, width - 2);
                new LeagueSharp.Common.Geometry.Polygon.Line(startpos, endpos).Draw(color, width - 2);


                var y1 = new LeagueSharp.Common.Geometry.Polygon.Line(endpos, endpos1);
                y1.Draw(color, width - 2);
                var z1 = new LeagueSharp.Common.Geometry.Polygon.Line(endpos, endpos2);
                z1.Draw(color, width - 2);
            }


            //foreach (var al in ListWJumpPositions.OrderBy(al => al.LSDistance(t.Position)))
            //{
            //    Render.Circle.DrawCircle(al.To3D(), 105f, System.Drawing.Color.White);
            //}
            //            Render.Circle.DrawCircle(al1.To3D(), 85, System.Drawing.Color.White);
            return(al1);
        }
Beispiel #8
0
        protected override void Drawing_OnDraw(EventArgs args)
        {
            if (menu.Item("Draw_Disabled", true).GetValue<bool>())
                return;

            if (menu.Item("Draw_Q", true).GetValue<bool>())
                if (Q.Level > 0)
                    Render.Circle.DrawCircle(Player.Position, Q.Range, Q.IsReady() ? Color.Green : Color.Red);
            if (menu.Item("Draw_QE", true).GetValue<bool>())
                if (Q.Level > 0 && E.Level > 0)
                    Render.Circle.DrawCircle(Player.Position, _qe.Range, Q.IsReady() && E.IsReady() ? Color.Green : Color.Red);
            if (menu.Item("Draw_W", true).GetValue<bool>())
                if (W.Level > 0)
                    Render.Circle.DrawCircle(Player.Position, W.Range, W.IsReady() ? Color.Green : Color.Red);

            if (menu.Item("Draw_E", true).GetValue<bool>())
                if (E.Level > 0)
                    Render.Circle.DrawCircle(Player.Position, E.Range, E.IsReady() ? Color.Green : Color.Red);

            if (menu.Item("Draw_R", true).GetValue<bool>())
                if (R.Level > 0)
                    Render.Circle.DrawCircle(Player.Position, R.Range, R.IsReady() ? Color.Green : Color.Red);

            if (Get_Current_Orb() != null)
                Render.Circle.DrawCircle(Get_Current_Orb().Position, W.Width, Color.Green);

            //draw EQ
            if (menu.Item("Draw_QE_Line", true).GetValue<bool>())
            {
                var qeTarget = TargetSelector.GetTarget(_qe.Range, TargetSelector.DamageType.Magical);
                if (qeTarget == null || !Q.IsReady() || !E.IsReady())
                    return;

                var qTarget = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Magical);
                if (qTarget.IsValidTarget(E.Range))
                {
                    var pred = Q.GetPrediction(qTarget);

                    if (pred.Hitchance >= HitChanceManager.GetQEHitChance("Combo"))
                    {
                        var poly = new Geometry.Polygon.Rectangle(pred.CastPosition, Player.ServerPosition.Extend(pred.CastPosition, _qe.Range), _qe.Width);
                        poly.Draw(Color.LawnGreen);
                        var line = new Geometry.Polygon.Line(Player.Position, Player.ServerPosition.Extend(pred.CastPosition, _qe.Range));
                        line.Draw(Color.LawnGreen);
                        Render.Circle.DrawCircle(pred.CastPosition, Q.Width / 2, Color.Aquamarine);
                        Render.Circle.DrawCircle(Player.ServerPosition.Extend(pred.CastPosition, _qe.Range), Q.Width / 2, Color.SpringGreen);
                    }
                }
                else
                {
                    var startPos = Player.ServerPosition.To2D().Extend(qeTarget.ServerPosition.To2D(), Q.Range).To3D();
                    double rangeLeft = 100 + (-0.6 * Player.Distance(startPos) + 950);
                    var endPos = startPos + Vector3.Normalize(startPos - Player.ServerPosition) * (float)rangeLeft;

                    _qe.From = startPos;
                    _qe.Delay = E.Delay + Q.Range / E.Speed;

                    var qePred = _qe.GetPrediction(qeTarget);

                    var poly = new Geometry.Polygon.Rectangle(startPos, endPos, _qe.Width);

                    if (!poly.IsInside(qePred.UnitPosition))
                        return;

                    if (qePred.Hitchance >= HitChanceManager.GetQEHitChance("Combo"))
                    {
                        poly.Draw(Color.LawnGreen);
                        var line = new Geometry.Polygon.Line(Player.Position, endPos);
                        line.Draw(Color.LawnGreen);
                        Render.Circle.DrawCircle(startPos, Q.Width/2, Color.Aquamarine);
                        Render.Circle.DrawCircle(endPos, Q.Width/2, Color.SpringGreen);
                    }
                }
            }

            if (menu.Item("Draw_R_Killable", true).GetValue<bool>() && R.IsReady())
            {
                foreach (var wts in from unit in ObjectManager.Get<Obj_AI_Hero>().Where(x => x.IsValidTarget(2000) && !x.IsDead && x.IsEnemy).OrderByDescending(GetComboDamage)
                                    let health = unit.Health + unit.HPRegenRate + 10
                                    where Get_Ult_Dmg(unit) > health
                                    select Drawing.WorldToScreen(unit.Position))
                {
                    Drawing.DrawText(wts[0] - 20, wts[1], Color.White, "KILL!!!");
                }
            }
        }
Beispiel #9
0
        private static void Drawing_OnDraw(EventArgs args)
        {
            if (!MenuLocal.Item("Draw.Enable").GetValue <bool>())
            {
                return;
            }


            DrawSpells();
            DrawMinionLastHit();
            //KillableEnemy();
            DrawBuffs();

            //Render.Circle.DrawCircle(ObjectManager.Player.Position, W.Range, System.Drawing.Color.Red);

            return;

            var t = TargetSelector.GetTarget(W.Range * 3, TargetSelector.DamageType.Magical);

            if (t == null)
            {
                return;
            }

            if (t.IsValidTarget(W.Range))
            {
                return;
            }


            List <Vector2> xList = new List <Vector2>();

            var nLocation = ObjectManager.Player.Position.To2D() + Vector2.Normalize(t.Position.To2D() - ObjectManager.Player.Position.To2D()) * W.Range;


            //if (CommonGeometry.IsWallBetween(nEvadePoint.To3D(), location.To3D()))
            //{
            //    Game.PrintChat("Wall");
            //}
            //else
            //{
            //    Game.PrintChat("Not Wall");
            //}



            Vector2 wCastPosition = nLocation;

            //Render.Circle.DrawCircle(wCastPosition.To3D(), 105f, System.Drawing.Color.Red);


            if (!wCastPosition.IsWall())
            {
                xList.Add(wCastPosition);
            }

            if (wCastPosition.IsWall())
            {
                for (int j = 20; j < 80; j += 20)
                {
                    Vector2 wcPositive = ObjectManager.Player.Position.To2D() + Vector2.Normalize(t.Position.To2D() - ObjectManager.Player.Position.To2D()).Rotated(j * (float)Math.PI / 180) * W.Range;
                    if (!wcPositive.IsWall())
                    {
                        xList.Add(wcPositive);
                    }

                    Vector2 wcNegative = ObjectManager.Player.Position.To2D() + Vector2.Normalize(t.Position.To2D() - ObjectManager.Player.Position.To2D()).Rotated(-j * (float)Math.PI / 180) * W.Range;
                    if (!wcNegative.IsWall())
                    {
                        xList.Add(wcNegative);
                    }
                }

                float xDiff = ObjectManager.Player.Position.X - t.Position.X;
                float yDiff = ObjectManager.Player.Position.Y - t.Position.Y;
                int   angle = (int)(Math.Atan2(yDiff, xDiff) * 180.0 / Math.PI);
            }

            //foreach (var aa in xList)
            //{
            //    Render.Circle.DrawCircle(aa.To3D2(), 105f, System.Drawing.Color.White);
            //}
            var nJumpPoint = xList.OrderBy(al => al.Distance(t.Position)).First();

            var color = System.Drawing.Color.DarkRed;
            var width = 4;

            var startpos = ObjectManager.Player.Position;
            var endpos   = nJumpPoint.To3D();

            if (startpos.Distance(endpos) > 100)
            {
                var endpos1 = nJumpPoint.To3D() + (startpos - endpos).To2D().Normalized().Rotated(25 * (float)Math.PI / 180).To3D() * 75;
                var endpos2 = nJumpPoint.To3D() + (startpos - endpos).To2D().Normalized().Rotated(-25 * (float)Math.PI / 180).To3D() * 75;

                var x1 = new LeagueSharp.Common.Geometry.Polygon.Line(startpos, endpos);
                x1.Draw(color, width - 2);
                var y1 = new LeagueSharp.Common.Geometry.Polygon.Line(endpos, endpos1);
                y1.Draw(color, width - 2);
                var z1 = new LeagueSharp.Common.Geometry.Polygon.Line(endpos, endpos2);
                z1.Draw(color, width - 2);

                Geometry.Polygon.Circle x2 = new LeagueSharp.Common.Geometry.Polygon.Circle(endpos, W.Width / 2);

                if (CommonGeometry.IsWallBetween(ObjectManager.Player.Position, endpos))
                {
                    x2.Draw(Color.Red, width - 2);
                }
                else
                {
                    x2.Draw(Color.Wheat, width - 2);
                }
            }

            if (!t.IsValidTarget(W.Range + Q.Range - 60))
            {
                return;
            }

            if (t.IsValidTarget(W.Range))
            {
                return;
            }

            var canJump = false;

            if (Modes.ModeCombo.ComboMode == ComboMode.Mode2xQ)
            {
                if ((t.Health < ModeCombo.GetComboDamage(t) - W.GetDamage(t) && Q.IsReady() && R.IsReady()) || (t.Health < Q.GetDamage(t) && Q.IsReady()))
                {
                    canJump = true;
                }
            }

            var nPoint = nJumpPoint.Extend(ObjectManager.Player.Position.To2D(), +ObjectManager.Player.BoundingRadius * 3);

            Render.Circle.DrawCircle(nPoint.To3D(), 50f, Color.GreenYellow);

            if (CommonGeometry.IsWallBetween(nPoint.To3D(), nJumpPoint.To3D()))
            {
                canJump = false;
            }

            if (canJump && W.IsReady() && !W.StillJumped())
            {
                if (Modes.ModeConfig.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
                {
                    W.Cast(nJumpPoint);
                }
                return;
            }
        }
Beispiel #10
0
        private static void Drawing_OnDraw(EventArgs args)
        {
            if (!MenuLocal.Item("Draw.Enable").GetValue <bool>())
            {
                return;
            }

            if (MenuLocal.Item(GetPcModeStringValue + "DrawBuffs").GetValue <bool>())
            {
                var passiveBuffs =
                    (from b in ObjectManager.Player.Buffs
                     join b1 in CommonBuffManager.BuffDatabase on b.Name equals b1.BuffName
                     select new { b, b1 }).Distinct();

                var i = 0;
                foreach (var buffName in passiveBuffs)
                {
                    if (buffName.b.EndTime >= Game.Time)
                    {
                        CommonGeometry.DrawBox(
                            new Vector2(ObjectManager.Player.HPBarPosition.X + 10,
                                        (i * 8) + ObjectManager.Player.HPBarPosition.Y + 32), 130, 6,
                            Color.FromArgb(100, 255, 200, 37), 1, Color.Black);

                        var buffTime = buffName.b.EndTime - buffName.b.StartTime;
                        CommonGeometry.DrawBox(
                            new Vector2(ObjectManager.Player.HPBarPosition.X + 11,
                                        (i * 8) + ObjectManager.Player.HPBarPosition.Y + 33),
                            (130 / buffTime) * (buffName.b.EndTime - Game.Time), 4, buffName.b1.Color, 1, buffName.b1.Color);

                        TimeSpan timeSpan = TimeSpan.FromSeconds(buffName.b.EndTime - Game.Time);
                        var      timer    = $"{timeSpan.Minutes:D2}:{timeSpan.Seconds:D2}";
                        CommonGeometry.DrawText(CommonGeometry.TextPassive, timer,
                                                ObjectManager.Player.HPBarPosition.X + 142,
                                                (i * 8) + ObjectManager.Player.HPBarPosition.Y + 29,
                                                SharpDX.Color.Wheat);
                        CommonGeometry.TextPassive.DrawTextLeft(buffName.b1.Caption,
                                                                (int)ObjectManager.Player.HPBarPosition.X + 8,
                                                                (int)((i * 8) + ObjectManager.Player.HPBarPosition.Y + 35), SharpDX.Color.Wheat);
                    }
                    i += 1;
                }
            }

            DrawSpells();
            DrawMinionLastHit();
            //KillableEnemy();
            DrawBuffs();

            //Render.Circle.DrawCircle(ObjectManager.Player.Position, W.Range, System.Drawing.Color.Red);

            return;

            var t = TargetSelector.GetTarget(W.Range * 3, TargetSelector.DamageType.Magical);

            if (t == null)
            {
                return;
            }

            if (t.IsValidTarget(W.Range))
            {
                return;
            }


            List <Vector2> xList = new List <Vector2>();

            var nLocation = ObjectManager.Player.Position.To2D() + Vector2.Normalize(t.Position.To2D() - ObjectManager.Player.Position.To2D()) * W.Range;


            //if (CommonGeometry.IsWallBetween(nEvadePoint.To3D(), location.To3D()))
            //{
            //    Game.PrintChat("Wall");
            //}
            //else
            //{
            //    Game.PrintChat("Not Wall");
            //}



            Vector2 wCastPosition = nLocation;

            //Render.Circle.DrawCircle(wCastPosition.To3D(), 105f, System.Drawing.Color.Red);


            if (!wCastPosition.IsWall())
            {
                xList.Add(wCastPosition);
            }

            if (wCastPosition.IsWall())
            {
                for (int j = 20; j < 80; j += 20)
                {
                    Vector2 wcPositive = ObjectManager.Player.Position.To2D() + Vector2.Normalize(t.Position.To2D() - ObjectManager.Player.Position.To2D()).Rotated(j * (float)Math.PI / 180) * W.Range;
                    if (!wcPositive.IsWall())
                    {
                        xList.Add(wcPositive);
                    }

                    Vector2 wcNegative = ObjectManager.Player.Position.To2D() + Vector2.Normalize(t.Position.To2D() - ObjectManager.Player.Position.To2D()).Rotated(-j * (float)Math.PI / 180) * W.Range;
                    if (!wcNegative.IsWall())
                    {
                        xList.Add(wcNegative);
                    }
                }

                float xDiff = ObjectManager.Player.Position.X - t.Position.X;
                float yDiff = ObjectManager.Player.Position.Y - t.Position.Y;
                int   angle = (int)(Math.Atan2(yDiff, xDiff) * 180.0 / Math.PI);
            }

            //foreach (var aa in xList)
            //{
            //    Render.Circle.DrawCircle(aa.To3D2(), 105f, System.Drawing.Color.White);
            //}
            var nJumpPoint = xList.OrderBy(al => al.Distance(t.Position)).First();

            var color = System.Drawing.Color.DarkRed;
            var width = 4;

            var startpos = ObjectManager.Player.Position;
            var endpos   = nJumpPoint.To3D();

            if (startpos.Distance(endpos) > 100)
            {
                var endpos1 = nJumpPoint.To3D() + (startpos - endpos).To2D().Normalized().Rotated(25 * (float)Math.PI / 180).To3D() * 75;
                var endpos2 = nJumpPoint.To3D() + (startpos - endpos).To2D().Normalized().Rotated(-25 * (float)Math.PI / 180).To3D() * 75;

                var x1 = new LeagueSharp.Common.Geometry.Polygon.Line(startpos, endpos);
                x1.Draw(color, width - 2);
                var y1 = new LeagueSharp.Common.Geometry.Polygon.Line(endpos, endpos1);
                y1.Draw(color, width - 2);
                var z1 = new LeagueSharp.Common.Geometry.Polygon.Line(endpos, endpos2);
                z1.Draw(color, width - 2);

                Geometry.Polygon.Circle x2 = new LeagueSharp.Common.Geometry.Polygon.Circle(endpos, W.Width / 2);

                if (CommonGeometry.IsWallBetween(ObjectManager.Player.Position, endpos))
                {
                    x2.Draw(Color.Red, width - 2);
                }
                else
                {
                    x2.Draw(Color.Wheat, width - 2);
                }
            }

            if (!t.IsValidTarget(W.Range + Q.Range - 60))
            {
                return;
            }

            if (t.IsValidTarget(W.Range))
            {
                return;
            }

            var canJump = false;

            if (Modes.ModeCombo.ComboMode == ComboMode.Mode2xQ)
            {
                if ((t.Health < ModeCombo.GetComboDamage(t) - W.GetDamage(t) && Q.IsReady() && R.IsReady()) || (t.Health < Q.GetDamage(t) && Q.IsReady()))
                {
                    canJump = true;
                }
            }

            var nPoint = nJumpPoint.Extend(ObjectManager.Player.Position.To2D(), +ObjectManager.Player.BoundingRadius * 3);

            Render.Circle.DrawCircle(nPoint.To3D(), 50f, Color.GreenYellow);

            if (CommonGeometry.IsWallBetween(nPoint.To3D(), nJumpPoint.To3D()))
            {
                canJump = false;
            }

            if (canJump && W.IsReady() && !W.StillJumped())
            {
                if (Modes.ModeConfig.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
                {
                    W.Cast(nJumpPoint);
                }
                return;
            }
        }
Beispiel #11
0
        protected override void Drawing_OnDraw(EventArgs args)
        {
            if (Menu.Item("Draw_Disabled", true).GetValue <bool>())
            {
                return;
            }

            if (Menu.Item("Draw_Q", true).GetValue <bool>())
            {
                if (Q.Level > 0)
                {
                    Render.Circle.DrawCircle(Player.Position, Q.Range, Q.IsReady() ? Color.Green : Color.Red);
                }
            }

            if (Menu.Item("Draw_QE", true).GetValue <bool>())
            {
                if (Q.Level > 0 && E.Level > 0)
                {
                    Render.Circle.DrawCircle(Player.Position, SpellManager.QE.Range, Q.IsReady() && E.IsReady() ? Color.Green : Color.Red);
                }
            }

            if (Menu.Item("Draw_W", true).GetValue <bool>())
            {
                if (W.Level > 0)
                {
                    Render.Circle.DrawCircle(Player.Position, W.Range, W.IsReady() ? Color.Green : Color.Red);
                }
            }

            if (Menu.Item("Draw_E", true).GetValue <bool>())
            {
                if (E.Level > 0)
                {
                    Render.Circle.DrawCircle(Player.Position, E.Range, E.IsReady() ? Color.Green : Color.Red);
                }
            }

            if (Menu.Item("Draw_R", true).GetValue <bool>())
            {
                if (R.Level > 0)
                {
                    Render.Circle.DrawCircle(Player.Position, R.Range, R.IsReady() ? Color.Green : Color.Red);
                }
            }

            if (Get_Current_Orb() != null)
            {
                Render.Circle.DrawCircle(Get_Current_Orb().Position, W.Width, Color.Green);
            }

            if (Menu.Item("Draw_QE_Line", true).GetValue <bool>())
            {
                var qeTarget = TargetSelector.GetTarget(SpellManager.QE.Range, TargetSelector.DamageType.Magical);

                if (qeTarget == null || !Q.IsReady() || !E.IsReady())
                {
                    return;
                }

                var qTarget = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Magical);

                if (qTarget.IsValidTarget(E.Range))
                {
                    var pred = Q.GetPrediction(qTarget);

                    if (pred.Hitchance >= HitChance.VeryHigh)
                    {
                        var poly = new Geometry.Polygon.Rectangle(pred.CastPosition, Player.ServerPosition.Extend(pred.CastPosition, SpellManager.QE.Range), SpellManager.QE.Width);
                        poly.Draw(Color.LawnGreen);

                        var line = new Geometry.Polygon.Line(Player.Position, Player.ServerPosition.Extend(pred.CastPosition, SpellManager.QE.Range));
                        line.Draw(Color.LawnGreen);

                        Render.Circle.DrawCircle(pred.CastPosition, Q.Width / 2, Color.Aquamarine);
                        Render.Circle.DrawCircle(Player.ServerPosition.Extend(pred.CastPosition, SpellManager.QE.Range), Q.Width / 2, Color.SpringGreen);
                    }
                }
                else
                {
                    var startPos  = Player.ServerPosition.To2D().Extend(qeTarget.ServerPosition.To2D(), Q.Range).To3D();
                    var rangeLeft = 100 + (-0.6 * Player.Distance(startPos) + 950);
                    var endPos    = startPos + Vector3.Normalize(startPos - Player.ServerPosition) * (float)rangeLeft;

                    SpellManager.QE.From  = startPos;
                    SpellManager.QE.Delay = E.Delay + Q.Range / E.Speed;

                    var qePred = SpellManager.QE.GetPrediction(qeTarget);
                    var poly   = new Geometry.Polygon.Rectangle(startPos, endPos, SpellManager.QE.Width);

                    if (!poly.IsInside(qePred.UnitPosition))
                    {
                        return;
                    }

                    if (qePred.Hitchance >= HitChance.VeryHigh)
                    {
                        poly.Draw(Color.LawnGreen);

                        var line = new Geometry.Polygon.Line(Player.Position, endPos);
                        line.Draw(Color.LawnGreen);

                        Render.Circle.DrawCircle(startPos, Q.Width / 2, Color.Aquamarine);
                        Render.Circle.DrawCircle(endPos, Q.Width / 2, Color.SpringGreen);
                    }
                }
            }

            if (Menu.Item("Draw_R_Killable", true).GetValue <bool>() && R.IsReady())
            {
                foreach (var wts in from unit in ObjectManager.Get <Obj_AI_Hero>().Where(x => x.IsValidTarget(2000) && !x.IsDead && x.IsEnemy).OrderByDescending(GetComboDamage)
                         let health = unit.Health + unit.HPRegenRate + 10
                                      where Get_Ult_Dmg(unit) > health
                                      select Drawing.WorldToScreen(unit.Position))
                {
                    Drawing.DrawText(wts[0] - 20, wts[1], Color.White, "KILL!!!");
                }
            }
        }
Beispiel #12
0
        private static void DrawingOnOnDraw(EventArgs args)
        {
            if (ObjectManager.Player.IsDead)
            {
                return;
            }

            if (getCheckBoxItem(MenuLocal, "Jump.Draw.Status"))
            {
                var enabled = getKeyBindItem(MenuLocal, "Jump.Enabled");
                var stat    = getBoxItem(MenuLocal, "Jump.Mode");
                CommonHelper.DrawText(CommonHelper.TextStatus, "Q Jump: " + stat, (int)ObjectManager.Player.HPBarPosition.X + 145, (int)ObjectManager.Player.HPBarPosition.Y + 5, enabled && stat != 0 ? Color.White : Color.Gray);
            }

            if (!getCheckBoxItem(MenuLocal, "Jump.Draw.Arrows"))
            {
                return;
            }
            if (JumpTarget.LSIsValidTarget(Q.Range))
            {
                return;
            }

            if (JumpTarget.LSIsValidTarget() && ObjectManager.Player.LSDistance(JumpTarget) > Q.Range)
            {
                var toPolygon = new Common.CommonGeometry.Rectangle(ObjectManager.Player.Position.LSTo2D(), ObjectManager.Player.Position.LSTo2D().LSExtend(JumpTarget.Position.LSTo2D(), Q.Range * 3), 250).ToPolygon();
                toPolygon.Draw(System.Drawing.Color.Red, 1);
                var otherEnemyObjects =
                    ObjectManager.Get <Obj_AI_Base>()
                    .Where(m => m.IsEnemy && !m.IsDead && !m.IsZombie && m.LSIsValidTarget(Q.Range) && m.NetworkId != JumpTarget.NetworkId)
                    .Where(m => toPolygon.IsInside(m))
                    .Where(m => ObjectManager.Player.LSDistance(JumpTarget) > ObjectManager.Player.LSDistance(m))
                    .Where(m => m.Health < Q.GetDamage(m))
                    .Where(m => !m.LSIsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 165))
                    .OrderBy(m => m.LSDistance(JumpTarget.Position));

                JumpObject = otherEnemyObjects.FirstOrDefault(m => m.LSDistance(JumpTarget.Position) <= Q.Range * 2 && m.LSDistance(JumpTarget.Position) > Orbwalking.GetRealAutoAttackRange(null));

                if (JumpObject != null)
                {
                    if (JumpObject.LSIsValidTarget(Q.Range))// && JumpTarget.Health <= ComboDamage(t, R.Instance.Ammo - 1 < 0 ? 0: R.Instance.Ammo - 1) && Utils.UltiChargeCount >= 2)
                    {
                        var startpos = ObjectManager.Player.Position;
                        var endpos   = JumpObject.Position;
                        var endpos1  = JumpObject.Position + (startpos - endpos).LSTo2D().LSNormalized().LSRotated(30 * (float)Math.PI / 180).To3D() * ObjectManager.Player.BoundingRadius * 2;
                        var endpos2  = JumpObject.Position + (startpos - endpos).LSTo2D().LSNormalized().LSRotated(-30 * (float)Math.PI / 180).To3D() * ObjectManager.Player.BoundingRadius * 2;

                        var width = 1;

                        var x = new LeagueSharp.Common.Geometry.Polygon.Line(startpos, endpos); x.Draw(System.Drawing.Color.Blue, width);
                        var y = new LeagueSharp.Common.Geometry.Polygon.Line(endpos, endpos1); y.Draw(System.Drawing.Color.Blue, width + 1);
                        var z = new LeagueSharp.Common.Geometry.Polygon.Line(endpos, endpos2); z.Draw(System.Drawing.Color.Blue, width + 1);

                        Vector3[] objectCenter = new[] { ObjectManager.Player.Position, JumpObject.Position };
                        var       aX           = Drawing.WorldToScreen(new Vector3(Common.CommonHelper.CenterOfVectors(objectCenter).X, Common.CommonHelper.CenterOfVectors(objectCenter).Y, Common.CommonHelper.CenterOfVectors(objectCenter).Z));
                        Drawing.DrawText(aX.X - 15, aX.Y - 15, System.Drawing.Color.White, "1st Jump");

                        /*---------------------------------------------------------------------------------------------------------*/
                        var xStartPos = JumpObject.Position;
                        var xEndPos   = JumpTarget.Position;
                        var xEndPos1  = JumpTarget.Position + (xStartPos - xEndPos).LSTo2D().LSNormalized().LSRotated(30 * (float)Math.PI / 180).To3D() * JumpObject.BoundingRadius * 2;
                        var xEndPost2 = JumpTarget.Position + (xStartPos - xEndPos).LSTo2D().LSNormalized().LSRotated(-30 * (float)Math.PI / 180).To3D() * JumpObject.BoundingRadius * 2;

                        var xWidth = 1;

                        var x1 = new LeagueSharp.Common.Geometry.Polygon.Line(xStartPos, xEndPos); x1.Draw(System.Drawing.Color.IndianRed, xWidth);

                        var y1 = new LeagueSharp.Common.Geometry.Polygon.Line(xEndPos, xEndPos1); y1.Draw(System.Drawing.Color.IndianRed, xWidth + 1);
                        var z1 = new LeagueSharp.Common.Geometry.Polygon.Line(xEndPos, xEndPost2); z1.Draw(System.Drawing.Color.IndianRed, xWidth + 1);

                        Vector3[] enemyCenter = new[] { JumpObject.Position, JumpTarget.Position };
                        var       bX          =
                            Drawing.WorldToScreen(new Vector3(Common.CommonHelper.CenterOfVectors(enemyCenter).X, Common.CommonHelper.CenterOfVectors(enemyCenter).Y,
                                                              Common.CommonHelper.CenterOfVectors(enemyCenter).Z));
                    }
                }
            }
        }