/// <summary> /// Put in here what you want to do when the mode is running /// </summary> public static void Execute() { var target = TargetSelector.GetTarget(1500, DamageType.Physical); Orbwalker.OrbwalkTo(Game.CursorPos); if (target == null) { return; } UseItems(target); if (target.HasQBuff()) { if (castQAgain || target.HasBuffOfType(BuffType.Knockback) && !myHero.IsValidTarget(300) && !R.IsReady() || !target.IsValidTarget(myHero.GetAutoAttackRange()) && !R.IsReady()) { Q.Cast(target); } } if (target.Distance(myHero) > R.Range && target.Distance(myHero) < R.Range + 580 && target.HasQBuff()) { WardJumper.WardJump(target.Position, false); } if (E.IsReady() && EState && target.IsValidTarget(E.Range)) { E.Cast(); } if (R.IsReady() && Q.IsReady() && target.HasQBuff()) { R.Cast(target); } if (Q.IsReady() && QState) { Core.DelayAction(delegate { CastQ(target); }, 200); } }
/// <summary> /// Put in here what you want to do when the mode is running /// </summary> public static void Execute() { var target = TargetSelector.GetTarget(Q.Range, DamageType.Physical); if (target == null) { return; } if (!target.IsZombie && R.IsReady() && ComboMenu.GetCheckBoxValue("rUse") && ComboMenu.GetCheckBoxValue("qUse") && target.IsValidTarget(R.Range) && (myHero.GetSpellDamage(target, SpellSlot.R) >= target.Health || target.HasQBuff() && target.Health < myHero.GetSpellDamage(target, SpellSlot.R) + Q2Damage(target, myHero.GetSpellDamage(target, SpellSlot.R)))) { R.Cast(target); } if (ComboMenu.GetCheckBoxValue("q2Use") && Q.IsReady() && Q.Name.Equals("blindmonkqtwo", StringComparison.InvariantCultureIgnoreCase) && target.HasQBuff() && (castQAgain)) { CastQ(target, MiscMenu.GetCheckBoxValue("smiteq")); return; } if (target.HasQBuff() && ComboMenu.GetCheckBoxValue("q2Use")) { if (!target.IsZombie && target.HasQBuff() && target.Health < myHero.GetSpellDamage(target, SpellSlot.R) + Q2Damage(target, myHero.GetSpellDamage(target, SpellSlot.R))) { if (ComboMenu.GetCheckBoxValue("rUseks")) { R.Cast(target); } } } if (target.IsValidTarget(385f)) { UseItems(target); } if (ComboMenu.GetCheckBoxValue("q2Use") && Q.IsReady() && Q.Name.Equals("blindmonkqtwo", StringComparison.InvariantCultureIgnoreCase) && target.HasQBuff() && (castQAgain || myHero.GetSpellDamage(target, SpellSlot.Q, DamageLibrary.SpellStages.SecondCast) > target.Health) || ReturnQBuff()?.Distance(target) < myHero.Distance(target) && !target.IsValidTarget(myHero.GetAutoAttackRange())) { Q.Cast(target); } if (!target.IsZombie && myHero.GetSpellDamage(target, SpellSlot.R) >= target.Health && ComboMenu.GetCheckBoxValue("rUseks") && target.IsValidTarget(R.Range)) { R.Cast(target); } if (Q.IsReady() && QState && ComboMenu.GetCheckBoxValue("qUse")) { CastQ(target, MiscMenu.GetCheckBoxValue("smiteq")); } if (ComboMenu.GetCheckBoxValue("Cpassive") && PassiveStacks > ComboMenu.GetSliderValue("passivestacks") && myHero.GetAutoAttackRange() > myHero.Distance(target)) { return; } if (ComboMenu.GetCheckBoxValue("q2Use") && Q.IsReady() && Q.Name.Equals("blindmonkqtwo", StringComparison.InvariantCultureIgnoreCase) && target.HasQBuff() && (castQAgain || myHero.Distance(target) > myHero.GetAutoAttackRange() || myHero.GetSpellDamage(target, SpellSlot.Q, DamageLibrary.SpellStages.SecondCast) > target.Health + target.AttackShield)) { CastQ(target, MiscMenu.GetCheckBoxValue("smiteq")); return; } if (ComboMenu.GetCheckBoxValue("wardjumpC")) { if (ComboMenu.GetCheckBoxValue("wardjumpCAA") && target.Distance(myHero) > myHero.GetAutoAttackRange()) { WardJumper.WardJump(target.Position, false, true); } if (!ComboMenu.GetCheckBoxValue("wardjumpCAA") && target.Distance(myHero) > Q.Range) { WardJumper.WardJump(target.Position, false, true); } } if (E.IsReady() && ComboMenu.GetCheckBoxValue("eUse") && target.Distance(myHero) < 400 && !myHero.IsDashing()) { if (Environment.TickCount - LastW <= 150) { return; } if (EState) { if (GetEHits().Item1 > 0 || (PassiveStacks == 0 && myHero.Mana >= 70) || target.Distance(myHero) > myHero.GetAutoAttackRange() + 70) { E.Cast(); } } else { if (LastE + 1800 < Environment.TickCount) { if (GetEHits().Item1 > 0 || target.Distance(myHero) > myHero.GetAutoAttackRange() + 50) { E.Cast(); } } } } if (W.IsReady() && ComboMenu.GetCheckBoxValue("wUse")) { if (Environment.TickCount - LastE <= 250) { return; } if (WState && target.IsValidTarget(myHero.GetAutoAttackRange())) { W.Cast(myHero); LastW = Environment.TickCount; } if (!WState && LastW + 1800 < Environment.TickCount) { W.Cast(myHero); } } }
/// <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; } } }
/// <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); } } } }