示例#1
0
 private static void BeforeAttack(Orbwalking.BeforeAttackEventArgs args)
 {
     if (args.Unit.IsMe)
     {
         args.Process = !player.HasBuff("KatarinaR");
     }
 }
示例#2
0
        public CommonForceUltimate(ZedMenu zedMenu, ZedSpells zedSpells, Orbwalking.Orbwalker orbwalker)
        {
            player = ObjectManager.Player;

            this.zedMenu = zedMenu;
            r = zedSpells.R;
            zedOrbwalker = orbwalker;

            mouseImage1 = new Render.Sprite(Resources.mouse1, new Vector2(0, 0));
            mouseImage1.Scale = new Vector2(0.50f, 0.50f);
            mouseImage1.Add();

            mouseImage2 = new Render.Sprite(Resources.mouse2, new Vector2(0, 0));
            mouseImage2.Scale = new Vector2(0.50f, 0.50f);
            mouseImage2.Add();

            denyMouseImage = new Render.Sprite(Resources.denymouse, new Vector2(0, 0));
            denyMouseImage.Scale = new Vector2(0.50f, 0.50f);
            denyMouseImage.Add();
            denyMouseImage.Visible = false;

            Text.Add();
            Text.Visible = false;

            Game.OnWndProc += CheckMouseButtons;
            Game.OnUpdate += ShowAnimation;
        }
示例#3
0
 /// <summary>
 ///     Fired when the game is updated.
 /// </summary>
 /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param>
 public static void LastHit(Orbwalking.BeforeAttackEventArgs args)
 {
     const float SplashRange = 160f;
     var isUsingFishBones = ObjectManager.Player.HasBuff("JinxQ");
     var minionTarget = (Obj_AI_Minion)args.Target;
     var canLastHit = Variables.QMenu.Item("lasthit").GetValue<SliderButton>().Value.Item2
                      && ObjectManager.Player.ManaPercent
                      > ManaManager.GetNeededMana(Variables.W.Slot, Variables.QMenu.Item("lasthit"));
     if (minionTarget != null)
     {
         var minionsInRange =
             ObjectManager.Get<Obj_AI_Minion>().Count(m => m.Distance(minionTarget) < SplashRange);
         if (isUsingFishBones)
         {
             if (minionsInRange < 3)
             {
                 Variables.Q.Cast();
             }
         }
         else
         {
             if (minionsInRange >= 3 && canLastHit)
             {
                 Variables.Q.Cast();
             }
         }
     }
 }
示例#4
0
文件: Vayne.cs 项目: myo/LSharp
 protected override void BeforeAttack(Orbwalking.BeforeAttackEventArgs args)
 {
     if (ObjectManager.Player.Buffs.Any(b=>b.Name.ToLower().Contains("tumblefade")) && ObjectManager.Get<Obj_AI_Hero>().Any(h => h.IsEnemy && h.IsValidTarget() && h.IsMelee && h.Distance(ObjectManager.Player) < 325))
     {
         args.Process = false;
     }
 }
示例#5
0
 private void Orbwalking_BeforeAttack(Orbwalking.BeforeAttackEventArgs args)
 {
     if(Program.Combo && W.IsReady() && FindCard == 1 && W.Instance.Name != "PickACard" &&  Config.Item("WblockAA", true).GetValue<bool>())
     {
         args.Process = false;
     }
 }
示例#6
0
 /// <summary>
 /// Called Before the orbwalker attacks.
 /// </summary>
 /// <param name="args">The <see cref="Orbwalking.BeforeAttackEventArgs"/> instance containing the event data.</param>
 private void BeforeAttack(Orbwalking.BeforeAttackEventArgs args)
 {
     if (ShouldGetExecuted())
     {
         args.Process = false;
     }
 }
示例#7
0
 public static void BeforeAttack(Orbwalking.BeforeAttackEventArgs args)
 {
     if (args.Unit.IsMe && Program.Q.IsReady() && Program.ComboMenu.Item("QCombo").GetValue<bool>())
     {
         if (args.Target.IsValid<Obj_AI_Hero>())
         {
             var target = (Obj_AI_Hero) args.Target;
             if (Program.ComboMenu.Item("RCombo").GetValue<bool>() && Program.R.IsReady() &&
                 Program.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
             {
                 if (!target.UnderTurret(true))
                 {
                     Program.R.Cast();
                 }
             }
             if (target.IsMelee && target.IsFacing(Heroes.Player))
             {
                 if (target.Distance(Heroes.Player.ServerPosition) < 325)
                 {
                     var tumblePosition = target.GetTumblePos();
                     args.Process = false;
                     Tumble.Cast(tumblePosition);
                 }
             }
         }
     }
 }
示例#8
0
        /// <summary>
        ///     Called on orbwalker action.
        /// </summary>
        /// <param name="args">The <see cref="Orbwalking.BeforeAttackEventArgs" /> instance containing the event data.</param>
        public static void BeforeAttack(Orbwalking.BeforeAttackEventArgs args)
        {
            /// <summary>
            ///     Check for R Instance.
            /// </summary>
            args.Process = !Variables.R.Instance.Name.Equals("QuinnRFinale");

            /// <summary>
            ///     The Target Forcing Logic.
            /// </summary>
            var hero = (Obj_AI_Hero)args.Target;
            var bestTarget =
                HeroManager.Enemies.Where(
                    t => t.IsValidTarget(Orbwalking.GetRealAutoAttackRange(t)) && t.HasBuff("quinnw"))
                    .OrderByDescending(o => Data.Get<ChampionPriorityData>().GetPriority(o.ChampionName))
                    .FirstOrDefault();
            if (hero != null && bestTarget?.NetworkId != hero.NetworkId
                && Variables.GetRealHealth(hero) > ObjectManager.Player.GetAutoAttackDamage(hero) * 3)
            {
                Variables.Orbwalker.ForceTarget(bestTarget);
                return;
            }

            Variables.Orbwalker.ForceTarget(null);
        }
示例#9
0
        private static void WLogic()
        {
            #region W逻辑
            foreach (var enemy in HeroManager.Enemies.Where(e => e.IsValid && !e.IsDead && e.Distance(Player) < W.Range).OrderByDescending(k => k.Distance(Player)).OrderByDescending(k => k.Health))
            {
                if (Config.Item("标记W").GetValue <bool>() &&
                    Config.GetBool("WList" + enemy.NetworkId) &&
                    (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo || Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed) &&
                    enemy.CountAlliesInRange(650) > 0 &&
                    enemy.HasWBuff())
                {
                    W.CastSpell(enemy);
                }

                if (Config.Item("硬控W").GetValue <bool>() && !OktwCommon.CanMove(enemy) && enemy.HasWBuff())
                {
                    W.CastSpell(enemy);
                }

                if (Config.Item("抢人头W").GetValue <bool>() &&
                    Config.GetBool("WList" + enemy.NetworkId) &&
                    Player.CountEnemiesInRange(Player.AttackRange + 100) == 0 && enemy.Health < OktwCommon.GetIncomingDamage(enemy) + W.GetDmg(enemy) &&
                    !Q.CanCast(enemy) && !(Orbwalking.CanAttack() && Orbwalking.InAutoAttackRange(enemy)))
                {
                    W.CastSpell(enemy);
                }
            }
            #endregion
        }
示例#10
0
        /// <summary>
        ///     Called on orbwalker action.
        /// </summary>
        /// <param name="args">The <see cref="Orbwalking.BeforeAttackEventArgs" /> instance containing the event data.</param>
        public static void BeforeAttack(Orbwalking.BeforeAttackEventArgs args)
        {
            switch (Variables.Orbwalker.ActiveMode)
            {
                /// <summary>
                ///     The 'No AA in Combo' Logic.
                /// </summary>
                case Orbwalking.OrbwalkingMode.Combo:
                    if (!Variables.GeneralMenu.Item("aacombo").IsActive())
                    {
                        args.Process = Bools.HasSheenBuff();
                    }
                    break;

                /// <summary>
                ///     The 'Support Mode' Logic.
                /// </summary>
                case Orbwalking.OrbwalkingMode.Mixed:
                case Orbwalking.OrbwalkingMode.LastHit:
                case Orbwalking.OrbwalkingMode.LaneClear:
                    var target = Variables.Orbwalker.GetTarget();
                    if (target is Obj_AI_Minion && target.IsEnemy && Variables.GeneralMenu.Item("support").IsActive())
                    {
                        args.Process = !HeroManager.Allies.Any(a => a.Distance(ObjectManager.Player) < 2500);
                    }
                    break;
            }
        }
示例#11
0
        private void BeforeAttack(Orbwalking.BeforeAttackEventArgs args)
        {
            if (!Q.IsReady() || !Config.Item("autoQ", true).GetValue<bool>() || !(args.Target is Obj_AI_Hero))
                return;
            var t = (Obj_AI_Hero)args.Target;

            if (FishBoneActive && t.IsValidTarget())
            {
                var realDistance = GetRealDistance(t);
                if (Program.Combo && realDistance < GetRealPowPowRange(t) && (Player.Mana < RMANA + 20 || Player.GetAutoAttackDamage(t) * 3 < t.Health))
                    Q.Cast();
                else if (Program.Farm && Config.Item("Qharras", true).GetValue<bool>() && (realDistance > bonusRange() || realDistance < GetRealPowPowRange(t) || Player.Mana < RMANA + EMANA + WMANA + WMANA))
                    Q.Cast();
            }

            if (Program.LaneClear && !FishBoneActive && Config.Item("farmQ", true).GetValue<bool>() && Player.ManaPercent > Config.Item("Mana", true).GetValue<Slider>().Value && Player.Mana > RMANA + EMANA + WMANA + 30)
            {

                var allMinionsQ = MinionManager.GetMinions(Player.ServerPosition, bonusRange());
                foreach (var minion in allMinionsQ.Where(
                    minion => args.Target.NetworkId != minion.NetworkId && minion.Distance(args.Target.Position) < 200 && (5 - Q.Level) * Player.GetAutoAttackDamage(minion) < args.Target.Health && (5 - Q.Level) * Player.GetAutoAttackDamage(minion) < minion.Health))
                {
                    Q.Cast();
                }
            }
        }
示例#12
0
文件: Utils.cs 项目: waldow90/PortAIO
        //public static void DrawJunglePosition(int drawOption)
        //{
        //    if (drawOption == (int)DrawOption.Off)
        //    {
        //        return;
        //    }

        //    junglePositions = new Dictionary<Vector3, System.Drawing.Color>();
        //    if (Game.MapId == (GameMapId)11)
        //    {
        //        const float CircleRange = 115f;

        //        junglePositions.Add(new Vector3(7461.018f, 3253.575f, 52.57141f), System.Drawing.Color.Blue);
        //        // blue team :red;
        //        junglePositions.Add(new Vector3(3511.601f, 8745.617f, 52.57141f), System.Drawing.Color.Blue);
        //        // blue team :blue
        //        junglePositions.Add(new Vector3(7462.053f, 2489.813f, 52.57141f), System.Drawing.Color.Blue);
        //        // blue team :golems
        //        junglePositions.Add(new Vector3(3144.897f, 7106.449f, 51.89026f), System.Drawing.Color.Blue);
        //        // blue team :wolfs
        //        junglePositions.Add(new Vector3(7770.341f, 5061.238f, 49.26587f), System.Drawing.Color.Blue);
        //        // blue team :wariaths

        //        junglePositions.Add(new Vector3(10930.93f, 5405.83f, -68.72192f), System.Drawing.Color.Yellow);
        //        // Dragon

        //        junglePositions.Add(new Vector3(7326.056f, 11643.01f, 50.21985f), System.Drawing.Color.Red);
        //        // red team :red
        //        junglePositions.Add(new Vector3(11417.6f, 6216.028f, 51.00244f), System.Drawing.Color.Red);
        //        // red team :blue
        //        junglePositions.Add(new Vector3(7368.408f, 12488.37f, 56.47668f), System.Drawing.Color.Red);
        //        // red team :golems
        //        junglePositions.Add(new Vector3(10342.77f, 8896.083f, 51.72742f), System.Drawing.Color.Red);
        //        // red team :wolfs
        //        junglePositions.Add(new Vector3(7001.741f, 9915.717f, 54.02466f), System.Drawing.Color.Red);
        //        // red team :wariaths

        //        foreach (var hp in junglePositions)
        //        {
        //            switch (drawOption)
        //            {
        //                case (int)DrawOption.CloseToMobs:
        //                    if (ObjectManager.Player.Distance(hp.Key)
        //                        <= Orbwalking.GetRealAutoAttackRange(null) + 65)
        //                    {
        //                        Render.Circle.DrawCircle(hp.Key, CircleRange, hp.Value);
        //                    }
        //                    break;
        //                case (int)DrawOption.CloseToMobsAndJungleClearActive:
        //                    if (ObjectManager.Player.Distance(hp.Key)
        //                        <= Orbwalking.GetRealAutoAttackRange(null) + 65 && Program.ChampionClass.JungleClearActive)
        //                    {
        //                        Render.Circle.DrawCircle(hp.Key, CircleRange, hp.Value);
        //                    }
        //                    break;
        //            }
        //        }
        //    }
        //}

        public static GameObjectTeam Team(this Obj_AI_Base mob)
        {
            mobTeams = new Dictionary <Vector2, GameObjectTeam>();
            if (Game.MapId == (GameMapId)11)
            {
                mobTeams.Add(new Vector2(7756f, 4118f), GameObjectTeam.Order);  // blue team :red;
                mobTeams.Add(new Vector2(3824f, 7906f), GameObjectTeam.Order);  // blue team :blue
                mobTeams.Add(new Vector2(8356f, 2660f), GameObjectTeam.Order);  // blue team :golems
                mobTeams.Add(new Vector2(3860f, 6440f), GameObjectTeam.Order);  // blue team :wolfs
                mobTeams.Add(new Vector2(6982f, 5468f), GameObjectTeam.Order);  // blue team :wariaths
                mobTeams.Add(new Vector2(2166f, 8348f), GameObjectTeam.Order);  // blue team :Frog jQuery

                mobTeams.Add(new Vector2(4768, 10252), GameObjectTeam.Neutral); // Baron
                mobTeams.Add(new Vector2(10060, 4530), GameObjectTeam.Neutral); // Dragon

                mobTeams.Add(new Vector2(7274f, 11018f), GameObjectTeam.Chaos); // Red team :red;
                mobTeams.Add(new Vector2(11182f, 6844f), GameObjectTeam.Chaos); // Red team :Blue
                mobTeams.Add(new Vector2(6450f, 12302f), GameObjectTeam.Chaos); // Red team :golems
                mobTeams.Add(new Vector2(11152f, 8440f), GameObjectTeam.Chaos); // Red team :wolfs
                mobTeams.Add(new Vector2(7830f, 9526f), GameObjectTeam.Chaos);  // Red team :wariaths
                mobTeams.Add(new Vector2(12568, 6274), GameObjectTeam.Chaos);   // Red team : Frog jQuery

                return
                    (mobTeams.Where(
                         hp => mob.Distance(hp.Key) <= (Orbwalking.GetRealAutoAttackRange(null) * 2))
                     .Select(hp => hp.Value)
                     .FirstOrDefault());
            }
            return(GameObjectTeam.Unknown);
        }
示例#13
0
        public override void ExecuteLane()
        {
            var qJ = Program.Config.Item("UseQ.Lane").GetValue <StringList>().SelectedIndex;

            if (qJ != 0)
            {
                var minionsQ = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, Q.Range, MinionTypes.All);
                if (minionsQ != null)
                {
                    if (Q.IsReady())
                    {
                        var locQ = Q.GetLineFarmLocation(minionsQ);
                        if (minionsQ.Count == minionsQ.Count(m => ObjectManager.Player.Distance(m) < Q.Range) &&
                            locQ.MinionsHit > qJ && locQ.Position.IsValid())
                        {
                            Q.Cast(locQ.Position);
                        }
                    }
                }
            }
            var wJ = Program.Config.Item("UseW.Lane").GetValue <StringList>().SelectedIndex;

            if (wJ != 0)
            {
                var minionsW = MinionManager.GetMinions(ObjectManager.Player.ServerPosition,
                                                        Orbwalking.GetRealAutoAttackRange(null) + 165, MinionTypes.All);
                if (minionsW != null && minionsW.Count >= wJ)
                {
                    if (W.IsReady())
                    {
                        W.Cast();
                    }
                }
            }
        }
示例#14
0
        /// <summary>
        ///     The is the spell active method.
        /// </summary>
        /// <param name="spellSlot">
        ///     The spell slot.
        /// </param>
        /// <param name="orbwalkingMode">
        ///     The orbwalking mode.
        /// </param>
        /// <returns>
        ///     <see cref="bool" />
        /// </returns>
        private static bool IsSpellActive(SpellSlot spellSlot, Orbwalking.OrbwalkingMode orbwalkingMode)
        {
            if (Program.Orbwalker.ActiveMode != orbwalkingMode || !spellSlot.IsReady())
            {
                return false;
            }

            try
            {
                var orbwalkerModeLower = Program.Orbwalker.ActiveMode.ToString().ToLower();
                var spellSlotNameLower = spellSlot.ToString().ToLower();

                return MyMenu.RootMenu.Item(orbwalkerModeLower + spellSlotNameLower + "use").GetValue<bool>()
                       && MyMenu.RootMenu.Item(orbwalkerModeLower + spellSlotNameLower + "mana")
                              .GetValue<Slider>()
                              .Value <= ObjectManager.Player.ManaPercent;
            }
            catch (Exception e)
            {
                Logging.AddEntry(
                    LoggingEntryTrype.Error,
                    "@SpellManager.cs: Can not get spell active state for slot {0} - {1}",
                    spellSlot.ToString(),
                    e);
                throw;
            }
        }
示例#15
0
 private void OW(Orbwalking.BeforeAttackEventArgs args)
 {
     if (ShouldGetExecuted() && ObjectManager.Player.Buffs.Any(m => m.Name.ToLower() == "vaynetumblefade"))
     {
         args.Process = false;
     }
 }
示例#16
0
 public static Menu AddModeMenu(this Menu mainMenu, Orbwalking.OrbwalkingMode Mode)
 {
     var modeMenu = new Menu($"[iSR] {Mode}", $"iseriesr.{ObjectManager.Player.ChampionName.ToLower()}.{Mode.ToString().ToLower()}");
     {
         mainMenu.AddSubMenu(modeMenu);
     }
     return modeMenu;
 }
示例#17
0
文件: Zyra.cs 项目: myo/LSharp
        protected override void BeforeAttack(Orbwalking.BeforeAttackEventArgs args)
        {
            if (!menu.Item("disableAA", true).GetValue<bool>())
                return;

            if ((args.Target is Obj_AI_Minion) && menu.Item("HarassActive", true).GetValue<KeyBind>().Active)
                args.Process = false;
        }
示例#18
0
 private static void BeforeAttack(Orbwalking.BeforeAttackEventArgs args)
 {
     if (Config.Item("bAuto").GetValue<bool>() && Human() && Q.IsReady() &&
         Player.Distance(args.Target.Position) >= Player.AttackRange)
     {
         args.Process = false;
     }
 }
示例#19
0
 /// <summary>
 /// Called before the next aa is fired.
 /// </summary>
 /// <param name="args">The <see cref="Orbwalking.BeforeAttackEventArgs"/> instance containing the beforeattack data.</param>
 public static void Orbwalking_BeforeAttack(Orbwalking.BeforeAttackEventArgs args)
 {
     if (args.Target != null &&
         args.Target.IsValid<Obj_AI_Base>())
     {
         Logics.ExecuteBeforeAttack(args);
     }
 }
示例#20
0
 private static Menu AddManaManagerMenu(this Menu mainMenu, Orbwalking.OrbwalkingMode Mode)
 {
     var manaManager = new Menu("Mana Manager", $"iseriesr.{ObjectManager.Player.ChampionName.ToLower()}.{Mode.ToString().ToLower()}.mm");
     {
         mainMenu.AddSubMenu(manaManager);
     }
     return manaManager;
 }
示例#21
0
        protected override void OnBeforeAttack(Orbwalking.BeforeAttackEventArgs args)
        {
            if (!config.Item("ComboActive", true).GetValue<KeyBind>().Active)
                return;

            if (Q.IsReady() || W.IsReady() || E.IsReady())
                args.Process = false;
        }
示例#22
0
 public static void CastFlayPush(Obj_AI_Hero target, Orbwalking.OrbwalkingMode Mode)
 {
     var targetPrediction = Prediction.GetPrediction(target, 0.25f);
             var finalPosition = target.ServerPosition.Extend(
                 ObjectManager.Player.ServerPosition,
                 ObjectManager.Player.ServerPosition.Distance(targetPrediction.UnitPosition) / 2f);
             Thresh.spells[SpellSlot.E].Cast(finalPosition);
 }
示例#23
0
 static void BeforeAttack(Orbwalking.BeforeAttackEventArgs args)
 {
     if (args.Target.IsValid<Obj_AI_Hero>()
         && E.IsReady())
     {
         E.Cast();
     }
 }
示例#24
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="Item" /> class.
 /// </summary>
 /// <param name="orbwalker">
 ///     The orbwalker.
 /// </param>
 public Item(Orbwalking.Orbwalker orbwalker)
 {
     Orbwalker=orbwalker;
     _offensive=new Offensive();
     _defensive=new Defensive();
     Orbwalking.AfterAttack+=After_Attack;
     Orbwalking.BeforeAttack+=Before_Attack;
     Game.OnUpdate+=OnUpdate;
 }
示例#25
0
        protected override void OnUpdate(Orbwalking.OrbwalkingMode mode)
        {
            base.OnUpdate(mode);

            if (AutoBuyBlueTrinket && ObjectManager.Player.Level >= BlueTrinketLevel && ObjectManager.Player.InFountain() && ObjectManager.Player.InventoryItems.Any(item => item.Id == ItemId.Warding_Totem_Trinket))
            {
                ObjectManager.Player.BuyItem(ItemId.Scrying_Orb_Trinket);
            }
        }
示例#26
0
        public static MenuItem AddSkill(this Menu mainMenu, SpellSlot slot, Orbwalking.OrbwalkingMode Mode, bool defaultValue = true, int defMana = 20, bool addMM = true)
        {
            if (addMM)
            {
                mainMenu.AddManaManager(slot, Mode, defMana);
            }

            return mainMenu.AddBool($"iseriesr.{ObjectManager.Player.ChampionName.ToLower()}.{Mode.ToString().ToLower()}.{slot.ToString().ToLower()}", $"Use {slot}", defaultValue);
        }
示例#27
0
        public override void ExecuteJungle()
        {
            if (Q.IsReady())
            {
                var jQ = Marksman.Utils.Utils.GetMobs(Orbwalking.GetRealAutoAttackRange(null) + 65, Marksman.Utils.Utils.MobTypes.All);
                if (jQ != null)
                {
                    switch (GetValue <StringList>("UseQJ").SelectedIndex)
                    {
                    case 1:
                    {
                        Q.Cast(jQ);
                        break;
                    }

                    case 2:
                    {
                        jQ = Utils.Utils.GetMobs(Orbwalking.GetRealAutoAttackRange(null) + 65, Utils.Utils.MobTypes.BigBoys);
                        if (jQ != null)
                        {
                            Q.Cast(jQ);
                        }
                        break;
                    }
                    }
                }
            }


            if (E.IsReady())
            {
                var jungleMobs = Marksman.Utils.Utils.GetMobs(E.Range, Marksman.Utils.Utils.MobTypes.All);

                if (jungleMobs != null)
                {
                    switch (GetValue <StringList>("UseEJ").SelectedIndex)
                    {
                    case 1:
                    {
                        E.CastOnUnit(jungleMobs);
                        break;
                    }

                    case 2:
                    {
                        jungleMobs = Utils.Utils.GetMobs(E.Range, Utils.Utils.MobTypes.BigBoys);
                        if (jungleMobs != null)
                        {
                            E.CastOnUnit(jungleMobs);
                        }
                        break;
                    }
                    }
                }
            }
        }
示例#28
0
        public static void CastFlayPull(Obj_AI_Hero target, Orbwalking.OrbwalkingMode Mode)
        {
            var finalPosition =
                    target.ServerPosition.Extend(
                        ObjectManager.Player.ServerPosition,
                        ObjectManager.Player.Distance(target.ServerPosition) + 100f
                        );

                Thresh.spells[SpellSlot.E].Cast(finalPosition);
        }
示例#29
0
        /// <summary>
        ///     Initializes a new instance of the <see cref="Item" /> class.
        /// </summary>
        /// <param name="menu">
        ///     The menu.
        /// </param>
        /// <param name="enabled">
        ///     if set to <c> true </c> [enabled].
        /// </param>
        /// <param name="orbwalker">
        ///     The orbwalker.
        /// </param>
        public Item(Menu menu, bool enabled, Orbwalking.Orbwalker orbwalker)
        {
            if (!enabled)
                return;

            Objects.ProjectLogger.WriteLog("Item Menu and events loaded.");
            menu.AddSubMenu(Menu());
            // ReSharper disable once UnusedVariable
            var items=new Events.Item(orbwalker);
        }
示例#30
0
 public override void Update(Orbwalking.OrbwalkingMode mode, ComboProvider combo, Obj_AI_Hero target)
 {
     base.Update(mode, combo, target);
     _recentAutoattack = false;
     if (_resetOrbwalker && !ObjectManager.Player.HasBuff("GarenE"))
     {
         _resetOrbwalker = false;
         Provider.Orbwalker.SetAttack(true);
     }
 }
示例#31
0
 static void BeforeAttack(Orbwalking.BeforeAttackEventArgs args)
 {
     Obj_AI_Hero target = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical);
     if (args.Target.IsValid<Obj_AI_Hero>()
         && W.IsReady()
         && Player.Distance(target) <= Player.AttackRange)
     {
         W.Cast();
     }
 }
示例#32
0
 public void StackR(Orbwalking.BeforeAttackEventArgs args)
 {
     if (args.Target is Obj_AI_Minion && R.IsReady() && R.CanCast((Obj_AI_Minion)args.Target)
         && champion.Player.Mana > R.Instance.ManaCost && R.IsKillable((Obj_AI_Minion)args.Target)
         && champion.Player.CountEnemiesInRange(3000f) == 0 && champion.Player.GetBuffCount("Feast") < 6)
     {
         args.Process = false;
         R.Cast((Obj_AI_Minion)args.Target);
     }
 }
示例#33
0
文件: Cassiopeia.cs 项目: myo/LSharp
        protected override void BeforeAttack(Orbwalking.BeforeAttackEventArgs args)
        {
            if (!menu.Item("disableAA", true).GetValue<bool>() || !(args.Target is Obj_AI_Hero))
                return;

            if (Q.IsReady() || W.IsReady() || (E.IsReady() && _poisonTargets.Any(x => x.NetworkId == args.Target.NetworkId)))
                args.Process = false;
            else
                args.Process = true;
        }
示例#34
0
 private void BeforeAttack(Orbwalking.BeforeAttackEventArgs args)
 {
     if (W.IsReady() && Range && args.Target is Obj_AI_Hero)
     {
         if(Program.Combo)
             W.Cast();
         else if (args.Target.Position.Distance(Player.Position)< 500)
             W.Cast();
     }
 }
示例#35
0
        public override void GameOnUpdate(EventArgs args)
        {
            if (R.IsReady())
            {
                var x = 0d;
                if (ObjectManager.Player.HealthPercent < 20 && ObjectManager.Player.CountEnemiesInRange(500) > 0)
                {
                    x = HeroManager.Enemies.Where(e => e.IsValidTarget(1000))
                        .Aggregate(0, (current, enemy) => (int)(current + enemy.Health));
                }
                if (ObjectManager.Player.Health < x)
                {
                    R.Cast(ObjectManager.Player.Position);
                }
            }

            AIHeroClient t = null;
            if (KindredECharge != null)
            {
                t = KindredECharge;
                TargetSelector.SetTarget(KindredECharge);
            }
            else
            {
                t = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Physical);
            }


            if (!t.IsValidTarget())
            {
                return;
            }

            if (ComboActive && !t.HasKindredUltiBuff())
            {
                if (t.IsValidTarget(Q.Range + Orbwalking.GetRealAutoAttackRange(null) + 65) && !t.HasKindredUltiBuff())
                {
                    if (GetValue<bool>("Combo.Q.Use"))
                    {
                        var x = CommonUtils.GetDashPosition(E, t, 400);
                        Q.Cast(x);
                    }
                    
                    if (GetValue<bool>("Combo.E.Use") && E.IsReady() && t.IsValidTarget(E.Range))
                    {
                        E.CastOnUnit(t);
                    }

                    if (GetValue<bool>("Combo.W.Use") && W.IsReady() && t.IsValidTarget(W.Range/2))
                    {
                        W.Cast(t.Position);
                    }
                }
            }
        }
示例#36
0
 public override void Orbwalking_BeforeAttack(Orbwalking.BeforeAttackEventArgs args)
 {
     if (GetValue <bool>("Combo.E.Use") && E.IsReady() && HaveAmmo1 && !HaveAmmo2 && !isReloading)
     {
         var enemy = HeroManager.Enemies.FirstOrDefault(e => e.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65));
         if (enemy != null)
         {
             E.Cast(CommonUtils.GetDashPosition(E, enemy, 200));
         }
     }
 }
示例#37
0
 public override void Orbwalking_BeforeAttack(Orbwalking.BeforeAttackEventArgs args)
 {
     foreach (
         var target in
             HeroManager.Enemies.Where(
                 e =>
                     e.IsValid && e.Distance(ObjectManager.Player) < Orbwalking.GetRealAutoAttackRange(null) + 65 &&
                     e.IsVisible).Where(target => target.HasBuff("kindredcharge")))
     {
         Orbwalker.ForceTarget(target);
     }
 }
示例#38
0
 public override void ExecuteCombo()
 {
     if (GetValue <bool>("Combo.Q.Use.Urf"))
     {
         var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);
         if (t.IsValidTarget() && !t.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65))
         {
             CastQ(t);
         }
     }
     base.ExecuteCombo();
 }
示例#39
0
        private bool RLogic(AIHeroClient target)
        {
            var hits = GetRHits(target);

            if ((hits.Item2.Any(h => R.GetDamage(h) * 0.95f > h.Health) ||
                 hits.Item2.Any(h => h.Distance(ObjectManager.Player) + 300 < Orbwalking.GetRealAutoAttackRange(h) * 0.9f)))
            {
                R.Cast(hits.Item3);
                return(true);
            }
            return(false);
        }
示例#40
0
        public override void ExecuteLane()
        {
            if (E.IsReady())
            {
                var minions = MinionManager.GetMinions(ObjectManager.Player.Position, E.Range, MinionTypes.All,
                                                       MinionTeam.Enemy);

                if (minions != null)
                {
                    var eJ = Program.Config.Item("UseE.Lane").GetValue <StringList>().SelectedIndex;
                    if (eJ != 0)
                    {
                        var mE = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, E.Range + 175,
                                                          MinionTypes.All);
                        var locW = E.GetCircularFarmLocation(mE, 175);
                        if (locW.MinionsHit >= eJ && E.IsInRange(locW.Position.To3D()))
                        {
                            foreach (
                                var x in
                                ObjectManager.Get <Obj_AI_Minion>()
                                .Where(m => m.IsEnemy && !m.IsDead && m.Distance(locW.Position) < 100))
                            {
                                E.CastOnUnit(x);
                            }
                        }
                    }
                }
                if (Q.IsReady())
                {
                    var jE = Program.Config.Item("UseQ.Lane").GetValue <StringList>().SelectedIndex;
                    if (jE != 0)
                    {
                        var totalAa =
                            ObjectManager.Get <Obj_AI_Minion>()
                            .Where(
                                m =>
                                m.IsEnemy && !m.IsDead &&
                                m.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null)))
                            .Sum(mob => (int)mob.Health);

                        totalAa = (int)(totalAa / ObjectManager.Player.TotalAttackDamage);
                        if (totalAa > jE)
                        {
                            Q.Cast();
                        }
                    }
                }
            }
        }
示例#41
0
        private static void Drawing_OnDraw(EventArgs args)
        {
            var turnOffDrawings = Config.Item("Draw.TurnOff").GetValue <StringList>().SelectedIndex;

            if (turnOffDrawings == 0)
            {
                return;
            }

            if ((turnOffDrawings == 2 || turnOffDrawings == 4) &&
                ChampionClass.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
            {
                return;
            }

            if ((turnOffDrawings == 3 || turnOffDrawings == 4) &&
                (ChampionClass.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LastHit ||
                 ChampionClass.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear))
            {
                return;
            }

            var drawMinionLastHit = Config.Item("Draw.MinionLastHit").GetValue <StringList>().SelectedIndex;

            if (drawMinionLastHit != 0)
            {
                var mx =
                    ObjectManager.Get <Obj_AI_Minion>()
                    .Where(m => !m.IsDead && m.IsEnemy)
                    .Where(m => m.Health <= ObjectManager.Player.TotalAttackDamage);

                if (drawMinionLastHit == 1)
                {
                    mx = mx.Where(m => m.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65));
                }
                mx =
                    mx.Where(
                        m =>
                        m.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65 + 300) &&
                        m.Distance(ObjectManager.Player.Position) > Orbwalking.GetRealAutoAttackRange(null) + 65);

                foreach (var minion in mx)
                {
                    Render.Circle.DrawCircle(minion.Position, minion.BoundingRadius, Color.GreenYellow, 1);
                }
            }

            ChampionClass?.Drawing_OnDraw(args);
        }
示例#42
0
 public override void Drawing_OnDraw(EventArgs args)
 {
     Spell[] spellList = { Q, W, E, R };
     foreach (var spell in spellList)
     {
         var menuItem = GetValue <Circle>("Draw" + spell.Slot);
         if (menuItem.Active)
         {
             Render.Circle.DrawCircle(ObjectManager.Player.Position,
                                      spell.Slot == SpellSlot.W
                     ? Orbwalking.GetRealAutoAttackRange(null) + 65 + W.Range
                     : spell.Range,
                                      menuItem.Color);
         }
     }
 }
示例#43
0
        public override void Orbwalking_BeforeAttack(Orbwalking.BeforeAttackEventArgs args)
        {
            args.Process = !GetValue <KeyBind>("Combo.Insec").Active;

            if (GetValue <bool>("Misc.UseQ.Inhibitor") && args.Target is Obj_BarracksDampener && Q.IsReady())
            {
                if (((Obj_BarracksDampener)args.Target).Health >= Player.TotalAttackDamage * 3)
                {
                    Q.Cast();
                }
            }

            if (GetValue <bool>("Misc.UseQ.Nexus") && args.Target is Obj_HQ && Q.IsReady())
            {
                Q.Cast();
            }

            var unit = args.Target as Obj_AI_Turret;

            if (unit != null)
            {
                if (GetValue <bool>("UseEM") && E.IsReady())
                {
                    if (((Obj_AI_Turret)args.Target).Health >= Player.TotalAttackDamage * 3)
                    {
                        E.CastOnUnit(unit);
                    }
                }

                if (GetValue <bool>("Misc.UseQ.Turret") && Q.IsReady())
                {
                    if (((Obj_AI_Turret)args.Target).Health >= Player.TotalAttackDamage * 3)
                    {
                        Q.Cast();
                    }
                }
            }

            if (Q.IsReady() && args.Target is AIHeroClient)
            {
                var t = args.Target as AIHeroClient;
                if (t.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) - 65) && ComboActive)
                {
                    Q.Cast();
                }
            }
        }
示例#44
0
        private static void QLogic()
        {
            #region Q逻辑
            //Q消耗
            if (Config.Item("消耗Q兵").GetValue <bool>() && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed)
            {
                var ms = MinionManager.GetMinions(Q.Range);
                if (ms != null && ms.Count > 0)
                {
                    var t = ms.Find(m => Q.GetDmg(m) > m.Health && m.CountEnemiesInRange(200) > 0);
                    if (t != null)
                    {
                        Q.Cast(t);
                    }
                }
            }

            if (Config.Item("清兵Q").GetValue <bool>() && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear)
            {
                var ms = MinionManager.GetMinions(Q.Range);
                if (ms != null && ms.Count >= 3)
                {
                    var t = ms.Find(m => Q.GetDmg(m) > m.Health);
                    if (t != null)
                    {
                        Q.Cast(t);
                    }
                }
            }

            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
            {
                var target = Orbwalker.GetTarget() as Obj_AI_Hero;
                if (target != null && target.IsValid && !Orbwalking.CanAttack() && !Player.IsWindingUp && target.Health < Q.GetDmg(target) + W.GetDmg(target))
                {
                    Q.Cast(target);
                }
            }

            //Q抢人头
            foreach (var enemy in HeroManager.Enemies.Where(e => e.IsValidTarget(Q.Range) && Q.GetDmg(e) + OktwCommon.GetIncomingDamage(e) > e.Health))
            {
                Q.Cast(enemy);
            }

            #endregion
        }
示例#45
0
        private static void Obj_AI_Base_OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs Args)
        {
            //if (sender.IsMe)
            //{
            //	if (args.SData.Name == "JhinRShotMis")
            //	{

            //		RCharge.Index++;
            //		RCharge.CastT = Game.ClockTime;
            //	}
            //	if (args.SData.Name == "JhinRShotMis4")
            //	{

            //		RCharge.Index = 0;
            //		RCharge.CastT = Game.ClockTime;
            //		RCharge.Target = null;
            //	}
            //}

            if (sender.IsMe && !Orbwalking.IsAutoAttack(Args.SData.Name) && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
            {
                if (Args.Target is Obj_AI_Hero && Config.Item("ComboW").GetValue <bool>() && W.IsReady())
                {
                    var target = (Obj_AI_Hero)Args.Target;

                    if (!target.IsDead && !target.IsZombie && target.IsValidTarget(W.Range) && target.IsHPBarRendered)
                    {
                        if (target.HasWBuff() && Config.Item("标记W").GetValue <bool>())
                        {
                            W.CastSpell(target);
                            return;
                        }
                        else
                        {
                            var WPred = W.GetPrediction(target);

                            if (WPred.Hitchance >= HitChance.VeryHigh)
                            {
                                W.Cast(WPred.UnitPosition, true);
                                return;
                            }
                        }
                    }
                }
            }
        }
示例#46
0
文件: Ashe.cs 项目: Dekryptor/Port-1
        public override void ExecuteLane()
        {
            if (Q.IsReady() && AsheQCastReady)
            {
                var jQ = GetValue <StringList>("UseQ.Lane").SelectedIndex;
                if (jQ != 0)
                {
                    var totalAa =
                        ObjectManager.Get <Obj_AI_Minion>()
                        .Where(
                            m => m.IsEnemy && !m.IsDead && m.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null)))
                        .Sum(mob => (int)mob.Health);

                    totalAa = (int)(totalAa / ObjectManager.Player.TotalAttackDamage);
                    if (totalAa > jQ)
                    {
                        Q.Cast();
                    }
                }
            }

            if (E.IsReady())
            {
                var minions = MinionManager.GetMinions(
                    ObjectManager.Player.Position,
                    E.Range,
                    MinionTypes.All,
                    MinionTeam.Enemy);

                if (minions != null)
                {
                    var jE = GetValue <StringList>("UseW.Lane").SelectedIndex;
                    if (jE != 0)
                    {
                        var mE = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, W.Range, MinionTypes.All);
                        if (mE.Count >= jE)
                        {
                            W.Cast(mE[0].Position);
                        }
                    }
                }
            }
        }
示例#47
0
 public override void Spellbook_OnCastSpell(Spellbook sender, SpellbookCastSpellEventArgs args)
 {
     var nClosesTarget = HeroManager.Enemies.Find(e => e.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65));
     {
         if (nClosesTarget != null)
         {
             if (GetValue <bool>("UseWMC") &&
                 ObjectManager.Player.Spellbook.GetSpell(SpellSlot.W).Level > 0 &&
                 Math.Abs(W.Cooldown) < 0.00001 &&
                 args.Slot != SpellSlot.W)
             {
                 var lastMana = ObjectManager.Player.Mana - ObjectManager.Player.Spellbook.GetSpell(args.Slot).SData.Mana;
                 if (lastMana < ObjectManager.Player.Spellbook.GetSpell(SpellSlot.W).SData.Mana)
                 {
                     args.Process = false;
                 }
             }
         }
     }
 }
示例#48
0
        public override void GameOnUpdate(EventArgs args)
        {
            if (!Orbwalking.CanMove(100))
            {
                return;
            }

            var useQ = GetValue <bool>("UseQ" + (ComboActive ? "C" : "H"));

            if (ComboActive || HarassActive)
            {
                if (Q.IsReady() && useQ)
                {
                    var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);
                    if (t != null)
                    {
                        Q.Cast(t, false, true);
                    }
                }
            }
        }
示例#49
0
        public override void PermaActive()
        {
            if (GetValue <bool>("Combo.UseYoumuu"))
            {
                if (ObjectManager.Player.HasBuff("TwitchFullAutomatic"))
                {
                    var iYoumuu = ItemData.Youmuus_Ghostblade.GetItem();

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

            var dontWasteE = GetValue <StringList>("Combo.DontWasteE").SelectedIndex;

            if (dontWasteE != 0)
            {
                if (ObjectManager.Player.CountEnemiesInRange(Orbwalking.GetRealAutoAttackRange(null) + 65) > 0)
                {
                    return;
                }

                foreach (var enemy in HeroManager.Enemies
                         .Where(
                             e => e.IsValidTarget(E.Range) && !e.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 130))
                         .Where(e => e.GetBuffCount("TwitchDeadlyVenom") >= dontWasteE))
                {
                    foreach (var buffs in enemy.Buffs.Where(b => b.Name == "TwitchDeadlyVenom"))
                    {
                        if (Game.Time > buffs.EndTime - 200)
                        {
                            E.Cast();
                        }
                    }
                }
            }
        }
示例#50
0
        public override void ExecuteJungle()
        {
            if (!Orbwalking.CanMove(1))
            {
                return;
            }

            var jungleMobs = Utils.Utils.GetMobs(Q.Range, Utils.Utils.MobTypes.BigBoys);

            if (jungleMobs != null)
            {
                if (Q.CanCast(jungleMobs) && GetValue <StringList>("Jungle.Q").SelectedIndex != 0)
                {
                    Q.Cast(jungleMobs);
                }

                if (E.CanCast(jungleMobs) && GetValue <StringList>("Jungle.E").SelectedIndex != 0)
                {
                    E.Cast(jungleMobs);
                }
            }
        }
示例#51
0
        private static void CastW(Vector3 pos, bool delayControl = true)
        {
            var enemy =
                HeroManager.Enemies.Find(
                    e =>
                    e.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65) &&
                    e.Health < ObjectManager.Player.TotalAttackDamage * 2);

            if (enemy != null)
            {
                return;
            }

            if (!W.IsReady())
            {
                return;
            }

            //if (headshotReady)
            //{
            //    return;
            //}

            if (delayControl && LastCastWTick + 2000 > LeagueSharp.Common.Utils.TickCount)
            {
                return;
            }

            if (!trapList.Any(x => x.IsValid && pos.Distance(x.Position) <= 100))
            {
                W.Cast(pos);
            }

            //W.Cast(pos);
            LastCastWTick = LeagueSharp.Common.Utils.TickCount;
        }
示例#52
0
        public override void ExecuteLane()
        {
            return;
            var useQ = Program.Config.Item("UseQL").GetValue<StringList>().SelectedIndex;

            var minion =
                MinionManager.GetMinions(ObjectManager.Player.Position, Q.Range)
                    .FirstOrDefault(m => m.Health < ObjectManager.Player.GetSpellDamage(m, SpellSlot.Q));

            if (minion != null)
            {
                switch (useQ)
                {
                    case 1:
                        minion =
                            MinionManager.GetMinions(ObjectManager.Player.Position, Q.Range)
                                .FirstOrDefault(
                                    m =>
                                        m.Health < ObjectManager.Player.GetSpellDamage(m, SpellSlot.Q)
                                        && m.Health > ObjectManager.Player.TotalAttackDamage);
                        Q.Cast(minion);
                        break;

                    case 2:
                        minion =
                            MinionManager.GetMinions(ObjectManager.Player.Position, Q.Range)
                                .FirstOrDefault(
                                    m =>
                                        m.Health < ObjectManager.Player.GetSpellDamage(m, SpellSlot.Q)
                                        && ObjectManager.Player.Distance(m)
                                        > Orbwalking.GetRealAutoAttackRange(null) + 65);
                        Q.Cast(minion);
                        break;
                }
            }
        }
示例#53
0
        public override void ExecuteCombo()
        {
            var useE = GetValue <bool>("UseE" + (ComboActive ? "C" : "H"));

            if (E.IsReady() && useE) // Credits DZ191
            {
                var target = HeroManager.Enemies.Find(x => x.IsValidTarget(E.Range));
                if (target != null)
                {
                    if (target.HasBuffOfType(BuffType.Slow))
                    {
                        if (target.Path.Count() > 1)
                        {
                            var slowEndTime = target.GetSlowEndTime();
                            if (slowEndTime >= E.Delay + 0.5f + Game.Ping / 2f)
                            {
                                E.CastIfHitchanceGreaterOrEqual(target);
                            }
                        }
                    }

                    if (target.IsHeavilyImpaired())
                    {
                        var immobileEndTime = target.GetImpairedEndTime();
                        if (immobileEndTime >= E.Delay + 0.5f + Game.Ping / 2f)
                        {
                            E.CastIfHitchanceGreaterOrEqual(target);
                        }
                    }
                }
            }

            var useW = GetValue <bool>("UseW" + (ComboActive ? "C" : "H"));

            if (W.IsReady() && useW)
            {
                var target = TargetSelector.GetTargetNoCollision(W);
                if (target == null)
                {
                    return;
                }
                if (!ObjectManager.Player.UnderTurret(true) || !target.UnderTurret(true))
                {
                    W.CastIfHitchanceGreaterOrEqual(target);
                }
            }

            if ((GetValue <KeyBind>("CastR").Active || GetValue <bool>("UseRC")) && R.IsReady())
            {
                if (wCastTime + 1060 <= Environment.TickCount)
                {
                    var target =
                        HeroManager.Enemies.FirstOrDefault(
                            x =>
                            !x.IsZombie && x.CountAlliesInRange(500) < 2 &&
                            HealthPrediction.GetHealthPrediction(x, 5000) > 0 &&
                            ObjectManager.Player.Distance(x) >= Orbwalking.GetRealAutoAttackRange(null) + 65 + QExtraRange &&
                            x.IsKillableAndValidTarget(GetRDamage(x), TargetSelector.DamageType.Physical, R.Range) &&
                            R.GetPrediction(x).Hitchance >= HitChance.High);
                    if (target != null)
                    {
                        var prediction = R.GetPrediction(target);
                        var collision  =
                            Collision.GetCollision(new List <Vector3> {
                            prediction.UnitPosition
                        },
                                                   new PredictionInput
                        {
                            UseBoundingRadius = true,
                            Unit             = ObjectManager.Player,
                            Delay            = R.Delay,
                            Speed            = R.Speed,
                            Radius           = 200,
                            CollisionObjects = new[] { CollisionableObjects.Heroes }
                        })
                            .Any(x => x.NetworkId != target.NetworkId);
                        if (!collision)
                        {
                            R.Cast(target);
                        }
                    }
                }
            }
            base.ExecuteCombo();
        }
示例#54
0
        public override void DrawingOnEndScene(EventArgs args)
        {
            return;

            var nClosesEnemy = HeroManager.Enemies.Find(e => e.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null)));

            if (nClosesEnemy != null)
            {
                var aaRange = Orbwalking.GetRealAutoAttackRange(null) + 65 - ObjectManager.Player.Distance(nClosesEnemy);
                Render.Circle.DrawCircle(ObjectManager.Player.Position, aaRange, Color.BurlyWood);

                Vector2 wcPositive  = ObjectManager.Player.Position.To2D() - Vector2.Normalize(nClosesEnemy.Position.To2D() - ObjectManager.Player.Position.To2D()).Rotated((float)Math.PI / 180) * aaRange;
                Vector2 wcPositive2 = ObjectManager.Player.Position.To2D() - Vector2.Normalize(nClosesEnemy.Position.To2D() - ObjectManager.Player.Position.To2D()).Rotated(30 * (float)Math.PI / 180) * aaRange;
                Vector2 wcPositive3 = ObjectManager.Player.Position.To2D() - Vector2.Normalize(nClosesEnemy.Position.To2D() - ObjectManager.Player.Position.To2D()).Rotated(-30 * (float)Math.PI / 180) * aaRange;

                Vector2 wcPositive2x = ObjectManager.Player.Position.To2D() - Vector2.Normalize(nClosesEnemy.Position.To2D() - ObjectManager.Player.Position.To2D()).Rotated(60 * (float)Math.PI / 180) * aaRange;
                Vector2 wcPositive3x = ObjectManager.Player.Position.To2D() - Vector2.Normalize(nClosesEnemy.Position.To2D() - ObjectManager.Player.Position.To2D()).Rotated(-60 * (float)Math.PI / 180) * aaRange;

                if (E.IsReady())
                {
                    var runHere = Vector2.Zero;
                    if (!wcPositive.IsWall())
                    {
                        runHere = wcPositive;
                    }
                    else if (!wcPositive2.IsWall())
                    {
                        runHere = wcPositive2;
                    }
                    else if (!wcPositive3.IsWall())
                    {
                        runHere = wcPositive3;
                    }
                    else if (!wcPositive2x.IsWall())
                    {
                        runHere = wcPositive2x;
                    }
                    else if (!wcPositive3x.IsWall())
                    {
                        runHere = wcPositive3x;
                    }

                    if (runHere != Vector2.Zero && ObjectManager.Player.Distance(runHere) > ObjectManager.Player.BoundingRadius * 2)
                    {
                        E.Cast(runHere);
                    }
                }

                Render.Circle.DrawCircle(wcPositive2.To3D(), 80f, Color.Red);
                Render.Circle.DrawCircle(wcPositive3.To3D(), 80f, Color.Yellow);
                Render.Circle.DrawCircle(wcPositive.To3D(), 80, Color.BurlyWood);

                Render.Circle.DrawCircle(wcPositive2x.To3D(), 80f, Color.Red);
                Render.Circle.DrawCircle(wcPositive3x.To3D(), 80f, Color.Yellow);
            }
            //if (Q.IsReady())
            //{
            return;

            foreach (var t in HeroManager.Enemies.Where(e => e.IsValidTarget(1100)))
            {
                var toPolygon =
                    new CommonGeometry.Rectangle(ObjectManager.Player.Position.To2D(),
                                                 ObjectManager.Player.Position.To2D()
                                                 .Extend(t.Position.To2D(), t.Distance(ObjectManager.Player.Position)), 30).ToPolygon();
                toPolygon.Draw(System.Drawing.Color.Red, 1);

                var o = ObjectManager
                        .Get <Obj_AI_Base>(
                    ).FirstOrDefault(e => e.IsEnemy && !e.IsDead && e.NetworkId != t.NetworkId && toPolygon.IsInside(e) &&
                                     ObjectManager.Player.Distance(t.Position) > ObjectManager.Player.Distance(e) && e.Distance(t) > t.BoundingRadius && e.Distance(ObjectManager.Player) > ObjectManager.Player.BoundingRadius);

                if (o != null)
                {
                    Render.Circle.DrawCircle(o.Position, 105f, Color.GreenYellow);
                    Q.CastOnUnit(o);
                }

                Vector2 wcPositive = ObjectManager.Player.Position.To2D() - Vector2.Normalize(t.Position.To2D() - ObjectManager.Player.Position.To2D()).Rotated((float)Math.PI / 180) * (E.Range - 50);
                Render.Circle.DrawCircle(wcPositive.To3D(), 60, Color.BurlyWood);
                Render.Circle.DrawCircle(wcPositive.To3D(), 80f, Color.BurlyWood);
                Render.Circle.DrawCircle(wcPositive.To3D(), 100f, Color.BurlyWood);
            }
            //}

            return;

            foreach (var t in HeroManager.Enemies.Where(e => e.IsValidTarget(1100)))
            {
                var toPolygon = new CommonGeometry.Rectangle(ObjectManager.Player.Position.To2D(), ObjectManager.Player.Position.To2D().Extend(t.Position.To2D(), t.Distance(ObjectManager.Player.Position)), 40).ToPolygon();
                toPolygon.Draw(System.Drawing.Color.Red, 1);


                foreach (var obj in ObjectManager.Get <Obj_AI_Base>())
                {
                }

                //Console.WriteLine(hero.ChampionName);

                for (int j = 20; j < 361; j += 20)
                {
                    Vector2 wcPositive = ObjectManager.Player.Position.To2D() + Vector2.Normalize(t.Position.To2D() - ObjectManager.Player.Position.To2D()).Rotated(j * (float)Math.PI / 180) * E.Range;
                    if (!wcPositive.IsWall() && t.Distance(wcPositive) > E.Range)
                    {
                        Render.Circle.DrawCircle(wcPositive.To3D(), 105f, Color.GreenYellow);
                    }
                    //if (!wcPositive.IsWall())
                    //{
                    //    ListWJumpPositions.Add(wcPositive);
                    //}

                    //Vector2 wcNegative = ObjectManager.Player.Position.To2D() +
                    //                     Vector2.Normalize(hero.Position.To2D() - ObjectManager.Player.Position.To2D())
                    //                         .Rotated(-j * (float)Math.PI / 180) * E.Range;

                    //Render.Circle.DrawCircle(wcNegative.To3D(), 105f, Color.White);
                    //if (!wcNegative.IsWall())
                    //{
                    //    ListWJumpPositions.Add(wcNegative);
                    //}
                }
            }
        }
示例#55
0
        public override void ExecuteCombo()
        {
            var t =
                HeroManager.Enemies.Find(
                    e => e.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65) && e.CanGetDamage());

            if (hasPassive && t != null)
            {
                Orbwalker.ForceTarget(t);
            }

            if (!hasPassive && t.IsValidTarget() && Q.IsReady())
            {
                Q.CastOnUnit(t);
            }

            if (GetValue <bool>("Combo.W.Use") && !hasPassive && t.IsValidTarget() && W.IsReady())
            {
                W.Cast(t.Position);
            }

            if (t.IsValidTarget() && GetValue <bool>("Combo.E.Use") && E.IsReady() && !hasPassive)
            {
                var x = CommonUtils.GetDashPosition(E, t, 200);
                E.Cast(x);
            }

            if (!t.IsValidTarget() && t.IsValidTarget(qExtended.Range))
            {
                var useQExtended = GetValue <StringList>("UseQExtendedC").SelectedIndex;
                if (useQExtended != 0)
                {
                    switch (useQExtended)
                    {
                    case 1:
                    {
                        var tx = QMinion(t);
                        if (tx.IsValidTarget(Q.Range))
                        {
                            Q.CastOnUnit(tx);
                        }
                        break;
                    }

                    case 2:
                    {
                        var enemy = HeroManager.Enemies.Find(e => e.IsValidTarget(qExtended.Range) && !e.IsZombie);
                        if (enemy != null)
                        {
                            var tx = QMinion(enemy);
                            if (tx.IsValidTarget())
                            {
                                Q.CastOnUnit(tx);
                            }
                        }
                        break;
                    }
                    }
                }
            }
        }
示例#56
0
        public override void ExecuteJungle()
        {
            var jungleQValue = GetValue <StringList>("Jungle.UseQ").SelectedIndex;

            if (jungleQValue != 0 && Q.IsReady())
            {
                var bigMobsQ = Utils.Utils.GetMobs(Q.Range, jungleQValue == 2 ? Utils.Utils.MobTypes.BigBoys : Utils.Utils.MobTypes.All);
                if (bigMobsQ != null && bigMobsQ.Health > ObjectManager.Player.TotalAttackDamage * 2 && !hasPassive)
                {
                    Q.CastOnUnit(bigMobsQ);
                }
            }

            var jungleWValue = GetValue <StringList>("Jungle.UseW").SelectedIndex;

            if (jungleWValue != 0 && W.IsReady())
            {
                var bigMobsQ = Utils.Utils.GetMobs(W.Range, jungleWValue == 2 ? Utils.Utils.MobTypes.BigBoys : Utils.Utils.MobTypes.All);
                if (bigMobsQ != null && bigMobsQ.Health > ObjectManager.Player.TotalAttackDamage * 2 && !hasPassive)
                {
                    W.Cast(bigMobsQ.Position);
                }
            }

            var jungleEValue = GetValue <StringList>("Jungle.UseE").SelectedIndex;

            if (jungleEValue != 0 && E.IsReady())
            {
                var jungleMobs =
                    Marksman.Utils.Utils.GetMobs(Q.Range + Orbwalking.GetRealAutoAttackRange(null) + 65,
                                                 Marksman.Utils.Utils.MobTypes.All);

                if (jungleMobs != null && !hasPassive)
                {
                    switch (GetValue <StringList>("Jungle.UseE").SelectedIndex)
                    {
                    case 1:
                    {
                        if (!jungleMobs.BaseSkinName.ToLower().Contains("baron") ||
                            !jungleMobs.BaseSkinName.ToLower().Contains("dragon"))
                        {
                            if (jungleMobs.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65))
                            {
                                E.Cast(
                                    jungleMobs.IsValidTarget(
                                        Orbwalking.GetRealAutoAttackRange(null) + 65)
                                                ? Game.CursorPos
                                                : jungleMobs.Position);
                            }
                        }
                        break;
                    }

                    case 2:
                    {
                        if (!jungleMobs.BaseSkinName.ToLower().Contains("baron") ||
                            !jungleMobs.BaseSkinName.ToLower().Contains("dragon"))
                        {
                            jungleMobs =
                                Marksman.Utils.Utils.GetMobs(
                                    E.Range + Orbwalking.GetRealAutoAttackRange(null) + 65,
                                    Marksman.Utils.Utils.MobTypes.BigBoys);
                            if (jungleMobs != null)
                            {
                                E.Cast(
                                    jungleMobs.IsValidTarget(
                                        Orbwalking.GetRealAutoAttackRange(null) + 65)
                                                ? Game.CursorPos
                                                : jungleMobs.Position);
                            }
                        }
                        break;
                    }
                    }
                }
            }
        }
示例#57
0
文件: Ashe.cs 项目: Dekryptor/Port-1
        public override void ExecuteJungle()
        {
            if (Q.IsReady() && AsheQCastReady)
            {
                var jE = GetValue <StringList>("UseQJ").SelectedIndex;
                if (jE != 0)
                {
                    if (jE == 1)
                    {
                        var jungleMobs = Utils.Utils.GetMobs(
                            Orbwalking.GetRealAutoAttackRange(null) + 65,
                            Utils.Utils.MobTypes.BigBoys);
                        if (jungleMobs != null)
                        {
                            Q.Cast();
                        }
                    }
                    else
                    {
                        var totalAa =
                            MinionManager.GetMinions(
                                ObjectManager.Player.Position,
                                Orbwalking.GetRealAutoAttackRange(null) + 165,
                                MinionTypes.All,
                                MinionTeam.Neutral).Sum(mob => (int)mob.Health);
                        totalAa = (int)(totalAa / ObjectManager.Player.TotalAttackDamage);
                        if (totalAa > jE)
                        {
                            Q.Cast();
                        }
                    }
                }
            }

            if (W.IsReady())
            {
                var jungleMobs = Marksman.Utils.Utils.GetMobs(W.Range, Marksman.Utils.Utils.MobTypes.All);
                if (jungleMobs != null)
                {
                    var jW = GetValue <StringList>("UseWJ").SelectedIndex;
                    switch (jW)
                    {
                    case 1:
                    {
                        jungleMobs = Marksman.Utils.Utils.GetMobs(
                            W.Range,
                            Marksman.Utils.Utils.MobTypes.All,
                            jW);
                        W.CastOnUnit(jungleMobs);
                        break;
                    }

                    case 2:
                    {
                        jungleMobs = Utils.Utils.GetMobs(W.Range, Utils.Utils.MobTypes.BigBoys);
                        if (jungleMobs != null)
                        {
                            W.CastOnUnit(jungleMobs);
                        }
                        break;
                    }
                    }
                }
            }
        }
示例#58
0
文件: Ashe.cs 项目: Dekryptor/Port-1
        public override void GameOnUpdate(EventArgs args)
        {
            if (!ComboActive)
            {
                var t = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical);

                if (!t.IsValidTarget() || !W.IsReady())
                {
                    return;
                }

                if (Program.Config.Item("UseWTH").GetValue <KeyBind>().Active)
                {
                    if (ObjectManager.Player.HasBuff("Recall"))
                    {
                        return;
                    }
                    W.Cast(t);
                }

                if (t.HasBuffOfType(BuffType.Stun) || t.HasBuffOfType(BuffType.Snare) || t.HasBuffOfType(BuffType.Charm) ||
                    t.HasBuffOfType(BuffType.Fear) || t.HasBuffOfType(BuffType.Taunt) ||
                    t.HasBuff("zhonyasringshield") || t.HasBuff("Recall"))
                {
                    W.Cast(t.Position);
                }
            }

            /* [ Combo ] */
            if (ComboActive)
            {
                var useW = Config.Item("UseWC" + Id).GetValue <bool>();

                var t = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical);

                if (Program.Config.SubMenu("Combo").Item("UseRC").GetValue <bool>() && R.IsReady() &&
                    t.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 300) && AsheQ >= 2 &&
                    t.Health > R.GetDamage(t) + ObjectManager.Player.TotalAttackDamage * 4)
                {
                    R.Cast(t);
                }

                if (Q.IsReady() && AsheQCastReady)
                {
                    if (t.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 90))
                    {
                        Q.Cast();
                    }
                }

                if (useW && W.IsReady() && t.IsValidTarget())
                {
                    W.Cast(t);
                }

                var useR = Program.Config.SubMenu("Combo").Item("UseRC").GetValue <bool>();
                if (useR && R.IsReady())
                {
                    var minRRange = Program.Config.SubMenu("Combo").Item("UseRCMinRange").GetValue <Slider>().Value;
                    var maxRRange = Program.Config.SubMenu("Combo").Item("UseRCMaxRange").GetValue <Slider>().Value;

                    t = TargetSelector.GetTarget(maxRRange, TargetSelector.DamageType.Physical);
                    if (!t.IsValidTarget())
                    {
                        return;
                    }

                    var aaDamage = Orbwalking.InAutoAttackRange(t)
                                       ? ObjectManager.Player.GetAutoAttackDamage(t, true)
                                       : 0;

                    if (t.Health > aaDamage && t.Health <= ObjectManager.Player.GetSpellDamage(t, SpellSlot.R) &&
                        ObjectManager.Player.Distance(t) >= minRRange)
                    {
                        R.Cast(t);
                    }
                }
            }

            //Harass
            if (HarassActive)
            {
                var target = TargetSelector.GetTarget(1200, TargetSelector.DamageType.Physical);
                if (target == null)
                {
                    return;
                }

                if (Config.Item("UseWH" + Id).GetValue <bool>() && W.IsReady())
                {
                    W.Cast(target);
                }
            }

            //Manual cast R
            if (Config.Item("RManualCast" + Id).GetValue <KeyBind>().Active)
            {
                var rTarget = TargetSelector.GetTarget(2000, TargetSelector.DamageType.Physical);
                R.Cast(rTarget);
            }
        }
示例#59
0
        private static bool InAttackRange(Obj_AI_Hero target)
        {
            if ((Config.GetStringIndex("伤害类型" + Player.ChampionName) == 1 || Config.GetStringIndex("伤害类型" + Player.ChampionName) == 3) && Orbwalking.InAutoAttackRange(target))
            {
                return(true);
            }

            if (Config.GetStringIndex("伤害类型" + Player.ChampionName) == 2 && (Q.CanCast(target) || W.CanCast(target) || E.CanCast(target) || R.CanCast(target) || Orbwalking.InAutoAttackRange(target)))
            {
                return(true);
            }
            return(false);
        }
示例#60
0
        public override void ExecuteCombo()
        {
            if (GetValue <bool>("Combo.Q.Use.Urf") && Q.IsReady())
            {
                var fPredEnemy =
                    HeroManager.Enemies.Where(e => e.IsValidTarget(Q.Range * 1.2f))
                    .Select(enemy => Q.GetPrediction(enemy, true))
                    .FirstOrDefault(pred => pred.Hitchance >= HitChance.High);
                if (fPredEnemy != null && !CommonUtils.IsWallBetween(ObjectManager.Player.Position, fPredEnemy.CastPosition))
                {
                    Q.Cast(fPredEnemy.CastPosition);
                }
            }


            if (GetValue <bool>("Combo.Q.Use") && Q.IsReady())
            {
                var fPredEnemy =
                    HeroManager.Enemies.Where(e => e.IsValidTarget(Q.Range * 1.2f) && Q.IsKillable(e))
                    .Select(enemy => Q.GetPrediction(enemy, true))
                    .FirstOrDefault(pred => pred.Hitchance >= HitChance.High);
                if (fPredEnemy != null && !CommonUtils.IsWallBetween(ObjectManager.Player.Position, fPredEnemy.CastPosition))
                {
                    Q.Cast(fPredEnemy.CastPosition);
                }
            }

            if (GetValue <bool>("Combo.Q.Use") && Q.IsReady() && !HaveAmmo1)
            {
                var fPredEnemy =
                    HeroManager.Enemies.Where(e => e.IsValidTarget(Q.Range * 1.2f))
                    .Select(enemy => Q.GetPrediction(enemy, true))
                    .FirstOrDefault(pred => pred.Hitchance >= HitChance.High);
                if (fPredEnemy != null && !CommonUtils.IsWallBetween(ObjectManager.Player.Position, fPredEnemy.CastPosition))
                {
                    Q.Cast(fPredEnemy.CastPosition);
                }
            }
            if (GetValue <bool>("Combo.E.Use") && !Q.IsReady() && !HaveAmmo1 && E.IsReady())
            {
                var t = TargetSelector.GetTarget(Orbwalking.GetRealAutoAttackRange(null) + 65, TargetSelector.DamageType.Physical);
                if (t.IsValidTarget())
                {
                    E.Cast(CommonUtils.GetDashPosition(E, t, 200));
                }
            }

            if (GetValue <bool>("Combo.W.Use") && W.IsReady() && ObjectManager.Player.Mana > (Q.ManaCost + E.ManaCost + W.ManaCost + (R.Cooldown < 10 ? R.ManaCost:0)))
            {
                var t = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical);
                if (t.IsValidTarget(W.Range) && (t.HasBuffOfType(BuffType.Stun) || t.HasBuffOfType(BuffType.Snare) || t.HasBuffOfType(BuffType.Taunt)))
                {
                    W.Cast(t, false, true);
                }
            }

            if (GetValue <bool>("Combo.W.Use") && W.IsReady() &&
                ObjectManager.Player.Mana > (Q.ManaCost + E.ManaCost + W.ManaCost + (R.Cooldown < 10 ? R.ManaCost : 0)))
            {
                var t = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical);
                if (t.IsValidTarget())
                {
                    W.Cast(t, false, true);
                }
            }

            if (GetValue <bool>("Combo.R.Use") && R.IsReady())
            {
                CastR();
            }

            base.ExecuteCombo();
        }