コード例 #1
0
 private static void Killsteal()
 {
     if (Spells._q.IsReady())
     {
         // R range because auto-gapclose! (Yes, i'm smart. Give Contrib pls)
         var targets = HeroManager.Enemies.Where(x => x.IsValidTarget(Spells._r.Range) && !x.IsZombie);
         foreach (var target in targets)
         {
             if (target.Health < Spells._q.GetDamage(target) && Logic.InQRange(target))
             {
                 Spells._q.Cast(target);
             }
         }
     }
     if (Spells._r.IsReady() && Spells._r.Instance.Name == IsSecondR)
     {
         var targets =
             HeroManager.Enemies.Where(x => x.IsValidTarget(Spells._r.Range + Spells._e.Range) && !x.IsZombie);
         foreach (var target in targets)
         {
             if (target.Health < Spells._r.GetDamage(target) && !target.IsInvulnerable &&
                 (Player.Distance(target.Position) <= 1870) && (Player.Distance(target.Position) >= 1600))
             {
                 Spells._e.Cast(target);
                 Utility.DelayAction.Add(60, () => Spells._r.Cast(target));
             }
         }
     }
     if (Spells._w.IsReady())
     {
         var targets = HeroManager.Enemies.Where(x => x.IsValidTarget(Spells._r.Range) && !x.IsZombie);
         foreach (var target in targets)
         {
             if (target.Health < Spells._w.GetDamage(target) && Logic.InWRange(target))
             {
                 Spells._w.Cast();
             }
         }
     }
     if (Spells._r.IsReady() && Spells._r.Instance.Name == IsSecondR)
     {
         var targets = HeroManager.Enemies.Where(x => x.IsValidTarget(Spells._r.Range) && !x.IsZombie);
         foreach (var target in targets)
         {
             if (target.Health < Dmg.Rdame(target, target.Health) && !target.IsInvulnerable)
             {
                 Spells._r.Cast(target.Position);
             }
         }
     }
     if (Spells.Ignite.IsReady())
     {
         var target = TargetSelector.GetTarget(600f, DamageType.True);
         if (target.IsValidTarget(600f) && Dmg.IgniteDamage(target) >= target.Health)
         {
             Player.Spellbook.CastSpell(Spells.Ignite, target);
         }
     }
 }
コード例 #2
0
        private static void OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            var spellName = args.SData.Name;

            if (!sender.IsMe || !Orbwalking.IsAutoAttack(spellName))
            {
                return;
            }

            if (args.Target is Obj_AI_Minion)
            {
                Lane.LaneLogic();
            }

            var @base = args.Target as Obj_AI_Turret;

            if (@base != null)
            {
                if (@base.IsValid && args.Target != null && Spells._q.IsReady() && MenuConfig.LaneQ &&
                    Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear))
                {
                    Spells._q.Cast(@base);
                }
            }

            var hero = args.Target as AIHeroClient;

            if (hero == null)
            {
                return;
            }
            var target = hero;

            if (Spells._r.IsReady() && Spells._r.Instance.Name == IsSecondR)
            {
                if (target.Health < Dmg.Rdame(target, target.Health) + Player.GetAutoAttackDamage(target) &&
                    target.Health > Player.GetAutoAttackDamage(target))
                {
                    Spells._r.Cast(target.Position);
                }
            }
            if (Spells._w.IsReady())
            {
                if (target.Health < Spells._w.GetDamage(target) + Player.GetAutoAttackDamage(target) &&
                    target.Health > Player.GetAutoAttackDamage(target))
                {
                    Spells._w.Cast();
                }
            }
            if (Spells._q.IsReady())
            {
                if (target.Health < Spells._q.GetDamage(target) + Player.GetAutoAttackDamage(target) &&
                    target.Health > Player.GetAutoAttackDamage(target))
                {
                    Spells._q.Cast(target);
                }
            }

            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo))
            {
                if (Spells._e.IsReady())
                {
                    Spells._e.Cast(target.Position);
                }

                if (Spells._w.IsReady() && Logic.InWRange(target))
                {
                    Spells._w.Cast();
                }

                if (Spells._q.IsReady())
                {
                    Logic.ForceItem();
                    Utility.DelayAction.Add(0, () => Logic.ForceCastQ(target));
                }
            }


            if (MenuConfig.fastHKey)
            {
                if (HasTitan())
                {
                    CastTitan();
                    return;
                }
                if (Spells._w.IsReady() && Logic.InWRange(target))
                {
                    Logic.ForceItem();
                    Utility.DelayAction.Add(1, Logic.ForceW);
                    Utility.DelayAction.Add(2, () => Logic.ForceCastQ(target));
                }
                else if (Spells._q.IsReady())
                {
                    Logic.ForceItem();
                    Utility.DelayAction.Add(1, () => Logic.ForceCastQ(target));
                }
                else if (Spells._e.IsReady() && !Orbwalking.InAutoAttackRange(target) && !Logic.InWRange(target))
                {
                    Spells._e.Cast(target.Position);
                }
            }

            if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Harass))
            {
                if (HasTitan())
                {
                    CastTitan();
                    return;
                }
                if (_qstack == 2 && Spells._q.IsReady())
                {
                    Logic.ForceItem();
                    Utility.DelayAction.Add(1, () => Logic.ForceCastQ(target));
                }
            }

            if (!MenuConfig.burstKey)
            {
                if (HasTitan())
                {
                    CastTitan();
                    return;
                }
                if (Spells._w.IsReady())
                {
                    Spells._w.Cast(target.Position);
                }
                if (Spells._r.IsReady() && Spells._r.Instance.Name == IsSecondR)
                {
                    Logic.ForceItem();
                    Utility.DelayAction.Add(1, Logic.ForceR2);
                }
                else if (Spells._q.IsReady())
                {
                    Logic.ForceItem();
                    Utility.DelayAction.Add(1, () => Logic.ForceCastQ(target));
                }
            }
        }