コード例 #1
0
 public static void CheckNonKillables(AttackableUnit minion)
 {
     if (!SMenu.Item(RendHandler._MenuItemBase + "Boolean.RendNonKillables").GetValue <bool>())
     {
         return;
     }
     if (!Humanizer.Limiter.CheckDelay($"{Humanizer.DelayItemBase}Slider.NonKillableDelay"))
     {
         return;
     }
     if (!(minion.Health <= Damage.DamageCalc.CalculateRendDamage((Obj_AI_Base)minion)) || minion.Health > 60)
     {
         return;
     }
     if (!minion.IsValidTarget(Champion.E.Range))
     {
         return;
     }
     Humanizer.Limiter.UseTick($"{Humanizer.DelayItemBase}Slider.NonKillableDelay");
     Champion.E.Cast();
 }
コード例 #2
0
        private static void LaneClear()
        {
            if (SMenu.Item(_MenuItemBase + "Clear.Boolean.Rend.Minions").GetValue <bool>() && Champion.E.IsReady())
            {
                if (!Humanizer.Limiter.CheckDelay($"{Humanizer.DelayItemBase}Slider.RendDelay"))
                {
                    var minions = MinionManager.GetMinions(Player.ServerPosition, Champion.E.Range);
                    var count   =
                        minions.Count(
                            minion => minion.Health <= Damage.DamageCalc.CalculateRendDamage(minion) && minion.IsValid);

                    if (SMenu.Item(_MenuItemBase + "Clear.Boolean.Rend.Minions.Killed").GetValue <Slider>().Value > count)
                    {
                        if (true)//ManaHandler.UseModeE())
                        {
                            Humanizer.Limiter.UseTick($"{Humanizer.DelayItemBase}Slider.RendDelay");
                            Champion.E.Cast();
                        }
                    }
                }
            }
        }
コード例 #3
0
ファイル: Champs.cs プロジェクト: Dekryptor/Port-1
        public void OnDrawSelf(EventArgs args)
        {
            if (!SMenu.Item(MenuItemBase + "Boolean.DrawOnSelf").GetValue <bool>())
            {
                return;
            }

            if (!Champion.Player.Position.IsOnScreen())
            {
                return;
            }

            if (SMenu.Item(MenuItemBase + "Boolean.DrawOnSelf.ComboColor").GetValue <Circle>().Active&& Champion.GetSpellR.Level > 0)
            {
                Render.Circle.DrawCircle(Champion.Player.Position, Champion.GetSpellR.Range, SMenu.Item(MenuItemBase + "Boolean.DrawOnSelf.ComboColor").GetValue <Circle>().Color, 2);
            }

            if (SMenu.Item(MenuItemBase + "Boolean.DrawOnSelf.WColor").GetValue <Circle>().Active&& Champion.GetSpellW.Level > 0)
            {
                Render.Circle.DrawCircle(Champion.Player.Position, Champion.GetSpellW.Range, SMenu.Item(MenuItemBase + "Boolean.DrawOnSelf.WColor").GetValue <Circle>().Color, 2);
            }
        }
コード例 #4
0
        private static bool RendHarass()
        {
            if (!SMenu.Item(RendHandler._MenuItemBase + "Boolean.RendMinions").GetValue <bool>())
            {
                return(false);
            }
            if (!Humanizer.Limiter.CheckDelay($"{Humanizer.DelayItemBase}Slider.RendDelay"))
            {
                return(false);
            }

            foreach (var target in HeroManager.Enemies)
            {
                if (!target.IsValidTarget(Champion.E.Range))
                {
                    continue;
                }
                if (Damage.DamageCalc.CheckNoDamageBuffs(target))
                {
                    continue;
                }
                var stacks = target.GetBuffCount("kalistaexpungemarker");
                if (stacks < SMenu.Item(RendHandler._MenuItemBase + "Boolean.RendHarrassKill.Slider.Stacks").GetValue <Slider>().Value)
                {
                    continue;
                }
                var minions = MinionManager.GetMinions(Player.ServerPosition, Champion.E.Range);
                var count   = minions.Count(minion => minion.Health <= Damage.DamageCalc.CalculateRendDamage(minion) && minion.IsValid);
                if (SMenu.Item(RendHandler._MenuItemBase + "Boolean.RendHarrassKill.Slider.Killed").GetValue <Slider>().Value > count)
                {
                    continue;
                }

                Humanizer.Limiter.UseTick($"{Humanizer.DelayItemBase}Slider.RendDelay");
                Champion.E.Cast();
                return(true);
            }
            return(false);
        }
コード例 #5
0
ファイル: SentinelHandler.cs プロジェクト: wade1990/PortAIO
 private static void OnUpdate(EventArgs args)
 {
     if (SMenu.Item(_MenuItemBase + "Boolean.UseSentinel").GetValue <bool>())
     {
         if (Core.Time.TickCount > LastKeyCheckTick + 1000) // every 1 second
         {
             if (SMenu.Item(_MenuItemBase + "Boolean.UseSentinel.ModeSwap").GetValue <KeyBind>().Active)
             {
                 SwapLocations();
             }
             LastKeyCheckTick = Time.TickCount;
         }
         if (Core.Time.TickCount > LastSendCheckTick + 3000) // every 3 second
         {
             if (SMenu.Item(_MenuItemBase + "Boolean.UseSentinel.KeyPress").GetValue <KeyBind>().Active)
             {
                 if (SentSentinel())
                 {
                     LastSendCheckTick = Time.TickCount;
                 }
             }
         }
     }
 }
コード例 #6
0
        private static bool RendSmallMonsters()
        {
            if (!SMenu.Item(RendHandler._MenuItemBase + "Boolean.RendSmallMonster").GetValue <bool>())
            {
                return(false);
            }
            if (!Humanizer.Limiter.CheckDelay($"{Humanizer.DelayItemBase}Slider.RendDelay"))
            {
                return(false);
            }

            if (
                !MinionManager.GetMinions(Player.ServerPosition, Champion.E.Range, MinionTypes.All, MinionTeam.Neutral,
                                          MinionOrderTypes.MaxHealth)
                .Any(monster => Damage.DamageCalc.CalculateRendDamage(monster) > monster.Health))
            {
                return(false);
            }


            Humanizer.Limiter.UseTick($"{Humanizer.DelayItemBase}Slider.RendDelay");
            Champion.E.Cast();
            return(true);
        }
コード例 #7
0
        private static bool RendMinions()
        {
            if (!SMenu.Item(RendHandler._MenuItemBase + "Boolean.RendMinions").GetValue <bool>())
            {
                return(false);
            }
            if (!Humanizer.Limiter.CheckDelay($"{Humanizer.DelayItemBase}Slider.RendDelay"))
            {
                return(false);
            }
            var minions = MinionManager.GetMinions(Player.ServerPosition, Champion.E.Range);
            var count   = minions.Count(minion => minion.Health <= Damage.DamageCalc.CalculateRendDamage(minion) && minion.IsValid);

            if (SMenu.Item(RendHandler._MenuItemBase + "Boolean.RendMinions.Slider.Killed").GetValue <Slider>().Value >
                count)
            {
                return(false);
            }

            Humanizer.Limiter.UseTick($"{Humanizer.DelayItemBase}Slider.RendDelay");
            Champion.E.Cast();

            return(true);
        }
コード例 #8
0
        public static bool RendEnemies()
        {
            if (!SMenu.Item(RendHandler._MenuItemBase + "Boolean.RendEnemyChampions").GetValue <bool>())
            {
                return(false);
            }
            if (!Humanizer.Limiter.CheckDelay($"{Humanizer.DelayItemBase}Slider.RendDelay"))
            {
                return(false);
            }

            foreach (var target in HeroManager.Enemies)
            {
                if (!target.IsValidTarget(Champion.E.Range))
                {
                    continue;
                }
                if (Damage.DamageCalc.CheckNoDamageBuffs(target))
                {
                    continue;
                }
                if (Damage.DamageCalc.CalculateRendDamage(target) < target.Health)
                {
                    continue;
                }
                if (target.IsDead)
                {
                    continue;
                }

                Humanizer.Limiter.UseTick($"{Humanizer.DelayItemBase}Slider.RendDelay");
                Champion.E.Cast();
                return(true);
            }
            return(false);
        }
コード例 #9
0
        public static void OnMinionDraw(EventArgs args)
        {
            if (Player.IsDead)
            {
                return;
            }
            if (!SMenu.Item(_MenuItemBase + "Boolean.DrawOnMinions").GetValue <bool>())
            {
                return;
            }

            foreach (var minion in ObjectManager.Get <Obj_AI_Minion>())
            {
                if (minion.Distance(Player) > SMenu.Item(_MenuItemBase + "Boolean.DrawOnMinions.Distance").GetValue <Slider>().Value)
                {
                    continue;                                                                                                                  // Out of render range
                }
                if (minion.IsAlly)
                {
                    continue;                //This is not Dota2
                }
                if (minion.IsDead)
                {
                    continue;               //Dont poke the dead
                }
                if (!minion.IsMinion)
                {
                    continue;                                           //Differect Function
                }
                if (Player.GetAutoAttackDamage(minion) > minion.Health) // Is killable
                {
                    Render.Circle.DrawCircle(minion.Position, minion.BoundingRadius + 50, SMenu.Item(_MenuItemBase + "Boolean.DrawOnMinions.MarkerKillableColor").GetValue <Circle>().Color, 2);
                }


                else // Not killable
                {
                    Render.Circle.DrawCircle(minion.Position, minion.BoundingRadius + 50, SMenu.Item(_MenuItemBase + "Boolean.DrawOnMinions.MarkerInnerColor").GetValue <Circle>().Color, 2);

                    var remainingHp = (int)100 * (minion.Health - Player.GetAutoAttackDamage(minion)) / minion.Health;

                    Render.Circle.DrawCircle(minion.Position, minion.BoundingRadius + (float)remainingHp + 50, SMenu.Item(_MenuItemBase + "Boolean.DrawOnMinions.MakerOuterColor").GetValue <Circle>().Color, 2);
                }
            }
        }
コード例 #10
0
        private static void OnUpdate(EventArgs args)
        {
            #region Offensive

            if (!Humanizer.Limiter.CheckDelay($"{Humanizer.DelayItemBase}Slider.ItemDelay"))
            {
                return;
            }

            Humanizer.Limiter.UseTick($"{Humanizer.DelayItemBase}Slider.ItemDelay");

            var target = TargetSelector.GetTarget(1500, TargetSelector.DamageType.Physical);
            if (target == null)
            {
                return;
            }

            var inCombo = CommonOrbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo;

            if (SMenu.Item(_MenuOffensiveItemBase + "Boolean.Bork").GetValue <bool>() && Items.HasItem(Structures.Items.Offensive.Botrk.Id))
            // If enabled and has item
            {
                if (Structures.Items.Offensive.Botrk.IsReady())
                {
                    if (
                        target.IsValidTarget(Player.AttackRange + Player.BoundingRadius) || Player.HealthPercent < SMenu.Item(_MenuOffensiveItemBase + "Slider.Bork.MinHp.Player").GetValue <Slider>().Value)
                    {
                        // In auto Range or about to die
                        if (SMenu.Item(_MenuOffensiveItemBase + "Boolean.ComboOnly").GetValue <bool>() && inCombo &&
                            target.HealthPercent < SMenu.Item(_MenuOffensiveItemBase + "Slider.Bork.MaxHp").GetValue <Slider>().Value
                            //in combo and target hp less then
                            ||
                            !SMenu.Item(_MenuOffensiveItemBase + "Boolean.ComboOnly").GetValue <bool>() &&
                            target.HealthPercent < SMenu.Item(_MenuOffensiveItemBase + "Slider.Bork.MinHp").GetValue <Slider>().Value
                            //not in combo but target HP less then
                            ||
                            (Player.HealthPercent <
                             SMenu.Item(_MenuOffensiveItemBase + "Slider.Bork.MinHp.Player").GetValue <Slider>().Value))
                        //Player hp less then
                        {
                            Items.UseItem(Structures.Items.Offensive.Botrk.Id, target);
                            return;
                        }
                    }
                }
            }

            if (SMenu.Item(_MenuOffensiveItemBase + "Boolean.Bork").GetValue <bool>() && Items.HasItem(Structures.Items.Offensive.Cutless.Id))
            // If enabled and has item
            {
                if (Structures.Items.Offensive.Cutless.IsReady())
                {
                    if (
                        target.IsValidTarget(Player.AttackRange +
                                             Player.BoundingRadius) ||
                        Player.HealthPercent <
                        SMenu.Item(_MenuOffensiveItemBase + "Slider.Bork.MinHp.Player").GetValue <Slider>().Value)
                    {
                        // In auto Range or about to die
                        if (SMenu.Item(_MenuOffensiveItemBase + "Boolean.ComboOnly").GetValue <bool>() && inCombo &&
                            target.HealthPercent <
                            SMenu.Item(_MenuOffensiveItemBase + "Slider.Bork.MaxHp").GetValue <Slider>().Value
                            //in combo and target hp less then
                            ||
                            !SMenu.Item(_MenuOffensiveItemBase + "Boolean.ComboOnly").GetValue <bool>() &&
                            target.HealthPercent <
                            SMenu.Item(_MenuOffensiveItemBase + "Slider.Bork.MinHp").GetValue <Slider>().Value
                            //not in combo but target HP less then
                            ||
                            (Player.HealthPercent <
                             SMenu.Item(_MenuOffensiveItemBase + "Slider.Bork.MinHp.Player").GetValue <Slider>().Value))
                        //Player hp less then
                        {
                            Items.UseItem(Structures.Items.Offensive.Cutless.Id, target);
                            return;
                        }
                    }
                }
            }

            if (SMenu.Item(_MenuOffensiveItemBase + "Boolean.Youmuu").GetValue <bool>() && Items.HasItem(Structures.Items.Offensive.GhostBlade.Id))
            // If enabled and has item
            {
                if (Structures.Items.Offensive.GhostBlade.IsReady() &&
                    target.IsValidTarget(Player.AttackRange + Player.BoundingRadius))
                // Is ready and target is in auto range
                {
                    if (inCombo)
                    {
                        Items.UseItem(Structures.Items.Offensive.GhostBlade.Id);
                        return;
                    }
                }
            }

            #endregion

            #region Defensive

            if (SMenu.Item(_MenuDefensiveItemBase + "Boolean.QSS").GetValue <bool>() && Items.HasItem(Structures.Items.Defensive.Qss.Id))
            {
                if (SMenu.Item(_MenuDefensiveItemBase + "Boolean.ComboOnly").GetValue <bool>() && inCombo ||
                    !SMenu.Item(_MenuDefensiveItemBase + "Boolean.ComboOnly").GetValue <bool>())
                {
                    if (Structures.Items.Defensive.Qss.IsReady())
                    {
                        foreach (var buff in Bufftype.Where(buff => SMenu.Item(_MenuDefensiveItemBase + "Boolean.QSS." + buff).GetValue <bool>()))
                        {
                            if (Player.HasBuffOfType(buff))
                            {
                                LeagueSharp.Common.Utility.DelayAction.Add(SMenu.Item(_MenuDefensiveItemBase + "Slider.QSS.Delay").GetValue <Slider>().Value, () => Items.UseItem(Structures.Items.Defensive.Qss.Id));
                            }
                        }
                    }
                }
            }


            if (SMenu.Item(_MenuDefensiveItemBase + "Boolean.Merc").GetValue <bool>() && Items.HasItem(Structures.Items.Defensive.Merc.Id))
            {
                if (SMenu.Item(_MenuDefensiveItemBase + "Boolean.ComboOnly").GetValue <bool>() && inCombo ||
                    !SMenu.Item(_MenuDefensiveItemBase + "Boolean.ComboOnly").GetValue <bool>())
                {
                    if (Structures.Items.Defensive.Merc.IsReady())
                    {
                        foreach (var buff in Bufftype.Where(buff => SMenu.Item(_MenuDefensiveItemBase + "Boolean.Merc." + buff).GetValue <bool>()))
                        {
                            if (Player.HasBuffOfType(buff))
                            {
                                LeagueSharp.Common.Utility.DelayAction.Add(SMenu.Item(_MenuDefensiveItemBase + "Slider.Merc.Delay").GetValue <Slider>().Value, () => Items.UseItem(Structures.Items.Defensive.Qss.Id));
                            }
                        }
                    }
                }
            }

            #endregion
        }
コード例 #11
0
        public static void OnDrawMonster(EventArgs args)
        {
            foreach (var monster in ObjectManager.Get <Obj_AI_Minion>())
            {
                if (monster.Team != GameObjectTeam.Neutral || !monster.IsValidTarget(Champion.E.Range) ||
                    !monster.IsHPBarRendered)
                {
                    continue;
                }

                var rendDamage = Damage.DamageCalc.CalculateRendDamage(monster);

                if (rendDamage > 1)
                {
                    if (string.Equals(monster.CharData.BaseSkinName, "sru_dragon",
                                      StringComparison.CurrentCultureIgnoreCase)
                        ||
                        string.Equals(monster.CharData.BaseSkinName, "sru_baron",
                                      StringComparison.CurrentCultureIgnoreCase)
                        ||
                        string.Equals(monster.CharData.BaseSkinName, "sru_red",
                                      StringComparison.CurrentCultureIgnoreCase)
                        ||
                        string.Equals(monster.CharData.BaseSkinName, "sru_blue",
                                      StringComparison.CurrentCultureIgnoreCase))

                    {
                        if (!SMenu.Item(_MenuItemBase + "Boolean.DrawOnEpics").GetValue <bool>())
                        {
                            continue;
                        }

                        if (rendDamage > monster.Health) // Is killable
                        {
                            Render.Circle.DrawCircle(monster.Position, monster.BoundingRadius + 50,
                                                     SMenu.Item(_MenuItemBase + "Boolean.DrawOnEpics.KillableColor").GetValue <Circle>().Color,
                                                     2);
                        }

                        else // Not killable
                        {
                            Render.Circle.DrawCircle(monster.Position, monster.BoundingRadius + 50,
                                                     SMenu.Item(_MenuItemBase + "Boolean.DrawOnEpics.InnerColor").GetValue <Circle>().Color, 2);
                            var remainingHp = (int)100 * (monster.Health - Damage.DamageCalc.CalculateRendDamage(monster)) / monster.Health;
                            Render.Circle.DrawCircle(monster.Position, monster.BoundingRadius + (float)remainingHp + 50,
                                                     SMenu.Item(_MenuItemBase + "Boolean.DrawOnEpics.OuterColor").GetValue <Circle>().Color, 2);
                        }

                        if (SMenu.Item(_MenuItemBase + "Boolean.DrawOnMonsters.KillableColor").GetValue <Circle>().Active)
                        {
                            if (rendDamage > monster.Health)
                            {
                                LeagueSharp.Drawing.DrawText(monster.Position.X, monster.Position.Y + 100,
                                                             SMenu.Item(_MenuItemBase + "Boolean.DrawOnMonsters.KillableColor")
                                                             .GetValue <Circle>()
                                                             .Color, "Killable");
                            }
                        }
                    }

                    else
                    {
                        foreach (var monsterBar in Structures.Monster.MonsterBarDictionary)
                        {
                            if (string.Equals(monster.CharData.BaseSkinName, monsterBar.Key,
                                              StringComparison.CurrentCultureIgnoreCase))
                            {
                                var barPos = monster.HPBarPosition;
                                var percentHealthAfterDamage = Math.Max(0, monster.Health - rendDamage) /
                                                               monster.MaxHealth;
                                var yPos       = barPos.Y + monsterBar.Value.YOffsetBegin;
                                var xPosDamage = barPos.X + monsterBar.Value.XOffset +
                                                 monsterBar.Value.BarWidth * percentHealthAfterDamage;
                                var xPosCurrentHp = barPos.X + monsterBar.Value.XOffset +
                                                    monsterBar.Value.BarWidth * monster.Health / monster.MaxHealth;

                                if (SMenu.Item(_MenuItemBase + "Boolean.DrawOnMonsters.Fill").GetValue <Circle>().Active)
                                {
                                    var differenceInHp = xPosCurrentHp - xPosDamage;
                                    var pos1           = barPos.X + monsterBar.Value.XOffset;
                                    for (var i = 0; i < differenceInHp; i++)
                                    {
                                        LeagueSharp.Drawing.DrawLine(pos1 + i, yPos, pos1 + i,
                                                                     yPos + monsterBar.Value.YOffsetEnd, 1,
                                                                     SMenu.Item(_MenuItemBase + "Boolean.DrawOnMonsters.Fill")
                                                                     .GetValue <Circle>()
                                                                     .Color);
                                    }
                                }
                                else
                                {
                                    LeagueSharp.Drawing.DrawLine(xPosDamage, yPos, xPosDamage,
                                                                 yPos + monsterBar.Value.YOffsetEnd, 1,
                                                                 SMenu.Item(_MenuItemBase + "Boolean.DrawOnMonsters.NonFill")
                                                                 .GetValue <Circle>()
                                                                 .Color);
                                }


                                if (
                                    SMenu.Item(_MenuItemBase + "Boolean.DrawOnMonsters.KillableColor")
                                    .GetValue <Circle>()
                                    .Active)
                                {
                                    if (rendDamage > monster.Health)
                                    {
                                        LeagueSharp.Drawing.DrawText(
                                            monster.HPBarPosition.X + monsterBar.Value.XOffset, monster.HPBarPosition.Y,
                                            SMenu.Item(_MenuItemBase + "Boolean.DrawOnMonsters.KillableColor")
                                            .GetValue <Circle>()
                                            .Color, "Killable");
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
コード例 #12
0
        private void Combo()
        {
            GeassLib.Globals.Variables.InCombo = true;
            if (!SMenu.Item(MenuNameBase + "Combo.Boolean.UseQ").GetValue <bool>() &&
                !SMenu.Item(MenuNameBase + "Combo.Boolean.UseE").GetValue <bool>() &&
                !SMenu.Item(MenuNameBase + "Combo.Boolean.UseR").GetValue <bool>())
            {
                return;
            }

            if (SMenu.Item(MenuNameBase + "Combo.Boolean.UseE").GetValue <bool>() && Champion.GetSpellE.IsReady() && ComboUseE())
            {
                foreach (var enemy in (ObjectManager.Get <AIHeroClient>().Where(e => e.IsValidTarget(Champion.GetSpellE.Range)).OrderBy(hp => hp.Health)))
                {
                    if (!SMenu.Item(MenuNameBase + "Combo.Boolean.UseE.On." + enemy.ChampionName).GetValue <bool>())
                    {
                        continue;
                    }
                    Logger.WriteLog($"Combo Use E on {enemy}");
                    Champion.GetSpellE.Cast(enemy);
                    break;
                }
            }

            if (SMenu.Item(MenuNameBase + "Combo.Boolean.UseQ").GetValue <bool>() && Champion.GetSpellQ.IsReady() && ComboUseQ())
            {
                foreach (var enemy in (ObjectManager.Get <AIHeroClient>().Where(e => e.IsValidTarget(Champion.GetSpellQ.Range)).OrderBy(hp => hp.Health)))
                {
                    Logger.WriteLog($"Combo Use Q on {enemy}");
                    Champion.GetSpellQ.Cast();
                    CommonOrbwalker.ForceTarget(enemy);
                    break;
                }
            }

            if (SMenu.Item(MenuNameBase + "Combo.Boolean.FocusETarget").GetValue <bool>())
            {
                foreach (var enemy in (ObjectManager.Get <AIHeroClient>().Where(e => e.IsValidTarget(Champion.GetSpellQ.Range) && e.HasBuff("TristanaECharge")).OrderBy(hp => hp.Health)))
                {
                    Logger.WriteLog($"Force target {enemy}");
                    CommonOrbwalker.ForceTarget(enemy);
                    break;
                }
            }

            if (SMenu.Item(MenuNameBase + "Combo.Boolean.UseR").GetValue <bool>() && Champion.GetSpellR.IsReady() && ComboUseR())
            {
                foreach (var enemy in (ObjectManager.Get <AIHeroClient>().Where(e => e.IsValidTarget(Champion.GetSpellR.Range)).OrderBy(hp => hp.Health)))
                {
                    if (!SMenu.Item(MenuNameBase + "Combo.Boolean.UseR.On." + enemy.ChampionName).GetValue <bool>())
                    {
                        continue;
                    }
                    if (_damageLib.CalcDamage(enemy) < enemy.Health)
                    {
                        continue;
                    }
                    Logger.WriteLog($"Combo Use R on {enemy}");
                    Champion.GetSpellR.Cast(enemy);
                    return;
                }
            }
        }