Beispiel #1
0
        private void FlashStunRawr()
        {
            if (!Flash_Ready())
            {
                Combo();
            }

            var target = TargetSelector.GetTarget(1000, TargetSelector.DamageType.Magical);

            if (!FlashStunCondition(target))
            {
                return;
            }

            var pred = R2.GetPrediction(target, true);

            if (Player.Distance(target) > 600)
            {
                Player.Spellbook.CastSpell(_flashSlot, pred.CastPosition);
                if (StunCount() == 3)
                {
                    E.Cast(packets());
                }
                Utility.DelayAction.Add(50, () => R2.Cast(pred.CastPosition, packets()));
                Utility.DelayAction.Add(100, () => W.Cast(pred.CastPosition, packets()));
            }
        }
Beispiel #2
0
        private float Get_R_Dmg(Obj_AI_Hero target)
        {
            double dmg = 0;

            dmg += Player.GetSpellDamage(target, SpellSlot.R);

            var rPred          = R2.GetPrediction(target);
            var collisionCount = rPred.CollisionObjects.Count;

            if (collisionCount >= 7)
            {
                dmg = dmg * .3;
            }
            else if (collisionCount != 0)
            {
                dmg = dmg * ((10 - collisionCount) / 10);
            }

            //Game.PrintChat("collision: " + collisionCount);
            return((float)dmg);
        }
Beispiel #3
0
        private void CastSingleR()
        {
            var target = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Magical);

            if (target == null)
            {
                return;
            }

            var vector1 = target.ServerPosition - Vector3.Normalize(target.ServerPosition - Player.ServerPosition) * 300;

            R2.UpdateSourcePosition(vector1, vector1);

            var pred = R2.GetPrediction(target, true);

            if (Player.Distance(target) < 400)
            {
                var midpoint = (Player.ServerPosition + pred.UnitPosition) / 2;

                vector1 = midpoint + Vector3.Normalize(pred.UnitPosition - Player.ServerPosition) * 800;
                var vector2 = midpoint - Vector3.Normalize(pred.UnitPosition - Player.ServerPosition) * 300;

                if (!IsPassWall(pred.UnitPosition, vector1) && !IsPassWall(pred.UnitPosition, vector2))
                {
                    CastR(vector1, vector2);
                }
            }
            else if (!IsPassWall(pred.UnitPosition, vector1) && !IsPassWall(pred.UnitPosition, pred.CastPosition))
            {
                //wall check
                if (pred.Hitchance >= HitChance.Medium)
                {
                    CastR(vector1, pred.CastPosition);
                }
            }
        }
Beispiel #4
0
        private static void Game_OnUpdate()
        {
            if (Player.IsDead || MenuGUI.IsChatOpen())
            {
                return;
            }
            switch (Misc.Orbwalker.Mode)
            {
            case OrbwalkingMode.Combo:
                Combo();
                break;

            case OrbwalkingMode.Mixed:
                Harass();
                break;

            case OrbwalkingMode.Laneclear:
                LaneClear();
                JungleClear();
                break;
            }

            if (R.Ready && Main["combo"]["rKS"].As <MenuBool>().Enabled)
            {
                var target = GetBestEnemyHeroTargetInRange(R.Range);
                if (target != null && !Player.HasBuff("JarvanIVCataclysm"))
                {
                    if (target.Health < RDamage(target) && !Check(target))
                    {
                        if (Player.Distance(target.ServerPosition) < 650 && (Player.Distance(target.ServerPosition) > 450 && !E.Ready && !Q.Ready || Player.HealthPercent() < 15))
                        {
                            R.Cast(target);
                        }
                        if (Player.Distance(target.ServerPosition) > 870 && Player.Health > target.Health && target.CountEnemyHeroesInRange(700) <= 2)
                        {
                            FullCombo();
                        }
                    }
                }
            }
            if (Main["combo"]["autoR"].As <MenuSliderBool>().Enabled&& R.Ready)
            {
                var target = GetBestEnemyHeroTargetInRange(R.Range);
                if (target != null && !Player.HasBuff("JarvanIVCataclysm"))
                {
                    if (GameObjects.EnemyHeroes.Count(t => t.IsValidTarget(R2.Width, false, true, R2.GetPrediction(target).CastPosition)) >= Main["combo"]["autoR"].As <MenuSliderBool>().Value)
                    {
                        R.CastOnUnit(target);
                    }
                }
            }
            if (R.Ready && Main["combo"]["r"].As <MenuKeyBind>().Enabled)
            {
                var target = GetBestEnemyHeroTargetInRange(R.Range);
                if (target != null && !Player.HasBuff("JarvanIVCataclysm"))
                {
                    R.CastOnUnit(target);
                }
            }
            if (Main["combo"]["eqrKey"].As <MenuKeyBind>().Enabled)
            {
                FullCombo();
            }
            if (Main["combo"]["eqfKey"].As <MenuKeyBind>().Enabled)
            {
                EqFlash();
            }
            if (Main["combo"]["fleeKey"].As <MenuKeyBind>().Enabled)
            {
                if (Q.Ready && E.Ready && Player.Mana > Player.SpellBook.GetSpell(SpellSlot.E).Cost + Player.SpellBook.GetSpell(SpellSlot.Q).Cost)
                {
                    E.Cast(Game.CursorPos);
                    Q.Cast(Game.CursorPos);
                }
            }
            if (Main["harass"]["autoH"].As <MenuBool>().Enabled&& Misc.Orbwalker.Mode != OrbwalkingMode.Combo && Misc.Orbwalker.Mode != OrbwalkingMode.Mixed)
            {
                Harass();
            }
        }
Beispiel #5
0
        public static void Combo()
        {
            var target = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);

            if (target != null)
            {
                if (Menu.Config.Item("q.combo").IsActive())
                {
                    if (Q.CanCast(target))
                    {
                        if (target.IsMoving && target.Path.ToList().Count >= 2)
                        {
                            //var qpred = Q.GetPrediction(target);
                            var x = target.Position.Extend(Prediction.GetPrediction(target, Q.Delay).UnitPosition, 300);

                            if (Q.IsInRange(x))
                            {
                                Q.Cast(x);
                                return;
                            }
                        }

                        var qpred = Q.GetPrediction(target);
                        if (qpred.Hitchance >= HitChance.Dashing)
                        {
                            Q.Cast(qpred.CastPosition);
                        }
                    }
                }

                if (Menu.Config.Item("e.combo").IsActive())
                {
                    if (E.IsReady() && Player.IsFacing(target))
                    {
                        E.Cast(target);
                    }
                }
            }

            if (Menu.Config.Item("r.combo").IsActive() && Menu.Config.Item("r.combo.stacks").GetValue <Slider>().Value < R.Instance.Ammo)
            {
                if (R.IsReady())
                {
                    var r2 = Player.HasBuff("corkimissilebarragecounterbig");
                    if (!r2)
                    {
                        var rtarget = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Magical);
                        if (rtarget == null)
                        {
                            return;
                        }
                        var pred = R.GetPrediction(rtarget);
                        if (R.CanCast(rtarget))
                        {
                            switch (pred.Hitchance)
                            {
                            case HitChance.High:
                            case HitChance.VeryHigh:
                            case HitChance.Immobile:
                                R.Cast(pred.CastPosition);
                                break;

                            case HitChance.Collision:
                                var colliding =
                                    pred.CollisionObjects.OrderBy(o => o.Distance(Player.ServerPosition)).ToList();
                                if (colliding[0].Distance(rtarget.ServerPosition) <= 200 + colliding[0].BoundingRadius)
                                {
                                    R.Cast(pred.CastPosition);
                                }
                                break;
                            }
                        }
                    }
                    else
                    {
                        var rtarget = TargetSelector.GetTarget(R2.Range, TargetSelector.DamageType.Magical);
                        if (rtarget == null)
                        {
                            return;
                        }
                        var pred = R2.GetPrediction(rtarget);
                        if (R2.CanCast(rtarget))
                        {
                            switch (pred.Hitchance)
                            {
                            case HitChance.High:
                            case HitChance.VeryHigh:
                            case HitChance.Immobile:
                                R2.Cast(pred.CastPosition);
                                break;

                            case HitChance.Collision:
                                var colliding =
                                    pred.CollisionObjects.OrderBy(o => o.Distance(Player.ServerPosition)).ToList();
                                if (colliding[0].Distance(rtarget.ServerPosition) <= 200 + colliding[0].BoundingRadius)
                                {
                                    R.Cast(pred.CastPosition);
                                }
                                break;
                            }
                        }
                    }
                }
            }
        }
Beispiel #6
0
        private static void Game_OnTick(EventArgs args)
        {
            if (Menu.CheckBox(Menu.Principal, "Skin"))
            {
                var id = Menu.Slider(Menu.Principal, "SkinID");
                if (Player.Instance.SkinId != id)
                {
                    Player.Instance.SetSkinId(id);
                }
            }

            if (Ignite.Slot != SpellSlot.Unknown)
            {
                if (Ignite.IsReady() && Menu.CheckBox(Menu.Item, "Ignite"))
                {
                    foreach (var Hero in EntityManager.Heroes.Enemies.Where(x => x.IsValidTarget(Ignite.Range)).OrderBy(x => x.Health))
                    {
                        if (Hero.Health <= Player.Instance.GetSummonerSpellDamage(Hero, DamageLibrary.SummonerSpells.Ignite))
                        {
                            Ignite.Cast(Hero);
                        }
                    }
                }
            }

            if (!W.IsReady())
            {
                TTs = false;
            }

            if (TTs)
            {
                foreach (var Hero in EntityManager.Heroes.Enemies.Where(X => X.Position.Distance(Player.Instance.Position) <= Player.Instance.GetAutoAttackRange()).OrderBy(x => x.Health))
                {
                    TT = Hero;
                }

                foreach (var Minions in EntityManager.MinionsAndMonsters.EnemyMinions.Where(x => x.Position.Distance(Player.Instance.Position) <= Player.Instance.GetAutoAttackRange()).OrderBy(x => x.Health))
                {
                    TT = Minions;
                }

                foreach (var Mob in EntityManager.MinionsAndMonsters.GetJungleMonsters().Where(x => x.Position.Distance(Player.Instance.Position) <= Player.Instance.GetAutoAttackRange()).OrderBy(x => x.Health))
                {
                    TT = Mob;
                }

                if (TT != null)
                {
                    Core.DelayAction(() => Player.IssueOrder(GameObjectOrder.AttackUnit, TT), 50);
                }
            }

            if (Jungle())
            {
                var Monsters = EntityManager.MinionsAndMonsters.GetJungleMonsters().Where(X => X.IsValidTarget(E.Range + Player.Instance.GetAutoAttackRange())).OrderBy(x => x.MaxHealth).FirstOrDefault();

                if (Monsters != null)
                {
                    if (W.IsReady() && Menu.CheckBox(Menu.W, "Jungle"))
                    {
                        if (Monsters.IsValidTarget(RealW()))
                        {
                            W.Cast();
                        }
                    }

                    if (E.IsReady() && Menu.CheckBox(Menu.E, "Jungle"))
                    {
                        if (Monsters.IsValidTarget(E.Range))
                        {
                            E.Cast(Monsters.Position);
                        }
                    }
                }
            }

            if (Lane())
            {
                var Minions = EntityManager.MinionsAndMonsters.GetLaneMinions(EntityManager.UnitTeam.Enemy, Player.Instance.Position, RealW());
                var Circle  = EntityManager.MinionsAndMonsters.GetCircularFarmLocation(Minions, 200, RealW());

                if (Q.IsReady() && CountQ == 2)
                {
                    Q.Cast(Circle.CastPosition);
                }

                if (Menu.CheckBox(Menu.W, "Lane"))
                {
                    if (Circle.HitNumber >= Menu.Slider(Menu.W, "LaneMin") && W.IsReady())
                    {
                        W.Cast();
                    }
                }
            }

            if (Combo() && Target != null)
            {
                if (Menu.CheckBox(Menu.Item, "Youmuu"))
                {
                    if (Target.IsValidTarget(E.Range))
                    {
                        Use();
                    }
                }

                if (R.IsReady() && Menu.CheckBox(Menu.R, "UseR1") && R.ToggleState == 1)
                {
                    if (!IsActive && CheckR1(Target))
                    {
                        if (Target.IsValidTarget(RealW(), true) && W.IsReady())
                        {
                            Reset();
                            W.Cast();
                            R.Cast();
                        }
                        else if (Target.IsValidTarget(E.Range + Player.Instance.GetAutoAttackRange(), true) && E.IsReady())
                        {
                            E.Cast(Target.Position);
                            R.Cast();
                        }
                        else if (Target.IsValidTarget(RealQ(), true) && Q.IsReady())
                        {
                            Q.Cast(Target.Position);
                            R.Cast();
                        }
                        else
                        {
                            R.Cast();
                        }
                    }
                }

                if (R2.IsReady() && R.ToggleState >= 2)
                {
                    if (IsActive && CheckR2(Target))
                    {
                        var Pred = R2.GetPrediction(Target);

                        if (Pred.HitChance >= HitChance.High)
                        {
                            if (Target.IsValidTarget(R2.Range))
                            {
                                R2.Cast(Pred.UnitPosition);
                            }
                        }
                    }
                }

                if (Q.IsReady() && CountQ == 2)
                {
                    if (Target.IsValidTarget(RealQ(), true) && !Target.IsValidTarget(Player.Instance.GetAutoAttackRange()))
                    {
                        Q.Cast(Target.Position);
                    }

                    if (Target.IsValidTarget(RealW(), true) && W.IsReady())
                    {
                        Reset();
                        W.Cast();
                    }
                }

                if (E.IsReady())
                {
                    if (Target.IsValidTarget(E.Range + Player.Instance.GetAutoAttackRange(), true))
                    {
                        if (!Target.IsValidTarget(Player.Instance.GetAutoAttackRange()))
                        {
                            E.Cast(Target.Position);
                        }
                    }

                    if (W.IsReady() && Target.IsValidTarget(RealW()))
                    {
                        Reset();
                        W.Cast();
                    }
                }

                if (W.IsReady() && Target.IsValidTarget(RealW()))
                {
                    Reset();
                    W.Cast();
                }
            }

            if (Menu.Keybind(Menu.Misc, "Burst") || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Harass))
            {
                if (Target.IsValidTarget(E.Range + Flash.Range))
                {
                    var Pred = R2.GetPrediction(Target);
                    E.Cast(Player.Instance.Position.Extend(Target.Position, E.Range).To3D());

                    if (!IsActive)
                    {
                        R.Cast();
                    }

                    if (Flash.IsReady() && Target.Position.Distance(Player.Instance.Position) <= 650)
                    {
                        Flash.Cast(Player.Instance.Position.Extend(Target.Position, Flash.Range).To3D());
                    }

                    if (W.IsReady() && Target.IsValidTarget(RealW()))
                    {
                        Reset();
                        W.Cast();
                    }

                    if (Menu.CheckBox(Menu.Item, "Youmuu"))
                    {
                        if (Target.IsValidTarget(E.Range))
                        {
                            Use();
                        }
                    }

                    if (Q.IsReady())
                    {
                        Q.Cast(Target.Position);
                    }

                    if (IsActive)
                    {
                        R2.Cast(Target.Position);
                    }
                }
            }

            if (Flee())
            {
                if (Menu.CheckBox(Menu.Q, "Flee") && Q.IsReady())
                {
                    Q.Cast((Game.CursorPos.Distance(Player.Instance) > Q.Range ? Player.Instance.Position.Extend(Game.CursorPos, Q.Range - 1).To3D() : Game.CursorPos));
                }

                if (Menu.CheckBox(Menu.E, "Flee") && E.IsReady())
                {
                    E.Cast((Game.CursorPos.Distance(Player.Instance) > E.Range ? Player.Instance.Position.Extend(Game.CursorPos, E.Range - 1).To3D() : Game.CursorPos));
                }
            }
        }
Beispiel #7
0
        private void LogicR(Obj_AI_Base target, bool extendedR = false, bool useE = false,
                            Orbwalker.ActiveModes activeMode   = Orbwalker.ActiveModes.None)
        {
            var t = target as AIHeroClient;

            if (t == null)
            {
                return;
            }

            if (extendedR)
            {
                if (!R2.IsInRange(t) && useE)
                {
                    var dist = Player.Instance.Distance(target) - R2.Range;

                    if (dist > E.Range)
                    {
                        return;
                    }

                    var ePrediction = E.GetPrediction(target);

                    if (ePrediction.CastPosition.IsInRange(target, R2.Range))
                    {
                        E.Cast(ePrediction.CastPosition);
                    }

                    var rPrediction = R2.GetPrediction(t);

                    if (rPrediction != null && rPrediction.HitChancePercent >= 75)
                    {
                        R2.Cast(rPrediction.CastPosition);
                    }
                }
                else if (R2.IsInRange(t))
                {
                    var rPrediction = R2.GetPrediction(t);

                    if (rPrediction != null && rPrediction.HitChancePercent >= 75)
                    {
                        R2.Cast(rPrediction.CastPosition);
                    }
                }
            }
            else
            {
                if (!R.IsInRange(t) && useE)
                {
                    var dist = Player.Instance.Distance(target) - R.Range;

                    if (dist > E.Range)
                    {
                        return;
                    }

                    var ePrediction = E.GetPrediction(target);

                    if (ePrediction.CastPosition.IsInRange(target, R.Range))
                    {
                        E.Cast(ePrediction.CastPosition);
                    }

                    var rPrediction = R.GetPrediction(t);

                    if (rPrediction != null && rPrediction.HitChancePercent >= 75)
                    {
                        R.Cast(rPrediction.CastPosition);
                    }
                }
                else if (activeMode == Orbwalker.ActiveModes.Combo)
                {
                    var enemiesAroundTarget = t.CountEnemiesInRange(R.Width);

                    if (enemiesAroundTarget < ComboMenu.GetSliderValue("combo.r.aoe"))
                    {
                        return;
                    }

                    var rPrediction = R.GetPrediction(t);

                    if (rPrediction != null && rPrediction.HitChancePercent >= 75)
                    {
                        R.Cast(rPrediction.CastPosition);
                    }
                }
                else if (R.IsInRange(t))
                {
                    var rPrediction = R.GetPrediction(t);

                    if (rPrediction != null && rPrediction.HitChancePercent >= 75)
                    {
                        R.Cast(rPrediction.CastPosition);
                    }
                }
            }
        }
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_W", true).GetValue <bool>())
            {
                if (W.Level > 0)
                {
                    Render.Circle.DrawCircle(Player.Position, W.Range - 2, 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 (menu.Item("Draw_R_Pred", true).GetValue <bool>() && R.IsReady())
            {
                if (countEnemiesNearPosition(Player.ServerPosition, R.Range + 500) < 2)
                {
                    var target = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Magical);

                    if (target == null)
                    {
                        return;
                    }

                    var vector1 = target.ServerPosition - Vector3.Normalize(target.ServerPosition - Player.ServerPosition) * 300;

                    R2.UpdateSourcePosition(vector1, vector1);

                    var pred = R2.GetPrediction(target, true);

                    var midpoint = (Player.ServerPosition + pred.UnitPosition) / 2;
                    var vector2  = midpoint - Vector3.Normalize(pred.UnitPosition - Player.ServerPosition) * 300;

                    if (Player.Distance(target) < 400)
                    {
                        vector1 = midpoint + Vector3.Normalize(pred.UnitPosition - Player.ServerPosition) * 800;
                        if (!IsPassWall(pred.UnitPosition, vector1) && !IsPassWall(pred.UnitPosition, vector2))
                        {
                            Vector2 wts = Drawing.WorldToScreen(Player.Position);
                            Drawing.DrawText(wts[0], wts[1], Color.Wheat, "Hit: " + 1);

                            Vector2 wtsPlayer = Drawing.WorldToScreen(vector1);
                            Vector2 wtsPred   = Drawing.WorldToScreen(vector2);

                            Drawing.DrawLine(wtsPlayer, wtsPred, 1, Color.Wheat);
                            Render.Circle.DrawCircle(vector1, 50, Color.Aqua);
                            Render.Circle.DrawCircle(vector2, 50, Color.Yellow);
                            Render.Circle.DrawCircle(pred.UnitPosition, 50, Color.Red);
                        }
                    }
                    else if (!IsPassWall(pred.UnitPosition, vector1) && !IsPassWall(pred.UnitPosition, pred.CastPosition))
                    {
                        if (pred.Hitchance >= HitChance.Medium)
                        {
                            Vector2 wts = Drawing.WorldToScreen(Player.Position);
                            Drawing.DrawText(wts[0], wts[1], Color.Wheat, "Hit: " + 1);

                            Vector2 wtsPlayer = Drawing.WorldToScreen(vector1);
                            Vector2 wtsPred   = Drawing.WorldToScreen(pred.CastPosition);

                            Drawing.DrawLine(wtsPlayer, wtsPred, 1, Color.Wheat);
                            Render.Circle.DrawCircle(vector1, 50, Color.Aqua);
                            Render.Circle.DrawCircle(pred.CastPosition, 50, Color.Yellow);
                        }
                    }
                    return;
                }
                //-----------------------------------------------------------------Draw Ult Mec-----------------------------------------------
                int     maxHit = 0;
                Vector3 start  = Vector3.Zero;
                Vector3 end    = Vector3.Zero;
                Vector3 mid    = Vector3.Zero;
                //loop one
                foreach (var target in ObjectManager.Get <Obj_AI_Hero>().Where(x => x.IsValidTarget(R.Range)).OrderByDescending(GetComboDamage))
                {
                    //loop 2
                    foreach (
                        var enemy in
                        ObjectManager.Get <Obj_AI_Hero>()
                        .Where(
                            x =>
                            x.IsValidTarget(R.Range + 1000) && x.NetworkId != target.NetworkId &&
                            x.Distance(target) < 900)
                        .OrderByDescending(x => x.Distance(target)))
                    {
                        int hit = 2;

                        var targetPred = Prediction.GetPrediction(target, .25f);
                        var enemyPred  = Prediction.GetPrediction(enemy, .25f);

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

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

                        if (!IsPassWall(midpoint, startpos) && !IsPassWall(midpoint, endPos) && countEnemiesNearPosition(Player.ServerPosition, R.Range + 1000) > 2)
                        {
                            //loop 3
                            foreach (var enemy2 in ObjectManager.Get <Obj_AI_Hero>().Where(x => x.IsValidTarget(R.Range + 1000) && x.NetworkId != target.NetworkId && x.NetworkId != enemy.NetworkId && x.Distance(target) < 1000))
                            {
                                var enemy2Pred = Prediction.GetPrediction(enemy2, .25f);

                                Object[] obj       = VectorPointProjectionOnLineSegment(startpos.To2D(), endPos.To2D(), enemy2Pred.CastPosition.To2D());
                                var      isOnseg   = (bool)obj[2];
                                var      pointLine = (Vector2)obj[1];

                                if (pointLine.Distance(enemy2Pred.CastPosition.To2D()) < 100 + enemy2.BoundingRadius &&
                                    isOnseg)
                                {
                                    hit++;
                                }
                            }
                        }
                        if (hit > maxHit)
                        {
                            maxHit = hit;
                            start  = startpos;
                            end    = endPos;
                            mid    = midpoint;
                        }
                    }
                }

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

                    Vector2 wtsPlayer = Drawing.WorldToScreen(start);
                    Vector2 wtsPred   = Drawing.WorldToScreen(end);

                    Drawing.DrawLine(wtsPlayer, wtsPred, 1, Color.Wheat);
                    Render.Circle.DrawCircle(start, 50, Color.Aqua);
                    Render.Circle.DrawCircle(end, 50, Color.Yellow);
                    Render.Circle.DrawCircle(mid, 50, Color.Red);
                }
                //---------------------------------------------------End drawing Ult Mec---------------------------------------
            }
        }
Beispiel #9
0
        private static void Combo()
        {
            if (ComboMenu["ComboW"].Cast <CheckBox>().CurrentValue)
            {
                var t = EntityManager.Heroes.Enemies.Find(x => x.IsValidTarget(W.Range) && !x.HasBuffOfType(BuffType.SpellShield));

                if (t != null)
                {
                    if (W.IsReady() && !Orbwalker.CanAutoAttack)


                    {
                        W.Cast();
                    }

                    UseItems(t);
                    UseItems2(t);
                }
            }

            if (E.IsReady())
            {
                var t = EntityManager.Heroes.Enemies.Where(e => e.IsValidTarget(E.Range + myHero.GetAutoAttackRange()));

                if (t == null)
                {
                    return;
                }

                if (ComboMenu["ComboE"].Cast <CheckBox>().CurrentValue)
                {
                    var t1 = t.OrderByDescending(e => TargetSelector.GetPriority(e)).FirstOrDefault();

                    if (t1 != null)
                    {
                        E.Cast(t1.ServerPosition);
                    }
                }
            }

            {
                if (ComboMenu["RForce"].Cast <KeyBind>().CurrentValue)
                {
                    if (R1.IsReady())
                    {
                        if (ComboMenu["RForce"].Cast <KeyBind>().CurrentValue&& !myHero.HasBuff("RivenFengShuiEngine"))
                        {
                            var t = TargetSelector.GetTarget(700, DamageType.Physical);
                            if (t == null)
                            {
                                return;
                            }
                            if (t.Distance(myHero.ServerPosition) < E.Range + myHero.AttackRange && myHero.CountEnemiesInRange(500) >= 1)
                            {
                                R1.Cast();
                            }
                        }

                        if (myHero.HasBuff("RivenFengShuiEngine"))
                        {
                            var t = TargetSelector.GetTarget(900, DamageType.Physical);
                            if (t == null)
                            {
                                return;
                            }

                            {
                                if (ComboBox(ComboMenu, "UseRType") == 0)
                                {
                                    var target = TargetSelector.SelectedTarget;
                                    if (DamageIndicators.Rdmg(t, t.Health) > t.Health && t.IsValidTarget(R2.Range) && t.Distance(myHero.ServerPosition) < 600)
                                    {
                                        R2.Cast(t.ServerPosition);
                                    }
                                    else
                                    {
                                        CastR2 = false;
                                    }
                                }
                                else if (ComboBox(ComboMenu, "UseRType") == 1)
                                {
                                    var prediction = R2.GetPrediction(t);
                                    if (t.HealthPercent < 50 && t.Health > DamageIndicators.Rdmg(t, t.Health) + Damage.GetAutoAttackDamage(myHero, t) * 2)
                                    {
                                        R2.Cast(t.ServerPosition);
                                    }
                                    else
                                    {
                                        CastR2 = false;
                                    }
                                }

                                else if (ComboBox(ComboMenu, "UseRType") == 2)
                                {
                                    if (t.IsValidTarget(R2.Range) && t.Distance(myHero.ServerPosition) < 200)
                                    {
                                        R2.Cast(t.ServerPosition);
                                    }
                                    else
                                    {
                                        CastR2 = false;
                                    }
                                }
                                else if (ComboBox(ComboMenu, "UseRType") == 3)
                                {
                                    CastR2 = false;
                                }
                            }

                            if (CastR2)
                            {
                                R2.Cast(t);
                            }
                        }
                    }
                }
            }
        }