private static void Obj_AI_Base_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (!sender.IsMe) { return; } if (SpellNames.Contains(args.SData.Name.ToLower())) { PassiveStacks = 2; passiveTimer = Environment.TickCount + 3000; LastSpellTime = Environment.TickCount; } if (args.SData.Name.Equals("BlindMonkQOne", StringComparison.InvariantCultureIgnoreCase)) { castQAgain = false; Core.DelayAction(delegate { castQAgain = true; }, 2900); } if (R.IsReady() && Flash.IsReady()) { var target = InsecMenu.GetCheckBoxValue("insecMode") ? TargetSelector.SelectedTarget : TargetSelector.GetTarget(R.Range, DamageType.Physical); if (target == null) { return; } if (args.SData.Name.Equals("BlindMonkRKick", StringComparison.InvariantCultureIgnoreCase) && InsecMenu.GetKeyBindValue("insecflash")) { Core.DelayAction(delegate { Flash.Cast(GetInsecPos(target)); }, 80); } } if (args.SData.Name.Equals("summonerflash", StringComparison.InvariantCultureIgnoreCase) && insecComboStep != InsecComboStepSelect.None) { var target = InsecMenu.GetCheckBoxValue("insecMode") ? TargetSelector.SelectedTarget : TargetSelector.GetTarget(Q.Range, DamageType.Physical); insecComboStep = InsecComboStepSelect.Pressr; Core.DelayAction(delegate { R.Cast(target); }, 80); } if (args.SData.Name.Equals("BlindMonkQTwo", StringComparison.InvariantCultureIgnoreCase)) { waitingForQ2 = true; Core.DelayAction(delegate { waitingForQ2 = false; }, 3000); } if (args.SData.Name.Equals("BlindMonkRKick", StringComparison.InvariantCultureIgnoreCase)) { insecComboStep = InsecComboStepSelect.None; } switch (args.SData.Name.ToLower()) { case "blindmonkqone": LastQ = Environment.TickCount; LastSpell = Environment.TickCount; PassiveStacks = 2; break; case "blindmonkwone": LastW = Environment.TickCount; LastSpell = Environment.TickCount; PassiveStacks = 2; break; case "blindmonkeone": LastE = Environment.TickCount; LastSpell = Environment.TickCount; PassiveStacks = 2; break; case "blindmonkqtwo": LastQ2 = Environment.TickCount; LastSpell = Environment.TickCount; PassiveStacks = 2; CheckQ = false; break; case "blindmonkwtwo": LastW2 = Environment.TickCount; LastSpell = Environment.TickCount; PassiveStacks = 2; break; case "blindmonketwo": LastQ = Environment.TickCount; LastSpell = Environment.TickCount; PassiveStacks = 2; break; case "blindmonkrkick": LastR = Environment.TickCount; LastSpell = Environment.TickCount; PassiveStacks = 2; break; } }
/// <summary> /// Put in here what you want to do when the mode is running /// </summary> public static void InsecCombo(AIHeroClient target) { if (target != null && target.IsVisible) { if (myHero.Distance(GetInsecPos(target)) < 200) { insecComboStep = InsecComboStepSelect.Pressr; } else if (insecComboStep == InsecComboStepSelect.None && GetInsecPos(target).Distance(myHero.Position) < 600) { insecComboStep = InsecComboStepSelect.Wgapclose; } else if (insecComboStep == InsecComboStepSelect.None && target.Distance(myHero) < Q.Range) { insecComboStep = InsecComboStepSelect.Qgapclose; } switch (insecComboStep) { case InsecComboStepSelect.Qgapclose: var prediction = Q.GetPrediction(target); if (prediction.CollisionObjects.Count(h => h.IsEnemy && !h.IsDead && h is Obj_AI_Minion) >= 1 && InsecMenu.GetCheckBoxValue("inseccheck") && Q.IsReady()) { foreach (var unit in ObjectManager.Get <Obj_AI_Base>().Where(obj => (((obj is Obj_AI_Minion) && myHero.GetSpellDamage(target, SpellSlot.Q) < obj.Health + 10) || (obj is AIHeroClient)) && obj.IsValidTarget(Q.Range) && obj.Distance(GetInsecPos(target)) < 500)) { var pred = Q.GetPrediction(unit); if (pred.HitChance >= HitChance.High) { Q.Cast(pred.CastPosition); } break; } } if (!(target.HasQBuff()) && QState) { CastQ(target, MiscMenu.GetCheckBoxValue("smiteq")); } else if (target.HasQBuff()) { Q2.Cast(); insecComboStep = InsecComboStepSelect.Wgapclose; } else { if (Q.Name == "blindmonkqtwo" && ReturnQBuff().Distance(target) <= 600 && target.HasQBuff()) { Q2.Cast(); } } break; case InsecComboStepSelect.Wgapclose: if (myHero.Distance(target) < WardRange) { WardJumper.WardJump(GetInsecPos(target), false, true, true); if (FindBestWardItem() == null && R.IsReady() && InsecMenu.GetCheckBoxValue("insecnoward") && Flash.IsReady()) { if ((GetInsecPos(target).Distance(myHero.Position) < FlashRange && LastWard + 1000 < Environment.TickCount) || !W.IsReady()) { Flash.Cast(GetInsecPos(target)); } } } else if (myHero.Distance(target) < WardFlashRange) { WardJumper.WardJump(target.Position); if (R.IsReady() && InsecMenu.GetCheckBoxValue("insecnoward") && Flash.IsReady()) { if (myHero.Distance(target) < FlashRange - 25) { if (FindBestWardItem() == null || LastWard + 1000 < Environment.TickCount) { Flash.Cast(GetInsecPos(target)); } } } } break; case InsecComboStepSelect.Pressr: R.Cast(target); break; } } }
protected override void CreateMenu() { try { #region Mainmenu Menu = MainMenu.AddMenu("UB" + player.Hero, "UBAddons.MainMenu" + player.Hero, "UB" + player.Hero + " - UBAddons - by U.Boruto"); Menu.AddGroupLabel("General Setting"); Menu.CreatSlotHitChance(SpellSlot.Q); Menu.CreatSlotHitChance(SpellSlot.R); #endregion #region Insec InsecMenu = Menu.AddSubMenu("Insec", "UBAddons.Insec" + player.Hero, "UB" + player.Hero + " - Settings your insec below"); { InsecMenu.Add("UBAddons.Azir.Insec.Key", new KeyBind("Insec Key", true, KeyBind.BindTypes.HoldActive)); InsecMenu.Add("UBAddons.Azir.Insec.To", new ComboBox("Insec Target to", 0, "My Cursor", "My Turret", "My Ally", "Select Position")); } #endregion #region Combo ComboMenu = Menu.AddSubMenu("Combo", "UBAddons.ComboMenu" + player.Hero, "UB" + player.Hero + " - Settings your combo below"); { ComboMenu.CreatSlotCheckBox(SpellSlot.Q); ComboMenu.CreatSlotCheckBox(SpellSlot.W); ComboMenu.Add("UBAddons.Azir.W.Soldier", new Slider("Max soldier", 2, 1, 3)); ComboMenu.CreatSlotCheckBox(SpellSlot.E); ComboMenu.Add("UBAddons.Azir.E.OnlyCanKill", new CheckBox("E to Killable Target only")); ComboMenu.CreatSlotCheckBox(SpellSlot.R); ComboMenu.CreatSlotComboBox(SpellSlot.R, 0, "Smart", "Ally", "Turret", "Push"); } #endregion #region Harass HarassMenu = Menu.AddSubMenu("Harass", "UBAddons.HarassMenu" + player.Hero, "UB" + player.Hero + " - Settings your harass below"); { HarassMenu.CreatSlotCheckBox(SpellSlot.Q); HarassMenu.CreatSlotCheckBox(SpellSlot.W); HarassMenu.Add("UBAddons.Azir.W.Soldier", new Slider("Max soldier", 2, 1, 3)); HarassMenu.CreatManaLimit(); } #endregion #region LaneClear LaneClearMenu = Menu.AddSubMenu("LaneClear", "UBAddons.LaneClear" + player.Hero, "UB" + player.Hero + " - Settings your laneclear below"); { LaneClearMenu.CreatLaneClearOpening(); LaneClearMenu.CreatSlotCheckBox(SpellSlot.Q, null, false); LaneClearMenu.CreatSlotHitSlider(SpellSlot.Q, 5, 1, 10); LaneClearMenu.CreatSlotCheckBox(SpellSlot.W, null, false); LaneClearMenu.Add("UBAddons.Azir.W.Soldier", new Slider("Max soldier", 2, 1, 3)); LaneClearMenu.CreatSlotCheckBox(SpellSlot.E, null, false); LaneClearMenu.CreatManaLimit(); } #endregion #region JungleClear JungleClearMenu = Menu.AddSubMenu("JungleClear", "UBAddons.JungleClear" + player.Hero, "UB" + player.Hero + " - Settings your jungleclear below"); { JungleClearMenu.CreatSlotCheckBox(SpellSlot.Q, null, false); JungleClearMenu.CreatSlotCheckBox(SpellSlot.W); JungleClearMenu.Add("UBAddons.Azir.W.Soldier", new Slider("Max soldier", 2, 1, 3)); JungleClearMenu.CreatSlotCheckBox(SpellSlot.E, null, false); JungleClearMenu.CreatManaLimit(); } #endregion #region Lasthit LasthitMenu = Menu.AddSubMenu("Lasthit", "UBAddons.Lasthit" + player.Hero, "UB" + player.Hero + " - Settings your unkillable minion below"); { LasthitMenu.CreatLasthitOpening(); LasthitMenu.CreatSlotCheckBox(SpellSlot.Q); LasthitMenu.CreatManaLimit(); } #endregion #region Misc MiscMenu = Menu.AddSubMenu("Misc", "UBAddons.Misc" + player.Hero, "UB" + player.Hero + " - Settings your misc below"); { MiscMenu.AddGroupLabel("Anti Gapcloser settings"); MiscMenu.CreatMiscGapCloser(); MiscMenu.CreatSlotCheckBox(SpellSlot.R, "GapCloser"); MiscMenu.AddGroupLabel("Interrupter settings"); MiscMenu.CreatDangerValueBox(); MiscMenu.CreatSlotCheckBox(SpellSlot.R, "Interrupter"); MiscMenu.AddGroupLabel("Killsteal settings"); MiscMenu.CreatSlotCheckBox(SpellSlot.Q, "KillSteal"); MiscMenu.CreatSlotCheckBox(SpellSlot.W, "KillSteal"); MiscMenu.CreatSlotCheckBox(SpellSlot.E, "KillSteal"); MiscMenu.CreatSlotCheckBox(SpellSlot.R, "KillSteal"); } #endregion #region Drawings DrawMenu = Menu.AddSubMenu("Drawings"); { DrawMenu.CreatDrawingOpening(); DrawMenu.Add("UBAddons.Insec.Position", new CheckBox("Draw Selected Position")); DrawMenu.CreatColorPicker(SpellSlot.Q); DrawMenu.CreatColorPicker(SpellSlot.W); DrawMenu.CreatColorPicker(SpellSlot.E); DrawMenu.CreatColorPicker(SpellSlot.R); DrawMenu.CreatColorPicker(SpellSlot.Unknown); } #endregion DamageIndicator.Initalize(MenuValue.Drawings.ColorDmg); } catch (Exception exception) { Debug.Print(exception.ToString(), Console_Message.Error); } }
/// <summary> /// This event is triggered every tick of the game /// </summary> /// <param name="args"></param> /// private static void Game_OnTick(EventArgs args) { if (Extensions.doubleClickReset <= Environment.TickCount && Extensions.clickCount != 0) { Extensions.doubleClickReset = float.MaxValue; Extensions.clickCount = 0; } if (Extensions.clickCount >= 2) { Extensions.resetTime = Environment.TickCount + 3000; Extensions.ClicksecEnabled = true; Extensions.InsecClickPos = Game.CursorPos; Extensions.clickCount = 0; } if (Extensions.passiveTimer <= Environment.TickCount) { Extensions.PassiveStacks = 0; } if (Extensions.resetTime <= Environment.TickCount && !InsecMenu.GetKeyBindValue("insec") && Extensions.ClicksecEnabled) { Extensions.ClicksecEnabled = false; } if (Extensions.q2Timer <= Environment.TickCount) { Extensions.q2Done = false; } if (myHero.IsDead || MenuGUI.IsChatOpen || myHero.IsRecalling()) { return; } if ((InsecMenu.GetCheckBoxValue("insecMode") ? TargetSelector.SelectedTarget : TargetSelector.GetTarget(SpellsManager.Q.Range, DamageType.Physical)) == null) { Extensions.insecComboStep = Extensions.InsecComboStepSelect.None; } if (ComboMenu.GetKeyBindValue("starCombo")) { WardCombo.Execute(); } if (MiscMenu.GetCheckBoxValue("igniteks")) { var newTarget = TargetSelector.GetTarget(600, DamageType.True); if (newTarget != null && SpellsManager.igniteSlot != SpellSlot.Unknown && myHero.Spellbook.CanUseSpell(SpellsManager.igniteSlot) == SpellState.Ready && ObjectManager.Player.GetSummonerSpellDamage(newTarget, DamageLibrary.SummonerSpells.Ignite) > newTarget.Health) { myHero.Spellbook.CastSpell(SpellsManager.igniteSlot, newTarget); } } if (InsecMenu.GetKeyBindValue("insec") && SpellsManager.R.IsReady()) { if (InsecMenu.GetCheckBoxValue("insecorbw")) { Extensions.Orbwalk(Game.CursorPos); } var newTarget = InsecMenu.GetCheckBoxValue("insecMode") ? TargetSelector.SelectedTarget : TargetSelector.GetTarget(SpellsManager.Q.Range, DamageType.Physical); if (newTarget != null) { Insec.InsecCombo(newTarget); } } else { Extensions.isNullInsecPos = true; Extensions.wardJumped = false; } if (!Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo)) { Extensions.insecComboStep = Extensions.InsecComboStepSelect.None; } if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo)) { Combo.Execute(); } if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Harass)) { Harass.Execute(); } if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear)) { LaneClear.Execute(); } if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear)) { JungleClear.Execute(); } Killsteal.Execute(); if (WardJumpMenu.GetKeyBindValue("wardjump")) { WardJumper.WardjumpToMouse(); } if (InsecMenu.GetKeyBindValue("insecflash")) { Extensions.Orbwalk(Game.CursorPos); var target = TargetSelector.GetTarget(SpellsManager.R.Range, DamageType.Physical); if (target == null) { return; } if (SpellsManager.R.IsReady() && !target.IsZombie && SpellsManager.Flash.IsReady() && target.IsValidTarget(SpellsManager.R.Range)) { SpellsManager.R.Cast(target); } } if (!ComboMenu.GetCheckBoxValue("rkickkill") || !SpellsManager.R.IsReady()) { return; } AIHeroClient t = EntityManager.Heroes.Enemies.Find( e => e.IsValidTarget(SpellsManager.Q.Range + SpellsManager.W.Range) && !e.IsDead && !e.IsZombie && e.Distance(Game.CursorPos) < e.Distance(ObjectManager.Player.Position) && !e.IsValidTarget(myHero.GetAutoAttackRange(null) + 65) && e.Health < e.MaxHealth * 0.14); if (t == null) { return; } foreach (var enemy in EntityManager.Heroes.Enemies.Where(e => e.Distance(t.Position) < 800 && e.NetworkId != t.NetworkId && ObjectManager.Player.Distance(e) < ObjectManager.Player.Distance(t))) { toPolygon = new Geometry2.Rectangle(t.Position.To2D(), t.Position.To2D().Extend(ObjectManager.Player.Position.To2D(), 800), 100).ToPolygon(); toPolygon.Draw(Color.Blue, 3); if (toPolygon.IsInside(enemy.Position.To2D())) { SpellsManager.R.Cast(enemy); } } if (ComboMenu.GetCheckBoxValue("rkick")) { float leeSinRKickDistance = 700; float leeSinRKickWidth = 100; var minREnemies = ComboMenu.GetSliderValue("rkickcount"); foreach (var enemy in EntityManager.Heroes.Enemies) { var startPos = enemy.ServerPosition; var endPos = myHero.ServerPosition.Extend(startPos, myHero.Distance(enemy) + leeSinRKickDistance); var rectangle = new Geometry.Polygon.Rectangle(startPos, endPos, leeSinRKickWidth); if (EntityManager.Heroes.Enemies.Count(x => rectangle.IsInside(x)) >= minREnemies) { SpellsManager.R.Cast(enemy); } } } }
/// <summary> /// Normal drawings /// </summary> /// <param name="args"></param> private static void Drawing_OnDraw(EventArgs args) { var newTarget = InsecMenu.GetCheckBoxValue("insecMode") ? TargetSelector.SelectedTarget : TargetSelector.GetTarget(Q.Range, DamageType.Physical); if (Extensions.ClicksecEnabled && InsecMenu.GetCheckBoxValue("clickInsec")) { Drawing.DrawCircle(Extensions.InsecClickPos, 100, Color.DeepSkyBlue); } var playerPos = Drawing.WorldToScreen(ObjectManager.Player.Position); if (InsecMenu.GetKeyBindValue("insecflash")) { Drawing.DrawText(playerPos.X - 55, playerPos.Y + 40, Color.Yellow, "Flash Insec enabled"); } if (DrawingsMenu.GetCheckBoxValue("drawinseclines") && R.IsReady()) { if (newTarget != null && newTarget.IsVisible && newTarget.IsValidTarget() && !newTarget.IsDead && myHero.Distance(newTarget) < 3000) { Vector2 targetPos = Drawing.WorldToScreen(newTarget.Position); Drawing.DrawLine( Extensions.InsecLinePos.X, Extensions.InsecLinePos.Y, targetPos.X, targetPos.Y, 3, Color.Gold); Drawing.DrawText( Drawing.WorldToScreen(newTarget.Position).X - 40, Drawing.WorldToScreen(newTarget.Position).Y + 10, Color.White, "Selected Target"); Drawing.DrawCircle(Extensions.GetInsecPos(newTarget), 100, Color.DeepSkyBlue); } } if (!DrawingsMenu.GetCheckBoxValue("drawsenabled")) { return; } if (WardJumpMenu.GetKeyBindValue("wardjump") && DrawingsMenu.GetCheckBoxValue("drawwardjump")) { Drawing.DrawCircle(Extensions.JumpPos.To3D(), 20, Color.Red); Drawing.DrawCircle(myHero.Position, 600, Color.Red); } var readyDraw = DrawingsMenu.GetCheckBoxValue("readyDraw"); if (DrawingsMenu.GetCheckBoxValue("qDraw") && readyDraw ? Q.IsReady() : DrawingsMenu.GetCheckBoxValue("qDraw")) { Circle.Draw(QColorSlide.GetSharpColor(), Q.Range, 1f, Player.Instance); } if (DrawingsMenu.GetCheckBoxValue("wDraw") && readyDraw ? W.IsReady() : DrawingsMenu.GetCheckBoxValue("wDraw")) { Circle.Draw(WColorSlide.GetSharpColor(), W.Range, 1f, Player.Instance); } if (DrawingsMenu.GetCheckBoxValue("eDraw") && readyDraw ? E.IsReady() : DrawingsMenu.GetCheckBoxValue("eDraw")) { Circle.Draw(EColorSlide.GetSharpColor(), E.Range, 1f, Player.Instance); } if (DrawingsMenu.GetCheckBoxValue("rDraw") && readyDraw ? R.IsReady() : DrawingsMenu.GetCheckBoxValue("rDraw")) { Circle.Draw(RColorSlide.GetSharpColor(), R.Range, 1f, Player.Instance); } }