Ejemplo n.º 1
0
        private static void OnDraw(EventArgs args)
        {
            var myPos = Drawing.WorldToScreen(Player.Position);

            if (Config.Item("drawEnable").GetValue <bool>())
            {
                if (Config.Item("drawQ").GetValue <bool>())
                {
                    Render.Circle.DrawCircle(ObjectManager.Player.Position, Q.Range, Color.Aqua, 1);
                }

                if (Config.Item("drawW").GetValue <bool>())
                {
                    Render.Circle.DrawCircle(ObjectManager.Player.Position, W.Range, Color.Aqua, 1);
                }
                if (Config.Item("drawE").GetValue <bool>())
                {
                    Render.Circle.DrawCircle(ObjectManager.Player.Position, E.Range, Color.Aqua, 1);
                }
                if (Config.Item("drawR").GetValue <bool>())
                {
                    Render.Circle.DrawCircle(ObjectManager.Player.Position, R.Range, Color.Aqua, 1);
                }
                if (Config.Item("drawtimer").GetValue <bool>())
                {
                    foreach (var orb in OrbManager.GetOrbs(false))
                    {
                        var orbPos = Drawing.WorldToScreen(orb);
                        Drawing.DrawText(orbPos.X, orbPos.Y, Color.Lime, OrbTimer.ToString());
                    }
                }
            }
            var            enemy     = TargetSelector.GetTarget(1500, TargetSelector.DamageType.Magical);
            List <Vector2> waypoints = enemy.GetWaypoints();

            for (int i = 0; i < waypoints.Count - 1; i++)
            {
                oWp = Drawing.WorldToScreen(waypoints[i].To3D());
                nWp = Drawing.WorldToScreen(waypoints[i + 1].To3D());
                if (!waypoints[i].IsOnScreen() && !waypoints[i + 1].IsOnScreen())
                {
                    continue;
                }



                if (Config.Item("drawEpred").GetValue <bool>())
                {
                    Drawing.DrawLine(myPos.X - 25, myPos.Y - 25, nWp[0] - 25, nWp[1] - 25, 1, Color.Red);
                    Drawing.DrawLine(myPos.X + 25, myPos.Y + 25, nWp[0] + 25, nWp[1] + 25, 1, Color.Red);
                }
            }
        }
Ejemplo n.º 2
0
 public static Vector3 GetGrabableObjectPos(bool onlyOrbs)
 {
     if (onlyOrbs)
     {
         return(OrbManager.GetOrbToGrab((int)W.Range));
     }
     foreach (var minion in ObjectManager.Get <Obj_AI_Minion>().Where(minion => minion.IsValidTarget(W.Range)))
     {
         return(minion.ServerPosition);
     }
     return(OrbManager.GetOrbToGrab((int)W.Range));
 }
Ejemplo n.º 3
0
        // }
        private static void SpecialUlt()
        {
            Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos);
            var target = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Magical);

            if (GetOrbCount() == Config.Item("SpheresNumber").GetValue <Slider>().Value)
            {
                R.Cast(target);
            }
            if (Config.Item("SpheresNumber").GetValue <Slider>().Value == 4)
            {
                Q.Cast(Player.Position);
            }
            if (Config.Item("SpheresNumber").GetValue <Slider>().Value == 5)
            {
                if (Q.IsReady() && GetOrbCount() < 5)
                {
                    Q.Cast(Player.Position);
                }
            }
            if (Config.Item("SpheresNumber").GetValue <Slider>().Value == 6)
            {
                if (Q.IsReady() && GetOrbCount() < 6)
                {
                    Q.Cast(Player.Position);
                    var sphere = GetGrabableObjectPos(true);
                    if (sphere.To2D().IsValid() && Utils.TickCount - W.LastCastAttemptT > Game.Ping + 300)
                    {
                        W.Cast(sphere);
                        W.LastCastAttemptT = Utils.TickCount;
                    }
                    else if (target != null && Player.Spellbook.GetSpell(SpellSlot.W).ToggleState != 1 && W.IsReady() &&
                             Utils.TickCount - W.LastCastAttemptT > Game.Ping + 100)
                    {
                        if (OrbManager.WObject(false) != null)
                        {
                            W.From = OrbManager.WObject(false).ServerPosition;
                            W.Cast(Player, false, true);
                        }
                    }
                }
            }
            if (Config.Item("SpheresNumber").GetValue <Slider>().Value == 7)
            {
                if (Q.IsReady() && GetOrbCount() < 5)
                {
                    Q.Cast(Player.Position);
                }
                var sphere = GetGrabableObjectPos(true);
                if (sphere.To2D().IsValid() && Utils.TickCount - W.LastCastAttemptT > Game.Ping + 300)
                {
                    W.Cast(sphere);
                    W.LastCastAttemptT = Utils.TickCount;
                }
                else if (target != null && Player.Spellbook.GetSpell(SpellSlot.W).ToggleState != 1 && W.IsReady() &&
                         Utils.TickCount - W.LastCastAttemptT > Game.Ping + 100)
                {
                    if (OrbManager.WObject(false) != null)
                    {
                        W.From = OrbManager.WObject(false).ServerPosition;
                        W.Cast(Player, false, true);
                    }
                }
                if (Q.IsReady() && GetOrbCount() > 7)
                {
                    Q.Cast(Player.Position);
                }
            }
        }
Ejemplo n.º 4
0
        private static void Combo()
        {
            var target = TargetSelector.GetTarget(1300, TargetSelector.DamageType.Magical);

            if (Q.IsReady() && (Config.Item("UseQCombo").GetValue <bool>()))
            {
                var Qprediction = Q.GetPrediction(target);

                if (Qprediction.Hitchance >= HitChance.VeryHigh)
                {
                    Q.Cast(Qprediction.CastPosition);
                }
            }
            if (Player.Spellbook.GetSpell(SpellSlot.W).ToggleState == 1 && W.IsReady())
            {
                var WGrabObject = GetGrabableObjectPos(target == null);

                if (WGrabObject.To2D().IsValid() && Utils.TickCount - W.LastCastAttemptT > Game.Ping + 300)
                {
                    W.Cast(WGrabObject);
                    W.LastCastAttemptT = Utils.TickCount;
                }
                else if (target != null && Player.Spellbook.GetSpell(SpellSlot.W).ToggleState != 1 && W.IsReady() &&
                         Utils.TickCount - W.LastCastAttemptT > Game.Ping + 100)
                {
                    if (OrbManager.WObject(false) != null)
                    {
                        W.From = OrbManager.WObject(false).ServerPosition;
                        W.Cast(target, false, true);
                    }
                }
            }
            else if (target != null && Player.Spellbook.GetSpell(SpellSlot.W).ToggleState != 1 && W.IsReady() &&
                     Utils.TickCount - W.LastCastAttemptT > Game.Ping + 100)
            {
                if (OrbManager.WObject(false) != null)
                {
                    W.From = OrbManager.WObject(false).ServerPosition;
                    W.Cast(target, false, true);
                }
            }
            if (E.IsReady() && (Config.Item("UseECombo").GetValue <bool>()))
            {
                foreach (var orb in OrbManager.GetOrbs(true))
                {
                    if (Player.Distance(orb) < E.Range + 100)
                    {
                        var startPoint = orb.To2D().Extend(Player.ServerPosition.To2D(), 100);
                        var endPoint   = Player.ServerPosition.To2D()
                                         .Extend(orb.To2D(), Player.Distance(orb) > 200 ? 1300 : 1000);
                        QE.Delay = E.Delay + Player.Distance(orb) / E.Speed;
                        QE.From  = orb;
                        var enemyPred = QE.GetPrediction(target);
                        if (enemyPred.Hitchance >= HitChance.VeryHigh &&
                            enemyPred.UnitPosition.To2D().Distance(startPoint, endPoint, false) <
                            QE.Width + target.BoundingRadius)
                        {
                            E.Cast(orb, true);
                            W.LastCastAttemptT = Utils.TickCount;
                            return;
                        }
                    }
                }
            }
            if (E.IsReady() && Q.IsReady() && (Config.Item("UseQECombo").GetValue <bool>()))
            {
                QE.Delay = E.Delay + Q.Range / E.Speed;
                QE.From  = Player.ServerPosition.To2D().Extend(target.ServerPosition.To2D(), Q.Range).To3D();

                var prediction = QE.GetPrediction(target);
                if (prediction.Hitchance >= HitChance.High)
                {
                    Q.Cast(Player.ServerPosition.To2D().Extend(prediction.CastPosition.To2D(), Q.Range - 100));
                    QET = Utils.TickCount;
                    W.LastCastAttemptT = Utils.TickCount;
                }
            }
            if (R.IsReady() && (Config.Item("UseRCombo").GetValue <bool>()))
            {
                if (target.Health < R.GetDamage(target))
                {
                    R.Cast(target);
                }
            }
        }
Ejemplo n.º 5
0
 private static int GetOrbCount()
 {
     OrbManager.GetOrbs().Count();
     return(OrbManager.GetOrbs().Count());
 }
Ejemplo n.º 6
0
        private static void Combo()
        {
            var target = TargetSelector.GetTarget(1300, TargetSelector.DamageType.Magical);

            if (Q.IsReady() && (Config.Item("UseQCombo").GetValue <bool>()))
            {
                var Qprediction = Q.GetPrediction(target);

                if (Qprediction.Hitchance >= HitChance.VeryHigh)
                {
                    Q.Cast(Qprediction.CastPosition);
                }
            }
            if (Player.Spellbook.GetSpell(SpellSlot.W).ToggleState == 1 && W.IsReady() && Config.Item("UseWCombo").GetValue <bool>())
            {
                foreach (var enemy in HeroManager.Enemies.Where(x => x.IsValidTarget(W.Range + W.Width) && W.GetPrediction(x).Hitchance >= HitChance.High))
                {
                    UseW(enemy, enemy);
                }
            }
            if (E.IsReady() && (Config.Item("UseECombo").GetValue <bool>()))
            {
                foreach (var orb in OrbManager.GetOrbs(true))
                {
                    if (Player.Distance(orb) < E.Range + 100)
                    {
                        var startPoint = orb.To2D().Extend(Player.ServerPosition.To2D(), 100);
                        var endPoint   = Player.ServerPosition.To2D()
                                         .Extend(orb.To2D(), Player.Distance(orb) > 200 ? 1300 : 1000);
                        QE.Delay = E.Delay + Player.Distance(orb) / E.Speed;
                        QE.From  = orb;
                        var enemyPred = QE.GetPrediction(target);
                        if (enemyPred.Hitchance >= HitChance.VeryHigh &&
                            enemyPred.UnitPosition.To2D().Distance(startPoint, endPoint, false) <
                            QE.Width + target.BoundingRadius)
                        {
                            E.Cast(orb, true);
                            W.LastCastAttemptT = Utils.TickCount;
                            return;
                        }
                    }
                }
            }
            if (E.IsReady() && Q.IsReady() && (Config.Item("UseQECombo").GetValue <bool>()))
            {
                QE.Delay = E.Delay + Q.Range / E.Speed;
                QE.From  = Player.ServerPosition.To2D().Extend(target.ServerPosition.To2D(), Q.Range).To3D();

                var prediction = QE.GetPrediction(target);
                if (prediction.Hitchance >= HitChance.High)
                {
                    Q.Cast(Player.ServerPosition.To2D().Extend(prediction.CastPosition.To2D(), Q.Range - 100));
                    QET = Utils.TickCount;
                    W.LastCastAttemptT = Utils.TickCount;
                }
            }
            if (R.IsReady() && (Config.Item("UseRCombo").GetValue <bool>()))
            {
                if (target.Health < R.GetDamage(target))
                {
                    R.Cast(target);
                }
            }
        }