public static void lastHit() { var minion = MinionManager.GetMinions(Player.Position, SH.QRange).FirstOrDefault(); SH.animCancel(minion); if (SH._spells[SpellSlot.W].IsReady() && MenuHandler.getMenuBool("WLH") && CH.CanW && Environment.TickCount - CH.LastE >= 250 && minion.IsValidTarget(SH._spells[SpellSlot.W].Range) && SH._spells[SpellSlot.W].GetDamage(minion) > minion.Health) { SH.CastW(); } if (SH._spells[SpellSlot.Q].IsReady() && MenuHandler.getMenuBool("QLH") && Environment.TickCount - CH.LastE >= 250 && (SH._spells[SpellSlot.Q].GetDamage(minion) > minion.Health)) { if (minion.IsValidTarget(SH.QRange) && CH.CanQ) { SH.CastQ(minion); } } }
public static void JungleFarm() { var minion = MinionManager.GetMinions(Player.Position, SH.QRange, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth).FirstOrDefault(); if (!minion.IsValidTarget()) { return; } SH.Orbwalk(minion); SH.animCancel(minion); if (SH._spells[SpellSlot.E].IsReady() && CH.CanE && MenuHandler.getMenuBool("EJ")) { if (minion.IsValidTarget(SH._spells[SpellSlot.E].Range)) { SH._spells[SpellSlot.E].Cast(minion.Position); } } if (SH._spells[SpellSlot.W].IsReady() && CH.CanW && Environment.TickCount - CH.LastE >= 250 && minion.IsValidTarget(SH._spells[SpellSlot.W].Range) && MenuHandler.getMenuBool("WJ")) { SH.CastW(); SH.castItems(minion); } SH.castItems(minion); if (SH._spells[SpellSlot.Q].IsReady() && Environment.TickCount - CH.LastE >= 250 && MenuHandler.getMenuBool("QJ")) { if (minion.IsValidTarget(SH.QRange) && CH.CanQ) { SH.CastQ(minion); return; } } }
public static void burstCombo() { SH.Orbwalk(Target); if (!Target.IsValidTarget()) { return; } var BonusRange = Orbwalking.GetRealAutoAttackRange(Player) + (Target.BoundingRadius / 2) - 50; if (SH.SummonerDictionary[SH.summonerSpell.Flash].IsReady() && SH._spells[SpellSlot.E].IsReady() && SH._spells[SpellSlot.R].IsReady() && !CH.RState && !Target.IsValidTarget(SH._spells[SpellSlot.E].Range) && Target.IsValidTarget(SH._spells[SpellSlot.E].Range + 400) && MenuHandler.getMenuBool("BFl") || startJump1) { startJump1 = true; if (SH._spells[SpellSlot.E].IsReady()) { SH.CastE(Target.Position); } if (Environment.TickCount - CH.LastE >= 200) { SH.CastR(); } if (Environment.TickCount - CH.LastFR >= 250 && Environment.TickCount - CH.LastFR < 1000) { SH.castFlash(Target.Position); startJump1 = false; } return; } if (Target.IsValidTarget(SH._spells[SpellSlot.E].Range) && SH._spells[SpellSlot.E].IsReady() && SH._spells[SpellSlot.R].IsReady() && !CH.RState || startJump2) { startJump2 = true; if (SH._spells[SpellSlot.E].IsReady()) { SH.CastE(Target.Position); } if (Environment.TickCount - CH.LastE >= 250) { SH.CastR(); startJump2 = false; } return; } switch (CH.FullComboState) { case 1: { if (!Target.IsValidTarget(SH._spells[SpellSlot.W].Range)) { return; } SH.CastW(); SH.castItems(Target); } break; case 2: { CH.FullComboState = 3; } break; case 3: { SH.CastQ(Target); } break; } if (SH._spells[SpellSlot.R].IsReady() && SH._spells[SpellSlot.R].GetDamage(Target) + (SH._spells[SpellSlot.Q].IsReady() && Target.IsValidTarget(SH.QRange) ? SH._spells[SpellSlot.Q].GetDamage(Target) : 0) > Target.Health || startedR2Combo) { startedR2Combo = true; if (CH.RState) { SH.CastR2(Target); if (!SH._spells[SpellSlot.Q].IsReady() || !Target.IsValidTarget(SH.QRange)) { startedR2Combo = false; } } if (SH._spells[SpellSlot.Q].IsReady() && Environment.TickCount - CH.lastR2 >= 100) { SH.CastQ(Target); startedR2Combo = false; } return; } SH.animCancel(Target); if (SH._spells[SpellSlot.E].IsReady() && CH.CanE) { if (!Target.IsValidTarget(SH._spells[SpellSlot.E].Range - BonusRange + 50) && Target.IsValidTarget(SH._spells[SpellSlot.E].Range + BonusRange)) { SH.CastE(Target.Position); } else if (SH._spells[SpellSlot.Q].IsReady() && !Target.IsValidTarget(SH._spells[SpellSlot.E].Range + BonusRange) && Target.IsValidTarget(SH._spells[SpellSlot.E].Range + SH._spells[SpellSlot.Q].Range - 50)) { SH.CastE(Target.Position); } } if (SH._spells[SpellSlot.W].IsReady() && CH.CanW && Environment.TickCount - CH.LastE >= 250 && Target.IsValidTarget(SH._spells[SpellSlot.W].Range)) { SH.CastW(); } SH.castItems(Target); if (SH._spells[SpellSlot.Q].IsReady() && Environment.TickCount - CH.LastE >= 250) { if (Target.IsValidTarget(SH.QRange) && CH.CanQ) { SH.CastQ(Target); return; } if (!Target.IsValidTarget(BonusRange + 50) && Target.IsValidTarget(SH.QRange)) { SH.CastQ(Target); } } }
public static void mainCombo() { SH.Orbwalk(Target); if (MenuHandler.getMenuBool("CR")) { if (SH._spells[SpellSlot.E].IsReady() && SH._spells[SpellSlot.R].IsReady() && SH._spells[SpellSlot.Q].IsReady() && (ItemData.Tiamat_Melee_Only.GetItem().IsReady() || ItemData.Ravenous_Hydra_Melee_Only.GetItem().IsReady()) && Target.Distance(Player) < SH._spells[SpellSlot.E].Range + SH.QRange && (SH._spells[SpellSlot.Q].GetDamage(Target) * 3 + SH._spells[SpellSlot.W].GetDamage(Target) + Player.GetAutoAttackDamage(Target) * 3 + SH._spells[SpellSlot.R].GetDamage(Target) > Target.Health) || startedRCombo) { startedRCombo = true; SH.CastE(Target.Position); if (Environment.TickCount - CH.LastE >= 100) { if (ItemData.Tiamat_Melee_Only.GetItem().IsReady()) { ItemData.Tiamat_Melee_Only.GetItem().Cast(); CH.lastTiamat = Environment.TickCount; } if (ItemData.Ravenous_Hydra_Melee_Only.GetItem().IsReady()) { ItemData.Ravenous_Hydra_Melee_Only.GetItem().Cast(); CH.lastTiamat = Environment.TickCount; } } if (Environment.TickCount - CH.lastTiamat >= 100) { SH.CastR(); } if (Environment.TickCount - CH.LastFR >= 100) { SH.CastQ(Target); startedRCombo = false; } return; } if (SH._spells[SpellSlot.Q].GetDamage(Target) * 3 + SH._spells[SpellSlot.W].GetDamage(Target) + Player.GetAutoAttackDamage(Target) * 3 + SH._spells[SpellSlot.R].GetDamage(Target) > Target.Health) { if (SH._spells[SpellSlot.E].IsReady()) { SH.CastE(Target.Position); } if (SH._spells[SpellSlot.R].IsReady() && Environment.TickCount - CH.LastE >= 200) { SH.CastR(); } } } if (SH._spells[SpellSlot.R].IsReady() && CH.RState && MenuHandler.getMenuBool("CR2") && SH._spells[SpellSlot.R].GetDamage(Target) + (SH._spells[SpellSlot.Q].IsReady() && Target.IsValidTarget(SH.QRange) ? SH._spells[SpellSlot.Q].GetDamage(Target) : 0) > Target.Health || startedR2Combo) { startedR2Combo = true; if (CH.RState) { SH.CastR2(Target); if (!SH._spells[SpellSlot.Q].IsReady() || !Target.IsValidTarget(SH.QRange)) { startedR2Combo = false; } } if (SH._spells[SpellSlot.Q].IsReady() && Environment.TickCount - CH.lastR2 >= 100) { SH.CastQ(Target); startedR2Combo = false; } return; } if (CH.RState) { if (MenuHandler.getMenuBool("QWR2KS") && Target.IsValidTarget(SH.QRange) && SH._spells[SpellSlot.W].IsReady() && SH._spells[SpellSlot.Q].IsReady() && SH._spells[SpellSlot.Q].GetDamage(Target) + (CH.RState && SH._spells[SpellSlot.R].IsReady() ? SH._spells[SpellSlot.R].GetDamage(Target) : 0) > Target.Health) { SH.CastQ(Target); Utility.DelayAction.Add(250, () => SH.CastW()); Utility.DelayAction.Add(515, () => SH.CastR2(Target)); } else if (MenuHandler.getMenuBool("QR2KS") && Target.IsValidTarget(SH.QRange) && SH._spells[SpellSlot.Q].IsReady() && SH._spells[SpellSlot.Q].GetDamage(Target) + (CH.RState && SH._spells[SpellSlot.R].IsReady() ? SH._spells[SpellSlot.R].GetDamage(Target) : 0) > Target.Health) { SH.CastQ(Target); Utility.DelayAction.Add(515, () => SH.CastR2(Target)); } else if (MenuHandler.getMenuBool("WR2KS") && Target.IsValidTarget(SH.WRange) && CH.CanW && SH._spells[SpellSlot.W].IsReady() && SH._spells[SpellSlot.W].GetDamage(Target) + (CH.RState && SH._spells[SpellSlot.R].IsReady() ? SH._spells[SpellSlot.R].GetDamage(Target) : 0) > Target.Health) { SH.CastW(); Utility.DelayAction.Add(515, () => SH.CastR2(Target)); } } else { if (MenuHandler.getMenuBool("QWKS") && Target.IsValidTarget(SH.QRange) && SH._spells[SpellSlot.Q].IsReady() && SH._spells[SpellSlot.W].IsReady() && SH._spells[SpellSlot.Q].GetDamage(Target) + SH._spells[SpellSlot.W].GetDamage(Target) > Target.Health) { SH.CastQ(Target); Utility.DelayAction.Add(250, () => SH.CastW()); } else if (MenuHandler.getMenuBool("QKS") && Target.IsValidTarget(SH.QRange) && SH._spells[SpellSlot.Q].IsReady() && SH._spells[SpellSlot.Q].GetDamage(Target) > Target.Health) { SH.CastQ(Target); } else if (MenuHandler.getMenuBool("WKS") && Target.IsValidTarget(SH.WRange) && SH._spells[SpellSlot.W].IsReady() && SH._spells[SpellSlot.W].GetDamage(Target) > Target.Health) { SH.CastW(); } } var BonusRange = Orbwalking.GetRealAutoAttackRange(Player) + (Target.BoundingRadius / 2) - 50; SH.animCancel(Target); if (MenuHandler.getMenuBool("CE") && SH._spells[SpellSlot.E].IsReady() && CH.CanE) { if (MenuHandler.getMenuBool("UseE-GC") && !MenuHandler.getMenuBool("UseE-AA")) { if (!Target.IsValidTarget(SH._spells[SpellSlot.E].Range - BonusRange + 50) && Target.IsValidTarget(SH._spells[SpellSlot.E].Range + BonusRange)) { SH.CastE(Target.Position); } else if (SH._spells[SpellSlot.Q].IsReady() && !Target.IsValidTarget(SH._spells[SpellSlot.E].Range + BonusRange) && Target.IsValidTarget(SH._spells[SpellSlot.E].Range + SH._spells[SpellSlot.Q].Range - 50)) { SH.CastE(Target.Position); } } else if (Target.Distance(Player) > Orbwalking.GetRealAutoAttackRange(Player)) { SH.CastE(Target.Position); } } SH.castItems(Target); if (MenuHandler.getMenuBool("CW") && SH._spells[SpellSlot.W].IsReady() && CH.CanW && Environment.TickCount - CH.LastE >= 100 && Target.IsValidTarget(SH._spells[SpellSlot.W].Range)) { SH.CastW(); } if (SH._spells[SpellSlot.Q].IsReady() && Environment.TickCount - CH.LastE >= 100 && MenuHandler.getMenuBool("CQ")) { if (Target.IsValidTarget(SH.QRange) && CH.CanQ) { SH.CastQ(Target); return; } if (!Target.IsValidTarget(BonusRange + 50) && Target.IsValidTarget(SH.QRange) && CH.CanQ && MenuHandler.getMenuBool("UseQ-GC")) { SH.CastQ(Target); } } }
public static void Obj_AI_Hero_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { var spell = args.SData; if (!sender.IsMe) { return; } if (spell.Name == "ItemTiamatCleave") { LastTiamat = Environment.TickCount; } if (!MidQ && spell.Name.Contains("RivenBasicAttack")) { Queuer.remove("AA"); if (MenuHandler.Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.None && MenuHandler.Config.Item("QAA").GetValue <StringList>().SelectedIndex == 1 && MenuHandler.Config.Item("normalCombo").GetValue <KeyBind>().Active&& SH._spells[SpellSlot.Q].IsReady() && MenuHandler.getMenuBool("CQ")) { Queuer.add("Q"); } LastAa = Environment.TickCount; LastTiamatCancel = Environment.TickCount + (int)ObjectManager.Player.AttackCastDelay; LastPassive = Environment.TickCount; if (PassiveStacks >= 1) { PassiveStacks = PassiveStacks - 1; } MidAa = true; CanMove = false; CanAa = false; } if (spell.Name.Contains("RivenTriCleave")) { Queuer.remove("Q"); LastQ = Environment.TickCount; LastPassive = Environment.TickCount; LastECancelSpell = Environment.TickCount + 50; if (PassiveStacks <= 2) { PassiveStacks = PassiveStacks + 1; } if (QCount <= 1) { LastQ2 = Environment.TickCount; QCount = QCount + 1; } else if (QCount == 2) { QCount = 0; } Utility.DelayAction.Add(350, Orbwalking.ResetAutoAttackTimer); Utility.DelayAction.Add(40, () => SH.animCancel(StateHandler.Target)); MidQ = true; CanMove = false; CanQ = false; FullComboState = 0; BurstFinished = true; } if (spell.Name.Contains("RivenMartyr")) { Queuer.remove("W"); Utility.DelayAction.Add(40, () => SH.animCancel(StateHandler.Target)); LastW = Environment.TickCount; LastPassive = Environment.TickCount; LastECancelSpell = Environment.TickCount + 50; LastTiamatCancel = Environment.TickCount + (int)ObjectManager.Player.AttackCastDelay; if (LastPassive <= 2) { PassiveStacks = PassiveStacks + 1; } MidW = true; CanW = false; FullComboState = 2; } if (spell.Name.Contains("RivenFeint")) { Queuer.remove("E"); Queuer.EPos = new Vector3(); LastE = Environment.TickCount; PassiveStacks = Environment.TickCount; LastTiamatCancel = Environment.TickCount + 50; if (LastPassive <= 2) { PassiveStacks = PassiveStacks + 1; } MidE = true; CanE = false; } if (spell.Name.Contains("RivenFengShuiEngine")) { Queuer.remove("R"); if (MenuHandler.Config.Item("autoCancelR1").GetValue <bool>()) { Queuer.add("E", Game.CursorPos); } LastFr = Environment.TickCount; LastPassive = Environment.TickCount; LastECancelSpell = Environment.TickCount + 50; if (PassiveStacks <= 2) { PassiveStacks = PassiveStacks + 1; } RState = true; FullComboState = 1; } if (spell.Name.Contains("rivenizunablade")) { Queuer.remove("R2"); if (MenuHandler.Config.Item("autoCancelR1").GetValue <bool>()) { Queuer.add("Q"); } Queuer.R2Target = null; LastPassive = Environment.TickCount; if (PassiveStacks <= 2) { PassiveStacks = PassiveStacks + 1; } LastR2 = Environment.TickCount; RState = false; CanSr = false; FullComboState = 3; } }
public static void burstCombo() { SH.Orbwalk(Target); if (!Target.IsValidTarget()) { return; } var BonusRange = Orbwalking.GetRealAutoAttackRange(Player) + (Target.BoundingRadius / 2) - 50; burstFinished = !(SH._spells[SpellSlot.Q].IsReady() && SH._spells[SpellSlot.W].IsReady() && SH._spells[SpellSlot.E].IsReady() && SH._spells[SpellSlot.R].IsReady()); if (!burstFinished || CH.FullComboState != 0) { if (SH.SummonerDictionary[SH.summonerSpell.Flash].IsReady() && SH._spells[SpellSlot.E].IsReady() && SH._spells[SpellSlot.R].IsReady() && !CH.RState && !Target.IsValidTarget(SH._spells[SpellSlot.E].Range + BonusRange) && Target.IsValidTarget(SH._spells[SpellSlot.E].Range + 400 + BonusRange) && MenuHandler.getMenuBool("BFL")) { SH.CastE(Target.Position); Utility.DelayAction.Add(200, SH.CastR); Utility.DelayAction.Add(250, () => SH.castFlash(Target.Position)); } if (Target.IsValidTarget(SH._spells[SpellSlot.E].Range + BonusRange) && SH._spells[SpellSlot.E].IsReady() && SH._spells[SpellSlot.R].IsReady() && !CH.RState) { SH.CastE(Target.Position); Utility.DelayAction.Add(250, SH.CastR); } switch (CH.FullComboState) { case 1: { if (!Target.IsValidTarget(SH._spells[SpellSlot.W].Range)) { return; } SH.CastW(); SH.castItems(Target); } break; case 2: { CH.FullComboState = 3; } break; case 3: { SH.CastQ(Target); } break; } return; } if (SH._spells[SpellSlot.R].GetDamage(Target) > Target.Health && CH.RState && SH._spells[SpellSlot.R].IsReady()) { SH.CastR2(Target); } SH.animCancel(Target); if (SH._spells[SpellSlot.E].IsReady() && CH.CanE) { if (!Target.IsValidTarget(SH._spells[SpellSlot.E].Range - BonusRange + 50) && Target.IsValidTarget(SH._spells[SpellSlot.E].Range + BonusRange)) { SH.CastE(Target.Position); } else if (SH._spells[SpellSlot.Q].IsReady() && !Target.IsValidTarget(SH._spells[SpellSlot.E].Range + BonusRange) && Target.IsValidTarget(SH._spells[SpellSlot.E].Range + SH._spells[SpellSlot.Q].Range - 50)) { SH.CastE(Target.Position); } } if (SH._spells[SpellSlot.W].IsReady() && CH.CanW && Environment.TickCount - CH.LastE >= 250 && Target.IsValidTarget(SH._spells[SpellSlot.W].Range)) { SH.CastW(); } SH.castItems(Target); if (SH._spells[SpellSlot.Q].IsReady() && Environment.TickCount - CH.LastE >= 250) { if (Target.IsValidTarget(SH.QRange) && CH.CanQ) { SH.CastQ(Target); return; } if (!Target.IsValidTarget(BonusRange + 50) && Target.IsValidTarget(SH.QRange)) { SH.CastQ(Target); } } }
public static void mainCombo() { SH.Orbwalk(Target); var useR = true; if (SH._spells[SpellSlot.R].IsReady() && CH.RState && MenuHandler.getMenuBool("CR2")) { if (SH._spells[SpellSlot.R].GetDamage(Target) > Target.Health) { SH.CastR2(Target); } } if (useR && CH.RState) { if (MenuHandler.getMenuBool("QWR2KS") && Target.IsValidTarget(SH.QRange) && SH._spells[SpellSlot.W].IsReady() && SH._spells[SpellSlot.Q].IsReady() && SH._spells[SpellSlot.Q].GetDamage(Target) + (CH.RState && SH._spells[SpellSlot.R].IsReady() ? SH._spells[SpellSlot.R].GetDamage(Target) : 0) > Target.Health) { SH.CastQ(Target); Utility.DelayAction.Add(250, () => SH.CastW()); Utility.DelayAction.Add(515, () => SH.CastR2(Target)); } else if (MenuHandler.getMenuBool("QR2KS") && Target.IsValidTarget(SH.QRange) && SH._spells[SpellSlot.Q].IsReady() && SH._spells[SpellSlot.Q].GetDamage(Target) + (CH.RState && SH._spells[SpellSlot.R].IsReady() ? SH._spells[SpellSlot.R].GetDamage(Target) : 0) > Target.Health) { SH.CastQ(Target); Utility.DelayAction.Add(515, () => SH.CastR2(Target)); } else if (MenuHandler.getMenuBool("WR2KS") && Target.IsValidTarget(SH.WRange) && CH.CanW && SH._spells[SpellSlot.W].IsReady() && SH._spells[SpellSlot.W].GetDamage(Target) + (CH.RState && SH._spells[SpellSlot.R].IsReady() ? SH._spells[SpellSlot.R].GetDamage(Target) : 0) > Target.Health) { SH.CastW(); Utility.DelayAction.Add(515, () => SH.CastR2(Target)); } } else { if (MenuHandler.getMenuBool("QWKS") && Target.IsValidTarget(SH.QRange) && SH._spells[SpellSlot.Q].IsReady() && SH._spells[SpellSlot.W].IsReady() && SH._spells[SpellSlot.Q].GetDamage(Target) + SH._spells[SpellSlot.W].GetDamage(Target) > Target.Health) { SH.CastQ(Target); Utility.DelayAction.Add(250, () => SH.CastW()); } else if (MenuHandler.getMenuBool("QKS") && Target.IsValidTarget(SH.QRange) && SH._spells[SpellSlot.Q].IsReady() && SH._spells[SpellSlot.Q].GetDamage(Target) > Target.Health) { SH.CastQ(Target); } else if (MenuHandler.getMenuBool("WKS") && Target.IsValidTarget(SH.WRange) && SH._spells[SpellSlot.W].IsReady() && SH._spells[SpellSlot.W].GetDamage(Target) > Target.Health) { SH.CastW(); } } var BonusRange = Orbwalking.GetRealAutoAttackRange(Player) + (Target.BoundingRadius / 2) - 50; SH.animCancel(Target); if (MenuHandler.getMenuBool("CE") && SH._spells[SpellSlot.E].IsReady() && CH.CanE) { if (MenuHandler.getMenuBool("UseE-GC") && !MenuHandler.getMenuBool("UseE-AA")) { if (!Target.IsValidTarget(SH._spells[SpellSlot.E].Range - BonusRange + 50) && Target.IsValidTarget(SH._spells[SpellSlot.E].Range + BonusRange)) { SH.CastE(Target.Position); } else if (SH._spells[SpellSlot.Q].IsReady() && !Target.IsValidTarget(SH._spells[SpellSlot.E].Range + BonusRange) && Target.IsValidTarget(SH._spells[SpellSlot.E].Range + SH._spells[SpellSlot.Q].Range - 50)) { SH.CastE(Target.Position); } } else if (Target.Distance(Player) > Orbwalking.GetRealAutoAttackRange(Player)) { SH.CastE(Target.Position); } } SH.castItems(Target); if (MenuHandler.getMenuBool("CW") && SH._spells[SpellSlot.W].IsReady() && CH.CanW && Environment.TickCount - CH.LastE >= 250 && Target.IsValidTarget(SH._spells[SpellSlot.W].Range)) { SH.CastW(); } if (SH._spells[SpellSlot.Q].IsReady() && Environment.TickCount - CH.LastE >= 250 && MenuHandler.getMenuBool("CQ")) { if (Target.IsValidTarget(SH.QRange) && CH.CanQ) { SH.CastQ(Target); return; } if (!Target.IsValidTarget(BonusRange + 50) && Target.IsValidTarget(SH.QRange) && CH.CanQ && MenuHandler.getMenuBool("UseQ-GC")) { SH.CastQ(Target); } } }