private static void OnDraw(EventArgs args)
 {
     if (!Config.DrawMenu.Checked("draw"))
     {
         return;
     }
     if (Config.DrawMenu.Checked("drQ"))
     {
         Circle.Draw(Spells.Q.IsLearned ? Color.HotPink : Color.Zero, Spells.Q.Range, Player.Instance.Position);
     }
     if (Config.DrawMenu.Checked("drW"))
     {
         Circle.Draw(Spells.W.IsLearned ? Color.Orange : Color.Zero, Spells.W.Range, Player.Instance.Position);
     }
     if (Config.DrawMenu.Checked("drE"))
     {
         Circle.Draw(Spells.E.IsLearned ? Color.SkyBlue : Color.Zero, Spells.E.Range, Player.Instance.Position);
     }
     if (Config.DrawMenu.Checked("drEQ"))
     {
         Circle.Draw(Spells.Q.IsLearned && Spells.E.IsLearned ? Color.Yellow : Color.Zero, Spells.QE.Range, Player.Instance.Position);
     }
     if (Config.DrawMenu.Checked("drR"))
     {
         Circle.Draw(Spells.R.IsLearned ? Color.Green : Color.Zero, Spells.R.Range, Player.Instance.Position);
     }
     if (Config.DrawMenu.Checked("drBall") && Spells.E.IsReady())
     {
         foreach (var Ball in BallManager.Balls.Where(x => Spells.E.IsInRange(x)))
         {
             var Rectangle = new Geometry.Polygon.Rectangle(Player.Instance.Position, Player.Instance.Position.Extend(Ball.Position, Spells.QE.Range).To3DWorld(), Spells.QE.Width);
             Rectangle.Draw(Colour.Cyan);
         }
     }
 }
Exemple #2
0
        private static void DrawingOnOnDraw(EventArgs args)
        {
            var drawQ     = Getcheckboxvalue(drawMenu, "DrawQ");
            var drawE     = Getcheckboxvalue(drawMenu, "DrawE");
            var drawR     = Getcheckboxvalue(drawMenu, "DrawR");
            var drawRPred = Getcheckboxvalue(drawMenu, "DrawRPred");
            var p         = Player.Position;

            if (drawQ)
            {
                Drawing.DrawCircle(p, Q.Range, Q.IsReady() ? Color.Aqua : Color.Red);
            }

            if (drawE)
            {
                Drawing.DrawCircle(p, E.Range, E.IsReady() ? Color.Aqua : Color.Red);
            }

            if (drawR)
            {
                Drawing.DrawCircle(p, R.Range, R.IsReady() ? Color.Aqua : Color.Red);
            }

            if (drawRPred && R.IsReady() && DrawTarget.IsValidTarget())
            {
                RRectangle.Draw(Color.CornflowerBlue, 3);
            }
        }
        private static void OnDraw(EventArgs args)
        {
            if (!Config.Drawings.Enabled)
            {
                return;
            }

            if (Config.Drawings.DrawW && SpellManager.W.IsLearned)
            {
                Circle.Draw(SpellManager.W.IsReady() ? SharpDX.Color.GreenYellow : SharpDX.Color.Red, SpellManager.W.Range, Config.Drawings.DrawingBorderWidth, Player.Instance.Position);
            }

            if (Config.Drawings.DrawE && SpellManager.E.IsLearned)
            {
                Circle.Draw(SpellManager.E.IsReady() ? SharpDX.Color.DeepPink : SharpDX.Color.Red, SpellManager.E.Range, Config.Drawings.DrawingBorderWidth, Player.Instance.Position);
            }

            if (!Config.Drawings.DrawQPosition)
            {
                return;
            }

            var end      = new Vector3();
            var position = new Vector3();
            var start    = new Vector3();

            if (QOrbMissile != null)
            {
                start    = Player.Instance.ServerPosition;
                position = QOrbMissile.Position;
                end      = QOrbMissile.EndPosition;
            }
            else if (QReturnMissile != null)
            {
                start    = QReturnMissile.StartPosition;
                position = QReturnMissile.Position;
                end      = Player.Instance.ServerPosition;
            }

            if (end == Vector3.Zero)
            {
                return;
            }

            var polygon1 = new Geometry.Polygon.Rectangle(start.To2D(), end.To2D(), 150);

            polygon1.Draw(Color.White);
            var polygon2 = new Geometry.Polygon.Rectangle(start.To2D(), end.To2D(), 100);

            polygon2.Draw(Color.GreenYellow);

            var direction = (end - start).Normalized().To2D();
            var x         = Drawing.WorldToScreen((position.To2D() + 90 * direction.Perpendicular()).To3D());
            var y         = Drawing.WorldToScreen((position.To2D() - 100 * direction.Perpendicular()).To3D());

            Drawing.DrawLine(x.X, x.Y, y.X, y.Y, 3, Color.DeepPink);
        }
        private static void OnDraw(EventArgs args)
        {
            if (Player.Instance.IsDead)
            {
                return;
            }

            foreach (var spell in SpellManager.AllSpells)
            {
                switch (spell.Slot)
                {
                case SpellSlot.Q:
                    if (!Config.Drawing.Menu.GetCheckBoxValue("Config.Drawing.Q"))
                    {
                        continue;
                    }
                    break;

                case SpellSlot.W:
                    if (!Config.Drawing.Menu.GetCheckBoxValue("Config.Drawing.W"))
                    {
                        continue;
                    }
                    break;

                case SpellSlot.E:
                    if (!Config.Drawing.Menu.GetCheckBoxValue("Config.Drawing.E"))
                    {
                        continue;
                    }
                    break;

                case SpellSlot.R:
                    if (!Config.Drawing.Menu.GetCheckBoxValue("Config.Drawing.R"))
                    {
                        continue;
                    }
                    break;
                }
                Circle.Draw(spell.GetColor(), spell.Range, Player.Instance);
            }

            if (Config.Drawing.Menu.GetCheckBoxValue("Config.Drawing.Q.Position"))
            {
                var position = QOrbMissile?.Position;
                if (position == null)
                {
                    return;
                }

                var polygon = new Geometry.Polygon.Rectangle(Player.Instance.Position.To2D(), position.Value.To2D(), SpellManager.E.Width);
                polygon.Draw(System.Drawing.Color.Blue, 3);
            }
        }
Exemple #5
0
        private static void BardQ(Obj_AI_Hero Target, bool Type, bool Draw = false)
        {
            // Type 0: no sturn / 1: only sturn
            // If Draw is true, return draw

            /* return
             * target1, target2, type
             */
            Range1 = new Geometry.Polygon.Rectangle(Player.Position, Player.Position.Extend(Target.Position, _Q.Range), _Q.Width);
            Range2 = null;
            if (Draw)
            {
                Range1.Draw(Color.Red);
            }
            cnt          = 0;
            BardQTarget1 = Player;
            BardQTarget2 = Player;
            foreach (var item in ObjectManager.Get <Obj_AI_Base>().OrderBy(f => f.Distance(f.Position)))
            {
                if (item.Distance(Player.Position) < _Q.Range)
                {
                    if (item is Obj_AI_Hero || item is Obj_AI_Minion)
                    {
                        if (item.IsEnemy && !item.IsDead)
                        {
                            if (cnt == 2)
                            {
                                break;
                            }
                            if (cnt == 0 && Range1.IsInside(item.Position))
                            {
                                BardQTarget1 = item;
                                Range2       = new Geometry.Polygon.Rectangle(Player.Position.Extend(BardQTarget1.Position, Player.Distance(BardQTarget1.Position)),
                                                                              Player.Position.Extend(BardQTarget1.Position, Player.Distance(BardQTarget1.Position) + 450), _Q.Width);
                                if (Draw)
                                {
                                    Range2.Draw(Color.Yellow);
                                }
                                cnt++;
                            }
                            if (cnt == 1 && Range2.IsInside(item.Position))
                            {
                                BardQTarget2 = item;
                                cnt++;
                            }
                        }
                    }
                }
            }
        }
Exemple #6
0
        private void Cast_QE(string source, Obj_AI_Base target = null)
        {
            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(source))
                {
                    Q.Cast(pred.CastPosition);
                    W.LastCastAttemptT   = Utils.TickCount + 500;
                    _qe.LastCastAttemptT = Utils.TickCount;
                }
            }
            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;
                }

                poly.Draw(Color.LawnGreen);

                if (qePred.Hitchance >= HitChanceManager.GetQEHitChance(source))
                {
                    Q.Cast(startPos);
                    W.LastCastAttemptT   = Utils.TickCount + 500;
                    _qe.LastCastAttemptT = Utils.TickCount;
                }
            }
        }
Exemple #7
0
        private static void OnDraw(EventArgs args)
        {
            if (DrawingsMenu["DrawQHitBox"].Cast <CheckBox>().CurrentValue)
            {
                AIHeroClient target = TargetSelector.GetTarget(Q.Range, DamageType.Magical, Player.Instance.Position);
                //var qpred = Prediction.Manager.GetPrediction(QDATA);
                if (Q.IsReady() && target != null)
                {
                    var qpred = Q.GetPrediction(target);
                    Geometry.Polygon.Rectangle prediction2 = new Geometry.Polygon.Rectangle(
                        Player.Instance.Position.To2D(), qpred.CastPosition.To2D(), Q.Width);
                    prediction2.Draw(Color.Color.Yellow, 1);
                }
            }

            if (DrawingsMenu["DrawWHitBox"].Cast <CheckBox>().CurrentValue)
            {
                AIHeroClient target = TargetSelector.GetTarget(W.Range, DamageType.Magical, Player.Instance.Position);
                //var qpred = Prediction.Manager.GetPrediction(QDATA);
                if (W.IsReady() && target != null)
                {
                    Geometry.Polygon.Circle prediction2 = new Geometry.Polygon.Circle(Player.Instance.Position, W.Range);
                    prediction2.Draw(Color.Color.Green, 1);
                }
            }

            if (DrawingsMenu["DrawEHitBox"].Cast <CheckBox>().CurrentValue)
            {
                AIHeroClient target = TargetSelector.GetTarget(E.Range, DamageType.Magical, Player.Instance.Position);
                //var qpred = Prediction.Manager.GetPrediction(QDATA);
                if (E.IsReady() && target != null)
                {
                    var epred = E.GetPrediction(target);
                    Geometry.Polygon.Rectangle prediction2 = new Geometry.Polygon.Rectangle(
                        Player.Instance.Position.To2D(), epred.CastPosition.To2D(), E.Width);
                    prediction2.Draw(Color.Color.Orange, 1);
                }
            }

            if (DrawingsMenu["DrawRHitBox"].Cast <CheckBox>().CurrentValue)
            {
                AIHeroClient target = TargetSelector.GetTarget(R.Range, DamageType.Magical, Player.Instance.Position);
                //var qpred = Prediction.Manager.GetPrediction(QDATA);
                if (IsCastingUlt && target != null)
                {
                    Geometry.Polygon.Circle prediction2 = new Geometry.Polygon.Circle(Player.Instance.Position, R.Range);
                    prediction2.Draw(Color.Color.Red, 1);
                }
            }
        }
        private static void Game_OnUpdate(EventArgs args)
        {
            if (myHero.IsDead)
            {
                return;
            }

            if (start.IsValid() && end.IsValid())
            {
                rectangle = new Geometry.Polygon.Rectangle(start, end, Lib.Q.Width);
                rectangle.Draw(Color.Red, 2);
            }
            else
            {
                rectangle = null;
            }

            if (Config.StunTarget)
            {
                Modes.Stun.Execute();
            }

            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo))
            {
                Modes.Combo.Execute();
            }

            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear))
            {
                Modes.Laneclear.Execute();
            }

            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Flee))
            {
                Modes.Flee.Execute();
            }

            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Harass))
            {
                Modes.Harass.Execute();
            }

            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear))
            {
                Modes.Jungleclear.Execute();
            }

            Modes.Misc.Execute();
        }
Exemple #9
0
        private static void Drawing_OnDraw(EventArgs args)
        {
            var qtarget   = TargetSelector.GetTarget(Q.Range, DamageType.Magical);
            var readyDraw = DrawingsMenu.GetCheckBoxValue("readyDraw");

            if (DrawingsMenu.GetCheckBoxValue("qDraw") && readyDraw
                ? Q.IsReady()
                : DrawingsMenu.GetCheckBoxValue("qDraw"))
            {
                Circle.Draw(QColorSlide.GetSharpColor(), Q.Range, 1f, Player.Instance);
            }

            if (DrawingsMenu.GetCheckBoxValue("wDraw") && readyDraw
                ? W.IsReady()
                : DrawingsMenu.GetCheckBoxValue("wDraw"))
            {
                Circle.Draw(WColorSlide.GetSharpColor(), W.Range, 1f, Player.Instance);
            }

            if (DrawingsMenu.GetCheckBoxValue("eDraw") && readyDraw
                ? E.IsReady()
                : DrawingsMenu.GetCheckBoxValue("eDraw"))
            {
                Circle.Draw(EColorSlide.GetSharpColor(), E.Range, 1f, Player.Instance);
            }

            if (DrawingsMenu.GetCheckBoxValue("rDraw") && readyDraw
                ? R.IsReady()
                : DrawingsMenu.GetCheckBoxValue("rDraw"))
            {
                Circle.Draw(RColorSlide.GetSharpColor(), R.Range, 1f, Player.Instance);
            }

            if (DrawingsMenu.GetCheckBoxValue("QPredictionDraw") && readyDraw
                ? Q.IsReady()
                : DrawingsMenu.GetCheckBoxValue("QPredictionDraw"))
            {
                if (qtarget != null && qtarget.IsValidTarget(Q.Range))
                {
                    var pred = Q.GetPrediction(qtarget);
                    var rect = new Geometry.Polygon.Rectangle(ObjectManager.Player.Position, pred.CastPosition, Q.Width);
                    rect.Draw((Q.GetPrediction(qtarget).HitChance >= HitChance.High && Q.IsReady()) ? Color.Blue : Color.Brown);
                    Drawing.DrawText(pred.CastPosition.WorldToScreen(), Color.Wheat, Q.GetPrediction(qtarget).HitChance.ToString(), 2);
                }
            }
        }
Exemple #10
0
 public static void Drawing_OnDraw(EventArgs args)
 {
     try
     {
         if (Player.IsDead)
         {
             return;
         }
         if (Program.EndPos != null)
         {
             var Range = new Geometry.Polygon.Rectangle(Program.StartPos, Program.EndPos, 150);
             Range.Draw(Color.Red);
         }
     }
     catch (Exception e)
     {
         Console.Write(e);
         Game.PrintChat("FreshTahmKench is not working. plz send message by KorFresh (Code 5)");
     }
 }
Exemple #11
0
        private static void OnDraw(EventArgs args)
        {
            if (Config.IsChecked(MenuBuilder.MenuNames.Drawing, "draw.Q.range"))
            {
                var circle = new Geometry.Polygon.Circle(ObjectManager.Player.Position, Q.Range, 50);
                circle.Draw(Q.IsReady() ? Color.Green : Color.Brown);
            }

            if (Config.IsChecked(MenuBuilder.MenuNames.Drawing, "draw.Q.prediction"))
            {
                var target = TargetSelector.GetTarget(ObjectManager.Get <AIHeroClient>().Where(u => u.IsEnemy && !u.IsDead && u.IsValidTarget(Q.Range) && !Config.IsChecked(MenuBuilder.MenuNames.BlackList, u.ChampionName)), DamageType.Magical);
                if (target != null)
                {
                    var pred = Q.GetProdiction(target);
                    var rect = new Geometry.Polygon.Rectangle(ObjectManager.Player.Position, pred.CastPosition, Q.Width);
                    rect.Draw((pred.Hitchance >= HitChance.High && Q.IsReady()) ? Color.Blue : Color.Brown);
                    Drawing.DrawText(pred.CastPosition.WorldToScreen(), Color.Wheat, pred.Hitchance.ToString(), 2);
                }
            }
        }
Exemple #12
0
        private static void OnDraw(EventArgs args)
        {
            if (Config.IsChecked(MenuBuilder.MenuNames.Drawing, "draw.Q.range"))
            {
                var circle = new Geometry.Polygon.Circle(ObjectManager.Player.Position, Q.Range, 50);
                circle.Draw(Q.IsReady() ? Color.Green : Color.Brown);
            }

            if (Config.IsChecked(MenuBuilder.MenuNames.Drawing, "draw.Q.prediction"))
            {
                var target = ObjectManager.Get <Obj_AI_Base>()
                             .Where(u => u.IsValidTarget(Q.Range) && !u.IsDead && !u.IsAlly && u.Type == GameObjectType.AIHeroClient)
                             .OrderBy(u => u.Distance(ObjectManager.Player))
                             .FirstOrDefault();
                if (target != null)
                {
                    var rect = new Geometry.Polygon.Rectangle(ObjectManager.Player.Position, ObjectManager.Player.Position.V3E(target.Position, Q.Range), 50);
                    rect.Draw(Q.IsReady() ? Color.Blue : Color.Brown);
                }
            }
        }
        static void Drawing_OnDraw(EventArgs args)
        {
            var draw = _mainMenu.Item("draw").GetValue <Circle>();

            if (!draw.Active)
            {
                return;
            }

            var detectorRect = new Geometry.Polygon.Rectangle(
                new Vector2(Game.CursorPos.X, Game.CursorPos.Y - _size),
                new Vector2(Game.CursorPos.X, Game.CursorPos.Y + _size), _size);

            if (_mainMenu.Item("Enable").GetValue <bool>())
            {
                detectorRect.Draw(draw.Color);
            }

            foreach (var polygone in _polygoneList)
            {
                polygone.Draw(draw.Color);
            }
        }
Exemple #14
0
        private static void DrawingOnOnDraw(EventArgs args)
        {
            if (!Menu.Item("DrawSpell").IsActive())
            {
                return;
            }

            var rectangle = new Geometry.Polygon.Rectangle(new Vector3(), new Vector3(), 0);

            foreach (var missile in ObjectManager.Get <Obj_SpellMissile>().Where(x => x.SpellCaster.IsMe /*&& CastedSpellsNames.Any(y => y == x.SData.Name)*/))
            {
                var missilePosition = missile.Position.To2D();
                var unitPosition    = missile.StartPosition.To2D();
                var endPos          = missile.EndPosition.To2D();

                //Calculate the real end Point:
                var direction = (endPos - unitPosition).Normalized();
                if (unitPosition.Distance(endPos) > missile.SData.CastRange)
                {
                    endPos = unitPosition + direction * missile.SData.CastRange;
                }

                rectangle.Start = unitPosition;
                rectangle.End   = endPos;
                rectangle.Width = missile.SData.LineWidth;

                rectangle.UpdatePolygon();
                rectangle.Draw(Color.LightYellow);

                // Draw Line
                var start = missilePosition + missile.SData.LineWidth * rectangle.Direction.Perpendicular();
                var end   = missilePosition - missile.SData.LineWidth * rectangle.Direction.Perpendicular();

                Drawing.DrawLine(Drawing.WorldToScreen(start.To3D()), Drawing.WorldToScreen(end.To3D()), 3, Color.Chartreuse);
            }
        }
Exemple #15
0
        public static void DrawBestLine(Spell spell, Spell spell2, int midPointRange, float extraPrerange = 1, bool wallCheck = true)
        {
            //---------------------------------MEC----------------------------
            int     maxHit = 0;
            Vector3 start  = Vector3.Zero;
            Vector3 end    = Vector3.Zero;

            //loop one
            foreach (var target in ObjectManager.Get <Obj_AI_Hero>().Where(x => x.IsValidTarget(spell.Range)))
            {
                //loop 2
                var target1 = target;
                var target2 = target;
                foreach (var enemy in ObjectManager.Get <Obj_AI_Hero>().Where(x => x.IsValidTarget(spell.Range + spell2.Range) && x.NetworkId != target1.NetworkId &&
                                                                              x.Distance(target1.Position) < spell2.Range - 100).OrderByDescending(x => x.Distance(target2.Position)))
                {
                    int hit = 2;

                    var targetPred = Prediction.GetPrediction(target, spell.Delay);
                    var enemyPred  = Prediction.GetPrediction(enemy, spell.Delay);

                    var midpoint = (enemyPred.CastPosition + targetPred.CastPosition) / 2;

                    var startpos = midpoint + Vector3.Normalize(enemyPred.CastPosition - targetPred.CastPosition) * midPointRange;
                    var endPos   = midpoint - Vector3.Normalize(enemyPred.CastPosition - targetPred.CastPosition) * midPointRange;

                    Geometry.Polygon.Rectangle rec1 = new Geometry.Polygon.Rectangle(startpos, endPos, spell.Width);

                    if (!rec1.Points.Exists(Util.IsWall) && Player.CountEnemiesInRange(spell.Range + spell2.Range) > 2)
                    {
                        //loop 3
                        var target3 = target;
                        var enemy1  = enemy;
                        foreach (var enemy2 in ObjectManager.Get <Obj_AI_Hero>().Where(x => x.IsValidTarget(spell.Range + spell2.Range) && x.NetworkId != target3.NetworkId && x.NetworkId != enemy1.NetworkId && x.Distance(target3.Position) < spell2.Range))
                        {
                            var      enemy2Pred = Prediction.GetPrediction(enemy2, spell.Delay);
                            Object[] obj        = Util.VectorPointProjectionOnLineSegment(startpos.To2D(), endPos.To2D(), enemy2Pred.CastPosition.To2D());
                            var      isOnseg    = (bool)obj[2];
                            var      pointLine  = (Vector2)obj[1];

                            if (pointLine.Distance(enemy2Pred.CastPosition.To2D()) < spell.Width && isOnseg)
                            {
                                hit++;
                            }
                        }
                    }

                    if (hit > maxHit && hit > 1 && !rec1.Points.Exists(Util.IsWall))
                    {
                        maxHit = hit;
                        start  = startpos;
                        end    = endPos;
                    }
                }
            }

            if (maxHit >= 2)
            {
                Vector2 wts = Drawing.WorldToScreen(Player.Position);
                Drawing.DrawText(wts[0], wts[1], Color.Wheat, "Hit: " + maxHit);

                Geometry.Polygon.Rectangle rec1 = new Geometry.Polygon.Rectangle(start, end, spell.Width);
                rec1.Draw(Color.Blue, 4);
            }
            else
            {
                //-------------------------------Single---------------------------
                var target = TargetSelector.GetTarget(spell.Range + spell2.Range, TargetSelector.DamageType.Magical);

                if (target == null)
                {
                    return;
                }

                var vector1 = Player.ServerPosition + Vector3.Normalize(target.ServerPosition - Player.ServerPosition) * (spell.Range * extraPrerange);

                var pred = Prediction.GetPrediction(target, spell.Delay);
                Geometry.Polygon.Rectangle rec1 = new Geometry.Polygon.Rectangle(vector1, vector1.Extend(pred.CastPosition, spell2.Range), spell.Width);

                if (Player.Distance(target) < spell.Range)
                {
                    vector1 = pred.CastPosition.Extend(target.ServerPosition, spell2.Range * .3f);
                    Geometry.Polygon.Rectangle rec2 = new Geometry.Polygon.Rectangle(vector1, vector1.Extend(pred.CastPosition, spell2.Range), spell.Width);

                    if ((!rec2.Points.Exists(Util.IsWall) || !wallCheck) && pred.Hitchance >= HitChance.Medium && target.IsMoving)
                    {
                        Vector2 wts = Drawing.WorldToScreen(Player.Position);
                        Drawing.DrawText(wts[0], wts[1], Color.Wheat, "Hit: " + 1);

                        rec2.Draw(Color.Blue, 4);
                    }
                }
                else if (!rec1.Points.Exists(Util.IsWall) || !wallCheck)
                {
                    //wall check
                    if (pred.Hitchance >= HitChance.High)
                    {
                        Vector2 wts = Drawing.WorldToScreen(Player.Position);
                        Drawing.DrawText(wts[0], wts[1], Color.Wheat, "Hit: " + 1);

                        rec1.Draw(Color.Blue, 4);
                    }
                }
            }
        }
Exemple #16
0
        private static void OnDraw(EventArgs args)
        {
            if (myhero.IsDead || check(draw, "nodraw")) return;

            if (check(draw, "drawQ") && DemSpells.Q.Level > 0)
            {
                Circle.Draw
                (
                    check(draw, "nodrawc") ? (DemSpells.Q.IsOnCooldown ? SharpDX.Color.Transparent : SharpDX.Color.Yellow) : SharpDX.Color.Yellow,
                    DemSpells.Q.Range,
                    myhero.Position
                );
            }

            if (check(draw, "drawR") && DemSpells.R.Level > 0)
            {
                Circle.Draw
                (
                    check(draw, "nodrawc") ? (DemSpells.R.IsOnCooldown ? SharpDX.Color.Transparent : SharpDX.Color.Yellow) : SharpDX.Color.Yellow,
                    DemSpells.R.Range,
                    myhero.Position
                );
            }

            AIHeroClient target = TargetSelector.GetTarget(DemSpells.Q.Range, DamageType.Magical, myhero.Position);

            if (target != null)
            {
                if (DemSpells.Q.IsReady())
                {
                    /*  Prediction.Manager.PredictionOutput qpred = Prediction.Manager.GetPrediction(new Prediction.Manager.PredictionInput
                      {
                          Delay = DemSpells.Q.CastDelay,
                          Radius = DemSpells.Q.Radius,
                          Range = DemSpells.Q.Range,
                          Speed = DemSpells.Q.Speed,
                          Type = SkillShotType.Linear,
                          From = myhero.Position,
                          Target = target,
                          CollisionTypes = { EloBuddy.SDK.Spells.CollisionType.YasuoWall }
                      });*/

                    QDATA.Target = target;
                    var qpred = Prediction.Manager.GetPrediction(QDATA);

                    if (check(draw, "DRAWPRED"))
                    {
                        Geometry.Polygon.Rectangle Prediction = new Geometry.Polygon.Rectangle(myhero.Position.To2D(), qpred.CastPosition.To2D(), DemSpells.Q.Width);
                        Prediction.Draw(Color.Yellow, 1);
                    }

                    if (check(draw, "DRAWHIT"))
                    {
                        Drawing.DrawText(Drawing.WorldToScreen(myhero.Position).X - 50,
                                    Drawing.WorldToScreen(myhero.Position).Y + 10,
                                    Color.Yellow,
                                    "Hitchance %: ");
                        Drawing.DrawText(Drawing.WorldToScreen(myhero.Position).X + 37,
                                            Drawing.WorldToScreen(myhero.Position).Y + 10,
                                            Color.Green,
                                            qpred.HitChancePercent.ToString());
                    }
                }

                if (check(draw, "DRAWTARGET"))
                {
                    Circle.Draw(SharpDX.Color.Yellow, 50, target.Position);
                }

                if (check(draw, "DRAWWAY") && target.Path.Any())
                {
                    for (var i = 1; target.Path.Length > i; i++)
                    {
                        if (target.Path[i - 1].IsValid() && target.Path[i].IsValid() && (target.Path[i - 1].IsOnScreen() || target.Path[i].IsOnScreen()))
                        {
                            Drawing.DrawLine(Drawing.WorldToScreen(target.Position), Drawing.WorldToScreen(target.Path[i]), 3, Color.White);
                        }
                    }
                }
            }
        }
Exemple #17
0
        private static void Game_OnUpdate(EventArgs args)
        {
            if (myHero.IsDead) return;
            
            if (start.IsValid() && end.IsValid())
            {
                rectangle = new Geometry.Polygon.Rectangle(start, end, Lib.Q.Width);
                rectangle.Draw(Color.Red, 2);
            }
            else
                rectangle = null;

            if (Config.StunTarget)
                Modes.Stun.Execute();

            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo))
                Modes.Combo.Execute();
            
            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear))
                Modes.Laneclear.Execute();

            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Flee))
                Modes.Flee.Execute();

            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Harass))
                Modes.Harass.Execute();

            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear))
                Modes.Jungleclear.Execute();
            
            Modes.Misc.Execute();
        }
        private void Drawing_OnDraw(EventArgs args)
        {
            if (!root.Item("Enabled").GetValue <bool>())
            {
                return;
            }

            if (root.Item("VayneE") != null)
            {
                foreach (var e in HeroManager.Enemies.Where(e => e.ChampionName.ToLower() == "vayne" && e.Distance(Program.Player.Position) < 900))
                {
                    for (var i = 1; i < 8; i++)
                    {
                        var championBehind = ObjectManager.Player.Position
                                             + Vector3.Normalize(e.ServerPosition - ObjectManager.Player.Position)
                                             * (-i * 50);
                        if (draw.Item("drawline").GetValue <bool>())
                        {
                            Drawing.DrawCircle(championBehind, 35f, championBehind.IsWall() ? System.Drawing.Color.Red : System.Drawing.Color.Gray);
                        }
                    }
                }
            }

            foreach (var e in HeroManager.Enemies.Where(e => e.IsValidTarget(2000)))
            {
                foreach (var eList in this.EarlyList)
                {
                    if (eList.ChampionName == e.ChampionName)
                    {
                        if (draw.Item(eList.ChampionName + eList.SpellName).GetValue <bool>())
                        {
                            var xminions = 0;
                            if (e.IsValidTarget(eList.Range))
                            {
                                for (var i = 1;
                                     i < e.Position.Distance(ObjectManager.Player.Position) / eList.Width;
                                     i++)
                                {
                                    var championBehind = ObjectManager.Player.Position
                                                         + Vector3.Normalize(
                                        e.ServerPosition - ObjectManager.Player.Position)
                                                         * (i * eList.Width);

                                    var list    = eList;
                                    var allies  = HeroManager.Allies.Where(a => a.Distance(ObjectManager.Player.Position) < list.Range);
                                    var minions = MinionManager.GetMinions(ObjectManager.Player.Position, eList.Range, MinionTypes.All, MinionTeam.Ally);
                                    var mobs    = MinionManager.GetMinions(ObjectManager.Player.Position, eList.Range, MinionTypes.All, MinionTeam.Neutral);

                                    xminions += minions.Count(m => m.Distance(championBehind) < eList.Width)
                                                + allies.Count(a => a.Distance(championBehind) < eList.Width)
                                                + mobs.Count(m => m.Distance(championBehind) < eList.Width);
                                }

                                if (xminions == 0)
                                {
                                    if (draw.Item("drawline").GetValue <bool>())
                                    {
                                        var rec = new Geometry.Polygon.Rectangle(ObjectManager.Player.Position, e.Position, eList.Width - 10);
                                        rec.Draw(eList.Color, 2);
                                    }

                                    if (draw.Item("drawtext").GetValue <bool>())
                                    {
                                        Vector3[] x  = new[] { ObjectManager.Player.Position, e.Position };
                                        var       aX =
                                            Drawing.WorldToScreen(
                                                new Vector3(
                                                    Helper.CenterOfVectors(x).X,
                                                    Helper.CenterOfVectors(x).Y,
                                                    Helper.CenterOfVectors(x).Z));

                                        Drawing.DrawText(aX.X - 15, aX.Y - 15, eList.Color, eList.ChampionName + eList.SpellName);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
Exemple #19
0
        private static void OnDraw(EventArgs args)
        {
            if(!Config.Drawings.Enabled)
                return;

            if (Config.Drawings.DrawW && SpellManager.W.IsLearned)
                Circle.Draw(SpellManager.W.IsReady() ? SharpDX.Color.GreenYellow : SharpDX.Color.Red, SpellManager.W.Range, Config.Drawings.DrawingBorderWidth, Player.Instance.Position);

            if (Config.Drawings.DrawE && SpellManager.E.IsLearned)
                Circle.Draw(SpellManager.E.IsReady() ? SharpDX.Color.DeepPink : SharpDX.Color.Red, SpellManager.E.Range, Config.Drawings.DrawingBorderWidth, Player.Instance.Position);

            if (!Config.Drawings.DrawQPosition)
                return;

            var end = new Vector3();
            var position = new Vector3();
            var start = new Vector3();

            if (QOrbMissile != null)
            {
                start = Player.Instance.ServerPosition;
                position = QOrbMissile.Position;
                end = QOrbMissile.EndPosition;
            }
            else if(QReturnMissile != null)
            {
                start = QReturnMissile.StartPosition;
                position = QReturnMissile.Position;
                end = Player.Instance.ServerPosition;
            }

            if (end == Vector3.Zero)
                return;

            var polygon1 = new Geometry.Polygon.Rectangle(start.To2D(), end.To2D(), 150);
            polygon1.Draw(Color.White);
            var polygon2 = new Geometry.Polygon.Rectangle(start.To2D(), end.To2D(), 100);
            polygon2.Draw(Color.GreenYellow);

            var direction = (end - start).Normalized().To2D();
            var x = Drawing.WorldToScreen((position.To2D() + 90 * direction.Perpendicular()).To3D());
            var y = Drawing.WorldToScreen((position.To2D() - 100 * direction.Perpendicular()).To3D());

            Drawing.DrawLine(x.X, x.Y, y.X, y.Y, 3, Color.DeepPink);
        }
Exemple #20
0
            public static void DoBubba(AIHeroClient target = null, bool draw = false)
            {
                if (target == null)
                {
                    target = new AIHeroClient();
                    switch (RMenu.combobox("list"))
                    {
                        case 0:
                            target = Qtarget() != null
                                         ? EntityManager.Heroes.Enemies.OrderBy(e => e.Distance(user)).FirstOrDefault(e => e.PredHP(250) > R.GetDamage(e) && Qtarget().IsInRange(e.PredPos(250), 450))
                                         : EntityManager.Heroes.Enemies.OrderBy(e => e.PredPos(250).Distance(user))
                                               .FirstOrDefault(e => e.PredHP(250) > R.GetDamage(e) && WardJump.IsReady(e.ServerPosition) ? e.IsKillable(W.Range) : e.IsKillable(R.Range));
                            break;
                        case 1:
                            target = Qtarget() != null
                                         ? EntityManager.Heroes.Enemies.OrderBy(e => e.Distance(user)).FirstOrDefault(e => e.PredHP(250) > R.GetDamage(e) && Qtarget().IsInRange(e.PredPos(250), 450))
                                         : EntityManager.Heroes.Enemies.OrderBy(e => e.PredPos(250).Distance(user))
                                               .FirstOrDefault(e => e.PredHP(250) > R.GetDamage(e) && WardJump.IsReady(e.ServerPosition) ? e.IsKillable(W.Range) : e.IsKillable(R.Range));
                            break;
                        case 2:
                            target = Qtarget() != null
                                         ? EntityManager.Heroes.Enemies.OrderBy(e => e.MaxHealth).FirstOrDefault(e => e.PredHP(250) > R.GetDamage(e) && Qtarget().IsInRange(e.PredPos(250), 450))
                                         : EntityManager.Heroes.Enemies.OrderBy(e => e.MaxHealth)
                                               .FirstOrDefault(e => e.PredHP(250) > R.GetDamage(e) && WardJump.IsReady(e.ServerPosition) ? e.IsKillable(W.Range) : e.IsKillable(R.Range));
                            break;
                    }
                }

                if (target == null)
                {
                    if (!draw)
                    {
                        Orbwalker.OrbwalkTo(Game.CursorPos);
                    }

                    return;
                }

                var enemy = EntityManager.Heroes.Enemies.OrderBy(e => e.Health).FirstOrDefault(e => e.IsKillable() && !e.NetworkId.Equals(target.NetworkId) && e.IsInRange(target, 750));

                if (enemy == null)
                {
                    if (!draw)
                    {
                        Orbwalker.OrbwalkTo(Game.CursorPos);
                    }

                    return;
                }

                Pos = target.PredPos(250).Extend(enemy.PredPos(300), -275).To3D();
                var rec = new Geometry.Polygon.Rectangle(target.PredPos(200), target.PredPos(200).Extend(enemy.PredPos(250), 750), target.BoundingRadius * 2);

                if (draw)
                {
                    Circle.Draw(Color.White, 100, Pos);
                    rec.Draw(System.Drawing.Color.White, 2);
                    return;
                }

                if (!R.IsReady())
                {
                    Orbwalker.OrbwalkTo(Game.CursorPos);
                    return;
                }

                if (target.IsKillable(R.Range) || user.IsInRange(Pos, 125))
                {
                    if (Flash != null && Flash.IsReady() && !WardJump.IsReady(Pos))
                    {
                        Chat.Print("leesin debug: RFlash");
                        R.Cast(target);
                        Rflash = Core.GameTickCount;
                    }

                    if (user.IsInRange(Pos, 100))
                    {
                        Chat.Print("leesin debug: RInRange");
                        R.Cast(target);
                    }

                    foreach (var ene in EntityManager.Heroes.Enemies.Where(e => e.IsKillable(R.Range)))
                    {
                        if (ene != null)
                        {
                            var rect = new Geometry.Polygon.Rectangle(user.ServerPosition, user.ServerPosition.Extend(ene.PredPos(200), ene.BoundingRadius * 2).To3D(), 200);

                            if (EntityManager.Heroes.Enemies.Count(e => rect.IsInside(e)) > 1)
                            {
                                Chat.Print("leesin debug: Rfix");
                                R.Cast(ene);
                            }
                        }
                    }

                    if (SpellsManager.Wtimer < 1500)
                    {
                        Chat.Print("leesin debug: RpW");
                        R.Cast(target);
                    }
                }
                else
                {
                    Orbwalker.OrbwalkTo(Game.CursorPos);
                }

                if (Qtarget() != null && Qtarget().IsInRange(target, 300) && !target.IsKillable(R.Range) && !W.IsInRange(Pos) && (WardJump.IsReady(Pos) || Flash != null && Flash.IsReady())
                    && !user.IsInRange(Pos, 125))
                {
                    Chat.Print("leesin debug: qcast");
                    Q2.Cast();
                }
                else
                {
                    Orbwalker.OrbwalkTo(Game.CursorPos);
                }

                if (WardJump.IsReady(Pos) && target.IsKillable(600))
                {
                    if (!(target.IsKillable(R.Range) && Flash != null && Flash.IsReady()))
                    {
                        Chat.Print("leesin debug: WardJump");
                        WardJump.Jump(Pos, true);
                    }
                }
                else
                {
                    Orbwalker.OrbwalkTo(Game.CursorPos);
                }

                var RF = user.ServerPosition.Extend(target.ServerPosition, 600).To3D();
                if (WardJump.IsReady(target.ServerPosition) && target.IsInRange(RF, R.Range - 100))
                {
                    if (!target.IsKillable(R.Range) && Flash != null && Flash.IsReady())
                    {
                        Chat.Print("leesin debug: WardJump R Flash");
                        WardJump.Jump(RF, true);
                    }
                }
                else
                {
                    Orbwalker.OrbwalkTo(Game.CursorPos);
                }
            }
Exemple #21
0
        private static void Drawing_OnDraw(EventArgs args)
        {
            if (ObjectManager.Player.IsDead)
            {
                return;
            }

            if (!Config.Item("Enabled").GetValue <KeyBind>().Active)
            {
                return;
            }

            if (Config.Item("Draw.VayneE") != null && Config.Item("Draw.VayneE").GetValue <Circle>().Active)
            {
                foreach (
                    var e in
                    HeroManager.Enemies.Where(
                        e => e.ChampionName.ToLower() == "vayne" && e.Distance(ObjectManager.Player.Position) < 900))
                {
                    for (var i = 1; i < 8; i++)
                    {
                        var championBehind = ObjectManager.Player.Position
                                             + Vector3.Normalize(e.ServerPosition - ObjectManager.Player.Position)
                                             * (-i * 50);
                        if (Config.Item("Draw.Line").GetValue <bool>())
                        {
                            Render.Circle.DrawCircle(championBehind, 35f,
                                                     championBehind.IsWall() ? System.Drawing.Color.Red : System.Drawing.Color.Gray, 3);
                        }
                    }
                }
            }


            foreach (var e in HeroManager.Enemies.Where(e => e.IsValidTarget(2000)))
            {
                foreach (var eList in EarlyList)
                {
                    if (eList.ChampionName == e.ChampionName)
                    {
                        var menuActive = Config.Item(eList.ChampionName + eList.SpellName).GetValue <Circle>();

                        if (menuActive.Active)
                        {
                            var xminions = 0;
                            if (e.IsValidTarget(eList.Range))
                            {
                                for (var i = 1;
                                     i < e.Position.Distance(ObjectManager.Player.Position) / eList.Width;
                                     i++)
                                {
                                    var championBehind = ObjectManager.Player.Position
                                                         + Vector3.Normalize(
                                        e.ServerPosition - ObjectManager.Player.Position)
                                                         * (i * eList.Width);

                                    var list   = eList;
                                    var allies =
                                        HeroManager.Allies.Where(
                                            a => a.Distance(ObjectManager.Player.Position) < list.Range);
                                    var minions = MinionManager.GetMinions(
                                        ObjectManager.Player.Position,
                                        eList.Range,
                                        MinionTypes.All,
                                        MinionTeam.Ally);
                                    var mobs = MinionManager.GetMinions(
                                        ObjectManager.Player.Position,
                                        eList.Range,
                                        MinionTypes.All,
                                        MinionTeam.Neutral);

                                    xminions += minions.Count(m => m.Distance(championBehind) < eList.Width)
                                                + allies.Count(a => a.Distance(championBehind) < eList.Width)
                                                + mobs.Count(m => m.Distance(championBehind) < eList.Width);
                                }

                                if (xminions == 0)
                                {
                                    if (Config.Item("Draw.Line").GetValue <bool>())
                                    {
                                        var rec = new Geometry.Polygon.Rectangle(ObjectManager.Player.Position,
                                                                                 e.Position, eList.Width - 10);
                                        rec.Draw(eList.Color, 1);
                                    }

                                    if (Config.Item("Draw.Text").GetValue <bool>())
                                    {
                                        Vector3[] x  = new[] { ObjectManager.Player.Position, e.Position };
                                        var       aX =
                                            Drawing.WorldToScreen(
                                                new Vector3(
                                                    CenterOfVectors(x).X,
                                                    CenterOfVectors(x).Y,
                                                    CenterOfVectors(x).Z));
                                        DrawText(
                                            Text,
                                            vText: eList.ChampionName + " : " + eList.SpellName,
                                            vPosX: (int)aX.X - 15,
                                            vPosY: (int)aX.Y - 15,
                                            vColor: SharpDX.Color.GreenYellow);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
Exemple #22
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!!!");
                }
            }
        }
Exemple #23
0
        private static void OnDraw(EventArgs args)
        {
            if (myhero.IsDead || check(draw, "nodraw"))
            {
                return;
            }

            if (check(draw, "drawQ") && DemSpells.Q.Level > 0)
            {
                Circle.Draw
                (
                    check(draw, "nodrawc") ? (DemSpells.Q.IsOnCooldown ? SharpDX.Color.Transparent : SharpDX.Color.Yellow) : SharpDX.Color.Yellow,
                    DemSpells.Q.Range,
                    myhero.Position
                );
            }

            if (check(draw, "drawR") && DemSpells.R.Level > 0)
            {
                Circle.Draw
                (
                    check(draw, "nodrawc") ? (DemSpells.R.IsOnCooldown ? SharpDX.Color.Transparent : SharpDX.Color.Yellow) : SharpDX.Color.Yellow,
                    DemSpells.R.Range,
                    myhero.Position
                );
            }

            AIHeroClient target = TargetSelector.GetTarget(DemSpells.Q.Range, DamageType.Magical, myhero.Position);

            if (target != null)
            {
                if (DemSpells.Q.IsReady())
                {
                    /*  Prediction.Manager.PredictionOutput qpred = Prediction.Manager.GetPrediction(new Prediction.Manager.PredictionInput
                     * {
                     *    Delay = DemSpells.Q.CastDelay,
                     *    Radius = DemSpells.Q.Radius,
                     *    Range = DemSpells.Q.Range,
                     *    Speed = DemSpells.Q.Speed,
                     *    Type = SkillShotType.Linear,
                     *    From = myhero.Position,
                     *    Target = target,
                     *    CollisionTypes = { EloBuddy.SDK.Spells.CollisionType.YasuoWall }
                     * });*/

                    QDATA.Target = target;
                    var qpred = Prediction.Manager.GetPrediction(QDATA);

                    if (check(draw, "DRAWPRED"))
                    {
                        Geometry.Polygon.Rectangle Prediction = new Geometry.Polygon.Rectangle(myhero.Position.To2D(), qpred.CastPosition.To2D(), DemSpells.Q.Width);
                        Prediction.Draw(Color.Yellow, 1);
                    }

                    if (check(draw, "DRAWHIT"))
                    {
                        Drawing.DrawText(Drawing.WorldToScreen(myhero.Position).X - 50,
                                         Drawing.WorldToScreen(myhero.Position).Y + 10,
                                         Color.Yellow,
                                         "Hitchance %: ");
                        Drawing.DrawText(Drawing.WorldToScreen(myhero.Position).X + 37,
                                         Drawing.WorldToScreen(myhero.Position).Y + 10,
                                         Color.Green,
                                         qpred.HitChancePercent.ToString());
                    }
                }

                if (check(draw, "DRAWTARGET"))
                {
                    Circle.Draw(SharpDX.Color.Yellow, 50, target.Position);
                }

                if (check(draw, "DRAWWAY") && target.Path.Any())
                {
                    for (var i = 1; target.Path.Length > i; i++)
                    {
                        if (target.Path[i - 1].IsValid() && target.Path[i].IsValid() && (target.Path[i - 1].IsOnScreen() || target.Path[i].IsOnScreen()))
                        {
                            Drawing.DrawLine(Drawing.WorldToScreen(target.Position), Drawing.WorldToScreen(target.Path[i]), 3, Color.White);
                        }
                    }
                }
            }
        }
Exemple #24
0
        private static void OnGameUpdate(EventArgs args)
        {
            try
            {
                if (Player.IsDead)
                {
                    return;
                }

                // Set Target
                var QTarget = TargetSelector.GetTarget(_Q.Range, TargetSelector.DamageType.Magical);

                //Kill
                if (_MainMenu.Item("Bard_KUse_Q").GetValue <bool>())
                {
                    if (QTarget != null)
                    {
                        if (_Q.IsReady())
                        {
                            if (QTarget.Health < _Q.GetDamage(QTarget))
                            {
                                _Q.CastIfHitchanceEquals(QTarget, HitChance.High, true);
                            }
                        }
                    }
                }

                // W
                if (_MainMenu.Item("Bard_HealWMinEnable").GetValue <bool>() && !Player.IsRecalling())
                {
                    var ally = HeroManager.Allies.OrderBy(f => f.Health).FirstOrDefault(f => f.Distance(Player.Position) < _W.Range && !f.IsDead && !f.IsZombie && f.HealthPercent < _MainMenu.Item("Bard_HealWMin").GetValue <Slider>().Value);
                    if (ally != null && _W.IsReady() && !ally.InFountain(Utility.FountainType.OwnFountain))
                    {
                        _W.CastOnUnit(ally, true);
                    }
                }

                //R
                if (_MainMenu.Item("BardRKey").GetValue <KeyBind>().Active&& _R.IsReady())
                {
                    RCnt = 0;
                    var range = HeroManager.AllHeroes.OrderBy(f => Game.CursorPos.Distance(f.Position) < 340f);
                    if (range == null)
                    {
                        return;
                    }
                    foreach (var item in range)
                    {
                        RCnt++;
                    }
                    if (RCnt == 0)
                    {
                        return;
                    }
                    var target = range.FirstOrDefault(f => f.Distance(Game.CursorPos) < 340f);
                    _R.SetSkillshot(Player.Distance(target.Position) * 3400 / 1.4f, 340f, 1400f, false, SkillshotType.SkillshotCircle);
                    if (target != null)
                    {
                        _R.CastIfHitchanceEquals(target, HitChance.Medium, true);
                    }
                }

                // Combo
                if (_MainMenu.Item("CKey").GetValue <KeyBind>().Active)
                {
                    if (_MainMenu.Item("Bard_CUse_Q").GetValue <bool>() && _Q.IsReady() && QTarget != null)
                    {
                        // Sturn
                        if (_MainMenu.Item("Bard_CUse_OnlyQ").GetValue <bool>())
                        {
                            cnt = 0;
                            if (QTarget != null)
                            {
                                Range1 = new Geometry.Polygon.Rectangle(Player.Position, Player.Position.Extend(QTarget.Position, _Q.Range), _Q.Width);
                                Range1.Draw(Color.Red, 1);
                                foreach (var item in ObjectManager.Get <Obj_AI_Base>().OrderBy(f => Player.Distance(QTarget.Position)))
                                {
                                    if (Range1.IsInside(item.Position) && item.IsEnemy && !item.IsDead && (item.IsChampion() || item.IsMinion))
                                    {
                                        cnt++;
                                        if (cnt == 1)
                                        {
                                            BardQTarget1 = item;
                                        }

                                        if (cnt == 2)
                                        {
                                            BardQTarget2 = item;
                                        }
                                    }
                                }
                                if (cnt == 1)
                                {
                                    if (_Q.IsReady())
                                    {
                                        if (BardQTarget1 != null && BardQTarget1.Position.Distance(Player.Position) < _Q.Range)
                                        {
                                            if (QTarget.Name == BardQTarget1.Name)
                                            {
                                                if (BardQTarget1.Position.Extend(ObjectManager.Player.Position, -450).IsWall())
                                                {
                                                    _Q.CastIfHitchanceEquals(QTarget, Hitchance("Bard_CUse_Q_Hit"), true);
                                                }
                                            }
                                        }
                                    }
                                }
                                if (cnt > 1)
                                {
                                    if (_Q.IsReady())
                                    {
                                        if (BardQTarget1.Name == QTarget.Name || BardQTarget2.Name == QTarget.Name)
                                        {
                                            _Q.CastIfHitchanceEquals(QTarget, Hitchance("Bard_CUse_Q_Hit"), true);
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            _Q.CastIfHitchanceEquals(QTarget, Hitchance("Bard_CUse_Q_Hit"), true);
                        }
                    }
                }

                // Harass
                if (_MainMenu.Item("HKey").GetValue <KeyBind>().Active || _MainMenu.Item("Bard_Auto_HEnable").GetValue <bool>())
                {
                    if (_MainMenu.Item("Bard_HUse_Q").GetValue <bool>() && _Q.IsReady() && QTarget != null && _MainMenu.Item("Bard_AManarate").GetValue <Slider>().Value < Player.ManaPercent)
                    {
                        // Sturn
                        if (_MainMenu.Item("Bard_HUse_OnlyQ").GetValue <bool>())
                        {
                            cnt = 0;
                            if (QTarget != null)
                            {
                                Range1 = new Geometry.Polygon.Rectangle(Player.Position, Player.Position.Extend(QTarget.Position, _Q.Range), _Q.Width);
                                foreach (var item in ObjectManager.Get <Obj_AI_Base>().OrderBy(f => Player.Distance(QTarget.Position)))
                                {
                                    if (Range1.IsInside(item.Position) && item.IsEnemy && !item.IsDead && (item.IsChampion() || item.IsMinion))
                                    {
                                        cnt++;
                                        if (cnt == 1)
                                        {
                                            BardQTarget1 = item;
                                        }

                                        if (cnt == 2)
                                        {
                                            BardQTarget2 = item;
                                        }
                                    }


                                    if (cnt == 1)
                                    {
                                        if (_Q.IsReady())
                                        {
                                            if (BardQTarget1 != null && BardQTarget1.Position.Distance(Player.Position) < _Q.Range)
                                            {
                                                if (QTarget.Name == BardQTarget1.Name)
                                                {
                                                    if (BardQTarget1.Position.Extend(ObjectManager.Player.Position, -450).IsWall())
                                                    {
                                                        _Q.CastIfHitchanceEquals(QTarget, Hitchance("Bard_CUse_Q_Hit"), true);
                                                    }
                                                }
                                            }
                                        }
                                    }
                                    if (cnt > 1)
                                    {
                                        if (_Q.IsReady())
                                        {
                                            if (BardQTarget1.Name == QTarget.Name || BardQTarget2.Name == QTarget.Name)
                                            {
                                                _Q.CastIfHitchanceEquals(QTarget, Hitchance("Bard_CUse_Q_Hit"), true);
                                            }
                                        }
                                    }
                                }
                            }
                            else
                            {
                                _Q.CastIfHitchanceEquals(QTarget, Hitchance("Bard_CUse_Q_Hit"), true);
                            }
                        }
                    }
                }
            }
            catch (Exception)
            {
                if (NowTime() > ErrorTime)
                {
                    //Game.PrintChat(ChampName + " in FreshBooster isn't Load. Error Code 06");
                    ErrorTime = TickCount(10000);
                }
            }
        }