public static Obj_AI_Hero GetTarget(float range, TargetSelector.DamageType damageType, bool ignoreShield = true, IEnumerable<Obj_AI_Hero> ignoredChamps = null, Vector3? rangeCheckFrom = null) { if (_lastTarget == null || !_lastTarget.IsValidTarget() || _lastDamageType != damageType) { var newTarget = TargetSelector.GetTarget(range, damageType, ignoreShield, ignoredChamps, rangeCheckFrom); _lastTarget = newTarget; _lastDamageType = damageType; return newTarget; } if (_lastTarget.IsValidTarget(range) && damageType == _lastDamageType) { return _lastTarget; } var newTarget2 = TargetSelector.GetTarget(range, damageType, ignoreShield, ignoredChamps, rangeCheckFrom); _lastTarget = newTarget2; _lastDamageType = damageType; return newTarget2; }
public Obj_AI_Hero Cast_BasicSkillshot_Enemy(Spell spell, TargetSelector.PriorityMode prio = TargetSelector.PriorityMode.AutoPriority, float extrarange = 0) { if(!spell.IsReady()) return null; var target = TargetSelector.GetTarget(spell.Range, prio); if(target == null) return null; if (!target.IsValidTarget(spell.Range + extrarange) || spell.GetPrediction(target).Hitchance < HitChance.High) return null; spell.Cast(target, UsePackets()); return target; }
private DamageType ConvertDamageType(TargetSelector.DamageType type) { switch (type) { case TargetSelector.DamageType.Physical: return DamageType.Physical; case TargetSelector.DamageType.Magical: return DamageType.Magical; case TargetSelector.DamageType.True: return DamageType.True; } return DamageType.True; }
public static IEnumerable<Targets> GenerateTargets(Card owningCard, TargetSelector selector, IEnumerable<TargetingRule> rules, bool force = false, object triggerMessage = null) { var activation = new ActivationContext(owningCard.Controller, owningCard, selector); activation.CanCancel = !force; activation.TriggerMessage = triggerMessage; foreach (var rule in rules) { rule.Process(activation); } foreach (var targetsCombination in activation.TargetsCombinations()) { yield return targetsCombination.Targets; } yield break; }
public static bool IsGoodTargetForSpell( ITarget target, Card spell, Player controller, TargetSelector selector, IEnumerable<TargetingRule> rules) { var activation = new ActivationContext(controller, spell, selector); foreach (var rule in rules) { rule.Process(activation); } foreach (var targetsCombination in activation.TargetsCombinations()) { if (targetsCombination.Targets.Effect.Contains(target)) return true; } return false; }
public SpellData(LeagueSharp.SpellSlot slot, TargetSelector.DamageType damageType, int type, string spellName, float delay, float radius, float range, int missileSpeed, Func<float> rangeFunc = null, Func<Obj_AI_Base, double> damage = null) { SpellName = spellName; Delay = delay; Radius = radius; Range = range; MissileSpeed = missileSpeed; Instance = new Spell(slot, range, damageType); switch (type) { case 1: Instance.SetSkillshot(delay, radius, missileSpeed, false, SkillshotType.SkillshotLine); break; case 2: Instance.SetTargetted(delay, missileSpeed); break; case 3: Instance.SetSkillshot(delay, radius, missileSpeed, false, SkillshotType.SkillshotCircle); break; case 4: Instance.SetSkillshot(delay, radius, missileSpeed, false, SkillshotType.SkillshotCone); break; } RangeFunc = rangeFunc; Damage = damage; }
public override void Game_OnGameUpdate(EventArgs args) { if (Q.IsReady() && GetValue <KeyBind>("UseQTH").Active) { if (ObjectManager.Player.HasBuff("Recall")) { return; } var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical); if (t != null) { Q.Cast(t, false, true); } } if (GetValue <KeyBind>("CastR").Active&& R.IsReady()) { var t = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Physical); if (t.IsValidTarget()) { if (ObjectManager.Player.GetSpellDamage(t, SpellSlot.R) > t.Health && !t.IsZombie) { R.CastIfHitchanceEquals(t, HitChance.High, false); } } } if ((!ComboActive && !HarassActive) || !Orbwalking.CanMove(100)) { return; } var useQ = GetValue <bool>("UseQ" + (ComboActive ? "C" : "H")); var useW = GetValue <bool>("UseW" + (ComboActive ? "C" : "H")); var useR = GetValue <bool>("UseR" + (ComboActive ? "C" : "H")); if (Q.IsReady() && useQ) { var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical); if (t != null) { Q.Cast(t, false, true); } } if (W.IsReady() && useW) { var t = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical); if (t.IsValidTarget(W.Range) && (t.HasBuffOfType(BuffType.Stun) || t.HasBuffOfType(BuffType.Snare) || t.HasBuffOfType(BuffType.Taunt) || t.HasBuff("zhonyasringshield") || t.HasBuff("Recall"))) { W.Cast(t, false, true); } } if (R.IsReady() && useR) { foreach ( var hero in ObjectManager.Get <Obj_AI_Hero>() .Where( hero => hero.IsValidTarget(R.Range) && ObjectManager.Player.GetSpellDamage(hero, SpellSlot.R, 1) - 20 > hero.Health)) { R.Cast(hero, false, true); } } }
private static void Game_OnGameLoad(EventArgs args) { if (ObjectManager.Player.ChampionName != ChampionName) { return; } Q = new Spell(SpellSlot.Q, 520f); Q.SetTargetted(0.15f, float.MaxValue); SpellList.Add(Q); W = new Spell(SpellSlot.W); E = new Spell(SpellSlot.E, 500f); E.SetSkillshot(0.25f, 150f, float.MaxValue, false, SkillshotType.SkillshotLine); SpellList.Add(E); R = new Spell(SpellSlot.R); //Create the menu Config = new Menu("xQx | Shen", "Shen", true); //Config.AddItem(new MenuItem("Mode", "Play Style (WIP):").SetValue(new StringList(new[] {"Auto", "Fighter", "Protector"}, 1))); //Config.AddItem(new MenuItem("PC", "Choose Your PC for FPS Drop (WIP):").SetValue(new StringList(new[] { "Wooden PC", "Normal PC", "Monster!" }, 1))); var targetSelectorMenu = new Menu("Target Selector", "Target Selector"); TargetSelector.AddToMenu(targetSelectorMenu); Config.AddSubMenu(targetSelectorMenu); Config.AddSubMenu(new Menu("Orbwalking", "Orbwalking")); Orbwalker = new Orbwalking.Orbwalker(Config.SubMenu("Orbwalking")); Orbwalker.SetAttack(true); new Utils(); Enemies = new Enemies(); ChampionAllies = new Allies(); UltiStatus = new UltiStatus(); // Combo Config.AddSubMenu(new Menu("Combo", "Combo")); { Config.SubMenu("Combo").AddItem(new MenuItem("ComboUseQ", "Use Q").SetValue(true)); Config.SubMenu("Combo").AddItem(new MenuItem("ComboUseW", "Use W").SetValue(true)); Config.SubMenu("Combo").AddItem(new MenuItem("ComboUseE", "Use E").SetValue(true)); Config.SubMenu("Combo") .AddItem( new MenuItem("ComboUseEF", "Use Flash + E").SetValue(new KeyBind("T".ToCharArray()[0], KeyBindType.Press))); Config.SubMenu("Combo") .AddItem( new MenuItem("ComboUseRK", "Use R | Confirm with this Key:").SetValue( new KeyBind("U".ToCharArray()[0], KeyBindType.Press))); } /* [ Harass ] */ Config.AddSubMenu(new Menu("Harass", "Harass")); { Config.SubMenu("Harass").AddItem(new MenuItem("HarassUseQ", "Use Q").SetValue(true)); Config.SubMenu("Harass") .AddItem( new MenuItem("HarassUseQT", "Use Q (Toggle)").SetValue(new KeyBind("T".ToCharArray()[0], KeyBindType.Toggle))); Config.SubMenu("Harass") .AddItem(new MenuItem("HarassEnergy", "Min. Energy Percent: ").SetValue(new Slider(50, 100, 0))); Config.SubMenu("Harass") .AddItem( new MenuItem("HarassActive", "Harass!").SetValue(new KeyBind("C".ToCharArray()[0], KeyBindType.Press))); } /* [ Lane Clear ] */ Config.AddSubMenu(new Menu("LaneClear", "LaneClear")); Config.SubMenu("LaneClear").AddItem(new MenuItem("LaneClearUseQ", "Use Q").SetValue(false)); Config.SubMenu("LaneClear") .AddItem(new MenuItem("LaneClearEnergy", "Min. Energy Percent: ").SetValue(new Slider(50, 100, 0))); Config.SubMenu("LaneClear") .AddItem( new MenuItem("LaneClearActive", "LaneClear").SetValue(new KeyBind("V".ToCharArray()[0], KeyBindType.Press))); /* [ Jungling Farm ] */ Config.AddSubMenu(new Menu("JungleFarm", "JungleFarm")); { Config.SubMenu("JungleFarm").AddItem(new MenuItem("JungleFarmUseQ", "Use Q").SetValue(true)); Config.SubMenu("JungleFarm").AddItem(new MenuItem("JungleFarmUseW", "Use W").SetValue(false)); Config.SubMenu("JungleFarm").AddItem(new MenuItem("JungleFarmEnergy", "Min. Energy Percent: ").SetValue(new Slider(50, 100, 0))); Config.SubMenu("JungleFarm").AddItem(new MenuItem("JungleFarmActive", "JungleFarm").SetValue(new KeyBind("V".ToCharArray()[0], KeyBindType.Press))); } Config.AddSubMenu(new Menu("Misc", "Misc")); Config.SubMenu("Misc").AddItem(new MenuItem("SmartShield", "Smart W")).SetValue(true); Config.SubMenu("Misc").AddItem(new MenuItem("InterruptSpellsE", "Interrupter E")).SetValue(true); Config.SubMenu("Misc").AddItem(new MenuItem("GapCloserE", "GapCloser E")).SetValue(true); // Extras //Config.AddSubMenu(new Menu("Extras", "Extras")); //Config.SubMenu("Extras").AddItem(new MenuItem("InterruptSpells", "Interrupt Spells").SetValue(true)); // Extras -> Use Items MenuExtras = new Menu("Extras", "Extras"); Config.AddSubMenu(MenuExtras); /* [ Drawing ] */ Config.AddSubMenu(new Menu("Drawings", "Drawings")); { Config.SubMenu("Drawings") .AddItem(new MenuItem("DrawQ", "Q Range").SetValue(new Circle(true, Color.Gray))); Config.SubMenu("Drawings") .AddItem(new MenuItem("DrawE", "E Range").SetValue(new Circle(false, Color.Gray))); Config.SubMenu("Drawings") .AddItem( new MenuItem("DrawEF", "Flash + E Range").SetValue(new Circle(false, Color.Gray))); } Config.AddItem(new MenuItem("FleeActive", "Flee").SetValue(new KeyBind("A".ToCharArray()[0], KeyBindType.Press))); Utility.HpBarDamageIndicator.DamageToUnit = GetComboDamage; Utility.HpBarDamageIndicator.Enabled = true; PlayerSpells.Initialize(); Config.AddToMainMenu(); Game.OnUpdate += Game_OnUpdate; Obj_AI_Base.OnProcessSpellCast += Obj_AI_Hero_OnProcessSpellCast; Drawing.OnDraw += Drawing_OnDraw; Interrupter2.OnInterruptableTarget += Interrupter2_OnInterruptableTarget; AntiGapcloser.OnEnemyGapcloser += AntiGapcloser_OnEnemyGapcloser; Game.PrintChat( string.Format( "<font color='#70DBDB'>xQx | </font> <font color='#FFFFFF'>{0}</font> <font color='#70DBDB'> Loaded!</font>", ChampionName)); //Speech(); }
private void OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (!sender.IsMe) { return; } var target = TargetSelector.GetTarget(Variables.Spell[Variables.Spells.Q].Range + Variables.Spell[Variables.Spells.W].Range, DamageType.Physical); if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo)) { if (target == null || Environment.TickCount - Variables.LastECast < 250) { return; } if (target.IsValid && target.IsHPBarRendered) { if (getCheckBoxItem(MenuGenerator.comboOptions, "com.ilucian.combo.startE") && Variables.Spell[Variables.Spells.E].IsReady()) { if (!sender.IsDead && !Variables.HasPassive()) { CastE(target); } if (!Variables.Spell[Variables.Spells.E].IsReady() && target.LSIsValidTarget(Variables.Spell[Variables.Spells.Q].Range) && getCheckBoxItem(MenuGenerator.comboOptions, "com.ilucian.combo.q") && !Variables.HasPassive()) { if (Variables.Spell[Variables.Spells.Q].IsReady() && Variables.Spell[Variables.Spells.Q].IsInRange(target) && !ObjectManager.Player.LSIsDashing()) { Variables.Spell[Variables.Spells.Q].Cast(target); } } if (!Variables.Spell[Variables.Spells.E].IsReady() && !ObjectManager.Player.LSIsDashing() && getCheckBoxItem(MenuGenerator.comboOptions, "com.ilucian.combo.w")) { if (Variables.Spell[Variables.Spells.W].IsReady() && !Variables.HasPassive()) { if (getCheckBoxItem(MenuGenerator.miscOptions, "com.ilucian.misc.usePrediction")) { var prediction = Variables.Spell[Variables.Spells.W].GetPrediction(target); if (prediction.Hitchance >= HitChance.High) { Variables.Spell[Variables.Spells.W].Cast(prediction.CastPosition); } } else { if (target.LSDistance(ObjectManager.Player) < 600) { Variables.Spell[Variables.Spells.W].Cast(target.Position); } } } } } else { if (target.LSIsValidTarget(Variables.Spell[Variables.Spells.Q].Range) && getCheckBoxItem(MenuGenerator.comboOptions, "com.ilucian.combo.q") && !Variables.HasPassive()) { if (Variables.Spell[Variables.Spells.Q].IsReady() && Variables.Spell[Variables.Spells.Q].IsInRange(target) && !ObjectManager.Player.LSIsDashing()) { Variables.Spell[Variables.Spells.Q].Cast(target); } } if (!ObjectManager.Player.LSIsDashing() && getCheckBoxItem(MenuGenerator.comboOptions, "com.ilucian.combo.w")) { if (Variables.Spell[Variables.Spells.W].IsReady() && !Variables.HasPassive()) { if (getCheckBoxItem(MenuGenerator.miscOptions, "com.ilucian.misc.usePrediction")) { var prediction = Variables.Spell[Variables.Spells.W].GetPrediction(target); if (prediction.Hitchance >= HitChance.High) { Variables.Spell[Variables.Spells.W].Cast(prediction.CastPosition); } } else { if (target.LSDistance(ObjectManager.Player) < 600) { Variables.Spell[Variables.Spells.W].Cast(target.Position); } } } } } if (!sender.IsDead && !Variables.HasPassive() && !Variables.Spell[Variables.Spells.Q].IsReady()) { CastE(target); } } } if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Harass)) { if (target == null || Environment.TickCount - Variables.LastECast < 250) { return; } if (target.IsValid && target.IsHPBarRendered) { if (target.LSIsValidTarget(Variables.Spell[Variables.Spells.Q].Range) && getCheckBoxItem(MenuGenerator.harassOptions, "com.ilucian.harass.q")) { if (Variables.Spell[Variables.Spells.Q].IsReady() && Variables.Spell[Variables.Spells.Q].IsInRange(target)) { Variables.Spell[Variables.Spells.Q].Cast(target); } } if (!ObjectManager.Player.LSIsDashing() && getCheckBoxItem(MenuGenerator.harassOptions, "com.ilucian.harass.w")) { if (Variables.Spell[Variables.Spells.W].IsReady()) { if (getCheckBoxItem(MenuGenerator.harassOptions, "com.ilucian.misc.usePrediction")) { var prediction = Variables.Spell[Variables.Spells.W].GetPrediction(target); if (prediction.Hitchance >= HitChance.High) { Variables.Spell[Variables.Spells.W].Cast(prediction.CastPosition); } } else { if (target.LSDistance(ObjectManager.Player) < 600) { Variables.Spell[Variables.Spells.W].Cast(target.Position); } } } } } } if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear)) { if (Orbwalking.IsAutoAttack(args.SData.Name) && args.Target is Obj_AI_Minion && args.Target.IsValid && ((Obj_AI_Minion)args.Target).Team == GameObjectTeam.Neutral) { if (ObjectManager.Player.ManaPercent < getSliderItem(MenuGenerator.jungleclearOptions, "com.ilucian.jungleclear.mana") || Variables.HasPassive()) { return; } if (Variables.Spell[Variables.Spells.Q].IsReady() && getCheckBoxItem(MenuGenerator.jungleclearOptions, "com.ilucian.jungleclear.q")) { Variables.Spell[Variables.Spells.Q].Cast((Obj_AI_Minion)args.Target); } if (Variables.Spell[Variables.Spells.W].IsReady() && getCheckBoxItem(MenuGenerator.jungleclearOptions, "com.ilucian.jungleclear.w")) { Variables.Spell[Variables.Spells.W].Cast(((Obj_AI_Minion)args.Target).Position); } if (Variables.Spell[Variables.Spells.E].IsReady() && getCheckBoxItem(MenuGenerator.jungleclearOptions, "com.ilucian.jungleclear.e")) { Variables.Spell[Variables.Spells.E].Cast( ObjectManager.Player.Position.LSExtend(Game.CursorPos, 475)); } } } }
static void DoCombo(bool useQ, bool useQG, bool useW, bool useE, bool useR) { AIHeroClient target = TargetSelector.GetTarget(e.Range, TargetSelector.DamageType.Magical); var Ghost = target != null?ObjectManager.Get <Obj_AI_Minion>().FirstOrDefault(x => x.Name == target.Name) : null; if (target != null && target.IsValidTarget()) { if (player.Distance(target.Position) < w.Range)//W>>EQ(R)>>W { if (w.IsReady() && useW) { w.Cast(target, false); } if (e.IsReady() && useE) { PredictionOutput prediction; prediction = e.GetPrediction(target, true); if (prediction.Hitchance >= HitChance.High) { e.Cast(target, true); } } if (q.IsReady() && useQ) { q.Cast(target, false); } if (r.IsReady() && useR && player.CountEnemiesInRange(r.Range) >= menu.Item("r.enemy").GetValue <Slider>().Value) { r.Cast(target, true); } if (w.IsReady() && useW && target != null) { w.Cast(target, false); } } else if (e.IsReady() == false && player.Distance(target.Position) < e.Range)//E>>Q { if (e.IsReady() && useE) { PredictionOutput prediction; prediction = e.GetPrediction(target, true); if (prediction.Hitchance >= HitChance.High) { e.Cast(target, true); } } if (q.IsReady() && useQ) { q.Cast(target, true); } } } else if (target == null && Ghost != null && Ghost.IsValidTarget()) { if (player.Distance(Ghost.Position) < q.Range)//Ghost attack { if (q.IsReady() && useQG) { q.Cast(Ghost, true); } } } }
private static void CreateChampionMenu() { Config = new Menu("xQx | XinZhao", ChampionName, true); Config.AddSubMenu(new Menu("Orbwalker", "Orbwalker")); Orbwalker = new Orbwalking.Orbwalker(Config.SubMenu("Orbwalker")); var TargetSelectorMenu = new Menu("Target Selector", "Target Selector"); TargetSelector.AddToMenu(TargetSelectorMenu); Config.AddSubMenu(TargetSelectorMenu); new AssassinManager(); /* [ Combo ] */ Config.AddSubMenu(new Menu("Combo", "Combo")); Config.SubMenu("Combo").AddItem(new MenuItem("ComboUseQ", "Use Q").SetValue(true)); Config.SubMenu("Combo").AddItem(new MenuItem("ComboUseW", "Use W").SetValue(true)); Config.SubMenu("Combo").AddItem(new MenuItem("ComboUseE", "Use E").SetValue(true)); Config.SubMenu("Combo") .AddItem(new MenuItem("EMinRange", "Min. E Range").SetValue(new Slider(300, 200, 500))); Config.SubMenu("Combo") .AddItem( new MenuItem("ComboActive", "Combo!").SetValue( new KeyBind(Config.Item("Orbwalk").GetValue <KeyBind>().Key, KeyBindType.Press))); /* [ Lane Clear ] */ Config.AddSubMenu(new Menu("LaneClear", "LaneClear")); Config.SubMenu("LaneClear").AddItem(new MenuItem("LaneClearUseQ", "Use Q").SetValue(false)); Config.SubMenu("LaneClear").AddItem(new MenuItem("LaneClearUseW", "Use W").SetValue(false)); Config.SubMenu("LaneClear").AddItem(new MenuItem("LaneClearUseE", "Use E").SetValue(false)); Config.SubMenu("LaneClear") .AddItem(new MenuItem("LaneClearMana", "Min. Mana Percent: ").SetValue(new Slider(50, 100, 0))); Config.SubMenu("LaneClear") .AddItem( new MenuItem("LaneClearActive", "LaneClear!").SetValue( new KeyBind("V".ToCharArray()[0], KeyBindType.Press))); /* [ Jungling Farm ] */ Config.AddSubMenu(new Menu("JungleFarm", "JungleFarm")); Config.SubMenu("JungleFarm").AddItem(new MenuItem("JungleFarmUseQ", "Use Q").SetValue(true)); Config.SubMenu("JungleFarm").AddItem(new MenuItem("JungleFarmUseW", "Use W").SetValue(false)); Config.SubMenu("JungleFarm").AddItem(new MenuItem("JungleFarmUseE", "Use E").SetValue(false)); Config.SubMenu("JungleFarm") .AddItem(new MenuItem("JungleFarmMana", "Min. Mana Percent: ").SetValue(new Slider(50, 100, 0))); Config.SubMenu("JungleFarm") .AddItem( new MenuItem("JungleFarmActive", "JungleFarm!").SetValue( new KeyBind("V".ToCharArray()[0], KeyBindType.Press))); /* [ Drawing ] */ Config.AddSubMenu(new Menu("Drawings", "Drawings")); Config.SubMenu("Drawings") .AddItem(new MenuItem("DrawERange", "E range").SetValue(new Circle(false, Color.PowderBlue))); Config.SubMenu("Drawings") .AddItem(new MenuItem("DrawEMinRange", "E min. range").SetValue(new Circle(false, Color.Aqua))); Config.SubMenu("Drawings") .AddItem(new MenuItem("DrawRRange", "R range").SetValue(new Circle(false, Color.PowderBlue))); Config.SubMenu("Drawings") .AddItem( new MenuItem("DrawThrown", "Can be thrown enemy").SetValue(new Circle(false, Color.PowderBlue))); /* [ Extras -> Use Items ] */ MenuExtras = new Menu("Extras", "Extras"); Config.AddSubMenu(MenuExtras); MenuExtras.AddItem(new MenuItem("InterruptSpells", "Interrupt Spells").SetValue(true)); /* [ Extras -> Use Items ] */ var menuUseItems = new Menu("Use Items", "menuUseItems"); MenuExtras.AddSubMenu(menuUseItems); /* [ Extras -> Use Items -> Targeted Items ] */ MenuTargetedItems = new Menu("Targeted Items", "menuTargetItems"); menuUseItems.AddSubMenu(MenuTargetedItems); MenuTargetedItems.AddItem(new MenuItem("item3153", "Blade of the Ruined King").SetValue(true)); MenuTargetedItems.AddItem(new MenuItem("item3143", "Randuin's Omen").SetValue(true)); MenuTargetedItems.AddItem(new MenuItem("item3144", "Bilgewater Cutlass").SetValue(true)); MenuTargetedItems.AddItem(new MenuItem("item3146", "Hextech Gunblade").SetValue(true)); MenuTargetedItems.AddItem(new MenuItem("item3184", "Entropy ").SetValue(true)); /* [ Extras -> Use Items -> AOE Items ] */ MenuNonTargetedItems = new Menu("AOE Items", "menuNonTargetedItems"); menuUseItems.AddSubMenu(MenuNonTargetedItems); MenuNonTargetedItems.AddItem(new MenuItem("item3180", "Odyn's Veil").SetValue(true)); MenuNonTargetedItems.AddItem(new MenuItem("item3131", "Sword of the Divine").SetValue(true)); MenuNonTargetedItems.AddItem(new MenuItem("item3074", "Ravenous Hydra").SetValue(true)); MenuNonTargetedItems.AddItem(new MenuItem("item3142", "Youmuu's Ghostblade").SetValue(true)); new PotionManager(); Config.AddToMainMenu(); }
private void LogicQ() { var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical); var t1 = TargetSelector.GetTarget(Q1.Range, TargetSelector.DamageType.Magical); if (t.IsValidTarget()) { missileManager.Target = t; if (Program.Combo && Player.Mana > RMANA + QMANA) { Program.CastSpell(Q, t); } else if (Program.Harass && Config.Item("Harass" + t.ChampionName).GetValue <bool>() && Player.Mana > RMANA + WMANA + QMANA + QMANA && OktwCommon.CanHarras()) { Program.CastSpell(Q, t); } else if (OktwCommon.GetKsDamage(t, Q) * 2 > t.Health) { Program.CastSpell(Q, t); } if (Player.Mana > RMANA + QMANA + WMANA) { foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTarget(Q.Range) && !OktwCommon.CanMove(enemy))) { Q.Cast(enemy, true, true); } } } else if (t1.IsValidTarget()) { missileManager.Target = t1; if (Program.Combo && Player.Mana > RMANA + QMANA) { Program.CastSpell(Q1, t1); } else if (Program.Harass && Config.Item("Harass" + t1.ChampionName).GetValue <bool>() && Player.Mana > RMANA + WMANA + QMANA + QMANA && OktwCommon.CanHarras()) { Program.CastSpell(Q1, t1); } else if (OktwCommon.GetKsDamage(t1, Q1) * 2 > t1.Health) { Program.CastSpell(Q1, t1); } if (Player.Mana > RMANA + QMANA + WMANA) { foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTarget(Q1.Range) && !OktwCommon.CanMove(enemy))) { Q1.Cast(enemy, true, true); } } } else if (FarmSpells && Config.Item("farmQ", true).GetValue <bool>()) { var allMinionsQ = Cache.GetMinions(Player.ServerPosition, Q1.Range); var Qfarm = Q.GetLineFarmLocation(allMinionsQ, 100); if (Qfarm.MinionsHit >= FarmMinions) { Q.Cast(Qfarm.Position); } } }
public static void performCombo() { //Gets best target in Q range Obj_AI_Hero target = TargetSelector.GetTarget(Program.q.Range, TargetSelector.DamageType.Magical); //Ignite handler if (Program.menuController.getMenu().Item("useIgnite").GetValue<bool>()) { if (SpellDamage.getComboDamage(target) > target.Health && target.Distance(Program.player.Position) < 500) { Program.player.Spellbook.CastSpell(Program.ignite); } } //Ulti handler in combo if (Program.menuController.getMenu().Item("comboUseR").GetValue<bool>()) { List<Obj_AI_Hero> targets; /* if (Program.menuController.getMenu().Item("faceOnlyR").GetValue<bool>()) { //Gets all facing enemies who can get hit by R targets = HeroManager.Enemies.Where(o => Program.r.WillHit(o, target.Position) && o.IsFacing(Program.player)).ToList<Obj_AI_Hero>(); } else {*/ //Gets all enemies who can get hit by R targets = HeroManager.Enemies.Where(o => Program.r.WillHit(o, target.Position) && o.Distance(Program.player.Position) < 500).ToList<Obj_AI_Hero>(); // } if (targets.Count >= Program.menuController.getMenu().Item("minEnemies").GetValue<Slider>().Value) { Program.r.Cast(target.Position); } } //Casts Q if selected in menu if (Program.menuController.getMenu().Item("comboUseQ").GetValue<bool>()) { if (target != null) { Program.q.CastIfHitchanceEquals(target, HitChance.High); } } //Casts E if selected in menu and in E range and target is poisoned if (Program.menuController.getMenu().Item("comboUseE").GetValue<bool>()) { if (target != null && target.Distance(Program.player.Position) < Program.e.Range && (Environment.TickCount - lastECast) > Program.menuController.getMenu().Item("eDelay").GetValue<Slider>().Value) { if (target.HasBuffOfType(BuffType.Poison)) { Program.e.CastOnUnit(target); lastECast = Environment.TickCount; } } } //Casts W if selected in menu if (Program.menuController.getMenu().Item("comboUseW").GetValue<bool>()) { if (target != null) { Program.w.CastIfHitchanceEquals(target, HitChance.High); } } }
private static void Game_OnUpdate(EventArgs args) { if (Program.LagFree(0)) { SetMana(); } if (R.IsReady() && getCheckBoxItem(rMenu, "Rjungle")) { KsJungle(); } else { DragonTime = 0; } if (E.IsReady()) { if (Program.LagFree(0)) { LogicE(); } if (getKeyBindItem(eMenu, "smartE")) { Esmart = true; } if (getKeyBindItem(eMenu, "smartEW") && W.IsReady()) { CursorPosition = Game.CursorPos; W.Cast(CursorPosition); } if (Esmart && Player.Position.Extend(Game.CursorPos, E.Range).CountEnemiesInRange(500) < 4) { E.Cast(Player.Position.Extend(Game.CursorPos, E.Range), true); } if (!CursorPosition.IsZero) { E.Cast(Player.Position.Extend(CursorPosition, E.Range), true); } } else { CursorPosition = Vector3.Zero; Esmart = false; } if (Q.IsReady()) { LogicQ(); } if (Program.LagFree(3) && W.IsReady() && getCheckBoxItem(wMenu, "autoW")) { LogicW(); } if (R.IsReady()) { if (getKeyBindItem(rMenu, "useR")) { var t = TargetSelector.GetTarget(R.Range, DamageType.Physical); if (t.IsValidTarget()) { R.Cast(t, true, true); } } if (Program.LagFree(4)) { LogicR(); } } }
internal static void Game_OnUpdate(EventArgs args) { Target = TargetSelector.GetTarget(KL.Spells["Javelin"].Range, TargetSelector.DamageType.Magical); #region Active Modes if (Root.Item("usecombo").GetValue <KeyBind>().Active) { Combo(); } if (Root.Item("useharass").GetValue <KeyBind>().Active) { Harass(); } if (Root.Item("usefarm").GetValue <KeyBind>().Active) { Clear(); } if (Root.Item("flee").GetValue <KeyBind>().Active) { Flee(); } #endregion #region Auto Heal // auto heal on ally hero if (Root.Item("ndheon").GetValue <bool>() && KL.SpellTimer["Primalsurge"].IsReady()) { if (!KL.NotLearned(KL.Spells["Primalsurge"])) { if (!Player.Spellbook.IsChanneling && !Player.IsRecalling()) { if (Root.Item("flee").GetValue <KeyBind>().Active&& KL.CatForm()) { return; } if (Player.Mana / Player.MaxMana * 100 < Root.Item("ndhemana").GetValue <Slider>().Value) { return; } if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.None || !KL.CatForm()) { foreach ( var hero in HeroManager.Allies.Where( h => Root.Item("xx" + h.ChampionName).GetValue <bool>() && h.IsValidTarget(KL.Spells["Primalsurge"].Range, false) && h.Health / h.MaxHealth * 100 < Root.Item("zz" + h.ChampionName).GetValue <Slider>().Value) .OrderBy(x => x.HealthPercent)) { if (KL.CatForm() == false) { KL.Spells["Primalsurge"].CastOnUnit(hero); } if (KL.CatForm() && Root.Item("ndhesw").GetValue <bool>() && KL.Spells["Aspect"].IsReady()) { KL.Spells["Aspect"].Cast(); } } } } } } #endregion }
public override void GameOnUpdate(EventArgs args) { //Game.PrintChat(ObjectManager.Player.BaseAbilityDamage.ToString() + " : " + ObjectManager.Player.BaseAttackDamage.ToString()); UltiBuffStacks = GetUltimateBuffStacks(); W.Range = 110 + 20 * ObjectManager.Player.Spellbook.GetSpell(SpellSlot.W).Level; R.Range = 900 + 300 * ObjectManager.Player.Spellbook.GetSpell(SpellSlot.R).Level; if (R.IsReady() && GetValue <bool>("UseRM")) { foreach ( var hero in ObjectManager.Get <Obj_AI_Hero>() .Where( hero => hero.IsValidTarget(R.Range) && R.GetDamage(hero) > hero.Health)) { CastR(hero); } } //R.Cast(hero, false, true); if ((!ComboActive && !HarassActive) || (!Orbwalking.CanMove(100) && !(ObjectManager.Player.BaseAbilityDamage + ObjectManager.Player.FlatMagicDamageMod > 100))) { return; } var useQ = GetValue <bool>("UseQ" + (ComboActive ? "C" : "H")); var useE = GetValue <bool>("UseE" + (ComboActive ? "C" : "H")); var useR = GetValue <bool>("UseR" + (ComboActive ? "C" : "H")); var rLim = GetValue <Slider>("Rlim" + (ComboActive ? "C" : "H")).Value; var t = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Magical); if (useQ && Q.IsReady() && t.IsValidTarget(Q.Range)) { CastQ(t); //if (Q.Cast(t) == Spell.CastStates.SuccessfullyCasted) // return; } if (useE && E.IsReady() && t.IsValidTarget(E.Range)) { CastE(t); //if (Q.Cast(t) == Spell.CastStates.SuccessfullyCasted) // return; } if (R.IsReady() && t.IsValidTarget(R.Range) && t.HealthPercent <= Program.Config.Item(t.ChampionName + "RHPPercent").GetValue <Slider>().Value) //if (GetValue<bool>("UseRSC") && R.IsReady() && t.IsValidTarget(R.Range)) { if (t.IsValidTarget() && (t.HasBuffOfType(BuffType.Stun) || t.HasBuffOfType(BuffType.Snare) || t.HasBuffOfType(BuffType.Slow) || t.HasBuffOfType(BuffType.Fear) || t.HasBuffOfType(BuffType.Taunt))) { CastR(t); //R.Cast(t, false, true); } } if (useR && R.IsReady() && UltiBuffStacks < rLim && t.IsValidTarget(R.Range) && t.HealthPercent <= Program.Config.Item(t.ChampionName + "RHPPercent").GetValue <Slider>().Value) { CastR(t); //R.Cast(t, false, true); } }
public static void Combo() { //Get target var target = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Magical); //Check for target if (target == null) { return; } //Check available Spells var useQ = cMenu.Config.Item("comboUseQ").GetValue <bool>(); var useW = cMenu.Config.Item("comboUseW").GetValue <bool>(); var useE = cMenu.Config.Item("comboUseE").GetValue <bool>(); var useR = cMenu.Config.Item("comboUseR").GetValue <bool>(); //Check if target is killable var isKillable = target.IsMainComboKillable(); //Auto Ignite if (isKillable && cUtility.HasIgnite) { Player.Spellbook.CastSpell(Player.GetSpellSlot("SummonersDot"), target); } //Spells if (useE && E.IsReady()) { if (isKillable && E.CanCast(target) || E.IsKillable(target)) { E.Cast(target); } } if (useQ && Q.IsReady()) { if (isKillable && Q.CanCast(target) || Q.IsKillable(target) || (!useW && !useE)) { Q.Cast(target); } } if (useW && W.IsReady()) { if (isKillable && W.CanCast(target) || W.IsKillable(target) || Q.IsReady(100) || target.ServerPosition.Distance(Player.Position, true) > Math.Pow(W.Range + 100, 2)) { W.Cast(target); } } if (useR && R.IsReady()) { if (isKillable && R.CanCast(target) || R.IsKillable(target) && !Q.IsReady() && !E.IsReady() && !R.IsReady()) { R.Cast(); } } }
/// <summary> /// Creates the menu. /// </summary> private static void CreateMenu() { Menu = new Menu("Project Zed", "ProjectZed", true); var targetselectorMenu = new Menu("Target Selector", "TS"); TargetSelector.AddToMenu(targetselectorMenu); Menu.AddSubMenu(targetselectorMenu); var orbwalkMenu = new Menu("Orbwalker", "Orbwalker"); Orbwalker = new Orbwalking.Orbwalker(orbwalkMenu); Menu.AddSubMenu(orbwalkMenu); var comboMenu = new Menu("Combo Settings", "Combo"); comboMenu.AddItem(new MenuItem("UseQCombo", "Use Q").SetValue(true)); comboMenu.AddItem(new MenuItem("UseWCombo", "Use W").SetValue(true)); comboMenu.AddItem(new MenuItem("UseECombo", "Use E").SetValue(true)); comboMenu.AddItem(new MenuItem("UseRCombo", "Use R").SetValue(true)); comboMenu.AddItem(new MenuItem("AllInCombo", "All in Combo").SetValue(new KeyBind(83, KeyBindType.Press))); Menu.AddSubMenu(comboMenu); var harassMenu = new Menu("Harass Settings", "Harass"); harassMenu.AddItem(new MenuItem("UseQHarass", "Use Q Harass").SetValue(true)); harassMenu.AddItem(new MenuItem("UseWHarass", "Use W to Harass").SetValue(true)); harassMenu.AddItem(new MenuItem("UseEHarass", "Use E Harass").SetValue(true)); harassMenu.AddItem( new MenuItem("HarassToggle", "Harass! (Toggle)").SetValue(new KeyBind(84, KeyBindType.Toggle))); Menu.AddSubMenu(harassMenu); var lasthitMenu = new Menu("Last Hit Settings", "Lasthit"); lasthitMenu.AddItem(new MenuItem("UseQLastQ", "Use Q Lasthit").SetValue(false)); lasthitMenu.AddItem(new MenuItem("UseELastE", "Use E Lasthit").SetValue(true)); lasthitMenu.AddItem(new MenuItem("LHEnergy", "Use % of Energy in Lasthit").SetValue(new Slider(80, 1))); Menu.AddSubMenu(lasthitMenu); var laneClearMenu = new Menu("Lane Clear Settings", "LaneClear"); laneClearMenu.AddItem(new MenuItem("UseQLaneClear", "Use Q").SetValue(true)); laneClearMenu.AddItem(new MenuItem("UseELaneClear", "Use E").SetValue(true)); laneClearMenu.AddItem(new MenuItem("LCEnergy", "Use % Energy in LaneClear>")).SetValue(new Slider(60, 1, 100)); Menu.AddSubMenu(laneClearMenu); var ultDodge = new Menu("Ult Dodge Settings", "DodgeUlt"); ultDodge.AddItem(new MenuItem("CastRDodge", "Cast R on Unit to Dodge Dangerous").SetValue(true)); ultDodge.AddItem(new MenuItem("ShadowSwapDodge", "Swap with Shadow to Dodge Dangerous").SetValue(true)); Menu.AddSubMenu(ultDodge); var shadowMenu = new Menu("Shadow Settings", "ShadowSettings"); shadowMenu.AddItem(new MenuItem("ShadowSwapHP", "Dont swap to shadow if my HP below %").SetValue(new Slider(40))); shadowMenu.AddItem(new MenuItem("DontWIntoEnemies", "Dont W into Enemies").SetValue(new Slider(3, 1, 5))); shadowMenu.AddItem(new MenuItem("ShadowBackDead", "Swap to shadow if enemy is dead").SetValue(true)); shadowMenu.AddItem(new MenuItem("AutoE", "Auto use E").SetValue(true)); Menu.AddSubMenu(shadowMenu); var killstealMenu = new Menu("Kill Steal Settings", "KS"); killstealMenu.AddItem(new MenuItem("UseQKS", "Use Q").SetValue(true)); Menu.AddSubMenu(killstealMenu); var drawingMenu = new Menu("Drawing Settings", "Drawings"); drawingMenu.AddItem(new MenuItem("DrawQ", "Draw Q").SetValue(true)); drawingMenu.AddItem(new MenuItem("DrawW", "Draw W").SetValue(false)); drawingMenu.AddItem(new MenuItem("DrawE", "Draw E").SetValue(false)); drawingMenu.AddItem(new MenuItem("DrawR", "Draw R").SetValue(false)); Menu.AddSubMenu(drawingMenu); Menu.AddToMainMenu(); }
/// <summary> /// Does the combo. /// </summary> /// <param name="checkHp">if set to <c>true</c> will use R only if the target is killable.</param> private static void DoCombo(bool checkHp) { var target = TargetSelector.GetTarget( ShadowManager.RShadowState == ShadowManager.ShadowState.Cast ? R.Range : Q.Range, TargetSelector.DamageType.Physical); if (target == null) { CloseGap(); } if (target == null || !target.IsValidTarget()) { return; } var useQCombo = Menu.Item("UseQCombo").IsActive(); var useWCombo = Menu.Item("UseWCombo").IsActive(); var useECombo = Menu.Item("UseECombo").IsActive(); var useRCombo = Menu.Item("UseRCombo").IsActive(); if (useRCombo && R.IsReady() && ShadowManager.RShadowState == ShadowManager.ShadowState.Cast) { if (checkHp && DamageToUnit(target) > target.Health) { R.CastOnUnit(target); } else if (!checkHp) { R.CastOnUnit(target); } } if (useRCombo && R.IsReady() && ShadowManager.RShadowState == ShadowManager.ShadowState.Swap && ShadowManager.CanSwapToR(target, LastTarget)) { R.Cast(); } if (useWCombo && W.IsReady() && ShadowManager.WShadowState == ShadowManager.ShadowState.Cast) { var position = Player.ServerPosition.Extend(target.ServerPosition, W.Range); W.Cast(position); } if (useWCombo && W.IsReady() && ShadowManager.WShadowState == ShadowManager.ShadowState.Swap && ShadowManager.CanSwapToW(target, LastTarget)) { W.Cast(); } if (useQCombo && Q.IsReady()) { Q.Cast(target); } if (useECombo && E.IsReady() && ShadowManager.CanCastE) { E.Cast(); } LastTarget = target; }
/// <summary> /// Called on tick update. /// </summary> public void Combo(EntropyEventArgs args) { /// <summary> /// The Q Combo Logic. /// </summary> if (SpellClass.Q.Ready && MenuClass.Q["combo"].Enabled) { var bestTarget = Extensions.GetBestEnemyHeroTargetInRange(SpellClass.Q.Range); if (bestTarget != null && !Invulnerable.Check(bestTarget, DamageType.Magical)) { switch (MenuClass.Q["modes"]["combo"].Value) { case 0: if (!IsNearWorkedGround()) { SpellClass.Q.Cast(bestTarget); } break; case 1: SpellClass.Q.Cast(bestTarget); break; } } } /// <summary> /// The W Combo Logics. /// </summary> if (SpellClass.W.Ready) { /// <summary> /// The W-> E Combo Logic. /// </summary> if (MenuClass.W["boulders"].Enabled) { var bestTargets = TargetSelector.GetOrderedTargets(ObjectCache.EnemyHeroes) .Where(t => MenuClass.W["selection"][t.CharName.ToLower()].Value < 4); var objAiHeroes = bestTargets as AIHeroClient[] ?? bestTargets.ToArray(); foreach (var target in objAiHeroes) { var bestBoulderHitPos = GetBestBouldersHitPosition(target); var bestBoulderHitPosHitBoulders = GetBestBouldersHitPositionHitBoulders(target); if (bestBoulderHitPos != Vector3.Zero && bestBoulderHitPosHitBoulders > 0) { SpellClass.W.Cast(bestBoulderHitPos, SpellClass.W.GetPrediction(target).CastPosition); return; } } } /// <summary> /// The W-> E Combo Logic. /// </summary> if ((SpellClass.E.Ready || !MenuClass.W["customization"]["onlyeready"].Enabled) && MenuClass.W["combo"].Enabled) { var bestTarget = Extensions.GetBestEnemyHeroTargetInRange(SpellClass.W.Range); if (bestTarget != null && !Invulnerable.Check(bestTarget, DamageType.Magical, false)) { switch (MenuClass.Root["pattern"].Value) { case 0: SpellClass.W.Cast(GetTargetPositionAfterW(bestTarget), SpellClass.W.GetPrediction(bestTarget).CastPosition); break; } } } } /// <summary> /// The E Combo Logic. /// </summary> if (SpellClass.E.Ready && MenuClass.E["combo"].Enabled) { if (MenuClass.Root["pattern"].Value == 0) { return; } if (!SpellClass.W.Ready && MenuClass.E["customization"]["onlywready"].Enabled && UtilityClass.Player.Spellbook.GetSpellState(SpellSlot.W) != SpellState.NotLearned) { return; } var bestETarget = Extensions.GetBestEnemyHeroTargetInRange(SpellClass.E.Range - 150f); if (bestETarget != null && !Invulnerable.Check(bestETarget, DamageType.Magical)) { SpellClass.E.Cast(bestETarget.Position); } } }
void Combo() { AIHeroClient target = null; if (SpellSlot.E.IsReady() && SpellSlot.Q.IsReady()) { target = TargetSelector.GetTarget((E.Range + Q.Range) * 0.95f, DamageType.Physical); } if (target == null) { target = TargetSelector.GetTarget(W.Range, DamageType.Physical); } if ((target != null) && target.IsVisible && target.IsHPBarRendered) { var dist = Khazix.LSDistance(target); // Normal abilities if (Q.IsReady() && !Jumping && getCheckBoxItem(combo, "UseQCombo")) { if (dist <= Q.Range) { Q.Cast(target); } } if (W.IsReady() && !EvolvedW && dist <= W.Range && getCheckBoxItem(combo, "UseWCombo")) { var pred = W.GetPrediction(target); if (pred.HitChance >= Config.GetHitChance("WHitchance")) { W.Cast(pred.CastPosition); } } if (E.IsReady() && !Jumping && dist <= E.Range && getCheckBoxItem(combo, "UseECombo") && dist > Q.Range + (0.7 * Khazix.MoveSpeed)) { var pred = E.GetPrediction(target); if (target.IsValid && target.IsVisible && target.IsHPBarRendered && !target.IsDead && ShouldJump(pred.CastPosition)) { E.Cast(pred.CastPosition); } } // Use EQ AND EW Synergy if ((dist <= E.Range + Q.Range + (0.7 * Khazix.MoveSpeed) && dist > Q.Range && E.IsReady() && getCheckBoxItem(combo, "UseEGapclose")) || (dist <= E.Range + W.Range && dist > Q.Range && E.IsReady() && W.IsReady() && getCheckBoxItem(combo, "UseEGapcloseW"))) { var pred = E.GetPrediction(target); if (target.IsValid && target.IsVisible && target.IsHPBarRendered && !target.IsDead && ShouldJump(pred.CastPosition)) { E.Cast(pred.CastPosition); } if (getCheckBoxItem(combo, "UseRGapcloseW") && R.IsReady()) { R.CastOnUnit(Khazix); } } // Ult Usage if (R.IsReady() && !Q.IsReady() && !W.IsReady() && !E.IsReady() && getCheckBoxItem(combo, "UseRCombo")) { R.Cast(); } // Evolved if (W.IsReady() && EvolvedW && dist <= WE.Range && getCheckBoxItem(combo, "UseWCombo")) { var pred = WE.GetPrediction(target); if (pred.HitChance >= Config.GetHitChance("WHitchance")) { CastWE(target, pred.UnitPosition.LSTo2D(), 0, Config.GetHitChance("WHitchance")); } if (pred.HitChance >= EloBuddy.SDK.Enumerations.HitChance.Collision) { List <Obj_AI_Base> PCollision = pred.CollisionObjects.ToList(); var x = PCollision.Where(PredCollisionChar => PredCollisionChar.LSDistance(target) <= 30).FirstOrDefault(); if (x != null) { W.Cast(x.Position); } } } if (dist <= E.Range + (0.7 * Khazix.MoveSpeed) && dist > Q.Range && getCheckBoxItem(combo, "UseECombo") && E.IsReady()) { var pred = E.GetPrediction(target); if (target.IsValid && target.IsVisible && target.IsHPBarRendered && !target.IsDead && ShouldJump(pred.CastPosition)) { E.Cast(pred.CastPosition); } } if (getCheckBoxItem(combo, "UseItems")) { UseItems(target); } } }
private void Drawing_OnDraw(EventArgs args) { if (QMissile != null && QMissile.IsValid && Config.Item("Qhelp", true).GetValue <bool>()) { OktwCommon.DrawLineRectangle(QMissile.Position, Player.Position, (int)Q.Width, 1, System.Drawing.Color.White); } if (Config.Item("qRange", true).GetValue <bool>()) { if (Config.Item("onlyRdy", true).GetValue <bool>()) { if (Q.IsReady()) { Utility.DrawCircle(Player.Position, Q.Range, System.Drawing.Color.Cyan, 1, 1); } } else { Utility.DrawCircle(Player.Position, Q.Range, System.Drawing.Color.Cyan, 1, 1); } } if (Config.Item("wRange", true).GetValue <bool>()) { if (Config.Item("onlyRdy", true).GetValue <bool>()) { if (W.IsReady()) { Utility.DrawCircle(Player.Position, W.Range, System.Drawing.Color.Orange, 1, 1); } } else { Utility.DrawCircle(Player.Position, W.Range, System.Drawing.Color.Orange, 1, 1); } } if (Config.Item("eRange", true).GetValue <bool>()) { if (Config.Item("onlyRdy", true).GetValue <bool>()) { if (E.IsReady()) { Utility.DrawCircle(Player.Position, E.Range, System.Drawing.Color.Yellow, 1, 1); } } else { Utility.DrawCircle(Player.Position, E.Range, System.Drawing.Color.Yellow, 1, 1); } } if (Config.Item("noti", true).GetValue <bool>()) { var t = TargetSelector.GetTarget(1500, TargetSelector.DamageType.Physical); if (t.IsValidTarget()) { var comboDmg = 0f; if (R.IsReady()) { comboDmg += R.GetDamage(t) * 3; } if (Q.IsReady()) { comboDmg += Q.GetDamage(t) * 2; } if (W.IsReady()) { comboDmg += W.GetDamage(t) + W.GetDamage(t, 1); } if (comboDmg > t.Health) { Drawing.DrawText(Drawing.Width * 0.1f, Drawing.Height * 0.5f, System.Drawing.Color.Red, "COMBO KILL " + t.ChampionName + " have: " + t.Health + "hp"); drawLine(t.Position, Player.Position, 10, System.Drawing.Color.Yellow); } } } }
private static void Game_OnGameUpdate(EventArgs args) { if (Program.Combo && getCheckBoxItem(miscMenu, "AACombo")) { if (!E.IsReady()) { PortAIO.OrbwalkerManager.SetAttack(true); } else { PortAIO.OrbwalkerManager.SetAttack(false); } } else { PortAIO.OrbwalkerManager.SetAttack(true); } if (getKeyBindItem(eMenu, "FlayPush") || getKeyBindItem(eMenu, "FlayPull")) { Orbwalker.MoveTo(Game.CursorPos); } var Etarget = TargetSelector.GetTarget(E.Range, DamageType.Magical); if (getKeyBindItem(eMenu, "FlayPush") && Etarget != null && E.IsReady()) { if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.None)) { Push(Etarget); } } if (getKeyBindItem(eMenu, "FlayPull") && Etarget != null && E.IsReady()) { if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.None)) { Pull(Etarget); } } if (getKeyBindItem(wMenu, "ThrowLantern")) { ThrowLantern(); } if (Marked.LSIsValidTarget()) { if (Program.Combo) { if (OktwCommon.GetPassiveTime(Marked, "ThreshQ") < 0.3) { Q.Cast(); } if (W.IsReady() && getCheckBoxItem(wMenu, "autoW2")) { var allyW = Player; foreach (var ally in Program.Allies.Where(ally => ally.IsValid && !ally.IsDead && Player.LSDistance(ally.ServerPosition) < W.Range + 500)) { if (Marked.LSDistance(ally.ServerPosition) > 800 && Player.LSDistance(ally.ServerPosition) > 600) { CastW(LeagueSharp.Common.Prediction.GetPrediction(ally, 1f).CastPosition); } } } } } else { if (Program.LagFree(1) && Q.IsReady()) { LogicQ(); } if (Program.LagFree(2) && E.IsReady() && getCheckBoxItem(eMenu, "autoE")) { LogicE(); } } if (Program.LagFree(3) && W.IsReady()) { LogicW(); } if (Program.LagFree(4) && R.IsReady()) { LogicR(); } }
private static void Drawing_OnDraw(EventArgs args) { if (getCheckBoxItem(drawMenu, "qRange")) { if (getCheckBoxItem(drawMenu, "onlyRdy")) { if (Q.IsReady()) { Utility.DrawCircle(Player.Position, Q.Range, Color.Cyan, 1, 1); } } else { Utility.DrawCircle(Player.Position, Q.Range, Color.Cyan, 1, 1); } } if (getCheckBoxItem(drawMenu, "wRange")) { if (getCheckBoxItem(drawMenu, "onlyRdy")) { if (W.IsReady()) { Utility.DrawCircle(ObjectManager.Player.Position, W.Range, Color.Orange, 1, 1); } } else { Utility.DrawCircle(ObjectManager.Player.Position, W.Range, Color.Orange, 1, 1); } } if (getCheckBoxItem(drawMenu, "eRange")) { if (getCheckBoxItem(drawMenu, "onlyRdy")) { if (E.IsReady()) { Utility.DrawCircle(Player.Position, E.Range, Color.Yellow, 1, 1); } } else { Utility.DrawCircle(Player.Position, E.Range, Color.Yellow, 1, 1); } } if (getCheckBoxItem(drawMenu, "rRange")) { if (getCheckBoxItem(drawMenu, "onlyRdy")) { if (R.IsReady()) { Utility.DrawCircle(Player.Position, R.Range, Color.Gray, 1, 1); } } else { Utility.DrawCircle(Player.Position, R.Range, Color.Gray, 1, 1); } } if (getCheckBoxItem(drawMenu, "noti")) { var target = TargetSelector.GetTarget(1500, DamageType.Physical); if (target.IsValidTarget()) { var poutput = Q.GetPrediction(target); if ((int)poutput.Hitchance == 5) { Render.Circle.DrawCircle(poutput.CastPosition, 50, Color.YellowGreen); } if (Q.GetDamage(target) > target.Health) { Render.Circle.DrawCircle(target.ServerPosition, 200, Color.Red); Drawing.DrawText(Drawing.Width * 0.1f, Drawing.Height * 0.4f, Color.Red, "Q 击杀: " + target.ChampionName + " have: " + target.Health + "hp"); } else if (Q.GetDamage(target) + W.GetDamage(target) > target.Health) { Render.Circle.DrawCircle(target.ServerPosition, 200, Color.Red); Drawing.DrawText(Drawing.Width * 0.1f, Drawing.Height * 0.4f, Color.Red, "Q + W 击杀: " + target.ChampionName + " have: " + target.Health + "hp"); } else if (Q.GetDamage(target) + W.GetDamage(target) + E.GetDamage(target) > target.Health) { Render.Circle.DrawCircle(target.ServerPosition, 200, Color.Red); Drawing.DrawText(Drawing.Width * 0.1f, Drawing.Height * 0.4f, Color.Red, "Q + W + E 击杀: " + target.ChampionName + " have: " + target.Health + "hp"); } } } }
public override void Combo() { Orbwalker.ForcedTarget = null; if (R.IsReady() && ComboMenu.CheckBoxValue(SpellSlot.R)) { R.CastAOE(ComboMenu.SliderValue("RAOE"), 3000); } var target = EntityManager.Heroes.Enemies.OrderByDescending(TargetSelector.GetPriority).FirstOrDefault(e => e.IsKillable() && BarrelsList.Any(b => b.Barrel.IsValidTarget(Q.Range) && (KillableBarrel(b)?.Distance(e) <= E.Width || BarrelsList.Any(a => KillableBarrel(b)?.Distance(a.Barrel) <= ConnectionRange && e.Distance(b.Barrel) <= E.Width)))) ?? TargetSelector.GetTarget(E.Range, DamageType.Physical); if (target == null || !target.IsKillable()) { return; } var pred = target.PredictPosition(); var castpos = E.GetPrediction(target).CastPosition; if (AABarrel(target) != null) { var extended = AABarrel(target).ServerPosition.Extend(pred, ConnectionRange).To3D(); castpos = !E.IsInRange(extended) ? pred : extended; Orbwalker.ForcedTarget = AABarrel(target); if (E.IsReady() && ComboMenu.CheckBoxValue(SpellSlot.E)) { if (BarrelsList.Count(b => b.Barrel.Distance(user) <= Q.Range) > 0 && BarrelsList.Count(b => b.Barrel.Distance(castpos) <= E.Width) < 1) { E.Cast(castpos); } } Player.IssueOrder(GameObjectOrder.AttackUnit, AABarrel(target)); return; } if (Q.IsReady()) { if (ComboMenu.CheckBoxValue(SpellSlot.Q)) { if (((BarrelsList.Count(b => b.Barrel.IsInRange(target, E.Radius + ConnectionRange)) < 1 && (!E.IsReady() || E.Handle.Ammo < 1)) || Q.WillKill(target)) && target.IsKillable(Q.Range)) { Q.Cast(target); } foreach (var A in BarrelsList.OrderBy(b => b.Barrel.Distance(target))) { if (KillableBarrel(A) != null && KillableBarrel(A).IsValidTarget(Q.Range)) { if (pred.IsInRange(KillableBarrel(A), E.Width)) { Q.Cast(KillableBarrel(A)); } var Secondbarrel = BarrelsList.OrderBy(b => b.Barrel.Distance(target)).FirstOrDefault(b => b.Barrel.NetworkId != KillableBarrel(A).NetworkId&& b.Barrel.Distance(KillableBarrel(A)) <= ConnectionRange); if (Secondbarrel != null) { if (pred.IsInRange(Secondbarrel.Barrel, E.Width)) { Q.Cast(KillableBarrel(A)); } if (BarrelsList.OrderBy(b => b.Barrel.Distance(target)).Any(b => b.Barrel.NetworkId != Secondbarrel.Barrel.NetworkId && b.Barrel.Distance(Secondbarrel.Barrel) <= ConnectionRange && b.Barrel.CountEnemiesInRange(E.Width) > 0)) { Q.Cast(KillableBarrel(A)); } } else { if (BarrelsList.OrderBy(b => b.Barrel.Distance(target)).Any(b => b.Barrel.NetworkId != KillableBarrel(A).NetworkId&& b.Barrel.Distance(KillableBarrel(A)) <= ConnectionRange && b.Barrel.CountEnemiesInRange(E.Width) > 0)) { Q.Cast(KillableBarrel(A)); } } } } } if (E.IsReady() && ComboMenu.CheckBoxValue(SpellSlot.E)) { if (BarrelsList.OrderBy(b => b.Barrel.Distance(target)).Count(b => b.Barrel.IsInRange(target, E.Width)) < 1) { if (BarrelsList.OrderBy(b => b.Barrel.Distance(target)).Count(b => b.Barrel.IsInRange(target, E.Radius + ConnectionRange)) > 0) { var targetbarrel = BarrelsList.OrderBy(b => b.Barrel.Distance(target)).FirstOrDefault(b => KillableBarrel(b) != null && (b.Barrel.IsValidTarget(Q.Range) || b.Barrel.IsValidTarget(user.GetAutoAttackRange())) && b.Barrel.IsInRange(target, E.Radius + ConnectionRange)); if (KillableBarrel(targetbarrel) != null) { var Secondbarrel = BarrelsList.OrderBy(b => b.Barrel.Distance(target)).FirstOrDefault(b => b.Barrel.NetworkId != targetbarrel?.Barrel.NetworkId && b.Barrel.Distance(targetbarrel?.Barrel) <= ConnectionRange); if (Secondbarrel != null) { var extended = Secondbarrel.Barrel.ServerPosition.Extend(pred, ConnectionRange).To3D(); castpos = !E.IsInRange(extended) ? pred : extended; } if ((castpos.Distance(KillableBarrel(targetbarrel)) <= ConnectionRange || Secondbarrel?.Barrel.Distance(castpos) <= ConnectionRange) && E.IsInRange(castpos)) { E.Cast(castpos); } } } else { if (E.Handle.Ammo > 1 && ComboMenu.CheckBoxValue("FB")) { if (Q.IsInRange(castpos)) { if (HPTiming() <= 1000 || target.IsCC()) { E.Cast(castpos); } } else { if (E.IsInRange(castpos)) { E.Cast(castpos.Extend(user, ConnectionRange - 300).To3D()); } } var circle = new Geometry.Polygon.Circle(castpos, ConnectionRange); foreach (var point in circle.Points) { circle = new Geometry.Polygon.Circle(point, E.Width); var grass = circle.Points.OrderBy(p => p.Distance(castpos)).FirstOrDefault(p => p.IsGrass() && Q.IsInRange(p.To3D()) && p.Distance(castpos) <= ConnectionRange); if (grass != null) { E.Cast(grass.To3D()); } } } } } } } }
/// <summary> /// Combo /// </summary> private static void Combo() { var target = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical); if (target == null) { return; } var useq = Config.Item("comboMenu.useq").GetValue <bool>(); var usew = Config.Item("comboMenu.usew").GetValue <bool>(); var usee = Config.Item("comboMenu.usee").GetValue <bool>(); var combomode = Config.Item("comboMenu.combomode").GetValue <StringList>().SelectedIndex; var qpred = Q.GetPrediction(target); // var epred = E.GetPrediction(target); if (Ignite.IsReady() && target.Health <= (Q.GetDamage(target) + Player.GetAutoAttackDamage(target))) { Player.Spellbook.CastSpell(Ignite, target); } var epred = E.GetPrediction(target); var ecol = epred.CollisionObjects; AhriR.RUlt(); switch (combomode) { case 0: { if (!E.IsReady() && Q.IsReady() && target.IsValidTarget(Q.Range) && useq) { Q.Cast(qpred.CastPosition); } if (E.IsReady() && usee && target.IsValidTarget(E.Range) && !ecol.Any()) { E.Cast(epred.CastPosition); } if (W.IsReady() && target.IsValidTarget(600) && usew && (Player.Mana >= W.Instance.ManaCost + E.Instance.ManaCost)) { W.Cast(); } break; } case 1: { if (E.IsReady() && !Q.IsReady() && target.IsValidTarget() && usee) { if (!ecol.Any()) { E.Cast(epred.CastPosition); } } if (Q.IsReady() && useq) { Q.Cast(target); } if (W.IsReady() && target.IsValidTarget(600) && usew && (Player.Mana >= W.Instance.ManaCost + E.Instance.ManaCost)) { W.Cast(); } break; } } }
private void InitMenu() { config = new Menu("Jax ", "Jax", true); // Target Selector Menu menuTS = new Menu("Selector", "tselect"); TargetSelector.AddToMenu(menuTS); config.AddSubMenu(menuTS); // Orbwalker Menu menuOrb = new Menu("Orbwalker", "orbwalker"); orbwalker = new Orbwalking.Orbwalker(menuOrb); config.AddSubMenu(menuOrb); // Draw settings Menu menuD = new Menu("Drawings ", "dsettings"); menuD.AddItem(new MenuItem("drawqq", "Draw Q range", true)) .SetValue(new Circle(false, Color.FromArgb(180, 72, 46, 81))); menuD.AddItem(new MenuItem("drawee", "Draw E range", true)) .SetValue(new Circle(false, Color.FromArgb(180, 72, 46, 81))); menuD.AddItem(new MenuItem("drawcombo", "Draw combo damage", true)).SetValue(true); config.AddSubMenu(menuD); // Combo Settings Menu menuC = new Menu("Combo ", "csettings"); menuC.AddItem(new MenuItem("useq", "Use Q", true)).SetValue(true); menuC.AddItem(new MenuItem("useqLimit", " Limit usage", true)).SetValue(true); menuC.AddItem(new MenuItem("useqSec", "Use Q to secure kills", true)).SetValue(false); menuC.AddItem(new MenuItem("usew", "Use W", true)).SetValue(true); menuC.AddItem(new MenuItem("useeStun", "Use E to stun", true)).SetValue(false); menuC.AddItem(new MenuItem("useeAA", "Block AA from target", true)).SetValue(true); menuC.AddItem(new MenuItem("user", "Use R", true)).SetValue(true); menuC.AddItem(new MenuItem("userMin", " Min enemies around", true)).SetValue(new Slider(2, 1, 5)); menuC.AddItem(new MenuItem("userDmg", " Use R before high damage", true)).SetValue(true); menuC.AddItem(new MenuItem("useIgnite", "Use Ignite", true)).SetValue(true); menuC = ItemHandler.addItemOptons(menuC); config.AddSubMenu(menuC); // Harass Settings Menu menuH = new Menu("Harass ", "Hsettings"); menuH.AddItem(new MenuItem("useqH", "Use Q", true)).SetValue(true); menuH.AddItem(new MenuItem("usewH", "Use W on target", true)).SetValue(true); menuH.AddItem(new MenuItem("minmanaH", "Keep X% mana", true)).SetValue(new Slider(1, 1, 100)); config.AddSubMenu(menuH); // LaneClear Settings Menu menuLC = new Menu("LaneClear ", "Lcsettings"); menuLC.AddItem(new MenuItem("useqLC", "Use Q", true)).SetValue(true); menuLC.AddItem(new MenuItem("usewLC", "Use w", true)).SetValue(true); menuLC.AddItem(new MenuItem("minmana", "Keep X% mana", true)).SetValue(new Slider(1, 1, 100)); config.AddSubMenu(menuLC); Menu menuM = new Menu("Misc ", "Msettings"); menuM.AddItem(new MenuItem("autoE", "Auto E", true)).SetValue(true); menuM.AddItem(new MenuItem("EAggro", " Aggro count", true)).SetValue(new Slider(3, 1, 10)); menuM.AddItem(new MenuItem("Emindam", " Damage % in health", true)).SetValue(new Slider(15, 1, 100)); menuM.AddItem(new MenuItem("wardJump", "Ward jump", true)) .SetValue(new KeyBind("T".ToCharArray()[0], KeyBindType.Press)) .SetFontStyle(System.Drawing.FontStyle.Bold, SharpDX.Color.Orange); menuM = DrawHelper.AddMisc(menuM); config.AddSubMenu(menuM); config.AddItem(new MenuItem("UnderratedAIO", "by Soresu v" + Program.version.ToString().Replace(",", "."))); config.AddToMainMenu(); }
private void CastEqKillsteal() { var target = TargetSelector.GetTarget( Variables.Spell[Variables.Spells.E].Range + Variables.Spell[Variables.Spells.Q2].Range, DamageType.Physical); if ( !target.LSIsValidTarget( Variables.Spell[Variables.Spells.E].Range + Variables.Spell[Variables.Spells.Q2].Range)) { return; } var dashSpeed = (int)(Variables.Spell[Variables.Spells.E].Range / (700 + ObjectManager.Player.MoveSpeed)); var extendedPrediction = GetExtendedPrediction(target, dashSpeed); var minions = ObjectManager.Get <Obj_AI_Minion>() .Where(x => x.IsEnemy && x.IsValid && x.LSDistance(extendedPrediction, true) < 900 * 900) .OrderByDescending(x => x.LSDistance(extendedPrediction)); foreach (var minion in minions.Select(x => LeagueSharp.Common.Prediction.GetPrediction(x, dashSpeed)) .Select( pred => MathHelper.GetCicleLineInteraction( pred.UnitPosition.LSTo2D(), extendedPrediction.LSTo2D(), ObjectManager.Player.ServerPosition.LSTo2D(), Variables.Spell[Variables.Spells.E].Range)) .Select(inter => inter.GetBestInter(target))) { if (Math.Abs(minion.X) < 1) { return; } if (!NavMesh.GetCollisionFlags(minion.To3D()).HasFlag(CollisionFlags.Wall) && !NavMesh.GetCollisionFlags(minion.To3D()).HasFlag(CollisionFlags.Building) && minion.To3D().IsSafe(Variables.Spell[Variables.Spells.E].Range)) { Variables.Spell[Variables.Spells.E].Cast((Vector3)minion); } } var champions = ObjectManager.Get <AIHeroClient>() .Where(x => x.IsEnemy && x.IsValid && x.LSDistance(extendedPrediction, true) < 900 * 900) .OrderByDescending(x => x.LSDistance(extendedPrediction)); if (getCheckBoxItem(MenuGenerator.miscOptions, "com.ilucian.misc.useChampions")) { foreach (var position in champions.Select(x => LeagueSharp.Common.Prediction.GetPrediction(x, dashSpeed)) .Select( pred => MathHelper.GetCicleLineInteraction( pred.UnitPosition.LSTo2D(), extendedPrediction.LSTo2D(), ObjectManager.Player.ServerPosition.LSTo2D(), Variables.Spell[Variables.Spells.E].Range)) .Select(inter => inter.GetBestInter(target))) { if (Math.Abs(position.X) < 1) { return; } if (!NavMesh.GetCollisionFlags(position.To3D()).HasFlag(CollisionFlags.Wall) && !NavMesh.GetCollisionFlags(position.To3D()).HasFlag(CollisionFlags.Building) && position.To3D().IsSafe(Variables.Spell[Variables.Spells.E].Range)) { Variables.Spell[Variables.Spells.E].Cast((Vector3)position); } } } }
public Obj_AI_Hero GetTarget( float vDefaultRange = 0, TargetSelector.DamageType vDefaultDamageType = TargetSelector.DamageType.Physical) { if (this.Selector != TargetSelect.Syndra) { return TargetSelector.GetTarget(vDefaultRange, vDefaultDamageType); } vDefaultRange = Math.Abs(vDefaultRange) < 0.00001 ? Program.Eq.Range : this.Config.Item("Range").GetValue<Slider>().Value; var vEnemy = HeroManager.Enemies.Where(e => e.IsValidTarget(vDefaultRange) && !e.IsZombie) .Where(e => this.Config.Item("enemy." + e.ChampionName) != null) .Where(e => this.Config.Item("enemy." + e.ChampionName).GetValue<bool>()); if (this.Config.Item("Set").GetValue<StringList>().SelectedIndex == 1) { vEnemy = (from vEn in vEnemy select vEn).OrderByDescending(vEn => vEn.MaxHealth); } var objAiHeroes = vEnemy as Obj_AI_Hero[] ?? vEnemy.ToArray(); var t = !objAiHeroes.Any() ? TargetSelector.GetTarget(vDefaultRange, vDefaultDamageType) : objAiHeroes[0]; return t; }
private void OnUpdate(EventArgs args) { Variables.Spell[Variables.Spells.W].Collision = getCheckBoxItem(MenuGenerator.miscOptions, "com.ilucian.misc.usePrediction"); Killsteal(); if (getCheckBoxItem(MenuGenerator.miscOptions, "com.ilucian.misc.antiMelee") && Variables.Spell[Variables.Spells.E].IsReady()) { foreach (var meleeTarget in HeroManager.Enemies.Where( x => x.IsMelee && x.LSDistance(ObjectManager.Player) <= x.AttackRange * 2f && ObjectManager.Player.HealthPercent <= 30 && x.HealthPercent > 50)) { Variables.Spell[Variables.Spells.E].Cast( ObjectManager.Player.ServerPosition.LSExtend(meleeTarget.Position, -475)); } } if (getKeyBindItem(MenuGenerator.comboOptions, "com.ilucian.combo.forceR")) { SemiUlt(); EloBuddy.Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos); } if (ObjectManager.Player.HasBuff("LucianR") && getKeyBindItem(MenuGenerator.comboOptions, "com.ilucian.combo.forceR")) { PortAIO.OrbwalkerManager.SetAttack(false); } if (!ObjectManager.Player.HasBuff("LucianR") || !getKeyBindItem(MenuGenerator.comboOptions, "com.ilucian.combo.forceR")) { PortAIO.OrbwalkerManager.SetAttack(true); } if (getCheckBoxItem(MenuGenerator.miscOptions, "com.ilucian.misc.forcePassive") && Variables.HasPassive()) { var target = TargetSelector.GetTarget( ObjectManager.Player.AttackRange, DamageType.Physical); if (target != null && target.IsValid && target.IsHPBarRendered) { Orbwalker.ForcedTarget = (target); } else { Orbwalker.ForcedTarget = (null); } } AutoHarass(); if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo)) { // OnCombo(); if (getCheckBoxItem(MenuGenerator.comboOptions, "com.ilucian.combo.qExtended")) { CastExtendedQ(); } } if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Harass)) { OnHarass(); } if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear)) { OnLaneclear(); } }
private static void Combo() { var qtarget = TargetSelector.GetTarget(Q.Range); if (qtarget == null || !qtarget.IsValidTarget(Q.Range)) { return; } var wtarget = TargetSelector.GetTarget(W.Range); if (wtarget == null || !wtarget.IsValidTarget(W.Range)) { return; } var etarget = TargetSelector.GetTarget(E.Range); if (etarget == null || !etarget.IsValidTarget(E.Range)) { return; } var rtarget = TargetSelector.GetTarget(R.Range); if (rtarget == null || !rtarget.IsValidTarget(R.Range)) { return; } if (MenuWrapper.Combo.Q.Enabled && Q.IsReady() && !MenuWrapper.Combo.Qstun.Enabled) { var qPred = Q.GetPrediction(qtarget, false, -1, CollisionObjects.Minions | CollisionObjects.YasuoWall | CollisionObjects.Heroes); if (qPred.Hitchance >= HitChance.High) { DelayAction.Add((int)(qtarget.Distance(Player.Position) / 3.5f + Game.Ping), () => { Q.Cast(qPred.CastPosition); }); } } if (MenuWrapper.Combo.Qstun.Enabled && Q.IsReady()) { var qPred = Q.GetPrediction(qtarget, false, -1, CollisionObjects.Minions | CollisionObjects.YasuoWall | CollisionObjects.Heroes); if (qPred.Hitchance >= HitChance.High) { foreach (var t in GameObjects.EnemyHeroes.Where(x => x.IsValidTarget(E.Range) && x.HasBuff("brandablaze"))) { ; } } { DelayAction.Add((int)(qtarget.Distance(Player.Position) / 2f + Game.Ping), () => { Q.Cast(qPred.CastPosition); }); } } if (MenuWrapper.Combo.W.Enabled && W.IsReady()) { var wPred = W.GetPrediction(wtarget, false, 0); if (wPred.Hitchance >= HitChance.High) { DelayAction.Add((int)(wtarget.Distance(Player.Position) / 2f + Game.Ping), () => { W.Cast(wPred.CastPosition); }); } } if (MenuWrapper.Combo.E.Enabled && E.IsReady()) { DelayAction.Add((int)(etarget.Distance(Player.Position) / 2f + Game.Ping), () => { E.Cast(etarget); }); } if (MenuWrapper.Combo.R.Enabled && R.IsReady()) { DelayAction.Add((int)(rtarget.Distance(Player.Position) / 2f + Game.Ping), () => { R.Cast(rtarget); }); } }
private static void Combo() { bool vQ = _q.IsReady() && getCheckBoxItem(comboMenu, "teddy.bear.combo.useq"); bool vW = _w.IsReady() && getCheckBoxItem(comboMenu, "teddy.bear.combo.usew"); bool vE = _e.IsReady() && getCheckBoxItem(comboMenu, "teddy.bear.combo.usee"); bool vR = _r.IsReady() && getCheckBoxItem(comboMenu, "teddy.bear.combo.user");; bool useskW = getCheckBoxItem(misc, "teddy.bear.misc.skW"); AIHeroClient tsQ = TargetSelector.GetTarget(_q.Range, DamageType.Magical); AIHeroClient tsR = TargetSelector.GetTarget(_r.Range, DamageType.Magical); #region Q-Cast if (vQ) { if (tsQ.Distance(Player.Position) >= 2500 && tsQ.Direction == Player.Direction && tsQ.MoveSpeed > Player.MoveSpeed && tsQ.MoveSpeed < Player.MoveSpeed * 1.3) { _q.Cast(tsQ); } if (tsQ.GetEnemiesInRange(100).Any(enemies => enemies.IsEnemy && !enemies.IsDead) && tsQ.IsValidTarget()) { _q.Cast(tsQ); } else if (Player.CountAlliesInRange(500) >= 1 && tsQ.IsValidTarget()) { _q.Cast(tsQ); } else if (tsQ.IsValidTarget()) { _q.Cast(tsQ); } } #endregion #region W-Cast if (vW && useskW) { if (tsQ.IsValidTarget(_w.Range) && tsQ.Health < _w.GetDamage(tsQ)) { _w.CastOnUnit(tsQ); } } else if (vW) { if (tsQ.IsValidTarget(_w.Range)) { _w.CastOnUnit(tsQ); } } #endregion #region E-Cast if (vE) { if (tsQ.IsValidTarget(_e.Range) && tsQ.Distance(Player.Position) <= _w.Range) { _e.Cast(); } } #endregion #region R-Cast if (vR) { if (tsR.IsValidTarget(Player.AttackRange) && tsR.HealthPercent > 25) { _r.Cast(); } } #endregion }
private static void onLoad(EventArgs args) { if (ObjectManager.Player.ChampionName != CharName) { return; } Yasuo.setSkillShots(); Yasuo.setDashes(); Yasuo.point1 = Yasuo.Player.Position; Game.PrintChat("YasuoSharpV2 by DeTuKs"); try { Config = new Menu("【無為汉化】亚索V2", "Yasuo", true); //Orbwalker Config.AddSubMenu(new Menu("走砍", "Orbwalker")); Orbwalker = new Orbwalking.Orbwalker(Config.SubMenu("Orbwalker")); //TS var TargetSelectorMenu = new Menu("目标选择", "Target Selector"); TargetSelector.AddToMenu(TargetSelectorMenu); Config.AddSubMenu(TargetSelectorMenu); //Combo Config.AddSubMenu(new Menu("连招", "combo")); Config.SubMenu("combo").AddItem(new MenuItem("comboItems", "使用点燃")).SetValue(true); //SmartR Config.SubMenu("combo").AddItem(new MenuItem("smartR", "智能 R")).SetValue(true); Config.SubMenu("combo").AddItem(new MenuItem("useRHit", "使用 R 如果击中")).SetValue(new Slider(3, 5, 1)); Config.SubMenu("combo").AddItem(new MenuItem("useRHitTime", "当要落地时使用︱R")).SetValue(true); Config.SubMenu("combo").AddItem(new MenuItem("useEWall", "安全使用 E ")).SetValue(true); //Flee away Config.SubMenu("combo").AddItem(new MenuItem("flee", "使用E逃跑")).SetValue(new KeyBind('Z', KeyBindType.Press, false)); Config.SubMenu("combo").AddItem(new MenuItem("fleeStack", "逃跑时叠加Q")).SetValue(true); //LastHit Config.AddSubMenu(new Menu("补兵", "lHit")); Config.SubMenu("lHit").AddItem(new MenuItem("useQlh", "使用 Q")).SetValue(true); Config.SubMenu("lHit").AddItem(new MenuItem("useElh", "使用 E")).SetValue(true); //LaneClear Config.AddSubMenu(new Menu("清兵", "lClear")); Config.SubMenu("lClear").AddItem(new MenuItem("useQlc", "使用 Q")).SetValue(true); Config.SubMenu("lClear").AddItem(new MenuItem("useEmpQHit", "小兵最少数量")).SetValue(new Slider(3, 6, 1)); Config.SubMenu("lClear").AddItem(new MenuItem("useElc", "使用 E")).SetValue(true); //Harass Config.AddSubMenu(new Menu("骚扰", "harass")); Config.SubMenu("harass").AddItem(new MenuItem("harassTower", "塔下骚扰")).SetValue(false); Config.SubMenu("harass").AddItem(new MenuItem("harassOn", "骚扰敌人")).SetValue(true); Config.SubMenu("harass").AddItem(new MenuItem("harQ3Only", "只使Q3")).SetValue(false); //Drawings Config.AddSubMenu(new Menu("范围", "drawing")); Config.SubMenu("drawing").AddItem(new MenuItem("disDraw", "全部关闭")).SetValue(false); Config.SubMenu("drawing").AddItem(new MenuItem("drawQ", "Q范围")).SetValue(true); Config.SubMenu("drawing").AddItem(new MenuItem("drawE", "E范围")).SetValue(true); Config.SubMenu("drawing").AddItem(new MenuItem("drawR", "R范围")).SetValue(true); Config.SubMenu("drawing").AddItem(new MenuItem("drawWJ", "显示可穿越的墙")).SetValue(true); //Extra Config.AddSubMenu(new Menu("额外", "extra")); Config.SubMenu("extra").AddItem(new MenuItem("djTur", "不要跳进塔")).SetValue(true); Config.SubMenu("extra").AddItem(new MenuItem("autoLevel", "自动加点")).SetValue(true); Config.SubMenu("extra").AddItem(new MenuItem("levUpSeq", "")).SetValue(new StringList(new string[2] { "Q E W Q start", "Q E Q W start" })); //LastHit Config.AddSubMenu(new Menu("风墙", "aShots")); //SmartW Config.SubMenu("aShots").AddItem(new MenuItem("smartW", "只能使用W")).SetValue(true); Config.SubMenu("aShots").AddItem(new MenuItem("smartEDogue", "E 使用dogue")).SetValue(true); Config.SubMenu("aShots").AddItem(new MenuItem("wwDanger", "WW 只躲危险技能")).SetValue(false); Config.SubMenu("aShots").AddItem(new MenuItem("wwDmg", "触发WW 血量低于")).SetValue(new Slider(0, 100, 1)); skillShotMenu = getSkilshotMenu(); Config.SubMenu("aShots").AddSubMenu(skillShotMenu); //Debug Config.AddSubMenu(new Menu("调试", "debug")); Config.SubMenu("debug").AddItem(new MenuItem("WWLast", "Print last ww blocked")).SetValue(new KeyBind('T', KeyBindType.Press, false)); Config.SubMenu("debug").AddItem(new MenuItem("saveDash", "saveDashd")).SetValue(new KeyBind('O', KeyBindType.Press, false)); Config.SubMenu("debug").AddItem(new MenuItem("exportDash", "export dashes")).SetValue(new KeyBind('P', KeyBindType.Press, false)); Config.SubMenu("debug").AddItem(new MenuItem("deleteDash", "deleteLastDash")).SetValue(new KeyBind('I', KeyBindType.Press, false)); Config.AddSubMenu(new Menu("無為汉化", "by wuwei")); Config.SubMenu("by wuwei").AddItem(new MenuItem("qunhao", "汉化群:386289593")); Config.SubMenu("by wuwei").AddItem(new MenuItem("qunhao2", "娃娃群:158994507")); Config.AddToMainMenu(); Drawing.OnDraw += onDraw; Game.OnGameUpdate += OnGameUpdate; GameObject.OnCreate += OnCreateObject; GameObject.OnDelete += OnDeleteObject; Obj_AI_Base.OnProcessSpellCast += OnProcessSpell; CustomEvents.Unit.OnLevelUp += OnLevelUp; Game.OnGameSendPacket += OnGameSendPacket; Game.OnGameProcessPacket += OnGameProcessPacket; SkillshotDetector.OnDetectSkillshot += OnDetectSkillshot; SkillshotDetector.OnDeleteMissile += OnDeleteMissile; } catch { Game.PrintChat("Oops. Something went wrong with Yasuo - Sharpino"); } }
private static void LogicW() { var t = TargetSelector.GetTarget(W.Range, DamageType.Physical); if (t.LSIsValidTarget()) { var wDmg = GetWdmg(t); if (wDmg > t.Health - OktwCommon.GetIncomingDamage(t)) { Program.CastSpell(W, t); } if (getCheckBoxItem(wMenu, "autoWcombo") && !Program.Combo) { return; } if (Player.LSCountEnemiesInRange(400) > 1 || Player.LSCountEnemiesInRange(250) > 0) { return; } if (t.HasBuff("jhinespotteddebuff") || !getCheckBoxItem(wMenu, "Wstun")) { if (Player.LSDistance(t) < getSliderItem(wMenu, "MaxRangeW")) { if (Program.Combo && Player.Mana > RMANA + WMANA) { Program.CastSpell(W, t); } else if (Program.Farm && getCheckBoxItem(wMenu, "harrasW") && getCheckBoxItem(harassMenu, "harras" + t.ChampionName) && Player.Mana > RMANA + WMANA + QMANA + WMANA && OktwCommon.CanHarras()) { Program.CastSpell(W, t); } } } if (!Program.None && Player.Mana > RMANA + WMANA) { if (getCheckBoxItem(wMenu, "Waoe")) { W.CastIfWillHit(t, 2); } if (getCheckBoxItem(wMenu, "autoWcc") && !Program.Combo) { foreach (var enemy in Program.Enemies.Where(enemy => enemy.LSIsValidTarget(W.Range) && (!OktwCommon.CanMove(enemy) || enemy.HasBuff("jhinespotteddebuff")))) { if (!OktwCommon.CanMove(enemy) && !enemy.CanMove) { W.Cast(enemy); } if (enemy.HasBuff("jhinespotteddebuff")) { Program.CastSpell(W, enemy); } } } } } if (Program.LaneClear && Player.ManaPercent > getSliderItem(farmMenu, "Mana") && getCheckBoxItem(farmMenu, "farmW") && Player.Mana > RMANA + WMANA) { var minionList = Cache.GetMinions(Player.ServerPosition, W.Range); var farmPosition = W.GetLineFarmLocation(minionList, W.Width); if (farmPosition.MinionsHit >= getSliderItem(farmMenu, "LCminions")) { W.Cast(farmPosition.Position); } } }
public override void Execute() { if (!SpellManager.ShouldCast(false)) { return; } const int range = 1100; const float hitchance = 56f; const float aoeratio = 0.2f; var enemies = EntityManager.Heroes.Enemies.Where(n => n.IsValidTarget(range)); var selectedTarget = TargetSelector.GetTarget(range, DamageType.Magical); var allTargets = new[] { selectedTarget }.Concat( enemies.Where(n => n.Index != selectedTarget.Index) .OrderByDescending(n => Damage.TotalDamage(SpellSlot.Q, n) / n.Health)).Where(n => n.IsValidTarget() && !n.WillDie()); if (selectedTarget == null && !enemies.Any()) { return; } #region Killsteal logic var ksQ = Config.Menu["ksQ"].Cast <CheckBox>().CurrentValue&& Player.CanUseSpell(SpellSlot.Q) == SpellState.Ready; var ksW = Config.Menu["ksW"].Cast <CheckBox>().CurrentValue&& Player.CanUseSpell(SpellSlot.W) == SpellState.Ready; var ksE = Config.Menu["ksE"].Cast <CheckBox>().CurrentValue&& Player.CanUseSpell(SpellSlot.E) == SpellState.Ready; var ksR = Config.Menu["ksR"].Cast <CheckBox>().CurrentValue&& Player.CanUseSpell(SpellSlot.R) == SpellState.Ready; foreach (var enemy in allTargets) { if (ksE && Player.Instance.IsInRange(enemy, E.Range) && enemy.Killable(SpellSlot.E)) { E.Cast(enemy); return; } if (ksW && Player.Instance.IsInRange(enemy, W.Range + W.Radius) && enemy.Killable(SpellSlot.W)) { var prediction = W.GetPrediction(enemy); if (prediction.HitChancePercent >= hitchance) { W.Cast(prediction.CastPosition); return; } } if (ksQ && Player.Instance.IsInRange(enemy, Q.Range) && enemy.Killable(SpellSlot.Q)) { var prediction = Q.GetPrediction(enemy); if (prediction.HitChancePercent >= hitchance) { Q.Cast(prediction.CastPosition); return; } } if (ksR && Player.Instance.IsInRange(enemy, R.Range) && enemy.Killable(SpellSlot.R)) { R.Cast(enemy); return; } } #endregion #region Combo logic var useQ = Config.Menu["comboQ"].Cast <CheckBox>().CurrentValue&& Player.CanUseSpell(SpellSlot.Q) == SpellState.Ready; var useW = Config.Menu["comboW"].Cast <CheckBox>().CurrentValue&& Player.CanUseSpell(SpellSlot.W) == SpellState.Ready; var useE = Config.Menu["comboE"].Cast <CheckBox>().CurrentValue&& Player.CanUseSpell(SpellSlot.E) == SpellState.Ready; var useR = Config.Menu["comboR"].Cast <CheckBox>().CurrentValue&& Player.CanUseSpell(SpellSlot.R) == SpellState.Ready; // check for AOE then single target burst // check W first if (enemies.Count() > 1) { if (useW) { var aoePrediction = Prediction.Position.PredictCircularMissileAoe(enemies.Cast <Obj_AI_Base>().ToArray(), W.Range, W.Radius, W.CastDelay, W.Speed) .OrderByDescending(r => r.GetCollisionObjects <Obj_AI_Minion>().Length) .FirstOrDefault(); if (aoePrediction != null) { var predictedHeroes = aoePrediction.GetCollisionObjects <AIHeroClient>(); if (predictedHeroes.Length > 1 && (float)predictedHeroes.Length / enemies.Count() >= aoeratio) { W.Cast(aoePrediction.CastPosition); return; } } } // check E next if (useE) { var enemyE = enemies.Where(n => n.IsValidTarget(E.Range) && n.IsBlazed()) .OrderByDescending(n => n.CountEnemiesInRange(SpellManager.ConflagrationSpreadRange)) .FirstOrDefault(); if (enemyE != null && enemyE.CountEnemiesInRange(SpellManager.ConflagrationSpreadRange) > 1) { E.Cast(enemyE); return; } } } // single target burst if (useE) { var targets = allTargets.Where(n => Player.Instance.IsInRange(n, E.Range)); foreach (var target in targets) { E.Cast(target); return; } } if (useW) { foreach (var target in allTargets) { if (W.Cast(target)) { return; } } } if (useQ) { foreach (var target in allTargets.Where(n => n.IsBlazed())) { if (Q.Cast(target)) { return; } } } if (useR) { var bestTarget = allTargets.Where(n => Player.Instance.IsInRange(n, R.Range)) .OrderByDescending(n => n.CountEnemiesInRange(SpellManager.PyroclasmSpreadRange)) .FirstOrDefault(); if (bestTarget != null && bestTarget.CountEnemiesInRange(SpellManager.PyroclasmSpreadRange) >= Config.Menu["minEnemiesR"].Cast <Slider>().CurrentValue) { if ((!useW && !useE || bestTarget.IsBlazed())) { R.Cast(bestTarget); } } } #endregion }
private static Obj_AI_Hero GetEnemy(float vDefaultRange = 0, TargetSelector.DamageType vDefaultDamageType = TargetSelector.DamageType.Magical) { if (Math.Abs(vDefaultRange) < 0.00001) vDefaultRange = Q.Range; if (!Config.Item("AssassinActive").GetValue<bool>()) return TargetSelector.GetTarget(vDefaultRange, vDefaultDamageType); var assassinRange = Config.Item("AssassinSearchRange").GetValue<Slider>().Value; var vEnemy = ObjectManager.Get<Obj_AI_Hero>() .Where( enemy => enemy.Team != ObjectManager.Player.Team && !enemy.IsDead && enemy.IsVisible && Config.Item("Assassin" + enemy.ChampionName) != null && Config.Item("Assassin" + enemy.ChampionName).GetValue<bool>() && ObjectManager.Player.Distance(enemy) < assassinRange); if (Config.Item("AssassinSelectOption").GetValue<StringList>().SelectedIndex == 1) { vEnemy = (from vEn in vEnemy select vEn).OrderByDescending(vEn => vEn.MaxHealth); } Obj_AI_Hero[] objAiHeroes = vEnemy as Obj_AI_Hero[] ?? vEnemy.ToArray(); Obj_AI_Hero t = !objAiHeroes.Any() ? TargetSelector.GetTarget(vDefaultRange, vDefaultDamageType) : objAiHeroes[0]; return t; }
private static void LogicE() { if (getCheckBoxItem(eMenu, "autoE")) { var trapPos = OktwCommon.GetTrapPos(E.Range); if (!trapPos.IsZero) { E.Cast(trapPos); } foreach (var enemy in Program.Enemies.Where(enemy => enemy.LSIsValidTarget(E.Range) && !OktwCommon.CanMove(enemy))) { E.Cast(enemy); } } var t = TargetSelector.GetTarget(E.Range, DamageType.Physical); if (t.LSIsValidTarget() && getBoxItem(eMenu, "EmodeCombo") != 2) { if (Program.Combo && !Player.Spellbook.IsAutoAttacking) { if (getBoxItem(eMenu, "EmodeCombo") == 1) { if (E.GetPrediction(t).CastPosition.LSDistance(t.Position) > 100) { if (Player.Position.LSDistance(t.ServerPosition) > Player.Position.LSDistance(t.Position)) { if (t.Position.LSDistance(Player.ServerPosition) < t.Position.LSDistance(Player.Position)) { Program.CastSpell(E, t); } } else { if (t.Position.LSDistance(Player.ServerPosition) > t.Position.LSDistance(Player.Position)) { Program.CastSpell(E, t); } } } } else { Program.CastSpell(E, t); } } E.CastIfWillHit(t, getSliderItem(eMenu, "Eaoe")); } else if (Program.LaneClear && Player.ManaPercent > getSliderItem(farmMenu, "Mana") && getCheckBoxItem(farmMenu, "farmE")) { var minionList = Cache.GetMinions(Player.ServerPosition, E.Range); var farmPosition = E.GetCircularFarmLocation(minionList, E.Width); if (farmPosition.MinionsHit >= getSliderItem(farmMenu, "LCminions")) { E.Cast(farmPosition.Position); } } }
private static void OnGameUpdate(EventArgs args) { try { Yasuo.Q.SetSkillshot(Yasuo.getNewQSpeed(), 50f, float.MaxValue, false, SkillshotType.SkillshotLine); if (Yasuo.startDash + 475000 / ((700 + Yasuo.Player.MoveSpeed)) < Environment.TickCount && Yasuo.isDashigPro) { Yasuo.isDashigPro = false; } //updateSkillshots(); //Remove the detected skillshots that have expired. DetectedSkillshots.RemoveAll(skillshot => !skillshot.IsActive()); Obj_AI_Hero target = TargetSelector.GetTarget((Yasuo.E.IsReady()) ? 1500 : 475, TargetSelector.DamageType.Physical); if (Orbwalker.ActiveMode.ToString() == "Combo") { Yasuo.doCombo(target); } if (Orbwalker.ActiveMode.ToString() == "LastHit") { Yasuo.doLastHit(target); Yasuo.useQSmart(target); } if (Orbwalker.ActiveMode.ToString() == "Mixed") { Yasuo.doLastHit(target); Yasuo.useQSmart(target); } if (Orbwalker.ActiveMode.ToString() == "LaneClear") { Yasuo.doLaneClear(target); } if (Config.Item("flee").GetValue <KeyBind>().Active) { Yasuo.fleeToMouse(); } if (Config.Item("saveDash").GetValue <KeyBind>().Active&& canSave) { Yasuo.saveLastDash(); canSave = false; } else { canSave = true; } if (Config.Item("deleteDash").GetValue <KeyBind>().Active&& canDelete) { if (Yasuo.dashes.Count > 0) { Yasuo.dashes.RemoveAt(Yasuo.dashes.Count - 1); } canDelete = false; } else { canDelete = true; } if (Config.Item("exportDash").GetValue <KeyBind>().Active&& canExport) { using (var file = new System.IO.StreamWriter(@"C:\YasuoDashes.txt")) { foreach (var dash in Yasuo.dashes) { string dashS = "dashes.Add(new YasDash(new Vector3(" + dash.from.X.ToString("0.00").Replace(',', '.') + "f," + dash.from.Y.ToString("0.00").Replace(',', '.') + "f," + dash.from.Z.ToString("0.00").Replace(',', '.') + "f),new Vector3(" + dash.to.X.ToString("0.00").Replace(',', '.') + "f," + dash.to.Y.ToString("0.00").Replace(',', '.') + "f," + dash.to.Z.ToString("0.00").Replace(',', '.') + "f)));"; //new YasDash(new Vector3(X,Y,Z),new Vector3(X,Y,Z)) file.WriteLine(dashS); } file.Close(); } canExport = false; } else { canExport = true; } if (Config.Item("WWLast").GetValue <KeyBind>().Active) { Console.WriteLine("Last WW skill blocked: " + lastSpell); Game.PrintChat("Last WW skill blocked: " + lastSpell); } if (Config.Item("harassOn").GetValue <bool>() && Orbwalker.ActiveMode.ToString() == "None") { if (target != null) { Yasuo.useQSmart(target, Config.Item("harQ3Only").GetValue <bool>()); } } foreach (var mis in DetectedSkillshots) { Yasuo.useWSmart(mis); if (Config.Item("smartEDogue").GetValue <bool>() && !Yasuo.isSafePoint(Yasuo.Player.Position.To2D()).IsSafe) { Yasuo.useEtoSafe(mis); } } } catch (Exception ex) { Console.WriteLine(ex); } }
public ActivationContext(Player controller, Card card, TargetSelector selector) { Controller =controller; Card = card; Selector = selector; }