public static void Combo(Obj_AI_Hero targetHero) //Thanks Roach_ For helping me with combo { if (!targetHero.IsValidTarget()) { return; } var enemyQBuffed = targetHero.HasBuff("BlindMonkQOne", true); var autoAttacks = Config.Menu.Item("aaBetween").GetValue <Slider>().Value; var passiveCount = LeeUtility.BuffCount("blindmonkpassive_cosmetic"); if (!enemyQBuffed && autoAttacks != 0 && passiveCount >= Math.Abs(autoAttacks - 2)) { return; } if (LeeUtility.MenuParamBool("useQC") && Q.IsReady() && Q.Instance.Name == "BlindMonkQOne" && R.IsReady() && Vector3.DistanceSquared(targetHero.ServerPosition, Player.ServerPosition) <= 375 * 375) { LeeUtility.CastQ(targetHero, QMode.Combo); } else if (LeeUtility.MenuParamBool("useQC") && enemyQBuffed && R.IsReady()) { if (targetHero.Distance(Player) <= R.Range) { R.Cast(targetHero, LeeUtility.MenuParamBool("packetCast")); Utility.DelayAction.Add(750, () => Q.Cast(targetHero)); } else { Player.IssueOrder(GameObjectOrder.MoveTo, targetHero.ServerPosition); } } else { if (LeeUtility.MenuParamBool("useQC") && LeeUtility.CastQ(targetHero, QMode.Combo)) { var qPos = Q.GetPrediction(targetHero); Utility.DelayAction.Add( (int)(targetHero.Distance(qPos.UnitPosition) / Q.Speed * 1000) + 300 + Game.Ping, () => Q.Cast()); } if (Vector3.DistanceSquared(targetHero.ServerPosition, Player.ServerPosition) <= 350 * 350 && E.IsReady()) { if (E.IsReady() && LeeUtility.MenuParamBool("useE1C") && (E.Instance.Name == "BlindMonkEOne" || LeeUtility.MenuParamBool("useE2C"))) { E.Cast(); } else if (!Q.IsReady() && !E.IsReady() && !R.IsReady() && LeeUtility.MenuParamBool("useW1C") && (W.Instance.Name == "BlindMonkWOne" || LeeUtility.MenuParamBool("useW2C")) && Player.Mana - 50 >= 50) { W.Cast(); } } } }
public static void Harass(Obj_AI_Hero targetHero, bool useW = true) { if (!targetHero.IsValidTarget()) { _harassStage = HarassStage.Nothing; return; } switch (_harassStage) { case HarassStage.Nothing: _harassStage = HarassStage.Started; break; case HarassStage.Started: _harassStage = HarassStage.Doing; if (E.IsReady() && Vector3.DistanceSquared(Player.ServerPosition, targetHero.ServerPosition) <= 350 * 350 && LeeUtility.MenuParamBool("UseE1H")) { E.Cast(); if (LeeUtility.MenuParamBool("UseE2H")) { Utility.DelayAction.Add( 250 - Game.Ping / 2 + 10, () => { E.Cast(Player, true); _harassStage = LeeUtility.MenuParamBool("UseQ1H") && Q.IsReady() ? HarassStage.Doing : HarassStage.Finished; }); } } else { _harassStage = HarassStage.Finished; } if (Q.IsReady() && LeeUtility.MenuParamBool("UseQ1H")) { //LeeUtility.CastQ(targetHero, QMode.Harass); if (LeeUtility.CastQ(targetHero, QMode.Harass) && LeeUtility.MenuParamBool("UseQ2H")) { var delay = (int)(targetHero.Distance(Player) / Q.Speed * 1000) + 300 + Game.Ping; Utility.DelayAction.Add( delay, () => { if (Vector3.DistanceSquared(_harassInitialVector3, Player.ServerPosition) <= 600 * 600) { _harassInitialVector3 = Player.ServerPosition; } Q.Cast(targetHero); }); Utility.DelayAction.Add(delay * 2, () => _harassStage = HarassStage.Finished); } else { _harassStage = HarassStage.Finished; } } else { _harassStage = HarassStage.Finished; } break; case HarassStage.Doing: break; case HarassStage.Finished: if (LeeUtility.MenuParamBool("UseWH") && useW) { LeeUtility.WardJump(_harassInitialVector3, LeeUtility.MenuParamBool("UseWardWH")); } _harassStage = HarassStage.Nothing; break; } }
public static void InsecCombo(Obj_AI_Hero targetHero) { if (((!W.IsReady() || Items.GetWardSlot() == null) && Player.SummonerSpellbook.CanUseSpell(LeeSinSharp.FlashSlot) != SpellState.Ready) || !R.IsReady() || !Q.IsReady() || Q.Instance.Name != "BlindMonkQOne") { if (Config.Menu.Item("insec1").GetValue <KeyBind>().Active || Config.Menu.Item("insec2").GetValue <KeyBind>().Active) { Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos); } return; } if (!targetHero.IsValidTarget()) { return; } var useFlash = LeeUtility.MenuParamBool("useFlashInsec") && ((Config.Menu.Item("insecMode").GetValue <StringList>().SelectedIndex == 0 && (!W.IsReady() || Items.GetWardSlot() == null)) || (Config.Menu.Item("insecMode").GetValue <StringList>().SelectedIndex == 1 && Player.SummonerSpellbook.CanUseSpell(LeeSinSharp.FlashSlot) == SpellState.Ready)); //Console.WriteLine(Game.Time + useFlash.ToString()); //useFlash = true; var pos = Player.ServerPosition.To2D(); var qPos = Q.GetPrediction(targetHero); if (Config.Menu.Item("insec1").GetValue <KeyBind>().Active) { if (LeeUtility.CastQ(targetHero, QMode.Insec)) { var delay = (int)(Player.Distance(qPos.UnitPosition) / Q.Speed * 1000) + 300 + Game.Ping; Utility.DelayAction.Add(delay, () => Q.Cast()); if (useFlash) { Utility.DelayAction.Add( (int)(delay * 1.2), () => { if (Vector3.DistanceSquared(targetHero.ServerPosition, Player.ServerPosition) <= 375 * 375) { R.Cast(targetHero); //Console.WriteLine("casted R"); Utility.DelayAction.Add( 200 - Game.Ping, () => Player.SummonerSpellbook.CastSpell( LeeSinSharp.FlashSlot, LeeUtility.GetInsecVector3(targetHero, true, pos))); } }); } else { Utility.DelayAction.Add( (int)(delay * 1.1), () => { var wardJumpPos = LeeUtility.GetInsecVector3(targetHero, false, pos); if (Vector3.DistanceSquared(wardJumpPos, Player.ServerPosition) <= 600 * 600) { LeeUtility.WardJump(wardJumpPos, true, false); //Utility.DelayAction.Add(300 + Game.Ping, () => LeeUtility.WardJump(wardJumpPos, true, false)); Utility.DelayAction.Add( 250 + Game.Ping, () => { if (Vector3.DistanceSquared(wardJumpPos, Player.ServerPosition) <= 100 * 100) { R.Cast(targetHero, LeeUtility.MenuParamBool("packetCast")); } }); } }); } } else { Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos); } } else if (Config.Menu.Item("insec2").GetValue <KeyBind>().Active) { var insecPos = LeeUtility.GetInsecVector3(targetHero, useFlash, pos); var inDistance = Player.Distance(insecPos) <= (useFlash ? 400 : 600); if (useFlash) { if (inDistance && Vector3.DistanceSquared(Player.ServerPosition, targetHero.ServerPosition) <= 375 * 375) { R.Cast(targetHero); Utility.DelayAction.Add( 200 - Game.Ping, () => Player.SummonerSpellbook.CastSpell(LeeSinSharp.FlashSlot, insecPos)); Utility.DelayAction.Add( 250, () => { Q.Cast(targetHero); var delay = (int)(Player.Distance(targetHero) / Q.Speed * 1000) + 300 + Game.Ping; Utility.DelayAction.Add(delay + 500, () => Q.Cast(targetHero)); }); } else { Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos); } } else { if (inDistance) { LeeUtility.WardJump(insecPos); Utility.DelayAction.Add(250 + Game.Ping, () => R.Cast(targetHero, false)); Utility.DelayAction.Add( 250, () => { var delay = (int)(Player.Distance(targetHero) / Q.Speed * 1000) + 300 + Game.Ping; Q.Cast(targetHero); Utility.DelayAction.Add(delay + 500, () => Q.Cast(targetHero)); }); } else { Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos); } } } }