示例#1
0
 public void CastR(AIHeroClient target)
 {
     if (target != null && R.IsReady && !UltimateMenu.CheckBox("BlackList." + target.ChampionName))
     {
         R.Cast(target);
     }
 }
示例#2
0
 public override void OnDraw()
 {
     if (UltimateMenu.CheckBox("NearMouse.Enabled") && UltimateMenu.CheckBox("NearMouse.Draw") && IsCastingR)
     {
         EloBuddy.SDK.Rendering.Circle.Draw(SharpDX.Color.Blue, UltimateMenu.Slider("NearMouse.Radius"), 1, MousePos);
     }
     base.OnDraw();
 }
示例#3
0
 protected override void PermaActive()
 {
     Orbwalker.DisableMovement  = IsCastingR;
     Orbwalker.DisableAttacking = IsCastingR || IsChargingQ;
     if (IsChargingQ)
     {
         var percentGrowth = Math.Max(0, Math.Min(1, ((Core.GameTickCount - Q.LastCastTime) / 1000f - Spells.Q.CastRangeGrowthStartTime) / Spells.Q.CastRangeGrowthDuration));
         Q.Range = (int)((Spells.Q.CastRangeGrowthMax - Spells.Q.CastRangeGrowthMin) * percentGrowth + Spells.Q.CastRangeGrowthMin);
     }
     else
     {
         Q.Range = Spells.Q.CastRangeGrowthMax;
     }
     W.Width = Spells.W.CastRadiusSecondary;
     R.Range = 2000 + R.Instance.Level * 1200;
     Range   = new[] { Q.IsReady?Spells.Q.CastRangeGrowthMax : 0f, W.IsReady ? W.Range + W.Radius : 0, E.IsReady ? E.Range : 0, MyHero.GetAutoAttackRange() }.Max();
     if (Spells.E.Missile != null && !Spells.E.Missile.IsValidMissile())
     {
         Spells.E.Missile = null;
     }
     Target = TargetSelector.GetTarget(UnitManager.ValidEnemyHeroesInRange, DamageType.Magical);
     if (IsCastingR)
     {
         if (Core.GameTickCount - R.LastCastTime > UltimateMenu.Slider("Delay"))
         {
             if (UltimateMenu.Slider("Mode") == 2 || (UltimateMenu.Slider("Mode") == 1 && TapKeyPressed))
             {
                 if (UltimateMenu.CheckBox("NearMouse.Enabled"))
                 {
                     var target = FindBestKillableTarget(MousePos, UltimateMenu.Slider("NearMouse.Radius"));
                     if (target != null)
                     {
                         R.Cast(target);
                     }
                 }
                 else
                 {
                     var target = FindBestKillableTarget(MyHero.Position, R.Range);
                     if (target != null)
                     {
                         R.Cast(target);
                     }
                 }
             }
         }
         return;
     }
     TapKeyPressed = false;
     if (KeysMenu.KeyBind("TapKey") && R.IsReady && !IsCastingR)
     {
         R.Cast();
         return;
     }
     base.PermaActive();
 }
示例#4
0
 protected override void PermaActive()
 {
     if (IsCastingR)
     {
         IsCastingR = R.Instance.Name == "JhinRShot"; //MyHero.Spellbook.IsChanneling;
     }
     IsCharging = MyHero.HasBuff("JhinPassiveReload");
     Orbwalker.DisableAttacking = IsCastingR;
     Orbwalker.DisableMovement  = IsCastingR;
     if (R.IsReady && !IsCastingR)
     {
         Stacks = 4;
     }
     if (R.IsReady && !IsCastingR)
     {
         foreach (var enemy in UnitManager.ValidEnemyHeroes)
         {
             var isKillable = R.IsKillable(enemy);
             var predResult = R.GetPrediction(enemy);
             var predPos    = predResult.CastPosition;
             LastPredictedPosition[enemy.NetworkId] = new Tuple <Vector3, bool>(predPos, isKillable);
         }
     }
     Range  = 1300;
     Target = TargetSelector.GetTarget(UnitManager.ValidEnemyHeroesInRange, DamageType.Physical);
     Q.Type = SpellType.Targeted;
     if (IsCastingR)
     {
         if (TapKeyPressed || UltimateMenu.Slider("Mode") == 2)
         {
             CastR();
         }
         return;
     }
     if (AutomaticMenu.CheckBox("Immobile"))
     {
         foreach (var enemy in E.EnemyHeroes)
         {
             var time = enemy.GetMovementBlockedDebuffDuration();
             if (time > 0 && time * 1000 >= E.CastDelay)
             {
                 E.Cast(enemy.Position);
             }
         }
     }
     base.PermaActive();
 }
示例#5
0
文件: Jhin.cs 项目: chienhao10/CHOP
 public void CastR()
 {
     if (!IsR1 && Core.GameTickCount - R.LastCastTime >= UltimateMenu.Slider("Delay"))
     {
         var rTargets = UnitManager.ValidEnemyHeroes.Where(h => R.InRange(h) && (!UltimateMenu.CheckBox("OnlyKillable") || R.IsKillable(h)) && LastRCone.IsInside(h)).ToList();
         var targets  = UltimateMenu.CheckBox("NearMouse.Enabled")
             ? rTargets.Where(
             h => h.IsInRange(MousePos, UltimateMenu.Slider("NearMouse.Radius"))).ToList()
             : rTargets;
         var target = TargetSelector.GetTarget(targets, DamageType.Physical);
         if (target != null)
         {
             var pred = R.GetPrediction(target);
             if (pred.HitChancePercent >= R.HitChancePercent && !R.WillHitYasuoWall(pred.CastPosition))
             {
                 MyHero.Spellbook.CastSpell(SpellSlot.R, pred.CastPosition);
             }
         }
     }
 }
示例#6
0
 public override void OnDraw()
 {
     if (UltimateMenu.CheckBox("NearMouse.Enabled") && UltimateMenu.CheckBox("NearMouse.Draw") && IsCastingR)
     {
         EloBuddy.SDK.Rendering.Circle.Draw(SharpDX.Color.Blue, UltimateMenu.Slider("NearMouse.Radius"), 1, MousePos);
     }
     if (DrawingsMenu.CheckBox("R.LastPredictedPosition") && (R.IsReady || IsCastingR))
     {
         foreach (var enemy in EntityManager.Heroes.Enemies.Where(h => !h.IsValidTarget() && !h.IsDead && h.Health > 0 && LastPredictedPosition.ContainsKey(h.NetworkId)))
         {
             var tuple = LastPredictedPosition[enemy.NetworkId];
             if (tuple.Item1.IsOnScreen() && tuple.Item2)
             {
                 LastPredictedPositionText[enemy.NetworkId].Position = tuple.Item1.WorldToScreen() + new Vector2(-LastPredictedPositionText[enemy.NetworkId].Bounding.Width / 2f, 50f);
                 LastPredictedPositionText[enemy.NetworkId].Draw();
                 EloBuddy.SDK.Rendering.Circle.Draw(SharpDX.Color.Red, 120, 1, tuple.Item1);
             }
         }
     }
     base.OnDraw();
 }
示例#7
0
        public Jhin()
        {
            foreach (var enemy in EntityManager.Heroes.Enemies)
            {
                TextsInScreen.Add(enemy.NetworkId, new Text(enemy.ChampionName + " is R killable", new Font("Arial", 30F, FontStyle.Bold))
                {
                    Color = Color.Red
                });
                TextsInHeroPosition.Add(enemy.NetworkId, new Text("R killable", new Font("Arial", 23F, FontStyle.Bold))
                {
                    Color = Color.Red
                });
                LastPredictedPositionText.Add(enemy.NetworkId, new Text(enemy.ChampionName + " last predicted position", new Font("Arial", 23F, FontStyle.Bold))
                {
                    Color = Color.Red
                });
            }
            Q = new SpellBase(SpellSlot.Q, SpellType.Targeted, 600)
            {
                Width     = 450,
                Speed     = 1800,
                CastDelay = 250,
            };
            W = new SpellBase(SpellSlot.W, SpellType.Linear, 2500)
            {
                Width                 = 40,
                CastDelay             = 750,
                Speed                 = 5000,
                AllowedCollisionCount = -1,
            };
            E = new SpellBase(SpellSlot.E, SpellType.Circular, 750)
            {
                Width     = 135,
                CastDelay = 250,
                Speed     = 1600,
            };
            R = new SpellBase(SpellSlot.R, SpellType.Linear, 3500)
            {
                Width                 = 65,
                CastDelay             = 250,
                Speed                 = 5000,
                AllowedCollisionCount = -1,
            };
            Evader.OnEvader += delegate
            {
                if (EvaderMenu.CheckBox("BlockW"))
                {
                    LastBlockTick = Core.GameTickCount;
                }
            };

            Spellbook.OnCastSpell += delegate(Spellbook sender, SpellbookCastSpellEventArgs args)
            {
                if (sender.Owner.IsMe)
                {
                    if (args.Slot == SpellSlot.W)
                    {
                        args.Process = Core.GameTickCount - LastBlockTick > 750;
                    }
                }
            };
            Obj_AI_Base.OnProcessSpellCast += delegate(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
            {
                if (sender.IsMe)
                {
                    switch (args.Slot)
                    {
                    case SpellSlot.W:
                        W.LastCastTime    = Core.GameTickCount;
                        W.LastEndPosition = args.End;
                        break;

                    case SpellSlot.R:
                        if (args.SData.Name == "JhinR")
                        {
                            IsCastingR = true;
                            LastRCone  = new Geometry.Polygon.Sector(sender.Position, args.End, (float)(45 * 2f * Math.PI / 175f), R.Range);
                            Stacks     = 4;
                        }
                        else if (args.SData.Name == "JhinRShot")
                        {
                            R.LastCastTime = Core.GameTickCount;
                            TapKeyPressed  = false;
                            Stacks--;
                        }
                        break;
                    }
                }
            };
            Gapcloser.OnGapcloser += delegate(AIHeroClient sender, Gapcloser.GapcloserEventArgs args)
            {
                if (sender.IsValidTarget(E.Range) && sender.IsEnemy)
                {
                    if (MyHero.Distance(args.Start, true) > MyHero.Distance(args.End))
                    {
                        if (AutomaticMenu.CheckBox("E.Gapcloser") && MyHero.IsInRange(args.End, E.Range) && E.IsReady)
                        {
                            E.Cast(args.End);
                        }
                        if (MyHero.Distance(args.End, true) < (sender.GetAutoAttackRange(MyHero) * 1.5f).Pow())
                        {
                            WShouldWaitTick = Core.GameTickCount;
                        }
                    }
                }
            };

            MenuManager.AddSubMenu("Keys");
            {
                KeysMenu.AddValue("TapKey", new KeyBind("R Tap Key", false, KeyBind.BindTypes.HoldActive, 'T')).OnValueChange +=
                    delegate(ValueBase <bool> sender, ValueBase <bool> .ValueChangeArgs args)
                {
                    if (args.NewValue && R.IsLearned && (R.IsReady || IsCastingR) && R.EnemyHeroes.Count > 0)
                    {
                        TapKeyPressed = true;
                    }
                };
                KeysMenu.AddValue("UltKey", new KeyBind("R Key in game", false, KeyBind.BindTypes.HoldActive, 'R')).OnValueChange +=
                    delegate(ValueBase <bool> sender, ValueBase <bool> .ValueChangeArgs args)
                {
                    if (args.NewValue && R.IsLearned && (R.IsReady || IsCastingR))
                    {
                        Player.IssueOrder(GameObjectOrder.Stop, Player.Instance.ServerPosition);
                    }
                };
                ToggleManager.RegisterToggle(
                    KeysMenu.AddValue("AutoW",
                                      new KeyBind("AutoW Toggle", false, KeyBind.BindTypes.PressToggle, 'K')),
                    delegate
                {
                    foreach (var enemy in UnitManager.ValidEnemyHeroes.Where(TargetHaveEBuff))
                    {
                        if (MiscMenu.CheckBox("AutoW." + enemy.ChampionName))
                        {
                            CastW(enemy);
                        }
                    }
                });
            }

            W.AddConfigurableHitChancePercent();
            R.AddConfigurableHitChancePercent();

            MenuManager.AddSubMenu("Combo");
            {
                ComboMenu.AddValue("Q", new CheckBox("Use Q"));
                ComboMenu.AddValue("W", new CheckBox("Use W", false));
                ComboMenu.AddValue("E", new CheckBox("Use E", false));
                ComboMenu.AddValue("Items", new CheckBox("Use offensive items"));
            }
            MenuManager.AddSubMenu("Ultimate");
            {
                UltimateMenu.AddStringList("Mode", "R AIM Mode", new[] { "Disabled", "Using TapKey", "Automatic" }, 3);
                UltimateMenu.AddValue("OnlyKillable", new CheckBox("Only attack if it's killable", false));
                UltimateMenu.AddValue("Delay", new Slider("Delay between R's (in ms)", 0, 0, 1500));
                UltimateMenu.AddValue("NearMouse", new GroupLabel("Near Mouse Settings"));
                UltimateMenu.AddValue("NearMouse.Enabled", new CheckBox("Only select target near mouse", false));
                UltimateMenu.AddValue("NearMouse.Radius", new Slider("Near mouse radius", 500, 100, 1500));
                UltimateMenu.AddValue("NearMouse.Draw", new CheckBox("Draw near mouse radius"));
            }
            MenuManager.AddSubMenu("Harass");
            {
                HarassMenu.AddValue("Q", new CheckBox("Use Q"));
                HarassMenu.AddValue("W", new CheckBox("Use W", false));
                HarassMenu.AddValue("E", new CheckBox("Use E", false));
                HarassMenu.AddValue("ManaPercent", new Slider("Minimum Mana Percent", 20));
            }

            MenuManager.AddSubMenu("Clear");
            {
                ClearMenu.AddValue("LaneClear", new GroupLabel("LaneClear"));
                {
                    ClearMenu.AddValue("LaneClear.Q", new Slider("Use Q if hit is greater than {0}", 5, 0, 10));
                    ClearMenu.AddValue("LaneClear.W", new Slider("Use W if hit is greater than {0}", 6, 0, 10));
                    ClearMenu.AddValue("LaneClear.E", new Slider("Use E if hit is greater than {0}", 5, 0, 10));
                    ClearMenu.AddValue("LaneClear.ManaPercent", new Slider("Minimum Mana Percent", 50));
                }
                ClearMenu.AddValue("LastHit", new GroupLabel("LastHit"));
                {
                    ClearMenu.AddStringList("LastHit.Q", "Use Q", new[] { "Never", "Smartly", "Always" }, 1);
                    ClearMenu.AddValue("LastHit.ManaPercent", new Slider("Minimum Mana Percent", 50));
                }
                ClearMenu.AddValue("JungleClear", new GroupLabel("JungleClear"));
                {
                    ClearMenu.AddValue("JungleClear.Q", new CheckBox("Use Q"));
                    ClearMenu.AddValue("JungleClear.W", new CheckBox("Use W", false));
                    ClearMenu.AddValue("JungleClear.E", new CheckBox("Use E", false));
                    ClearMenu.AddValue("JungleClear.ManaPercent", new Slider("Minimum Mana Percent", 20));
                }
            }

            MenuManager.AddKillStealMenu();
            {
                KillStealMenu.AddValue("Q", new CheckBox("Use Q"));
                KillStealMenu.AddValue("Qmin", new CheckBox("Use Q On Minions"));
                KillStealMenu.AddValue("W", new CheckBox("Use W"));
                KillStealMenu.AddValue("E", new CheckBox("Use E", false));
                KillStealMenu.AddValue("R", new CheckBox("Use R"));
            }

            MenuManager.AddSubMenu("Automatic");
            {
                AutomaticMenu.AddValue("E.Gapcloser", new CheckBox("Use E on hero gapclosing / dashing"));
                AutomaticMenu.AddValue("Immobile", new CheckBox("Use E on hero immobile"));
                AutomaticMenu.AddValue("Buffed", new CheckBox("Use W on hero with buff"));
            }
            MenuManager.AddSubMenu("Evader");
            {
                EvaderMenu.AddValue("BlockW", new CheckBox("Block W to Evade"));
            }
            Evader.Initialize();
            Evader.AddCrowdControlSpells();
            Evader.AddDangerousSpells();
            MenuManager.AddSubMenu("Misc");
            {
                MiscMenu.AddValue("Champions", new GroupLabel("Allowed champions to use Auto W"));
                foreach (var enemy in EntityManager.Heroes.Enemies)
                {
                    MiscMenu.AddValue("AutoW." + enemy.ChampionName, new CheckBox(enemy.ChampionName));
                }
            }
            MenuManager.AddDrawingsMenu();
            {
                Q.AddDrawings(false);
                W.AddDrawings();
                E.AddDrawings(false);
                R.AddDrawings();
                DrawingsMenu.AddValue("Toggles", new CheckBox("Draw toggles status"));
                DrawingsMenu.AddValue("R.Killable", new CheckBox("Draw text if target is r killable"));
                DrawingsMenu.AddValue("R.LastPredictedPosition", new CheckBox("Draw last predicted position"));
            }
        }
示例#8
0
        protected override void PermaActive()
        {
            if (IsCastingR)
            {
                IsCastingR = R.Instance.Name == "JhinRShot"; //MyHero.Spellbook.IsChanneling;
            }
            IsCharging = MyHero.HasBuff("JhinPassiveReload");
            Orbwalker.DisableAttacking = IsCastingR;
            Orbwalker.DisableMovement  = IsCastingR;
            if (R.IsReady && !IsCastingR)
            {
                Stacks = 4;
            }
            foreach (var enemy in UnitManager.ValidEnemyHeroes)
            {
                LastPredictedPosition[enemy.NetworkId] = new Tuple <Vector3, bool>(R.GetPrediction(enemy).CastPosition, R.IsKillable(enemy));
            }
            Range  = 1300;
            Target = TargetSelector.GetTarget(UnitManager.ValidEnemyHeroesInRange, DamageType.Physical);
            Q.Type = SpellType.Targeted;
            if (IsCastingR)
            {
                if (TapKeyPressed || UltimateMenu.Slider("Mode") == 2)
                {
                    CastR();
                }
                return;
            }
            if (AutomaticMenu.CheckBox("Buffed") && !IsCastingR)
            {
                foreach (var enemy in UnitManager.ValidEnemyHeroes.Where(TargetHaveEBuff))
                {
                    CastW(enemy);
                }
            }
            if (AutomaticMenu.CheckBox("Immobile") && !IsCastingR)
            {
                foreach (var enemy in E.EnemyHeroes)
                {
                    var time = enemy.GetMovementBlockedDebuffDuration();
                    if (time > 0 && time * 1000 >= E.CastDelay && E.IsReady && enemy.IsValidTarget(E.Range))
                    {
                        E.Cast(enemy.Position);
                    }
                }
            }
            if (AutomaticMenu.CheckBox("Immobile") && !IsCastingR)
            {
                foreach (var enemy in E.EnemyHeroes)
                {
                    var teleportE = ObjectManager.Get <Obj_AI_Base>()
                                    .FirstOrDefault(
                        x =>
                        x.IsEnemy && enemy.IsValidTarget(E.Range) &&
                        (x.HasBuff("teleport_target") || x.HasBuff("Pantheon_GrandSkyfall_Jump")));

                    if (teleportE != null)
                    {
                        E.Cast(teleportE.Position);
                    }
                }
            }
            base.PermaActive();
        }
示例#9
0
        public Xerath()
        {
            Q = new SpellBase(SpellSlot.Q, SpellType.Linear, 1500)
            {
                CastDelay = 500,
                Width     = 100,
            };
            W = new SpellBase(SpellSlot.W, SpellType.Circular, 1000)
            {
                CastDelay = 750,
                Width     = 100,//Width = 250,
            };
            E = new SpellBase(SpellSlot.E, SpellType.Linear, 1125)
            {
                CastDelay             = 250,
                Speed                 = 1400,
                Width                 = 60,
                CollidesWithYasuoWall = true,
                AllowedCollisionCount = 0,
            };
            R = new SpellBase(SpellSlot.R, SpellType.Circular, 5600)
            {
                Width     = 190,
                CastDelay = 600,
            };
            foreach (var enemy in EntityManager.Heroes.Enemies)
            {
                IsKillableOnEnemyPosition.Add(enemy.NetworkId, new Text("R KILLABLE", new Font("Arial", TextEnemyPositionSize, FontStyle.Bold))
                {
                    Color = Color.Red,
                });
                IsKillableOnScreen.Add(enemy.NetworkId, new Text(enemy.BaseSkinName + " is killable", new Font("Arial", TextScreenSize, FontStyle.Bold))
                {
                    Color = Color.Red,
                });
            }
            Obj_AI_Base.OnProcessSpellCast += delegate(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
            {
                if (sender.IsMe)
                {
                    switch (args.Slot)
                    {
                    case SpellSlot.Q:
                        Q.LastCastTime = Core.GameTickCount;
                        break;

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

                    case SpellSlot.E:
                        E.LastCastTime    = Core.GameTickCount;
                        E.LastEndPosition = sender.Position + (args.End - sender.Position).Normalized() * E.Range;
                        break;

                    case SpellSlot.R:
                        R.LastCastTime = Core.GameTickCount;
                        TapKeyPressed  = false;
                        break;
                    }
                }
            };
            GameObject.OnCreate += delegate(GameObject sender, EventArgs args)
            {
                var missile = sender as MissileClient;
                if (missile != null && missile.SpellCaster.IsMe && missile.SData.Name.ToLower() == Spells.E.MissileName)
                {
                    Spells.E.Missile = missile;
                }
            };
            GameObject.OnDelete += delegate(GameObject sender, EventArgs args)
            {
                var missile = sender as MissileClient;
                if (missile != null && missile.SpellCaster.IsMe && missile.SData.Name.ToLower() == Spells.E.MissileName)
                {
                    Spells.E.Missile = null;
                }
            };
            Gapcloser.OnGapcloser += delegate(AIHeroClient sender, Gapcloser.GapcloserEventArgs args)
            {
                if (sender.IsEnemy && AutomaticMenu.CheckBox("Gapcloser") && args.End.Distance(MyHero, true) <= sender.Distance(MyHero, true))
                {
                    CastE(sender);
                }
            };
            Dash.OnDash += delegate(Obj_AI_Base sender, Dash.DashEventArgs args)
            {
                if (sender.IsEnemy && AutomaticMenu.CheckBox("Gapcloser") && args.EndPos.Distance(MyHero, true) <= sender.Distance(MyHero, true))
                {
                    CastE(sender);
                }
            };
            Interrupter.OnInterruptableSpell +=
                delegate(Obj_AI_Base sender, Interrupter.InterruptableSpellEventArgs args)
            {
                if (sender.IsEnemy && AutomaticMenu.CheckBox("Interrupter"))
                {
                    CastE(sender);
                }
            };

            MenuManager.AddSubMenu("Keys");
            {
                KeysMenu.AddValue("TapKey",
                                  new KeyBind("R Tap Key", false, KeyBind.BindTypes.HoldActive, 'T')).OnValueChange += delegate(ValueBase <bool> sender, ValueBase <bool> .ValueChangeArgs args)
                {
                    if (args.NewValue && R.IsLearned)
                    {
                        TapKeyPressed = true;
                        if (!IsCastingR)
                        {
                            R.Cast();
                        }
                    }
                };
                ToggleManager.RegisterToggle(
                    KeysMenu.AddValue("StartWithCC",
                                      new KeyBind("Start with CC", false, KeyBind.BindTypes.PressToggle, 'L')),
                    delegate
                {
                });
            }
            Q.AddConfigurableHitChancePercent();
            W.AddConfigurableHitChancePercent();
            E.AddConfigurableHitChancePercent();
            R.AddConfigurableHitChancePercent();

            MenuManager.AddSubMenu("Combo");
            {
                ComboMenu.AddValue("Q", new CheckBox("Use Q"));
                ComboMenu.AddValue("W", new CheckBox("Use W"));
                ComboMenu.AddValue("E", new CheckBox("Use E"));
            }

            MenuManager.AddSubMenu("Ultimate");
            {
                UltimateMenu.AddStringList("Mode", "R AIM Mode", new[] { "Disabled", "Using TapKey", "Automatic" }, 2);
                UltimateMenu.AddValue("Delay", new Slider("Delay between R's (in ms)", 0, 0, 1500));
                UltimateMenu.AddValue("NearMouse", new GroupLabel("Near Mouse Settings"));
                UltimateMenu.AddValue("NearMouse.Enabled", new CheckBox("Only select target near mouse", false));
                UltimateMenu.AddValue("NearMouse.Radius", new Slider("Near mouse radius", 500, 100, 1500));
                UltimateMenu.AddValue("NearMouse.Draw", new CheckBox("Draw near mouse radius"));
            }

            MenuManager.AddSubMenu("Harass");
            {
                HarassMenu.AddValue("Q", new CheckBox("Use Q", false));
                HarassMenu.AddValue("W", new CheckBox("Use W", false));
                HarassMenu.AddValue("E", new CheckBox("Use E", false));
                HarassMenu.AddValue("ManaPercent", new Slider("Minimum Mana Percent", 25));
            }

            MenuManager.AddSubMenu("Clear");
            {
                ClearMenu.AddValue("LaneClear", new GroupLabel("LaneClear"));
                {
                    ClearMenu.AddValue("LaneClear.Q", new Slider("Use Q if hit is greater than {0}", 0, 0, 10));
                    ClearMenu.AddValue("LaneClear.W", new Slider("Use W if hit is greater than {0}", 3, 0, 10));
                    ClearMenu.AddValue("LaneClear.ManaPercent", new Slider("Minimum Mana Percent", 50));
                }
                ClearMenu.AddValue("JungleClear", new GroupLabel("JungleClear"));
                {
                    ClearMenu.AddValue("JungleClear.Q", new CheckBox("Use Q"));
                    ClearMenu.AddValue("JungleClear.W", new CheckBox("Use W"));
                    ClearMenu.AddValue("JungleClear.E", new CheckBox("Use E"));
                    ClearMenu.AddValue("JungleClear.ManaPercent", new Slider("Minimum Mana Percent", 20));
                }
            }
            MenuManager.AddKillStealMenu();
            {
                KillStealMenu.AddValue("Q", new CheckBox("Use Q"));
                KillStealMenu.AddValue("W", new CheckBox("Use W"));
                KillStealMenu.AddValue("E", new CheckBox("Use E"));
                KillStealMenu.AddValue("R", new CheckBox("Use R", false));
            }
            MenuManager.AddSubMenu("Automatic");
            {
                AutomaticMenu.AddValue("Interrupter", new CheckBox("Use E on channeling spells"));
                AutomaticMenu.AddValue("Gapcloser", new CheckBox("Use E on hero gapclosing / dashing"));
            }
            MenuManager.AddDrawingsMenu();
            {
                Q.AddDrawings();
                W.AddDrawings();
                E.AddDrawings();
                R.AddDrawings();
                DrawingsMenu.AddValue("R.Killable", new CheckBox("Draw text if target is r killable"));
                DrawingsMenu.AddValue("Toggles", new CheckBox("Draw toggles status"));
            }
        }
示例#10
0
文件: Jhin.cs 项目: chienhao10/CHOP
        public Jhin()
        {
            foreach (var enemy in EntityManager.Heroes.Enemies)
            {
                TextsInScreen.Add(enemy.NetworkId, new Text(enemy.ChampionName + " 可击杀", new Font("Arial", 30F, FontStyle.Bold))
                {
                    Color = Color.Red
                });
                TextsInHeroPosition.Add(enemy.NetworkId, new Text("R 可击杀", new Font("Arial", 23F, FontStyle.Bold))
                {
                    Color = Color.Red
                });
                LastPredictedPositionText.Add(enemy.NetworkId, new Text(enemy.ChampionName + " 最后预知位置", new Font("Arial", 23F, FontStyle.Bold))
                {
                    Color = Color.Red
                });
            }
            Q = new SpellBase(SpellSlot.Q, SpellType.Targeted, 600)
            {
                Width     = 450,
                Speed     = 1800,
                CastDelay = 250,
            };
            W = new SpellBase(SpellSlot.W, SpellType.Linear, 2500)
            {
                Width                 = 40,
                CastDelay             = 750,
                AllowedCollisionCount = -1,
            };
            E = new SpellBase(SpellSlot.E, SpellType.Circular, 750)
            {
                Width     = 135,
                CastDelay = 250,
                Speed     = 1600,
            };
            R = new SpellBase(SpellSlot.R, SpellType.Linear, 3500)
            {
                Width                 = 80,
                CastDelay             = 200,
                Speed                 = 5000,
                AllowedCollisionCount = -1,
            };
            Evader.OnEvader += delegate
            {
                if (EvaderMenu.CheckBox("BlockW"))
                {
                    LastBlockTick = Core.GameTickCount;
                }
            };

            Spellbook.OnCastSpell += delegate(Spellbook sender, SpellbookCastSpellEventArgs args)
            {
                if (sender.Owner.IsMe)
                {
                    if (args.Slot == SpellSlot.W)
                    {
                        args.Process = Core.GameTickCount - LastBlockTick > 750;
                    }
                }
            };
            Obj_AI_Base.OnProcessSpellCast += delegate(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
            {
                if (sender.IsMe)
                {
                    switch (args.Slot)
                    {
                    case SpellSlot.W:
                        W.LastCastTime    = Core.GameTickCount;
                        W.LastEndPosition = args.End;
                        break;

                    case SpellSlot.R:
                        if (args.SData.Name == "JhinR")
                        {
                            IsCastingR = true;
                            LastRCone  = new Geometry.Polygon.Sector(sender.Position, args.End, (float)(60f * Math.PI / 180f), R.Range);
                            Stacks     = 4;
                        }
                        else if (args.SData.Name == "JhinRShot")
                        {
                            R.LastCastTime = Core.GameTickCount;
                            TapKeyPressed  = false;
                            Stacks--;
                        }
                        break;
                    }
                }
            };
            Gapcloser.OnGapcloser += delegate(AIHeroClient sender, Gapcloser.GapcloserEventArgs args)
            {
                if (sender.IsValidTarget() && sender.IsEnemy)
                {
                    if (MyHero.Distance(args.Start, true) > MyHero.Distance(args.End))
                    {
                        if (AutomaticMenu.CheckBox("E.Gapcloser") && MyHero.IsInRange(args.End, E.Range))
                        {
                            E.Cast(args.End);
                        }
                        if (MyHero.Distance(args.End, true) < (sender.GetAutoAttackRange(MyHero) * 1.5f).Pow())
                        {
                            WShouldWaitTick = Core.GameTickCount;
                        }
                    }
                }
            };

            MenuManager.AddSubMenu("Keys");
            {
                KeysMenu.AddValue("TapKey", new KeyBind("R 半自动发射", false, KeyBind.BindTypes.HoldActive, 32)).OnValueChange +=
                    delegate(ValueBase <bool> sender, ValueBase <bool> .ValueChangeArgs args)
                {
                    if (args.NewValue && R.IsLearned && IsCastingR)
                    {
                        TapKeyPressed = true;
                    }
                };
                ToggleManager.RegisterToggle(
                    KeysMenu.AddValue("AutoW",
                                      new KeyBind("自动W开关", true, KeyBind.BindTypes.PressToggle, 'K')),
                    delegate
                {
                    foreach (var enemy in UnitManager.ValidEnemyHeroes.Where(TargetHaveEBuff))
                    {
                        if (MyHero.ManaPercent >= MiscMenu.Slider("W.ManaPercent"))
                        {
                            if (MiscMenu.CheckBox("自动W." + enemy.ChampionName))
                            {
                                CastW(enemy);
                            }
                        }
                    }
                });
            }

            W.AddConfigurableHitChancePercent();
            R.AddConfigurableHitChancePercent();

            MenuManager.AddSubMenu("Combo");
            {
                ComboMenu.AddValue("Q", new CheckBox("Use Q"));
                ComboMenu.AddValue("E", new CheckBox("Use E"));
                ComboMenu.AddValue("Items", new CheckBox("Use offensive items"));
                ComboMenu.AddStringList("W", "Use W", new[] { "Never", "Only buffed enemies", "Always" }, 2);
            }
            MenuManager.AddSubMenu("Ultimate");
            {
                UltimateMenu.AddStringList("Mode", "R 瞄准模式", new[] { "不使用", "使用扳机键", "自动" }, 2);
                UltimateMenu.AddValue("OnlyKillable", new CheckBox("只攻击可击杀目标"));
                UltimateMenu.AddValue("Delay", new Slider("R之间的延迟(毫秒)", 0, 0, 1500));
                UltimateMenu.AddValue("NearMouse", new GroupLabel("鼠标附近设置"));
                UltimateMenu.AddValue("NearMouse.Enabled", new CheckBox("只选择鼠标附近目标", false));
                UltimateMenu.AddValue("NearMouse.Radius", new Slider("靠近鼠标半径", 500, 100, 1500));
                UltimateMenu.AddValue("NearMouse.Draw", new CheckBox("显示鼠标半径"));
            }
            MenuManager.AddSubMenu("Harass");
            {
                HarassMenu.AddValue("Q", new CheckBox("Use Q"));
                HarassMenu.AddValue("W", new CheckBox("Use W", false));
                HarassMenu.AddValue("E", new CheckBox("Use E", false));
                HarassMenu.AddValue("ManaPercent", new Slider("Minimum Mana Percent", 20));
            }

            MenuManager.AddSubMenu("Clear");
            {
                ClearMenu.AddValue("LaneClear", new GroupLabel("LaneClear"));
                {
                    ClearMenu.AddValue("LaneClear.Q", new Slider("Use Q if hit is greater than {0}", 3, 0, 10));
                    ClearMenu.AddValue("LaneClear.W", new Slider("Use W if hit is greater than {0}", 5, 0, 10));
                    ClearMenu.AddValue("LaneClear.E", new Slider("Use E if hit is greater than {0}", 4, 0, 10));
                    ClearMenu.AddValue("LaneClear.ManaPercent", new Slider("Minimum Mana Percent", 50));
                }
                ClearMenu.AddValue("LastHit", new GroupLabel("LastHit"));
                {
                    ClearMenu.AddStringList("LastHit.Q", "Use Q", new[] { "Never", "Smartly", "Always" }, 1);
                    ClearMenu.AddValue("LastHit.ManaPercent", new Slider("Minimum Mana Percent", 50));
                }
                ClearMenu.AddValue("JungleClear", new GroupLabel("JungleClear"));
                {
                    ClearMenu.AddValue("JungleClear.Q", new CheckBox("Use Q"));
                    ClearMenu.AddValue("JungleClear.W", new CheckBox("Use W"));
                    ClearMenu.AddValue("JungleClear.E", new CheckBox("Use E"));
                    ClearMenu.AddValue("JungleClear.ManaPercent", new Slider("Minimum Mana Percent", 20));
                }
            }

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

            MenuManager.AddSubMenu("Automatic");
            {
                AutomaticMenu.AddValue("E.Gapcloser", new CheckBox("Use E on hero gapclosing / dashing"));
                AutomaticMenu.AddValue("Immobile", new CheckBox("对无法移动目标使用E"));
            }
            MenuManager.AddSubMenu("Evader");
            {
                EvaderMenu.AddValue("BlockW", new CheckBox("保留W进行躲避"));
            }
            Evader.Initialize();
            Evader.AddCrowdControlSpells();
            Evader.AddDangerousSpells();
            MenuManager.AddSubMenu("Misc");
            {
                MiscMenu.AddValue("W.ManaPercent", new Slider("最低蓝量百分比使用自动W", 10));
                MiscMenu.AddValue("Champions", new GroupLabel("自动使用W英雄"));
                foreach (var enemy in EntityManager.Heroes.Enemies)
                {
                    MiscMenu.AddValue("自动W." + enemy.ChampionName, new CheckBox(enemy.ChampionName));
                }
            }
            MenuManager.AddDrawingsMenu();
            {
                Q.AddDrawings(false);
                W.AddDrawings();
                E.AddDrawings(false);
                R.AddDrawings();
                DrawingsMenu.AddValue("Toggles", new CheckBox("Draw toggles status"));
                DrawingsMenu.AddValue("R.Killable", new CheckBox("显示可被R击杀的目标"));
                DrawingsMenu.AddValue("R.LastPredictedPosition", new CheckBox("显示预判敌人最后出现位置"));
            }
        }
示例#11
0
        public static void ConfigInitialize()
        {
            Menu = MainMenu.AddMenu("SardOpeia", "SardOpeia");
            Menu.AddGroupLabel("SardOpeia v" + Program.AddonVersion + " by Marwanpro");
            Menu.AddSeparator();
            Menu.AddLabel("If you have any problem/bug/suggestion, post in forum");
            Menu.AddLabel("Have a fun (And Free ELO) with this addon !");

            // --- General Menu Todo: Fix and add missings features
            GeneralMenu = Menu.AddSubMenu("General Option", "MenuGeneral");
            GeneralMenu.AddGroupLabel("General Tweak - Configure main options");
            GeneralMenu.AddSeparator();
            {
                GeneralMenu.Add("autouseE", new CheckBox("Spam E on Poisonned Target"));
                GeneralMenu.Add("useEifkillable", new CheckBox("Use E without poison if killable"));
            }

            // --- Draw Menu Todo: Check
            DrawMenu = Menu.AddSubMenu("Draw", "MenuDraw");
            DrawMenu.AddGroupLabel("Draw - Show range circle arround you and other information");
            DrawMenu.AddSeparator();
            {
                DrawMenu.Add("drawQW", new CheckBox("Draw Q/W"));
                DrawMenu.Add("drawE", new CheckBox("Draw E Range"));
                DrawMenu.Add("drawR", new CheckBox("Draw Ultimate"));
                DrawMenu.AddSeparator();
                DrawMenu.AddLabel("Green Circle: Spell Ready");
                DrawMenu.AddLabel("Red Circle: Spell in Cooldown");
                DrawMenu.AddLabel("Purple Circle (Q/W): Only Q or W ready");
                DrawMenu.AddLabel("Yellow Circle (E): 0.5 sec of Cooldown");
                DrawMenu.AddSeparator();
                DrawMenu.AddLabel("Don't Forget to disable AA circle in OrbWalker's settings");
            }

            // --- Combo Menu Todo : Add Delayer
            ComboMenu = Menu.AddSubMenu("Combo", "MenuCombo");
            ComboMenu.AddGroupLabel("Combo");
            ComboMenu.AddSeparator();
            {
                ComboMenu.Add("comboQ", new CheckBox("Use Q"));
                ComboMenu.Add("comboW", new CheckBox("Use W"));
                ComboMenu.Add("comboE", new CheckBox("Use E"));
            }

            // --- Harass Menu Todo: Make it
            HarassMenu = Menu.AddSubMenu("Harass", "MenuHarass");
            HarassMenu.AddGroupLabel("Harass - Auto Harass");
            HarassMenu.AddSeparator();
            {
                HarassMenu.Add("testa", new CheckBox("Test A"));
            }

            // --- Farm Menu Todo: Improve it
            FarmMenu = Menu.AddSubMenu("Farm", "MenuFarm");
            FarmMenu.AddGroupLabel("Farm");
            FarmMenu.AddSeparator();
            {
                FarmMenu.Add("EtoFinishCreep", new CheckBox("E on Poisonned Creep (LastHit Mode)"));
            }

            // --- Ultimate Menu Todo: LOL
            UltimateMenu = Menu.AddSubMenu("Ultimate", "MenuUltimate");
            UltimateMenu.AddGroupLabel("Ultimate Logic");
            UltimateMenu.AddSeparator();
            {
                UltimateMenu.AddLabel("Enable this option to allow this script to use your Ultimate");
                UltimateMenu.Add("enableR", new CheckBox("Enable Ultimate Logic", false));
                UltimateMenu.AddSeparator();
                UltimateMenu.Add("RonGapcloser", new CheckBox("Use R on GapCloser", false));
                UltimateMenu.Add("RtoInterrupt", new CheckBox("Use R to Interrupt", false));
                UltimateMenu.Add("RonCombo", new CheckBox("Use R on Combo", false));
                UltimateMenu.Add("FaceToUlt", new Slider("Minimum number of facing ennemies to use Ultimate", 3, 1, 5));
            }
        }
示例#12
0
        public Syndra()
        {
            Q = new SpellBase(SpellSlot.Q, SpellType.Circular, 825)
            {
                CastDelay = 600,
                Width     = Spells.Q.Width,
            };
            W = new SpellBase(SpellSlot.W, SpellType.Circular, 950)
            {
                CastDelay = 250,
                Width     = Spells.W.Width,
                Speed     = 1450,
            };
            E = new SpellBase(SpellSlot.E, SpellType.Cone, 675 + Spells.E.ExtraRange)
            {
                CastDelay = 250,
                Width     = Spells.E.Level1Angle,
                Speed     = 2500,
            };
            QE = new SpellBase(SpellSlot.E, SpellType.Linear, Spells.QE.Range)
            {
                CastDelay = Spells.QE.CastDelay,
                Width     = 60,
                Speed     = Spells.QE.Speed,
            };
            R = new SpellBase(SpellSlot.R, SpellType.Targeted, Spells.R.Level1Range);
            foreach (var enemy in EntityManager.Heroes.Enemies)
            {
                IsKillableOnEnemyPosition.Add(enemy.NetworkId, new Text("R KILLABLE", new Font("Arial", TextEnemyPositionSize, FontStyle.Bold))
                {
                    Color = Color.Red,
                });
                IsKillableOnScreen.Add(enemy.NetworkId, new Text(enemy.BaseSkinName + " is killable", new Font("Arial", TextScreenSize, FontStyle.Bold))
                {
                    Color = Color.Red,
                });
            }

            Obj_AI_Base.OnBasicAttack += delegate(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
            {
                if (sender == Target && (ModeManager.LastHit || ModeManager.Flee || ModeManager.Harass || ModeManager.LaneClear) && sender.IsValidTarget(1300) && sender.IsEnemy && sender.Type == GameObjectType.AIHeroClient)
                {
                    if (Q.IsReady && sender.IsValidTarget(825))
                    {
                        Q.Cast(sender.ServerPosition);
                    }
                    if (W.IsReady && sender.IsValidTarget(950))
                    {
                        CastW(sender);
                    }
                    if (E.IsReady && sender.IsValidTarget(1300))
                    {
                        CastE(sender);
                    }
                }
            };

            Obj_AI_Base.OnProcessSpellCast += delegate(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
            {
                if (sender.IsMe)
                {
                    switch (args.Slot)
                    {
                    case SpellSlot.Q:
                        Q.LastEndPosition = args.End.IsInRange(sender, Q.Range) ? args.End : (MyHero.Position + (args.End - MyHero.Position).Normalized() * Q.Range);
                        Q.LastCastTime    = Core.GameTickCount;
                        break;

                    case SpellSlot.W:
                        if (args.SData.Name.ToLower() == "syndrawcast")
                        {
                            W.LastEndPosition = args.End.IsInRange(sender, W.Range) ? args.End : (MyHero.Position + (args.End - MyHero.Position).Normalized() * W.Range);
                            W.LastCastTime    = Core.GameTickCount;
                        }
                        break;

                    case SpellSlot.E:
                        E.LastCastTime = Core.GameTickCount;
                        break;
                    }
                }
                {
                    if (!sender.IsDashing() && sender == Target && (ModeManager.LastHit || ModeManager.Flee || ModeManager.Harass || ModeManager.LaneClear) && sender.IsValidTarget(1300) && sender.IsEnemy && sender.Type == GameObjectType.AIHeroClient)
                    {
                        if (Q.IsReady && sender.IsValidTarget(825))
                        {
                            Q.Cast(sender.ServerPosition);
                        }
                        if (W.IsReady && sender.IsValidTarget(950))
                        {
                            CastW(sender);
                        }
                        if (E.IsReady && sender.IsValidTarget(1300))
                        {
                            CastE(sender);
                        }
                    }
                }
            };
            GameObject.OnCreate += delegate(GameObject sender, EventArgs args)
            {
                var objBase = sender as Obj_AI_Base;
                if (objBase != null && Sphere.IsMySphere(objBase))
                {
                    Spheres.Add(new Sphere(objBase));
                }
            };
            Gapcloser.OnGapcloser += delegate(AIHeroClient sender, Gapcloser.GapcloserEventArgs args)
            {
                if (sender.IsEnemy && AutomaticMenu.CheckBox("Gapcloser") && args.End.Distance(MyHero, true) <= sender.Distance(MyHero, true) && args.End.Distance(MyHero, true) <= 900)
                {
                    E.Cast(args.End);
                    CastQE(sender);
                }
            };
            Dash.OnDash += delegate(Obj_AI_Base sender, Dash.DashEventArgs args)
            {
                if (sender.IsEnemy && AutomaticMenu.CheckBox("Gapcloser") && args.EndPos.Distance(MyHero, true) <= sender.Distance(MyHero, true) && args.EndPos.Distance(MyHero, true) <= E.Range)
                {
                    CastE(sender);
                    CastQE(sender);
                }
            };
            Interrupter.OnInterruptableSpell +=
                delegate(Obj_AI_Base sender, Interrupter.InterruptableSpellEventArgs args)
            {
                if (sender.IsEnemy && AutomaticMenu.CheckBox("Interrupter"))
                {
                    CastE(sender);
                    CastQE(sender);
                }
            };
            MenuManager.AddSubMenu("Keys");
            {
                KeysMenu.AddValue("QE",
                                  new KeyBind("Use QE/WE on enemy near mouse", false, KeyBind.BindTypes.HoldActive, 'E'));
                ToggleManager.RegisterToggle(
                    KeysMenu.AddValue("HarassToggle",
                                      new KeyBind("Harass Toggle", false, KeyBind.BindTypes.PressToggle, 'K')),
                    delegate
                {
                    if (!ModeManager.Combo)
                    {
                        Harass(HarassMenu);
                    }
                });
            }
            Q.AddConfigurableHitChancePercent(50);
            W.AddConfigurableHitChancePercent(60);
            QE.AddConfigurableHitChancePercent(75);

            MenuManager.AddSubMenu("Combo");
            {
                ComboMenu.AddValue("Q", new CheckBox("Use Q"));
                ComboMenu.AddValue("W", new CheckBox("Use W"));
                ComboMenu.AddValue("E", new CheckBox("Use E"));
                ComboMenu.AddValue("QE", new CheckBox("Use QE"));
                ComboMenu.AddValue("WE", new CheckBox("Use WE"));
            }

            MenuManager.AddSubMenu("Ultimate");
            {
                UltimateMenu.AddValue("BlackList", new GroupLabel("BlackList"));
                var hashSet = new HashSet <string>();
                foreach (var enemy in EntityManager.Heroes.Enemies.Where(enemy => hashSet.Add(enemy.ChampionName)))
                {
                    UltimateMenu.AddValue("BlackList." + enemy.ChampionName, new CheckBox(enemy.ChampionName));
                }
            }
            MenuManager.AddSubMenu("Harass");
            {
                HarassMenu.AddValue("Turret", new CheckBox("Don't harass under enemy turret"));
                HarassMenu.AddValue("Q", new CheckBox("Use Q"));
                HarassMenu.AddValue("W", new CheckBox("Use W", false));
                HarassMenu.AddValue("E", new CheckBox("Use E", false));
                HarassMenu.AddValue("QE", new CheckBox("Use QE", false));
                HarassMenu.AddValue("WE", new CheckBox("Use WE", false));
                HarassMenu.AddValue("ManaPercent", new Slider("Minimum Mana Percent", 25));
            }
            MenuManager.AddSubMenu("Clear");
            {
                ClearMenu.AddValue("LaneClear", new GroupLabel("LaneClear"));
                {
                    ClearMenu.AddValue("LaneClear.Q", new Slider("Use Q if hit >= {0}", 3, 0, 10));
                    ClearMenu.AddValue("LaneClear.W", new Slider("Use W if hit >= {0}", 3, 0, 10));
                    ClearMenu.AddValue("LaneClear.ManaPercent", new Slider("Minimum Mana Percent", 50));
                }
                ClearMenu.AddValue("LastHit", new GroupLabel("LastHit"));
                {
                    ClearMenu.AddStringList("LastHit.Q", "Use Q", new[] { "Never", "Smartly", "Always" }, 1);
                    ClearMenu.AddValue("LastHit.ManaPercent", new Slider("Minimum Mana Percent", 50));
                }
                ClearMenu.AddValue("JungleClear", new GroupLabel("JungleClear"));
                {
                    ClearMenu.AddValue("JungleClear.Q", new CheckBox("Use Q"));
                    ClearMenu.AddValue("JungleClear.W", new CheckBox("Use W"));
                    ClearMenu.AddValue("JungleClear.E", new CheckBox("Use E"));
                    ClearMenu.AddValue("JungleClear.ManaPercent", new Slider("Minimum Mana Percent", 20));
                }
            }
            MenuManager.AddKillStealMenu();
            {
                KillStealMenu.AddValue("Q", new CheckBox("Use Q"));
                KillStealMenu.AddValue("W", new CheckBox("Use W"));
                KillStealMenu.AddValue("E", new CheckBox("Use E"));
                KillStealMenu.AddValue("R", new CheckBox("Use R", false));
            }
            MenuManager.AddSubMenu("Automatic");
            {
                AutomaticMenu.AddValue("Interrupter", new CheckBox("Use E on channeling spells"));
                AutomaticMenu.AddValue("Gapcloser", new CheckBox("Use E on hero gapclosing / dashing"));
            }
            MenuManager.AddSubMenu("Misc");
            {
                MiscMenu.AddValue("QE.ReducedRange", new Slider("Less QE Range", 0, 0, 650));
            }
            MenuManager.AddDrawingsMenu();
            {
                Q.AddDrawings();
                W.AddDrawings();
                QE.AddDrawings();
                R.AddDrawings();
                DrawingsMenu.AddValue("R.Killable", new CheckBox("Draw text if target is r killable"));
                DrawingsMenu.AddValue("Toggles", new CheckBox("Draw toggles status"));
                DrawingsMenu.AddValue("E.Lines", new CheckBox("Draw lines for E"));
            }
            foreach (var sphere in ObjectManager.Get <Obj_AI_Minion>().Where(o => o.IsValid && o.IsVisible && !o.IsDead && Sphere.IsMySphere(o)))
            {
                Spheres.Add(new Sphere(sphere));
            }
        }
示例#13
0
        public static void Game_OnGameLoad()
        {
            if (Player.ChampionName != ChampionName)
            {
                return;
            }

            #region Spells
            Q = new LeagueSharp.Common.Spell(SpellSlot.Q, 1000f);
            Q.SetSkillshot(0.7f, 55f, float.MaxValue, true, SkillshotType.SkillshotLine);
            W = new LeagueSharp.Common.Spell(SpellSlot.W, 610f);
            W.SetTargetted(0.103f, 550f);
            E = new LeagueSharp.Common.Spell(SpellSlot.E, 610f);
            E.SetTargetted(.5f, 550f);
            R = new LeagueSharp.Common.Spell(SpellSlot.R);
            R.SetSkillshot(2.5f, 450f, float.MaxValue, false, SkillshotType.SkillshotCircle);
            #endregion

            #region Items/SummonerSpells
            IgniteSlot   = Player.GetSpellSlot("summonerdot");
            HealthPot    = new Items.Item(2003, 0);
            BiscuitOfRej = new Items.Item(2010, 0);
            TearOfGod    = new Items.Item(3070, 0);
            Manamune     = new Items.Item(3004, 0);
            Seraph       = new Items.Item(3040, 0);
            Archangel    = new Items.Item(3003, 0);
            Flask        = new Items.Item(2031, 0);
            Flask1       = new Items.Item(2032, 0);
            Flask2       = new Items.Item(2033, 0);
            HexGunBlade  = new Items.Item(3146, 600f);
            HexProtobelt = new Items.Item(3152, 300f);
            HexGLP       = new Items.Item(3030, 300f);
            #endregion

            #region Menu
            menu = MainMenu.AddMenu("SurvivorRyze", "SurvivorRyze");

            ComboMenu = menu.AddSubMenu("Combo", "Combo");
            ComboMenu.Add("ComboMode", new ComboBox("Combo Mode:", 0, "Burst", "Survivor Mode (Shield)"));
            ComboMenu.Add("CUseQ", new CheckBox("Cast Q"));
            ComboMenu.Add("CUseW", new CheckBox("Cast W"));
            ComboMenu.Add("CUseE", new CheckBox("Cast E"));
            ComboMenu.Add("CBlockAA", new CheckBox("Block AA in Combo Mode"));
            ComboMenu.Add("Combo2TimesMana", new CheckBox("Champion needs to have mana for atleast 2 times (Q/W/E)?"));
            ComboMenu.Add("CUseR", new CheckBox("Ultimate (R) in Ultimate Menu"));
            ComboMenu.Add("CUseIgnite", new CheckBox("Use Ignite (Smart)"));

            HarassMenu = menu.AddSubMenu("Harass", "Harass");
            HarassMenu.Add("HarassQ", new CheckBox("Use Q"));
            HarassMenu.Add("HarassW", new CheckBox("Use W", false));
            HarassMenu.Add("HarassE", new CheckBox("Use E", false));
            HarassMenu.Add("HarassManaManager", new Slider("Mana Manager (%)", 30, 1, 100));

            LaneClearMenu = menu.AddSubMenu("Lane Clear", "LaneClear");
            LaneClearMenu.Add("UseQLC", new CheckBox("Use Q to LaneClear"));
            LaneClearMenu.Add("UseELC", new CheckBox("Use E to LaneClear"));
            LaneClearMenu.Add("LaneClearManaManager", new Slider("Mana Manager (%)", 30, 1, 100));

            ItemsMenu = menu.AddSubMenu("Items Menu", "ItemsMenu");
            ItemsMenu.AddGroupLabel("Tear Stacking : ");
            ItemsMenu.Add("StackTear", new CheckBox("Stack Tear in Fountain?"));
            ItemsMenu.Add("StackTearNF", new CheckBox("Stack Tear if Blue Buff?"));
            ItemsMenu.AddGroupLabel("Seraph's Embrace : ");
            ItemsMenu.Add("UseSeraph", new CheckBox("Use [Seraph's Embrace]?"));
            ItemsMenu.Add("UseSeraphIfEnemiesAreNearby", new CheckBox("Use [Seraph's Embrace] only if Enemies are nearby?"));
            ItemsMenu.Add("UseSeraphAtHP", new Slider("Activate [Seraph's Embrace] at HP %?", 15, 0, 100));
            ItemsMenu.AddGroupLabel("Potions : ");
            ItemsMenu.Add("UseHPPotion", new Slider("Use HP Potion/Biscuit/Flask at % Health", 15, 0, 100));
            ItemsMenu.Add("UseItemFlask", new CheckBox("Use Flasks If You don't have Potions?"));
            ItemsMenu.Add("UsePotionOnlyIfEnemiesAreInRange", new CheckBox("Use Potions/Flasks only if Enemies are nearby?"));
            ItemsMenu.AddGroupLabel("Gunblade : ");
            ItemsMenu.Add("UseHexGunBlade", new CheckBox("Use [Hextech Gunblade]?"));
            ItemsMenu.Add("HexGunBladeAtHP", new Slider("Use [Hextech Gunblade] at HP %?", 25, 0, 100));
            ItemsMenu.AddGroupLabel("Protobelt : ");
            ItemsMenu.Add("UseHexProtobelt", new CheckBox("Use [Hextech Protobelt-01]?"));
            ItemsMenu.Add("HexProtobeltAtHP", new Slider("Use [Hextech Protobelt-01] at HP %?", 25, 0, 100));
            ItemsMenu.AddGroupLabel("GLP-800 : ");
            ItemsMenu.Add("UseHexGLP", new CheckBox("Use [Hextech GLP-800]?"));
            ItemsMenu.Add("HexGLPAtHP", new Slider("Use [Hextech GLP-800] at HP %?", 25, 0, 100));

            HitChanceMenu = menu.AddSubMenu("HitChance Menu", "HitChance");
            HitChanceMenu.Add("HitChance", new ComboBox("Hit Chance", 0, "Medium", "High", "Very High"));

            UltimateMenu = menu.AddSubMenu("Ultimate Menu", "UltMenu");
            UltimateMenu.Add("UseR", new KeyBind("Use R Automatically (Beta)", false, KeyBind.BindTypes.HoldActive, 'G'));

            MiscMenu = menu.AddSubMenu("Misc Menu", "MiscMenu");
            MiscMenu.Add("KSQ", new CheckBox("Use Q to KS"));
            MiscMenu.Add("KSW", new CheckBox("Use W to KS"));
            MiscMenu.Add("KSE", new CheckBox("Use E to KS"));
            MiscMenu.Add("InterruptWithW", new CheckBox("Use W to Interrupt Channeling Spells"));
            MiscMenu.Add("WGapCloser", new CheckBox("Use W on Enemy GapCloser (Irelia's Q)"));
            MiscMenu.Add("ChaseWithR", new CheckBox("Use R to Chase (Being Added)"));
            MiscMenu.Add("EscapeWithR", new CheckBox("Use R to Escape (Ultimate Menu)"));

            AutoLevelerMenu = menu.AddSubMenu("AutoLeveler Menu", "AutoLevelerMenu");
            AutoLevelerMenu.Add("AutoLevelUp", new CheckBox("AutoLevel Up Spells?"));
            AutoLevelerMenu.Add("AutoLevelUp1", new ComboBox("First: ", 3, "Q", "W", "E", "R"));
            AutoLevelerMenu.Add("AutoLevelUp2", new ComboBox("Second: ", 0, "Q", "W", "E", "R"));
            AutoLevelerMenu.Add("AutoLevelUp3", new ComboBox("Third: ", 2, "Q", "W", "E", "R"));
            AutoLevelerMenu.Add("AutoLevelUp4", new ComboBox("Fourth: ", 1, "Q", "W", "E", "R"));
            AutoLevelerMenu.Add("AutoLvlStartFrom", new Slider("AutoLeveler Start from Level: ", 2, 1, 6));

            DrawingMenu = menu.AddSubMenu("Drawing", "Drawing");
            DrawingMenu.Add("DrawQ", new CheckBox("Draw Q Range"));
            DrawingMenu.Add("DrawWE", new CheckBox("Draw W/E Range"));
            DrawingMenu.Add("DrawR", new CheckBox("Draw R Range", false));
            #endregion

            #region Subscriptions
            Drawing.OnDraw        += Drawing_OnDraw;
            Game.OnUpdate         += Game_OnUpdate;
            Obj_AI_Base.OnLevelUp += Obj_AI_Base_OnLevelUp;
            Interrupter2.OnInterruptableTarget += Interrupter2_OnInterruptableTarget;
            AntiGapcloser.OnEnemyGapcloser     += AntiGapcloser_OnEnemyGapcloser;
            #endregion
            Chat.Print("<font color='#800040'>[SurvivorSeries] Ryze</font> <font color='#ff6600'>Loaded.</font>");
        }