예제 #1
0
        private static void Drawing_OnDraw(EventArgs args)
        {
            var qCircle    = Menu.Item("drawQ").GetValue <Circle>();
            var wCircle    = Menu.Item("drawW").GetValue <Circle>();
            var eCircle    = Menu.Item("drawE").GetValue <Circle>();
            var qPosCircle = Menu.Item("drawQPos").GetValue <Circle>();

            var pos = ObjectManager.Player.Position;

            if (qCircle.Active)
            {
                Utility.DrawCircle(pos, Q.Range, qCircle.Color);
            }

            if (wCircle.Active)
            {
                Utility.DrawCircle(pos, W.Range, wCircle.Color);
            }

            if (eCircle.Active)
            {
                Utility.DrawCircle(pos, E.Range, eCircle.Color);
            }

            if (qPosCircle.Active)
            {
                foreach (var enemy in ObjectManager.Get <Obj_AI_Hero>().Where(enemy => enemy.IsValidTarget()))
                {
                    Drawing.DrawLine(Drawing.WorldToScreen(enemy.Position),
                                     Drawing.WorldToScreen(ShacoUtil.GetQPos(enemy, false)), 2, qPosCircle.Color);
                }
            }
        }
예제 #2
0
        private static void Combo()
        {
            var target  = TargetSelector.GetTarget(E.Range, DamageType.Physical);
            var useQ    = comboMenu["useQ"].GetValue <MenuBool>().Enabled;
            var useW    = comboMenu["useW"].GetValue <MenuBool>().Enabled;
            var useE    = comboMenu["useE"].GetValue <MenuBool>().Enabled;
            var packets = miscMenu["usePackets"].GetValue <MenuBool>().Enabled;

            foreach (var spell in SpellList.Where(x => x.IsReady()))
            {
                if (spell.Slot == SpellSlot.Q && useQ)
                {
                    if (!target.IsValidTarget(Q.Range))
                    {
                        continue;
                    }

                    var pos = ShacoUtil.GetQPos(target, true);
                    Q.Cast(pos, packets);
                }


                if (target != null)
                {
                    if (spell.Slot == SpellSlot.R && target.IsValidTarget() && player.Distance(target) < 400 &&
                        player.HasBuff("Deceive") && comboMenu["useR"].GetValue <MenuBool>().Enabled)
                    {
                        R.Cast();
                    }
                }

                if (spell.Slot == SpellSlot.W && useW)
                {
                    //TODO: Make W based on waypoints
                    if (!target.IsValidTarget(W.Range))
                    {
                        continue;
                    }

                    var pos = ShacoUtil.GetQPos(target, true, 100);
                    W.Cast(pos, packets);
                }

                if (spell.Slot != SpellSlot.E || !useE)
                {
                    continue;
                }
                if (!target.IsValidTarget(E.Range))
                {
                    continue;
                }

                E.CastOnUnit(target);
            }
        }
예제 #3
0
        private static void Combo()
        {
            var target = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Physical);

            var useQ    = Menu.Item("useQ").GetValue <bool>();
            var useW    = Menu.Item("useW").GetValue <bool>();
            var useE    = Menu.Item("useE").GetValue <bool>();
            var packets = Menu.Item("usePackets").GetValue <bool>();

            foreach (var spell in SpellList.Where(x => x.IsReady()))
            {
                if (spell.Slot == SpellSlot.Q && useQ)
                {
                    if (!target.IsValidTarget(Q.Range))
                    {
                        continue;
                    }

                    var pos = ShacoUtil.GetQPos(target, true);
                    Q.Cast(pos, packets);
                }

                if (spell.Slot == SpellSlot.W && useW)
                {
                    //TODO: Make W based on waypoints
                    if (!target.IsValidTarget(W.Range))
                    {
                        continue;
                    }

                    var pos = ShacoUtil.GetQPos(target, true, 100);
                    W.Cast(pos, packets);
                }

                if (spell.Slot != SpellSlot.E || !useE)
                {
                    continue;
                }
                if (!target.IsValidTarget(E.Range))
                {
                    continue;
                }

                E.CastOnUnit(target);
            }
        }
예제 #4
0
        private static void Drawing_OnDraw(EventArgs args)
        {
            var qCircle    = getCheckBoxItem(drawingMenu, "drawQ");
            var wCircle    = getCheckBoxItem(drawingMenu, "drawW");
            var eCircle    = getCheckBoxItem(drawingMenu, "drawE");
            var qPosCircle = getCheckBoxItem(drawingMenu, "drawQPos");

            var pos = player.Position;

            if (qCircle)
            {
                Render.Circle.DrawCircle(pos, Q.Range, Q.IsReady() ? Color.Aqua : Color.Red);
            }

            if (wCircle)
            {
                Render.Circle.DrawCircle(pos, W.Range, W.IsReady() ? Color.Aqua : Color.Red);
            }

            if (eCircle)
            {
                Render.Circle.DrawCircle(pos, E.Range, E.IsReady() ? Color.Aqua : Color.Red);
            }

            if (!qPosCircle)
            {
                return;
            }

            foreach (var enemy in ObjectManager.Get <AIHeroClient>().Where(enemy => enemy.LSIsValidTarget()))
            {
                Drawing.DrawLine(
                    Drawing.WorldToScreen(enemy.Position), Drawing.WorldToScreen(ShacoUtil.GetQPos(enemy, false)), 2,
                    Color.Aquamarine);
            }
        }
예제 #5
0
        private static void Combo()
        {
            var target = TargetSelector.GetTarget(E.Range, DamageType.Physical);

            var useQ    = getCheckBoxItem(comboMenu, "useQ");
            var useW    = getCheckBoxItem(comboMenu, "useW");
            var useE    = getCheckBoxItem(comboMenu, "useE");
            var packets = getCheckBoxItem(miscMenu, "usePackets");

            foreach (var spell in SpellList.Where(x => x.IsReady()))
            {
                if (spell.Slot == SpellSlot.Q && useQ)
                {
                    if (!target.IsValidTarget(Q.Range))
                    {
                        continue;
                    }

                    var pos = ShacoUtil.GetQPos(target, true);
                    Q.Cast(pos, packets);
                }


                if (target != null)
                {
                    if (spell.Slot == SpellSlot.R && target.IsValidTarget() && player.LSDistance(target) < 400 &&
                        player.HasBuff("Deceive") && getCheckBoxItem(comboMenu, "useR"))
                    {
                        R.Cast();
                    }
                }

                if (spell.Slot == SpellSlot.W && useW)
                {
                    //TODO: Make W based on waypoints
                    if (!target.IsValidTarget(W.Range))
                    {
                        continue;
                    }

                    var pos = ShacoUtil.GetQPos(target, true, 100);
                    W.Cast(pos, packets);
                }

                if (spell.Slot != SpellSlot.E || !useE)
                {
                    continue;
                }
                if (!target.IsValidTarget(E.Range))
                {
                    continue;
                }

                E.CastOnUnit(target);
            }

            if (!getCheckBoxItem(comboMenu, "cloneOrb"))
            {
                return;
            }
            if (!hasClone())
            {
                return;
            }
            Obj_AI_Base clone = getClone();

            if (Environment.TickCount > cloneAct + 200)
            {
                if (target != null)
                {
                    if (clone.Spellbook.IsAutoAttacking)
                    {
                        return;
                    }
                    R.Cast(target);
                }
                else
                {
                    R.Cast(Game.CursorPos);
                }
                cloneAct = Environment.TickCount;
            }
        }