示例#1
0
        private static void OnDraw(EventArgs Args)
        {
            if (!Player.Instance.IsDead && !MenuGUI.IsChatOpen && !Chat.IsOpen)
            {
                if (MenuInit.DrawQ && Q.IsReady())
                {
                    Circle.Draw(Color.Blue, Q.Range, Player.Instance);
                }

                if (MenuInit.DrawQExtend && QExtend.IsReady())
                {
                    Circle.Draw(Color.Blue, QExtend.Range, Player.Instance);
                }

                if (MenuInit.DrawW && W.IsReady())
                {
                    Circle.Draw(Color.Yellow, W.Range, Player.Instance);
                }

                if (MenuInit.DrawE && E.IsReady())
                {
                    Circle.Draw(Color.Red, E.Range, Player.Instance);
                }

                if (MenuInit.DrawR && R.IsReady())
                {
                    Circle.Draw(Color.Blue, R.Range, Player.Instance);
                }
            }
        }
示例#2
0
        private void CastQCannon(Obj_AI_Hero target, bool useE)
        {
            var gateDis = Menu.Item("gatePlace", true).GetValue <Slider>().Value;

            var tarPred = QExtend.GetPrediction(target, true);

            if (tarPred.Hitchance >= HitChance.VeryHigh && Qcd == 0 && Ecd == 0 && useE)
            {
                var gateVector = Player.Position + Vector3.Normalize(target.ServerPosition - Player.Position) * gateDis;

                if (Player.Distance(tarPred.CastPosition) < QExtend.Range + 100)
                {
                    if (E.IsReady() && QExtend.IsReady())
                    {
                        E.Cast(gateVector);
                        QExtend.Cast(tarPred.CastPosition);
                        return;
                    }
                }
            }

            if ((Menu.Item("UseQAlways", true).GetValue <bool>() || !useE) &&
                Qcd == 0 && Q.GetPrediction(target, true).Hitchance >= HitChance.VeryHigh &&
                Player.Distance(target.ServerPosition) <= Q.Range && Q.IsReady() && Ecd != 0)
            {
                Q.Cast(target);
            }
        }
示例#3
0
        private void OnDraw(EventArgs Args)
        {
            if (!Me.IsDead && !MenuGUI.IsShopOpen && !MenuGUI.IsChatOpen && !MenuGUI.IsScoreboardOpen)
            {
                if (Menu.Item("DrawQ", true).GetValue <bool>() && Q.IsReady())
                {
                    Render.Circle.DrawCircle(Me.Position, Q.Range, Color.Green, 1);
                }

                if (Menu.Item("DrawQEx", true).GetValue <bool>() && QExtend.IsReady())
                {
                    Render.Circle.DrawCircle(Me.Position, QExtend.Range, Color.Green, 1);
                }

                if (Menu.Item("DrawW", true).GetValue <bool>() && W.IsReady())
                {
                    Render.Circle.DrawCircle(Me.Position, W.Range, Color.FromArgb(9, 253, 242), 1);
                }

                if (Menu.Item("DrawE", true).GetValue <bool>() && E.IsReady())
                {
                    Render.Circle.DrawCircle(Me.Position, E.Range, Color.FromArgb(188, 6, 248), 1);
                }

                if (Menu.Item("DrawDamage", true).GetValue <bool>())
                {
                    foreach (
                        var x in HeroManager.Enemies.Where(e => e.IsValidTarget() && !e.IsDead && !e.IsZombie))
                    {
                        HpBarDraw.Unit = x;
                        HpBarDraw.DrawDmg((float)ComboDamage(x), new ColorBGRA(255, 204, 0, 170));
                    }
                }
            }
        }
示例#4
0
        private void OnDraw(EventArgs Args)
        {
            if (!Me.IsDead && !MenuGUI.IsShopOpen && !MenuGUI.IsChatOpen && !MenuGUI.IsScoreboardOpen)
            {
                if (Menu.GetBool("DrawQ") && Q.IsReady())
                {
                    Render.Circle.DrawCircle(Me.Position, Q.Range, Color.Green, 1);
                }

                if (Menu.GetBool("DrawQEx") && QExtend.IsReady())
                {
                    Render.Circle.DrawCircle(Me.Position, QExtend.Range, Color.Green, 1);
                }

                if (Menu.GetBool("DrawW") && W.IsReady())
                {
                    Render.Circle.DrawCircle(Me.Position, W.Range, Color.FromArgb(9, 253, 242), 1);
                }

                if (Menu.GetBool("DrawE") && E.IsReady())
                {
                    Render.Circle.DrawCircle(Me.Position, E.Range, Color.FromArgb(188, 6, 248), 1);
                }
            }
        }
示例#5
0
        private static void Combo()
        {
            if (ComboOption.GetBool("ComboEDash") && E.IsReady())
            {
                var target = TargetSelector.GetTarget(Me.AttackRange + Me.BoundingRadius,
                                                      TargetSelector.DamageType.Physical);

                if (target.IsValidTarget(Me.AttackRange + Me.BoundingRadius + E.Range) &&
                    !target.IsValidTarget(Me.AttackRange + Me.BoundingRadius))
                {
                    ELogic(target, 0);
                }
            }

            if (ComboOption.GetBool("ComboQExtend") && QExtend.IsReady() && !Me.IsDashing() && !havePassive &&
                !havePassiveBuff)
            {
                var target = TargetSelector.GetTarget(QExtend.Range, TargetSelector.DamageType.Physical);

                if (target.IsValidTarget(QExtend.Range) && !target.IsValidTarget(Q.Range))
                {
                    QLogic(target);
                }
            }

            if (ComboOption.UseR && R.IsReady())
            {
                var target = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Physical);

                if (target.IsValidTarget(R.Range) && !target.IsUnKillable() && !Me.IsUnderEnemyTurret() &&
                    !target.IsValidTarget(Me.AttackRange + Me.BoundingRadius))
                {
                    if (
                        ObjectManager.Heroes.Enemies.Any(
                            x => x.NetworkId != target.NetworkId && x.Distance(target) <= 550))
                    {
                        return;
                    }

                    var rDMG = MyDamageCalculate.GetRDamage(target);

                    if (target.Health + target.HPRegenRate * 3 < rDMG)
                    {
                        if (target.DistanceToPlayer() <= 800 && target.Health < rDMG * 0.6)
                        {
                            R.Cast(target, true);
                        }
                        else if (target.DistanceToPlayer() <= 1000 && target.Health < rDMG * 0.4)
                        {
                            R.Cast(target, true);
                        }
                    }
                }
            }
        }
示例#6
0
        private static void Combo()
        {
            if (MenuInit.ComboEDash && E.IsReady())
            {
                var target = TargetSelector.GetTarget(Player.Instance.GetAutoAttackRange() + E.Range, DamageType.Physical);

                if (target.IsValidTarget(Player.Instance.GetAutoAttackRange() + E.Range) &&
                    !target.IsValidTarget(Player.Instance.GetAutoAttackRange()))
                {
                    ELogic(target, 0);
                }
            }

            if (MenuInit.ComboQExtend && QExtend.IsReady() && !Player.Instance.IsDashing() && !havePassive && !havePassiveBuff)
            {
                var target = TargetSelector.GetTarget(QExtend.Range, DamageType.Physical);

                if (target.IsValidTarget(QExtend.Range) && !target.IsValidTarget(Q.Range))
                {
                    QLogic(target);
                }
            }

            if (MenuInit.ComboR && R.IsReady())
            {
                var target = TargetSelector.GetTarget(R.Range, DamageType.Physical);

                if (target.IsValidTarget(R.Range) && !target.IsUnKillable() && !Player.Instance.IsUnderEnemyturret() &&
                    !target.IsValidTarget(Player.Instance.GetAutoAttackRange()))
                {
                    if (EntityManager.Heroes.Enemies.Any(x => x.NetworkId != target.NetworkId && x.Distance(target) <= 550))
                    {
                        return;
                    }

                    var rAmmo = new float[] { 20, 25, 30 }[Player.Instance.Spellbook.GetSpell(SpellSlot.R).Level - 1];
                    var rDMG  = DamageCalculate.GetRDamage(target) * rAmmo;

                    if (target.Health + target.HPRegenRate * 3 < rDMG)
                    {
                        if (target.DistanceToPlayer() <= 800 && target.Health < rDMG * 0.6)
                        {
                            R.Cast(target);
                            return;
                        }

                        if (target.DistanceToPlayer() <= 1000 && target.Health < rDMG * 0.4)
                        {
                            R.Cast(target);
                        }
                    }
                }
            }
        }
示例#7
0
        private static void Farm()
        {
            var range = MenuInit.HarassQExtend && QExtend.IsReady()
                ? QExtend.Range
                : MenuInit.HarassW && W.IsReady() ? W.Range : MenuInit.HarassQ && Q.IsReady() ? Q.Range : 0;

            if (ManaManager.SpellHarass && ManaManager.HasEnoughMana(MenuInit.HarassMP) && range > 0 &&
                Player.Instance.CountEnemyChampionsInRange(range) > 0)
            {
                Harass();
            }
            else if (ManaManager.SpellFarm)
            {
                if (isLaneClearMode && ManaManager.HasEnoughMana(MenuInit.LaneClearMP))
                {
                    LaneClear();
                }
            }
        }
示例#8
0
        private void Escape()
        {
            Vector3 wVec = Player.ServerPosition + Vector3.Normalize(Game.CursorPos - Player.ServerPosition) * W.Range;

            if (menu.Item("fastEscape", true).GetValue <bool>())
            {
                if (W.IsReady() || soilderCount() > 0)
                {
                    if ((E.IsReady() || ESpell.State == SpellState.Surpressed))
                    {
                        W.Cast(wVec);
                        W.LastCastAttemptT = Environment.TickCount;
                    }

                    if ((QExtend.IsReady() || QSpell.State == SpellState.Surpressed) &&
                        ((Environment.TickCount - E.LastCastAttemptT < Game.Ping + 500 &&
                          Environment.TickCount - E.LastCastAttemptT > Game.Ping + 50) || E.IsReady()))
                    {
                        if (Environment.TickCount - W.LastCastAttemptT > Game.Ping + 300 || ESpell.State == SpellState.Cooldown || !W.IsReady())
                        {
                            Vector3 qVec = Player.ServerPosition +
                                           Vector3.Normalize(Game.CursorPos - Player.ServerPosition) * 800;

                            var lastAttempt = (int)qVec.Distance(GetNearestSoilderToMouse().Position) / 1000;

                            Q.Cast(qVec, packets());
                            Q.LastCastAttemptT = Environment.TickCount + lastAttempt;
                            return;
                        }
                    }

                    if ((E.IsReady() || ESpell.State == SpellState.Surpressed))
                    {
                        if (Player.Distance(Game.CursorPos) > GetNearestSoilderToMouse().Position.Distance(Game.CursorPos) && Environment.TickCount - Q.LastCastAttemptT > Game.Ping)
                        {
                            E.Cast(GetNearestSoilderToMouse().Position, packets());
                            E.LastCastAttemptT = Environment.TickCount - 250;
                            //Game.PrintChat("Rawr2");
                            return;
                        }
                        if (Environment.TickCount - W.LastCastAttemptT < Game.Ping + 300 && (Q.IsReady() || QSpell.State == SpellState.Surpressed))
                        {
                            E.Cast(wVec, packets());
                            E.LastCastAttemptT = Environment.TickCount - 250;
                            //Game.PrintChat("Rawr1");
                        }
                    }
                }
            }
            else
            {
                if (Environment.TickCount - E.LastCastAttemptT < 250 + Game.Ping / 2 && Environment.TickCount - E.LastCastAttemptT > _delay && ESpell.State == SpellState.Cooldown && _point != Vector3.Zero)
                {
                    Q2.Cast(_vecPoint, packets());
                }

                if ((E.IsReady() || ESpell.State == SpellState.Surpressed) && _point != Vector3.Zero)
                {
                    if (soilderCount() < 1 && W.IsReady())
                    {
                        W.Cast(wVec);
                    }
                    else if (soilderCount() < 1 && !W.IsReady())
                    {
                        return;
                    }

                    if (GetNearestSoilderToMouse() == null)
                    {
                        return;
                    }

                    var nearSlave = GetNearestSoilderToMouse();

                    if (E.IsReady() || ESpell.State == SpellState.Surpressed)
                    {
                        E.Cast(nearSlave.Position, packets());
                    }

                    if (QExtend.IsReady() || QSpell.State == SpellState.Surpressed)
                    {
                        _vecPoint = nearSlave.Position + Vector3.Normalize(_point - nearSlave.Position) * 700;
                        _delay    = (int)(100 * (Player.Distance(nearSlave.Position) / 800) + menu.Item("escapeDelay", true).GetValue <Slider>().Value);

                        //Game.PrintChat("Delay" + _delay);
                    }
                }
            }
        }
示例#9
0
文件: Azir.cs 项目: huynkprovn/LSharp
        private void Escape()
        {
            Vector3 wVec = Player.ServerPosition + Vector3.Normalize(Game.CursorPos - Player.ServerPosition) * 450;

            if (menu.Item("fastEscape").GetValue <bool>())
            {
                if (W.IsReady() || soilderCount() > 0)
                {
                    if ((E.IsReady() || eSpell.State == SpellState.Surpressed))
                    {
                        W.Cast(wVec);
                        W.LastCastAttemptT = Environment.TickCount;
                    }

                    if ((QExtend.IsReady() || qSpell.State == SpellState.Surpressed) &&
                        ((Environment.TickCount - E.LastCastAttemptT < Game.Ping + 500 &&
                          Environment.TickCount - E.LastCastAttemptT > Game.Ping + 50) || E.IsReady()))
                    {
                        if (Environment.TickCount - W.LastCastAttemptT > Game.Ping + 300 || eSpell.State == SpellState.Cooldown || !W.IsReady())
                        {
                            Vector3 qVec = Player.ServerPosition +
                                           Vector3.Normalize(Game.CursorPos - Player.ServerPosition) * 800;

                            var lastAttempt = (int)qVec.Distance(GetNearestSoilderToMouse().ServerPosition) / 1000;

                            Q.Cast(qVec, packets());
                            Q.LastCastAttemptT = Environment.TickCount + lastAttempt;
                            return;
                        }
                    }

                    if ((E.IsReady() || eSpell.State == SpellState.Surpressed))
                    {
                        if (Player.Distance(Game.CursorPos) > GetNearestSoilderToMouse().Distance(Game.CursorPos) && Environment.TickCount - Q.LastCastAttemptT > Game.Ping)
                        {
                            E.Cast(GetNearestSoilderToMouse().ServerPosition, packets());
                            E.LastCastAttemptT = Environment.TickCount - 250;
                            //Game.PrintChat("Rawr2");
                            return;
                        }
                        if (Environment.TickCount - W.LastCastAttemptT < Game.Ping + 300 && (Q.IsReady() || qSpell.State == SpellState.Surpressed))
                        {
                            E.Cast(wVec, packets());
                            E.LastCastAttemptT = Environment.TickCount - 250;
                            //Game.PrintChat("Rawr1");
                        }
                    }
                }
            }
            else
            {
                if (E.IsReady() || eSpell.State == SpellState.Surpressed)
                {
                    if (soilderCount() > 0)
                    {
                        Vector3 qVec = Player.ServerPosition +
                                       Vector3.Normalize(Game.CursorPos - Player.ServerPosition) * 800;

                        var slave = GetNearestSoilderToMouse();

                        var delay = (int)Math.Ceiling(slave.Distance(Player.ServerPosition));

                        if (QExtend.IsReady() || qSpell.State == SpellState.Surpressed)
                        {
                            Q.Cast(qVec, packets());
                        }

                        Utility.DelayAction.Add(delay,
                                                () => E.Cast(GetNearestSoilderToMouse().ServerPosition, packets()));
                        return;
                    }
                    if (W.IsReady())
                    {
                        W.Cast(wVec);

                        if (E.IsReady() || eSpell.State == SpellState.Surpressed)
                        {
                            E.Cast(wVec, packets());
                        }

                        if (QExtend.IsReady() || qSpell.State == SpellState.Surpressed)
                        {
                            Vector3 qVec = Player.ServerPosition +
                                           Vector3.Normalize(Game.CursorPos - Player.ServerPosition) * 800;

                            Utility.DelayAction.Add(300, () => Q.Cast(qVec, packets()));
                        }
                    }
                }
            }
        }