public override void Orbwalking_BeforeAttack(Orbwalking.BeforeAttackEventArgs args) { if (GetValue<bool>("Misc.UseQ.Inhibitor") && args.Target is Obj_BarracksDampener && Q.IsReady()) { if (((Obj_BarracksDampener) args.Target).Health >= Player.TotalAttackDamage*3) { Q.Cast(); } } if (GetValue<bool>("Misc.UseQ.Nexus") && args.Target is Obj_HQ && Q.IsReady()) { Q.Cast(); } var unit = args.Target as Obj_AI_Turret; if (unit != null) { if (GetValue<bool>("UseEM") && E.IsReady()) { if (((Obj_AI_Turret) args.Target).Health >= Player.TotalAttackDamage*3) { E.CastOnUnit(unit); } } if (GetValue<bool>("Misc.UseQ.Turret") && Q.IsReady()) { if (((Obj_AI_Turret) args.Target).Health >= Player.TotalAttackDamage*3) { Q.Cast(); } } } if (args.Target is Obj_AI_Hero) { var t = args.Target as Obj_AI_Hero; if (t.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null)) && ComboActive) { var useQ = Q.IsReady() && GetValue<bool>("UseQC"); if (useQ) Q.CastOnUnit(Player); } } }
public override void Game_OnGameUpdate(EventArgs args) { SoulBoundSaver(); foreach (var e in HeroManager.Enemies.Where(e => e.IsValidTarget(E.Range))) { foreach (var b in e.Buffs.Where(buff => buff.Name.Contains("kalistaexpungemarker"))) { if (E.IsReady() && e.Health < GetEDamage(e)) { E.Cast(); } } } //foreach ( // var e in // HeroManager.Enemies.Where(e => e.HasBuff("kalistaexpungemarker") && e.IsValidTarget(E.Range) && e.Health < GetEDamage(e))) //{ // E.Cast(); //} //if (GetValue<KeyBind>("JumpTo").Active) //{ // JumpTo(); //} //if (GetValue<KeyBind>("JumpTo").Active) //{ // JumpTo(); //} foreach (var myBoddy in ObjectManager.Get <Obj_AI_Minion>() .Where(obj => obj.Name == "RobotBuddy" && obj.IsAlly && ObjectManager.Player.Distance(obj) < 1500)) { Render.Circle.DrawCircle(myBoddy.Position, 75f, Color.Red); } Obj_AI_Hero t; if (Q.IsReady() && GetValue <KeyBind>("UseQTH").Active) { if (ObjectManager.Player.HasBuff("Recall")) { return; } t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical); if (t.IsValidTarget(Q.Range) && ObjectManager.Player.Mana > E.ManaCost + Q.ManaCost) { Q.Cast(t); } } if (ComboActive || HarassActive) { if (Orbwalking.CanMove(100)) { if (Q.IsReady()) { t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical); if (!t.HasKindredUltiBuff() && t.IsValidTarget(Q.Range) && ObjectManager.Player.Mana > E.ManaCost + Q.ManaCost) { Q.Cast(t); } } } } }
public override void ExecuteLaneClear() { var prepareMinions = GetValue <StringList>("UseE.Prepare.Lane").SelectedIndex; if (prepareMinions != 0) { List <Obj_AI_Minion> list = new List <Obj_AI_Minion>(); IEnumerable <Obj_AI_Minion> minions = from m in ObjectManager.Get <Obj_AI_Minion>() .Where( m => m.Health > ObjectManager.Player.TotalAttackDamage && m.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65)) select m; if (prepareMinions == 2) { minions = minions.Where(m => m.IsUnderAllyTurret()); } var objAiMinions = minions as Obj_AI_Minion[] ?? minions.ToArray(); foreach (var m in objAiMinions) { if (m.GetBuffCount(kalistaEBuffName) >= 0) { Render.Circle.DrawCircle(m.Position, 105f, Color.Blue); list.Add(m); } else { list.Remove(m); } } var enemy = HeroManager.Enemies.Find(e => e.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65)); if (enemy == null) { foreach (var l in objAiMinions.Except(list).ToList()) { Program.ChampionClass.Orbwalker.ForceTarget(l); } } else { Program.ChampionClass.Orbwalker.ForceTarget(enemy); } } if (Q.IsReady()) { var qCount = GetValue <StringList>("UseQ.Lane").SelectedIndex; if (qCount != 0) { var minions = MinionManager.GetMinions( ObjectManager.Player.ServerPosition, Q.Range, MinionTypes.All, MinionTeam.Enemy); foreach (var minion in minions.Where(x => x.Health <= Q.GetDamage(x))) { var killableMinionCount = 0; foreach ( var colminion in qGetCollisionMinions( ObjectManager.Player, ObjectManager.Player.ServerPosition.Extend(minion.ServerPosition, Q.Range))) { if (colminion.Health <= Q.GetDamage(colminion)) { if (GetValue <StringList>("UseQ.Mode.Lane").SelectedIndex == 1 && colminion.Distance(ObjectManager.Player) > Orbwalking.GetRealAutoAttackRange(null) + 65) { killableMinionCount++; } else { killableMinionCount++; } } else { break; } } if (killableMinionCount >= qCount) { if (!ObjectManager.Player.IsWindingUp && !ObjectManager.Player.IsDashing()) { Q.Cast(minion.ServerPosition); break; } } } } } if (E.IsReady()) { var minECount = GetValue <StringList>("UseE.Lane").SelectedIndex; if (minECount != 0) { var killableMinionCount = 0; foreach (var m in MinionManager.GetMinions(ObjectManager.Player.ServerPosition, E.Range) .Where(x => E.CanCast(x) && x.Health < E.GetDamage(x))) { if (m.SkinName.ToLower().Contains("siege") || m.SkinName.ToLower().Contains("super")) { killableMinionCount += 2; } else { killableMinionCount++; } } if (killableMinionCount >= minECount && E.IsReady() && ObjectManager.Player.ManaPercent > E.ManaCost * 2) { E.Cast(); } } } // Don't miss minion if (GetValue <bool>("UseE.LaneNon")) { var minions = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, E.Range * 1); foreach (var n in minions) { var xH = HealthPrediction.GetHealthPrediction(n, (int)(ObjectManager.Player.AttackCastDelay * 1000), Game.Ping / 2 + 100); if (xH < 0) { if (n.Health < E.GetDamage(n) && E.CanCast(n)) { E.Cast(n); } else if (Q.IsReady() && Q.CanCast(n) && n.Distance(ObjectManager.Player.Position) < Orbwalking.GetRealAutoAttackRange(null) + 75) { xH = HealthPrediction.GetHealthPrediction(n, (int)(ObjectManager.Player.AttackCastDelay * 1000), (int)Q.Speed); if (xH < 0) { var input = new PredictionInput { Unit = ObjectManager.Player, Radius = Q.Width, Delay = Q.Delay, Speed = Q.Speed, }; input.CollisionObjects[0] = CollisionableObjects.Minions; int count = Collision.GetCollision(new List <Vector3> { n.Position }, input) .OrderBy(obj => obj.Distance(ObjectManager.Player)) .Count(obj => obj.NetworkId != n.NetworkId); if (count == 0) { Q.Cast(n); } } } } } } }
public void Obj_AI_Hero_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (sender.Type != GameObjectType.obj_AI_Hero) { return; } if (!sender.IsValid || sender.Team == ObjectManager.Player.Team) { return; } if (W.IsReady()) { if (sender.IsEnemy && sender is Obj_AI_Hero && args.Target.IsMe) { foreach ( var c in DangerousTargetedSpells.Where(c => ((Obj_AI_Hero)sender).ChampionName.ToLower() == c.ChampionName) .Where(c => args.Slot == c.SpellSlot)) //.Where(c => args.SData.Name == ((Obj_AI_Hero)sender).GetSpell(c.SpellSlot).Name)) { W.Cast(); } } var enemy = (Obj_AI_Hero)sender; if ((enemy.CharData.BaseSkinName.ToLower() == "vayne" || enemy.CharData.BaseSkinName.ToLower() == "poppy") && args.Slot == SpellSlot.E && args.Target.IsMe) { for (var i = 1; i < 8; i++) { var myBehind = ObjectManager.Player.Position + Vector3.Normalize(enemy.ServerPosition - ObjectManager.Player.Position) * (-i * 50); if (myBehind.IsWall()) { W.Cast(); } } } if (enemy.CharData.BaseSkinName.ToLower() == "riven" && args.Slot == SpellSlot.W && enemy.Position.Distance(ObjectManager.Player.Position) < Orbwalking.GetRealAutoAttackRange(null) + 150) { W.Cast(); DodgeMessage("Riven's W"); } if (enemy.CharData.BaseSkinName.ToLower() == "diana" && args.Slot == SpellSlot.E && enemy.Position.Distance(ObjectManager.Player.Position) <= 350) { W.Cast(); DodgeMessage("Diana E"); } if (enemy.CharData.BaseSkinName.ToLower() == "MasterYi" && args.Slot == SpellSlot.E && enemy.Health < ObjectManager.Player.Health && args.Target.IsMe) { W.Cast(); DodgeMessage("MasterYi E"); } if (enemy.CharData.BaseSkinName.ToLower() == "darius" && args.Slot == SpellSlot.E && enemy.Position.Distance(ObjectManager.Player.Position) <= 550 && enemy.Level <= 5) { W.Cast(); DodgeMessage("Darius E"); } if (enemy.CharData.BaseSkinName.ToLower() == "blitzcrank" && args.Slot == SpellSlot.R && enemy.Position.Distance(ObjectManager.Player.Position) < Orbwalking.GetRealAutoAttackRange(null) + 300) { W.Cast(); DodgeMessage("Blitzcrank's R"); } if (enemy.CharData.BaseSkinName.ToLower() == "lissandra" && args.Slot == SpellSlot.R && enemy.Position.Distance(ObjectManager.Player.Position) < 500) { W.Cast(); DodgeMessage("Lissandra's R"); } } }
public override void ExecuteJungle() { var jungleMobs = Utils.GetMobs(Q.Range, Marksman.Utils.Utils.MobTypes.All); if (jungleMobs != null) { if (Q.IsReady()) { switch (Program.Config.Item("UseQ.Jungle").GetValue <StringList>().SelectedIndex) { case 1: { Q.Cast(jungleMobs); break; } case 2: { jungleMobs = Utils.GetMobs(Q.Range, Utils.MobTypes.BigBoys); if (jungleMobs != null) { Q.Cast(jungleMobs); } break; } } } if (W.IsReady()) { var jW = Program.Config.Item("UseW.Jungle").GetValue <StringList>().SelectedIndex; if (jW != 0) { if (jW == 1) { jungleMobs = Utils.GetMobs(Orbwalking.GetRealAutoAttackRange(null) + 65, Utils.MobTypes.BigBoys); if (jungleMobs != null) { Q.Cast(); } } else { var totalAa = ObjectManager.Get <Obj_AI_Minion>() .Where( m => m.Team == GameObjectTeam.Neutral && m.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 165)) .Sum(mob => (int)mob.Health); totalAa = (int)(totalAa / ObjectManager.Player.TotalAttackDamage); if (totalAa > jW) { W.Cast(); } } } } } }
public override void ExecuteJungleClear() { if (Q.IsReady() && AsheQCastReady) { var jE = GetValue <StringList>("UseQJ").SelectedIndex; if (jE != 0) { if (jE == 1) { var jungleMobs = Utils.Utils.GetMobs( Orbwalking.GetRealAutoAttackRange(null) + 65, Utils.Utils.MobTypes.BigBoys); if (jungleMobs != null) { Q.Cast(); } } else { var totalAa = MinionManager.GetMinions( ObjectManager.Player.Position, Orbwalking.GetRealAutoAttackRange(null) + 165, MinionTypes.All, MinionTeam.Neutral).Sum(mob => (int)mob.Health); totalAa = (int)(totalAa / ObjectManager.Player.TotalAttackDamage); if (totalAa > jE) { Q.Cast(); } } } } if (W.IsReady()) { var jungleMobs = Marksman.Utils.Utils.GetMobs(W.Range, Marksman.Utils.Utils.MobTypes.All); if (jungleMobs != null) { var jW = GetValue <StringList>("UseWJ").SelectedIndex; switch (jW) { case 1: { jungleMobs = Marksman.Utils.Utils.GetMobs( W.Range, Marksman.Utils.Utils.MobTypes.All, jW); W.CastOnUnit(jungleMobs); break; } case 2: { jungleMobs = Utils.Utils.GetMobs(W.Range, Utils.Utils.MobTypes.BigBoys); if (jungleMobs != null) { W.CastOnUnit(jungleMobs); } break; } } } } }
public override void GameOnUpdate(EventArgs args) { var orbwalkPos = GetOrbwalkPos(); var cursor = Game.CursorPos; if (orbwalkPos != cursor && (ComboActive || LaneClearActive || Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LastHit)) { Orbwalker.SetOrbwalkingPoint(orbwalkPos); } else { Orbwalker.SetOrbwalkingPoint(cursor); } Obj_AI_Hero t; //Combo if (ComboActive) { var minRRange = Config.Item("UseRCMinR").GetValue <Slider>().Value; var maxRRange = Config.Item("UseRCMaxR").GetValue <Slider>().Value; t = TargetSelector.GetTarget(maxRRange, TargetSelector.DamageType.Physical); if (!t.IsValidTarget()) { return; } if (W.IsReady() && Config.Item("UseWC").GetValue <bool>() && t.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65) && ObjectManager.Player.Buffs.FirstOrDefault( buff => buff.Name == "dravenfurybuff" || buff.Name == "DravenFury") == null) { W.Cast(); } if (IsFleeing(t) && Config.Item("UseEC").GetValue <bool>() && t.IsValidTarget(E.Range)) { E.Cast(t); } if (Config.Item("UseRC").GetValue <bool>() && R.IsReady()) { t = TargetSelector.GetTarget(maxRRange, TargetSelector.DamageType.Physical); if (t.Distance(ObjectManager.Player) >= minRRange && t.Distance(ObjectManager.Player) <= maxRRange && t.Health < ObjectManager.Player.GetSpellDamage(t, SpellSlot.R) * 2) //R.GetHealthPrediction(target) <= 0) { R.Cast(t); } } } //Peel from melees if (Config.Item("EPeel").GetValue <bool>()) { foreach (var pos in from enemy in ObjectManager.Get <Obj_AI_Hero>() where enemy.IsValidTarget() && enemy.Distance(ObjectManager.Player) <= enemy.BoundingRadius + enemy.AttackRange + ObjectManager.Player.BoundingRadius && LeagueSharp.Common.Orbwalking.IsMelee(enemy) let direction = (enemy.ServerPosition.To2D() - ObjectManager.Player.ServerPosition.To2D()).Normalized() let pos = ObjectManager.Player.ServerPosition.To2D() select pos + Math.Min(200, Math.Max(50, enemy.Distance(ObjectManager.Player) / 2)) * direction) { E.Cast(pos.To3D()); } } }
public override void Game_OnGameUpdate(EventArgs args) { UltiBuffStacks = GetUltimateBuffStacks(); W.Range = 110 + 20 * ObjectManager.Player.Spellbook.GetSpell(SpellSlot.W).Level; R.Range = 900 + 300 * ObjectManager.Player.Spellbook.GetSpell(SpellSlot.R).Level; if (R.IsReady() && GetValue <bool>("UseRM")) { foreach ( var hero in ObjectManager.Get <Obj_AI_Hero>() .Where( hero => hero.IsValidTarget(R.Range) && R.GetDamage(hero) > hero.Health)) { CastR(hero); } } //R.Cast(hero, false, true); if ((!ComboActive && !HarassActive) || (!Orbwalking.CanMove(100) && !(ObjectManager.Player.BaseAbilityDamage + ObjectManager.Player.FlatMagicDamageMod > 100))) { return; } var useQ = GetValue <bool>("UseQ" + (ComboActive ? "C" : "H")); var useE = GetValue <bool>("UseE" + (ComboActive ? "C" : "H")); var useR = GetValue <bool>("UseR" + (ComboActive ? "C" : "H")); var rLim = GetValue <Slider>("Rlim" + (ComboActive ? "C" : "H")).Value; var t = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Magical); if (useQ && Q.IsReady() && t.IsValidTarget(Q.Range)) { CastQ(t); //if (Q.Cast(t) == Spell.CastStates.SuccessfullyCasted) // return; } if (useE && E.IsReady() && t.IsValidTarget(E.Range)) { CastE(t); //if (Q.Cast(t) == Spell.CastStates.SuccessfullyCasted) // return; } if (R.IsReady() && t.IsValidTarget(R.Range)) //if (GetValue<bool>("UseRSC") && R.IsReady() && t.IsValidTarget(R.Range)) { if (t.IsValidTarget() && (t.HasBuffOfType(BuffType.Stun) || t.HasBuffOfType(BuffType.Snare) || t.HasBuffOfType(BuffType.Slow) || t.HasBuffOfType(BuffType.Fear) || t.HasBuffOfType(BuffType.Taunt))) { CastR(t); //R.Cast(t, false, true); } } if (useR && R.IsReady() && UltiBuffStacks < rLim && t.IsValidTarget(R.Range)) { CastR(t); //R.Cast(t, false, true); } }
public override void ExecuteLaneClear() { List <Obj_AI_Base> laneMinions; var laneWValue = GetValue <StringList>("Lane.UseW").SelectedIndex; if (laneWValue != 0 && W.IsReady()) { var totalAa = ObjectManager.Get <Obj_AI_Minion>() .Where( m => m.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65 + W.Range)) .Sum(mob => (int)mob.Health); totalAa = (int)(totalAa / ObjectManager.Player.TotalAttackDamage); if (totalAa > laneWValue * 5) { W.Cast(); } } var laneQValue = GetValue <StringList>("Lane.UseQ").SelectedIndex; if (laneQValue != 0 && W.IsReady()) { if (laneQValue == 1 || laneQValue == 3) { var vMinions = MinionManager.GetMinions(ObjectManager.Player.Position, Q.Range); foreach (var minions in vMinions .Where(minions => minions.Health < ObjectManager.Player.GetSpellDamage(minions, SpellSlot.Q)) .Where( m => m.IsValidTarget(Q.Range) && m.Distance(ObjectManager.Player.Position) > GetRealAARange) ) { var qP = Q.GetPrediction(minions); var hit = qP.CastPosition.Extend(ObjectManager.Player.Position, -140); if (qP.Hitchance >= HitChance.High) { Q.Cast(hit); } } } if (laneQValue == 2 || laneQValue == 3) { var minions = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, E.Range * 1); foreach (var n in from n in minions let xH = HealthPrediction.GetHealthPrediction(n, (int)(ObjectManager.Player.AttackCastDelay * 1000), Game.Ping / 2 + 100) where xH < 0 where n.Health < Q.GetDamage(n) select n) { Q.Cast(n); } } } var laneEValue = GetValue <StringList>("Lane.UseE").SelectedIndex; if (laneEValue != 0 && E.IsReady()) { laneMinions = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, E.Range, MinionTypes.All); if (laneMinions != null) { var locE = E.GetLineFarmLocation(laneMinions); if (laneMinions.Count == laneMinions.Count(m => ObjectManager.Player.Distance(m) < E.Range) && locE.MinionsHit > laneEValue && locE.Position.IsValid()) { E.Cast(locE.Position); } } } var laneRValue = GetValue <StringList>("Lane.UseR").SelectedIndex; if (laneRValue != 0 && R.IsReady() && UltiBuffStacks < GetValue <Slider>("Lane.UseRLim").Value) { switch (laneRValue) { case 1: { var vMinions = MinionManager.GetMinions(ObjectManager.Player.Position, Q.Range); foreach (var minions in vMinions .Where(minions => minions.Health < R.GetDamage(minions)) .Where( m => m.IsValidTarget(R.Range) && m.Distance(ObjectManager.Player.Position) > GetRealAARange) ) { R.Cast(minions); } break; } case 2: { laneMinions = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, R.Range + R.Width + 30, MinionTypes.Ranged); if (laneMinions != null) { var locR = R.GetCircularFarmLocation(laneMinions, R.Width * 0.75f); if (locR.MinionsHit >= laneEValue && R.IsInRange(locR.Position.To3D())) { R.Cast(locR.Position); } } break; } } } }
public override void Orbwalking_BeforeAttack(Orbwalking.BeforeAttackEventArgs args) { foreach ( var target in HeroManager.Enemies.Where( e => e.IsValid && e.Distance(ObjectManager.Player) < Orbwalking.GetRealAutoAttackRange(null) + 65 && e.IsVisible).Where(target => target.HasBuff("kindredcharge"))) { Orbwalker.ForceTarget(target); } }
public override void GameOnUpdate(EventArgs args) { var enemy = HeroManager.Enemies.Find( e => e.Buffs.Any(b => b.Name.ToLower() == "quinnw_cosmetic" && e.IsValidTarget(E.Range))); if (enemy != null) { if (enemy.Distance(ObjectManager.Player.Position) > Orbwalking.GetRealAutoAttackRange(null) + 65) { ObjectManager.Player.IssueOrder(GameObjectOrder.MoveTo, enemy); } Orbwalker.ForceTarget(enemy); } if (Q.IsReady() && GetValue <KeyBind>("UseQTH").Active) { if (ObjectManager.Player.HasBuff("Recall")) { return; } var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical); if (t != null) { Q.Cast(t, false, true); } } if (ComboActive || HarassActive) { var useQ = GetValue <bool>("UseQ" + (ComboActive ? "C" : "H")); var useE = GetValue <bool>("UseE" + (ComboActive ? "C" : "H")); if (Orbwalking.CanMove(100)) { if (E.IsReady() && useE) { var t = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Physical); if (t.IsValidTarget() && !t.IsZombie && !isHePantheon(t) && !t.HasBuff("QuinnW_Cosmetic")) { E.CastOnUnit(t); } } if (Q.IsReady() && useQ) { var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical); if (t.IsValidTarget() && !t.IsZombie) { Q.Cast(t); } } if (IsValorMode && !E.IsReady()) { var vTarget = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Physical); if (vTarget != null) { calculateValorDamage(); if (vTarget.Health >= ValorMinDamage && vTarget.Health <= ValorMaxDamage) { R.Cast(); } } } } } }
public override void Game_OnGameUpdate(EventArgs args) { Orbwalker.SetAttack(Game.Time > rqTumbleBuffEndOfTime); if (JungleClearActive) { ExecJungleClear(); } if ((ComboActive || HarassActive)) { if (GetValue <bool>("FocusW")) { var silverBuffMarkedEnemy = VayneData.GetSilverBuffMarkedEnemy; if (silverBuffMarkedEnemy != null) { TargetSelector.SetTarget(silverBuffMarkedEnemy); } else { var attackRange = Orbwalking.GetRealAutoAttackRange(ObjectManager.Player); TargetSelector.SetTarget( TargetSelector.GetTarget(attackRange, TargetSelector.DamageType.Physical)); } } var useQ = GetValue <StringList>("Combo.UseQ").SelectedIndex; var t = TargetSelector.GetTarget(Q.Range + Orbwalking.GetRealAutoAttackRange(null), TargetSelector.DamageType.Physical); if (Q.IsReady() && t.LSIsValidTarget() && useQ != 0) { switch (useQ) { case 1: { Q.Cast(Game.CursorPos); break; } case 2: { var silverEnemy = VayneData.GetSilverBuffMarkedEnemy; if (silverEnemy != null && t.ChampionName == silverEnemy.ChampionName && VayneData.GetSilverBuffMarkedCount == 2) { Q.Cast(Game.CursorPos); Orbwalker.ForceTarget(t); } break; } case 3: { if (t.LSDistance(ObjectManager.Player.Position) > Orbwalking.GetRealAutoAttackRange(null) && Q.IsPositionSafe(t.Position.LSTo2D())) { Q.Cast(t.Position); } else if (Q.IsPositionSafe(Game.CursorPos.LSTo2D())) { Q.Cast(Game.CursorPos); } Orbwalker.ForceTarget(t); break; } } } var useE = GetValue <StringList>("UseEC").SelectedIndex; if (E.IsReady() && useE != 0) { t = TargetSelector.GetTarget(E.Range + Q.Range, TargetSelector.DamageType.Physical); if (useE == 1) { if (t.LSIsValidTarget()) { CastE(t); } } else { foreach (var e in HeroManager.Enemies.Where(e => e.LSIsValidTarget(E.Range) && !e.IsZombie)) { CastE(e); } } /* * foreach (var hero in * from hero in ObjectManager.Get<Obj_AI_Hero>().Where(hero => hero.LSIsValidTarget(550f)) * let prediction = E.GetPrediction(hero) * where * NavMesh.GetCollisionFlags( * prediction.UnitPosition.LSTo2D() * .LSExtend( * ObjectManager.Player.ServerPosition.LSTo2D(), * -GetValue<Slider>("PushDistance").Value) * .To3D()).HasFlag(CollisionFlags.Wall) || * NavMesh.GetCollisionFlags( * prediction.UnitPosition.LSTo2D() * .LSExtend( * ObjectManager.Player.ServerPosition.LSTo2D(), * -(GetValue<Slider>("PushDistance").Value/2)) * .To3D()).HasFlag(CollisionFlags.Wall) * select hero) * { * E.Cast(hero); * } */ } } if (LaneClearActive) { var useQ = GetValue <bool>("UseQL"); if (Q.IsReady() && useQ) { var vMinions = MinionManager.GetMinions(ObjectManager.Player.Position, Q.Range); foreach (var minions in vMinions.Where( minions => minions.Health < ObjectManager.Player.GetSpellDamage(minions, SpellSlot.Q))) { Q.Cast(minions); } } } }
public override void Drawing_OnDraw(EventArgs args) { return; var drawE = GetValue <StringList>("DrawE").SelectedIndex; if (E.IsReady() && drawE != 0) { if (drawE == 1 || drawE == 3) { Render.Circle.DrawCircle(ObjectManager.Player.Position, E.Range, Color.BurlyWood, 1); } if (drawE == 2 || drawE == 3) { var t = TargetSelector.GetTarget(E.Range + Q.Range, TargetSelector.DamageType.Physical); if (t.LSIsValidTarget()) { var color = System.Drawing.Color.Red; for (var i = 1; i < 8; i++) { var targetBehind = t.Position + Vector3.Normalize(t.ServerPosition - ObjectManager.Player.Position) * i * 50; if (!targetBehind.IsWall()) { color = System.Drawing.Color.Aqua; } else { color = System.Drawing.Color.Red; } } var tt = t.Position + Vector3.Normalize(t.ServerPosition - ObjectManager.Player.Position) * 8 * 50; var startpos = t.Position; var endpos = tt; var endpos1 = tt + (startpos - endpos).LSTo2D().Normalized().Rotated(45 * (float)Math.PI / 180).To3D() * t.BoundingRadius; var endpos2 = tt + (startpos - endpos).LSTo2D().Normalized().Rotated(-45 * (float)Math.PI / 180).To3D() * t.BoundingRadius; var width = 2; var x = new Geometry.Polygon.Line(startpos, endpos); { x.Draw(color, width); } var y = new Geometry.Polygon.Line(endpos, endpos1); { y.Draw(color, width); } var z = new Geometry.Polygon.Line(endpos, endpos2); { z.Draw(color, width); } } } } var drawQ = GetValue <StringList>("DrawQ").SelectedIndex; switch (drawQ) { case 1: Render.Circle.DrawCircle(ObjectManager.Player.Position, Q.Range, System.Drawing.Color.Aqua); break; case 2: Render.Circle.DrawCircle(ObjectManager.Player.Position, Q.Range + Orbwalking.GetRealAutoAttackRange(null) + 65, System.Drawing.Color.Aqua); break; } }
public void ExecJungleClear() { var jungleMobs = Marksman.Utils.Utils.GetMobs(Q.Range + Orbwalking.GetRealAutoAttackRange(null) + 65, Marksman.Utils.Utils.MobTypes.All); if (jungleMobs != null) { switch (GetValue <StringList>("UseQJ").SelectedIndex) { case 1: { if (!jungleMobs.SkinName.ToLower().Contains("baron") || !jungleMobs.SkinName.ToLower().Contains("dragon")) { if (jungleMobs.LSIsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65)) { Q.Cast( jungleMobs.LSIsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65) ? Game.CursorPos : jungleMobs.Position); } } break; } case 2: { if (!jungleMobs.SkinName.ToLower().Contains("baron") || !jungleMobs.SkinName.ToLower().Contains("dragon")) { jungleMobs = Marksman.Utils.Utils.GetMobs( Q.Range + Orbwalking.GetRealAutoAttackRange(null) + 65, Marksman.Utils.Utils.MobTypes.BigBoys); if (jungleMobs != null) { Q.Cast( jungleMobs.LSIsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65) ? Game.CursorPos : jungleMobs.Position); } } break; } } switch (GetValue <StringList>("UseEJ").SelectedIndex) { case 1: { if (jungleMobs.LSIsValidTarget(E.Range)) { E.CastOnUnit(jungleMobs); } break; } case 2: { jungleMobs = Marksman.Utils.Utils.GetMobs(E.Range, Marksman.Utils.Utils.MobTypes.BigBoys); if (jungleMobs != null) { CastE(jungleMobs); if (ObjectManager.Player.LSDistance(jungleMobs) < ObjectManager.Player.AttackRange / 2) { E.CastOnUnit(jungleMobs); } } break; } } } }
public override void Orbwalking_BeforeAttack(Orbwalking.BeforeAttackEventArgs args) { args.Process = !Q.IsCharging; }
public override void ExecuteJungleClear() { Obj_AI_Base jungleMobs; var jungleWValue = GetValue <StringList>("Jungle.UseW").SelectedIndex; if (jungleWValue != 0 && W.IsReady()) { var jungleW = jungleWValue; if (jungleW != 0) { if (jungleW == 1) { jungleMobs = Utils.Utils.GetMobs(Orbwalking.GetRealAutoAttackRange(null) + 65 + W.Range, Utils.Utils.MobTypes.BigBoys); if (jungleMobs != null) { W.Cast(); } } else { var totalAa = ObjectManager.Get <Obj_AI_Minion>() .Where( m => m.Team == GameObjectTeam.Neutral && m.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65 + W.Range)) .Sum(mob => (int)mob.Health); totalAa = (int)(totalAa / ObjectManager.Player.TotalAttackDamage); if (totalAa > jungleW * 5) { W.Cast(); } } } } var jungleQValue = GetValue <StringList>("Jungle.UseQ").SelectedIndex; if (jungleQValue != 0 && Q.IsReady()) { jungleMobs = Marksman.Utils.Utils.GetMobs(Q.Range, Utils.Utils.MobTypes.All); if (jungleMobs != null) { switch (jungleQValue) { case 1: { Q.Cast(jungleMobs); break; } case 2: { jungleMobs = Utils.Utils.GetMobs(Q.Range, Utils.Utils.MobTypes.BigBoys); if (jungleMobs != null) { Q.Cast(jungleMobs); } break; } } } } var jungleEValue = GetValue <StringList>("Jungle.UseE").SelectedIndex; if (jungleEValue != 0 && E.IsReady()) { jungleMobs = Marksman.Utils.Utils.GetMobs(E.Range, Utils.Utils.MobTypes.All); if (jungleMobs != null) { switch (jungleEValue) { case 1: { E.Cast(jungleMobs, false, true); break; } case 2: { jungleMobs = Utils.Utils.GetMobs(E.Range, Utils.Utils.MobTypes.BigBoys); if (jungleMobs != null) { E.Cast(jungleMobs, false, true); } break; } } } } var jungleRValue = GetValue <StringList>("Jungle.UseR").SelectedIndex; if (jungleRValue != 0 && R.IsReady() && UltiBuffStacks < GetValue <Slider>("Jungle.UseRLim").Value) { jungleMobs = Marksman.Utils.Utils.GetMobs(R.Range, Utils.Utils.MobTypes.All); if (jungleMobs != null) { switch (jungleRValue) { case 1: { R.Cast(jungleMobs, false, true); break; } case 2: { jungleMobs = Utils.Utils.GetMobs(R.Range, Utils.Utils.MobTypes.BigBoys, jungleRValue); if (jungleMobs != null) { R.Cast(jungleMobs, false, true); } break; } } } } }
public override void Orbwalking_BeforeAttack(Orbwalking.BeforeAttackEventArgs args) { if (!W.IsReady()) { return; } if (GetValue<bool>("Misc.UseW.Inhibitor") && args.Target is Obj_BarracksDampener) { W.Cast(); } if (GetValue<bool>("Misc.UseW.Nexus") && args.Target is Obj_HQ) { W.Cast(); } if (GetValue<bool>("Misc.UseW.Turret") && args.Target is Obj_AI_Turret) { W.Cast(); } }
public override void Game_OnGameUpdate(EventArgs args) { if (!ComboActive) { var t = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical); if (!t.IsValidTarget() || !W.IsReady()) { return; } if (Program.Config.Item("UseWTH").GetValue <KeyBind>().Active) { if (ObjectManager.Player.HasBuff("Recall")) { return; } W.Cast(t); } if (t.HasBuffOfType(BuffType.Stun) || t.HasBuffOfType(BuffType.Snare) || t.HasBuffOfType(BuffType.Charm) || t.HasBuffOfType(BuffType.Fear) || t.HasBuffOfType(BuffType.Taunt) || t.HasBuff("zhonyasringshield") || t.HasBuff("Recall")) { W.Cast(t.Position); } } /* [ Combo ] */ if (ComboActive) { var useW = Config.Item("UseWC" + Id).GetValue <bool>(); var t = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical); if (Q.IsReady() && AsheQCastReady) { if (t.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 90)) { Q.Cast(); } } if (useW && W.IsReady() && t.IsValidTarget()) { W.Cast(t); } var useR = Program.Config.SubMenu("Combo").Item("UseRC").GetValue <bool>(); if (useR && R.IsReady()) { var minRRange = Program.Config.SubMenu("Combo").Item("UseRCMinRange").GetValue <Slider>().Value; var maxRRange = Program.Config.SubMenu("Combo").Item("UseRCMaxRange").GetValue <Slider>().Value; t = TargetSelector.GetTarget(maxRRange, TargetSelector.DamageType.Physical); if (!t.IsValidTarget()) { return; } var aaDamage = Orbwalking.InAutoAttackRange(t) ? ObjectManager.Player.GetAutoAttackDamage(t, true) : 0; if (t.Health > aaDamage && t.Health <= ObjectManager.Player.GetSpellDamage(t, SpellSlot.R) && ObjectManager.Player.Distance(t) >= minRRange) { R.Cast(t); } } } //Harass if (HarassActive) { var target = TargetSelector.GetTarget(1200, TargetSelector.DamageType.Physical); if (target == null) { return; } if (Config.Item("UseWH" + Id).GetValue <bool>() && W.IsReady()) { W.Cast(target); } } //Manual cast R if (Config.Item("RManualCast" + Id).GetValue <KeyBind>().Active) { var rTarget = TargetSelector.GetTarget(2000, TargetSelector.DamageType.Physical); R.Cast(rTarget); } }