예제 #1
0
        private static void Harass()
        {
            var t = AssassinManager.GetTarget(Q.Range, TargetSelector.DamageType.Physical);

            if (!t.IsValidTarget())
            {
                return;
            }

            var useQ = Config.Item("UseQHarass").GetValue <bool>();
            var useE = Config.Item("UseEHarass").GetValue <bool>();

            var useQDontUnderTurret = Config.Item("UseQHarassDontUnderTurret").GetValue <bool>();

            if (Q.IsReady() && useQ)
            {
                if (useQDontUnderTurret)
                {
                    if (!t.UnderTurret())
                    {
                        Q.Cast(t);
                    }
                }
                else
                {
                    Q.Cast(t);
                }
            }

            if (E.IsReady() && useE)
            {
                E.Cast();
            }
        }
예제 #2
0
        private static void ComboFlashQ()
        {
            ObjectManager.Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos);
            var t = AssassinManager.GetTarget(Q.Range + FlashRange - 20, TargetSelector.DamageType.Physical);

            if (!t.IsValidTarget())
            {
                return;
            }

            if (Player.Distance(t) > Q.Range)
            {
                if (FlashSlot != SpellSlot.Unknown && Player.Spellbook.CanUseSpell(FlashSlot) == SpellState.Ready)
                {
                    if (Q.IsCharging && Q.Range >= Q.ChargedMaxRange)
                    {
                        Player.Spellbook.CastSpell(FlashSlot, t.ServerPosition);
                        Q.Cast(t.ServerPosition);
                    }
                    else
                    {
                        Q.StartCharging();
                    }
                }
            }
        }
예제 #3
0
        public static void Game_OnProcessSpell(Obj_AI_Base unit, GameObjectProcessSpellCastEventArgs spell)
        {
            if (!unit.IsMe)
            {
                return;
            }

            var t = AssassinManager.GetTarget(Orbwalking.GetRealAutoAttackRange(Player) + 65, TargetSelector.DamageType.Physical);

            if (!t.IsValidTarget())
            {
                return;
            }

            foreach (var xbuff in t.Buffs)
            {
                canUseE = !xbuff.Name.Contains("viq") && !xbuff.Name.Contains("knock");
            }

            var useE = canUseE && E.IsReady();

            if (useE)
            {
                E.Cast(true);
            }
        }
예제 #4
0
        private static void UseSpells()
        {
            var t = AssassinManager.GetTarget(Program.Q.Range, TargetSelector.DamageType.Magical);

            if (!t.IsValidTarget())
            {
                return;
            }

            if (SmiteSlot != SpellSlot.Unknown &&
                Program.Player.Spellbook.CanUseSpell(SmiteSlot) == SpellState.Ready)
            {
                SmiteOnTarget(t);
            }

            if (IgniteSlot != SpellSlot.Unknown &&
                Program.Player.Spellbook.CanUseSpell(IgniteSlot) == SpellState.Ready)
            {
                IgniteOnTarget(t);
            }
        }
예제 #5
0
        private static void Game_OnLoad(EventArgs args)
        {
            if (Player.ChampionName != "Vi")
            {
                return;
            }

            Q  = new Spell(SpellSlot.Q, 860f);
            E  = new Spell(SpellSlot.E);
            E2 = new Spell(SpellSlot.E, 600f);
            R  = new Spell(SpellSlot.R, 800f);

            Q.SetSkillshot(0.5f, 75f, float.MaxValue, false, SkillshotType.SkillshotLine);
            Q.SetCharged("ViQ", "ViQ", 100, 860, 1f);

            E.SetSkillshot(0.15f, 150f, float.MaxValue, false, SkillshotType.SkillshotLine);
            R.SetTargetted(0.15f, 1500f);

            SpellList.Add(Q);
            SpellList.Add(E);
            SpellList.Add(R);

            FlashSlot = Player.GetSpellSlot("SummonerFlash");

            ItemBilge  = new Items.Item(3144, 450f);
            ItemBlade  = new Items.Item(3153, 450f);
            ItemHydra  = new Items.Item(3074, 250f);
            ItemLotis  = new Items.Item(3190, 590f);
            ItemRand   = new Items.Item(3143, 490f);
            ItemTiamat = new Items.Item(3077, 250f);

            //Create the menu
            Config = new Menu("xQx | Vi", "Vi", true);

            var targetSelectorMenu = new Menu("Target Selector", "Target Selector");

            TargetSelector.AddToMenu(targetSelectorMenu);
            Config.AddSubMenu(targetSelectorMenu);
            AssassinManager.Initiliaze();

            Config.AddSubMenu(new Menu("Orbwalking", "Orbwalking"));
            Orbwalker = new Orbwalking.Orbwalker(Config.SubMenu("Orbwalking"));
            Orbwalker.SetAttack(true);

            // Combo
            Config.AddSubMenu(new Menu("Combo", "Combo"));

            /* [ Don't Use Ult ] */
            Config.SubMenu("Combo").AddSubMenu(new Menu("Don't use Ult on", "DontUlt"));
            foreach (var enemy in ObjectManager.Get <Obj_AI_Hero>().Where(enemy => enemy.Team != Player.Team))
            {
                Config.SubMenu("Combo")
                .SubMenu("DontUlt")
                .AddItem(new MenuItem("DontUlt" + enemy.CharData.BaseSkinName, enemy.CharData.BaseSkinName).SetValue(false));
            }
            PlayerSpells.Initialize();

            /* [ Find Him in Team Fight ] */
            Config.SubMenu("Combo").AddSubMenu(new Menu("Focus in TF", "FindHim"));
            Config.SubMenu("Combo")
            .SubMenu("FindHim")
            .AddItem(new MenuItem("ForceFocusActive", "Force Focus Active").SetValue(false));

            foreach (var enemy in ObjectManager.Get <Obj_AI_Hero>().Where(enemy => enemy.Team != Player.Team))
            {
                Config.SubMenu("Combo")
                .SubMenu("FindHim")
                .AddItem(new MenuItem("FindHim" + enemy.CharData.BaseSkinName, enemy.CharData.BaseSkinName).SetValue(false));
            }

            Config.SubMenu("Combo")
            .AddItem(
                new MenuItem("ComboFlashQActive", "Combo Flash+Q!").SetValue(
                    new KeyBind("T".ToCharArray()[0], KeyBindType.Press)));
            Config.SubMenu("Combo")
            .AddItem(
                new MenuItem("ComboActive", "Combo!").SetValue(
                    new KeyBind(Config.Item("Orbwalk").GetValue <KeyBind>().Key, KeyBindType.Press)));

            // Harass
            Config.AddSubMenu(new Menu("Harass", "Harass"));
            Menu harassUseQ = new Menu("Q Settings", "harassUseQ");

            Config.SubMenu("Harass").AddSubMenu(harassUseQ);
            harassUseQ.AddItem(new MenuItem("UseQHarass", "Use Q").SetValue(true));
            harassUseQ.AddItem(new MenuItem("UseQHarassDontUnderTurret", "Don't Under Turret Q").SetValue(true));
            Config.SubMenu("Harass").AddItem(new MenuItem("UseEHarass", "Use E").SetValue(true));
            Config.SubMenu("Harass")
            .AddItem(new MenuItem("HarassMana", "Min. Mana 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("UseQLaneClear", "Use Q").SetValue(false));
            Config.SubMenu("LaneClear").AddItem(new MenuItem("UseELaneClear", "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("UseQJungleFarm", "Use Q").SetValue(true));
            Config.SubMenu("JungleFarm").AddItem(new MenuItem("UseEJungleFarm", "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)));

            var menuRun = new Menu("Flee", "Flee");

            {
                menuRun.AddItem(
                    new MenuItem("FleeActive", "Flee!").SetValue(new KeyBind("A".ToCharArray()[0], KeyBindType.Press)));
                Config.AddSubMenu(menuRun);
            }

            // Extras -> Use Items
            MenuExtras = new Menu("Extras", "Extras");
            Config.AddSubMenu(MenuExtras);
            MenuExtras.AddItem(new MenuItem("InterruptSpells", "Interrupt Spells").SetValue(true));

            Menu menuUseItems = new Menu("Use Items", "menuUseItems");

            Config.SubMenu("Extras").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("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("item3143", "Randuin's Omen").SetValue(true));
            _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("item3077", "Tiamat ").SetValue(true));
            _menuNonTargetedItems.AddItem(new MenuItem("item3142", "Youmuu's Ghostblade").SetValue(true));

            // Drawing
            Config.AddSubMenu(new Menu("Drawings", "Drawings"));
            Config.SubMenu("Drawings")
            .AddItem(
                new MenuItem("QRange", "Q Range").SetValue(
                    new Circle(true, System.Drawing.Color.FromArgb(255, 255, 255, 255))));
            Config.SubMenu("Drawings")
            .AddItem(
                new MenuItem("ERange", "E Range").SetValue(
                    new Circle(false, System.Drawing.Color.FromArgb(255, 255, 255, 255))));
            Config.SubMenu("Drawings")
            .AddItem(
                new MenuItem("RRange", "R Range").SetValue(
                    new Circle(false, System.Drawing.Color.FromArgb(255, 255, 255, 255))));
            Config.SubMenu("Drawings")
            .AddItem(
                new MenuItem("FQRange", "Flash+Q Range").SetValue(
                    new Circle(false, System.Drawing.Color.FromArgb(0xFF, 0xCC, 0x00))));

            new PotionManager();
            Config.AddToMainMenu();

            Utility.HpBarDamageIndicator.DamageToUnit = GetComboDamage;
            Utility.HpBarDamageIndicator.Enabled      = true;
            Game.OnUpdate  += Game_OnUpdate;
            Drawing.OnDraw += Drawing_OnDraw;
            Interrupter2.OnInterruptableTarget += Interrupter2_OnInterruptableTarget;
            Obj_AI_Base.OnProcessSpellCast     += Game_OnProcessSpell;

            Notifications.AddNotification("xQx | Vi Loaded!", 4000);
        }
예제 #6
0
        private static void Combo()
        {
            var t = AssassinManager.GetTarget(Q.Range, TargetSelector.DamageType.Physical);

            if (!t.IsValidTarget())
            {
                return;
            }

            if (t.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65) && shennBuffActive)
            {
                return;
            }

            var comboDamage = GetComboDamage(t);

            if (Q.IsReady() && t.IsValidTarget(Q.Range))
            {
                if (Q.IsCharging)
                {
                    Q.Cast(t);
                }
                else
                {
                    Q.StartCharging();
                }
            }

            if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
            {
                UseItems(t);
            }


            if (R.IsReady())
            {
                var useR = (Config.Item("DontUlt" + t.CharData.BaseSkinName) != null &&
                            Config.Item("DontUlt" + t.CharData.BaseSkinName).GetValue <bool>() == false);

                var qDamage = Player.GetSpellDamage(t, SpellSlot.Q);
                var eDamage = Player.GetSpellDamage(t, SpellSlot.E) * E.Instance.Ammo;
                var rDamage = Player.GetSpellDamage(t, SpellSlot.R);

                if (Q.IsReady() && t.Health < qDamage)
                {
                    return;
                }

                if (E.IsReady() && Orbwalking.InAutoAttackRange(t) && t.Health < eDamage)
                {
                    return;
                }

                if (Q.IsReady() && E.IsReady() && t.Health < qDamage + eDamage)
                {
                    return;
                }

                if (useR)
                {
                    if (t.Health > rDamage)
                    {
                        if (Q.IsReady() && E.IsReady() && t.Health < rDamage + qDamage + eDamage)
                        {
                            R.CastOnUnit(t);
                        }
                        else if (E.IsReady() && t.Health < rDamage + eDamage)
                        {
                            R.CastOnUnit(t);
                        }
                        else if (Q.IsReady() && t.Health < rDamage + qDamage)
                        {
                            R.CastOnUnit(t);
                        }
                    }
                    else
                    {
                        if (!Orbwalking.InAutoAttackRange(t))
                        {
                            R.CastOnUnit(t);
                        }
                    }
                }
            }
        }