public static AIHeroClient GetTargetNoCollision(Spell2 spell, bool ignoreShield = true, IEnumerable <AIHeroClient> ignoredChamps = null, Vector3?rangeCheckFrom = null) { var t = GetTarget(ObjectManager.Player, spell.Range, spell.DamageType, ignoreShield, ignoredChamps, rangeCheckFrom); if (spell.Collision && spell.GetPrediction(t).Hitchance != HitChance.Collision) { return(t); } return(null); }
public static bool IsReady(this Spell2 spell, int t = 0) { return(IsReady(spell.Instance, t)); }
public static void Loading_OnLoadingComplete(EventArgs args) { if (myHero.Hero != Champion.Vayne) { return; } Chat.Print("<font color=\"#F20000\"><b>Doctor Vayne:</b></font> Loaded!"); Chat.Print("Good Luck!"); Q = new Spell2(SpellSlot.Q); W = new Spell2(SpellSlot.W); E = new Spell2(SpellSlot.E, 590f); E.SetTargetted(0.25f, 2200f); R = new Spell2(SpellSlot.R); var slot = myHero.GetSpellSlotFromName("summonerheal"); if (slot != SpellSlot.Unknown) { Heal = new Spell.Active(slot, 600); } menu = MainMenu.AddMenu(AddonName, AddonName + " by " + Author + " v1.0"); menu.AddLabel(AddonName + " Doctor Vayne " + Author); menu.AddLabel("Good Luck!"); SubMenu["Combo"] = menu.AddSubMenu("Combo", "Combo"); SubMenu["Combo"].AddGroupLabel("Tumble Setting"); SubMenu["Combo"].Add("Q", new CheckBox("Use Q", true)); SubMenu["Combo"].Add("Qult", new CheckBox("Smart Q Ult", true)); var Q1 = SubMenu["Combo"].Add("Qmode", new Slider("Tumble Mode", 0, 0, 1)); var Q2 = new[] { "Smart", "To MousePos" }; Q1.DisplayName = Q2[Q1.CurrentValue]; Q1.OnValueChange += delegate (ValueBase<int> sender, ValueBase<int>.ValueChangeArgs changeArgs) { sender.DisplayName = Q2[changeArgs.NewValue]; }; SubMenu["Combo"].AddSeparator(10); SubMenu["Combo"].Add("E", new CheckBox("Use E", true)); SubMenu["Combo"].Add("ELast", new CheckBox("Use E Secure Kill", false)); SubMenu["Combo"].Add("PushDistance", new Slider("E Push Distance", 310, 300, 380)); SubMenu["Combo"].Add("R", new CheckBox("Use R", true)); SubMenu["Combo"].Add("R2", new Slider("Enemy In Range", 2, 0, 5)); SubMenu["Combo"].Add("noaastealth", new CheckBox("No AA while stealth", true)); SubMenu["Combo"].Add("noaastealth2", new Slider("Enemy In Range", 2, 0, 5)); SubMenu["Combo"].AddSeparator(10); SubMenu["Combo"].AddGroupLabel("Item Settings"); SubMenu["Combo"].Add("useItems", new CheckBox("Use Items", true)); SubMenu["Combo"].Add("myhp", new Slider("Use BOTRK if my HP < %", 55, 0, 100)); SubMenu["Harass"] = menu.AddSubMenu("Harass", "Harass"); SubMenu["Harass"].Add("Q", new CheckBox("Use Q", true)); SubMenu["Harass"].Add("E", new CheckBox("Use E", true)); SubMenu["LastHit"] = menu.AddSubMenu("LastHit", "LastHit"); SubMenu["LastHit"].Add("Q", new CheckBox("Use Q", true)); SubMenu["LastHit"].Add("LastHitMana", new Slider("Mana >=", 80, 0, 100)); SubMenu["LaneClear"] = menu.AddSubMenu("LaneClear", "LaneClear"); SubMenu["LaneClear"].Add("Q", new CheckBox("Use Q", true)); SubMenu["LaneClear"].Add("LaneClearMana", new Slider("Mana >=", 85, 0, 100)); SubMenu["JungleClear"] = menu.AddSubMenu("JungleClear", "JungleClear"); SubMenu["JungleClear"].Add("E", new CheckBox("Use E", true)); SubMenu["JungleClear"].Add("JungleClearMana", new Slider("Mana >=", 50, 0, 100)); SubMenu["Misc"] = menu.AddSubMenu("Misc", "Misc"); SubMenu["Misc"].AddGroupLabel("AntiGapcloser/Interrupt Settings"); SubMenu["Misc"].Add("UseEInterrupt", new CheckBox("Use E to Interrupt/Antigapcloser", true)); SubMenu["Misc"].Add("AntiGapQ", new CheckBox("Use Q Antigapcloser", true)); SubMenu["Misc"].AddSeparator(10); foreach (var hero in EntityManager.Heroes.Enemies.Where(x => x.IsEnemy)) { SubMenu["Misc"].Add(hero.ChampionName, new CheckBox("Use Interrupt/Antigapcloser to " + hero.ChampionName, true)); } SubMenu["Misc"].AddSeparator(10); foreach (var enemy in EntityManager.Heroes.Enemies.Where(x => x.IsEnemy)) { SubMenu["Misc"].Add(enemy.ChampionName + "E", new CheckBox("Use Condemn if target is " + enemy.ChampionName, true)); } SubMenu["Misc"].AddSeparator(10); SubMenu["Misc"].AddGroupLabel("Focus W Target"); SubMenu["Misc"].Add("focusW", new CheckBox("Focus Target with W Buff to proc passive", true)); SubMenu["Misc"].Add("waypoint", new CheckBox("Draw Target Waypoint", true)); SubMenu["Misc"].AddSeparator(10); SubMenu["Misc"].AddGroupLabel("Heal Settings"); SubMenu["Misc"].Add("heal", new CheckBox("Use SummonerHeal", true)); SubMenu["Misc"].Add("hp", new Slider("HP <=", 25, 0, 100)); SubMenu["QSS"] = menu.AddSubMenu("Auto QSS/Mercurial", "QSS"); SubMenu["QSS"].AddGroupLabel("Auto QSS/Mercurial Settings"); SubMenu["QSS"].Add("use", new KeyBind("Use QSS/Mercurial", false, KeyBind.BindTypes.PressToggle, 'K')); SubMenu["QSS"].Add("delay", new Slider("Activation Delay", 1000, 0, 2000)); buffs = new[] { BuffType.Blind, BuffType.Charm, BuffType.CombatDehancer, BuffType.Fear, BuffType.Flee, BuffType.Knockback, BuffType.Knockup, BuffType.Polymorph, BuffType.Silence, BuffType.Sleep, BuffType.Snare, BuffType.Stun, BuffType.Suppression, BuffType.Taunt, BuffType.Poison }; for (int i = 0; i < buffs.Length; i++) { SubMenu["QSS"].Add(buffs[i].ToString(), new CheckBox(buffs[i].ToString(), true)); } orbwalker = new Orbwalking.Orbwalker(menu); TargetSelector2.Initialize(); Spell2.Initialize(); Prediction2.Initialize(); _traps = new List<GameObject>(); Obj_AI_Base.OnProcessSpellCast += Obj_AI_Base_OnProcessSpellCast; Game.OnUpdate += Game_OnUpdate; Obj_AI_Base.OnSpellCast += Obj_AI_Base_OnSpellCast; Obj_AI_Base.OnCreate += Obj_AI_Base_OnCreate; Obj_AI_Base.OnDelete += Obj_AI_Base_OnDelete; Orbwalking.AfterAttack += Orbwalking_AfterAttack; Interrupter2.OnInterruptableTarget += Interrupter2_OnInterruptableTarget; AntiGapcloser.OnEnemyGapcloser += AntiGapcloser_OnEnemyGapcloser; Drawing.OnDraw += Drawing_OnDraw; Player.OnIssueOrder += Player_OnIssueOrder; }
public static AIHeroClient GetTargetNoCollision(Spell2 spell, bool ignoreShield = true, IEnumerable<AIHeroClient> ignoredChamps = null, Vector3? rangeCheckFrom = null) { var t = GetTarget(ObjectManager.Player, spell.Range, spell.DamageType, ignoreShield, ignoredChamps, rangeCheckFrom); if (spell.Collision && spell.GetPrediction(t).Hitchance != HitChance.Collision) { return t; } return null; }