コード例 #1
0
        /// <summary>
        /// Gets the hero average damage to the opposing team.
        /// </summary>
        /// <param name="player">The player.</param>
        /// <param name="Enemies">The enemies.</param>
        /// <returns></returns>
        public static float GetHeroAvgDamage(Obj_AI_Hero player, List<Obj_AI_Hero> Enemies)
        {
            var totalEnemies = Enemies.Count();
            if (totalEnemies == 0)
            {
                return -1;
            }
            var AADamage = Enemies.Aggregate(0, (current, s) => (int) (current + player.GetAutoAttackDamage(s) * 2));
            var QDamage = Enemies.Aggregate(0, (current, s) => (int)(current + (player.GetSpell(SpellSlot.Q).IsReady() ? player.GetSpellDamage(s, SpellSlot.Q) : 0f)));
            var WDamage = Enemies.Aggregate(0, (current, s) => (int)(current + (player.GetSpell(SpellSlot.W).IsReady() ? player.GetSpellDamage(s, SpellSlot.W) : 0f)));
            var EDamage = Enemies.Aggregate(0, (current, s) => (int)(current + (player.GetSpell(SpellSlot.E).IsReady() ? player.GetSpellDamage(s, SpellSlot.E) : 0f)));
            var RDamage = Enemies.Aggregate(0, (current, s) => (int)(current + (player.GetSpell(SpellSlot.R).IsReady() ? player.GetSpellDamage(s, SpellSlot.R) : 0f)));
            
            var itemsDamage = 0f;

            foreach (var item in player.InventoryItems)
            {
                foreach (var hero in Enemies)
                {
                    var itemID = item.Id;
                    switch (itemID)
                    {
                        case ItemId.Bilgewater_Cutlass:
                            itemsDamage +=
                                (float) player.GetItemDamage(hero, Damage.DamageItems.Bilgewater);
                            break;
                        case ItemId.Blade_of_the_Ruined_King:
                            itemsDamage += (float) player.GetItemDamage(hero, Damage.DamageItems.Botrk);
                            break;
                        case ItemId.Hextech_Gunblade:
                            itemsDamage += (float) player.GetItemDamage(hero, Damage.DamageItems.Hexgun);
                            break;
                        case ItemId.Frost_Queens_Claim:
                            itemsDamage +=
                                (float) player.GetItemDamage(hero, Damage.DamageItems.FrostQueenClaim);
                            break;
                        case ItemId.Tiamat_Melee_Only:
                            itemsDamage += player.IsMelee
                                ? (float) player.GetItemDamage(hero, Damage.DamageItems.Tiamat)
                                : 0f;
                            break;
                        case ItemId.Ravenous_Hydra_Melee_Only:
                            itemsDamage += player.IsMelee
                                ? (float) player.GetItemDamage(hero, Damage.DamageItems.Hydra)
                                : 0f;
                            break;
                        case ItemId.Liandrys_Torment:
                            itemsDamage +=
                                (float) player.GetItemDamage(hero, Damage.DamageItems.LiandrysTorment);
                            break;
                    }
                }
                
            }

            var totalDamage = AADamage + QDamage + WDamage + EDamage + RDamage + itemsDamage;

            return (float) totalDamage / totalEnemies;
        }
コード例 #2
0
ファイル: ModuleComboTime.cs プロジェクト: jayblah/TheNinow
        private void DrawDamage(Obj_AI_Hero sender, Obj_AI_Hero target)
        {
            if (!target.IsVisible || target.IsDead)
                return;
            var screenPos = Drawing.WorldToScreen(target.Position);
            if (_slots.Sum(slot => sender.GetSpell(slot).Cooldown <= 0 ?  sender.GetSpellDamage(target, slot) : 0) > target.Health)
                Drawing.DrawText(screenPos.X, screenPos.Y, Color.Red, "Combo");
            else
            {
                var dps = _slots.Sum(slot => sender.GetSpellDamage(target, slot) / sender.GetSpell(slot).Cooldown) + sender.TotalAttackDamage * (1 / sender.AttackDelay) * ((sender.Crit + 100) / 100f) * (100 / (100f + target.Armor));
               //     Console.WriteLine(dps + " / "+ sender.TotalAttackDamage * (1 / sender.AttackDelay) * ((sender.Crit + 100) / 100f) * (100 / (100f + target.Armor)));

                Drawing.DrawText(screenPos.X, screenPos.Y, Color.Red, "> " + string.Format("{0:0.0} s", target.Health / dps));
            }
        }
コード例 #3
0
        /// <summary>
        /// Gets the hero average damage to the opposing team.
        /// </summary>
        /// <param name="player">The player.</param>
        /// <param name="Enemies">The enemies.</param>
        /// <returns></returns>
        public static float GetHeroAvgDamage(Obj_AI_Hero player, List<Obj_AI_Hero> Enemies)
        {
            var totalEnemies = Enemies.Count();
            if (totalEnemies == 0)
            {
                return -1;
            }
            var AADamage = Enemies.Aggregate(0, (current, s) => (int) (current + player.GetAutoAttackDamage(s)));
            var QDamage = Enemies.Aggregate(0, (current, s) => (int)(current + (player.GetSpell(SpellSlot.Q).IsReady() ? player.GetSpellDamage(s, SpellSlot.Q) : 0)));
            var WDamage = Enemies.Aggregate(0, (current, s) => (int)(current + (player.GetSpell(SpellSlot.W).IsReady() ? player.GetSpellDamage(s, SpellSlot.W) : 0)));
            var EDamage = Enemies.Aggregate(0, (current, s) => (int)(current + (player.GetSpell(SpellSlot.E).IsReady() ? player.GetSpellDamage(s, SpellSlot.E) : 0)));
            var RDamage = Enemies.Aggregate(0, (current, s) => (int)(current + (player.GetSpell(SpellSlot.R).IsReady() ? player.GetSpellDamage(s, SpellSlot.R) : 0)));

            var totalDamage = AADamage + QDamage + WDamage + EDamage + RDamage;

            return (float) totalDamage / totalEnemies;
        }
コード例 #4
0
ファイル: Helper.cs プロジェクト: Karbanthus/LeagueSharp
        public static double GetAlliesComboDmg(Obj_AI_Hero target, Obj_AI_Hero ally)
        {
            var SpellSlots = new List<SpellSlot>();
            double dmg = 0;
            #region SpellSots
            SpellSlots.Add(SpellSlot.Q);
            SpellSlots.Add(SpellSlot.W);
            SpellSlots.Add(SpellSlot.E);
            SpellSlots.Add(SpellSlot.R);
            #endregion

            foreach (var slot in SpellSlots)
            {
                var spell = ally.Spellbook.GetSpell(slot);

                dmg += ally.GetSpellDamage(target, slot);
                dmg += ally.GetAutoAttackDamage(target);
            }

            return dmg;
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: lanyi777/CN
        private static void Game_OnGameLoad(EventArgs args)
        {
            Player = ObjectManager.Player;

            if (Player.ChampionName != ChampionName) return;

            //Create the spells
            Q = new Spell(SpellSlot.Q, 1550);
            W = new Spell(SpellSlot.W, 1000);
            E = new Spell(SpellSlot.E, 1150);
            R = new Spell(SpellSlot.R, 675);

            Q.SetSkillshot(0.6f, 100f, float.MaxValue, false, SkillshotType.SkillshotLine);
            W.SetSkillshot(0.7f, 125f, float.MaxValue, false, SkillshotType.SkillshotCircle);
            E.SetSkillshot(0.25f, 60f, 1400f, true, SkillshotType.SkillshotLine);
            R.SetSkillshot(0.7f, 120f, float.MaxValue, false, SkillshotType.SkillshotCircle);

            Q.SetCharged("XerathArcanopulseChargeUp", "XerathArcanopulseChargeUp", 750, 1550, 1.5f);

            SpellList.Add(Q);
            SpellList.Add(W);
            SpellList.Add(E);
            SpellList.Add(R);

            //Create the menu
            Config = new Menu(ChampionName, ChampionName, true);

            //Orbwalker submenu
              Config.AddSubMenu(new Menu("璧扮爫", "Orbwalking"));

            //Add the target selector to the menu as submenu.
            var targetSelectorMenu = new Menu("鐩爣閫夋嫨", "Target Selector");
            SimpleTs.AddToMenu(targetSelectorMenu);
            Config.AddSubMenu(targetSelectorMenu);

            //Load the orbwalker and add it to the menu as submenu.
            Orbwalker = new Orbwalking.Orbwalker(Config.SubMenu("Orbwalking"));

            //Combo menu:
            Config.AddSubMenu(new Menu("杩炴嫑", "Combo"));
            Config.SubMenu("Combo").AddItem(new MenuItem("UseQCombo", "浣跨敤 Q").SetValue(true));
            Config.SubMenu("Combo").AddItem(new MenuItem("UseWCombo", "浣跨敤 W").SetValue(true));
            Config.SubMenu("Combo").AddItem(new MenuItem("UseECombo", "浣跨敤 E").SetValue(true));
            Config.SubMenu("Combo")
                .AddItem(
                    new MenuItem("ComboActive", "杩炴嫑!").SetValue(
                        new KeyBind(Config.Item("Orbwalk").GetValue<KeyBind>().Key, KeyBindType.Press)));

            //Misc
            Config.AddSubMenu(new Menu("R", "R"));
            Config.SubMenu("R").AddItem(new MenuItem("EnableRUsage", "鑷姩浣跨敤澶ф嫑").SetValue(true));
            Config.SubMenu("R").AddItem(new MenuItem("rMode", "妯″紡").SetValue(new StringList(new[] { "姝e父", "鑷畾涔?", "OnTap"})));
            Config.SubMenu("R").AddItem(new MenuItem("rModeKey", "OnTap鎸夐挳").SetValue(new KeyBind("T".ToCharArray()[0], KeyBindType.Press)));
            Config.SubMenu("R").AddSubMenu(new Menu("璁剧疆寤惰繜", "Custom delays"));
            for (int i = 1; i <= 3; i++)
                Config.SubMenu("R").SubMenu("Custom delays").AddItem(new MenuItem("Delay"+i, "Delay"+i).SetValue(new Slider(0, 1500, 0)));
            Config.SubMenu("R").AddItem(new MenuItem("PingRKillable", "Ping鍙潃姝荤洰鏍?鏈湴)").SetValue(true));
            Config.SubMenu("R").AddItem(new MenuItem("BlockMovement", "鏈夐殰纰嶇墿鏃剁瓑寰呮姇鎺稲").SetValue(false));

            //Harass menu:
            Config.AddSubMenu(new Menu("楠氭壈", "Harass"));
            Config.SubMenu("Harass").AddItem(new MenuItem("UseQHarass", "浣跨敤 Q").SetValue(true));
            Config.SubMenu("Harass").AddItem(new MenuItem("UseWHarass", "浣跨敤 W").SetValue(false));
            Config.SubMenu("Harass")
                .AddItem(
                    new MenuItem("HarassActive", "楠氭壈!").SetValue(
                        new KeyBind(Config.Item("Farm").GetValue<KeyBind>().Key, KeyBindType.Press)));
            Config.SubMenu("Harass")
                .AddItem(
                    new MenuItem("HarassActiveT", "楠氭壈 (鎸夐敭)!").SetValue(new KeyBind("Y".ToCharArray()[0],
                        KeyBindType.Toggle)));

            //Farming menu:
               Config.AddSubMenu(new Menu("琛ュ叺", "Farm"));
            Config.SubMenu("Farm")
                .AddItem(
                    new MenuItem("UseQFarm", "浣跨敤 Q").SetValue(
                        new StringList(new[] { "琛ュ叺", "娓呭叺", "鍏ㄩ儴", "涓嶇敤" }, 2)));
            Config.SubMenu("Farm")
                .AddItem(
                    new MenuItem("UseWFarm", "浣跨敤 W").SetValue(
                        new StringList(new[] { "琛ュ叺", "娓呭叺", "鍏ㄩ儴", "涓嶇敤" }, 1)));
            Config.SubMenu("Farm")
                .AddItem(
                    new MenuItem("FreezeActive", "琛ュ叺!").SetValue(
                        new KeyBind(Config.Item("Farm").GetValue<KeyBind>().Key, KeyBindType.Press)));
            Config.SubMenu("Farm")
                .AddItem(
                    new MenuItem("LaneClearActive", "娓呭叺!").SetValue(
                        new KeyBind(Config.Item("LaneClear").GetValue<KeyBind>().Key, KeyBindType.Press)));

            //JungleFarm menu:
            Config.AddSubMenu(new Menu("娓呴噹", "JungleFarm"));
            Config.SubMenu("JungleFarm").AddItem(new MenuItem("UseQJFarm", "浣跨敤 Q").SetValue(true));
            Config.SubMenu("JungleFarm").AddItem(new MenuItem("UseWJFarm", "浣跨敤 W").SetValue(true));
            Config.SubMenu("JungleFarm")
                .AddItem(
                    new MenuItem("JungleFarmActive", "娓呴噹!").SetValue(
                        new KeyBind(Config.Item("LaneClear").GetValue<KeyBind>().Key, KeyBindType.Press)));

            //Misc
            Config.AddSubMenu(new Menu("鏉傞」", "Misc"));
            Config.SubMenu("Misc").AddItem(new MenuItem("InterruptSpells", "鎵撴柇娉曟湳").SetValue(true));
            Config.SubMenu("Misc").AddItem(new MenuItem("AutoEGC", "鑷姩E闃茬獊鑴?").SetValue(true));

            //Damage after combo:
            var dmgAfterComboItem = new MenuItem("DamageAfterR", "鏄剧ず鎹熶激").SetValue(true);
            Utility.HpBarDamageIndicator.DamageToUnit += hero => (float)Player.GetSpellDamage(hero, SpellSlot.R) * 3;
            Utility.HpBarDamageIndicator.Enabled = dmgAfterComboItem.GetValue<bool>();
            dmgAfterComboItem.ValueChanged += delegate(object sender, OnValueChangeEventArgs eventArgs)
            {
                Utility.HpBarDamageIndicator.Enabled = eventArgs.GetNewValue<bool>();
            };

            //Drawings menu:
            Config.AddSubMenu(new Menu("鑼冨洿", "Drawings"));
            Config.SubMenu("Drawings")
                .AddItem(
                    new MenuItem("QRange", "Q 鑼冨洿").SetValue(new Circle(true, Color.FromArgb(150, Color.DodgerBlue))));
            Config.SubMenu("Drawings")
                .AddItem(
                    new MenuItem("WRange", "W 鑼冨洿").SetValue(new Circle(true, Color.FromArgb(150, Color.DodgerBlue))));
            Config.SubMenu("Drawings")
                .AddItem(
                    new MenuItem("ERange", "E 鑼冨洿").SetValue(new Circle(false, Color.FromArgb(150, Color.DodgerBlue))));
            Config.SubMenu("Drawings")
                .AddItem(
                    new MenuItem("RRange", "R 鑼冨洿").SetValue(new Circle(false, Color.FromArgb(150, Color.DodgerBlue))));
            Config.SubMenu("Drawings")
                .AddItem(
                    new MenuItem("RRangeM", "R 鑼冨洿 灏忓湴鍥?").SetValue(new Circle(false,
                        Color.FromArgb(150, Color.DodgerBlue))));
            Config.SubMenu("Drawings")
                .AddItem(dmgAfterComboItem);
                Config.AddSubMenu(new Menu("L#涓枃绀惧尯", "guanggao"));
                Config.SubMenu("guanggao").AddItem(new MenuItem("wangzhan", "www.loll35.com"));
                Config.SubMenu("guanggao").AddItem(new MenuItem("qunhao", "姹夊寲缇わ細397983217"));
            Config.AddToMainMenu();

            //Add the events we are going to use:
            Game.OnGameUpdate += Game_OnGameUpdate;
            Drawing.OnDraw += Drawing_OnDraw;
            Drawing.OnEndScene += Drawing_OnEndScene;
            Interrupter.OnPossibleToInterrupt += Interrupter_OnPossibleToInterrupt;
            AntiGapcloser.OnEnemyGapcloser += AntiGapcloser_OnEnemyGapcloser;
            Obj_AI_Hero.OnProcessSpellCast += Obj_AI_Hero_OnProcessSpellCast;
            Game.OnWndProc += Game_OnWndProc;
            Game.PrintChat(ChampionName + " Loaded!");
            Orbwalking.BeforeAttack += OrbwalkingOnBeforeAttack;
            Game.OnGameSendPacket += GameOnOnGameSendPacket;
        }
コード例 #6
0
        private static void Game_OnGameUpdate(EventArgs args)
        {
            if (Player.IsDead)
            {
                return;
            }

            if (Config.SubMenu("Misc").Item("UseVHHC").GetValue <bool>())
            {
                Q.MinHitChance = HitChance.VeryHigh;
                W.MinHitChance = HitChance.VeryHigh;
                E.MinHitChance = HitChance.VeryHigh;
                R.MinHitChance = HitChance.VeryHigh;
            }
            else
            {
                Q.MinHitChance = HitChance.High;
                W.MinHitChance = HitChance.High;
                E.MinHitChance = HitChance.High;
                R.MinHitChance = HitChance.High;
            }
            Orbwalker.SetMovement(true);

            //Update the R range
            R.Range = 1200 * R.Level + 2000;

            if (IsCastingR)
            {
                Orbwalker.SetMovement(false);
                WhileCastingR();
                return;
            }

            if (R.IsReady() && Config.Item("PingRKillable").GetValue <bool>())
            {
                foreach (var enemy in HeroManager.Enemies.Where(h => h.IsValidTarget() && (float)Player.GetSpellDamage(h, SpellSlot.R) * new int[] { 0, 3, 4, 5 }[Player.GetSpell(SpellSlot.R).Level] > h.Health))
                {
                    Ping(enemy.Position.To2D());
                }
            }

            if (Config.Item("ComboActive").GetValue <KeyBind>().Active)
            {
                Combo();
            }
            else
            {
                if (Config.Item("HarassActive").GetValue <KeyBind>().Active ||
                    Config.Item("HarassActiveT").GetValue <KeyBind>().Active)
                {
                    Harass();
                }

                var lc = Config.Item("LaneClearActive").GetValue <KeyBind>().Active;
                if (lc || Config.Item("FreezeActive").GetValue <KeyBind>().Active)
                {
                    Farm(lc);
                }

                if (Config.Item("JungleFarmActive").GetValue <KeyBind>().Active)
                {
                    JungleFarm();
                }
            }
        }
コード例 #7
0
ファイル: Cassiopeia.cs プロジェクト: cctv85782/LeagueSharp-8
        private static void WaveClear()
        {
            var Minions =
                ObjectManager.Get <Obj_AI_Minion>()
                .Where(
                    m =>
                    (m.IsValidTarget()) &&
                    (Vector3.Distance(m.ServerPosition, Player.ServerPosition) <= Spells[SpellSlot.R].Range));

            if (SpellSlot.Q.IsReady() && CassioUtils.Active("Waveclear.UseQ"))
            {
                var qminions =
                    Minions.Where(
                        m =>
                        Vector3.Distance(m.ServerPosition, Player.ServerPosition) <= Spells[SpellSlot.Q].Range);
                MinionManager.FarmLocation QLocation =
                    MinionManager.GetBestCircularFarmLocation(
                        qminions.Select(m => m.ServerPosition.To2D()).ToList(), Spells[SpellSlot.Q].Width,
                        Spells[SpellSlot.Q].Range);
                if (QLocation.MinionsHit >= 1)
                {
                    Spells[SpellSlot.Q].Cast(QLocation.Position);
                }
            }


            if (SpellSlot.W.IsReady() && CassioUtils.Active("Waveclear.UseW"))
            {
                var wminions = Minions.Where(m =>
                                             Vector3.Distance(m.ServerPosition, Player.ServerPosition) <= Spells[SpellSlot.W].Range);
                MinionManager.FarmLocation WLocation =
                    MinionManager.GetBestCircularFarmLocation(
                        wminions.Select(m => m.ServerPosition.To2D()).ToList(), Spells[SpellSlot.W].Width,
                        Spells[SpellSlot.W].Range);
                if (WLocation.MinionsHit >= 1)
                {
                    Spells[SpellSlot.W].Cast(WLocation.Position);
                }
            }

            if (SpellSlot.E.IsReady() && CassioUtils.Active("Waveclear.UseE"))
            {
                Obj_AI_Minion KillableMinionE = null;
                var           eminions        = Minions.Where(m =>
                                                              Vector3.Distance(m.ServerPosition, Player.ServerPosition) <= Spells[SpellSlot.E].Range);
                if (CassioUtils.Active("Waveclear.useekillable"))
                {
                    KillableMinionE = eminions.FirstOrDefault(m => m.Health < Player.GetSpellDamage(m, SpellSlot.E));
                }
                else
                {
                    KillableMinionE = eminions.OrderBy(x => x.Health).FirstOrDefault();
                }

                if (KillableMinionE != null)
                {
                    if (CassioUtils.Active("Waveclear.useepoison"))
                    {
                        if (KillableMinionE.isPoisoned())
                        {
                            Spells[SpellSlot.E].Cast(KillableMinionE);
                        }
                    }
                    else
                    {
                        Spells[SpellSlot.E].Cast(KillableMinionE);
                    }
                }
            }

            if (SpellSlot.R.IsReady() && CassioUtils.Active("Waveclear.UseR"))
            {
                MinionManager.FarmLocation RLocation =
                    MinionManager.GetBestLineFarmLocation(
                        Minions.Select(m => m.ServerPosition.To2D()).ToList(), Spells[SpellSlot.R].Width,
                        Spells[SpellSlot.R].Range);
                if (RLocation.MinionsHit > CassioUtils.GetSlider("Waveclear.Rcount"))
                {
                    Spells[SpellSlot.R].Cast(RLocation.Position);
                    DontMove = true;
                    Utility.DelayAction.Add(200, () => DontMove = false);
                }
            }
        }
コード例 #8
0
        private static float GetComboDamage(Obj_AI_Base enemy)
        {
            double damage = 0d;

            if (Q.IsReady())
            {
                damage += Player.GetSpellDamage(enemy, SpellSlot.Q);
            }

            if (E.IsReady() & (Q.IsReady() || R.IsReady()))
            {
                damage += Player.GetSpellDamage(enemy, SpellSlot.E) * 2;
            }
            else if (E.IsReady())
            {
                damage += Player.GetSpellDamage(enemy, SpellSlot.E);
            }

            if (IgniteSlot != SpellSlot.Unknown && Player.SummonerSpellbook.CanUseSpell(IgniteSlot) == SpellState.Ready)
            {
                damage += ObjectManager.Player.GetSummonerSpellDamage(enemy, Damage.SummonerSpell.Ignite);
            }

            if (R.IsReady())
            {
                damage += Player.GetSpellDamage(enemy, SpellSlot.R) * 3;
            }

            return((float)damage);
        }
コード例 #9
0
        private static void Combo(Obj_AI_Hero target)
        {
            if (Spells[SpellSlot.Q].IsReady() && LuxUtils.Active("Combo.UseQ") && Player.Distance(target) <= Spells[SpellSlot.Q].Range)
            {
                var pred = Spells[SpellSlot.Q].GetPrediction(target, true);
                if (pred.CollisionObjects.Count <= 1 && pred.Hitchance >= LuxUtils.GetHitChance("Hitchance.Q"))
                {
                    Spells[SpellSlot.Q].Cast(pred.CastPosition);
                }
            }
            if (Spells[SpellSlot.E].IsReady() && LuxE == null && LuxUtils.Active("Combo.UseE") && Player.Distance(target) <= Spells[SpellSlot.E].Range)
            {
                var pred = Spells[SpellSlot.E].GetPrediction(target, true);
                if (pred.Hitchance >= LuxUtils.GetHitChance("Hitchance.E"))
                {
                    Spells[SpellSlot.E].Cast(pred.CastPosition);
                }
            }
            else if (LuxUtils.Active("Combo.UseE2") && LuxE != null &&
                     Vector3.Distance(LuxE.Position, target.ServerPosition) <=
                     LuxE.BoundingRadius + target.BoundingRadius)
            {
                Spells[SpellSlot.E].Cast();
            }

            if (SpellSlot.R.IsReady() && LuxUtils.Active("Combo.UseR"))
            {
                List <Obj_AI_Hero> targets = new List <Obj_AI_Hero>();
                if (LuxUtils.Active("Combo.RKillable"))
                {
                    targets =
                        HeroManager.Enemies.Where(
                            x =>
                            x.Health <= Player.GetSpellDamage(x, SpellSlot.R) &&
                            x.Distance(Player) <= Spells[SpellSlot.R].Range).ToList();
                }
                else
                {
                    targets = HeroManager.Enemies.Where(x => x.Distance(Player) <= Spells[SpellSlot.R].Range).ToList();
                }

                List <CastPosition1> Positions = new List <CastPosition1>();

                foreach (var h in targets)
                {
                    var pred = Spells[SpellSlot.R].GetPrediction(h, true);
                    int hit  = pred.AoeTargetsHitCount + 1;
                    // List<Obj_AI_Base> collobjs =
                    //  pred.CollisionObjects.FindAll(x => x.Type == GameObjectType.obj_AI_Hero && x.IsEnemy);

                    CastPosition1 cp = new CastPosition1
                    {
                        pos       = pred.CastPosition,
                        hc        = pred.Hitchance,
                        numberhit = hit,
                        hasbuff   = h.HasBuff("LuxLightBindingMis")
                    };
                    Positions.Add(cp);
                }

                var bestpossibleposition =
                    Positions.OrderByDescending(x => x.numberhit)
                    .ThenByDescending(x => x.hc)
                    .ThenByDescending(h => h.hasbuff)
                    .FirstOrDefault();
                if (bestpossibleposition != null && bestpossibleposition.hc >= LuxUtils.GetHitChance("Hitchance.R") &&
                    bestpossibleposition.numberhit >= LuxUtils.GetSlider("Combo.Rcount"))
                {
                    Spells[SpellSlot.R].Cast(bestpossibleposition.pos);
                }
            }


            if (SpellSlot.W.IsReady() && LuxUtils.Active("Combo.UseW"))
            {
                var list = HeroManager.Allies;

                var lowhealthallies =
                    list.Where(ally => ally.HealthPercent <= 40 && Player.Distance(ally) <= Spells[SpellSlot.W].Range);
                Obj_AI_Hero besthero = null;
                int         amthit   = 0;
                foreach (var hero in lowhealthallies)
                {
                    var pred = Prediction.GetPrediction(WInput(hero));
                    if (pred.Hitchance >= HitChance.Collision || pred.Hitchance >= HitChance.Low)
                    {
                        var coll = pred.CollisionObjects.Count;
                        if (coll >= amthit)
                        {
                            amthit   = coll;
                            besthero = hero;
                        }
                    }
                }
                if (besthero != null && Player.HealthPercent <= 30 && Player.CountEnemiesInRange(800) > 0)
                {
                    Spells[SpellSlot.W].Cast(besthero.ServerPosition);
                }
            }
        }
コード例 #10
0
        private static void Combo()
        {
            var t = GetTarget(Q.Range, TargetSelector.DamageType.Physical);

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

            var useQ        = Config.Item("UseQCombo").GetValue <bool>();
            var useE        = Config.Item("UseECombo").GetValue <bool>();
            var useR        = Config.Item("UseRCombo").GetValue <bool>();
            var comboDamage = GetComboDamage(t);

            if (Q.IsReady() && useQ && t.IsValidTarget(Q.Range))
            {
                if (Q.IsCharging)
                {
                    Q.Cast(t);
                }
                else
                {
                    Q.StartCharging();
                }
            }

            UseItems(t);

            if (comboDamage > t.Health && IgniteSlot != SpellSlot.Unknown &&
                vPlayer.Spellbook.CanUseSpell(IgniteSlot) == SpellState.Ready)
            {
                vPlayer.Spellbook.CastSpell(IgniteSlot, t);
            }

            if (E.IsReady() && useE && t.IsValidTarget(Orbwalking.GetRealAutoAttackRange(vPlayer)))
            {
                E.Cast();
            }

            if (R.IsReady())
            {
                useR = (Config.Item("DontUlt" + t.BaseSkinName) != null &&
                        Config.Item("DontUlt" + t.BaseSkinName).GetValue <bool>() == false) && useR;

                var qDamage = vPlayer.GetSpellDamage(t, SpellSlot.Q);
                var eDamage = vPlayer.GetSpellDamage(t, SpellSlot.E) * E.Instance.Ammo;
                var rDamage = vPlayer.GetSpellDamage(t, SpellSlot.R);

                if (Q.IsReady() && t.Health < qDamage)
                {
                    return;
                }

                if (E.IsReady() && Orbwalking.InAutoAttackRange(t) && t.Health < eDamage)
                {
                    return;
                }

                if (Q.IsReady() && E.IsReady() && t.Health < qDamage + eDamage)
                {
                    return;
                }

                if (useR)
                {
                    if (t.Health > rDamage)
                    {
                        if (Q.IsReady() && E.IsReady() && t.Health < rDamage + qDamage + eDamage)
                        {
                            R.CastOnUnit(t);
                        }
                        else if (E.IsReady() && t.Health < rDamage + eDamage)
                        {
                            R.CastOnUnit(t);
                        }
                        else if (Q.IsReady() && t.Health < rDamage + qDamage)
                        {
                            R.CastOnUnit(t);
                        }
                    }
                    else
                    {
                        if (!Orbwalking.InAutoAttackRange(t))
                        {
                            R.CastOnUnit(t);
                        }
                    }
                }
            }
        }
コード例 #11
0
ファイル: Program.cs プロジェクト: swp903/leaguesharp
        public static double spellDamage(Obj_AI_Base mob)
        {
            double      result = 0;
            Obj_AI_Hero hero   = ObjectManager.Player;

            if (hero.ChampionName == "Nunu")
            {
                return(250 + (150 * hero.Spellbook.GetSpell(champSpell.Slot).Level));
            }
            if (hero.ChampionName == "Chogath")
            {
                return(1000 + (hero.FlatMagicDamageMod * 0.7));
            }
            if (hero.ChampionName == "Elise")
            {
                return(hero.GetSpellDamage(mob, champSpell.Slot));
            }
            if (hero.ChampionName == "Lux")
            {
                return(hero.GetSpellDamage(mob, champSpell.Slot) - 100);
            }
            if (hero.ChampionName == "Volibear")
            {
                return(((35 + (45 * hero.Spellbook.GetSpell(SpellSlot.W).Level)) + ((hero.MaxHealth - (86 * hero.Level + 440)) * 0.15)) * ((mob.MaxHealth - mob.Health) / mob.MaxHealth + 1));
            }
            if (hero.ChampionName == "Warwick")
            {
                return(25 + (50 * hero.Spellbook.GetSpell(champSpell.Slot).Level));
            }
            if (hero.ChampionName == "Olaf")
            {
                return(hero.GetSpellDamage(mob, champSpell.Slot));
            }
            if (hero.ChampionName == "Twitch")
            {
                return(hero.GetSpellDamage(mob, champSpell.Slot));
            }
            if (hero.ChampionName == "Shaco")
            {
                return(10 + (40 * hero.Spellbook.GetSpell(champSpell.Slot).Level));
            }
            if (hero.ChampionName == "Vi")
            {
                return(hero.GetSpellDamage(mob, champSpell.Slot));
            }
            if (hero.ChampionName == "Pantheon")
            {
                return(hero.GetSpellDamage(mob, champSpell.Slot));
            }
            if (hero.ChampionName == "MasterYi")
            {
                return(hero.GetSpellDamage(mob, champSpell.Slot));
            }
            if (hero.ChampionName == "MonkeyKing")
            {
                return(hero.GetSpellDamage(mob, champSpell.Slot));
            }
            if (hero.ChampionName == "KhaZix")
            {
                return(getKhazixDmg(mob));
            }
            if (hero.ChampionName == "Rammus")
            {
                return(hero.GetSpellDamage(mob, champSpell.Slot));
            }
            if (hero.ChampionName == "Rengar")
            {
                return(hero.GetSpellDamage(mob, champSpell.Slot));
            }
            if (hero.ChampionName == "Nasus")
            {
                return(hero.GetSpellDamage(mob, champSpell.Slot));
            }
            if (hero.ChampionName == "Xerath")
            {
                champSpell.Range = 2000 + champSpell.Level * 1200;//Update R range
                return(hero.GetSpellDamage(mob, champSpell.Slot));
            }
            if (hero.ChampionName == "LeeSin")
            {
                return(getQ2Dmg(mob));
            }
            if (hero.ChampionName == "Veigar")
            {
                return(hero.GetSpellDamage(mob, champSpell.Slot));
            }
            if (hero.ChampionName == "Udyr")
            {
                return(getUdyrR(mob));
            }
            if (hero.ChampionName == "Fizz")
            {
                return(hero.GetSpellDamage(mob, champSpell.Slot));
            }
            if (hero.ChampionName == "Kalista")
            {
                return(getKalistaEDmg(mob));
            }
            if (hero.ChampionName == "Irelia")
            {
                return(hero.GetSpellDamage(mob, champSpell.Slot));
            }
            return(result);
        }
コード例 #12
0
ファイル: CommonData.cs プロジェクト: fgpmaia123/KaiserSharp
        /// <summary>
        ///     GetCOmboDmg
        /// </summary>
        /// <param name="target"></param>
        /// <param name="ally"></param>
        /// <returns></returns>

        protected double GetAlliesComboDmg(Obj_AI_Hero target, Obj_AI_Hero ally)
        {
            return(ally.GetSpellDamage(target, SpellSlot.Q) + ally.GetSpellDamage(target, SpellSlot.W) + ally.GetSpellDamage(target, SpellSlot.E) + ally.GetSpellDamage(target, SpellSlot.R));
        }
コード例 #13
0
ファイル: Program.cs プロジェクト: 8123772/aiqiang
        private static float GetComboDamage(Obj_AI_Base enemy)
        {
            double damage = 0d;

            if (Dfg.IsReady())
            {
                damage += Player.GetItemDamage(enemy, Damage.DamageItems.Dfg) / 1.2;
            }

            if (Q.IsReady())
            {
                damage += Player.GetSpellDamage(enemy, SpellSlot.Q);
            }

            if (R.IsReady())
            {
                damage += Player.GetSpellDamage(enemy, SpellSlot.R);
            }

            if (Dfg.IsReady())
            {
                damage = damage * 1.2;
            }

            if (W.IsReady())
            {
                damage += Player.GetSpellDamage(enemy, SpellSlot.W);
            }

            if (IgniteSlot != SpellSlot.Unknown && Player.SummonerSpellbook.CanUseSpell(IgniteSlot) == SpellState.Ready)
            {
                damage += ObjectManager.Player.GetSummonerSpellDamage(enemy, Damage.SummonerSpell.Ignite);
            }

            if (Items.HasItem(3155, (Obj_AI_Hero)enemy))
            {
                damage = damage - 250;
            }

            if (Items.HasItem(3156, (Obj_AI_Hero)enemy))
            {
                damage = damage - 400;
            }
            return((float)damage);
        }
コード例 #14
0
        private static void Smartks()
        {
            foreach (
                var t in ObjectManager.Get <Obj_AI_Hero>().Where(t => t.IsEnemy).Where(t => t.IsValidTarget(_q.Range)))
            {
                #region e
                if (t.Health < _player.GetSpellDamage(t, SpellSlot.E) && _e.IsReady())
                {
                    _e.Cast(t);
                }
                #endregion
                #region q

                else if (t.Health < _player.GetSpellDamage(t, SpellSlot.Q) && _q.IsReady())
                {
                    _q.Cast(t);
                }
                #endregion
                #region eq
                else if (t.Health < (_player.GetSpellDamage(t, SpellSlot.Q) + (_player.GetSpellDamage(t, SpellSlot.E))) && _e.IsReady() && _q.IsReady())
                {
                    _e.Cast(t);

                    if (_e.Cast(t) == CastStates.SuccessfullyCasted)
                    {
                        _q.Cast(t);
                    }
                }
                #endregion
                #region eq ignite

                else if ((t.Health < (_player.GetSpellDamage(t, SpellSlot.Q) + (_player.GetSpellDamage(t, SpellSlot.E) + _player.GetSpellDamage(t, IgniteSlot)))) && _e.IsReady() && IgniteSlot.IsReady() && _q.IsReady() && IgniteSlot != SpellSlot.Unknown)
                {
                    _e.Cast(t);
                    if (_e.Cast(t) == CastStates.SuccessfullyCasted)
                    {
                        _q.Cast(t);
                        _player.Spellbook.CastSpell(IgniteSlot, t);
                    }
                }
                #endregion
                #region eq Ignite R
                else if (_cfg["KillSteal"]["RKS"].GetValue <MenuBool>().Value&& t.Health < (_player.GetSpellDamage(t, SpellSlot.Q) + _player.GetSpellDamage(t, SpellSlot.E) + _player.GetSpellDamage(t, IgniteSlot) + _player.GetSpellDamage(t, SpellSlot.R)) && _e.IsReady() && IgniteSlot.IsReady() && _q.IsReady() && _r.IsReady() && IgniteSlot != SpellSlot.Unknown)
                {
                    if (t.Distance(_player) <= _e.Range)
                    {
                        _e.Cast(t);
                    }
                    if (_e.Cast(t) == CastStates.SuccessfullyCasted && _player.Distance(t) <= _q.Range)
                    {
                        _q.Cast(t);
                    }
                    if (_player.Distance(t) < 600)
                    {
                        _player.Spellbook.CastSpell(IgniteSlot, t);
                    }
                    if (_player.Distance(t) <= _r.Range && _q.Cast(t) == CastStates.SuccessfullyCasted)
                    {
                        _r.Cast();
                    }
                }
                #endregion
            }
        }
コード例 #15
0
        private static float GetComboDamage(Obj_AI_Base enemy)
        {
            double damage = 0d;

            if (DFG.IsReady())
            {
                damage += Player.GetItemDamage(enemy, Damage.DamageItems.Dfg) / 1.2;
            }

            if (Q.IsReady())
            {
                damage += Player.GetSpellDamage(enemy, SpellSlot.Q) + Player.GetSpellDamage(enemy, SpellSlot.Q, 1);
            }

            if (W.IsReady())
            {
                damage += Player.GetSpellDamage(enemy, SpellSlot.W);
            }

            if (E.IsReady())
            {
                damage += Player.GetSpellDamage(enemy, SpellSlot.E);
            }

            if (R.IsReady() || (rSpell.State == SpellState.Surpressed && R.Level > 0))
            {
                damage += Player.GetSpellDamage(enemy, SpellSlot.R) * 8;
            }

            if (DFG.IsReady())
            {
                damage = damage * 1.2;
            }

            if (IgniteSlot != SpellSlot.Unknown && Player.SummonerSpellbook.CanUseSpell(IgniteSlot) == SpellState.Ready)
            {
                damage += ObjectManager.Player.GetSummonerSpellDamage(enemy, Damage.SummonerSpell.Ignite);
            }

            return((float)damage);
        }
コード例 #16
0
        public static void BurstCombo()
        {
            var eTarget = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Magical);

            if (eTarget == null)
            {
                return;
            }

            var useQ           = Config.Item("UseQCombo").GetValue <bool>();
            var useW           = Config.Item("UseWCombo").GetValue <bool>();
            var useE           = Config.Item("UseECombo").GetValue <bool>();
            var useR           = Config.Item("UseRCombo").GetValue <bool>();
            var useIgnite      = Config.Item("UseIgnite").GetValue <bool>();
            var packetCast     = Config.Item("PacketCast").GetValue <bool>();
            var UseRMinEnemies = Config.Item("UseRMinEnemies").GetValue <Slider>().Value;


            double totalComboDamage = 0;

            totalComboDamage += Player.GetSpellDamage(eTarget, SpellSlot.Q);
            totalComboDamage += Player.GetSpellDamage(eTarget, SpellSlot.W);
            totalComboDamage += Player.GetSpellDamage(eTarget, SpellSlot.E);
            totalComboDamage += Player.GetSpellDamage(eTarget, SpellSlot.R);
            totalComboDamage += igniteManager.IsReady() ? Player.GetSummonerSpellDamage(eTarget, Damage.SummonerSpell.Ignite) : 0;

            double totalManaCost = 0;

            totalManaCost += Player.Spellbook.GetSpell(SpellSlot.R).ManaCost;
            totalManaCost += Player.Spellbook.GetSpell(SpellSlot.W).ManaCost;

            if (mustDebug)
            {
                Game.PrintChat("BurstCombo Damage {0}/{1} {2}", Convert.ToInt32(totalComboDamage), Convert.ToInt32(eTarget.Health), eTarget.Health < totalComboDamage ? "BustKill" : "Harras");
                Game.PrintChat("BurstCombo Mana {0}/{1} {2}", Convert.ToInt32(totalManaCost), Convert.ToInt32(eTarget.Mana), Player.Mana >= totalManaCost ? "Mana OK" : "No Mana");
            }

            // Passive UP +1 enemy Combo
            if (useR && R.IsReady())
            {
                var query = DevHelper.GetEnemyList()
                            .Where(x => x.IsValidTarget(R.Range) && HasPassiveBuff(x) && Player.GetSpellDamage(x, SpellSlot.R) > x.Health).OrderBy(x => x.Health);

                if (query.Any())
                {
                    R.CastOnUnit(query.First(), packetCast);
                }
            }


            // Combo Damage
            if (R.IsReady() && useR && eTarget.IsValidTarget(R.Range))
            {
                if (eTarget.Health < totalComboDamage * 0.9 && Player.Mana >= totalManaCost)
                {
                    if (totalComboDamage * 0.3 < eTarget.Health) // Anti OverKill
                    {
                        if (mustDebug)
                        {
                            Game.PrintChat("BurstCombo R");
                        }
                        R.CastOnUnit(eTarget, packetCast);
                    }
                    else
                    {
                        if (mustDebug)
                        {
                            Game.PrintChat("BurstCombo OverKill");
                        }
                    }
                    dtBurstComboStart = DateTime.Now;
                }
            }

            // R min enemies
            if (R.IsReady() && useR && eTarget.IsValidTarget(R.Range))
            {
                var enemiesInRange = DevHelper.GetEnemyList().Where(x => x.Distance(eTarget) < 400);
                if (enemiesInRange.Count() >= UseRMinEnemies)
                {
                    R.CastOnUnit(eTarget, packetCast);
                }
            }

            if (dtBurstComboStart.AddSeconds(5) > DateTime.Now && igniteManager.IsReady())
            {
                if (mustDebug)
                {
                    Game.PrintChat("Ignite");
                }
                igniteManager.Cast(eTarget);
            }
        }
コード例 #17
0
ファイル: Program.cs プロジェクト: loyalvtmc/LeagueSharp-1
        private static void waveclear()
        {
            Menu waveclearMenu = menu.SubMenu("waveclear");
            bool useQ          = waveclearMenu.Item("wcUseQ").GetValue <bool>() && Q.IsReady();
            bool useW          = waveclearMenu.Item("wcUseW").GetValue <bool>() && W.IsReady();
            bool useE          = waveclearMenu.Item("wcUseE").GetValue <bool>() && E.IsReady();

            var allMinionsQ = MinionManager.GetMinions(player.ServerPosition, Q.Range, MinionTypes.All, MinionTeam.Enemy);

            if (useQ)
            {
                foreach (var minion in allMinionsQ)
                {
                    if (minion.IsValidTarget() &&
                        Q.IsKillable(minion))
                    {
                        Q.CastOnUnit(player, packets());
                        return;
                    }
                }
            }

            if (useW && allMinionsQ.Count > 1)
            {
                W.Cast(player, packets());
            }

            if (useE)
            {
                foreach (var minion in allMinionsQ)
                {
                    if (minion.IsValidTarget() &&
                        HealthPrediction.GetHealthPrediction(minion,
                                                             (int)(player.Distance(minion) * 1000 / 1450)) <
                        player.GetSpellDamage(minion, SpellSlot.E))
                    {
                        E.CastOnUnit(minion, packets());
                        return;
                    }
                }
            }

            var jcreeps = MinionManager.GetMinions(player.ServerPosition, E.Range, MinionTypes.All,
                                                   MinionTeam.Neutral, MinionOrderTypes.MaxHealth);

            if (jcreeps.Count > 0)
            {
                var jcreep = jcreeps[0];

                if (useQ)
                {
                    Q.Cast(player, packets());
                }

                if (useW)
                {
                    W.Cast(player, packets());
                }

                if (useE)
                {
                    E.Cast(jcreep, packets());
                }
            }
        }
コード例 #18
0
        private static void CheckDamage(Obj_AI_Base target)
        {
            if (target == null)
            {
                return;
            }

            var ad     = Me.GetAutoAttackDamage(target);
            var ignite = Me.GetSpellSlot("summonerdot");

            var tmt = Items.HasItem(3077) && Items.CanUseItem(3077)
                ? Me.GetItemDamage(target, Damage.DamageItems.Tiamat)
                : 0;

            var hyd = Items.HasItem(3074) && Items.CanUseItem(3074)
                ? Me.GetItemDamage(target, Damage.DamageItems.Hydra)
                : 0;

            var bwc = Items.HasItem(3144) && Items.CanUseItem(3144) ?
                      Me.GetItemDamage(target, Damage.DamageItems.Bilgewater)
                : 0;

            var brk = Items.HasItem(3153) && Items.CanUseItem(3153)
                ? Me.GetItemDamage(target, Damage.DamageItems.Botrk)
                : 0;

            _rr = Me.GetSpellDamage(target, SpellSlot.R) - 20;
            _ra = ad + (ad * Runicpassive[Me.Level] / 100);
            _rq = _q.IsReady() ? DamageQ(target) : 0;

            _rw = _w.IsReady()
                ? Me.GetSpellDamage(target, SpellSlot.W)
                : 0;

            _ri = Me.Spellbook.CanUseSpell(ignite) == SpellState.Ready
                ? Me.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite)
                : 0;

            _ritems = tmt + hyd + bwc + brk;

            _ua = _r.IsReady()
                ? _ra +
                  Me.CalcDamage(target, Damage.DamageType.Physical,
                                Me.BaseAttackDamage + Me.FlatPhysicalDamageMod * 0.2)
                : _ua;

            _uq = _r.IsReady()
                ? _rq +
                  Me.CalcDamage(target, Damage.DamageType.Physical,
                                Me.BaseAttackDamage + Me.FlatPhysicalDamageMod * 0.2 * 0.7)
                : _uq;

            _uw = _r.IsReady()
                ? _rw +
                  Me.CalcDamage(target, Damage.DamageType.Physical,
                                Me.BaseAttackDamage + Me.FlatPhysicalDamageMod * 0.2 * 1)
                : _uw;

            _rr = _r.IsReady()
                ? Me.GetSpellDamage(target, SpellSlot.R)
                : 0;
        }
コード例 #19
0
        private static void Game_OnGameUpdate(EventArgs args)
        {
            if (Player.IsDead)
            {
                return;
            }

            Orbwalker.SetMovement(true);

            //Update the R range
            R.Range = 2000 + R.Level * 1200;

            if (IsCastingR)
            {
                Orbwalker.SetMovement(false);
                WhileCastingR();
                return;
            }

            if (R.IsReady() && Config.Item("PingRKillable").GetValue <bool>())
            {
                foreach (var enemy in ObjectManager.Get <Obj_AI_Hero>().Where(h => h.IsValidTarget() && (float)Player.GetSpellDamage(h, SpellSlot.R) * 3 > h.Health))
                {
                    Ping(enemy.Position.To2D());
                }
            }

            if (Config.Item("ComboActive").GetValue <KeyBind>().Active)
            {
                Combo();
            }
            else
            {
                if (Config.Item("HarassActive").GetValue <KeyBind>().Active ||
                    Config.Item("HarassActiveT").GetValue <KeyBind>().Active)
                {
                    Harass();
                }

                var lc = Config.Item("LaneClearActive").GetValue <KeyBind>().Active;
                if (lc || Config.Item("FreezeActive").GetValue <KeyBind>().Active)
                {
                    Farm(lc);
                }

                if (Config.Item("JungleFarmActive").GetValue <KeyBind>().Active)
                {
                    JungleFarm();
                }
            }
        }
コード例 #20
0
 private static float GetDmg(Obj_AI_Hero Sender, Obj_AI_Hero target, SpellSlot SpellSlot)
 {
     return (float)Sender.GetSpellDamage(target, SpellSlot);
 }
コード例 #21
0
        private static void Game_OnGameLoad(EventArgs args)
        {
            Player = ObjectManager.Player;

            if (Player.ChampionName != ChampionName)
            {
                return;
            }

            //Create the spells
            Q = new Spell(SpellSlot.Q, 1550);
            W = new Spell(SpellSlot.W, 1000);
            E = new Spell(SpellSlot.E, 1150);
            R = new Spell(SpellSlot.R, 675);

            Q.SetSkillshot(0.6f, 100f, float.MaxValue, false, SkillshotType.SkillshotLine);
            W.SetSkillshot(0.7f, 125f, float.MaxValue, false, SkillshotType.SkillshotCircle);
            E.SetSkillshot(0.25f, 60f, 1400f, true, SkillshotType.SkillshotLine);
            R.SetSkillshot(0.7f, 120f, float.MaxValue, false, SkillshotType.SkillshotCircle);

            Q.SetCharged("XerathArcanopulseChargeUp", "XerathArcanopulseChargeUp", 750, 1550, 1.5f);

            SpellList.Add(Q);
            SpellList.Add(W);
            SpellList.Add(E);
            SpellList.Add(R);

            //Create the menu
            Config = new Menu(ChampionName, ChampionName, true);

            //Orbwalker submenu
            Config.AddSubMenu(new Menu("Orbwalking", "Orbwalking"));

            //Add the target selector to the menu as submenu.
            var targetSelectorMenu = new Menu("Target Selector", "Target Selector");

            SimpleTs.AddToMenu(targetSelectorMenu);
            Config.AddSubMenu(targetSelectorMenu);

            //Load the orbwalker and add it to the menu as submenu.
            Orbwalker = new Orbwalking.Orbwalker(Config.SubMenu("Orbwalking"));

            //Combo menu:
            Config.AddSubMenu(new Menu("Combo", "Combo"));
            Config.SubMenu("Combo").AddItem(new MenuItem("UseQCombo", "Use Q").SetValue(true));
            Config.SubMenu("Combo").AddItem(new MenuItem("UseWCombo", "Use W").SetValue(true));
            Config.SubMenu("Combo").AddItem(new MenuItem("UseECombo", "Use E").SetValue(true));
            Config.SubMenu("Combo")
            .AddItem(
                new MenuItem("ComboActive", "Combo!").SetValue(
                    new KeyBind(Config.Item("Orbwalk").GetValue <KeyBind>().Key, KeyBindType.Press)));

            //Misc
            Config.AddSubMenu(new Menu("R", "R"));
            Config.SubMenu("R").AddItem(new MenuItem("EnableRUsage", "Auto use charges").SetValue(true));
            Config.SubMenu("R").AddItem(new MenuItem("rMode", "Mode  ").SetValue(new StringList(new[] { "Normal", "Custom delays", "On Tap", "On Tap&Hover" })));
            Config.SubMenu("R").AddItem(new MenuItem("rModeKey", "OnTap key").SetValue(new KeyBind("T".ToCharArray()[0], KeyBindType.Press)));
            Config.SubMenu("R").AddSubMenu(new Menu("Custom delays", "Custom delays"));
            for (int i = 1; i <= 3; i++)
            {
                Config.SubMenu("R").SubMenu("Custom delays").AddItem(new MenuItem("Delay" + i, "Delay" + i).SetValue(new Slider(0, 1500, 0)));
            }
            Config.SubMenu("R").AddItem(new MenuItem("PingRKillable", "Ping on killable targets (only local)").SetValue(true));
            Config.SubMenu("R").AddItem(new MenuItem("BlockMovement", "Block right click while casting R").SetValue(false));


            //Harass menu:
            Config.AddSubMenu(new Menu("Harass", "Harass"));
            Config.SubMenu("Harass").AddItem(new MenuItem("UseQHarass", "Use Q").SetValue(true));
            Config.SubMenu("Harass").AddItem(new MenuItem("UseWHarass", "Use W").SetValue(false));
            Config.SubMenu("Harass")
            .AddItem(
                new MenuItem("HarassActive", "Harass!").SetValue(
                    new KeyBind(Config.Item("Farm").GetValue <KeyBind>().Key, KeyBindType.Press)));
            Config.SubMenu("Harass")
            .AddItem(
                new MenuItem("HarassActiveT", "Harass (toggle)!").SetValue(new KeyBind("Y".ToCharArray()[0],
                                                                                       KeyBindType.Toggle)));

            //Farming menu:
            Config.AddSubMenu(new Menu("Farm", "Farm"));
            Config.SubMenu("Farm")
            .AddItem(
                new MenuItem("UseQFarm", "Use Q").SetValue(
                    new StringList(new[] { "Freeze", "LaneClear", "Both", "No" }, 2)));
            Config.SubMenu("Farm")
            .AddItem(
                new MenuItem("UseWFarm", "Use W").SetValue(
                    new StringList(new[] { "Freeze", "LaneClear", "Both", "No" }, 1)));
            Config.SubMenu("Farm")
            .AddItem(
                new MenuItem("FreezeActive", "Freeze!").SetValue(
                    new KeyBind(Config.Item("Farm").GetValue <KeyBind>().Key, KeyBindType.Press)));
            Config.SubMenu("Farm")
            .AddItem(
                new MenuItem("LaneClearActive", "LaneClear!").SetValue(
                    new KeyBind(Config.Item("LaneClear").GetValue <KeyBind>().Key, KeyBindType.Press)));

            //JungleFarm menu:
            Config.AddSubMenu(new Menu("JungleFarm", "JungleFarm"));
            Config.SubMenu("JungleFarm").AddItem(new MenuItem("UseQJFarm", "Use Q").SetValue(true));
            Config.SubMenu("JungleFarm").AddItem(new MenuItem("UseWJFarm", "Use W").SetValue(true));
            Config.SubMenu("JungleFarm")
            .AddItem(
                new MenuItem("JungleFarmActive", "JungleFarm!").SetValue(
                    new KeyBind(Config.Item("LaneClear").GetValue <KeyBind>().Key, KeyBindType.Press)));

            //Misc
            Config.AddSubMenu(new Menu("Misc", "Misc"));
            Config.SubMenu("Misc").AddItem(new MenuItem("InterruptSpells", "Interrupt spells").SetValue(true));
            Config.SubMenu("Misc").AddItem(new MenuItem("AutoEGC", "AutoE gapclosers").SetValue(true));


            //Damage after combo:
            var dmgAfterComboItem = new MenuItem("DamageAfterR", "Draw damage after 3xR").SetValue(true);

            Utility.HpBarDamageIndicator.DamageToUnit += hero => (float)Player.GetSpellDamage(hero, SpellSlot.R) * 3;
            Utility.HpBarDamageIndicator.Enabled       = dmgAfterComboItem.GetValue <bool>();
            dmgAfterComboItem.ValueChanged            += delegate(object sender, OnValueChangeEventArgs eventArgs)
            {
                Utility.HpBarDamageIndicator.Enabled = eventArgs.GetNewValue <bool>();
            };

            //Drawings menu:
            Config.AddSubMenu(new Menu("Drawings", "Drawings"));
            Config.SubMenu("Drawings")
            .AddItem(
                new MenuItem("QRange", "Q range").SetValue(new Circle(true, Color.FromArgb(150, Color.DodgerBlue))));
            Config.SubMenu("Drawings")
            .AddItem(
                new MenuItem("WRange", "W range").SetValue(new Circle(true, Color.FromArgb(150, Color.DodgerBlue))));
            Config.SubMenu("Drawings")
            .AddItem(
                new MenuItem("ERange", "E range").SetValue(new Circle(false, Color.FromArgb(150, Color.DodgerBlue))));
            Config.SubMenu("Drawings")
            .AddItem(
                new MenuItem("RRange", "R range").SetValue(new Circle(false, Color.FromArgb(150, Color.DodgerBlue))));
            Config.SubMenu("Drawings")
            .AddItem(
                new MenuItem("RRangeM", "R range (minimap)").SetValue(new Circle(false,
                                                                                 Color.FromArgb(150, Color.DodgerBlue))));
            Config.SubMenu("Drawings")
            .AddItem(dmgAfterComboItem);
            Config.AddToMainMenu();

            //Add the events we are going to use:
            Game.OnGameUpdate  += Game_OnGameUpdate;
            Drawing.OnDraw     += Drawing_OnDraw;
            Drawing.OnEndScene += Drawing_OnEndScene;
            Interrupter.OnPossibleToInterrupt += Interrupter_OnPossibleToInterrupt;
            AntiGapcloser.OnEnemyGapcloser    += AntiGapcloser_OnEnemyGapcloser;
            Obj_AI_Hero.OnProcessSpellCast    += Obj_AI_Hero_OnProcessSpellCast;
            Game.OnWndProc += Game_OnWndProc;
            Game.PrintChat(ChampionName + " Loaded!");
            Orbwalking.BeforeAttack += OrbwalkingOnBeforeAttack;
            Game.OnGameSendPacket   += GameOnOnGameSendPacket;
        }
コード例 #22
0
ファイル: Program.cs プロジェクト: aikoy/LeagueSharp
        private static void Load(EventArgs args)
        {
            if (!myHero.BaseSkinName.Equals("Quinn"))
            {
                return;
            }

            Q = new SpellEx(SpellSlot.Q, 1010);
            E = new SpellEx(SpellSlot.E, 800);
            R = new SpellEx(SpellSlot.R, 550);

            Q.SetSkillshot(0.25f, 160f, 1150, true, SkillshotType.SkillshotLine);
            E.SetTargetted(0.25f, 2000f);


            myHero  = ObjectManager.Player;
            m_mMenu = new Menu("Quinney", "Quinney", true);

            Menu tsMenu = new Menu("Target Selector", "ts");

            TargetSelector.AddToMenu(tsMenu);
            m_mMenu.AddSubMenu(tsMenu);

            Menu orbwalkMenu = new Menu("Orbwalking", "orbwalk");

            m_mMenu.AddSubMenu(orbwalkMenu);
            m_oOrbwalker = new Orbwalking.Orbwalker(orbwalkMenu);

            Menu comboMenu = new Menu("Combo Options", "combo");

            m_mMenu.AddSubMenu(comboMenu);
            comboMenu.AddItem(new MenuItem("enabled", "Combo Enabled").SetValue(new KeyBind(' ', KeyBindType.Press)));
            comboMenu.AddItem(new MenuItem("useQ", "Use Q Human").SetValue(true));
            comboMenu.AddItem(new MenuItem("useE", "Use E Human").SetValue(new KeyBind('S', KeyBindType.Toggle, true)));
            comboMenu.AddItem(new MenuItem("useQValor", "Use Q Valor").SetValue(true));
            comboMenu.AddItem(new MenuItem("useEValor", "Use E Valor").SetValue(new KeyBind('S', KeyBindType.Toggle, false)));
            Menu harassMenu = new Menu("Harass Options", "harass");

            m_mMenu.AddSubMenu(harassMenu);
            harassMenu.AddItem(new MenuItem("enabled", "Harass Enabled").SetValue(new KeyBind('C', KeyBindType.Press)));
            harassMenu.AddItem(new MenuItem("useQ", "Use Q Human").SetValue(true));
            harassMenu.AddItem(new MenuItem("useE", "Use E Human").SetValue(new KeyBind('S', KeyBindType.Toggle, true)));

            MenuItem comboDmg = new MenuItem("comboDmg", "Draw HPBar Combo Damage").SetValue(true);

            Utility.HpBarDamageIndicator.DamageToUnit += delegate(Obj_AI_Hero hero)
            {
                float dmg = 0;
                if (Q.IsReady())
                {
                    dmg += (float)myHero.GetSpellDamage(hero, SpellSlot.Q);
                }
                if (R.IsReady())
                {
                    dmg += (float)myHero.GetSpellDamage(hero, SpellSlot.R);
                }
                dmg += (float)myHero.GetAutoAttackDamage(hero, true) * 4;
                return(dmg);
            };
            Utility.HpBarDamageIndicator.Enabled = comboDmg.GetValue <bool>();
            comboDmg.ValueChanged += delegate(object sender, OnValueChangeEventArgs eventArgs)
            {
                Utility.HpBarDamageIndicator.Enabled = eventArgs.GetNewValue <bool>();
            };

            Menu drawMenu = new Menu("Draw Options", "draw");

            m_mMenu.AddSubMenu(drawMenu);
            drawMenu.AddItem(new MenuItem("Q", "Draw Q Range").SetValue(new Circle(false, Color.FromArgb(100, 255, 0, 255))));
            drawMenu.AddItem(new MenuItem("W", "Draw W Range").SetValue(new Circle(false, Color.FromArgb(100, 255, 0, 255))));
            drawMenu.AddItem(new MenuItem("E", "Draw E Range").SetValue(new Circle(true, Color.FromArgb(100, 255, 0, 255))));
            drawMenu.AddItem(new MenuItem("R", "Draw R Range").SetValue(new Circle(false, Color.FromArgb(100, 255, 0, 255))));
            drawMenu.AddItem(new MenuItem("eStatus", "Draw E Combo/Harass Status").SetValue(true));
            drawMenu.AddItem(comboDmg);
            Menu ksMenu = new Menu("KS Options", "ks");

            m_mMenu.AddSubMenu(ksMenu);
            ksMenu.AddItem(new MenuItem("useQ", "KS with Q").SetValue(true));
            ksMenu.AddItem(new MenuItem("useRValor", "KS with R").SetValue(true));
            Menu miscMenu = new Menu("Misc Options", "misc");

            miscMenu.AddSubMenu(miscMenu);
            miscMenu.AddItem(new MenuItem("bushRevealer", "Use W to reveal stealth enemies in brushes").SetValue(true));
            miscMenu.AddItem(new MenuItem("antigapcloser", "Anti-Gapcloser with E").SetValue(true));
            miscMenu.AddItem(new MenuItem("interrupt", "Interrupt spells").SetValue(true));
            miscMenu.AddItem(
                new MenuItem("interruptDangerLevel", "Danger level for interrupter").SetValue(new StringList(new string[]
            {
                "Low",
                "Medium",
                "High"
            }, 0)));

            miscMenu.AddToMainMenu();

            BushRevealer revealer = new BushRevealer(m_mMenu.SubMenu("misc").Item("bushRevealer"),
                                                     m_mMenu.SubMenu("combo").Item("enabled"), m_fWRange);

            Orbwalking.BeforeAttack += delegate(Orbwalking.BeforeAttackEventArgs eventArgs)
            {
                if (eventArgs.Target.Type.Equals(myHero.Type) && eventArgs.Target.IsValid <Obj_AI_Hero>() && eventArgs.Target.IsEnemy && HasEBuff((Obj_AI_Hero)eventArgs.Target))
                {
                    Orbwalking.AfterAttackEvenH afterAttack = null;
                    afterAttack = delegate(AttackableUnit unit, AttackableUnit target)
                    {
                        if (target == eventArgs.Target)
                        {
                            AfterEnhancedAttack(unit, target);
                            Orbwalking.AfterAttack -= afterAttack;
                        }
                    };
                    Orbwalking.AfterAttack += afterAttack;
                    Utility.DelayAction.Add(500, () => Orbwalking.AfterAttack -= afterAttack);
                }
            };
            ReadyForSpellCast.OnReadyForSpellCast += ReadyForSpellCastEvent;
            Game.OnGameUpdate += KillSteal;
            Drawing.OnDraw    += Draw;
            Interrupter2.OnInterruptableTarget += InterruptableTarget;
            AntiGapcloser.OnEnemyGapcloser     += EnemyGapCloser;
        }
コード例 #23
0
ファイル: Program.cs プロジェクト: loyalvtmc/LeagueSharp-1
        public static void WaveClear()
        {
            var MinionList = MinionManager.GetMinions(Player.Position, Q.Range, MinionTypes.All, MinionTeam.Enemy, MinionOrderTypes.Health)
                             .Where(x => !MinionListToIgnore.Contains(x.NetworkId)).ToList();

            var JungleList = MinionManager.GetMinions(Player.Position, Q.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth);

            var UseLaneClearLastHit = Config.Item("UseLaneClearLastHit").GetValue <bool>();
            var useQ          = Config.Item("UseQLaneClear").GetValue <bool>();
            var useW          = Config.Item("UseWLaneClear").GetValue <bool>();
            var useE          = Config.Item("UseELaneClear").GetValue <bool>();
            var ManaLaneClear = Config.Item("ManaLaneClear").GetValue <Slider>().Value;
            var packetCast    = Config.Item("PacketCast").GetValue <bool>();

            if (Q.IsReady() && useQ && Player.GetManaPerc() > ManaLaneClear)
            {
                var queryJungle = JungleList.Where(x => x.IsValidTarget(Q.Range));
                if (queryJungle.Any())
                {
                    var mob = queryJungle.First();
                    Q.CastOnUnit(mob, packetCast);
                }

                var queryMinion = MinionList.Where(x => x.IsValidTarget(Q.Range));
                if (queryMinion.Any())
                {
                    var mob = queryMinion.First();
                    if (UseLaneClearLastHit)
                    {
                        if (HealthPrediction.GetHealthPrediction(mob, (int)Q.Delay * 1000) < Player.GetSpellDamage(mob, SpellSlot.Q) * 0.9)
                        {
                            Q.CastOnUnit(mob, packetCast);
                            MinionListToIgnore.Add(mob.NetworkId);
                            MinionList.Remove(mob);
                        }
                    }
                    else
                    {
                        if (HealthPrediction.GetHealthPrediction(mob, (int)Q.Delay * 1000) < Player.GetSpellDamage(mob, SpellSlot.Q) * 0.9)
                        {
                            Q.CastOnUnit(mob, packetCast);
                            MinionListToIgnore.Add(mob.NetworkId);
                            MinionList.Remove(mob);
                        }
                        else
                        {
                            mob = queryMinion.Last();
                            Q.CastOnUnit(mob, packetCast);
                            MinionList.Remove(mob);
                        }
                    }
                }
            }

            if (W.IsReady() && useW && Player.GetManaPerc() > ManaLaneClear)
            {
                var queryJungle = JungleList.Where(x => x.IsValidTarget(W.Range));
                if (queryJungle.Any())
                {
                    var mob = queryJungle.First();
                    W.CastOnUnit(mob, packetCast);
                }

                var query = MinionList.Where(x => x.IsValidTarget(W.Range));
                if (query.Any())
                {
                    var mob = query.First();
                    if (UseLaneClearLastHit)
                    {
                        if (HealthPrediction.GetHealthPrediction(mob, (int)W.Delay * 1000) < Player.GetSpellDamage(mob, SpellSlot.W) * 0.9)
                        {
                            W.CastOnUnit(mob, packetCast);
                            MinionListToIgnore.Add(mob.NetworkId);
                            MinionList.Remove(mob);
                        }
                    }
                    else
                    {
                        if (HealthPrediction.GetHealthPrediction(mob, (int)W.Delay * 1000) < Player.GetSpellDamage(mob, SpellSlot.W) * 0.9)
                        {
                            W.CastOnUnit(mob, packetCast);
                            MinionListToIgnore.Add(mob.NetworkId);
                            MinionList.Remove(mob);
                        }
                        else
                        {
                            mob = query.Last();
                            W.CastOnUnit(mob, packetCast);
                            MinionList.Remove(mob);
                        }
                    }
                }
            }

            if (E.IsReady() && useE && Player.GetManaPerc() > ManaLaneClear)
            {
                var queryJungle = JungleList.Where(x => x.IsValidTarget(E.Range));
                if (queryJungle.Any())
                {
                    var mob = queryJungle.First();
                    E.CastOnUnit(mob, packetCast);
                }

                var query = MinionList.Where(x => x.IsValidTarget(E.Range));
                if (query.Any())
                {
                    var mob = query.First();
                    if (UseLaneClearLastHit)
                    {
                        if (HealthPrediction.GetHealthPrediction(mob, (int)E.Delay * 1000) < Player.GetSpellDamage(mob, SpellSlot.E) * 0.9)
                        {
                            E.CastOnUnit(mob, packetCast);
                            MinionListToIgnore.Add(mob.NetworkId);
                            MinionList.Remove(mob);
                        }
                    }
                    else
                    {
                        if (HealthPrediction.GetHealthPrediction(mob, (int)E.Delay * 1000) < Player.GetSpellDamage(mob, SpellSlot.E) * 0.9)
                        {
                            E.CastOnUnit(mob, packetCast);
                            MinionListToIgnore.Add(mob.NetworkId);
                            MinionList.Remove(mob);
                        }
                        else
                        {
                            mob = query.Last();
                            E.CastOnUnit(mob, packetCast);
                            MinionList.Remove(mob);
                        }
                    }
                }
            }
        }
コード例 #24
0
ファイル: Program.cs プロジェクト: smallsun912/LOL
        private static void Game_OnGameLoad(EventArgs args)
        {
            Player = ObjectManager.Player;
            if (Player.BaseSkinName != ChampionName)
            {
                return;
            }

            //Create the spells
            Q = new Spell(SpellSlot.Q, 625);
            W = new Spell(SpellSlot.W, 600);
            E = new Spell(SpellSlot.E, 600);

            SpellList.Add(Q);
            SpellList.Add(W);
            SpellList.Add(E);

            //Create the menu
            Config = new Menu(ChampionName, ChampionName, true);

            var targetSelectorMenu = new Menu("Target Selector", "Target Selector");

            TargetSelector.AddToMenu(targetSelectorMenu);
            Config.AddSubMenu(targetSelectorMenu);

            //Orbwalker submenu
            Config.AddSubMenu(new Menu("Orbwalking", "Orbwalking"));

            //Load the orbwalker and add it to the submenu.
            Orbwalker = new Orbwalking.Orbwalker(Config.SubMenu("Orbwalking"));

            Config.AddSubMenu(new Menu("Combo", "Combo"));
            Config.SubMenu("Combo")
            .AddItem(new MenuItem("ComboActive", "Combo!").SetValue(new KeyBind(32, KeyBindType.Press)));

            Config.AddSubMenu(new Menu("Harass", "Harass"));
            Config.SubMenu("Harass").AddItem(new MenuItem("UseQHarass", "Use Q").SetValue(true));
            Config.SubMenu("Harass")
            .AddItem(
                new MenuItem("HarassActive", "Harass!").SetValue(new KeyBind("C".ToCharArray()[0], KeyBindType.Press)));

            Config.AddSubMenu(new Menu("Farm", "Farm"));
            Config.SubMenu("Farm")
            .AddItem(
                new MenuItem("UseQFarm", "Use Q").SetValue(
                    new StringList(new[] { "Freeze", "LaneClear", "Both", "No" }, 2)));
            Config.SubMenu("Farm")
            .AddItem(
                new MenuItem("UseWFarm", "Use W").SetValue(
                    new StringList(new[] { "Freeze", "LaneClear", "Both", "No" }, 3)));
            Config.SubMenu("Farm")
            .AddItem(
                new MenuItem("UseEFarm", "Use E").SetValue(
                    new StringList(new[] { "Freeze", "LaneClear", "Both", "No" }, 1)));
            Config.SubMenu("Farm")
            .AddItem(
                new MenuItem("FreezeActive", "Freeze!").SetValue(new KeyBind("C".ToCharArray()[0], KeyBindType.Press)));
            Config.SubMenu("Farm")
            .AddItem(
                new MenuItem("LaneClearActive", "LaneClear!").SetValue(new KeyBind("V".ToCharArray()[0],
                                                                                   KeyBindType.Press)));

            Config.AddSubMenu(new Menu("JungleFarm", "JungleFarm"));
            Config.SubMenu("JungleFarm").AddItem(new MenuItem("UseQJFarm", "Use Q").SetValue(true));
            Config.SubMenu("JungleFarm").AddItem(new MenuItem("UseWJFarm", "Use W").SetValue(true));
            Config.SubMenu("JungleFarm").AddItem(new MenuItem("UseEJFarm", "Use E").SetValue(true));
            Config.SubMenu("JungleFarm")
            .AddItem(
                new MenuItem("JungleFarmActive", "JungleFarm!").SetValue(new KeyBind("V".ToCharArray()[0],
                                                                                     KeyBindType.Press)));

            //Damage after combo:
            var dmgAfterComboItem = new MenuItem("DamageAfterCombo", "Draw damage after a rotation").SetValue(true);

            Utility.HpBarDamageIndicator.DamageToUnit += hero => (float)(Player.GetSpellDamage(hero, SpellSlot.Q) * 2 + Player.GetSpellDamage(hero, SpellSlot.W) + Player.GetSpellDamage(hero, SpellSlot.E));
            Utility.HpBarDamageIndicator.Enabled       = dmgAfterComboItem.GetValue <bool>();
            dmgAfterComboItem.ValueChanged            += delegate(object sender, OnValueChangeEventArgs eventArgs)
            {
                Utility.HpBarDamageIndicator.Enabled = eventArgs.GetNewValue <bool>();
            };

            Config.AddSubMenu(new Menu("Drawings", "Drawings"));
            Config.SubMenu("Drawings")
            .AddItem(new MenuItem("QRange", "Q range").SetValue(new Circle(true, Color.FromArgb(255, 255, 255, 255))));
            Config.SubMenu("Drawings")
            .AddItem(
                new MenuItem("WRange", "W range").SetValue(new Circle(false, Color.FromArgb(255, 255, 255, 255))));
            Config.SubMenu("Drawings")
            .AddItem(
                new MenuItem("ERange", "E range").SetValue(new Circle(false, Color.FromArgb(255, 255, 255, 255))));
            Config.SubMenu("Drawings").AddItem(dmgAfterComboItem);
            Config.AddToMainMenu();

            //Add the events we are going to use:
            Drawing.OnDraw          += Drawing_OnDraw;
            Game.OnGameUpdate       += Game_OnGameUpdate;
            Orbwalking.BeforeAttack += OrbwalkingOnBeforeAttack;
        }
コード例 #25
0
ファイル: Program.cs プロジェクト: travelforever/LeagueSharp
        private static void OnWaveClear()
        {
            List <Obj_AI_Base> allMinions = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, Q.Range);

            if (Config.Item("UseQFarm").GetValue <bool>() && Q.IsReady())
            {
                foreach (Obj_AI_Base minion in
                         allMinions.Where(
                             minion =>
                             minion.IsValidTarget() &&
                             HealthPrediction.GetHealthPrediction(
                                 minion, (int)(Vector3.Distance(Player.ServerPosition, minion.ServerPosition) * 1000 / 1400)) <
                             0.75 * Player.GetSpellDamage(minion, SpellSlot.Q)))
                {
                    if (Vector3.Distance(minion.ServerPosition, ObjectManager.Player.ServerPosition) >
                        Orbwalking.GetRealAutoAttackRange(ObjectManager.Player) && Vector3.Distance(Player.ServerPosition, minion.ServerPosition) <= Q.Range)
                    {
                        Orbwalker.SetAttack(false);
                        Q.CastOnUnit(minion, false);
                        Orbwalker.SetAttack(true);
                        return;
                    }
                }
            }
            if (Config.Item("UseWFarm").GetValue <bool>() && W.IsReady())
            {
                MinionManager.FarmLocation farmLocation =
                    MinionManager.GetBestCircularFarmLocation(
                        MinionManager.GetMinions(Player.Position, W.Range)
                        .Select(minion => minion.ServerPosition.To2D())
                        .ToList(), W.Width, W.Range);
                if (Wnorm && !Wevolved)
                {
                    if (Vector2.Distance(Player.ServerPosition.To2D(), farmLocation.Position) <= W.Range)
                    {
                        W.Cast(farmLocation.Position);
                    }
                }
                if (Wevolved && !Wnorm)
                {
                    if (Vector2.Distance(Player.ServerPosition.To2D(), farmLocation.Position) <= WE.Range)
                    {
                        W.Cast(farmLocation.Position);
                    }
                }
            }

            if (Config.Item("UseEFarm").GetValue <bool>() && E.IsReady())
            {
                MinionManager.FarmLocation farmLocation =
                    MinionManager.GetBestCircularFarmLocation(
                        MinionManager.GetMinions(Player.Position, E.Range)
                        .Select(minion => minion.ServerPosition.To2D())
                        .ToList(), E.Width, E.Range);

                if (Vector2.Distance(Player.ServerPosition.To2D(), farmLocation.Position) <= W.Range)
                {
                    E.Cast(farmLocation.Position);
                }
            }


            if (Config.Item("UseItemsFarm").GetValue <bool>())
            {
                MinionManager.FarmLocation farmLocation =
                    MinionManager.GetBestCircularFarmLocation(
                        MinionManager.GetMinions(Player.Position, HDR.Range)
                        .Select(minion => minion.ServerPosition.To2D())
                        .ToList(), HDR.Range, HDR.Range);

                if (HDR.IsReady() && Vector2.Distance(Player.ServerPosition.To2D(), farmLocation.Position) <= HDR.Range && farmLocation.MinionsHit >= 2)
                {
                    Items.UseItem(3074, ObjectManager.Player);
                }
                if (TIA.IsReady() && Vector2.Distance(Player.ServerPosition.To2D(), farmLocation.Position) <= TIA.Range && farmLocation.MinionsHit >= 2)
                {
                    Items.UseItem(3077, ObjectManager.Player);
                }
            }
        }
コード例 #26
0
        public static void BurstCombo()
        {
            var eTarget = SimpleTs.GetTarget(R.Range, SimpleTs.DamageType.Magical);

            if (eTarget == null)
            {
                return;
            }

            var useQ       = Config.Item("UseQCombo").GetValue <bool>();
            var useW       = Config.Item("UseWCombo").GetValue <bool>();
            var useE       = Config.Item("UseECombo").GetValue <bool>();
            var useR       = Config.Item("UseRCombo").GetValue <bool>();
            var useIgnite  = Config.Item("UseIgnite").GetValue <bool>();
            var packetCast = Config.Item("PacketCast").GetValue <bool>();

            double totalComboDamage = 0;

            if (R.IsReady())
            {
                totalComboDamage += Player.GetSpellDamage(eTarget, SpellSlot.R);
                totalComboDamage += Player.GetSpellDamage(eTarget, SpellSlot.Q);
                totalComboDamage += Player.GetSpellDamage(eTarget, SpellSlot.E);
            }
            totalComboDamage += Player.GetSpellDamage(eTarget, SpellSlot.Q);
            totalComboDamage += Player.GetSpellDamage(eTarget, SpellSlot.E);
            totalComboDamage += Player.GetSpellDamage(eTarget, SpellSlot.E);
            totalComboDamage += Player.GetSpellDamage(eTarget, SpellSlot.E);
            totalComboDamage += summonerSpellManager.GetIgniteDamage(eTarget);

            double totalManaCost = 0;

            if (R.IsReady())
            {
                totalManaCost += Player.Spellbook.GetSpell(SpellSlot.R).ManaCost;
            }
            totalManaCost += Player.Spellbook.GetSpell(SpellSlot.Q).ManaCost;

            if (mustDebug)
            {
                Game.PrintChat("BurstCombo Damage {0}/{1} {2}", Convert.ToInt32(totalComboDamage), Convert.ToInt32(eTarget.Health), eTarget.Health < totalComboDamage ? "BustKill" : "Harras");
                Game.PrintChat("BurstCombo Mana {0}/{1} {2}", Convert.ToInt32(totalManaCost), Convert.ToInt32(eTarget.Mana), Player.Mana >= totalManaCost ? "Mana OK" : "No Mana");
            }

            if (eTarget.Health < totalComboDamage && Player.Mana >= totalManaCost)
            {
                if (R.IsReady() && useR && eTarget.IsValidTarget(R.Range) && eTarget.IsFacing(Player))
                {
                    if (totalComboDamage * 0.3 < eTarget.Health) // Anti R OverKill
                    {
                        if (mustDebug)
                        {
                            Game.PrintChat("BurstCombo R");
                        }
                        R.Cast(eTarget.ServerPosition, packetCast);
                        dtBurstComboStart = DateTime.Now;
                    }
                    else
                    {
                        if (mustDebug)
                        {
                            Game.PrintChat("BurstCombo OverKill");
                        }
                        dtBurstComboStart = DateTime.Now;
                    }
                }
            }


            if (dtBurstComboStart.AddSeconds(5) > DateTime.Now && summonerSpellManager.IsReadyIgnite() && eTarget.IsValidTarget(600))
            {
                if (mustDebug)
                {
                    Game.PrintChat("Ignite");
                }
                summonerSpellManager.CastIgnite(eTarget);
            }
        }
コード例 #27
0
ファイル: AutoSmite.cs プロジェクト: vvv606132006/SA
        private ExtraDamage GetExtraDamage(Obj_AI_Base minion)
        {
            Obj_AI_Hero player = ObjectManager.Player;

            switch (ObjectManager.Player.ChampionName)
            {
            case "Chogath":
                return(player.Spellbook.CanUseSpell(SpellSlot.R) == SpellState.Ready
                        ? new ExtraDamage(player.GetSpellDamage(minion, SpellSlot.R), 175, SpellType.Target, SpellSlot.R)
                        : null);

            case "Elise":
                return(player.Spellbook.CanUseSpell(SpellSlot.Q) == SpellState.Ready
                        ? new ExtraDamage(player.GetSpellDamage(minion, SpellSlot.Q), 475, SpellType.Target, SpellSlot.Q)
                        : null);

            case "Fizz":
                return(player.Spellbook.CanUseSpell(SpellSlot.Q) == SpellState.Ready
                        ? new ExtraDamage(player.GetSpellDamage(minion, SpellSlot.Q), 550, SpellType.Target, SpellSlot.Q)
                        : null);

            case "Irelia":
                return(player.Spellbook.CanUseSpell(SpellSlot.Q) == SpellState.Ready
                        ? new ExtraDamage(player.GetSpellDamage(minion, SpellSlot.Q), 650, SpellType.Target, SpellSlot.Q)
                        : null);

            case "Kalista":
                return(player.Spellbook.CanUseSpell(SpellSlot.E) == SpellState.Ready
                        ? new ExtraDamage(player.GetSpellDamage(minion, SpellSlot.E), 950, SpellType.Active, SpellSlot.E)
                        : null);

            case "Kayle":
                return(player.Spellbook.CanUseSpell(SpellSlot.Q) == SpellState.Ready
                        ? new ExtraDamage(player.GetSpellDamage(minion, SpellSlot.Q), 650, SpellType.Target, SpellSlot.Q)
                        : null);

            case "KhaZix":
                return(player.Spellbook.CanUseSpell(SpellSlot.Q) == SpellState.Ready
                        ? new ExtraDamage(player.GetSpellDamage(minion, SpellSlot.Q,
                                                                (MinionManager.GetMinions(minion.ServerPosition, 500f, MinionTypes.All, MinionTeam.Neutral)).Count > 0
                            ? ObjectManager.Player.HasBuff("khazixqevo", true) ? 2 : 0
                            : ObjectManager.Player.HasBuff("khazixqevo", true) ? 3 : 1), 325, SpellType.Target, SpellSlot.Q)
                        : null);

            case "LeeSin":
                return(player.Spellbook.CanUseSpell(SpellSlot.Q) == SpellState.Ready && minion.HasBuff("BlindMonkQOne", true)
                        ? new ExtraDamage(player.GetSpellDamage(minion, SpellSlot.R, 1) > 400 ? 400 : player.GetSpellDamage(minion, SpellSlot.R, 1),
                                          1200, SpellType.Skillshot, SpellSlot.Q) : null);

            case "Lux":
                return(player.Spellbook.CanUseSpell(SpellSlot.R) == SpellState.Ready
                        ? new ExtraDamage(player.GetSpellDamage(minion, SpellSlot.R), 3340, SpellType.Skillshot,
                                          SpellSlot.R)
                        : null);

            case "MasterYi":
                return(player.Spellbook.CanUseSpell(SpellSlot.Q) == SpellState.Ready
                        ? new ExtraDamage(player.GetSpellDamage(minion, SpellSlot.Q), 600, SpellType.Target, SpellSlot.Q)
                        : null);

            case "MonkeyKing":
                return(player.Spellbook.CanUseSpell(SpellSlot.Q) == SpellState.Ready
                        ? new ExtraDamage(player.GetSpellDamage(minion, SpellSlot.Q), 100, SpellType.Active, SpellSlot.Q)
                        : null);

            case "Nasus":
                return(player.Spellbook.CanUseSpell(SpellSlot.Q) == SpellState.Ready
                        ? new ExtraDamage(player.GetSpellDamage(minion, SpellSlot.Q), 100, SpellType.Active, SpellSlot.Q)
                        : null); //TODO: Check for nasus stacks

            case "Nunu":
                return(player.Spellbook.CanUseSpell(SpellSlot.Q) == SpellState.Ready
                        ? new ExtraDamage(player.GetSpellDamage(minion, SpellSlot.Q), 155, SpellType.Target, SpellSlot.Q)
                        : null);

            case "Olaf":
                return(player.Spellbook.CanUseSpell(SpellSlot.E) == SpellState.Ready
                        ? new ExtraDamage(player.GetSpellDamage(minion, SpellSlot.E), 325, SpellType.Target, SpellSlot.E)
                        : null);

            case "Pantheon":
                return(player.Spellbook.CanUseSpell(SpellSlot.Q) == SpellState.Ready
                        ? new ExtraDamage(player.GetSpellDamage(minion, SpellSlot.Q), 600, SpellType.Target, SpellSlot.Q)
                        : null);

            case "Rammus":
                return(player.Spellbook.CanUseSpell(SpellSlot.Q) == SpellState.Ready
                        ? new ExtraDamage(player.GetSpellDamage(minion, SpellSlot.Q), 100, SpellType.Active, SpellSlot.Q)
                        : null);

            case "Rengar":
                return(player.Spellbook.CanUseSpell(SpellSlot.Q) == SpellState.Ready
                        ? new ExtraDamage(player.GetSpellDamage(minion, SpellSlot.Q), 100, SpellType.Active, SpellSlot.Q)
                        : null);

            case "Shaco":
                return(player.Spellbook.CanUseSpell(SpellSlot.E) == SpellState.Ready
                        ? new ExtraDamage(player.GetSpellDamage(minion, SpellSlot.E), 625, SpellType.Target, SpellSlot.E)
                        : null);

            case "Twitch":
                return(player.Spellbook.CanUseSpell(SpellSlot.E) == SpellState.Ready
                        ? new ExtraDamage(player.GetSpellDamage(minion, SpellSlot.E), 1200, SpellType.Active, SpellSlot.E)
                        : null);

            case "Udyr":
                return(player.Spellbook.CanUseSpell(SpellSlot.R) == SpellState.Ready
                        ? new ExtraDamage(player.GetSpellDamage(minion, SpellSlot.R), 100, SpellType.Active, SpellSlot.R)
                        : null);

            case "Veigar":
                return(player.Spellbook.CanUseSpell(SpellSlot.Q) == SpellState.Ready
                        ? new ExtraDamage(player.GetSpellDamage(minion, SpellSlot.Q), 650, SpellType.Target, SpellSlot.Q)
                        : null);

            case "Vi":
                return(player.Spellbook.CanUseSpell(SpellSlot.E) == SpellState.Ready
                        ? new ExtraDamage(player.GetSpellDamage(minion, SpellSlot.E), 600, SpellType.Active, SpellSlot.E)
                        : null);

            case "Volibear":
                return(player.Spellbook.CanUseSpell(SpellSlot.W) == SpellState.Ready
                        ? new ExtraDamage(player.GetSpellDamage(minion, SpellSlot.W), 400, SpellType.Target, SpellSlot.W)
                        : null);

            case "Warwick":
                return(player.Spellbook.CanUseSpell(SpellSlot.Q) == SpellState.Ready
                        ? new ExtraDamage(player.GetSpellDamage(minion, SpellSlot.Q), 400, SpellType.Target, SpellSlot.Q)
                        : null);

            case "Xerath":
                return(player.Spellbook.CanUseSpell(SpellSlot.R) == SpellState.Ready
                        ? new ExtraDamage(player.GetSpellDamage(minion, SpellSlot.R), 3200 + 1200 * player.Spellbook.GetSpell(SpellSlot.R).Level, SpellType.Skillshot, SpellSlot.R)
                        : null);

            default:
                return(null);
            }
        }
コード例 #28
0
        private static void Farm(bool laneClear)
        {
            var rangedMinions = MinionManager.GetMinions(
                ObjectManager.Player.ServerPosition, Q2.Range, MinionTypes.Ranged);
            var allMinions = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, Q2.Range);

            var useQ = Config.Item("farmQ").GetValue <bool>();
            var useE = Config.Item("farmE").GetValue <bool>();

            if (laneClear)
            {
                if (Q.IsReady() && useQ)
                {
                    var rangedLocation = Q2.GetCircularFarmLocation(rangedMinions);
                    var location       = Q2.GetCircularFarmLocation(allMinions);

                    var bLocation = (location.MinionsHit > rangedLocation.MinionsHit + 1) ? location : rangedLocation;

                    if (bLocation.MinionsHit > 0)
                    {
                        Q2.Cast(bLocation.Position.To3D());
                    }
                }

                if (E.IsReady() && useE)
                {
                    var rangedLocation = E.GetCircularFarmLocation(rangedMinions, E.Width * 2);
                    var location       = E.GetCircularFarmLocation(allMinions, E.Width * 2);

                    var bLocation = (location.MinionsHit > rangedLocation.MinionsHit + 1) ? location : rangedLocation;

                    if (bLocation.MinionsHit > 2)
                    {
                        E.Cast(bLocation.Position.To3D());
                    }
                }
            }
            else
            {
                if (useQ && Q.IsReady())
                {
                    foreach (var minion in allMinions)
                    {
                        if (!Orbwalking.InAutoAttackRange(minion))
                        {
                            var Qdamage = Player.GetSpellDamage(minion, SpellSlot.Q) * 0.75;

                            if (Qdamage > Q.GetHealthPrediction(minion))
                            {
                                Q2.Cast(minion);
                            }
                        }
                    }
                }

                if (E.IsReady() && useE)
                {
                    var rangedLocation = E.GetCircularFarmLocation(rangedMinions, E.Width * 2);
                    var location       = E.GetCircularFarmLocation(allMinions, E.Width * 2);

                    var bLocation = (location.MinionsHit > rangedLocation.MinionsHit + 1) ? location : rangedLocation;

                    if (bLocation.MinionsHit > 2)
                    {
                        E.Cast(bLocation.Position.To3D());
                    }
                }
            }
        }
コード例 #29
0
        private static void Game_OnGameLoad(EventArgs args)
        {
            Player = ObjectManager.Player;
            if (Player.BaseSkinName != ChampionName) return;

            //Create the spells

            Q.SetSkillshot(0.25f, 40, 1200, true, SkillshotType.SkillshotLine);

            //Create the menu
            Config = new Menu(ChampionName, ChampionName, true);

            var targetSelectorMenu = new Menu("Target Selector", "Target Selector");
            SimpleTs.AddToMenu(targetSelectorMenu);
            Config.AddSubMenu(targetSelectorMenu);

            //Orbwalker submenu
            Config.AddSubMenu(new Menu("Orbwalking", "Orbwalking"));

            //Load the orbwalker and add it to the submenu.
            Orbwalker = new Orbwalking.Orbwalker(Config.SubMenu("Orbwalking"));

            Config.AddSubMenu(new Menu("Combo", "Combo"));
            Config.SubMenu("Combo").AddItem(new MenuItem("ComboQ", "Use Q?").SetValue(true));
            Config.SubMenu("Combo").AddItem(new MenuItem("ComboR","Use R?").SetValue(true));
            Config.SubMenu("Combo").AddItem(new MenuItem("ComboActive", "Combo!").SetValue(new KeyBind(32, KeyBindType.Press)));

            Config.AddSubMenu(new Menu("Harass", "Harass"));
            Config.SubMenu("Harass").AddItem(new MenuItem("UseQHarass", "Use Q").SetValue(true));
            Config.SubMenu("Harass").AddItem(new MenuItem("QMana", "Min Mana Q").SetValue(new Slider(40, 1, 100)));
            Config.SubMenu("Harass").AddItem(new MenuItem("HarassActive", "Harass!").SetValue(new KeyBind("C".ToCharArray()[0], KeyBindType.Press)));

            //Damage after combo:
            var eDamage = new MenuItem("DamageAfterCombo", "HP After Used Q+2AA").SetValue(true);
            Utility.HpBarDamageIndicator.DamageToUnit += hero => (float)(Player.GetSpellDamage(hero, SpellSlot.Q) + (Player.GetAutoAttackDamage(hero)*2));
            Utility.HpBarDamageIndicator.Enabled = eDamage.GetValue<bool>();
            eDamage.ValueChanged += delegate(object sender, OnValueChangeEventArgs eventArgs)
            {
                Utility.HpBarDamageIndicator.Enabled = eventArgs.GetNewValue<bool>();
            };

            Config.AddSubMenu(new Menu("KS", "KS"));
            Config.SubMenu("KS").AddItem(new MenuItem("StealE","Steal With E").SetValue(true));
            Config.AddSubMenu(new Menu("Misc", "Misc"));
            Config.SubMenu("Misc").AddItem(new MenuItem("eStacks", "E Stacks *Broken").SetValue(new Slider(10, 2, 30)));
            Config.SubMenu("Misc").AddItem(new MenuItem("eMana", "Min Mana E").SetValue(new Slider(40, 1, 100)));
            Config.SubMenu("Misc").AddItem(new MenuItem("safer", "Use R to save allies").SetValue(true));
            Config.SubMenu("Misc").AddItem(new MenuItem("savehp", "HP to Save %").SetValue(new Slider(40, 1, 100)));
            Config.SubMenu("Misc").AddItem(new MenuItem("Harasser", "Harass Allways").SetValue(true));
               // Config.AddItem(new MenuItem("packetCast", "Packet Cast").SetValue(true));
            Config.AddSubMenu(new Menu("Drawings", "Drawings"));
            Config.SubMenu("Drawings").AddItem(new MenuItem("QRange", "Q range").SetValue(new Circle(true, Color.FromArgb(255, 255, 255, 255))));
            Config.SubMenu("Drawings") .AddItem(new MenuItem("WRange", "W range").SetValue(new Circle(false, Color.FromArgb(255, 255, 255, 255))));
            Config.SubMenu("Drawings").AddItem(new MenuItem("RRange", "R range").SetValue(new Circle(false, Color.FromArgb(255, 255, 255, 255))));
            Config.SubMenu("Drawings").AddItem(eDamage);
            Config.AddToMainMenu();

            //Add the events we are going to use:
            Drawing.OnDraw += Drawing_OnDraw;
            Game.OnGameUpdate += Game_OnGameUpdate;
             GameObject.OnCreate += OnCreateObject;
             //   Orbwalking.BeforeAttack += OrbwalkingOnBeforeAttack;
            Game.PrintChat("<font color='#00FFFF'>>> Deniz Kalista v0.5 Loaded");
        }
コード例 #30
0
ファイル: HpDamageIndicator.cs プロジェクト: werdbrian/AIO
 /// <summary>
 ///     The calculate damage.
 /// </summary>
 /// <param name="source">
 ///     The source.
 /// </param>
 /// <param name="target">
 ///     The target.
 /// </param>
 /// <param name="spell">
 ///     The spell.
 /// </param>
 /// <returns>
 /// </returns>
 private static double CalculateDamage(Obj_AI_Hero source, Obj_AI_Base target, SpellSlot spell)
 {
     return source.GetSpellDamage(target, spell);
 }
コード例 #31
0
        private static void Game_OnGameLoad(EventArgs args)
        {
            Player = ObjectManager.Player;

            if (Player.ChampionName != ChampionName)
            {
                return;
            }

            //Create the spells
            Q = new Spell(SpellSlot.Q, 1550);
            W = new Spell(SpellSlot.W, 1000);
            E = new Spell(SpellSlot.E, 1150);
            R = new Spell(SpellSlot.R, 675);

            Q.SetSkillshot(0.6f, 100f, float.MaxValue, false, SkillshotType.SkillshotLine);
            W.SetSkillshot(0.7f, 125f, float.MaxValue, false, SkillshotType.SkillshotCircle);
            E.SetSkillshot(0.25f, 60f, 1400f, true, SkillshotType.SkillshotLine);
            R.SetSkillshot(0.7f, 120f, float.MaxValue, false, SkillshotType.SkillshotCircle);

            Q.SetCharged("XerathArcanopulseChargeUp", "XerathArcanopulseChargeUp", 750, 1550, 1.5f);

            SpellList.Add(Q);
            SpellList.Add(W);
            SpellList.Add(E);
            SpellList.Add(R);

            //Create the menu
            Config = new Menu(ChampionName, ChampionName, true);

            //Orbwalker submenu
            Config.AddSubMenu(new Menu("璧扮爫", "Orbwalking"));

            //Add the target selector to the menu as submenu.
            var targetSelectorMenu = new Menu("鐩爣閫夋嫨", "Target Selector");

            SimpleTs.AddToMenu(targetSelectorMenu);
            Config.AddSubMenu(targetSelectorMenu);

            //Load the orbwalker and add it to the menu as submenu.
            Orbwalker = new Orbwalking.Orbwalker(Config.SubMenu("Orbwalking"));

            //Combo menu:
            Config.AddSubMenu(new Menu("杩炴嫑", "Combo"));
            Config.SubMenu("Combo").AddItem(new MenuItem("UseQCombo", "浣跨敤 Q").SetValue(true));
            Config.SubMenu("Combo").AddItem(new MenuItem("UseWCombo", "浣跨敤 W").SetValue(true));
            Config.SubMenu("Combo").AddItem(new MenuItem("UseECombo", "浣跨敤 E").SetValue(true));
            Config.SubMenu("Combo")
            .AddItem(
                new MenuItem("ComboActive", "杩炴嫑!").SetValue(
                    new KeyBind(Config.Item("Orbwalk").GetValue <KeyBind>().Key, KeyBindType.Press)));

            //Misc
            Config.AddSubMenu(new Menu("R", "R"));
            Config.SubMenu("R").AddItem(new MenuItem("EnableRUsage", "鑷姩浣跨敤澶ф嫑").SetValue(true));
            Config.SubMenu("R").AddItem(new MenuItem("rMode", "妯″紡").SetValue(new StringList(new[] { "姝e父", "鑷畾涔?", "OnTap" })));
            Config.SubMenu("R").AddItem(new MenuItem("rModeKey", "OnTap鎸夐挳").SetValue(new KeyBind("T".ToCharArray()[0], KeyBindType.Press)));
            Config.SubMenu("R").AddSubMenu(new Menu("璁剧疆寤惰繜", "Custom delays"));
            for (int i = 1; i <= 3; i++)
            {
                Config.SubMenu("R").SubMenu("Custom delays").AddItem(new MenuItem("Delay" + i, "Delay" + i).SetValue(new Slider(0, 1500, 0)));
            }
            Config.SubMenu("R").AddItem(new MenuItem("PingRKillable", "Ping鍙潃姝荤洰鏍?鏈湴)").SetValue(true));
            Config.SubMenu("R").AddItem(new MenuItem("BlockMovement", "鏈夐殰纰嶇墿鏃剁瓑寰呮姇鎺稲").SetValue(false));


            //Harass menu:
            Config.AddSubMenu(new Menu("楠氭壈", "Harass"));
            Config.SubMenu("Harass").AddItem(new MenuItem("UseQHarass", "浣跨敤 Q").SetValue(true));
            Config.SubMenu("Harass").AddItem(new MenuItem("UseWHarass", "浣跨敤 W").SetValue(false));
            Config.SubMenu("Harass")
            .AddItem(
                new MenuItem("HarassActive", "楠氭壈!").SetValue(
                    new KeyBind(Config.Item("Farm").GetValue <KeyBind>().Key, KeyBindType.Press)));
            Config.SubMenu("Harass")
            .AddItem(
                new MenuItem("HarassActiveT", "楠氭壈 (鎸夐敭)!").SetValue(new KeyBind("Y".ToCharArray()[0],
                                                                                 KeyBindType.Toggle)));

            //Farming menu:
            Config.AddSubMenu(new Menu("琛ュ叺", "Farm"));
            Config.SubMenu("Farm")
            .AddItem(
                new MenuItem("UseQFarm", "浣跨敤 Q").SetValue(
                    new StringList(new[] { "琛ュ叺", "娓呭叺", "鍏ㄩ儴", "涓嶇敤" }, 2)));
            Config.SubMenu("Farm")
            .AddItem(
                new MenuItem("UseWFarm", "浣跨敤 W").SetValue(
                    new StringList(new[] { "琛ュ叺", "娓呭叺", "鍏ㄩ儴", "涓嶇敤" }, 1)));
            Config.SubMenu("Farm")
            .AddItem(
                new MenuItem("FreezeActive", "琛ュ叺!").SetValue(
                    new KeyBind(Config.Item("Farm").GetValue <KeyBind>().Key, KeyBindType.Press)));
            Config.SubMenu("Farm")
            .AddItem(
                new MenuItem("LaneClearActive", "娓呭叺!").SetValue(
                    new KeyBind(Config.Item("LaneClear").GetValue <KeyBind>().Key, KeyBindType.Press)));

            //JungleFarm menu:
            Config.AddSubMenu(new Menu("娓呴噹", "JungleFarm"));
            Config.SubMenu("JungleFarm").AddItem(new MenuItem("UseQJFarm", "浣跨敤 Q").SetValue(true));
            Config.SubMenu("JungleFarm").AddItem(new MenuItem("UseWJFarm", "浣跨敤 W").SetValue(true));
            Config.SubMenu("JungleFarm")
            .AddItem(
                new MenuItem("JungleFarmActive", "娓呴噹!").SetValue(
                    new KeyBind(Config.Item("LaneClear").GetValue <KeyBind>().Key, KeyBindType.Press)));

            //Misc
            Config.AddSubMenu(new Menu("鏉傞」", "Misc"));
            Config.SubMenu("Misc").AddItem(new MenuItem("InterruptSpells", "鎵撴柇娉曟湳").SetValue(true));
            Config.SubMenu("Misc").AddItem(new MenuItem("AutoEGC", "鑷姩E闃茬獊鑴?").SetValue(true));


            //Damage after combo:
            var dmgAfterComboItem = new MenuItem("DamageAfterR", "鏄剧ず鎹熶激").SetValue(true);

            Utility.HpBarDamageIndicator.DamageToUnit += hero => (float)Player.GetSpellDamage(hero, SpellSlot.R) * 3;
            Utility.HpBarDamageIndicator.Enabled       = dmgAfterComboItem.GetValue <bool>();
            dmgAfterComboItem.ValueChanged            += delegate(object sender, OnValueChangeEventArgs eventArgs)
            {
                Utility.HpBarDamageIndicator.Enabled = eventArgs.GetNewValue <bool>();
            };

            //Drawings menu:
            Config.AddSubMenu(new Menu("鑼冨洿", "Drawings"));
            Config.SubMenu("Drawings")
            .AddItem(
                new MenuItem("QRange", "Q 鑼冨洿").SetValue(new Circle(true, Color.FromArgb(150, Color.DodgerBlue))));
            Config.SubMenu("Drawings")
            .AddItem(
                new MenuItem("WRange", "W 鑼冨洿").SetValue(new Circle(true, Color.FromArgb(150, Color.DodgerBlue))));
            Config.SubMenu("Drawings")
            .AddItem(
                new MenuItem("ERange", "E 鑼冨洿").SetValue(new Circle(false, Color.FromArgb(150, Color.DodgerBlue))));
            Config.SubMenu("Drawings")
            .AddItem(
                new MenuItem("RRange", "R 鑼冨洿").SetValue(new Circle(false, Color.FromArgb(150, Color.DodgerBlue))));
            Config.SubMenu("Drawings")
            .AddItem(
                new MenuItem("RRangeM", "R 鑼冨洿 灏忓湴鍥?").SetValue(new Circle(false,
                                                                           Color.FromArgb(150, Color.DodgerBlue))));
            Config.SubMenu("Drawings")
            .AddItem(dmgAfterComboItem);
            Config.AddSubMenu(new Menu("鐒$偤姹夊寲", "by wuwei"));
            Config.SubMenu("by wuwei").AddItem(new MenuItem("qunhao", "姹夊寲缇わ細386289593"));
            Config.SubMenu("by wuwei").AddItem(new MenuItem("qunhao2", "濞冨▋缇わ細13497795"));
            Config.AddToMainMenu();

            //Add the events we are going to use:
            Game.OnGameUpdate  += Game_OnGameUpdate;
            Drawing.OnDraw     += Drawing_OnDraw;
            Drawing.OnEndScene += Drawing_OnEndScene;
            Interrupter.OnPossibleToInterrupt += Interrupter_OnPossibleToInterrupt;
            AntiGapcloser.OnEnemyGapcloser    += AntiGapcloser_OnEnemyGapcloser;
            Obj_AI_Hero.OnProcessSpellCast    += Obj_AI_Hero_OnProcessSpellCast;
            Game.OnWndProc += Game_OnWndProc;
            Game.PrintChat(ChampionName + " Loaded!");
            Orbwalking.BeforeAttack += OrbwalkingOnBeforeAttack;
            Game.OnGameSendPacket   += GameOnOnGameSendPacket;
        }
コード例 #32
0
ファイル: Program.cs プロジェクト: lanyi777/CN
        private static void Game_OnGameLoad(EventArgs args)
        {
            Player = ObjectManager.Player;
            if (Player.BaseSkinName != ChampionName) return;

            //Create the spells
            Q = new Spell(SpellSlot.Q, 625);
            W = new Spell(SpellSlot.W, 600);
            E = new Spell(SpellSlot.E, 600);

            SpellList.Add(Q);
            SpellList.Add(W);
            SpellList.Add(E);

            //Create the menu
            Config = new Menu(ChampionName, ChampionName, true);

            var targetSelectorMenu = new Menu("鐩爣閫夋嫨", "Target Selector");
            SimpleTs.AddToMenu(targetSelectorMenu);
            Config.AddSubMenu(targetSelectorMenu);

            //Orbwalker submenu
            Config.AddSubMenu(new Menu("鑷甫璧扮爫", "Orbwalking"));

            //Load the orbwalker and add it to the submenu.
            Orbwalker = new Orbwalking.Orbwalker(Config.SubMenu("Orbwalking"));

            Config.AddSubMenu(new Menu("杩炴嫑", "Combo"));
            Config.SubMenu("Combo")
                .AddItem(new MenuItem("ComboActive", "杩炴嫑!").SetValue(new KeyBind(32, KeyBindType.Press)));

            Config.AddSubMenu(new Menu("楠氭壈", "Harass"));
            Config.SubMenu("Harass").AddItem(new MenuItem("UseQHarass", "浣跨敤Q").SetValue(true));
            Config.SubMenu("Harass")
                .AddItem(
                    new MenuItem("HarassActive", "楠氭壈!").SetValue(new KeyBind("C".ToCharArray()[0], KeyBindType.Press)));

            Config.AddSubMenu(new Menu("琛ュ叺", "Farm"));
            Config.SubMenu("Farm")
                .AddItem(
                    new MenuItem("UseQFarm", "浣跨敤Q").SetValue(
                        new StringList(new[] { "琛ュ叺", "娓呯嚎", "鍏ㄩ儴", "No" }, 2)));
            Config.SubMenu("Farm")
                .AddItem(
                    new MenuItem("UseWFarm", "浣跨敤W").SetValue(
                        new StringList(new[] { "琛ュ叺", "娓呯嚎", "鍏ㄩ儴", "No" }, 3)));
            Config.SubMenu("Farm")
                .AddItem(
                    new MenuItem("UseEFarm", "浣跨敤E").SetValue(
                        new StringList(new[] { "琛ュ叺", "娓呯嚎", "鍏ㄩ儴", "No" }, 1)));
            Config.SubMenu("Farm")
                .AddItem(
                    new MenuItem("FreezeActive", "娓呯嚎!").SetValue(new KeyBind("C".ToCharArray()[0], KeyBindType.Press)));
            Config.SubMenu("Farm")
                .AddItem(
                    new MenuItem("LaneClearActive", "娓呯嚎!").SetValue(new KeyBind("V".ToCharArray()[0],
                        KeyBindType.Press)));

            Config.AddSubMenu(new Menu("娓呴噹", "JungleFarm"));
            Config.SubMenu("JungleFarm").AddItem(new MenuItem("UseQJFarm", "浣跨敤Q").SetValue(true));
            Config.SubMenu("JungleFarm").AddItem(new MenuItem("UseWJFarm", "浣跨敤W").SetValue(true));
            Config.SubMenu("JungleFarm").AddItem(new MenuItem("UseEJFarm", "浣跨敤E").SetValue(true));
            Config.SubMenu("JungleFarm")
                .AddItem(
                    new MenuItem("JungleFarmActive", "娓呴噹!").SetValue(new KeyBind("V".ToCharArray()[0],
                        KeyBindType.Press)));

            //Damage after combo:
            var dmgAfterComboItem = new MenuItem("DamageAfterCombo", "缁樺埗鎶€鑳芥€讳激瀹硘").SetValue(true);
            Utility.HpBarDamageIndicator.DamageToUnit += hero => (float)(Player.GetSpellDamage(hero, SpellSlot.Q) * 2 + Player.GetSpellDamage(hero, SpellSlot.W) + Player.GetSpellDamage(hero, SpellSlot.E));
            Utility.HpBarDamageIndicator.Enabled = dmgAfterComboItem.GetValue<bool>();
            dmgAfterComboItem.ValueChanged += delegate(object sender, OnValueChangeEventArgs eventArgs)
            {
                Utility.HpBarDamageIndicator.Enabled = eventArgs.GetNewValue<bool>();
            };

            Config.AddSubMenu(new Menu("鑼冨洿鏄剧ず", "Drawings"));
            Config.SubMenu("Drawings")
                .AddItem(new MenuItem("QRange", "Q鑼冨洿").SetValue(new Circle(true, Color.FromArgb(255, 255, 255, 255))));
            Config.SubMenu("Drawings")
                .AddItem(
                    new MenuItem("WRange", "W鑼冨洿").SetValue(new Circle(false, Color.FromArgb(255, 255, 255, 255))));
            Config.SubMenu("Drawings")
                .AddItem(
                    new MenuItem("ERange", "E鑼冨洿").SetValue(new Circle(false, Color.FromArgb(255, 255, 255, 255))));
            Config.SubMenu("Drawings").AddItem(dmgAfterComboItem);
            Config.AddToMainMenu();

             {

            Config.AddSubMenu(new Menu("L#涓枃绀惧尯姹夊寲", "LOLL35.Com"));
                Config.SubMenu("LOLL35.Com").AddItem(new MenuItem("wangzhi", "www.loll35.com"));
                Config.SubMenu("LOLL35.Com").AddItem(new MenuItem("qunhao2", "姹夊寲缇わ細397983217"));
            }

            //Add the events we are going to use:
            Drawing.OnDraw += Drawing_OnDraw;
            Game.OnGameUpdate += Game_OnGameUpdate;
            Orbwalking.BeforeAttack += OrbwalkingOnBeforeAttack;
        }
コード例 #33
0
        private static void Game_OnGameLoad(EventArgs args)
        {
            Game.PrintChat("Deniz617's Nunu Loading..");
            Player = ObjectManager.Player;
            if (Player.BaseSkinName != ChampionName) return;

            //Create the spells
            Q = new Spell(SpellSlot.Q, 125);
            W = new Spell(SpellSlot.W, 700);
            E = new Spell(SpellSlot.E, 580);
            R = new Spell(SpellSlot.R, 650);
            SpellList.Add(Q);
            SpellList.Add(W);
            SpellList.Add(E);

            //Create the menu
            Config = new Menu(ChampionName, ChampionName, true);

            var targetSelectorMenu = new Menu("Target Selector", "Target Selector");
            SimpleTs.AddToMenu(targetSelectorMenu);
            Config.AddSubMenu(targetSelectorMenu);

            //Orbwalker submenu
            Config.AddSubMenu(new Menu("Orbwalking", "Orbwalking"));

            //Load the orbwalker and add it to the submenu.
            Orbwalker = new Orbwalking.Orbwalker(Config.SubMenu("Orbwalking"));

            Config.AddSubMenu(new Menu("Combo", "Combo"));
            Config.SubMenu("Combo").AddItem(new MenuItem("ComboR", "Use R?").SetValue(true));
            Config.SubMenu("Combo").AddItem(new MenuItem("MinEnemys", "Min enemys for R")).SetValue(new Slider(3, 5, 1));
            Config.SubMenu("Combo").AddItem(new MenuItem("ComboActive", "Combo!").SetValue(new KeyBind(32, KeyBindType.Press)));

            Config.AddSubMenu(new Menu("Harass", "Harass"));
            Config.SubMenu("Harass").AddItem(new MenuItem("UseEHarass", "Use E").SetValue(true));
            Config.SubMenu("Harass").AddItem(new MenuItem("EMana", "Min Mana E").SetValue(new Slider(40, 1, 100)));
            Config.SubMenu("Harass").AddItem(new MenuItem("HarassActive", "Harass!").SetValue(new KeyBind("C".ToCharArray()[0], KeyBindType.Press)));

            Config.AddSubMenu(new Menu("Farm", "Farm"));
            Config.SubMenu("Farm").AddItem(new MenuItem("UseQFarm", "Use Q").SetValue(true));

            Config.SubMenu("Farm").AddItem(new MenuItem("FreezeActive", "Freeze!").SetValue(new KeyBind("C".ToCharArray()[0], KeyBindType.Press)));

            //Damage after combo:
            var eDamage = new MenuItem("DamageAfterCombo", "Draw Damage After Used E").SetValue(true);
            Utility.HpBarDamageIndicator.DamageToUnit += hero => (float)(Player.GetSpellDamage(hero, SpellSlot.E));
            Utility.HpBarDamageIndicator.Enabled = eDamage.GetValue<bool>();
            eDamage.ValueChanged += delegate(object sender, OnValueChangeEventArgs eventArgs)
            {
                Utility.HpBarDamageIndicator.Enabled = eventArgs.GetNewValue<bool>();
            };

            Config.AddSubMenu(new Menu("KS", "KS"));
            Config.SubMenu("KS").AddItem(new MenuItem("StealE", "Steal With E").SetValue(true));
            Config.SubMenu("KS").AddItem(new MenuItem("BreakU", "Break Ulti To Steal?").SetValue(false));
            Config.AddSubMenu(new Menu("Misc", "Misc"));
            Config.SubMenu("Misc").AddItem(new MenuItem("HealQ", "Use Q if").SetValue(true));
            Config.SubMenu("Misc").AddItem(new MenuItem("QHP", "HP is %").SetValue(new Slider(40, 1, 100)));
            Config.SubMenu("Misc").AddItem(new MenuItem("QMana", "Min Mana Q").SetValue(new Slider(40, 1, 100)));
            Config.SubMenu("Misc").AddItem(new MenuItem("GetAsisted", "Use W On Allies").SetValue(true));
            Config.SubMenu("Misc").AddItem(new MenuItem("WMana", "Min Mana W").SetValue(new Slider(40, 1, 100)));
            Config.SubMenu("Misc").AddItem(new MenuItem("Harasser", "Harass Allways").SetValue(true));
            Config.AddSubMenu(new Menu("Jungle", "Jungle"));
            Config.SubMenu("Jungle").AddItem(new MenuItem("AutoSteal", "Auto Q or Smite").SetValue(true));
            Config.AddItem(new MenuItem("packetCast", "Packet Cast").SetValue(true));
            Config.AddSubMenu(new Menu("Drawings", "Drawings"));
            Config.SubMenu("Drawings").AddItem(new MenuItem("QRange", "Q range").SetValue(new Circle(true, System.Drawing.Color.FromArgb(255, 255, 255, 255))));
            Config.SubMenu("Drawings").AddItem(new MenuItem("WRange", "W range").SetValue(new Circle(false, System.Drawing.Color.FromArgb(255, 255, 255, 255))));
            Config.SubMenu("Drawings").AddItem(new MenuItem("ERange", "E range").SetValue(new Circle(false, System.Drawing.Color.FromArgb(255, 255, 255, 255))));
            Config.SubMenu("Drawings").AddItem(eDamage);
            Config.AddToMainMenu();

            //Add the events we are going to use:
            Drawing.OnDraw += Drawing_OnDraw;
            Game.OnGameUpdate += Game_OnGameUpdate;
            Orbwalking.BeforeAttack += OrbwalkingOnBeforeAttack;
            Game.PrintChat("Deniz617's Nunu Loaded");
        }
コード例 #34
0
 static float GetDamage(Obj_AI_Hero hero, Obj_AI_Hero target, SpellSlot slot)
 {
     return((float)hero.GetSpellDamage(target, slot));
 }
コード例 #35
0
ファイル: Program.cs プロジェクト: seniseviy/LeagueSharp-7
        private static void Combo()
        {
            var       useQ      = Config.Item("qCombo").GetValue <bool>();
            var       useW      = Config.Item("wCombo").GetValue <bool>();
            var       useE      = Config.Item("eCombo").GetValue <bool>();
            var       useR      = Config.Item("rCombo").GetValue <bool>();
            var       useIgnite = Config.Item("useIgnite").GetValue <bool>();
            HitChance hCance    = HitchanceArray[Config.Item("hChance").GetValue <StringList>().SelectedIndex];
            byte      minHit    = (byte)Config.Item("minHitR").GetValue <Slider>().Value;

            if (Q.IsReady() && useQ)
            {
                foreach (var enemy in ObjectManager.Get <Obj_AI_Hero>().Where(x => x.IsEnemy && !x.IsDead && !x.IsZombie && x.IsValidTarget(Q.Range)))
                {
                    if (enemy.Distance(Player.Position) < Player.AttackRange)
                    {
                        Q.Cast(enemy);
                    }
                }
            }

            if (W.IsReady() && useW)
            {
                foreach (var enemy in ObjectManager.Get <Obj_AI_Hero>().Where(x => x.IsEnemy && !x.IsDead && !x.IsZombie && x.IsValidTarget(W.Range)))
                {
                    W.SPredictionCast(enemy, hCance);
                }
            }

            if (E.IsReady() && useE)
            {
                foreach (var enemy in ObjectManager.Get <Obj_AI_Hero>().Where(x => x.IsEnemy && !x.IsDead && !x.IsZombie && x.IsValidTarget(E.Range)))
                {
                    if (Player.Distance(enemy.Position) < 550)
                    {
                        E.SPredictionCast(enemy, hCance);
                    }
                }
            }

            if (R.IsReady() && useR)
            {
                foreach (var enemy in ObjectManager.Get <Obj_AI_Hero>().Where(x => x.IsEnemy && !x.IsDead && !x.IsZombie && x.IsValidTarget(R.Range)))
                {
                    if (enemy.Health < cDamage(enemy))
                    {
                        R.SPredictionCast(enemy, hCance);
                    }
                    if (Player.CountEnemiesInRange(R.Range) > minHit)
                    {
                        R.SPredictionCast(enemy, hCance, 0, minHit);
                    }
                }
            }
            if (Ignite.IsReady() && useIgnite)
            {
                foreach (var enemy in ObjectManager.Get <Obj_AI_Hero>().Where(x => x.IsEnemy && !x.IsDead && !x.IsZombie &&
                                                                              x.IsValidTarget(550)))
                {
                    if (Player.GetSpellDamage(enemy, Ignite) + cDamage(enemy) > enemy.Health)
                    {
                        Player.Spellbook.CastSpell(Ignite, enemy);
                    }
                }
            }
        }
コード例 #36
0
 static float GetDamage(Obj_AI_Hero hero,Obj_AI_Hero target,SpellSlot slot)
 {
     return (float)hero.GetSpellDamage(target, slot);
 }
コード例 #37
0
ファイル: Program.cs プロジェクト: 8123772/aiqiang
        private static float GetComboDamage(Obj_AI_Base enemy)
        {
            var damage = 0d;

            if (canQcd == 0 && canEcd == 0 && Q.Level > 0 && E.Level > 0)
            {
                damage += Player.GetSpellDamage(enemy, SpellSlot.Q) * 1.4;
            }
            else if (canQcd == 0 && Q.Level > 0)
            {
                damage += Player.GetSpellDamage(enemy, SpellSlot.Q);
            }

            if (hamQcd == 0 && Q.Level > 0)
            {
                damage += Player.GetSpellDamage(enemy, SpellSlot.Q, 1);
            }

            if (hamWcd == 0 && W.Level > 0)
            {
                damage += Player.GetSpellDamage(enemy, SpellSlot.W);
            }

            if (hamEcd == 0 && E.Level > 0)
            {
                damage += Player.GetSpellDamage(enemy, SpellSlot.E);
            }

            return((float)damage);
        }
コード例 #38
0
ファイル: Program.cs プロジェクト: Esk0r/LeagueSharp
        private static void Game_OnGameLoad(EventArgs args)
        {
            Player = ObjectManager.Player;

            if (Player.ChampionName != ChampionName) return;

            //Create the spells
            Q = new Spell(SpellSlot.Q, 1550);
            W = new Spell(SpellSlot.W, 1000);
            E = new Spell(SpellSlot.E, 1150);
            R = new Spell(SpellSlot.R, 675);

            Q.SetSkillshot(0.6f, 95f, float.MaxValue, false, SkillshotType.SkillshotLine);
            W.SetSkillshot(0.7f, 125f, float.MaxValue, false, SkillshotType.SkillshotCircle);
            E.SetSkillshot(0.25f, 60f, 1400f, true, SkillshotType.SkillshotLine);
            R.SetSkillshot(0.7f, 130f, float.MaxValue, false, SkillshotType.SkillshotCircle);

            Q.SetCharged("XerathArcanopulseChargeUp", "XerathArcanopulseChargeUp", 750, 1550, 1.5f);

            SpellList.Add(Q);
            SpellList.Add(W);
            SpellList.Add(E);
            SpellList.Add(R);

            //Create the menu
            Config = new Menu(ChampionName, ChampionName, true);

            //Orbwalker submenu
            Config.AddSubMenu(new Menu("Orbwalking", "Orbwalking"));

            //Add the target selector to the menu as submenu.
            var targetSelectorMenu = new Menu("Target Selector", "Target Selector");
            TargetSelector.AddToMenu(targetSelectorMenu);
            Config.AddSubMenu(targetSelectorMenu);

            //Load the orbwalker and add it to the menu as submenu.
            Orbwalker = new Orbwalking.Orbwalker(Config.SubMenu("Orbwalking"));

            //Combo menu:
            Config.AddSubMenu(new Menu("Combo", "Combo"));
            Config.SubMenu("Combo").AddItem(new MenuItem("UseQCombo", "Use Q").SetValue(true));
            Config.SubMenu("Combo").AddItem(new MenuItem("UseWCombo", "Use W").SetValue(true));
            Config.SubMenu("Combo").AddItem(new MenuItem("UseECombo", "Use E").SetValue(true));
            Config.SubMenu("Combo")
                .AddItem(
                    new MenuItem("ComboActive", "Combo!").SetValue(
                        new KeyBind(Config.Item("Orbwalk").GetValue<KeyBind>().Key, KeyBindType.Press)));

            //Misc
            Config.AddSubMenu(new Menu("R", "R"));
            Config.SubMenu("R").AddItem(new MenuItem("EnableRUsage", "Auto use charges").SetValue(true));
            Config.SubMenu("R").AddItem(new MenuItem("rMode", "Mode").SetValue(new StringList(new[] { "Normal", "Custom delays", "OnTap"})));
            Config.SubMenu("R").AddItem(new MenuItem("rModeKey", "OnTap key").SetValue(new KeyBind('T', KeyBindType.Press)));
            Config.SubMenu("R").AddSubMenu(new Menu("Custom delays", "Custom delays"));
            for (int i = 1; i <= 5; i++)
                Config.SubMenu("R").SubMenu("Custom delays").AddItem(new MenuItem("Delay"+i, "Delay"+i).SetValue(new Slider(0, 1500, 0)));
            Config.SubMenu("R").AddItem(new MenuItem("PingRKillable", "Ping on killable targets (only local)").SetValue(true));
            Config.SubMenu("R").AddItem(new MenuItem("BlockMovement", "Block right click while casting R").SetValue(false));
            Config.SubMenu("R").AddItem(new MenuItem("OnlyNearMouse", "Focus only targets near mouse").SetValue(false));
            Config.SubMenu("R").AddItem(new MenuItem("MRadius", "Radius").SetValue(new Slider(700, 1500, 300)));

            //Harass menu:
            Config.AddSubMenu(new Menu("Harass", "Harass"));
            Config.SubMenu("Harass").AddItem(new MenuItem("UseQHarass", "Use Q").SetValue(true));
            Config.SubMenu("Harass").AddItem(new MenuItem("UseWHarass", "Use W").SetValue(false));
            Config.SubMenu("Harass")
                .AddItem(
                    new MenuItem("HarassActive", "Harass!").SetValue(
                        new KeyBind(Config.Item("Farm").GetValue<KeyBind>().Key, KeyBindType.Press)));
            Config.SubMenu("Harass")
                .AddItem(
                    new MenuItem("HarassActiveT", "Harass (toggle)!").SetValue(new KeyBind('Y',
                        KeyBindType.Toggle)));

            //Farming menu:
            Config.AddSubMenu(new Menu("Farm", "Farm"));
            Config.SubMenu("Farm")
                .AddItem(
                    new MenuItem("UseQFarm", "Use Q").SetValue(
                        new StringList(new[] { "Freeze", "LaneClear", "Both", "No" }, 2)));
            Config.SubMenu("Farm")
                .AddItem(
                    new MenuItem("UseWFarm", "Use W").SetValue(
                        new StringList(new[] { "Freeze", "LaneClear", "Both", "No" }, 1)));
            Config.SubMenu("Farm")
                .AddItem(
                    new MenuItem("FreezeActive", "Freeze!").SetValue(
                        new KeyBind(Config.Item("Farm").GetValue<KeyBind>().Key, KeyBindType.Press)));
            Config.SubMenu("Farm")
                .AddItem(
                    new MenuItem("LaneClearActive", "LaneClear!").SetValue(
                        new KeyBind(Config.Item("LaneClear").GetValue<KeyBind>().Key, KeyBindType.Press)));

            //JungleFarm menu:
            Config.AddSubMenu(new Menu("JungleFarm", "JungleFarm"));
            Config.SubMenu("JungleFarm").AddItem(new MenuItem("UseQJFarm", "Use Q").SetValue(true));
            Config.SubMenu("JungleFarm").AddItem(new MenuItem("UseWJFarm", "Use W").SetValue(true));
            Config.SubMenu("JungleFarm")
                .AddItem(
                    new MenuItem("JungleFarmActive", "JungleFarm!").SetValue(
                        new KeyBind(Config.Item("LaneClear").GetValue<KeyBind>().Key, KeyBindType.Press)));

            //Misc
            Config.AddSubMenu(new Menu("Misc", "Misc"));
            Config.SubMenu("Misc").AddItem(new MenuItem("InterruptSpells", "Interrupt spells").SetValue(true));
            Config.SubMenu("Misc").AddItem(new MenuItem("AutoEGC", "AutoE gapclosers").SetValue(true));
            Config.SubMenu("Misc").AddItem(new MenuItem("UseVHHC", "Use very high hit chance").SetValue(true));

            //Damage after combo:
            var dmgAfterComboItem = new MenuItem("DamageAfterR", "Draw damage after (3 - 5)xR").SetValue(true);
            Utility.HpBarDamageIndicator.DamageToUnit += hero => (float)Player.GetSpellDamage(hero, SpellSlot.R) * new int[] {0, 3, 4, 5 }[Player.GetSpell(SpellSlot.R).Level];
            Utility.HpBarDamageIndicator.Enabled = dmgAfterComboItem.GetValue<bool>();
            dmgAfterComboItem.ValueChanged += delegate(object sender, OnValueChangeEventArgs eventArgs)
            {
                Utility.HpBarDamageIndicator.Enabled = eventArgs.GetNewValue<bool>();
            };

            //Drawings menu:
            Config.AddSubMenu(new Menu("Drawings", "Drawings"));
            Config.SubMenu("Drawings")
                .AddItem(
                    new MenuItem("QRange", "Q range").SetValue(new Circle(true, Color.FromArgb(150, Color.DodgerBlue))));
            Config.SubMenu("Drawings")
                .AddItem(
                    new MenuItem("WRange", "W range").SetValue(new Circle(true, Color.FromArgb(150, Color.DodgerBlue))));
            Config.SubMenu("Drawings")
                .AddItem(
                    new MenuItem("ERange", "E range").SetValue(new Circle(false, Color.FromArgb(150, Color.DodgerBlue))));
            Config.SubMenu("Drawings")
                .AddItem(
                    new MenuItem("RRange", "R range").SetValue(new Circle(false, Color.FromArgb(150, Color.DodgerBlue))));
            Config.SubMenu("Drawings")
                .AddItem(
                    new MenuItem("RRangeM", "R range (minimap)").SetValue(new Circle(false,
                        Color.FromArgb(150, Color.DodgerBlue))));
            Config.SubMenu("Drawings")
                .AddItem(dmgAfterComboItem);
            Config.AddToMainMenu();

            //Add the events we are going to use:
            Game.OnUpdate += Game_OnGameUpdate;
            Drawing.OnDraw += Drawing_OnDraw;
            Drawing.OnEndScene += Drawing_OnEndScene;
            Interrupter2.OnInterruptableTarget += Interrupter2_OnInterruptableTarget;
            AntiGapcloser.OnEnemyGapcloser += AntiGapcloser_OnEnemyGapcloser;
            Obj_AI_Hero.OnProcessSpellCast += Obj_AI_Hero_OnProcessSpellCast;
            Game.OnWndProc += Game_OnWndProc;
            Orbwalking.BeforeAttack += OrbwalkingOnBeforeAttack;
            Obj_AI_Hero.OnIssueOrder += Obj_AI_Hero_OnIssueOrder;
        }
コード例 #39
0
        private static void OnDraw(EventArgs args)
        {
            if (!Player.IsDead)
            {
                if (MenuIni.SubMenu("Draw").Item("Draw_Q").GetValue <Circle>().Active)
                {
                    Render.Circle.DrawCircle(Player.Position, Q.Range, MenuIni.SubMenu("Draw").Item("Draw_Q").GetValue <Circle>().Color);
                }
            }

            if (Player.Spellbook.GetSpell(SpellSlot.R).Level > 0)
            {
                var killable = "";

                var time = Utils.TickCount;

                foreach (TI target in Program.Check.TI.Where(x => x.Player.IsValid && !x.Player.IsDead && x.Player.IsEnemy && (Program.Check.recalltc(x) /*|| (x.Player.IsVisible && Utility.IsValidTarget(x.Player))*/) && Player.GetSpellDamage(x.Player, SpellSlot.R) >= Program.Check.GetTargetHealth(x, (int)(R.Delay * 1000f))))
                {
                    killable += target.Player.ChampionName + " ";
                }

                if (killable != "" && MenuIni.SubMenu("Misc").Item("NotifyUlt").GetValue <bool>())
                {
                    Drawing.DrawText(Drawing.Width * 0.44f, Drawing.Height * 0.7f, System.Drawing.Color.Red, "Killable by ult: " + killable);
                }
            }
        }
コード例 #40
0
ファイル: Program.cs プロジェクト: 794898063/XD
        private static double GetComboDamage(Obj_AI_Base target)
        {
            double dmg = 0;

            if (Q.IsReady() && GetDistance(target) <= Q.Range)
            {
                dmg += Player.GetSpellDamage(target, SpellSlot.Q) * 2;
            }
            if (W.IsReady() && GetDistance(target) <= W.Range)
            {
                dmg += Player.GetSpellDamage(target, SpellSlot.W);
            }
            if (E.IsReady() && GetDistance(target) <= E.Range)
            {
                dmg += Player.GetSpellDamage(target, SpellSlot.E);
            }
            if (CanIgnite() && GetDistance(target) <= 600)
            {
                dmg += Player.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite);
            }
            return(dmg);
        }
コード例 #41
0
ファイル: Program.cs プロジェクト: aikoy/LeagueSharp
 private static void KillSteal(EventArgs args)
 {
     if (m_mMenu.SubMenu("ks").Item("enabled").GetValue <bool>() && !myHero.IsRecalling())
     {
         foreach (Obj_AI_Hero enemy in ObjectManager.Get <Obj_AI_Hero>().Where(h => h.IsValidTarget()))
         {
             if (m_mMenu.SubMenu("ks").Item("useQ").GetValue <bool>() && Q.IsReady() && myHero.Distance(enemy) <= m_fQRange && myHero.GetSpellDamage(enemy, SpellSlot.Q) >= enemy.Health)
             {
                 if (m_qfForm == QuinnForm.Human)
                 {
                     Q.Cast(enemy);
                 }
                 else
                 {
                     myHero.Spellbook.CastSpell(SpellSlot.Q);
                 }
             }
             if (m_mMenu.SubMenu("ks").Item("useRValor").GetValue <bool>() && myHero.Distance(enemy) <= R.Range && GetRDmg(enemy) >= enemy.Health)
             {
                 R.Cast();
             }
         }
     }
 }
コード例 #42
0
ファイル: Program.cs プロジェクト: q51251/L-
        private static void Game_OnGameLoad(EventArgs args)
        {
            Player = ObjectManager.Player;
            if (Player.CharData.BaseSkinName != ChampionName) return;
            //Create the spells

            Q = new Spell(SpellSlot.Q, 900);
            Q.SetSkillshot(0.25f, Q.Instance.SData.LineWidth, Q.Instance.SData.MissileSpeed, true, SkillshotType.SkillshotLine);
            W = new Spell(SpellSlot.W, 600);
            E = new Spell(SpellSlot.E, 600);
            R = new Spell(SpellSlot.R);
            SpellList.Add(Q);
            SpellList.Add(W);
            SpellList.Add(E);

            //Create the menu
            Config = new Menu(ChampionName, ChampionName, true);

            var targetSelectorMenu = new Menu("Target Selector", "Target Selector");
            TargetSelector.AddToMenu(targetSelectorMenu);
            Config.AddSubMenu(targetSelectorMenu);

            //Orbwalker submenu
            Config.AddSubMenu(new Menu("Orbwalking", "Orbwalking"));

            //Load the orbwalker and add it to the submenu.
            Orbwalker = new Orbwalking.Orbwalker(Config.SubMenu("Orbwalking"));

            Config.AddSubMenu(new Menu("Combo", "Combo"));
            Config.SubMenu("Combo")
                .AddItem(new MenuItem("ComboActive", "Combo!").SetValue(new KeyBind(32, KeyBindType.Press)));
            Config.SubMenu("Combo")
                .AddItem(new MenuItem("RootComboActive", "Root Combo!").SetValue(new KeyBind(32, KeyBindType.Press)));
            Config.AddSubMenu(new Menu("Harass", "Harass"));
            Config.SubMenu("Harass").AddItem(new MenuItem("UseQHarass", "Use Q").SetValue(true));
            Config.SubMenu("Harass")
                .AddItem(
                    new MenuItem("HarassActive", "Harass!").SetValue(new KeyBind("C".ToCharArray()[0], KeyBindType.Press)));

            Config.AddSubMenu(new Menu("Farm", "Farm"));
            Config.SubMenu("Farm")
                .AddItem(
                    new MenuItem("UseQFarm", "Use Q").SetValue(
                        new StringList(new[] { "Freeze", "LaneClear", "Both", "No" }, 2)));
            Config.SubMenu("Farm")
                .AddItem(
                    new MenuItem("UseWFarm", "Use W").SetValue(
                        new StringList(new[] { "Freeze", "LaneClear", "Both", "No" }, 3)));
            Config.SubMenu("Farm")
                .AddItem(
                    new MenuItem("UseEFarm", "Use E").SetValue(
                        new StringList(new[] { "Freeze", "LaneClear", "Both", "No" }, 1)));
            Config.SubMenu("Farm")
                .AddItem(
                    new MenuItem("FreezeActive", "Freeze!").SetValue(new KeyBind("C".ToCharArray()[0], KeyBindType.Press)));
            Config.SubMenu("Farm")
                .AddItem(
                    new MenuItem("LaneClearActive", "LaneClear!").SetValue(new KeyBind("V".ToCharArray()[0],
                        KeyBindType.Press)));

            Config.AddSubMenu(new Menu("JungleFarm", "JungleFarm"));
            Config.SubMenu("JungleFarm").AddItem(new MenuItem("UseQJFarm", "Use Q").SetValue(true));
            Config.SubMenu("JungleFarm").AddItem(new MenuItem("UseWJFarm", "Use W").SetValue(true));
            Config.SubMenu("JungleFarm").AddItem(new MenuItem("UseEJFarm", "Use E").SetValue(true));
            Config.SubMenu("JungleFarm")
                .AddItem(
                    new MenuItem("JungleFarmActive", "JungleFarm!").SetValue(new KeyBind("V".ToCharArray()[0],
                        KeyBindType.Press)));

            //Damage after combo:
            var dmgAfterComboItem = new MenuItem("DamageAfterCombo", "Draw damage after a rotation").SetValue(true);
            Utility.HpBarDamageIndicator.DamageToUnit += hero => (float)(Player.GetSpellDamage(hero, SpellSlot.Q) * 2 + Player.GetSpellDamage(hero, SpellSlot.W) + Player.GetSpellDamage(hero, SpellSlot.E));
            Utility.HpBarDamageIndicator.Enabled = dmgAfterComboItem.GetValue<bool>();
            dmgAfterComboItem.ValueChanged += delegate(object sender, OnValueChangeEventArgs eventArgs)
            {
                Utility.HpBarDamageIndicator.Enabled = eventArgs.GetNewValue<bool>();
            };

            Config.AddSubMenu(new Menu("Drawings", "Drawings"));
            Config.SubMenu("Drawings")
                .AddItem(new MenuItem("QRange", "Q range").SetValue(new Circle(true, Color.FromArgb(255, 255, 255, 255))));
            Config.SubMenu("Drawings")
                .AddItem(
                    new MenuItem("WRange", "W range").SetValue(new Circle(false, Color.FromArgb(255, 255, 255, 255))));
            Config.SubMenu("Drawings")
                .AddItem(
                    new MenuItem("ERange", "E range").SetValue(new Circle(false, Color.FromArgb(255, 255, 255, 255))));
            Config.SubMenu("Drawings").AddItem(dmgAfterComboItem);
            Config.AddToMainMenu();

            //Add the events we are going to use:
            Drawing.OnDraw += Drawing_OnDraw;
            Game.OnUpdate += Game_OnGameUpdate;
            Orbwalking.BeforeAttack += OrbwalkingOnBeforeAttack;
        }
コード例 #43
0
        void OnProcessSpell(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            //Modified Kalista Soulbound code from Corey
            //Need to check in fountain otherwise recalls could make you swallow

            try
            {
                var hero = sender as Obj_AI_Hero;
                if (hero != null && hero.IsEnemy && !player.InFountain())
                {
                    var swallowAlly =
                        HeroManager.Allies.FirstOrDefault(
                            x => x.HealthPercent < 25 &&
                            ARAMSimulator.inDanger &&
                            x.IsAlly && player.Distance(x) <= 500 &&
                            !x.IsDead);
                    if (swallowAlly != null && current == SwallowedTarget.None && W.IsReady())
                    {
                        W.CastOnUnit(swallowAlly);
                        current = SwallowedTarget.Ally;
                    }

                    Obj_AI_Hero enemy = hero;
                    if (E.IsReady())
                    {
                        SpellDataInst s =
                            enemy.Spellbook.Spells.FirstOrDefault(x => x.SData.Name.Equals(args.SData.Name));
                        if (s == null)
                        {
                            return;
                        }
                        if (enemy.GetSpellDamage(player, s.Slot) > player.Health)
                        {
                            E.Cast();
                        }
                        else if (player.HealthPercent <= 45)
                        {
                            E.Cast();
                        }
                    }
                }
                else if (sender.IsMe)
                {
                    var spell = player.Spellbook.Spells.FirstOrDefault(x => x.SData.Name == args.SData.Name);
                    if (spell == null)
                    {
                        return;
                    }
                    SpellSlot s = spell.Slot;
                    if (s == SpellSlot.W)
                    {
                        if (args.Target is Obj_AI_Hero)
                        {
                            current = (args.Target.IsAlly) ? SwallowedTarget.Ally : SwallowedTarget.Enemy;
                        }
                        else
                        {
                            current = SwallowedTarget.Minion;
                        }
                    }
                    else if (s.ToString().Equals("46"))
                    {
                        current = SwallowedTarget.None;
                    }
                }
            }
            catch (Exception)
            {
            }
        }