/// <summary> /// 显示技能范围 /// </summary> /// <param name="spell">技能</param> /// <param name="show">线圈信息,开关,颜色等</param> public static void DrawRange(this Spell spell,Circle show,bool OnlyReady = true) { if ((spell.IsReady() && OnlyReady || !OnlyReady) && show.Active) { Render.Circle.DrawCircle(HeroManager.Player.Position,spell.Range,show.Color,2); } }
public void Load(EventArgs eArgs) { if (ObjectManager.Player.ChampionName != "Cassiopeia") return; //ItemSeraphsEmbrace var mainMenu = new Menu("The Cassiopeia", "TheCassiopeia", true); var orbwalkerMenu = mainMenu.CreateSubmenu("Orbwalker"); var targetselectorMenu = mainMenu.CreateSubmenu("Target Selector"); var comboMenu = mainMenu.CreateSubmenu("Combo"); var ultMenu = mainMenu.CreateSubmenu("Ultimate Settings"); var harassMenu = mainMenu.CreateSubmenu("Harass"); var laneclearMenu = mainMenu.CreateSubmenu("Lane Clear"); var lasthitMenu = mainMenu.CreateSubmenu("Last Hit"); var burstmodeMenu = mainMenu.CreateSubmenu("Mode: Burst"); var lanepressureMenu = mainMenu.CreateSubmenu("Mode: Lane Pressure"); var gapcloserMenu = mainMenu.CreateSubmenu("Gapcloser"); // var interrupterMenu = mainMenu.CreateSubmenu("Interrupter"); var manamanagerMenu = mainMenu.CreateSubmenu("Mana Manager"); var miscMenu = mainMenu.CreateSubmenu("Miscellaneous"); var summonerMenu = mainMenu.CreateSubmenu("Summoners"); var itemMenu = mainMenu.CreateSubmenu("Items"); var drawingMenu = mainMenu.CreateSubmenu("Drawing"); var autolevelMenu = mainMenu.CreateSubmenu("Auto-Level Spells"); var infoMenu = mainMenu.CreateSubmenu("Info"); var orbwalker = new Orbwalking.Orbwalker(orbwalkerMenu); TargetSelector.AddToMenu(targetselectorMenu); var provider = new CassioCombo(1000, orbwalker, new CassQ(SpellSlot.Q), new CassW(SpellSlot.W), new CassE(SpellSlot.E), new CassR(SpellSlot.R)); provider.CreateBasicMenu(comboMenu, harassMenu, laneclearMenu, gapcloserMenu, null, manamanagerMenu, summonerMenu, itemMenu, drawingMenu, false); provider.CreateAutoLevelMenu(autolevelMenu, ComboProvider.SpellOrder.RQEEW, ComboProvider.SpellOrder.REQW); ultMenu.AddMItem("NOTE: Uses R if ANY conditions apply."); if (HeroManager.Enemies.Count >= 3) { ultMenu.AddMItem("Min Enemies (Facing)", new Slider(2, 1, HeroManager.Enemies.Count), (sender, args) => provider.GetSkill<CassR>().MinTargetsFacing = args.GetNewValue<Slider>().Value); ultMenu.AddMItem("Min Enemies (Not Facing)", new Slider(HeroManager.Enemies.Count - 1, 1, HeroManager.Enemies.Count), (sender, args) => provider.GetSkill<CassR>().MinTargetsNotFacing = args.GetNewValue<Slider>().Value); } else { ultMenu.AddMItem("Min Enemies (Facing)", new Slider(1, 1, HeroManager.Enemies.Count), (sender, args) => provider.GetSkill<CassR>().MinTargetsFacing = args.GetNewValue<Slider>().Value); ultMenu.AddMItem("Min Enemies (Not Facing)", new Slider(1, 1, HeroManager.Enemies.Count), (sender, args) => provider.GetSkill<CassR>().MinTargetsNotFacing = args.GetNewValue<Slider>().Value); } ultMenu.AddMItem("Do Above Only in Combo", true, (sender, args) => provider.GetSkill<CassR>().MinEnemiesOnlyInCombo = args.GetNewValue<bool>()); ultMenu.AddMItem("Ult if Target Killable with Combo", true, (sender, args) => provider.GetSkill<CassR>().UltOnKillable = args.GetNewValue<bool>()); ultMenu.AddMItem("Only R if Target has Health % > Than", new Slider(30), (sender, args) => provider.GetSkill<CassR>().MinHealth = args.GetNewValue<Slider>().Value); ultMenu.AddMItem("Block R that Won't Hit", false, (sender, args) => provider.BlockBadUlts = args.GetNewValue<bool>()); ultMenu.AddMItem("Range", new Slider(700, 400, 825), (sender, args) => provider.GetSkill<CassR>().Range = args.GetNewValue<Slider>().Value); provider.AssistedUltMenu = ultMenu.AddMItem("Assisted Ult", new KeyBind(82, KeyBindType.Press)); ultMenu.ProcStoredValueChanged<Slider>(); ultMenu.ProcStoredValueChanged<bool>(); harassMenu.AddMItem("Auto Harass", false, (sender, args) => provider.GetSkill<CassQ>().AutoHarass = args.GetNewValue<bool>()); harassMenu.AddMItem("Min Mana %", new Slider(60), (sender, args) => provider.GetSkill<CassQ>().AutoHarassMana = args.GetNewValue<Slider>().Value); harassMenu.ProcStoredValueChanged<bool>(); harassMenu.ProcStoredValueChanged<Slider>(); burstmodeMenu.AddMItem("[Burst Mode = Full DPS mode, replaces Combo when Enabled]"); var burstMode = provider.BurstMode = burstmodeMenu.AddMItem("Burst Mode Enabled", new KeyBind(78, KeyBindType.Toggle)); provider.GetSkill<CassR>().BurstMode = burstMode; burstMode.Permashow(customdisplayname: "Burst Mode"); burstmodeMenu.AddMItem("Auto-Burst Mode if My Health % < Than ", new Slider(25), (sender, args) => provider.GetSkill<CassR>().PanicModeHealth = args.GetNewValue<Slider>().Value); burstmodeMenu.AddMItem("Use Ignite in Burst Mode", false, (sender, args) => provider.IgniteInBurstMode = args.GetNewValue<bool>()); burstmodeMenu.AddMItem("Ignite Only if E on Cooldown", false, (sender, args) => provider.OnlyIgniteWhenNoE = args.GetNewValue<bool>()); burstmodeMenu.ProcStoredValueChanged<Slider>(); burstmodeMenu.ProcStoredValueChanged<bool>(); comboMenu.AddMItem("Only Kill non-Poisoned with E if No Other Enemies Nearby", false, (sender, args) => provider.GetSkill<CassE>().OnlyKillNonPIn1V1 = args.GetNewValue<bool>()); comboMenu.AddMItem("Fast Combo (Small Chance to E non-Poisoned)", true, (sender, args) => provider.GetSkill<CassQ>().FastCombo = args.GetNewValue<bool>()); //comboMenu.AddMItem("Risky mode (uses fast combo often, but more fails)", false, (sender, args) => provider.GetSkill<CassQ>().RiskyCombo = args.GetNewValue<bool>()); comboMenu.AddMItem("AA in Combo (Disable for Better Kiting)", true, (sender, args) => provider.AutoInCombo = args.GetNewValue<bool>()); comboMenu.ProcStoredValueChanged<bool>(); var stackTearItem = miscMenu.AddMItem("Stack Tear", new KeyBind(77, KeyBindType.Toggle, true)); miscMenu.AddMItem("NOTE: Will only stack when no enemies nearby."); provider.GetSkill<CassQ>().StackTear = stackTearItem; stackTearItem.Permashow(); miscMenu.AddMItem("Min Mana % for Tear Stacking", new Slider(90), (sender, args) => provider.GetSkill<CassQ>().MinTearStackMana = args.GetNewValue<Slider>().Value); miscMenu.AddMItem("Make Poison Influence Target Selection", true, (sender, args) => provider.EnablePoisonTargetSelection = args.GetNewValue<bool>()); miscMenu.ProcStoredValueChanged<Slider>(); miscMenu.ProcStoredValueChanged<bool>(); miscMenu.AddMItem("Enable this if you are Hawk", false, (sender, args) => { ObjectManager.Player.SetSkin(args.GetNewValue<bool>() ? "Trundle" : "Cassiopeia", 0); Utility.DelayAction.Add(1000, () => Game.Say("/laugh")); }); Circle q = new Circle(true, Color.GreenYellow), e = new Circle(false, Color.Red); drawingMenu.AddMItem("Q Range", q, (sender, args) => q = args.GetNewValue<Circle>()); drawingMenu.AddMItem("E Range", e, (sender, args) => e = args.GetNewValue<Circle>()); drawingMenu.ProcStoredValueChanged<Circle>(); drawingMenu.ProcStoredValueChanged<bool>(); gapcloserMenu.AddMItem("Use R if My Health % < Than", new Slider(40), (sender, args) => provider.GetSkill<CassR>().GapcloserUltHp = args.GetNewValue<Slider>().Value); gapcloserMenu.AddMItem("Otherwise Use W Instead", true, (sender, args) => provider.GetSkill<CassW>().UseOnGapcloser = args.GetNewValue<bool>()); lasthitMenu.AddMItem("Use E on Poisoned", true, (sender, args) => provider.GetSkill<CassE>().Farm = args.GetNewValue<bool>()); //lasthitMenu.AddMItem("Lasthit assist", true, (sender, args) => provider.GetSkill<CassE>().FarmAssist = args.GetNewValue<bool>()); lasthitMenu.AddMItem("Use E on non-Poisoned if Mana % < Than", new Slider(50), (sender, args) => provider.GetSkill<CassE>().FarmNonPoisonedPercent = args.GetNewValue<Slider>().Value); lasthitMenu.ProcStoredValueChanged<bool>(); lasthitMenu.ProcStoredValueChanged<Slider>(); var lanepressureEnabled = lanepressureMenu.AddMItem("Enabled", new KeyBind(84, KeyBindType.Toggle)); provider.LanepressureMenu = lanepressureEnabled; provider.GetSkill<CassQ>().LanepressureMenu = lanepressureEnabled; lanepressureEnabled.Permashow(customdisplayname: "Lane Pressure Mode"); lanepressureMenu.AddMItem("NOTE: Overrides Lane Clear when active."); lanepressureMenu.AddMItem("NOTE: Uses Harass & Last Hit while pushing with AA."); lanepressureMenu.AddMItem("NOTE: All Harass & Last Hit settings apply to it."); lanepressureMenu.AddMItem("Use Q on Minions if E Ready", true, (sender, args) => provider.GetSkill<CassQ>().Farm = args.GetNewValue<bool>()); lanepressureMenu.AddMItem("Only Q if Mana % > Than", new Slider(60), (sender, args) => provider.GetSkill<CassQ>().FarmIfHigherThan = args.GetNewValue<Slider>().Value); lanepressureMenu.AddMItem("Only Q if Min. Minions: ", new Slider(3, maxValue: 6), (sender, args) => provider.GetSkill<CassQ>().FarmIfMoreOrEqual = args.GetNewValue<Slider>().Value); infoMenu.AddMItem("TheCassiopeia - by TheNinow"); infoMenu.AddMItem("Please give me feedback (on joduska.me) so I can improve this assembly!"); infoMenu.AddMItem("Also, if you like this assembly, feel free to reward me with an upvote :)"); mainMenu.AddToMainMenu(); provider.Initialize(); provider.GetSkill<CassQ>().GetPrediction(ObjectManager.Player); // Initializing the new prediction settings // DevAssistant.Init(); Game.OnUpdate += (args) => provider.Update(); Drawing.OnDraw += (args) => { if (q.Active) Render.Circle.DrawCircle(ObjectManager.Player.Position, 850, q.Color); if (e.Active) Render.Circle.DrawCircle(ObjectManager.Player.Position, 700, e.Color); // Drawing.DrawText(200, 600, Color.Green, "Valid target: " + HeroManager.Enemies.FirstOrDefault().IsValidTarget().ToString() + " invulnerable: " + TargetSelector.IsInvulnerable(HeroManager.Enemies.FirstOrDefault(), TargetSelector.DamageType.Magical)); }; }
public void Load() { if (ObjectManager.Player.ChampionName != "Garen") return; Notifications.AddNotification("The Garen v2 loaded!", 3); var mainMenu = new Menu("The Garen", "The Garen", true); var orbwalkerMenu = mainMenu.CreateSubmenu("Orbwalker"); var targetSelectorMenu = mainMenu.CreateSubmenu("Target Selector"); var comboMenu = mainMenu.CreateSubmenu("Combo"); var laneClearMenu = mainMenu.CreateSubmenu("Lane Clear"); var miscMenu = mainMenu.CreateSubmenu("Misc"); var items = mainMenu.CreateSubmenu("Items"); var gapcloserMenu = mainMenu.CreateSubmenu("Gapcloser"); var interrupterMenu = mainMenu.CreateSubmenu("Interrupter"); var autoLevel = mainMenu.CreateSubmenu("Auto-level Spells"); var drawingMenu = mainMenu.CreateSubmenu("Drawing"); var orbwalker = new Orbwalking.Orbwalker(orbwalkerMenu); _comboProvider = new ComboProvider(500, new Skill[] { new GarenQ((SpellSlot.Q)), new GarenW((SpellSlot.W)), new GarenE((SpellSlot.E)), new GarenR((SpellSlot.R)) }.ToList(), orbwalker); _r = _comboProvider.GetSkill<GarenR>(); _flash = ObjectManager.Player.Spellbook.Spells.FirstOrDefault(spell => spell.Name == "summonerflash"); _comboProvider.CreateBasicMenu(targetSelectorMenu, comboMenu, null, null, null, gapcloserMenu, interrupterMenu, null, false); _comboProvider.CreateLaneclearMenu(laneClearMenu, false, SpellSlot.W); _comboProvider.GetSkill<GarenE>().ItemManager = _comboProvider.CreateItemsMenu(items, new RavenousHydra(), new BilgewaterCutlass(), new YoumusBlade(), new Botrk()); _comboProvider.CreateAutoLevelMenu(autoLevel, ComboProvider.SpellOrder.REQW, ComboProvider.SpellOrder.REQW); comboMenu.AddMItem("Q after Auto Attack", true, (sender, args) => _comboProvider.GetSkill<GarenQ>().OnlyAfterAuto = args.GetNewValue<bool>()); comboMenu.AddMItem("E after Auto Attack", true, (sender, args) => _comboProvider.GetSkill<GarenE>().OnlyAfterAuto = args.GetNewValue<bool>()); comboMenu.AddMItem("Use R to KS", false, (sender, args) => _comboProvider.GetSkill<GarenR>().Killsteal = args.GetNewValue<bool>()); comboMenu.AddMItem("Q to Get in Range", true, (sender, args) => _comboProvider.GetSkill<GarenQ>().UseWhenOutOfRange = args.GetNewValue<bool>()); miscMenu.AddMItem("Use W Out of Combo", true, (sender, args) => _comboProvider.GetSkill<GarenW>().UseAlways = args.GetNewValue<bool>()); miscMenu.AddMItem("Min. Incoming Damage for W in %HP", new Slider(2, 1, 15), (sender, args) => _comboProvider.GetSkill<GarenW>().MinDamagePercent = args.GetNewValue<Slider>().Value); miscMenu.AddMItem("Always W Enemy Ults", true, (sender, args) => _comboProvider.GetSkill<GarenW>().UseOnUltimates = args.GetNewValue<bool>()); gapcloserMenu.AddMItem("(Use W if Enabled)"); laneClearMenu.AddMItem("E if X Minions", new Slider(1, 1, 8), (sender, args) => _comboProvider.GetSkill<GarenE>().MinFarmMinions = args.GetNewValue<Slider>().Value); laneClearMenu.AddMItem("Use Hydra", true, (sender, args) => _comboProvider.GetSkill<GarenE>().UseHydra = args.GetNewValue<bool>()); drawingMenu.AddMItem("Damage Indicator", new Circle(true, Color.FromArgb(100, Color.Goldenrod)), (sender, args) => { DamageIndicator.DamageToUnit = _comboProvider.GetComboDamage; DamageIndicator.Enabled = args.GetNewValue<Circle>().Active; DamageIndicator.FillColor = args.GetNewValue<Circle>().Color; DamageIndicator.Fill = true; DamageIndicator.Color = Color.FromArgb(255, DamageIndicator.FillColor); }); drawingMenu.AddMItem("Draw R Range", new Circle(true, Color.Goldenrod), (sender, args) => _drawR = args.GetNewValue<Circle>()); drawingMenu.AddMItem("Draw Flash-R Indicator", new Circle(true, Color.Red), (sender, args) => _drawFlashUlt = args.GetNewValue<Circle>()); drawingMenu.AddMItem("Damage Indicator by xSalice / detuks!"); //mainMenu.AddMItem("Max order: R > E > Q > W! Have fun!"); mainMenu.AddToMainMenu(); _comboProvider.Initialize(); //DevAssistant.Init(); Game.OnUpdate += Tick; Drawing.OnDraw += Draw; }
public void Load() { if (ObjectManager.Player.ChampionName != "Garen") return; Notifications.AddNotification("The Garen v2 loaded!", 3); var mainMenu = new Menu("The Garen", "The Garen", true); var orbwalkerMenu = mainMenu.CreateSubmenu("Orbwalker"); var targetSelectorMenu = mainMenu.CreateSubmenu("Target Selector"); var comboMenu = mainMenu.CreateSubmenu("Combo"); var laneClearMenu = mainMenu.CreateSubmenu("Laneclear"); var miscMenu = mainMenu.CreateSubmenu("Misc"); var items = mainMenu.CreateSubmenu("Items"); var gapcloserMenu = mainMenu.CreateSubmenu("Gapcloser"); var interrupterMenu = mainMenu.CreateSubmenu("Interrupter"); var drawingMenu = mainMenu.CreateSubmenu("Drawing"); var orbwalker = new Orbwalking.Orbwalker(orbwalkerMenu); TargetSelector.AddToMenu(targetSelectorMenu); _comboProvider = new ComboProvider(500, new Skill[] { new GarenQ(new Spell(SpellSlot.Q)), new GarenW(new Spell(SpellSlot.W)), new GarenE(new Spell(SpellSlot.E)), new GarenR(new Spell(SpellSlot.R)) }.ToList(), orbwalker); _r = _comboProvider.GetSkill<GarenR>(); _flash = ObjectManager.Player.Spellbook.Spells.FirstOrDefault(spell => spell.Name == "summonerflash"); _comboProvider.CreateBasicMenu(comboMenu, null, null, gapcloserMenu, interrupterMenu, null, mainMenu.CreateSubmenu("Ignite"), items, false); _comboProvider.CreateLaneclearMenu(laneClearMenu, false, SpellSlot.W); comboMenu.AddMItem("Q After Auto Attack", true, (sender, args) => _comboProvider.GetSkill<GarenQ>().OnlyAfterAuto = args.GetNewValue<bool>()); comboMenu.AddMItem("E After Auto Attack", true, (sender, args) => _comboProvider.GetSkill<GarenE>().OnlyAfterAuto = args.GetNewValue<bool>()); comboMenu.AddMItem("R Killsteal", false, (sender, args) => _comboProvider.GetSkill<GarenR>().Killsteal = args.GetNewValue<bool>()); comboMenu.AddMItem("Q if not in range", true, (sender, args) => _comboProvider.GetSkill<GarenQ>().UseWhenOutOfRange = args.GetNewValue<bool>()); comboMenu.ProcStoredValueChanged<bool>(); miscMenu.AddMItem("Also W out of combo", true, (sender, args) => _comboProvider.GetSkill<GarenW>().UseAlways = args.GetNewValue<bool>()); miscMenu.AddMItem("Min incomming DPS for W in health %", new Slider(2, 1, 15), (sender, args) => _comboProvider.GetSkill<GarenW>().MinDamagePercent = args.GetNewValue<Slider>().Value).ProcStoredValueChanged<Slider>(); miscMenu.AddMItem("Always W enemy ults", true, (sender, args) => _comboProvider.GetSkill<GarenW>().UseOnUltimates = args.GetNewValue<bool>()); miscMenu.ProcStoredValueChanged<bool>(); gapcloserMenu.AddMItem("(Using W if enabled)"); laneClearMenu.AddMItem("E min. minions", new Slider(1, 1, 8), (sender, args) => _comboProvider.GetSkill<GarenE>().MinFarmMinions = args.GetNewValue<Slider>().Value).ProcStoredValueChanged<Slider>(); laneClearMenu.AddMItem("Use Hydra", true, (sender, args) => _comboProvider.GetSkill<GarenE>().UseHydra = args.GetNewValue<bool>()).ProcStoredValueChanged<bool>(); drawingMenu.AddMItem("Damage Indicator", new Circle(true, Color.FromArgb(100, Color.Goldenrod)), (sender, args) => { DamageIndicator.DamageToUnit = _comboProvider.GetComboDamage; DamageIndicator.Enabled = args.GetNewValue<Circle>().Active; DamageIndicator.FillColor = args.GetNewValue<Circle>().Color; DamageIndicator.Fill = true; DamageIndicator.Color = Color.FromArgb(255, DamageIndicator.FillColor); }); drawingMenu.AddMItem("R Range", new Circle(true, Color.Goldenrod), (sender, args) => _drawR = args.GetNewValue<Circle>()); drawingMenu.AddMItem("Draw possible flash-ult", new Circle(true, Color.Red), (sender, args) => _drawFlashUlt = args.GetNewValue<Circle>()); drawingMenu.AddMItem("Damage Indicator by xSalice!"); drawingMenu.ProcStoredValueChanged<Circle>(); mainMenu.AddMItem("Max order: R > E > Q > W! Have fun!"); mainMenu.AddToMainMenu(); _comboProvider.Initialize(); Game.OnUpdate += Tick; Drawing.OnDraw += Draw; }
public static void DrawCircle(Circle circle, float spellRange) { if (circle.Active) Render.Circle.DrawCircle(player.Position, spellRange, circle.Color); }