示例#1
0
        public static void JungleClear()
        {
            var useW           = JungleClearMenu["WJngl"].Cast <CheckBox>().CurrentValue;
            var useQ           = JungleClearMenu["QJngl"].Cast <CheckBox>().CurrentValue;
            var useE           = JungleClearMenu["EJngl"].Cast <CheckBox>().CurrentValue;
            var mana           = JungleClearMenu["MnJngl"].Cast <Slider>().CurrentValue;
            var jungleMonsters = EntityManager.MinionsAndMonsters.GetJungleMonsters().OrderByDescending(j => j.Health).FirstOrDefault(j => j.IsValidTarget(Q.Range));

            if (jungleMonsters != null && Player.Instance.ManaPercent >= mana)
            {
                if (useQ && Q.IsReady() && Q.IsInRange(jungleMonsters))
                {
                    Q.Cast(jungleMonsters);
                }

                if (useW && W.IsReady() && jungleMonsters.IsValidTarget(275) && jungleMonsters.IsInAutoAttackRange(Player.Instance) && Player.Instance.Distance(jungleMonsters.ServerPosition) <= 225f)
                {
                    W.Cast();
                    Player.IssueOrder(GameObjectOrder.AttackUnit, jungleMonsters);
                }

                if (useE && E.IsReady())
                {
                    if (!ECast)
                    {
                        E.Cast();
                    }

                    else if (ECast && jungleMonsters.IsValidTarget(E.Range))
                    {
                        Core.DelayAction(() => E.Cast(), 1000);
                    }
                }
            }
        }
示例#2
0
        private static void LaneClearBeta()
        {
            var minions = EntityManager.MinionsAndMonsters.Get(EntityManager.MinionsAndMonsters.EntityType.Minion, EntityManager.UnitTeam.Enemy, _Player.Position, EMaxRange, false);

            foreach (var minion in minions)
            {
                if (E.IsReady() && _LaneClearE && _Player.ManaPercent >= _LaneClearManaE)
                {
                    var farmLoc = Laser.GetBestLaserFarmLocation(false);
                    if (farmLoc.MinionsHit >= _MinMinions)
                    {
                        Player.CastSpell(SpellSlot.E, farmLoc.Position2.To3D(), farmLoc.Position1.To3D());
                    }
                }
                if (Q.IsReady() && _LaneClearQ && _Player.ManaPercent >= _LaneClearManaQ)
                {
                    if (minion.BaseSkinName.ToLower().Contains("siege") && Q.IsInRange(minion))
                    {
                        Q.Cast(minion);
                        Orbwalker.ForcedTarget = minion;
                    }
                    else
                    {
                        var mins = minions.OrderByDescending(x => x.HealthPercent);
                        Q.Cast(mins.FirstOrDefault());
                    }
                }
            }
        }
示例#3
0
        private static void InterrupterOnOnPossibleToInterrupt(Obj_AI_Base sender, Interrupter.InterruptableSpellEventArgs args)
        {
            var spell = args;
            var unit  = sender;

            if (spell.DangerLevel != DangerLevel.High || !unit.CanStunTarget())
            {
                return;
            }

            var interruptE  = miscMenu["interruptE"].Cast <CheckBox>().CurrentValue;
            var interruptQe = miscMenu["interruptQE"].Cast <CheckBox>().CurrentValue;

            if (E.IsReady() && E.IsInRange(unit) && interruptE)
            {
                E.Cast(unit);
            }

            if (Q.IsReady() && E.IsReady() && Q.IsInRange(unit) && interruptQe)
            {
                Q.Cast(unit);

                var timeToArrive = (int)(1000 * Player.Distance(unit) / 2200f + Game.Ping);
                Core.DelayAction(() => E.Cast(unit), timeToArrive);
            }
        }
示例#4
0
        public override void AIHeroClient_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (Player.Instance.IsDead || !sender.IsEnemy || !(sender is AIHeroClient) || !misc.IsActive("interrupter"))
            {
                return;
            }

            if (DodgeSpells.Any(it => it == args.SData.Name))
            {
                if (args.SData.Name == "KatarinaR")
                {
                    if (Q.IsReady() && Q.IsInRange(sender))
                    {
                        Q.Cast();
                    }
                    else if (W.IsReady() && W.IsInRange(sender))
                    {
                        W.Cast(sender);
                    }
                    return;
                }

                if (args.SData.Name == "AbsoluteZero")
                {
                    if (Q.IsReady() && Q.IsInRange(sender))
                    {
                        Q.Cast();
                    }
                    else if (W.IsReady() && W.IsInRange(sender))
                    {
                        W.Cast(sender);
                    }
                    return;
                }

                if (args.SData.Name == "EzrealtrueShotBarrage")
                {
                    if (Q.IsReady() && Q.IsInRange(sender))
                    {
                        Q.Cast();
                    }
                    else if (W.IsReady() && W.IsInRange(sender))
                    {
                        W.Cast(sender);
                    }
                    return;
                }

                if (Q.IsReady() && Q.IsInRange(sender))
                {
                    Q.Cast(); return;
                }
                if (W.IsReady() && sender.Distance(Player.Instance) <= 300)
                {
                    W.Cast(sender); return;
                }
            }

            return;
        }
示例#5
0
        public override void PermaActive()
        {
            base.PermaActive();

            //----------------------------------------------Ward Jump---------------------------------------

            if (Q.IsReady() && misc.IsActive("wardjump") && Environment.TickCount - WardTick >= 2000)
            {
                var CursorPos = Game.CursorPos;

                Obj_AI_Base JumpPlace = EntityManager.Heroes.Allies.FirstOrDefault(it => it.Distance(CursorPos) <= 250 && Q.IsInRange(it));

                if (JumpPlace != default(Obj_AI_Base))
                {
                    Q.Cast(JumpPlace);
                }
                else
                {
                    JumpPlace = EntityManager.MinionsAndMonsters.Minions.FirstOrDefault(it => it.Distance(CursorPos) <= 250 && Q.IsInRange(it));

                    if (JumpPlace != default(Obj_AI_Base))
                    {
                        Q.Cast(JumpPlace);
                    }
                    else if (JumpWard() != default(InventorySlot))
                    {
                        var Ward = JumpWard();
                        CursorPos = Player.Position.Extend(CursorPos, 600).To3D();
                        Ward.Cast(CursorPos);
                        WardTick = Environment.TickCount;
                        Core.DelayAction(() => WardJump(CursorPos), Game.Ping + 100);
                    }
                }
            }
        }
示例#6
0
        public override void KS()
        {
            if (!misc.IsActive("ks") || !EntityManager.Heroes.Enemies.Any(it => Q.IsInRange(it)))
            {
                return;
            }

            if (Q.IsReady())
            {
                var bye = EntityManager.Heroes.Enemies.FirstOrDefault(enemy => enemy.IsValidTarget(Q.Range) && damageManager.SpellDamage(enemy, SpellSlot.Q) >= enemy.Health);
                if (bye != null)
                {
                    Q.Cast(bye); return;
                }
            }

            if (W.IsReady())
            {
                var bye = EntityManager.Heroes.Enemies.FirstOrDefault(enemy => enemy.IsValidTarget(W.Range) && damageManager.SpellDamage(enemy, SpellSlot.W) >= enemy.Health);
                if (bye != null)
                {
                    W.Cast(bye); return;
                }
            }

            if (Q.IsReady() && W.IsReady())
            {
                var bye = EntityManager.Heroes.Enemies.FirstOrDefault(enemy => enemy.IsValidTarget(Q.Range) && damageManager.SpellDamage(enemy, SpellSlot.Q) + damageManager.SpellDamage(enemy, SpellSlot.W) >= enemy.Health);
                if (bye != null)
                {
                    W.Cast(bye); return;
                }
            }
        }
示例#7
0
        private static void CastR(Vector3 position, bool mouseJump = false)
        {
            Obj_AI_Base target = player;

            foreach (Obj_AI_Base minion in ObjectManager.Get <Obj_AI_Base>())
            {
                if (minion.IsValidTarget(R.Range, true) && player.Distance(position, true) > minion.Distance(position, true) && minion.Distance(position, true) < target.Distance(position, true))
                {
                    if (mouseJump)
                    {
                        if (minion.Distance(position) < 200)
                        {
                            target = minion;
                        }
                    }
                    else
                    {
                        target = minion;
                    }
                }
            }
            if (R.IsReady() && R.IsInRange(target.Position) && !target.IsMe)
            {
                if (mouseJump && target.Distance(position) < 200)
                {
                    R.Cast(target);
                }
                else if (player.Distance(position, true) > target.Distance(position, true))
                {
                    R.Cast(target);
                }
            }
        }
示例#8
0
文件: Program.cs 项目: lolscripts/wu
        //-------------------------------------Obj_AI_Base_OnProcessSpellCast--------------------------------------

        static void AIHeroClient_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (DodgeSpells.Any(el => el == args.SData.Name) && Menu[args.SData.Name].Cast <CheckBox>().CurrentValue)
            {
                if (args.SData.Name == "KatarinaR")
                {
                    if (Q.IsReady() && Q.IsInRange(sender))
                    {
                        Q.Cast();
                    }
                    else if (W.IsReady() && W.IsInRange(sender))
                    {
                        W.Cast(sender);
                    }
                    return;
                }

                if (args.SData.Name == "AbsoluteZero")
                {
                    if (Q.IsReady() && Q.IsInRange(sender))
                    {
                        Q.Cast();
                    }
                    else if (W.IsReady() && W.IsInRange(sender))
                    {
                        W.Cast(sender);
                    }
                    return;
                }

                if (args.SData.Name == "EzrealtrueShotBarrage")
                {
                    if (Q.IsReady() && Q.IsInRange(sender))
                    {
                        Q.Cast();
                    }
                    else if (W.IsReady() && W.IsInRange(sender))
                    {
                        W.Cast(sender);
                    }
                    return;
                }

                if (Q.IsReady() && Q.IsInRange(sender))
                {
                    Q.Cast(); return;
                }
                if (W.IsReady() && sender.Distance(Player) <= 300)
                {
                    W.Cast(sender); return;
                }
            }

            return;
        }
示例#9
0
 private static void Interrupter_OnInterruptableSpell(Obj_AI_Base sender,
                                                      Interrupter.InterruptableSpellEventArgs e)
 {
     if (!sender.IsValidTarget(E.Range) || e.DangerLevel != DangerLevel.High || e.Sender.Type != Player.Type ||
         !e.Sender.IsEnemy)
     {
         return;
     }
     if (E.IsReady() && E.IsInRange(sender) && FapturneMenu.interruptE())
     {
         E.Cast(sender);
     }
 }
示例#10
0
 private static void Interrupter_OnInterruptableSpell(Obj_AI_Base sender,
                                                      Interrupter.InterruptableSpellEventArgs e)
 {
     if (!sender.IsValidTarget(Q.Range) || e.DangerLevel != DangerLevel.High || e.Sender.Type != Player.Type ||
         !e.Sender.IsEnemy)
     {
         return;
     }
     if (R.IsReady() && R.IsInRange(sender) && MariagiospaldaMenu.interruptR())
     {
         R.Cast(sender);
     }
 }
示例#11
0
 private static void Interrupter_OnInterruptableSpell(Obj_AI_Base sender,
                                                      Interrupter.InterruptableSpellEventArgs e)
 {
     if (!sender.IsValidTarget(Q.Range) || e.DangerLevel != DangerLevel.High || e.Sender.Type != ObjectManager.Player.Type ||
         !e.Sender.IsEnemy)
     {
         return;
     }
     if (Q.IsReady() && Q.IsInRange(sender) && MiscMenu.GetCheckBoxValue("interrupt.Q"))
     {
         Q.Cast(sender);
     }
 }
示例#12
0
        //Flee

        //WaveClear
        private static void WaveClearFunc()
        {
            var monsters = EntityManager.MinionsAndMonsters.GetJungleMonsters(User.Position, A.Range).OrderByDescending(a => a.MaxHealth).FirstOrDefault();
            var cstohit  = EntityManager.MinionsAndMonsters.GetLaneMinions().Where(a => a.Distance(Player.Instance) <= A.Range).OrderBy(a => a.Health).FirstOrDefault();

            if (monsters != null)
            {
                if (waveClear["Awc"].Cast <CheckBox>().CurrentValue&& A.IsReady() && A.IsInRange(monsters) && Player.Instance.ManaPercent >= waveClear["manawc"].Cast <Slider>().CurrentValue)
                {
                    A.Cast(monsters);
                }
                if (waveClear["Wwc"].Cast <CheckBox>().CurrentValue&& Z.IsReady() && monsters.IsValidTarget(325) && Player.Instance.ManaPercent >= waveClear["manawc"].Cast <Slider>().CurrentValue)
                {
                    Z.Cast();
                }

                if (waveClear["Ewc"].Cast <CheckBox>().CurrentValue&& E.IsReady() && E.IsInRange(monsters))
                {
                    E.Cast(monsters);
                }
            }
            if (cstohit != null)
            {
                if (waveClear["Awc"].Cast <CheckBox>().CurrentValue&& A.IsReady() && A.IsInRange(cstohit) && Player.Instance.ManaPercent >= waveClear["manawc"].Cast <Slider>().CurrentValue)
                {
                    var objAiHero = from x1 in ObjectManager.Get <Obj_AI_Minion>()
                                    where x1.IsValidTarget() && x1.IsEnemy
                                    select x1
                                    into h
                                    orderby h.Distance(User) descending
                                    select h
                                    into x2
                                        where x2.Distance(User) < A.Range - 20 && !x2.IsDead
                                    select x2;

                    var aiMinions  = objAiHero as Obj_AI_Minion[] ?? objAiHero.ToArray();
                    var lastMinion = aiMinions.First();
                    A.Cast(lastMinion.Position);
                }
                if (waveClear["Wwc"].Cast <CheckBox>().CurrentValue&& Z.IsReady() && cstohit.IsValidTarget(325) && Player.Instance.ManaPercent >= waveClear["manawc"].Cast <Slider>().CurrentValue)
                {
                    Z.Cast();
                }

                if (waveClear["Ewc"].Cast <CheckBox>().CurrentValue&& E.IsReady() && E.IsInRange(cstohit))
                {
                    E.Cast(cstohit);
                }
            }
        }
示例#13
0
        void OnGapClose
            (AIHeroClient sender, Gapcloser.GapcloserEventArgs gapcloser)
        {
            if (!gapcloser.Sender.IsEnemy)
            {
                return;
            }
            var gapclose = _miscMenu["gapclose"].Cast <CheckBox>().CurrentValue;

            if (!gapclose)
            {
                return;
            }
            if (!Player.HasBuff("pyromania_particle"))
            {
                return;
            }
            if (Q.IsReady() &&
                Q.IsInRange(gapcloser.Start))
            {
                Q.Cast(gapcloser.Start);
            }

            if (W.IsReady() && W.IsInRange(gapcloser.Start))
            {
                W.Cast(gapcloser.Start);
            }
        }
示例#14
0
文件: Olaf.cs 项目: MBalack/Balles
        public static void JungleClear()
        {
            var useQ   = JungleClearMenu["QJungle"].Cast <CheckBox>().CurrentValue;
            var useW   = JungleClearMenu["WJungle"].Cast <CheckBox>().CurrentValue;
            var useE   = JungleClearMenu["EJungle"].Cast <CheckBox>().CurrentValue;
            var mana   = JungleClearMenu["MnJungle"].Cast <Slider>().CurrentValue;
            var jungle = EntityManager.MinionsAndMonsters.GetJungleMonsters(_Player.Position, Q.Range).OrderByDescending(a => a.MaxHealth).FirstOrDefault();

            if (jungle != null)
            {
                if (useQ && Q.IsReady() && Q.IsInRange(jungle) && Player.Instance.ManaPercent >= mana)
                {
                    Q.Cast(jungle);
                }

                if (useW && W.IsReady() && jungle.IsValidTarget(325) && Player.Instance.ManaPercent >= mana)
                {
                    W.Cast();
                }

                if (useE && E.IsReady() && E.IsInRange(jungle))
                {
                    E.Cast(jungle);
                }
            }
        }
示例#15
0
文件: Talon.cs 项目: MBalack/Balles
        public static void Combo()
        {
            var target = TargetSelector.GetTarget(W.Range, DamageType.Physical);
            var useW   = ComboMenu["ComboW"].Cast <CheckBox>().CurrentValue;
            var useE   = ComboMenu["ComboE"].Cast <CheckBox>().CurrentValue;
            var useR   = ComboMenu["ComboR"].Cast <CheckBox>().CurrentValue;
            var disE   = ComboMenu["DisE"].Cast <Slider>().CurrentValue;
            var hp     = ComboMenu["myhp"].Cast <Slider>().CurrentValue;

            if (target != null)
            {
                if (useW && W.IsReady() && target.IsValidTarget(W.Range) && !Orbwalker.IsAutoAttacking && !QPassive)
                {
                    if (_Player.Distance(target) < Player.Instance.GetAutoAttackRange(target) && !Q.IsReady())
                    {
                        W.Cast(target);
                    }
                    else if (_Player.Distance(target) > Player.Instance.GetAutoAttackRange(target))
                    {
                        W.Cast(target);
                    }
                }
                if (useE && E.IsReady() && E.IsInRange(target) && disE <= target.Distance(Player.Instance) && Player.Instance.HealthPercent >= hp)
                {
                    E.Cast(target);
                }
                if (useR && R.IsReady() && !Q.IsReady() && target.IsValidTarget(325))
                {
                    R.Cast();
                }
            }
        }
示例#16
0
文件: Program.cs 项目: spall9/Karma
        private static void Emanager()
        {
            var useE   = getCheckBoxItem(miscMenu, "eactivated");
            var eMana  = getSliderItem(miscMenu, "emana");
            var myhp   = getSliderItem(miscMenu, "eallyhp");
            var allyHp = getSliderItem(miscMenu, "emyhp");

            if (Player.IsRecalling() || !useE ||
                Player.ManaPercent < eMana || !_e.IsReady())
            {
                return;
            }

            if ((Player.Health / Player.MaxHealth) * 100 <= myhp)
            {
                _e.Cast();
            }

            foreach (var hero in ObjectManager.Get <AIHeroClient>().Where(h => h.IsAlly && !h.IsMe))
            {
                if ((hero.Health / hero.MaxHealth) * 100 <= allyHp && _e.IsInRange(hero))
                {
                    _e.Cast();
                }
            }
        }
示例#17
0
        public static void Game_OnUpdate(EventArgs args)
        {
            var hedef = TargetSelector.GetTarget(1000, DamageType.Physical);

            if (hedef.IsValid())
            {
                return;
            }
            if (Orbwalker.ActiveModesFlags == Orbwalker.ActiveModes.Combo)
            {
                if (Q.IsReady() && ComboMenu["KomboQ"].Cast <CheckBox>().CurrentValue)
                {
                    Q.Cast();
                }
                if (W.IsReady() && _Player.Distance(hedef) <= W.Range + _Player.GetAutoAttackRange() && ComboMenu["KomboW"].Cast <CheckBox>().CurrentValue)
                {
                    W.Cast(hedef);
                }
                if (E.IsReady() && E.IsInRange(hedef) && ComboMenu["KomboE"].Cast <CheckBox>().CurrentValue)
                {
                    E.Cast(hedef);
                }
                if (R.IsReady() && R.IsInRange(hedef) && ComboMenu["KomboR"].Cast <CheckBox>().CurrentValue)
                {
                    R.Cast(hedef);
                }
            }
        }
示例#18
0
 private void Killsteal()
 {
     if (!KSQ && !KSE && !KSR && !KSIgnite)
     {
         return;
     }
     foreach (var enemy in EntityManager.Enemies.Where(ene => ene.IsInRange(Player.Instance, R.Range) && ene.Type == Player.Instance.Type && ene.IsVisible))
     {
         if (KSQ && Q.IsReady() && Q.IsInRange(enemy) && enemy.Health <= Q.GetSpellDamage(enemy))
         {
             Q.Cast(enemy);
         }
         else if (KSE && E.IsReady() && E.IsInRange(enemy) && enemy.Health <= E.GetSpellDamage(enemy))
         {
             E.Cast(enemy);
         }
         else if (KSR && R.IsReady() && R.IsInRange(enemy) && enemy.Health <= R.GetSpellDamage(enemy))
         {
             SmartRCast(enemy);
         }
         else if (KSIgnite && Player.Instance.Spellbook.CanUseSpell(Ignite) == SpellState.Ready && enemy.IsValidTarget(600f, true) && IgniteDamage(enemy) >= enemy.Health)
         {
             Player.Instance.Spellbook.CastSpell(Ignite, enemy);
         }
     }
 }
示例#19
0
        static void AutoHarass()
        {
            var _target = TargetSelector.GetTarget(Q.Range, EloBuddy.DamageType.Magical);

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

            if (Q.IsReady() && Misc["Auto Q"].Cast <CheckBox>().CurrentValue&& _target.IsValidTarget(Q.Range))
            {
                Q.Cast(_target);
            }
            else if (Q.IsInRange(_target))
            {
                Q.Cast(_target);
            }

            if (W.IsReady() && Misc["Auto W"].Cast <CheckBox>().CurrentValue&& _target.IsValidTarget(W.Range))
            {
                W.Cast();
            }
            else if (W.IsInRange(_target))
            {
                W.Cast();
            }
        }
示例#20
0
文件: Program.cs 项目: lolscripts/wu
        //----------------------------------------------Dodge()-----------------------------------------------

        static void Dodge()
        {
            if (Target != null)
            {
                if (Q.IsInRange(Target))
                {
                    Q.Cast(Target);
                    return;
                }
            }

            var champ = EntityManager.Heroes.Enemies.FirstOrDefault(it => it.IsValidTarget(Q.Range));

            if (champ != null)
            {
                Q.Cast(champ); return;
            }

            var minion = EntityManager.MinionsAndMonsters.EnemyMinions.FirstOrDefault(it => it.IsValidTarget(Q.Range));

            if (minion != null)
            {
                Q.Cast(minion); return;
            }

            return;
        }
示例#21
0
文件: Program.cs 项目: lolscripts/wu
        //---------------------------------GetComboDamage(Obj_AI_Hero Target)----------------------------------

        static float GetComboDamage(AIHeroClient Target)
        {
            if (Target != null)
            {
                float ComboDamage = new float();

                ComboDamage  = Q.IsReady() ? SpellDamage(Target, SpellSlot.Q) : 0;
                ComboDamage += W.IsReady() ? SpellDamage(Target, SpellSlot.W) * 3 : 0;
                ComboDamage += E.IsReady() ? SpellDamage(Target, SpellSlot.E) : 0;
                ComboDamage += R.IsReady() ? SpellDamage(Target, SpellSlot.R) : 0;
                ComboDamage += Player.GetAutoAttackDamage(Target);
                ComboDamage += Item.CanUseItem(3144) && Player.Distance(Target) <= 550 ? DamageLibrary.GetItemDamage(Player, Target, ItemId.Bilgewater_Cutlass) : 0;
                ComboDamage += Item.CanUseItem(3153) && Player.Distance(Target) <= 550 ? DamageLibrary.GetItemDamage(Player, Target, ItemId.Blade_of_the_Ruined_King) : 0;

                if (Ignite != null)
                {
                    ComboDamage += Convert.ToSingle(Ignite.IsReady() && Ignite.IsInRange(Target) ? DamageLibrary.GetSummonerSpellDamage(Player, Target, DamageLibrary.SummonerSpells.Ignite) : 0);
                }
                if (Ignite != null)
                {
                    ComboDamage += Convert.ToSingle(Smite.IsReady() && Smite.Name.Contains("gank") ? DamageLibrary.GetSummonerSpellDamage(Player, Target, DamageLibrary.SummonerSpells.Smite) : 0);
                }

                return(ComboDamage);
            }
            return(0);
        }
示例#22
0
        private static void RaperinoCasterino(Obj_AI_Base victim)
        {
            try
            {
                //Orbwalker.SetAttacks(!Q.IsReady() && !E.IsReady() && player.Distance(victim) < 800f);
                Orbwalker.ForcedTarget = victim;
                foreach (var item in player.InventoryItems)
                {
                    switch ((int)item.Id)
                    {
                    case 3144:
                        if (player.Spellbook.CanUseSpell((SpellSlot)item.Slot) == SpellState.Ready)
                        {
                            item.Cast(victim);
                        }
                        break;

                    case 3146:
                        if (player.Spellbook.CanUseSpell((SpellSlot)item.Slot) == SpellState.Ready)
                        {
                            item.Cast(victim);
                        }
                        break;

                    case 3128:
                        if (player.Spellbook.CanUseSpell((SpellSlot)item.Slot) == SpellState.Ready)
                        {
                            item.Cast(victim);
                        }
                        break;
                    }
                }
                if (Q.IsReady() && Q.IsInRange(victim))
                {
                    Q.Cast(victim);
                }
                if (E.IsReady() && E.IsInRange(victim))
                {
                    E.Cast();
                }
                if (W.IsReady() && Combo["useW"].Cast <CheckBox>().CurrentValue&& W.IsInRange(victim.Position) &&
                    !(hasBuff(victim, "AkaliMota") &&
                      player.Distance(victim) > ObjectManager.Player.GetAutoAttackDamage(player)))
                {
                    W.Cast(victim);//(V2E(player.Position, victim.Position, player.Distance(victim) + W.Width * 2 - 20));
                }
                if (R.IsReady() && R.IsInRange(victim))
                {
                    R.Cast(victim);
                }
                if (IgniteSlot != SpellSlot.Unknown && EloBuddy.Player.Instance.Spellbook.CanUseSpell(IgniteSlot) == SpellState.Ready)
                {
                    Player.Instance.Spellbook.CastSpell(IgniteSlot, victim);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
示例#23
0
        private static void ComboVombo()
        {
            var isq = ComboMenu["Q"].Cast <CheckBox>().CurrentValue;
            var isw = ComboMenu["W"].Cast <CheckBox>().CurrentValue;
            var ise = ComboMenu["E"].Cast <CheckBox>().CurrentValue;

            var Enemies = EntityManager.Heroes.Enemies.Where(x => !x.IsDead && x.IsValidTarget() && Q.IsInRange(x));

            if (Enemies.Count() == 0)
            {
                return;
            }

            var enemy = Enemies.Last();

            if (ise && E.IsReady() && E.IsInRange(enemy) && !Q.IsReady())
            {
                E.Cast(enemy);
            }

            if (isq && Q.IsReady() && W.IsReady() && Q.IsInRange(enemy))
            {
                Q.Cast(Q.GetPrediction(enemy).CastPosition);
            }

            if (isw && !Q.IsReady() && W.IsReady())
            {
                W.Cast();
            }

            if (isq && Q.IsReady() && !W.IsReady() && Q.IsInRange(enemy))
            {
                Q.Cast(Q.GetPrediction(enemy).CastPosition);
            }
        }
示例#24
0
 public void Combo(AIHeroClient target)
 {
     if (_Q.State == SpellState.Ready && _R.State == SpellState.Ready && _Q.IsInRange(target) && _R.IsInRange(target))
     {
         _Q.Cast(target);
         Core.DelayAction(() => _R.Cast(target), _Q.CastDelay);
     }
 }
示例#25
0
        private static void KillSteal()
        {
            var ksq = KillStealMenu["KSQ"].Cast <CheckBox>().CurrentValue;
            var ksr = KillStealMenu["KSR"].Cast <CheckBox>().CurrentValue;

            if (ksq)
            {
                var target =
                    EntityManager.Heroes.Enemies.Where(
                        t =>
                        t.IsValidTarget() && Q.IsInRange(t) &&
                        DamageLibrary.CalculateDamage(t, true, false, false, false) >= t.Health)
                    .OrderBy(t => t.Health)
                    .FirstOrDefault();

                if (target != null && Q.IsReady())
                {
                    Q.Cast(target);
                }
            }

            if (!ksr)
            {
                return;
            }

            var rTarget =
                EntityManager.Heroes.Enemies.Where(
                    t =>
                    t.IsValidTarget() && R.IsInRange(t) &&
                    DamageLibrary.CalculateDamage(t, false, false, false, true) >= t.Health)
                .OrderBy(t => t.Health)
                .FirstOrDefault();

            if (rTarget == null || !R.IsReady())
            {
                return;
            }
            var pred = R.GetPrediction(rTarget);

            if (pred.HitChance >= HitChance.High)
            {
                R.Cast(pred.CastPosition);
            }
        }
        private static void CastQ()
        {
            var target = TargetSelector.GetTarget(Q.Range, DamageType.Magical);

            if (target != null && Q.IsInRange(target))
            {
                Q.Cast(target);
            }
        }
示例#27
0
        private static void OnInterruptableSpell(Obj_AI_Base sender, Interrupter.InterruptableSpellEventArgs e)
        {
            if (!sender.IsEnemy || e.DangerLevel != DangerLevel.High || !W.IsReady() || !W.IsInRange(sender))
            {
                return;
            }

            W.Cast(sender);
        }
示例#28
0
文件: Program.cs 项目: NeTeLead/olaf
 private static void AntiGapCloser(AIHeroClient sender, Gapcloser.GapcloserEventArgs e)
 {
     if (!e.Sender.IsValidTarget() || e.Sender.Type != _Player.Type || !e.Sender.IsEnemy)
     {
         return;
     }
     if (W.IsReady() && W.IsInRange(sender) && (Misc["gapw"].Cast <CheckBox>().CurrentValue))
     {
         W.Cast(sender);
     }
 }
示例#29
0
        public static void OnPossibleToInterrupt(Obj_AI_Base sender, Interrupter.InterruptableSpellEventArgs interruptableSpellEventArgs)
        {
            if (sender == null || sender.IsAlly || !Misc.isChecked(CondemnMenu, "interruptDangerousSpells"))
            {
                return;
            }

            if (interruptableSpellEventArgs.DangerLevel == DangerLevel.High && E.IsInRange(sender))
            {
                E.Cast(sender);
            }
        }
示例#30
0
        private static void DrawingOnOnDraw(EventArgs args)
        {
            var curPos = Game.CursorPos;
            var target = TargetSelector.GetTarget(1000, DamageType.Physical);

            if (target == null)
            {
                return;
            }

            if (Config.Menu["keybind"].Cast <KeyBind>().CurrentValue)
            {
                new Circle()
                {
                    BorderWidth = 1, Color = Color.Yellow, Radius = 50
                }.Draw(curPos);

                if (Condemn.IsInRange(target))
                {
                    bool isWall =
                        Game.CursorPos.Extend(target,
                                              Game.CursorPos.Distance(target) + CondemnKnockbackRange).IsWallOrStructure();

                    Color color = isWall ? Color.Lime : Color.Red;

                    Drawing.DrawLine(Drawing.WorldToScreen(Player.Instance.ServerPosition),
                                     Drawing.WorldToScreen(Game.CursorPos), 2, color);
                    Drawing.DrawLine(Drawing.WorldToScreen(Game.CursorPos),
                                     Drawing.WorldToScreen(target.ServerPosition), 2, color);

                    new Geometry.Polygon.Rectangle(target.ServerPosition, Game.CursorPos.Extend(target,
                                                                                                Game.CursorPos.Distance(target) + CondemnKnockbackRange).To3D(), 50).Draw(color, 2);

                    /*
                     * new Circle() {BorderWidth = 2, Color = color, Radius = 50}.Draw(
                     *  Game.CursorPos.Extend(target,
                     *      Game.CursorPos.Distance(target) + CondemnKnockbackRange).To3D());*/
                }
            }
        }
示例#31
0
 /// <summary>
 /// Handles ignite (doesn't work always/buggy?)
 /// </summary>
 /// <param name="target"></param>
 private static void HandleIgnite()
 {
     if(!KillStealMenu["useignite"].Cast<CheckBox>().CurrentValue) return;
     var ignite = new Spell.Targeted(IgniteSlot, 600);
     if(ignite.IsReady() && ignite.IsInRange(target) && target != null) ignite.Cast(target);
 }