コード例 #1
0
ファイル: Logic.cs プロジェクト: wade1990/PortAIO
 private static void JungleClear()
 {
     if (Config.GetBoolValue("jungleclear.q") && Q.IsReady())
     {
         Obj_AI_Base defaultMinion = MinionManager.GetMinions(Q.Range, MinionTypes.All, MinionTeam.Neutral).FirstOrDefault();
         if (defaultMinion != null)
         {
             Q.Cast(defaultMinion);
         }
     }
     if (Config.GetBoolValue("jungleclear.w") && W.IsReady())
     {
         if (MinionManager.GetMinions(Player.Position, W.Range, MinionTypes.All, MinionTeam.Neutral).Any())
         {
             W.Cast();
         }
     }
     if (Config.GetBoolValue("jungleclear.e") && E.IsReady())
     {
         Obj_AI_Base defaultMinion = MinionManager.GetMinions(E.Range, MinionTypes.All, MinionTeam.Neutral).FirstOrDefault();
         if (defaultMinion != null)
         {
             E.Cast(defaultMinion);
         }
     }
 }
コード例 #2
0
ファイル: Logic.cs プロジェクト: wade1990/PortAIO
        private static void LaneClear()
        {
            List <Obj_AI_Base> sourroundingMinions;

            if (Config.GetBoolValue("laneclear.q") && Q.IsReady())
            {
                Obj_AI_Base m = MinionManager.GetMinions(Player.Position, Q.Range).FirstOrDefault();
                if (m != null)
                {
                    Q.Cast(m);
                }
            }

            if (Config.GetBoolValue("laneclear.w") && W.IsReady())
            {
                sourroundingMinions = MinionManager.GetMinions(W.Range);
                if (sourroundingMinions.Count() > 2)
                {
                    W.Cast();
                }
            }

            if (Config.GetBoolValue("laneclear.e") && E.IsReady())
            {
                Obj_AI_Base m = MinionManager.GetMinions(Player.Position, E.Range).FirstOrDefault(minion => Q.GetDamage(minion) >= minion.Health);
                if (m != null)
                {
                    E.Cast(m);
                }
            }
        }
コード例 #3
0
ファイル: Logic.cs プロジェクト: wade1990/PortAIO
        private static void ELogic(AIHeroClient target = null)
        {
            if (target == null)
            {
                target = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Magical);
            }
            if (target == null)
            {
                return;
            }
            Dagger eDagger = DaggerManager.GetDaggers().FirstOrDefault(d => d.GetPosition().Distance(target.Position) <= 330 && d.GetPosition().Distance(Player.Position) >= 140); //Finetuning needed

            if (eDagger != null)
            {
                Vector3 ePositon = eDagger.GetPosition().Extend(target.Position, 140);
                if (Player.Distance(ePositon) <= E.Range)
                {
                    E.Cast(ePositon);
                    return;
                }
                ePositon = Player.Position.Extend(ePositon, E.Range);
                if (ePositon.Distance(eDagger.GetPosition()) <= 140 && ePositon.Distance(target.Position) < 200)
                {
                    E.Cast(ePositon);
                    return;
                }
            }
            if (Config.GetBoolValue("combo.ealways"))
            {
                E.Cast(target.Position.Extend(Player.Position, -50));
            }
        }
コード例 #4
0
ファイル: Logic.cs プロジェクト: wade1990/PortAIO
        private static void QLogic(bool ksMode = false)
        {
            if (!Q.IsReady())
            {
                return;
            }
            AIHeroClient target = TargetSelector.GetTarget(Q.Range + 300, TargetSelector.DamageType.Magical);

            if (target == null)
            {
                return;
            }
            if (!ksMode && Config.GetBoolValue("combo.q.minion") && target.Distance(Player) > 400)
            {
                //Optimal Position to attack Target
                Vector3     optimalQPosition = target.ServerPosition.Extend(Player.Position, 350);
                Obj_AI_Base min = ObjectManager.Get <Obj_AI_Base>().Aggregate((x, y) => x.Distance(optimalQPosition) < y.Distance(optimalQPosition) ? x : y);
                if (min.Distance(optimalQPosition) < 130)
                {
                    Q.Cast(min);
                }
            }
            target = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);
            if (target.Distance(Player) < Q.Range && (Config.GetBoolValue("combo.q.direct") && (!Config.GetBoolValue("combo.q.onlyrunaway") || !target.IsFacing(Player) || target.Distance(Player) < 300) || ksMode))
            {
                Q.Cast(target);
            }
        }
コード例 #5
0
ファイル: Logic.cs プロジェクト: vup4g4zo4j41/MotionSharp
        private static void Game_OnUpdate(EventArgs args)
        {
            if (Player.HasBuff("katarinarsound"))
            {
                if (Config.GetBoolValue("ks.r"))
                {
                    Killsteal();
                }
                Config.Orbwalker.SetAttack(false);
                Config.Orbwalker.SetAttack(false);
                return;
            }
            Config.Orbwalker.SetAttack(true);
            Config.Orbwalker.SetAttack(true);
            Killsteal();
            //Select current Mode
            switch (Config.Orbwalker.ActiveMode)
            {
            case Orbwalking.OrbwalkingMode.Combo:
                Combo();
                break;

            case Orbwalking.OrbwalkingMode.LaneClear:
                LaneClear();
                break;

            case Orbwalking.OrbwalkingMode.LastHit:
                Lasthit();
                break;
            }
        }
コード例 #6
0
 private static void OnDraw(EventArgs args)
 {
     if (!Config.GetBoolValue("drawings.daggers"))
     {
         return;
     }
     foreach (Dagger dag in GetDaggers())
     {
         if (dag.IsActive())
         {
             Render.Circle.DrawCircle(dag.GetPosition(), 140, System.Drawing.Color.Aqua);
         }
     }
 }
コード例 #7
0
ファイル: Logic.cs プロジェクト: wade1990/PortAIO
 private static void Harass()
 {
     if (Config.GetBoolValue("harass.q"))
     {
         QLogic(true);
     }
     if (Config.GetBoolValue("harass.w"))
     {
         WLogic();
     }
     if (Config.GetBoolValue("harass.e"))
     {
         ELogic();
     }
 }
コード例 #8
0
ファイル: BlockIssueOrder.cs プロジェクト: wade1990/PortAIO
 private static void Spellbook_OnCastSpell(Spellbook sender, SpellbookCastSpellEventArgs args)
 {
     if (sender.Owner.IsMe && Logic.Player.HasBuff("katarinarsound"))
     {
         //Accidental Cancel
         if (Utils.TickCount <= whenToCancelR && Config.GetBoolValue("misc.noRCancel"))
         {
             args.Process = false;
         }
         if (args.Slot != SpellSlot.Q && args.Slot != SpellSlot.W && args.Slot != SpellSlot.E)
         {
             args.Process = false;
         }
     }
 }
コード例 #9
0
ファイル: Logic.cs プロジェクト: wade1990/PortAIO
 private static void Combo() //Still need to apply permutation - Probably Finished
 {
     if (Config.GetBoolValue("combo.q"))
     {
         QLogic();
     }
     if (Config.GetBoolValue("combo.w"))
     {
         WLogic();
     }
     if (Config.GetBoolValue("combo.e"))
     {
         ELogic();
     }
     if (Config.GetBoolValue("combo.r"))
     {
         RLogic();
     }
 }
コード例 #10
0
ファイル: Logic.cs プロジェクト: wade1990/PortAIO
        private static void Lasthit()
        {
            if (Config.GetBoolValue("lasthit.q") && Q.IsReady())
            {
                Obj_AI_Base m = MinionManager.GetMinions(Player.Position, Q.Range).FirstOrDefault(minion => Q.GetDamage(minion) >= minion.Health);
                if (m != null)
                {
                    Q.Cast(m);
                }
            }

            if (Config.GetBoolValue("lasthit.e") && E.IsReady())
            {
                Obj_AI_Base m = MinionManager.GetMinions(Player.Position, E.Range).FirstOrDefault(minion => Q.GetDamage(minion) >= minion.Health);
                if (m != null)
                {
                    E.Cast(m);
                }
            }
        }
コード例 #11
0
ファイル: Logic.cs プロジェクト: wade1990/PortAIO
        private static void RLogic()
        {
            AIHeroClient target = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Magical);

            if (target != null && R.IsReady() && target.Distance(Player) < (E.IsReady() && Config.GetBoolValue("combo.e") ? E.Range : R.Range - 200))
            {
                if (E.IsReady() && Config.GetBoolValue("combo.e"))
                {
                    E.Cast(target.Position);
                }
                if (W.IsReady() && Config.GetBoolValue("combo.w"))
                {
                    W.Cast();
                }
                if ((!E.IsReady() || !Config.GetBoolValue("combo.e")) && (!W.IsReady() || !Config.GetBoolValue("combo.w")) && target.Distance(Player) <= R.Range)
                {
                    R.Cast();
                }
            }
        }
コード例 #12
0
ファイル: Logic.cs プロジェクト: wade1990/PortAIO
 private static void Killsteal()
 {
     if (!Config.GetBoolValue("ks.use"))
     {
         return;
     }
     foreach (AIHeroClient enemy in HeroManager.Enemies)
     {
         if (enemy.IsDead || enemy.IsZombie)
         {
             return;
         }
         if (enemy.Distance(Player) < Q.Range && GetDamage(enemy, false) >= enemy.Health)
         {
             QLogic(true);
             WLogic();
             ELogic(enemy);
         }
         if (enemy.Distance(Player) < E.Range && E.GetDamage(enemy) >= enemy.Health)
         {
             E.Cast(enemy.Position);
         }
     }
 }
コード例 #13
0
 private static void OnIssueOrder(Obj_AI_Base sender, GameObjectIssueOrderEventArgs args)
 {
     if (sender.IsMe && Logic.Player.HasBuff("katarinarsound") && Utils.TickCount <= whenToCancelR && Config.GetBoolValue("misc.noRCancel"))
     {
         args.Process = false;
     }
 }