Beispiel #1
0
        public static void WtfSec()
        {
            var target = EnemyTarget;

            Orbwalker.OrbwalkTo(target.Position);

            if (target == null || !target.IsValidTarget())
            {
                return;
            }
            var allyPos = Game.CursorPos;

            if (InsecPos == new Vector3())
            {
                var insecPos = allyPos.Extend(target.Position, target.Distance(allyPos) + InsecMenu["insecDistance"].Cast <Slider>().CurrentValue);
                InsecPos   = insecPos.To3D();
                LastUpdate = Environment.TickCount;
            }
            var jumpPos = InsecTarget.Position.Extend(_Player.Position, 130).To3D();

            if (InsecTarget.HasBuffOfType(BuffType.Knockback) && InsecTarget.HasQBuff() && Program.Q.IsReady() &&
                Program.Q.Instance().Name == Program.Spells["Q2"])
            {
                Core.DelayAction(delegate
                {
                    Program.Q2.Cast();
                }
                                 , 600);
            }
            if (!Program.R.IsReady())
            {
                return;
            }
            if (_Player.Distance(InsecTarget) < Program.R.Range && _Player.Distance(InsecPos) < 400)
            {
                Program.R.Cast(InsecTarget);
                Core.DelayAction(delegate
                {
                    var spell = _Player.Spellbook.Spells.FirstOrDefault(a => a.Name.ToLower().Contains("summonerflash"));
                    if (spell == null || !spell.IsReady)
                    {
                        return;
                    }
                    _Player.Spellbook.CastSpell(spell.Slot, InsecPos);
                }, 200);
            }
            else if (Program.Q.Instance().Name == Program.Spells["Q1"] && Program.Q.IsReady())
            {
                SpellClass.SmiteQCast(InsecTarget);
                Program.LastSpellTime = Environment.TickCount;
            }
            else if (jumpPos.Distance(_Player.Position) < 600)
            {
                WardJumper.WardJump(jumpPos, false, true);
            }
        }
Beispiel #2
0
        public static void Combo()
        {
            var target = TargetSelector.GetTarget(1300, DamageType.Physical);

            if (target == null || !target.IsValidTarget())
            {
                return;
            }

            if (ComboMenu["useR"].Cast <CheckBox>().CurrentValue&& Program.R.IsReady() &&
                target.Distance(_Player) <= Program.R.Range &&
                (Damage.RDamage(target) >= target.Health + target.AttackShield || target.HasQBuff() && target.Health < Damage.RDamage(target) + Damage.Q2Damage(target, Damage.RDamage(target))))
            {
                Program.R.Cast(target);
                return;
            }

            if (ComboMenu["qBeforeExpire"].Cast <CheckBox>().CurrentValue&& Program.Q.IsReady() &&
                Program.Q.Instance().Name == Program.Spells["Q2"] && target.HasQBuff() &&
                (CastQAgain))
            {
                Program.Q2.Cast();
                return;
            }

            if (_Player.Distance(target) <= _Player.AttackRange + 100 + target.BoundingRadius &&
                Program.PassiveStacks > ComboMenu["minPassiveSliderCombo"].Cast <Slider>().CurrentValue || Program.LastSpellTime + 500 > Environment.TickCount)
            {
                return;
            }

            if (Program.Q.IsReady() &&
                Program.Q.Instance().Name == Program.Spells["Q2"] && target.HasQBuff() &&
                (CastQAgain && ComboMenu["qBeforeExpire"].Cast <CheckBox>().CurrentValue
                 ||
                 ComboMenu["qOutOfRange"].Cast <CheckBox>().CurrentValue&&
                 _Player.Distance(target) > _Player.GetAutoAttackRange(target)
                 ||
                 ComboMenu["qExecute"].Cast <CheckBox>().CurrentValue&&
                 Damage.Q2Damage(target) > target.Health + target.AttackShield))
            {
                Program.Q2.Cast();
                Program.LastSpellTime = Environment.TickCount;
                return;
            }
            if (ComboMenu["useQ1"].Cast <CheckBox>().CurrentValue&& Program.Q.IsReady() &&
                Program.Q.Instance().Name == Program.Spells["Q1"] && target.Distance(_Player) < Program.Q.Range)
            {
                SpellClass.SmiteQCast(target);
                return;
            }
            if (ComboMenu["useE2"].Cast <CheckBox>().CurrentValue&& Program.E.IsReady() &&
                Program.E.Instance().Name == Program.Spells["E2"] &&
                target.Distance(_Player) < Program.E2.Range && _Player.Distance(target) > _Player.AttackRange ||
                Program.PassiveStacks == 0 &&
                target.HasEBuff() && target.Distance(_Player) < 600)
            {
                Program.E.Cast();
                return;
            }
            if (ComboMenu["useE1"].Cast <CheckBox>().CurrentValue&& Program.E.IsReady() &&
                Program.E.Instance().Name == Program.Spells["E1"] && target.Distance(_Player) < 430)
            {
                Program.E.Cast();
                return;
            }

            if (ComboMenu["useW2"].Cast <CheckBox>().CurrentValue&&  target.Distance(_Player) <= Player.Instance.GetAutoAttackRange(target) && Program.W.IsReady() &&
                Program.W.Instance().Name == Program.Spells["W2"])
            {
                var unit =
                    ObjectManager
                    .Get <Obj_AI_Base>(
                        ).FirstOrDefault(a => a.Distance(target) < Player.Instance.GetAutoAttackRange(target) && a.IsAlly &&
                                         a.Distance(target) < Player.Instance.Distance(target) && a.Distance(Player.Instance) < Program.W.Range);
                if (unit != null)
                {
                    Player.CastSpell(SpellSlot.W, Player.Instance);
                    Program.LastSpellTime = Environment.TickCount;
                    return;
                }
            }
            if (target.Distance(_Player) <= Player.Instance.GetAutoAttackRange(target) &&
                ComboMenu["useW1"].Cast <CheckBox>().CurrentValue&& Program.W.IsReady() &&
                Program.W.Instance().Name == Program.Spells["W1"] && Program.LastSpellTime + 200 < Environment.TickCount)
            {
                Player.CastSpell(SpellSlot.W, Player.Instance);
                Program.LastSpellTime = Environment.TickCount;
            }
            if (ComboMenu["wCatchUp"].Cast <CheckBox>().CurrentValue&& target.Distance(_Player) > 430 && Program.W.IsReady() &&
                Program.W.Instance().Name == Program.Spells["W1"] && Program.LastSpellTime + 200 < Environment.TickCount)
            {
                var unit =
                    ObjectManager
                    .Get <Obj_AI_Base>(
                        ).FirstOrDefault(a => a.Distance(target) < Player.Instance.GetAutoAttackRange(target) && a.IsAlly &&
                                         a.Distance(target) < Player.Instance.Distance(target) && a.Distance(Player.Instance) < Program.W.Range);
                if (unit != null)
                {
                    Player.CastSpell(SpellSlot.W, unit);
                    Program.LastSpellTime = Environment.TickCount;
                }
            }
        }
Beispiel #3
0
        public static void Insec()
        {
            var target = EnemyTarget;

            Orbwalker.OrbwalkTo(InsecMenu["insecPositionMode"].Cast <Slider>().CurrentValue == 1 && target != null || GetBestInsecPos() == Game.CursorPos && target != null ? target.Position : Game.CursorPos);


            if (target == null || !target.IsValidTarget())
            {
                return;
            }
            var allyPos = GetBestInsecPos();

            if (InsecPos == new Vector3())
            {
                var insecPos = allyPos.Extend(target.Position, target.Distance(allyPos) + InsecMenu["insecDistance"].Cast <Slider>().CurrentValue).To3D();
                InsecPos   = insecPos;
                LastUpdate = Environment.TickCount;
            }
            if (!Program.R.IsReady())
            {
                StateManager.Combo();
                return;
            }

            if (_Player.Distance(InsecPos) < 200)
            {
                Program.R.Cast(target);
                return;
            }
            if (_Player.Distance(InsecPos) < 600)
            {
                if (WardJumper.GetWardSlot() == null && InsecPos.Distance(_Player.Position) < 400 &&
                    WardJumper.LastWard + 1000 < Environment.TickCount)
                {
                    var spell =
                        _Player.Spellbook.Spells.FirstOrDefault(a => a.Name.ToLower().Contains("summonerflash"));
                    if (InsecMenu["useFlash"].Cast <CheckBox>().CurrentValue&& spell != null && spell.IsReady)
                    {
                        _Player.Spellbook.CastSpell(spell.Slot, InsecPos);
                        return;
                    }
                }
                WardJumper.WardJump(InsecPos, false, true);
            }
            if (Program.Q.Instance().Name == Program.Spells["Q2"] && Extended.BuffedEnemy != null &&
                (Extended.BuffedEnemy.Distance(_Player) < 1400 && Program.Q.IsReady() &&
                 (target.HasQBuff() || Extended.BuffedEnemy.Distance(InsecPos) < 600)))
            {
                Program.Q2.Cast();
            }
            if (Program.Q.Instance().Name == Program.Spells["Q1"] && Program.Q.IsReady() && target.Distance(_Player) < Program.Q.Range)
            {
                if (!SpellClass.SmiteQCast(target) && InsecMenu["checkAllUnits"].Cast <CheckBox>().CurrentValue)
                {
                    foreach (
                        var unit in
                        EntityManager.MinionsAndMonsters.EnemyMinions.Where(
                            a => a.Distance(_Player) < Program.Q.Range && a.Distance(InsecPos) < 550)
                        )
                    {
                        var pred = Program.Q.GetPrediction(unit);
                        if (pred.HitChance > HitChance.Medium)
                        {
                            continue;
                        }
                        Program.Q.Cast(pred.CastPosition);
                        break;
                    }
                }
            }
        }