private static void OnLoaded(EventArgs args) { if (Player.Instance.ChampionName != Hero) { return; } Bootstrap.Init(null); Q = new Spell.Skillshot(SpellSlot.Q, 1175, SkillShotType.Linear, 250, 1200, 80); W = new Spell.Skillshot(SpellSlot.W, 900, SkillShotType.Circular, 250, 2200, 350); E = new Spell.Targeted(SpellSlot.E, 800); R = new Spell.Active(SpellSlot.R, 600); Exhaust = new Spell.Targeted(ObjectManager.Player.GetSpellSlotFromName("summonerexhaust"), 650); Talisman = new Item((int)ItemId.Talisman_of_Ascension); Randuin = new Item((int)ItemId.Randuins_Omen); Zhonia = new Item((int)ItemId.Zhonyas_Hourglass); AbilitySequence = new[] { 1, 3, 2, 1, 1, 4, 1, 2, 1, 2, 4, 2, 2, 3, 3, 4, 3, 3 }; MorgMenu = MainMenu.AddMenu("Bloodimir Morgana", "bmorgana"); MorgMenu.AddGroupLabel("Bloodimir Morgana"); MorgMenu.AddSeparator(); MorgMenu.AddLabel("Bloodimir Morgana v2.1.0.0"); ComboMenu = MorgMenu.AddSubMenu("Combo", "sbtw"); ComboMenu.AddGroupLabel("Combo Settings"); ComboMenu.AddSeparator(); ComboMenu.Add("usecomboq", new CheckBox("Use Q")); ComboMenu.Add("usecombow", new CheckBox("Use W")); AutoCastMenu = MorgMenu.AddSubMenu("Auto Cast", "ac"); AutoCastMenu.AddGroupLabel("Auto Cast"); AutoCastMenu.AddSeparator(); AutoCastMenu.Add("qd", new CheckBox("Auto Q Dashing")); AutoCastMenu.Add("qi", new CheckBox("Auto Q Immobile")); AutoCastMenu.Add("ar", new CheckBox("Auto R")); AutoCastMenu.Add("rslider", new Slider("Minimum people for Auto R", 2, 0, 5)); QMenu = MorgMenu.AddSubMenu("Q Settings", "qsettings"); QMenu.AddGroupLabel("Q Settings"); QMenu.AddSeparator(); QMenu.Add("qmin", new Slider("Min Range", 150, 0, (int)Q.Range)); QMenu.Add("qmax", new Slider("Max Range", (int)Q.Range, 0, (int)Q.Range)); QMenu.AddSeparator(); foreach (var obj in ObjectManager.Get <AIHeroClient>().Where(obj => obj.Team != Me.Team)) { QMenu.Add("bind" + obj.ChampionName.ToLower(), new CheckBox("Bind " + obj.ChampionName)); } QMenu.AddSeparator(); QMenu.Add("mediumpred", new CheckBox("MEDIUM Bind Hitchance Prediction", false)); QMenu.AddSeparator(); QMenu.Add("intq", new CheckBox("Q to Interrupt")); SkinMenu = MorgMenu.AddSubMenu("Skin Changer", "skin"); SkinMenu.AddGroupLabel("Choose the desired skin"); var skinchange = SkinMenu.Add("sID", new Slider("Skin", 5, 0, 7)); var sid = new[] { "Default", "Exiled", "Sinful Succulence", "Blade Mistress", "Blackthorn", "Ghost Bride", "Victorius", "Lunar Wraith" }; skinchange.DisplayName = sid[skinchange.CurrentValue]; skinchange.OnValueChange += delegate(ValueBase <int> sender, ValueBase <int> .ValueChangeArgs changeArgs) { sender.DisplayName = sid[changeArgs.NewValue]; }; MiscMenu = MorgMenu.AddSubMenu("Misc", "misc"); MiscMenu.AddGroupLabel("Misc"); MiscMenu.AddSeparator(); MiscMenu.Add("ksq", new CheckBox("KS with Q")); MiscMenu.Add("antigapcloser", new CheckBox("Anti Gapcloser")); MiscMenu.Add("talisman", new CheckBox("Use Talisman of Ascension")); MiscMenu.Add("randuin", new CheckBox("Use Randuin")); MiscMenu.Add("szhonya", new CheckBox("Smart Zhonya")); MiscMenu.Add("lvlup", new CheckBox("Auto Level Up Spells", false)); MiscMenu.AddSeparator(); MiscMenu.Add("EAllies", new CheckBox("Auto E")); foreach (var obj in ObjectManager.Get <AIHeroClient>().Where(obj => obj.Team == Me.Team)) { MiscMenu.Add("shield" + obj.ChampionName.ToLower(), new CheckBox("Shield " + obj.ChampionName)); } MiscMenu.AddSeparator(); MiscMenu.Add("support", new CheckBox("Support Mode", false)); MiscMenu.Add("useexhaust", new CheckBox("Use Exhaust")); foreach (var source in ObjectManager.Get <AIHeroClient>().Where(a => a.IsEnemy)) { MiscMenu.Add(source.ChampionName + "exhaust", new CheckBox("Exhaust " + source.ChampionName, false)); } DrawMenu = MorgMenu.AddSubMenu("Drawings", "drawings"); DrawMenu.AddGroupLabel("Drawings"); DrawMenu.AddSeparator(); DrawMenu.Add("drawq", new CheckBox("Draw Q")); DrawMenu.Add("draww", new CheckBox("Draw W")); DrawMenu.Add("drawe", new CheckBox("Draw E")); DrawMenu.Add("drawr", new CheckBox("Draw R")); DrawMenu.Add("drawaa", new CheckBox("Draw AA")); DrawMenu.Add("predictions", new CheckBox("Visualize Q Prediction")); LaneClear = MorgMenu.AddSubMenu("Lane Clear", "laneclear"); LaneClear.AddGroupLabel("Lane Clear Settings"); LaneClear.Add("LCW", new CheckBox("Use W")); LastHit = MorgMenu.AddSubMenu("Last Hit", "lasthit"); LastHit.AddGroupLabel("Last Hit Settings"); LastHit.Add("LHQ", new CheckBox("Use Q", false)); Interrupter.OnInterruptableSpell += Interrupter_OnInterruptableSpell; Game.OnUpdate += OnUpdate; Orbwalker.OnPreAttack += Orbwalker_OnPreAttack; Obj_AI_Base.OnProcessSpellCast += Auto_EOnProcessSpell; Gapcloser.OnGapcloser += Gapcloser_OnGapcloser; Drawing.OnDraw += delegate { if (!Me.IsDead) { if (DrawMenu["drawr"].Cast <CheckBox>().CurrentValue&& R.IsLearned) { Circle.Draw(Color.Red, R.Range, Player.Instance.Position); } if (DrawMenu["draww"].Cast <CheckBox>().CurrentValue&& W.IsLearned) { Circle.Draw(Color.Purple, W.Range, Player.Instance.Position); } if (DrawMenu["drawe"].Cast <CheckBox>().CurrentValue&& E.IsLearned) { Circle.Draw(Color.Green, E.Range, Player.Instance.Position); } if (DrawMenu["drawaa"].Cast <CheckBox>().CurrentValue) { Circle.Draw(Color.Blue, Q.Range, Player.Instance.Position); } var predictedPositions = new Dictionary <int, Tuple <int, PredictionResult> >(); var predictions = DrawMenu["predictions"].Cast <CheckBox>().CurrentValue; var qRange = DrawMenu["drawq"].Cast <CheckBox>().CurrentValue; foreach ( var enemy in EntityManager.Heroes.Enemies.Where( enemy => QMenu["bind" + enemy.ChampionName].Cast <CheckBox>().CurrentValue&& enemy.IsValidTarget(Q.Range + 150) && !enemy.HasBuffOfType(BuffType.SpellShield))) { var predictionsq = Q.GetPrediction(enemy); predictedPositions[enemy.NetworkId] = new Tuple <int, PredictionResult>(Environment.TickCount, predictionsq); if (qRange && Q.IsLearned) { Circle.Draw(Q.IsReady() ? Color.Blue : Color.Red, Q.Range, Player.Instance.Position); } if (!predictions) { return; } foreach (var prediction in predictedPositions.ToArray()) { if (Environment.TickCount - prediction.Value.Item1 > 2000) { predictedPositions.Remove(prediction.Key); continue; } Circle.Draw(Color.Red, 75, prediction.Value.Item2.CastPosition); Line.DrawLine(System.Drawing.Color.GreenYellow, Player.Instance.Position, prediction.Value.Item2.CastPosition); Line.DrawLine(System.Drawing.Color.CornflowerBlue, EntityManager.Heroes.Enemies.Find(o => o.NetworkId == prediction.Key).Position, prediction.Value.Item2.CastPosition); Drawing.DrawText(prediction.Value.Item2.CastPosition.WorldToScreen() + new Vector2(0, -20), System.Drawing.Color.LimeGreen, string.Format("Hitchance: {0}%", Math.Ceiling(prediction.Value.Item2.HitChancePercent)), 10); } } ; } ; }; }
private static void OnLoaded(EventArgs args) { if (Player.Instance.ChampionName != Hero) { return; } Bootstrap.Init(null); Q = new Spell.Skillshot(SpellSlot.Q, 1200, SkillShotType.Linear, 250, 1200, 80); E = new Spell.Skillshot(SpellSlot.E, 750, SkillShotType.Linear); R = new Spell.Active(SpellSlot.R, 620); AbilitySequence = new[] { 1, 3, 2, 1, 1, 4, 1, 2, 1, 2, 4, 2, 2, 3, 3, 4, 3, 3 }; ThreshMenu = MainMenu.AddMenu("Bloodimir Thresh", "bthresh"); ThreshMenu.AddGroupLabel("Bloodimir Morgana"); ThreshMenu.AddSeparator(); ThreshMenu.AddLabel("Bloodimir Morgana v2.1.0.0"); ComboMenu = ThreshMenu.AddSubMenu("Combo", "sbtw"); ComboMenu.AddGroupLabel("Combo Settings"); ComboMenu.AddSeparator(); ComboMenu.Add("usecomboq", new CheckBox("Use Q")); AutoCastMenu = ThreshMenu.AddSubMenu("Auto Cast", "ac"); AutoCastMenu.AddGroupLabel("Auto Cast"); AutoCastMenu.AddSeparator(); AutoCastMenu.Add("qd", new CheckBox("Auto Q Dashing")); AutoCastMenu.Add("qi", new CheckBox("Auto Q Immobile")); AutoCastMenu.Add("ar", new CheckBox("Auto R")); AutoCastMenu.Add("rslider", new Slider("Minimum people for Auto R", 2, 0, 5)); QMenu = ThreshMenu.AddSubMenu("Q Settings", "qsettings"); QMenu.AddGroupLabel("Q Settings"); QMenu.AddSeparator(); QMenu.Add("qmin", new Slider("Min Range", 150, 0, (int)Q.Range)); QMenu.Add("qmax", new Slider("Max Range", (int)Q.Range, 0, (int)Q.Range)); QMenu.AddSeparator(); foreach (var obj in ObjectManager.Get <AIHeroClient>().Where(obj => obj.Team != Me.Team)) { QMenu.Add("hook" + obj.ChampionName.ToLower(), new CheckBox("Hook " + obj.ChampionName)); } QMenu.AddSeparator(); QMenu.Add("mediumpred", new CheckBox("MEDIUM Bind Hitchance Prediction", false)); QMenu.AddSeparator(); QMenu.Add("intq", new CheckBox("Q to Interrupt")); SkinMenu = ThreshMenu.AddSubMenu("Skin Changer", "skin"); SkinMenu.AddGroupLabel("Choose the desired skin"); var skinchange = SkinMenu.Add("sID", new Slider("Skin", 3, 0, 5)); var sid = new[] { "Default", "Exiled", "Sinful Succulence", "Blade Mistress", "Blackthorn", "dasd" }; skinchange.DisplayName = sid[skinchange.CurrentValue]; skinchange.OnValueChange += delegate(ValueBase <int> sender, ValueBase <int> .ValueChangeArgs changeArgs) { sender.DisplayName = sid[changeArgs.NewValue]; }; MiscMenu = ThreshMenu.AddSubMenu("Misc", "misc"); MiscMenu.AddGroupLabel("Misc"); MiscMenu.AddSeparator(); MiscMenu.Add("antigapcloser", new CheckBox("Anti Gapcloser")); MiscMenu.Add("lvlup", new CheckBox("Auto Level Up Spells", false)); MiscMenu.AddSeparator(); MiscMenu.Add("support", new CheckBox("Support Mode", false)); DrawMenu = ThreshMenu.AddSubMenu("Drawings", "drawings"); DrawMenu.AddGroupLabel("Drawings"); DrawMenu.AddSeparator(); DrawMenu.Add("drawq", new CheckBox("Draw Q")); DrawMenu.Add("drawe", new CheckBox("Draw E")); DrawMenu.Add("drawr", new CheckBox("Draw R")); DrawMenu.Add("drawaa", new CheckBox("Draw AA")); DrawMenu.Add("predictions", new CheckBox("Visualize Q Prediction")); Interrupter.OnInterruptableSpell += Interrupter_OnInterruptableSpell; Game.OnUpdate += OnUpdate; Orbwalker.OnPreAttack += Orbwalker_OnPreAttack; Gapcloser.OnGapcloser += Gapcloser_OnGapcloser; Drawing.OnDraw += delegate { if (!Me.IsDead) { if (DrawMenu["drawr"].Cast <CheckBox>().CurrentValue&& R.IsLearned) { Circle.Draw(SharpDX.Color.Red, R.Range, Player.Instance.Position); } if (DrawMenu["drawe"].Cast <CheckBox>().CurrentValue&& E.IsLearned) { Circle.Draw(SharpDX.Color.Green, E.Range, Player.Instance.Position); } if (DrawMenu["drawaa"].Cast <CheckBox>().CurrentValue) { Circle.Draw(SharpDX.Color.Blue, Q.Range, Player.Instance.Position); } var predictedPositions = new Dictionary <int, Tuple <int, PredictionResult> >(); var predictions = DrawMenu["predictions"].Cast <CheckBox>().CurrentValue; var qRange = DrawMenu["drawq"].Cast <CheckBox>().CurrentValue; foreach ( var enemy in EntityManager.Heroes.Enemies.Where( enemy => QMenu["hook" + enemy.ChampionName].Cast <CheckBox>().CurrentValue&& enemy.IsValidTarget(Q.Range + 150) && !enemy.HasBuffOfType(BuffType.SpellShield))) { var predictionsq = Q.GetPrediction(enemy); predictedPositions[enemy.NetworkId] = new Tuple <int, PredictionResult>(Environment.TickCount, predictionsq); if (qRange && Q.IsLearned) { Circle.Draw(Q.IsReady() ? SharpDX.Color.Blue : SharpDX.Color.Red, Q.Range, Player.Instance.Position); } if (!predictions) { return; } foreach (var prediction in predictedPositions.ToArray()) { if (Environment.TickCount - prediction.Value.Item1 > 2000) { predictedPositions.Remove(prediction.Key); continue; } Circle.Draw(SharpDX.Color.Red, 75, prediction.Value.Item2.CastPosition); Line.DrawLine(Color.GreenYellow, Player.Instance.Position, prediction.Value.Item2.CastPosition); Line.DrawLine(Color.CornflowerBlue, EntityManager.Heroes.Enemies.Find(o => o.NetworkId == prediction.Key).Position, prediction.Value.Item2.CastPosition); Drawing.DrawText(prediction.Value.Item2.CastPosition.WorldToScreen() + new Vector2(0, -20), System.Drawing.Color.LimeGreen, string.Format("Hitchance: {0}%", Math.Ceiling(prediction.Value.Item2.HitChancePercent)), 10); } } ; } ; }; }