示例#1
0
        private static float ComboDamage(AIHeroClient hero)
        {
            double damage = 0;

            if (Q.IsReady())
            {
                damage += Damage.LSGetSpellDamage(player, hero, SpellSlot.Q);
            }
            if (W.IsReady())
            {
                damage += Damage.LSGetSpellDamage(player, hero, SpellSlot.W);
            }
            if (E.IsReady())
            {
                damage += Damage.LSGetSpellDamage(player, hero, SpellSlot.E);
            }
            if (R.IsReady())
            {
                if (getCheckBoxItem(drawingsMenu, "rDamage"))
                {
                    damage += Damage.LSGetSpellDamage(player, hero, SpellSlot.R) * 15;
                }
            }


            var ignitedmg = player.GetSummonerSpellDamage(hero, Damage.SummonerSpell.Ignite);

            if (player.Spellbook.CanUseSpell(player.GetSpellSlot("summonerdot")) == SpellState.Ready &&
                hero.Health < damage + ignitedmg)
            {
                damage += ignitedmg;
            }
            return((float)damage);
        }
示例#2
0
        public static bool checkFuryMode(SpellSlot spellSlot, Obj_AI_Base target)
        {
            if (Damage.LSGetSpellDamage(player, target, spellSlot) > target.Health)
            {
                return(true);
            }
            if (canBeOpWIthQ(player.Position))
            {
                return(false);
            }
            if (!fury)
            {
                return(true);
            }
            if (ObjectManager.Player.Spellbook.IsAutoAttacking)
            {
                return(false);
            }
            switch (getBoxItem(comboMenu, "furyMode"))
            {
            case 0:
                return(true);

                break;

            case 1:
                if (spellSlot != SpellSlot.Q && Q.IsReady())
                {
                    return(false);
                }
                break;

            case 2:
                if (spellSlot != SpellSlot.W && (W.IsReady() || renw))
                {
                    return(false);
                }
                break;

            case 3:
                if (spellSlot != SpellSlot.E && rene)
                {
                    return(false);
                }
                break;

            default:
                return(true);

                break;
            }
            return(false);
        }
示例#3
0
        private void Clear()
        {
            var perc = getSliderItem(menuLC, "minmana") / 100f;

            if (player.Mana < player.MaxMana * perc)
            {
                return;
            }
            var bestpos =
                W.GetCircularFarmLocation(
                    MinionManager.GetMinions(W.Range, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.MaxHealth),
                    100);

            if (getCheckBoxItem(menuLC, "usewLC") && W.IsReady() &&
                getSliderItem(menuLC, "usewLChit") <= bestpos.MinionsHit)
            {
                W.Cast(bestpos.Position, getCheckBoxItem(config, "packets"));
            }
            var target =
                MinionManager.GetMinions(E.Range, MinionTypes.All, MinionTeam.NotAlly)
                .Where(i => i.Health <E.GetDamage(i) || i.Health> 500f)
                .OrderByDescending(i => i.Distance(player))
                .FirstOrDefault();

            if (getCheckBoxItem(menuLC, "useeLC") && E.CanCast(target))
            {
                E.CastOnUnit(target, getCheckBoxItem(config, "packets"));
            }
            if (getCheckBoxItem(menuLC, "useqLC") && Q.IsReady())
            {
                var targetQ =
                    MinionManager.GetMinions(Q.Range, MinionTypes.All, MinionTeam.NotAlly)
                    .Where(
                        i =>
                        (i.Health < Damage.LSGetSpellDamage(player, i, SpellSlot.Q) &&
                         !(i.Health < player.GetAutoAttackDamage(i))))
                    .OrderByDescending(i => i.Health)
                    .FirstOrDefault();
                if (targetQ == null)
                {
                    return;
                }
                Q.Cast(getCheckBoxItem(config, "packets"));
                Player.IssueOrder(GameObjectOrder.AutoAttack, targetQ);
            }
        }
示例#4
0
 private static float ComboDamage(AIHeroClient hero)
 {
     double damage = 0;
     if (Q.IsReady())
     {
         damage += Damage.LSGetSpellDamage(player, hero, SpellSlot.Q);
     }
     if (E.IsReady())
     {
         damage += Damage.LSGetSpellDamage(player, hero, SpellSlot.E);
     }
     //damage += ItemHandler.GetItemsDamage(target);
     var ignitedmg = player.GetSummonerSpellDamage(hero, Damage.SummonerSpell.Ignite);
     if (player.Spellbook.CanUseSpell(player.GetSpellSlot("summonerdot")) == SpellState.Ready &&
         hero.Health < damage + ignitedmg)
     {
         damage += ignitedmg;
     }
     return (float)damage;
 }
示例#5
0
        private static void Combo()
        {
            AIHeroClient target = TargetSelector.GetTarget(E.Range * 2, DamageType.Physical);

            if (target == null)
            {
                return;
            }
            bool hasIgnite   = player.Spellbook.CanUseSpell(player.GetSpellSlot("SummonerDot")) == SpellState.Ready;
            var  FuryQ       = Damage.LSGetSpellDamage(player, target, SpellSlot.Q) * 0.5;
            var  FuryW       = Damage.LSGetSpellDamage(player, target, SpellSlot.W) * 0.5;
            var  eDmg        = Damage.LSGetSpellDamage(player, target, SpellSlot.E);
            var  combodamage = ComboDamage(target);

            if (getCheckBoxItem(comboMenu, "useIgnite") && hasIgnite &&
                player.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite) > target.Health)
            {
                player.Spellbook.CastSpell(player.GetSpellSlot("SummonerDot"), target);
            }
            if (player.LSDistance(target) > E.Range && E.IsReady() && (W.IsReady() || Q.IsReady()) && lastE.Equals(0) &&
                getCheckBoxItem(comboMenu, "usee"))
            {
                var closeGapTarget =
                    MinionManager.GetMinions(E.Range, MinionTypes.All, MinionTeam.NotAlly)
                    .Where(i => i.LSDistance(target.ServerPosition) < Q.Range - 40)
                    .OrderByDescending(i => Environment.Minion.countMinionsInrange(i.Position, Q.Range))
                    .FirstOrDefault();
                if (closeGapTarget != null)
                {
                    if ((canBeOpWIthQ(closeGapTarget.Position) || fury) && !rene)
                    {
                        if (E.CanCast(closeGapTarget))
                        {
                            E.Cast(closeGapTarget.Position);
                            lastE = System.Environment.TickCount;
                            return;
                        }
                    }
                }
            }
            if (getCheckBoxItem(comboMenu, "useq") && Q.CanCast(target) && !renw && !player.LSIsDashing() &&
                checkFuryMode(SpellSlot.Q, target) &&
                (!W.IsReady() ||
                 ((W.IsReady() && !fury) || (player.Health < target.Health) ||
                  (Environment.Minion.countMinionsInrange(player.Position, Q.Range) +
                   player.CountEnemiesInRange(Q.Range) > 3 && fury))))
            {
                Q.Cast();
            }
            var distance = player.LSDistance(target.Position);

            if (getCheckBoxItem(comboMenu, "usee") && lastE.Equals(0) && E.CanCast(target) &&
                (eDmg > target.Health ||
                 (((W.IsReady() && canBeOpWIthQ(target.Position) && !rene) ||
                   (distance > target.LSDistance(player.Position.LSExtend(target.Position, E.Range)) - distance)))))
            {
                E.Cast(target.Position);
                lastE = System.Environment.TickCount;
                return;
            }
            if (getCheckBoxItem(comboMenu, "usee") && checkFuryMode(SpellSlot.E, target) && !lastE.Equals(0) &&
                (eDmg + player.GetAutoAttackDamage(target) > target.Health ||
                 (((W.IsReady() && canBeOpWIthQ(target.Position) && !rene) ||
                   (distance < target.LSDistance(player.Position.LSExtend(target.Position, E.Range)) - distance) ||
                   player.LSDistance(target) > E.Range - 100))))
            {
                var time = System.Environment.TickCount - lastE;
                if (time > 3600f || combodamage > target.Health || (player.LSDistance(target) > E.Range - 100))
                {
                    E.Cast(target.Position);
                    lastE = 0;
                }
            }
            var data = Program.IncDamages.GetAllyData(player.NetworkId);

            if (((player.Health * 100 / player.MaxHealth) <= getSliderItem(comboMenu, "user") &&
                 data.DamageTaken > 30) ||
                getSliderItem(comboMenu, "userindanger") < player.CountEnemiesInRange(R.Range))
            {
                R.Cast();
            }
        }