public Kalista() { CreateMenu(); SentinelManager.Initialize(); LoadModules(); PopulateList(); Game.OnUpdate += OnUpdate; Drawing.OnDraw += OnDraw; CustomDamageIndicator.DamageToUnit = Helper.GetRendDamage; Obj_AI_Base.OnProcessSpellCast += OnProcessSpell; Spellbook.OnCastSpell += (sender, args) => { if (sender.Owner.IsMe && args.Slot == SpellSlot.Q && ObjectManager.Player.IsDashing()) { args.Process = false; } }; Orbwalker.OnUnkillableMinion += (Obj_AI_Base target, Orbwalker.UnkillableMinionArgs args) => { var killableMinion = target as Obj_AI_Base; if (killableMinion == null || !SpellManager.Spell[SpellSlot.E].IsReady() || ObjectManager.Player.HasBuff("summonerexhaust") || !killableMinion.HasRendBuff()) { return; } if (getCheckBoxItem(laneclearMenu, "com.ikalista.laneclear.useEUnkillable") && killableMinion.IsMobKillable()) { SpellManager.Spell[SpellSlot.E].Cast(); } }; Orbwalker.OnPreAttack += (AttackableUnit target, Orbwalker.PreAttackArgs args) => { if (!getCheckBoxItem(miscMenu, "com.ikalista.misc.forceW")) { return; } target = HeroManager.Enemies.FirstOrDefault(x => ObjectManager.Player.LSDistance(x) <= 600 && x.HasBuff("kalistacoopstrikemarkally")); if (args.Target != null) { Orbwalker.ForcedTarget = (args.Target as Obj_AI_Base); } }; }
private static void OnValueChange(ValueBase <bool> sender, ValueBase <bool> .ValueChangeArgs args) { SentinelManager.RecalculateOpenLocations(); }
/// <summary> /// This is where jeff creates his first Menu in a long time /// </summary> private void CreateMenu() { Menu = MainMenu.AddMenu("iKalista: Reborn", "com.ikalista"); comboMenu = Menu.AddSubMenu("iKalista: Reborn - Combo", "com.ikalista.combo"); comboMenu.Add("com.ikalista.combo.useQ", new CheckBox("Use Q")); comboMenu.Add("com.ikalista.combo.useE", new CheckBox("Use E")); comboMenu.Add("com.ikalista.combo.stacks", new Slider("Rend at X stacks", 10, 1, 20)); comboMenu.Add("com.ikalista.combo.eLeaving", new CheckBox("Use E Leaving", true)); comboMenu.Add("com.ikalista.combo.ePercent", new Slider("Min Percent for E Leaving", 50, 10, 100)); comboMenu.Add("com.ikalista.combo.saveMana", new CheckBox("Save Mana for E")); comboMenu.Add("com.ikalista.combo.saveAlly", new CheckBox("Save Ally With R")); comboMenu.Add("com.ikalista.combo.balista", new CheckBox("Use Balista", true)); comboMenu.Add("com.ikalista.combo.autoE", new CheckBox("Auto E Minion > Champion")); comboMenu.Add("com.ikalista.combo.orbwalkMinions", new CheckBox("Orbwalk Minions in combo")); comboMenu.Add("com.ikalista.combo.allyPercent", new Slider("Min Health % for Ally", 20, 10)); mixedMenu = Menu.AddSubMenu("iKalista: Reborn - Mixed", "com.ikalista.mixed"); mixedMenu.Add("com.ikalista.mixed.useQ", new CheckBox("Use Q")); mixedMenu.Add("com.ikalista.mixed.useE", new CheckBox("Use E")); mixedMenu.Add("com.ikalista.mixed.stacks", new Slider("Rend at X stacks", 10, 1, 20)); laneclearMenu = Menu.AddSubMenu("iKalista: Reborn - Laneclear", "com.ikalista.laneclear"); laneclearMenu.Add("com.ikalista.laneclear.useQ", new CheckBox("Use Q")); laneclearMenu.Add("com.ikalista.laneclear.qMinions", new Slider("Min Minions for Q", 3, 1, 10)); laneclearMenu.Add("com.ikalista.laneclear.useE", new CheckBox("Use E")); laneclearMenu.Add("com.ikalista.laneclear.eMinions", new Slider("Min Minions for E", 5, 1, 10)); laneclearMenu.Add("com.ikalista.laneclear.useEUnkillable", new CheckBox("E Unkillable Minions")); laneclearMenu.Add("com.ikalista.laneclear.eSiege", new CheckBox("Auto E Siege Minions", true)); jungleStealMenu = Menu.AddSubMenu("iKalista: Reborn - Jungle Steal", "com.ikalista.jungleSteal"); jungleStealMenu.Add("com.ikalista.jungleSteal.enabled", new CheckBox("Use Rend To Steal Jungle Minions", true)); foreach (var minion in JungleMinions) { jungleStealMenu.Add(minion.Key, new CheckBox(minion.Value, true)); } miscMenu = Menu.AddSubMenu("iKalista: Reborn - Misc", "com.ikalista.Misc"); miscMenu.Add("com.ikalista.misc.reduceE", new Slider("Reduce Rend Damage", 50, 0, 300)); miscMenu.Add("com.ikalista.misc.forceW", new CheckBox("Focus Enemy With W")); if (Game.MapId != GameMapId.SummonersRift) { miscMenu.AddLabel("Sentinel Manager is only on Summoners Rift, sorry."); } else { miscMenu.AddGroupLabel("Sentinel Manager (HellSing) :"); miscMenu.Add("enabled", new CheckBox("Enabled")); miscMenu.Add("noMode", new CheckBox("Only use when no mode active")); miscMenu.Add("alert", new CheckBox("Alert when sentinel is taking damage")); miscMenu.Add("mana", new Slider("Minimum mana available when casting W ({0}%)", 40)); miscMenu.AddLabel("Send to the following locations (no specific order):"); miscMenu.Add("baron", new CheckBox("Baron (stuck bug usage)")); miscMenu.Add("dragon", new CheckBox("Dragon (stuck bug usage)")); miscMenu.Add("mid", new CheckBox("Mid lane brush")); miscMenu.Add("blue", new CheckBox("Blue buff")); miscMenu.Add("red", new CheckBox("Red buff")); SentinelManager.RecalculateOpenLocations(); miscMenu["baron"].Cast <CheckBox>().OnValueChange += OnValueChange; miscMenu["dragon"].Cast <CheckBox>().OnValueChange += OnValueChange; miscMenu["mid"].Cast <CheckBox>().OnValueChange += OnValueChange; miscMenu["blue"].Cast <CheckBox>().OnValueChange += OnValueChange; miscMenu["red"].Cast <CheckBox>().OnValueChange += OnValueChange; } drawingMenu = Menu.AddSubMenu("iKalista: Reborn - Drawing", "com.ikalista.drawing"); drawingMenu.Add("com.ikalista.drawing.spellRanges", new CheckBox("Draw Spell Ranges")); drawingMenu.Add("com.ikalista.drawing.eDamage", new CheckBox("Draw E Damage")); //.SetValue(new Circle(true, Color.DarkOliveGreen))); drawingMenu.Add("com.ikalista.drawing.damagePercent", new CheckBox("Draw Percent Damage")); //.SetValue(new Circle(true, Color.DarkOliveGreen))); }
/// <summary> /// This is where jeff creates his first Menu in a long time /// </summary> private void CreateMenu() { Menu = MainMenu.AddMenu("i滑板鞋:重生", "com.ikalista"); comboMenu = Menu.AddSubMenu("连招", "com.ikalista.combo"); comboMenu.Add("com.ikalista.combo.useQ", new CheckBox("使用 Q")); comboMenu.Add("com.ikalista.combo.useE", new CheckBox("使用 E")); comboMenu.Add("com.ikalista.combo.stacks", new Slider("X 层叠加使用 E", 10, 1, 20)); comboMenu.Add("com.ikalista.combo.eLeaving", new CheckBox("使用 E 远离", true)); comboMenu.Add("com.ikalista.combo.ePercent", new Slider("最低蓝量% 使用E 远离", 50, 10, 100)); comboMenu.Add("com.ikalista.combo.saveMana", new CheckBox("为E 保留蓝")); comboMenu.Add("com.ikalista.combo.saveAlly", new CheckBox("为R 保留蓝")); comboMenu.Add("com.ikalista.combo.balista", new CheckBox("使用合体技", true)); comboMenu.Add("com.ikalista.combo.autoE", new CheckBox("自动E 小兵 > 英雄")); comboMenu.Add("com.ikalista.combo.orbwalkMinions", new CheckBox("连招走砍时攻击小兵移动")); comboMenu.Add("com.ikalista.combo.allyPercent", new Slider("队友最低血量%", 20, 10)); mixedMenu = Menu.AddSubMenu("混合", "com.ikalista.mixed"); mixedMenu.Add("com.ikalista.mixed.useQ", new CheckBox("使用 Q")); mixedMenu.Add("com.ikalista.mixed.useE", new CheckBox("使用 E")); mixedMenu.Add("com.ikalista.mixed.stacks", new Slider("X 层叠加使用 E", 10, 1, 20)); laneclearMenu = Menu.AddSubMenu("清线", "com.ikalista.laneclear"); laneclearMenu.Add("com.ikalista.laneclear.useQ", new CheckBox("使用 Q")); laneclearMenu.Add("com.ikalista.laneclear.qMinions", new Slider("最低小兵数量 Q", 3, 1, 10)); laneclearMenu.Add("com.ikalista.laneclear.useE", new CheckBox("使用 E")); laneclearMenu.Add("com.ikalista.laneclear.eMinions", new Slider("最低小兵数量 E", 5, 1, 10)); laneclearMenu.Add("com.ikalista.laneclear.useEUnkillable", new CheckBox("E 不可击杀小兵")); laneclearMenu.Add("com.ikalista.laneclear.eSiege", new CheckBox("自动E炮车", true)); jungleStealMenu = Menu.AddSubMenu("清野", "com.ikalista.jungleSteal"); jungleStealMenu.Add("com.ikalista.jungleSteal.enabled", new CheckBox("使用 E 偷野怪", true)); foreach (var minion in JungleMinions) { jungleStealMenu.Add(minion.Key, new CheckBox(minion.Value, true)); } jungleStealMenu.Add("com.ikalista.jungleSteal.small", new CheckBox("杀死小型兵", true)); jungleStealMenu.Add("com.ikalista.jungleSteal.large", new CheckBox("杀死大型兵", true)); jungleStealMenu.Add("com.ikalista.jungleSteal.legendary", new CheckBox("杀死远古怪", true)); miscMenu = Menu.AddSubMenu("杂项", "com.ikalista.Misc"); miscMenu.Add("com.ikalista.misc.reduceE", new Slider("减少 E 伤害", 50, 0, 300)); miscMenu.Add("com.ikalista.misc.forceW", new CheckBox("集火被W发现的目标")); if (Game.MapId != GameMapId.SummonersRift) { miscMenu.AddLabel("对不起,守卫控制只能用于召唤师峡谷."); } else { miscMenu.AddGroupLabel("守卫控制 (HellSing) :"); miscMenu.Add("enabled", new CheckBox("开启")); miscMenu.Add("noMode", new CheckBox("只在无模式时使用")); miscMenu.Add("alert", new CheckBox("提示当守卫受到攻击")); miscMenu.Add("mana", new Slider("最低蓝量使用 W ({0}%)", 40)); miscMenu.AddLabel("发送守卫至以下位置:"); miscMenu.Add("baron", new CheckBox("男爵 (卡男爵)")); miscMenu.Add("dragon", new CheckBox("龙 (卡龙池)")); miscMenu.Add("mid", new CheckBox("中路草")); miscMenu.Add("blue", new CheckBox("蓝 Buff")); miscMenu.Add("red", new CheckBox("红 buff")); SentinelManager.RecalculateOpenLocations(); miscMenu["baron"].Cast <CheckBox>().OnValueChange += OnValueChange; miscMenu["dragon"].Cast <CheckBox>().OnValueChange += OnValueChange; miscMenu["mid"].Cast <CheckBox>().OnValueChange += OnValueChange; miscMenu["blue"].Cast <CheckBox>().OnValueChange += OnValueChange; miscMenu["red"].Cast <CheckBox>().OnValueChange += OnValueChange; } drawingMenu = Menu.AddSubMenu("线圈", "com.ikalista.drawing"); drawingMenu.Add("com.ikalista.drawing.spellRanges", new CheckBox("显示技能范围")); drawingMenu.Add("com.ikalista.drawing.eDamage", new CheckBox("显示 E 伤害")); //.SetValue(new Circle(true, Color.DarkOliveGreen))); drawingMenu.Add("com.ikalista.drawing.eDamageJ", new CheckBox("显示 E 伤害 (野怪)")); //.SetValue(new Circle(true, Color.DarkOliveGreen))); drawingMenu.Add("com.ikalista.drawing.damagePercent", new CheckBox("显示伤害百分比")); //.SetValue(new Circle(true, Color.DarkOliveGreen))); }