예제 #1
0
        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);
        }
예제 #2
0
 public static bool IsReady(this Spell2 spell, int t = 0)
 {
     return(IsReady(spell.Instance, t));
 }
예제 #3
0
        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;
        }
예제 #4
0
        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;
        }