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(); }
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(); } } } } }
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); } }
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); }
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; } } } } }
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); }
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); }
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); }
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); } } }
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 }
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"); } } } } } } } }
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; } } }