예제 #1
0
파일: Zed.cs 프로젝트: lolscripts/Otros
        public Zed()
        {
            Q = new SpellBase(SpellSlot.Q, SpellType.Linear, 925)
            {
                CastDelay = 250,
                Speed     = 1700,
                Width     = 50
            };
            Q.SetSourceFunction(() => MyHero);
            Q.SetRangeCheckSourceFunction(() => MyHero);
            W = new SpellBase(SpellSlot.W, SpellType.Linear, WRange)
            {
                Speed = 1750,
                Width = 60
            };
            E = new SpellBase(SpellSlot.E, SpellType.Self, 280);
            E.SetSourceFunction(() => MyHero);
            E.SetRangeCheckSourceFunction(() => MyHero);
            R          = new SpellBase(SpellSlot.R, SpellType.Targeted, 625);
            IsDeadText = new Text("Is Dead", new Font("Arial", 30F, FontStyle.Bold))
            {
                Color    = System.Drawing.Color.Red,
                Position = new Vector2(100, 50)
            };
            Obj_AI_Base.OnBuffGain += delegate(Obj_AI_Base sender, Obj_AI_BaseBuffGainEventArgs args)
            {
                var minion = sender as Obj_AI_Minion;
                if (minion != null && minion.IsAlly && minion.BaseSkinName == ShadowSkinName && args.Buff.Caster.IsMe)
                {
                    switch (args.Buff.Name)
                    {
                    case "zedwshadowbuff":
                        WShadow = minion;
                        break;

                    case "zedrshadowbuff":
                        RShadow = minion;
                        break;
                    }
                }
            };
            Obj_AI_Base.OnPlayAnimation += delegate(Obj_AI_Base sender, GameObjectPlayAnimationEventArgs args)
            {
                var minion = sender as Obj_AI_Minion;
                if (minion != null && minion.IsAlly && minion.BaseSkinName == ShadowSkinName)
                {
                    switch (args.Animation)
                    {
                    case "Death":
                        if (WShadow.IdEquals(minion))
                        {
                            WShadow = null;
                        }
                        else if (RShadow.IdEquals(minion))
                        {
                            RShadow = null;
                        }
                        break;
                    }
                }
            };
            GameObject.OnCreate += delegate(GameObject sender, EventArgs args)
            {
                if (sender.Name == IsDeadName)
                {
                    IsDeadObject = sender;
                }
            };
            GameObject.OnDelete += delegate(GameObject sender, EventArgs args)
            {
                var minion = sender as Obj_AI_Minion;
                if (minion != null && minion.IsAlly && minion.BaseSkinName == ShadowSkinName)
                {
                    if (WShadow.IdEquals(minion))
                    {
                        WShadow = null;
                    }
                    else if (RShadow.IdEquals(minion))
                    {
                        RShadow = null;
                    }
                }
                else if (sender.IdEquals(IsDeadObject))
                {
                    IsDeadObject = null;
                }
            };
            Obj_AI_Base.OnProcessSpellCast += delegate(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
            {
                if (sender.IsMe)
                {
                    switch (args.Slot)
                    {
                    case SpellSlot.W:
                        if (args.SData.Name == "ZedW")
                        {
                            W.LastCastTime    = Core.GameTickCount;
                            W.LastEndPosition = args.End;
                        }
                        break;

                    case SpellSlot.R:
                        if (args.SData.Name == "ZedR")
                        {
                        }
                        break;
                    }
                }
            };
            Evader.OnEvader += delegate(EvaderArgs args)
            {
                var w1Distance = (W.IsReady && IsW1 && EvaderMenu.CheckBox("Evader.W1"))
                    ? MyHero.GetDistanceSqr(args.Sender)
                    : 16000000;
                var w2Distance = (W.IsReady && WShadowIsValid && EvaderMenu.CheckBox("Evader.W2") && !args.WillHitMyHero(WShadow.Position))
                    ? WShadow.GetDistanceSqr(args.Sender)
                    : 16000000;
                var rTarget    = TargetSelector.GetTarget(R.Range, DamageType.Physical) ?? args.Sender;
                var r1Distance = (R.IsReady && IsR1 && rTarget != null && R.InRange(rTarget) && EvaderMenu.CheckBox("Evader.R1"))
                    ? MyHero.GetDistanceSqr(args.Sender)
                    : 16000000;
                var r2Distance = (R.IsReady && RShadowIsValid && EvaderMenu.CheckBox("Evader.R2") && !args.WillHitMyHero(RShadow.Position))
                    ? RShadow.GetDistanceSqr(args.Sender)
                    : 16000000;
                var min = Math.Min(w1Distance, Math.Min(w2Distance, Math.Min(r1Distance, r2Distance)));
                if (min < 16000000)
                {
                    if (Math.Abs(min - r2Distance) < float.Epsilon)
                    {
                        R.Cast();
                    }
                    else if (Math.Abs(min - r1Distance) < float.Epsilon)
                    {
                        R.Cast(rTarget);
                    }
                    else if (Math.Abs(min - w2Distance) < float.Epsilon)
                    {
                        W.Cast();
                    }
                    else if (Math.Abs(min - w1Distance) < float.Epsilon)
                    {
                        var wPos = MyHero.ServerPosition +
                                   ((args.Sender.ServerPosition - MyHero.ServerPosition).Normalized() * WRange)
                                   .To2D()
                                   .Perpendicular()
                                   .To3DWorld();
                        W.Cast(wPos);
                    }
                }
            };

            MenuManager.AddSubMenu("Keys");
            {
                Orbwalker.RegisterKeyBind(
                    KeysMenu.Add("Combo2", new KeyBind("Combo without R", false, KeyBind.BindTypes.HoldActive, 'A')),
                    Orbwalker.ActiveModes.Combo);
                Orbwalker.RegisterKeyBind(
                    KeysMenu.Add("Harass2", new KeyBind("Harass 2", false, KeyBind.BindTypes.HoldActive, 'S')),
                    Orbwalker.ActiveModes.Harass);
            }

            Q.AddConfigurableHitChancePercent();

            MenuManager.AddSubMenu("Combo");
            {
                ComboMenu.AddStringList("Mode", "R Mode", new[] { "Line", "Triangle", "MousePos" });
                ComboMenu.Add("Q", new CheckBox("Use Q"));
                ComboMenu.Add("W", new CheckBox("Use W"));
                ComboMenu.Add("E", new CheckBox("Use E"));
                ComboMenu.Add("R", new CheckBox("Use R"));
                ComboMenu.Add("Items", new CheckBox("Use Items"));
                ComboMenu.Add("SwapDead", new CheckBox("Use W2/R2 if target will die"));
                ComboMenu.Add("SwapGapclose", new CheckBox("Use W2/R2 to get close to target"));
                ComboMenu.Add("SwapHP", new Slider("Use W2/R2 if my HealthPercent is <= {0}", 15));
                ComboMenu.Add("Prevent", new CheckBox("Don't use spells before R"));
                if (EntityManager.Heroes.Enemies.Count > 0)
                {
                    ComboMenu.AddGroupLabel("Don't use R on");
                    var enemiesAdded = new HashSet <string>();
                    foreach (var enemy in EntityManager.Heroes.Enemies)
                    {
                        if (!enemiesAdded.Contains(enemy.ChampionName))
                        {
                            ComboMenu.Add("BlackList." + enemy.ChampionName, new CheckBox(enemy.ChampionName, false));
                            enemiesAdded.Add(enemy.ChampionName);
                        }
                    }
                }
            }
            MenuManager.AddSubMenu("Harass");
            {
                HarassMenu.Add("Collision", new CheckBox("Add collision check for Q (more damage)", false));
                HarassMenu.Add("SwapGapclose", new CheckBox("Use W2 if target is killable"));
                HarassMenu.AddGroupLabel("Harass 1");
                HarassMenu.Add("Harass1.Q", new CheckBox("Use Q"));
                HarassMenu.Add("Harass1.W", new CheckBox("Use W", false));
                HarassMenu.Add("Harass1.E", new CheckBox("Use E"));
                HarassMenu.Add("Harass1.ManaPercent", new Slider("Min. Energy Percent:", 20));
                HarassMenu.AddGroupLabel("Harass 2");
                HarassMenu.Add("Harass2.Q", new CheckBox("Use Q"));
                HarassMenu.Add("Harass2.W", new CheckBox("Use W"));
                HarassMenu.Add("Harass2.E", new CheckBox("Use E"));
            }

            MenuManager.AddSubMenu("Clear");
            {
                ClearMenu.AddGroupLabel("LaneClear");
                {
                    ClearMenu.Add("LaneClear.Q", new Slider("Use Q if hit >= {0}", 3, 0, 10));
                    ClearMenu.Add("LaneClear.W", new Slider("Use W if hit >= {0}", 4, 0, 10));
                    ClearMenu.Add("LaneClear.E", new Slider("Use E if hit >= {0}", 3, 0, 10));
                    ClearMenu.Add("LaneClear.ManaPercent", new Slider("Min. ManaPercent", 50));
                }
                ClearMenu.AddGroupLabel("LastHit");
                {
                    ClearMenu.AddStringList("LastHit.Q", "Use Q", new[] { "None", "Smart", "Always" }, 1);
                    ClearMenu.AddStringList("LastHit.E", "Use E", new[] { "None", "Smart", "Always" }, 1);
                    ClearMenu.Add("LastHit.ManaPercent", new Slider("Min. ManaPercent", 50));
                }
                ClearMenu.AddGroupLabel("JungleClear");
                {
                    ClearMenu.Add("JungleClear.Q", new CheckBox("Use Q"));
                    ClearMenu.Add("JungleClear.W", new CheckBox("Use W"));
                    ClearMenu.Add("JungleClear.E", new CheckBox("Use W"));
                    ClearMenu.Add("JungleClear.ManaPercent", new Slider("Min. ManaPercent", 20));
                }
            }

            MenuManager.AddKillStealMenu();
            {
                KillStealMenu.Add("Q", new CheckBox("Use Q"));
                KillStealMenu.Add("W", new CheckBox("Use W"));
                KillStealMenu.Add("E", new CheckBox("Use E"));
            }

            MenuManager.AddSubMenu("Automatic");
            {
                AutomaticMenu.Add("E", new CheckBox("Use auto E", false));
                AutomaticMenu.Add("SwapDead", new CheckBox("Use W2/R2 if target will die", false));
            }
            MenuManager.AddSubMenu("Evader");
            {
                EvaderMenu.Add("Evader.W1", new CheckBox("Use W1", false));
                EvaderMenu.Add("Evader.W2", new CheckBox("Use W2"));
                EvaderMenu.Add("Evader.R1", new CheckBox("Use R1"));
                EvaderMenu.Add("Evader.R2", new CheckBox("Use R2"));
            }
            Evader.Initialize();
            Evader.AddCrowdControlSpells();
            Evader.AddDangerousSpells();
            MenuManager.AddDrawingsMenu();
            {
                Q.AddDrawings();
                W.AddDrawings();
                E.AddDrawings(false);
                R.AddDrawings();
                CircleManager.Circles.Add(new Circle(
                                              DrawingsMenu.Add("W.Shadow", new CheckBox("Draw W shadow circle")), SharpDX.Color.Blue,
                                              () => 100, () => WShadowIsValid,
                                              () => WShadow)
                {
                    Width = 1
                });

                CircleManager.Circles.Add(new Circle(
                                              DrawingsMenu.Add("R.Shadow", new CheckBox("Draw R shadow circle")), SharpDX.Color.Orange,
                                              () => 100, () => RShadowIsValid,
                                              () => RShadow)
                {
                    Width = 1
                });
                DrawingsMenu.Add("IsDead", new CheckBox("Draw text if target will die"));
                DrawingsMenu.Add("Passive", new CheckBox("Draw text when passive is ready"));
            }
        }
예제 #2
0
        public Orianna()
        {
            try
            {
                AIO.Initializers.Add(delegate
                {
                    _ballObject =
                        ObjectManager.Get <Obj_GeneralParticleEmitter>()
                        .FirstOrDefault(
                            o => o.IsValid && !o.IsDead && o.Name.Equals(BallName));
                });
                Q = new SpellBase(SpellSlot.Q, SpellType.Circular, 815)
                {
                    Speed = 1200,
                    Width = 80,
                    CollidesWithYasuoWall = false
                };
                Q.SetSourceFunction(() => Ball);
                W = new SpellBase(SpellSlot.W, SpellType.Self, 255);
                W.SetSourceFunction(() => Ball);
                W.SetRangeCheckSourceFunction(() => Ball);
                E = new SpellBase(SpellSlot.E, SpellType.Circular, 1095)
                {
                    Speed = 1800,
                    Width = 85,
                    MinHitChancePercent   = 45,
                    CollidesWithYasuoWall = false
                };
                E.SetSourceFunction(() => Ball);
                R = new SpellBase(SpellSlot.R, SpellType.Self, 400)
                {
                    CastDelay = 500
                };
                R.SetSourceFunction(() => Ball);
                R.SetRangeCheckSourceFunction(() => Ball);
                Spellbook.OnCastSpell += delegate(Spellbook sender, SpellbookCastSpellEventArgs args)
                {
                    if (sender.Owner.IsMe)
                    {
                        if (args.Slot == SpellSlot.R && MiscMenu.CheckBox("R.Block"))
                        {
                            args.Process = _hitR != 0 && !_ballIsMissile;
                        }
                    }
                };
                GameObject eTarget = null;
                Obj_AI_Base.OnProcessSpellCast += delegate(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
                {
                    if (sender.IsMe)
                    {
                        if (args.Slot == SpellSlot.E)
                        {
                            eTarget = args.Target;
                        }
                    }
                };
                GameObject.OnCreate += delegate(GameObject sender, EventArgs args)
                {
                    if (sender.Name.Equals(BallName))
                    {
                        _ballObject = sender;
                    }
                    else
                    {
                        var missile = sender as MissileClient;
                        if (missile != null && missile.SpellCaster != null && missile.SpellCaster.IsMe)
                        {
                            if (missile.SData.Name.Equals("orianaizuna") || missile.SData.Name.Equals("orianaredact"))
                            {
                                _ballObject = missile;
                            }
                        }
                    }
                };
                GameObject.OnDelete += delegate(GameObject sender, EventArgs args)
                {
                    var missile = sender as MissileClient;
                    if (missile != null && missile.SpellCaster != null && missile.SpellCaster.IsMe)
                    {
                        if (missile.SData.Name.Equals("orianaredact"))
                        {
                            _ballObject = eTarget;
                        }
                    }
                };
                Obj_AI_Base.OnPlayAnimation += delegate(Obj_AI_Base sender, GameObjectPlayAnimationEventArgs args)
                {
                    if (sender.IsMe && args.Animation.Equals("Prop"))
                    {
                        _ballObject = sender;
                    }
                };
                Gapcloser.OnGapcloser += delegate(AIHeroClient sender, Gapcloser.GapcloserEventArgs args)
                {
                    if (sender.IsAlly)
                    {
                        if (Target != null && AutomaticMenu.CheckBox("Gapcloser") &&
                            Ball.GetDistanceSqr(Target) > args.End.Distance(Target, true) && args.End.Distance(Target, true) < args.Sender.GetDistanceSqr(Target))
                        {
                            CastE(sender);
                        }
                    }
                };
                Dash.OnDash += delegate(Obj_AI_Base sender, Dash.DashEventArgs args)
                {
                    if (sender.IsAlly)
                    {
                        if (Target != null && AutomaticMenu.CheckBox("Gapcloser") &&
                            Ball.GetDistanceSqr(Target) > args.EndPos.Distance(Target, true) && args.EndPos.Distance(Target, true) < sender.GetDistanceSqr(Target))
                        {
                            CastE(sender);
                        }
                    }
                };
                Interrupter.OnInterruptableSpell +=
                    delegate(Obj_AI_Base sender, Interrupter.InterruptableSpellEventArgs args)
                {
                    if (sender.IsEnemy)
                    {
                        if (AutomaticMenu.CheckBox("Interrupter"))
                        {
                            if (!Ball.InRange(args.Sender, R.Range))
                            {
                                ThrowBall(args.Sender);
                            }
                            else
                            {
                                CastR(args.Sender);
                            }
                        }
                    }
                };
                Obj_AI_Base.OnBasicAttack += delegate(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
                {
                    if (sender.IsEnemy && _canShield && args.Target != null && args.Target.IsMe)
                    {
                        if (sender.Type == GameObjectType.AIHeroClient)
                        {
                            if (sender.IsMelee)
                            {
                                CastE(MyHero);
                            }
                        }
                        else if (sender.Type == GameObjectType.obj_AI_Turret)
                        {
                            CastE(MyHero);
                        }
                    }
                };
                Obj_AI_Base.OnProcessSpellCast += delegate(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
                {
                    if (sender.IsEnemy && _canShield && args.Target != null && args.Target.IsMe)
                    {
                        if (sender.Type == GameObjectType.AIHeroClient)
                        {
                            CastE(MyHero);
                        }
                    }
                };

                Q.AddConfigurableHitChancePercent();
                R.AddConfigurableHitChancePercent();

                MenuManager.AddSubMenu("Combo");
                {
                    ComboMenu.Add("TeamFight", new Slider("Use TeamFight logic if enemies near >= {0}", 3, 1, 5));
                    ComboMenu.AddGroupLabel("Common logic");
                    ComboMenu.Add("Q", new CheckBox("Use Q on target"));
                    ComboMenu.Add("W", new CheckBox("Use W on target"));
                    ComboMenu.Add("E.Shield", new CheckBox("Use E on enemy spells"));
                    ComboMenu.Add("E.HealthPercent", new Slider("Use E if HealthPercent <= {0}", 40));
                    ComboMenu.AddGroupLabel("1 vs 1 logic");
                    ComboMenu.Add("R.Killable", new CheckBox("Use R on target if killable"));
                    ComboMenu.AddGroupLabel("TeamFight logic");
                    ComboMenu.Add("Q.Hit", new Slider("Use Q if hit >= {0}", 2, 1, 5));
                    ComboMenu.Add("W.Hit", new Slider("Use W if hit >= {0}", 2, 1, 5));
                    ComboMenu.Add("R.Hit", new Slider("Use R if hit >= {0}", 3, 1, 5));
                }

                MenuManager.AddSubMenu("Harass");
                {
                    HarassMenu.Add("Q", new CheckBox("Use Q"));
                    HarassMenu.Add("W", new CheckBox("Use W"));
                    HarassMenu.Add("E.Shield", new CheckBox("Use E on enemy spells"));
                    HarassMenu.Add("E.HealthPercent", new Slider("Use E if HealthPercent <= {0}", 40));
                    HarassMenu.Add("ManaPercent", new Slider("Min. ManaPercent", 25));
                }

                MenuManager.AddSubMenu("Clear");
                {
                    ClearMenu.AddGroupLabel("LaneClear");
                    {
                        ClearMenu.Add("LaneClear.Q", new Slider("Use Q if hit >= {0}", 4, 0, 10));
                        ClearMenu.Add("LaneClear.W", new Slider("Use W if hit >= {0}", 3, 0, 10));
                        ClearMenu.Add("LaneClear.E", new Slider("Use E if hit >= {0}", 6, 0, 10));
                        ClearMenu.Add("LaneClear.ManaPercent", new Slider("Min. ManaPercent", 50));
                    }
                    ClearMenu.AddGroupLabel("LastHit");
                    {
                        ClearMenu.AddStringList("LastHit.Q", "Use Q", new[] { "None", "Smart", "Always" }, 1);
                        ClearMenu.Add("LastHit.ManaPercent", new Slider("Min. ManaPercent", 50));
                    }
                    ClearMenu.AddGroupLabel("JungleClear");
                    {
                        ClearMenu.Add("JungleClear.Q", new CheckBox("Use Q"));
                        ClearMenu.Add("JungleClear.W", new CheckBox("Use W"));
                        ClearMenu.Add("JungleClear.E", new CheckBox("Use E"));
                        ClearMenu.Add("JungleClear.ManaPercent", new Slider("Min. ManaPercent", 20));
                    }
                }

                MenuManager.AddKillStealMenu();
                {
                    KillStealMenu.Add("Q", new CheckBox("Use Q"));
                    KillStealMenu.Add("W", new CheckBox("Use W"));
                    KillStealMenu.Add("E", new CheckBox("Use E"));
                    KillStealMenu.Add("R", new CheckBox("Use R", false));
                }

                MenuManager.AddSubMenu("Automatic");
                {
                    AutomaticMenu.Add("Gapcloser", new CheckBox("Use E on ally gapclosing"));
                    AutomaticMenu.Add("Interrupter", new CheckBox("Use R to interrupt enemy spell"));
                    AutomaticMenu.Add("E.Shield", new CheckBox("Use E on enemy spells"));
                    AutomaticMenu.Add("W.Hit", new Slider("Use W if hit >= {0}", 2, 1, 5));
                    AutomaticMenu.Add("R.Hit", new Slider("Use R if hit >= {0}", 3, 1, 5));
                }

                MenuManager.AddDrawingsMenu();
                {
                    var c = DrawingsMenu.Add("Ball", new CheckBox("Draw ball position"));
                    CircleManager.Circles.Add(new Circle(c, new ColorBGRA(0, 0, 255, 100), () => 120, () => true,
                                                         () => Ball)
                    {
                        Width = 3
                    });
                    Q.AddDrawings();
                    W.AddDrawings();
                    E.AddDrawings(false);
                    R.AddDrawings();
                }
                MenuManager.AddSubMenu("Misc");
                {
                    MiscMenu.Add("R.Block", new CheckBox("Block R if will not hit"));
                    if (EntityManager.Heroes.Enemies.Count > 0)
                    {
                        var enemiesAdded = new HashSet <string>();
                        MiscMenu.AddGroupLabel("Don't use R in:");
                        foreach (var enemy in EntityManager.Heroes.Enemies)
                        {
                            if (!enemiesAdded.Contains(enemy.ChampionName))
                            {
                                MiscMenu.Add("BlackList." + enemy.ChampionName, new CheckBox(enemy.ChampionName, false));
                                enemiesAdded.Add(enemy.ChampionName);
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                AIO.WriteInConsole(e.ToString());
            }
        }
예제 #3
0
파일: Diana.cs 프로젝트: lolscripts/Otros
        public Diana()
        {
            Q = new SpellBase(SpellSlot.Q, SpellType.Circular, 825)
            {
                Width     = 185,
                CastDelay = 250,
                Speed     = 1640,
            };
            W = new SpellBase(SpellSlot.W, SpellType.Self, 250);
            E = new SpellBase(SpellSlot.E, SpellType.Self, 450)
            {
                CastDelay = 250,
            };
            R = new SpellBase(SpellSlot.R, SpellType.Targeted, 825)
            {
                Speed = 2500,
            };
            Obj_AI_Base.OnProcessSpellCast += delegate(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
            {
                if (sender.IsMe)
                {
                    switch (args.Slot)
                    {
                    case SpellSlot.Q:
                        Q.LastCastTime = Core.GameTickCount;
                        QEndPosition   = args.End;  // +(args.End - sender.ServerPosition).Normalized() * Q.Width / 2;
                        break;

                    case SpellSlot.R:
                        R.LastCastTime = Core.GameTickCount;
                        break;
                    }
                }
            };
            GameObject.OnCreate += delegate(GameObject sender, EventArgs args)
            {
                var missile = sender as MissileClient;
                if (missile != null && missile.SpellCaster != null && missile.SpellCaster.IsMe)
                {
                    if (missile.SData.Name.Equals(QMissileName))
                    {
                        QMissile = missile;
                    }
                }
            };
            GameObject.OnDelete += delegate(GameObject sender, EventArgs args)
            {
                var missile = sender as MissileClient;
                if (missile != null && missile.SpellCaster != null && missile.SpellCaster.IsMe)
                {
                    if (missile.SData.Name.Equals(QMissileName))
                    {
                        QMissile = null;
                    }
                }
            };
            Gapcloser.OnGapcloser += delegate(AIHeroClient sender, Gapcloser.GapcloserEventArgs args)
            {
                if (sender.IsEnemy)
                {
                    if (AutomaticMenu.CheckBox("Gapcloser"))
                    {
                        E.Cast(sender);
                    }
                }
            };
            Interrupter.OnInterruptableSpell +=
                delegate(Obj_AI_Base sender, Interrupter.InterruptableSpellEventArgs args)
            {
                if (sender.IsEnemy)
                {
                    if (AutomaticMenu.CheckBox("Interrupter"))
                    {
                        E.Cast(sender);
                    }
                }
            };
            Dash.OnDash += delegate(Obj_AI_Base sender, Dash.DashEventArgs args)
            {
                if (sender.IsEnemy)
                {
                    if (AutomaticMenu.CheckBox("Gapcloser"))
                    {
                        E.Cast(sender);
                    }
                }
            };
            Q.AddConfigurableHitChancePercent();
            MenuManager.AddSubMenu("Combo");
            {
                ComboMenu.Add("Q", new CheckBox("Use Q"));
                ComboMenu.Add("W", new CheckBox("Use W"));
                ComboMenu.Add("QR", new CheckBox("Use QR on minion to gapclose"));
                ComboMenu.Add("Ignite", new CheckBox("Use Ignite if killable", false));
                ComboMenu.AddStringList("E", "Use E", new[] { "Never", "Smart", "Always" }, 1);
                ComboMenu.AddStringList("R", "Use R", new[] { "Never", "Smart", "Always" }, 1);
            }

            MenuManager.AddSubMenu("Harass");
            {
                HarassMenu.Add("Q", new CheckBox("Use Q"));
                HarassMenu.Add("W", new CheckBox("Use W"));
                HarassMenu.Add("E", new CheckBox("Use E", false));
                HarassMenu.Add("ManaPercent", new Slider("Min. ManaPercent", 25));
            }

            MenuManager.AddSubMenu("Clear");
            {
                ClearMenu.AddGroupLabel("LaneClear");
                {
                    ClearMenu.Add("LaneClear.Q", new Slider("Use Q if hit >= {0}", 4, 0, 10));
                    ClearMenu.Add("LaneClear.W", new Slider("Use W if hit >= {0}", 3, 0, 10));
                    ClearMenu.Add("LaneClear.ManaPercent", new Slider("Min. ManaPercent", 50));
                }
                ClearMenu.AddGroupLabel("LastHit");
                {
                    ClearMenu.AddStringList("LastHit.Q", "Use Q", new[] { "None", "Smart", "Always" }, 1);
                    ClearMenu.Add("LastHit.ManaPercent", new Slider("Min. ManaPercent", 50));
                }
                ClearMenu.AddGroupLabel("JungleClear");
                {
                    ClearMenu.Add("JungleClear.Q", new CheckBox("Use Q"));
                    ClearMenu.Add("JungleClear.W", new CheckBox("Use W"));
                    ClearMenu.Add("JungleClear.R", new CheckBox("Use R"));
                    ClearMenu.Add("JungleClear.ManaPercent", new Slider("Min. ManaPercent", 20));
                }
            }

            MenuManager.AddKillStealMenu();
            {
                KillStealMenu.Add("Q", new CheckBox("Use Q"));
                KillStealMenu.Add("W", new CheckBox("Use W"));
                KillStealMenu.Add("R", new CheckBox("Use R"));
            }

            MenuManager.AddSubMenu("Automatic");
            {
                AutomaticMenu.Add("Gapcloser", new CheckBox("Use E on enemy dashing"));
                AutomaticMenu.Add("Interrupter", new CheckBox("Use E to interrupt enemy spell"));
            }
            MenuManager.AddDrawingsMenu();
            {
                Q.AddDrawings();
                W.AddDrawings();
                E.AddDrawings(false);
                R.AddDrawings();
            }
        }
예제 #4
0
        public Cassiopeia()
        {
            Q = new SpellBase(SpellSlot.Q, SpellType.Circular, 850)
            {
                Width     = 75,
                CastDelay = 400
            };
            W = new SpellBase(SpellSlot.W, SpellType.Circular, 850)
            {
                Width     = 90,
                CastDelay = 250,
                Speed     = 2500
            };
            E = new SpellBase(SpellSlot.E, SpellType.Targeted, 700)
            {
                Speed     = 1900,
                CastDelay = 125
            };
            R = new SpellBase(SpellSlot.R, SpellType.Cone, 825)
            {
                Width     = 80,
                CastDelay = 500
            };

            Spellbook.OnCastSpell += delegate(Spellbook sender, SpellbookCastSpellEventArgs args)
            {
                if (sender.Owner.IsMe)
                {
                    switch (args.Slot)
                    {
                    case SpellSlot.Q:
                        Q.LastSentTime    = Core.GameTickCount;
                        Q.LastEndPosition = args.EndPosition;
                        break;

                    case SpellSlot.W:
                        W.LastSentTime    = Core.GameTickCount;
                        W.LastEndPosition = args.EndPosition;
                        break;
                    }
                }
            };

            Obj_AI_Base.OnProcessSpellCast += delegate(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
            {
                if (sender.IsMe)
                {
                    switch (args.Slot)
                    {
                    case SpellSlot.Q:
                        Q.LastCastTime    = Core.GameTickCount;
                        Q.LastEndPosition = args.End;
                        break;

                    case SpellSlot.W:
                        W.LastCastTime    = Core.GameTickCount;
                        W.LastEndPosition = args.End;
                        break;
                    }
                }
            };

            MenuManager.AddSubMenu("Keys");
            {
                KeysMenu.Add("AssistedUltimate",
                             new KeyBind("Assisted Ultimate", false, KeyBind.BindTypes.HoldActive, 'T'));
                ToggleManager.RegisterToggle(
                    KeysMenu.Add("HarassToggle", new KeyBind("Harass Toggle", false, KeyBind.BindTypes.PressToggle, 'K')),
                    delegate
                {
                    if (!ModeManager.Combo)
                    {
                        Harass();
                    }
                });
                ToggleManager.RegisterToggle(
                    KeysMenu.Add("LastHitToggle",
                                 new KeyBind("LastHit Toggle", false, KeyBind.BindTypes.PressToggle, 'L')),
                    delegate
                {
                    if (!ModeManager.Combo)
                    {
                        LastHit();
                    }
                });
            }
            Q.AddConfigurableHitChancePercent();
            W.AddConfigurableHitChancePercent();
            R.AddConfigurableHitChancePercent();

            MenuManager.AddSubMenu("Combo");
            {
                ComboMenu.Add("Q", new CheckBox("Use Q"));
                ComboMenu.Add("W", new CheckBox("Use W"));
                ComboMenu.AddStringList("E", "Use E", new[] { "Never", "On Poisoned", "Always" }, 1);
                ComboMenu.Add("R", new Slider("Use R if enemies inside >= {0}", 3, 0, 5));
            }

            MenuManager.AddSubMenu("Harass");
            {
                HarassMenu.Add("Q", new CheckBox("Use Q"));
                HarassMenu.Add("W", new CheckBox("Use W"));
                HarassMenu.AddStringList("E", "Use E", new[] { "Never", "On Poisoned", "Always" }, 1);
                HarassMenu.Add("ManaPercent", new Slider("Min. ManaPercent", 25));
            }

            MenuManager.AddSubMenu("Clear");
            {
                ClearMenu.AddGroupLabel("LaneClear");
                {
                    ClearMenu.Add("LaneClear.Q", new Slider("Use Q if hit >= {0}", 2, 0, 10));
                    ClearMenu.Add("LaneClear.W", new Slider("Use W if hit >= {0}", 3, 0, 10));
                    ClearMenu.AddStringList("LaneClear.E", "Use E", new[] { "Never", "On Poisoned", "Always" }, 1);
                    ClearMenu.Add("LaneClear.ManaPercent", new Slider("Min. ManaPercent", 50));
                }
                ClearMenu.AddGroupLabel("LastHit");
                {
                    ClearMenu.AddStringList("LastHit.E", "Use E", new[] { "Never", "On Poisoned", "Always" }, 1);
                    ClearMenu.Add("LastHit.ManaPercent", new Slider("Min. ManaPercent", 50));
                }
                ClearMenu.AddGroupLabel("JungleClear");
                {
                    ClearMenu.Add("JungleClear.Q", new CheckBox("Use Q"));
                    ClearMenu.Add("JungleClear.W", new CheckBox("Use W"));
                    ClearMenu.Add("JungleClear.E", new CheckBox("Use E"));
                    ClearMenu.Add("JungleClear.ManaPercent", new Slider("Min. ManaPercent", 20));
                }
            }
            MenuManager.AddKillStealMenu();
            {
                KillStealMenu.Add("Q", new CheckBox("Use Q"));
                KillStealMenu.Add("W", new CheckBox("Use W"));
                KillStealMenu.Add("E", new CheckBox("Use E"));
                KillStealMenu.Add("R", new CheckBox("Use R", false));
            }
            MenuManager.AddSubMenu("Automatic");
            {
                AutomaticMenu.Add("R", new CheckBox("Use R to interrupt enemy spells"));
            }
            MenuManager.AddDrawingsMenu();
            {
                Q.AddDrawings();
                W.AddDrawings(false);
                E.AddDrawings();
                R.AddDrawings();
                DrawingsMenu.Add("Toggles", new CheckBox("Draw toggles status"));
            }
        }