//public static void DrawJunglePosition(int drawOption) //{ // if (drawOption == (int)DrawOption.Off) // { // return; // } // junglePositions = new Dictionary<Vector3, System.Drawing.Color>(); // if (Game.MapId == (GameMapId)11) // { // const float CircleRange = 115f; // junglePositions.Add(new Vector3(7461.018f, 3253.575f, 52.57141f), System.Drawing.Color.Blue); // // blue team :red; // junglePositions.Add(new Vector3(3511.601f, 8745.617f, 52.57141f), System.Drawing.Color.Blue); // // blue team :blue // junglePositions.Add(new Vector3(7462.053f, 2489.813f, 52.57141f), System.Drawing.Color.Blue); // // blue team :golems // junglePositions.Add(new Vector3(3144.897f, 7106.449f, 51.89026f), System.Drawing.Color.Blue); // // blue team :wolfs // junglePositions.Add(new Vector3(7770.341f, 5061.238f, 49.26587f), System.Drawing.Color.Blue); // // blue team :wariaths // junglePositions.Add(new Vector3(10930.93f, 5405.83f, -68.72192f), System.Drawing.Color.Yellow); // // Dragon // junglePositions.Add(new Vector3(7326.056f, 11643.01f, 50.21985f), System.Drawing.Color.Red); // // red team :red // junglePositions.Add(new Vector3(11417.6f, 6216.028f, 51.00244f), System.Drawing.Color.Red); // // red team :blue // junglePositions.Add(new Vector3(7368.408f, 12488.37f, 56.47668f), System.Drawing.Color.Red); // // red team :golems // junglePositions.Add(new Vector3(10342.77f, 8896.083f, 51.72742f), System.Drawing.Color.Red); // // red team :wolfs // junglePositions.Add(new Vector3(7001.741f, 9915.717f, 54.02466f), System.Drawing.Color.Red); // // red team :wariaths // foreach (var hp in junglePositions) // { // switch (drawOption) // { // case (int)DrawOption.CloseToMobs: // if (ObjectManager.Player.Distance(hp.Key) // <= Orbwalking.GetRealAutoAttackRange(null) + 65) // { // Render.Circle.DrawCircle(hp.Key, CircleRange, hp.Value); // } // break; // case (int)DrawOption.CloseToMobsAndJungleClearActive: // if (ObjectManager.Player.Distance(hp.Key) // <= Orbwalking.GetRealAutoAttackRange(null) + 65 && Program.ChampionClass.JungleClearActive) // { // Render.Circle.DrawCircle(hp.Key, CircleRange, hp.Value); // } // break; // } // } // } //} public static GameObjectTeam Team(this Obj_AI_Base mob) { mobTeams = new Dictionary <Vector2, GameObjectTeam>(); if (Game.MapId == (GameMapId)11) { mobTeams.Add(new Vector2(7756f, 4118f), GameObjectTeam.Order); // blue team :red; mobTeams.Add(new Vector2(3824f, 7906f), GameObjectTeam.Order); // blue team :blue mobTeams.Add(new Vector2(8356f, 2660f), GameObjectTeam.Order); // blue team :golems mobTeams.Add(new Vector2(3860f, 6440f), GameObjectTeam.Order); // blue team :wolfs mobTeams.Add(new Vector2(6982f, 5468f), GameObjectTeam.Order); // blue team :wariaths mobTeams.Add(new Vector2(2166f, 8348f), GameObjectTeam.Order); // blue team :Frog jQuery mobTeams.Add(new Vector2(4768, 10252), GameObjectTeam.Neutral); // Baron mobTeams.Add(new Vector2(10060, 4530), GameObjectTeam.Neutral); // Dragon mobTeams.Add(new Vector2(7274f, 11018f), GameObjectTeam.Chaos); // Red team :red; mobTeams.Add(new Vector2(11182f, 6844f), GameObjectTeam.Chaos); // Red team :Blue mobTeams.Add(new Vector2(6450f, 12302f), GameObjectTeam.Chaos); // Red team :golems mobTeams.Add(new Vector2(11152f, 8440f), GameObjectTeam.Chaos); // Red team :wolfs mobTeams.Add(new Vector2(7830f, 9526f), GameObjectTeam.Chaos); // Red team :wariaths mobTeams.Add(new Vector2(12568, 6274), GameObjectTeam.Chaos); // Red team : Frog jQuery return (mobTeams.Where( hp => mob.Distance(hp.Key) <= (Orbwalking.GetRealAutoAttackRange(null) * 2)) .Select(hp => hp.Value) .FirstOrDefault()); } return(GameObjectTeam.Unknown); }
public override void ExecuteLaneClear() { var useQ = Program.Config.Item("UseQL").GetValue <StringList>().SelectedIndex; var minion = MinionManager.GetMinions(ObjectManager.Player.Position, Q.Range) .FirstOrDefault(m => m.Health < ObjectManager.Player.GetSpellDamage(m, SpellSlot.Q)); if (minion != null) { switch (useQ) { case 1: minion = MinionManager.GetMinions(ObjectManager.Player.Position, Q.Range) .FirstOrDefault( m => m.Health <ObjectManager.Player.GetSpellDamage(m, SpellSlot.Q) && m.Health> ObjectManager.Player.TotalAttackDamage); Q.Cast(minion); break; case 2: minion = MinionManager.GetMinions(ObjectManager.Player.Position, Q.Range) .FirstOrDefault( m => m.Health <ObjectManager.Player.GetSpellDamage(m, SpellSlot.Q) && ObjectManager.Player.Distance(m) > Orbwalking.GetRealAutoAttackRange(null) + 65); Q.Cast(minion); break; } } }
public override void ExecuteLaneClear() { var qJ = Program.Config.Item("UseQ.Lane").GetValue <StringList>().SelectedIndex; if (qJ != 0) { var minionsQ = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, Q.Range, MinionTypes.All); if (minionsQ != null) { if (Q.IsReady()) { var locQ = Q.GetLineFarmLocation(minionsQ); if (minionsQ.Count == minionsQ.Count(m => ObjectManager.Player.Distance(m) < Q.Range) && locQ.MinionsHit > qJ && locQ.Position.IsValid()) { Q.Cast(locQ.Position); } } } } var wJ = Program.Config.Item("UseW.Lane").GetValue <StringList>().SelectedIndex; if (wJ != 0) { var minionsW = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, Orbwalking.GetRealAutoAttackRange(null) + 165, MinionTypes.All); if (minionsW != null && minionsW.Count >= wJ) { if (W.IsReady()) { W.Cast(); } } } }
public override void GameOnUpdate(EventArgs args) { if (R.IsReady()) { var x = 0d; if (ObjectManager.Player.HealthPercent < 20 && ObjectManager.Player.CountEnemiesInRange(500) > 0) { x = HeroManager.Enemies.Where(e => e.IsValidTarget(1000)) .Aggregate(0, (current, enemy) => (int)(current + enemy.Health)); } if (ObjectManager.Player.Health < x) { R.Cast(ObjectManager.Player.Position); } } Obj_AI_Hero t = null; if (KindredECharge != null) { t = KindredECharge; TargetSelector.SetTarget(KindredECharge); } else { t = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Physical); } if (!t.IsValidTarget()) { return; } if (ComboActive && !t.HasKindredUltiBuff()) { if (t.IsValidTarget(Q.Range + Orbwalking.GetRealAutoAttackRange(null) + 65) && !t.HasKindredUltiBuff()) { if (GetValue <bool>("Combo.Q.Use")) { Q.Cast(Game.CursorPos); //var x = CommonUtils.GetDashPosition(E, t, 400); //Q.Cast(x); } if (GetValue <bool>("Combo.E.Use") && E.IsReady() && t.IsValidTarget(E.Range)) { E.CastOnUnit(t); } if (GetValue <bool>("Combo.W.Use") && W.IsReady() && t.IsValidTarget(W.Range / 2)) { W.Cast(t.Position); } } } }
public override void ExecuteJungleClear() { if (Q.IsReady()) { var jQ = Marksman.Utils.Utils.GetMobs(Orbwalking.GetRealAutoAttackRange(null) + 65, Marksman.Utils.Utils.MobTypes.All); if (jQ != null) { switch (GetValue <StringList>("UseQJ").SelectedIndex) { case 1: { Q.Cast(jQ); break; } case 2: { jQ = Utils.Utils.GetMobs(Orbwalking.GetRealAutoAttackRange(null) + 65, Utils.Utils.MobTypes.BigBoys); if (jQ != null) { Q.Cast(jQ); } break; } } } } if (E.IsReady()) { var jungleMobs = Marksman.Utils.Utils.GetMobs(E.Range, Marksman.Utils.Utils.MobTypes.All); if (jungleMobs != null) { switch (GetValue <StringList>("UseEJ").SelectedIndex) { case 1: { E.CastOnUnit(jungleMobs); break; } case 2: { jungleMobs = Utils.Utils.GetMobs(E.Range, Utils.Utils.MobTypes.BigBoys); if (jungleMobs != null) { E.CastOnUnit(jungleMobs); } 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 ExecuteLaneClear() { if (E.IsReady()) { var minions = MinionManager.GetMinions(ObjectManager.Player.Position, E.Range, MinionTypes.All, MinionTeam.Enemy); if (minions != null) { var eJ = Program.Config.Item("UseE.Lane").GetValue <StringList>().SelectedIndex; if (eJ != 0) { var mE = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, E.Range + 175, MinionTypes.All); var locW = E.GetCircularFarmLocation(mE, 175); if (locW.MinionsHit >= eJ && E.IsInRange(locW.Position.To3D())) { foreach ( var x in ObjectManager.Get <Obj_AI_Minion>() .Where(m => m.IsEnemy && !m.IsDead && m.LSDistance(locW.Position) < 100)) { E.CastOnUnit(x); } } } } if (Q.IsReady()) { var jE = Program.Config.Item("UseQ.Lane").GetValue <StringList>().SelectedIndex; if (jE != 0) { var totalAa = ObjectManager.Get <Obj_AI_Minion>() .Where( m => m.IsEnemy && !m.IsDead && m.LSIsValidTarget(Orbwalking.GetRealAutoAttackRange(null))) .Sum(mob => (int)mob.Health); totalAa = (int)(totalAa / ObjectManager.Player.TotalAttackDamage); if (totalAa > jE) { Q.Cast(); } } } } }
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.LSIsValidTarget(Orbwalking.GetRealAutoAttackRange(null)) && ComboActive) { var useQ = Q.IsReady() && GetValue <bool>("UseQC"); if (useQ) { Q.CastOnUnit(Player); } } } }
public override void Drawing_OnDraw(EventArgs args) { Spell[] spellList = { Q, W, E, R }; foreach (var spell in spellList) { var menuItem = GetValue <Circle>("Draw" + spell.Slot); if (menuItem.Active) { Render.Circle.DrawCircle(ObjectManager.Player.Position, spell.Slot == SpellSlot.W ? Orbwalking.GetRealAutoAttackRange(null) + 65 + W.Range : spell.Range, menuItem.Color); } } }
public override void ExecuteLane() { if (Q.IsReady() && AsheQCastReady) { var jQ = GetValue <StringList>("UseQ.Lane").SelectedIndex; if (jQ != 0) { var totalAa = ObjectManager.Get <Obj_AI_Minion>() .Where( m => m.IsEnemy && !m.IsDead && m.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null))) .Sum(mob => (int)mob.Health); totalAa = (int)(totalAa / ObjectManager.Player.TotalAttackDamage); if (totalAa > jQ) { Q.Cast(); } } } if (E.IsReady()) { var minions = MinionManager.GetMinions( ObjectManager.Player.Position, E.Range, MinionTypes.All, MinionTeam.Enemy); if (minions != null) { var jE = GetValue <StringList>("UseW.Lane").SelectedIndex; if (jE != 0) { var mE = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, W.Range, MinionTypes.All); if (mE.Count >= jE) { W.Cast(mE[0].Position); } } } } }
public override void Spellbook_OnCastSpell(Spellbook sender, SpellbookCastSpellEventArgs args) { var nClosesTarget = HeroManager.Enemies.Find(e => e.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65)); { if (nClosesTarget != null) { if (GetValue <bool>("UseWMC") && ObjectManager.Player.Spellbook.GetSpell(SpellSlot.W).Level > 0 && Math.Abs(W.Cooldown) < 0.00001 && args.Slot != SpellSlot.W) { var lastMana = ObjectManager.Player.Mana - ObjectManager.Player.Spellbook.GetSpell(args.Slot).ManaCost; if (lastMana < ObjectManager.Player.Spellbook.GetSpell(SpellSlot.W).ManaCost) { args.Process = false; } } } } }
public override void Drawing_OnDraw(EventArgs args) { var drawQ = GetValue <StringList>("DrawQ").SelectedIndex; switch (drawQ) { case 1: Render.Circle.DrawCircle(ObjectManager.Player.Position, Q.Range, Color.Aqua); break; case 2: Render.Circle.DrawCircle(ObjectManager.Player.Position, Q.Range + Orbwalking.GetRealAutoAttackRange(null) + 65, Color.Aqua); break; } Spell[] spellList = { W, E, R }; foreach (var spell in spellList) { var menuItem = GetValue <Circle>("Draw" + spell.Slot); if (menuItem.Active) { Render.Circle.DrawCircle(ObjectManager.Player.Position, spell.Range, menuItem.Color); } } }
public override void DrawingOnEndScene(EventArgs args) { return; var nClosesEnemy = HeroManager.Enemies.Find(e => e.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null))); if (nClosesEnemy != null) { var aaRange = Orbwalking.GetRealAutoAttackRange(null) + 65 - ObjectManager.Player.Distance(nClosesEnemy); Render.Circle.DrawCircle(ObjectManager.Player.Position, aaRange, Color.BurlyWood); Vector2 wcPositive = ObjectManager.Player.Position.To2D() - Vector2.Normalize(nClosesEnemy.Position.To2D() - ObjectManager.Player.Position.To2D()).Rotated((float)Math.PI / 180) * aaRange; Vector2 wcPositive2 = ObjectManager.Player.Position.To2D() - Vector2.Normalize(nClosesEnemy.Position.To2D() - ObjectManager.Player.Position.To2D()).Rotated(30 * (float)Math.PI / 180) * aaRange; Vector2 wcPositive3 = ObjectManager.Player.Position.To2D() - Vector2.Normalize(nClosesEnemy.Position.To2D() - ObjectManager.Player.Position.To2D()).Rotated(-30 * (float)Math.PI / 180) * aaRange; Vector2 wcPositive2x = ObjectManager.Player.Position.To2D() - Vector2.Normalize(nClosesEnemy.Position.To2D() - ObjectManager.Player.Position.To2D()).Rotated(60 * (float)Math.PI / 180) * aaRange; Vector2 wcPositive3x = ObjectManager.Player.Position.To2D() - Vector2.Normalize(nClosesEnemy.Position.To2D() - ObjectManager.Player.Position.To2D()).Rotated(-60 * (float)Math.PI / 180) * aaRange; if (E.IsReady()) { var runHere = Vector2.Zero; if (!wcPositive.IsWall()) { runHere = wcPositive; } else if (!wcPositive2.IsWall()) { runHere = wcPositive2; } else if (!wcPositive3.IsWall()) { runHere = wcPositive3; } else if (!wcPositive2x.IsWall()) { runHere = wcPositive2x; } else if (!wcPositive3x.IsWall()) { runHere = wcPositive3x; } if (runHere != Vector2.Zero && ObjectManager.Player.Distance(runHere) > ObjectManager.Player.BoundingRadius * 2) { E.Cast(runHere); } } Render.Circle.DrawCircle(wcPositive2.To3D(), 80f, Color.Red); Render.Circle.DrawCircle(wcPositive3.To3D(), 80f, Color.Yellow); Render.Circle.DrawCircle(wcPositive.To3D(), 80, Color.BurlyWood); Render.Circle.DrawCircle(wcPositive2x.To3D(), 80f, Color.Red); Render.Circle.DrawCircle(wcPositive3x.To3D(), 80f, Color.Yellow); } //if (Q.IsReady()) //{ return; foreach (var t in HeroManager.Enemies.Where(e => e.IsValidTarget(1100))) { var toPolygon = new CommonGeometry.Rectangle(ObjectManager.Player.Position.To2D(), ObjectManager.Player.Position.To2D() .Extend(t.Position.To2D(), t.Distance(ObjectManager.Player.Position)), 30).ToPolygon(); toPolygon.Draw(System.Drawing.Color.Red, 1); var o = ObjectManager .Get <Obj_AI_Base>( ).FirstOrDefault(e => e.IsEnemy && !e.IsDead && e.NetworkId != t.NetworkId && toPolygon.IsInside(e) && ObjectManager.Player.Distance(t.Position) > ObjectManager.Player.Distance(e) && e.Distance(t) > t.BoundingRadius && e.Distance(ObjectManager.Player) > ObjectManager.Player.BoundingRadius); if (o != null) { Render.Circle.DrawCircle(o.Position, 105f, Color.GreenYellow); Q.CastOnUnit(o); } Vector2 wcPositive = ObjectManager.Player.Position.To2D() - Vector2.Normalize(t.Position.To2D() - ObjectManager.Player.Position.To2D()).Rotated((float)Math.PI / 180) * (E.Range - 50); Render.Circle.DrawCircle(wcPositive.To3D(), 60, Color.BurlyWood); Render.Circle.DrawCircle(wcPositive.To3D(), 80f, Color.BurlyWood); Render.Circle.DrawCircle(wcPositive.To3D(), 100f, Color.BurlyWood); } //} return; foreach (var t in HeroManager.Enemies.Where(e => e.IsValidTarget(1100))) { var toPolygon = new CommonGeometry.Rectangle(ObjectManager.Player.Position.To2D(), ObjectManager.Player.Position.To2D().Extend(t.Position.To2D(), t.Distance(ObjectManager.Player.Position)), 40).ToPolygon(); toPolygon.Draw(System.Drawing.Color.Red, 1); foreach (var obj in ObjectManager.Get <Obj_AI_Base>()) { } //Console.WriteLine(hero.ChampionName); for (int j = 20; j < 361; j += 20) { Vector2 wcPositive = ObjectManager.Player.Position.To2D() + Vector2.Normalize(t.Position.To2D() - ObjectManager.Player.Position.To2D()).Rotated(j * (float)Math.PI / 180) * E.Range; if (!wcPositive.IsWall() && t.Distance(wcPositive) > E.Range) { Render.Circle.DrawCircle(wcPositive.To3D(), 105f, Color.GreenYellow); } //if (!wcPositive.IsWall()) //{ // ListWJumpPositions.Add(wcPositive); //} //Vector2 wcNegative = ObjectManager.Player.Position.To2D() + // Vector2.Normalize(hero.Position.To2D() - ObjectManager.Player.Position.To2D()) // .Rotated(-j * (float)Math.PI / 180) * E.Range; //Render.Circle.DrawCircle(wcNegative.To3D(), 105f, Color.White); //if (!wcNegative.IsWall()) //{ // ListWJumpPositions.Add(wcNegative); //} } } }
public override void PermaActive() { if (Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.Combo) { return; } var enemy = HeroManager.Enemies.Find(e => e.IsValidTarget(E.Range + (Q.IsReady() ? Q.Range : Orbwalking.GetRealAutoAttackRange(null) + 65)) && !e.IsZombie); if (enemy != null) { if (enemy.Health < ObjectManager.Player.TotalAttackDamage * 2 && !LucianHavePassiveBuff() && enemy.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65) && !Q.IsReady()) { if (W.IsReady() && GetValue <bool>("UseWC")) { W.Cast(enemy.Position); } else if (E.IsReady() && GetValue <StringList>("UseEC").SelectedIndex != 0) { E.Cast(enemy.Position); } } var xPossibleComboDamage = 0f; xPossibleComboDamage += Q.IsReady() ? Q.GetDamage(enemy) + ObjectManager.Player.TotalAttackDamage * 2 : 0; xPossibleComboDamage += E.IsReady() ? ObjectManager.Player.TotalAttackDamage * 2 : 0; if (enemy.Health < xPossibleComboDamage) { // if (enemy.Distance(ObjectManager.Player) > Orbwalking.GetRealAutoAttackRange(null) + 65)) } if (E.IsReady() && Q.IsReady() && GetValue <StringList>("UseEC").SelectedIndex != 0) { E.Cast(enemy.Position); } } }
public override void ExecuteCombo() { var t = HeroManager.Enemies.Find( e => e.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65) && e.CanGetDamage()); if (hasPassive && t != null) { Orbwalker.ForceTarget(t); } if (!hasPassive && t.IsValidTarget() && Q.IsReady()) { Q.CastOnUnit(t); } if (GetValue <bool>("Combo.W.Use") && !hasPassive && t.IsValidTarget() && W.IsReady()) { W.Cast(t.Position); } if (t.IsValidTarget() && GetValue <bool>("Combo.E.Use") && E.IsReady() && !hasPassive) { var x = CommonUtils.GetDashPosition(E, t, 200); E.Cast(x); } if (!t.IsValidTarget() && t.IsValidTarget(qExtended.Range)) { var useQExtended = GetValue <StringList>("UseQExtendedC").SelectedIndex; if (useQExtended != 0) { switch (useQExtended) { case 1: { var tx = QMinion(t); if (tx.IsValidTarget(Q.Range)) { Q.CastOnUnit(tx); } break; } case 2: { var enemy = HeroManager.Enemies.Find(e => e.IsValidTarget(qExtended.Range) && !e.IsZombie); if (enemy != null) { var tx = QMinion(enemy); if (tx.IsValidTarget()) { Q.CastOnUnit(tx); } } break; } } } } }
public override void Game_OnGameUpdate(EventArgs args) { if (ObjectManager.Player.IsDead) { xAttackLeft = 0; return; } if (Game.Time > xPassiveUsedTime + 3 && xAttackLeft == 1) { xAttackLeft = 0; } if (Config.Item("Passive" + Id).GetValue <bool>() && xAttackLeft > 0) { return; } Obj_AI_Hero t; if (Q.IsReady() && GetValue <KeyBind>("UseQTH").Active&& ToggleActive) { if (ObjectManager.Player.HasBuff("Recall")) { return; } t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical); if (t != null) { Q.CastOnUnit(t); } } if (Q.IsReady() && GetValue <KeyBind>("UseQExtendedTH").Active&& ToggleActive) { if (ObjectManager.Player.HasBuff("Recall")) { return; } t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical); if (t.IsValidTarget() && QMinion(t).IsValidTarget()) { if (ObjectManager.Player.Distance(t) > Q.Range) { Q.CastOnUnit(QMinion(t)); } } } if ((!ComboActive && !HarassActive)) { return; } var useQExtended = GetValue <StringList>("UseQExtendedC").SelectedIndex; if (useQExtended != 0) { switch (useQExtended) { case 1: { t = TargetSelector.GetTarget(Q2.Range, TargetSelector.DamageType.Physical); var tx = QMinion(t); if (tx.IsValidTarget()) { if (!Orbwalking.InAutoAttackRange(t)) { Q.CastOnUnit(tx); } } break; } case 2: { var enemy = HeroManager.Enemies.Find(e => e.IsValidTarget(Q2.Range) && !e.IsZombie); if (enemy != null) { var tx = QMinion(enemy); if (tx.IsValidTarget()) { Q.CastOnUnit(tx); } } break; } } } // Auto turn off Ghostblade Item if Ultimate active if (ObjectManager.Player.Spellbook.GetSpell(SpellSlot.R).Level > 0) { Config.Item("GHOSTBLADE") .SetValue(ObjectManager.Player.Spellbook.GetSpell(SpellSlot.R).Name == "LucianR"); } //if (useQExtended && Q.IsReady()) //{ // var t = TargetSelector.GetTarget(Q2.Range, TargetSelector.DamageType.Physical); // if (t.IsValidTarget() && QMinion.IsValidTarget()) // { // if (!Orbwalking.InAutoAttackRange(t)) // Q.CastOnUnit(QMinion); // } //} t = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical); if (!t.IsValidTarget()) { return; } var useQ = GetValue <bool>("UseQC"); if (useQ && Q.IsReady()) { if (t.IsValidTarget(Q.Range)) { Q.CastOnUnit(t); Orbwalking.ResetAutoAttackTimer(); } } var useW = GetValue <bool>("UseWC"); if (useW && W.IsReady()) { if (t.IsValidTarget(W.Range)) { W.Cast(t); Orbwalking.ResetAutoAttackTimer(); } } var useE = GetValue <StringList>("UseEC").SelectedIndex; if (useE != 0 && E.IsReady()) { if (t.Distance(ObjectManager.Player.Position) > Orbwalking.GetRealAutoAttackRange(null) && t.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + E.Range - 50) && E.IsPositionSafe(t.Position.To2D())) { E.Cast(t.Position); Orbwalking.ResetAutoAttackTimer(); } else if (Q.IsPositionSafe(Game.CursorPos.To2D())) { E.Cast(Game.CursorPos); Orbwalking.ResetAutoAttackTimer(); } Orbwalker.ForceTarget(t); //if (t.IsValidTarget(Q.Range)) //{ // E.Cast(Game.CursorPos); //} } }
public override void ExecuteJungleClear() { var jungleQValue = GetValue <StringList>("Jungle.UseQ").SelectedIndex; if (jungleQValue != 0 && Q.IsReady()) { var bigMobsQ = Utils.Utils.GetMobs(Q.Range, jungleQValue == 2 ? Utils.Utils.MobTypes.BigBoys : Utils.Utils.MobTypes.All); if (bigMobsQ != null && bigMobsQ.Health > ObjectManager.Player.TotalAttackDamage * 2) { Q.CastOnUnit(bigMobsQ); } } var jungleWValue = GetValue <StringList>("Jungle.UseQ").SelectedIndex; if (jungleWValue != 0 && W.IsReady()) { var bigMobsQ = Utils.Utils.GetMobs(W.Range, jungleWValue == 2 ? Utils.Utils.MobTypes.BigBoys : Utils.Utils.MobTypes.All); if (bigMobsQ != null && bigMobsQ.Health > ObjectManager.Player.TotalAttackDamage * 2) { W.Cast(bigMobsQ); } } var jungleEValue = GetValue <StringList>("Jungle.UseE").SelectedIndex; if (jungleEValue != 0 && E.IsReady()) { var jungleMobs = Marksman.Utils.Utils.GetMobs(Q.Range + Orbwalking.GetRealAutoAttackRange(null) + 65, Marksman.Utils.Utils.MobTypes.All); if (jungleMobs != null) { switch (GetValue <StringList>("Jungle.UseE").SelectedIndex) { case 1: { if (!jungleMobs.SkinName.ToLower().Contains("baron") || !jungleMobs.SkinName.ToLower().Contains("dragon")) { if (jungleMobs.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65)) { E.Cast( jungleMobs.IsValidTarget( 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( E.Range + Orbwalking.GetRealAutoAttackRange(null) + 65, Marksman.Utils.Utils.MobTypes.BigBoys); if (jungleMobs != null) { E.Cast( jungleMobs.IsValidTarget( Orbwalking.GetRealAutoAttackRange(null) + 65) ? Game.CursorPos : jungleMobs.Position); } } 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.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65)) { Q.Cast( jungleMobs.IsValidTarget(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.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65) ? Game.CursorPos : jungleMobs.Position); } } break; } } switch (GetValue <StringList>("UseEJ").SelectedIndex) { case 1: { if (jungleMobs.IsValidTarget(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.Distance(jungleMobs) < ObjectManager.Player.AttackRange / 2) { E.CastOnUnit(jungleMobs); } } break; } } } }
public override void ExecuteLaneClear() { if (Q.IsReady()) { var lQ = Program.Config.Item("Lane.UseQ").GetValue <StringList>().SelectedIndex; if (lQ != 0) { { 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.CastOnUnit(minions); } } } } if (W.IsReady()) { var lW = Program.Config.Item("Lane.UseW").GetValue <StringList>().SelectedIndex; if (lW != 0) { var totalAa = ObjectManager.Get <Obj_AI_Minion>() .Where( m => m.IsEnemy && !m.IsDead && m.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null))) .Sum(mob => (int)mob.Health); totalAa = (int)(totalAa / ObjectManager.Player.TotalAttackDamage); if (totalAa > lW) { W.Cast(); } } } if (E.IsReady()) { var lE = Program.Config.Item("Lane.UseE").GetValue <StringList>().SelectedIndex; if (lE != 0) { var mE = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, E.Range, MinionTypes.All); if (mE != null) { var locE = E.GetCircularFarmLocation(mE, 175); if (locE.MinionsHit >= lE && E.IsInRange(locE.Position.To3D())) { foreach ( var x in ObjectManager.Get <Obj_AI_Minion>() .Where(m => m.IsEnemy && !m.IsDead && m.Distance(locE.Position) < 500)) { E.Cast(x); } } } } } }
public override void ExecuteJungle() { 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 Game_OnGameUpdate(EventArgs args) { //var t1 = TargetSelector.GetTarget(2000, TargetSelector.DamageType.Physical); //if (t1.IsValidTarget()) //{ // if (t1.IsFacing(ObjectManager.Player)) // { // Console.WriteLine("--> Face " + t1.ChampionName); // } // else // { // Console.WriteLine(t1.ChampionName + " <-- Back"); // } //} /* * var x = HeroManager.Enemies.Find(e => !e.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null)) && e.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + QAddRange)); * if (x != null && !FishBoneActive && Q.IsReady()) * { * Q.Cast(); * Program.ChampionClass.Orbwalker.ForceTarget(x); * } */ if (Q.IsReady() && GetValue <bool>("SwapDistance") && Program.ChampionClass.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo) { var activeQ = ObjectManager.Player.Spellbook.GetSpell(SpellSlot.Q).Level * 25 + 650; var t = TargetSelector.GetTarget(activeQ, TargetSelector.DamageType.Physical); if (t.IsValidTarget() && ObjectManager.Player.Distance(t) > Orbwalking.GetRealAutoAttackRange(null) + 65) { if (!FishBoneActive) { Q.Cast(); Orbwalker.ForceTarget(t); return; } } if (!t.IsValidTarget() && FishBoneActive) { Q.Cast(); return; } } if (GetValue <bool>("PingCH")) { foreach (var enemy in HeroManager.Enemies.Where( t => R.IsReady() && t.IsValidTarget() && R.GetDamage(t) > t.Health && t.Distance(ObjectManager.Player) > Orbwalking.GetRealAutoAttackRange(null) + 65 + QAddRange)) { Utils.Utils.MPing.Ping(enemy.Position.To2D(), 2, PingCategory.Normal); } } var autoEi = GetValue <bool>("AutoEI"); var autoEs = GetValue <bool>("AutoES"); var autoEd = GetValue <bool>("AutoED"); //foreach (var e in HeroManager.Enemies.Where(e => e.IsValidTarget(E.Range))) //{ // if (E.IsReady() // && (e.HasBuffOfType(BuffType.Stun) || e.HasBuffOfType(BuffType.Snare) // || e.HasBuffOfType(BuffType.Charm) || e.HasBuffOfType(BuffType.Fear) || // e.HasBuffOfType(BuffType.Slow) // || e.HasBuffOfType(BuffType.Taunt) || e.HasBuff("zhonyasringshield") // || e.HasBuff("Recall"))) // { // E.Cast(e); // } //} if (autoEs || autoEi || autoEd) { foreach ( var enemy in ObjectManager.Get <Obj_AI_Hero>().Where(enemy => enemy.IsValidTarget(E.Range - 50))) { if (autoEs && E.IsReady() && enemy.HasBuffOfType(BuffType.Slow)) { var castPosition = Prediction.GetPrediction( new PredictionInput { Unit = enemy, Delay = 0.7f, Radius = 120f, Speed = 1750f, Range = 900f, Type = SkillshotType.SkillshotCircle }).CastPosition; if (GetSlowEndTime(enemy) >= (Game.Time + E.Delay + 0.5f)) { E.Cast(castPosition); } } if (E.IsReady() && (enemy.HasBuffOfType(BuffType.Stun) || enemy.HasBuffOfType(BuffType.Snare) || enemy.HasBuffOfType(BuffType.Charm) || enemy.HasBuffOfType(BuffType.Fear) || enemy.HasBuffOfType(BuffType.Slow) || enemy.HasBuffOfType(BuffType.Taunt) || enemy.HasBuff("zhonyasringshield") || enemy.HasBuff("Recall"))) { E.CastIfHitchanceEquals(enemy, HitChance.High); } else if (W.IsReady() && (enemy.HasBuffOfType(BuffType.Stun) || enemy.HasBuffOfType(BuffType.Snare) || enemy.HasBuffOfType(BuffType.Charm) || enemy.HasBuffOfType(BuffType.Fear) || enemy.HasBuffOfType(BuffType.Slow) || enemy.HasBuffOfType(BuffType.Taunt) || enemy.HasBuff("zhonyasringshield") || enemy.HasBuff("Recall"))) { W.CastIfHitchanceEquals(enemy, HitChance.High); } if (autoEd && E.IsReady() && enemy.IsDashing()) { E.CastIfHitchanceEquals(enemy, HitChance.Dashing); } } } if (GetValue <KeyBind>("CastR").Active&& R.IsReady()) { var t = TargetSelector.GetTarget(1500, TargetSelector.DamageType.Physical); if (t.IsValidTarget()) { if (ObjectManager.Player.GetSpellDamage(t, SpellSlot.R) > t.Health && !t.IsZombie) { R.CastIfHitchanceGreaterOrEqual(t); //R.CastIfHitchanceEquals(t, HitChance.High, false); } } } if (GetValue <bool>("SwapQ") && FishBoneActive && !ComboActive) { Q.Cast(); } if (HarassActive) { if (GetValue <bool>("UseQMH")) { var t = TargetSelector.GetTarget(Q.Range * 2, TargetSelector.DamageType.Magical); foreach (var m in ObjectManager.Get <Obj_AI_Minion>().Where(m => m.Distance(ObjectManager.Player.Position) < Orbwalking.GetRealAutoAttackRange(null) + QAddRange).OrderBy(m => m.Distance(t))) { } } } /* * if (GetValue<bool>("SwapQ") && FishBoneActive && (LaneClearActive || * (HarassActive && TargetSelector.GetTarget(675f + QAddRange, TargetSelector.DamageType.Physical) == null))) * { * Q.Cast(); * } */ if ((!ComboActive && !HarassActive) || !Orbwalking.CanMove(100)) { return; } var useW = GetValue <bool>("UseW" + (ComboActive ? "C" : "H")); var useR = GetValue <bool>("UseRC"); if (useW && W.IsReady()) { var t = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical); var minW = GetValue <Slider>("MinWRange").Value; if (t.IsValidTarget() && !t.HasKindredUltiBuff() && GetRealDistance(t) >= minW) { W.CastIfHitchanceGreaterOrEqual(t); } } /* * if (useQ) * { * foreach (var t in * ObjectManager.Get<Obj_AI_Hero>() * .Where(t => t.IsValidTarget(GetRealPowPowRange(t) + QAddRange + 20f))) * { * var swapDistance = GetValue<bool>("SwapDistance"); * var swapAoe = GetValue<bool>("SwapAOE"); * var distance = GetRealDistance(t); * var powPowRange = GetRealPowPowRange(t); * * if (swapDistance && Q.IsReady()) * { * if (distance > powPowRange && !FishBoneActive) * { * if (Q.Cast()) * { * return; * } * } * else if (distance < powPowRange && FishBoneActive) * { * if (Q.Cast()) * { * return; * } * } * } * * if (swapAoe && Q.IsReady()) * { * if (distance > powPowRange && PowPowStacks > 2 && !FishBoneActive && CountEnemies(t, 150) > 1) * { * if (Q.Cast()) * { * return; * } * } * } * } * } * */ if (useR && R.IsReady()) { var checkRok = GetValue <bool>("ROverKill"); var minR = GetValue <Slider>("MinRRange").Value; var maxR = GetValue <Slider>("MaxRRange").Value; var t = TargetSelector.GetTarget(maxR, TargetSelector.DamageType.Physical); if (t.IsValidTarget() && !t.HasKindredUltiBuff()) { var distance = GetRealDistance(t); if (!checkRok) { if (ObjectManager.Player.GetSpellDamage(t, SpellSlot.R, 1) > t.Health && !t.IsZombie) { R.CastIfHitchanceGreaterOrEqual(t); //R.CastIfHitchanceEquals(t, HitChance.High, false); //if (R.Cast(t) == Spell.CastStates.SuccessfullyCasted) { } } } else if (distance > minR) { var aDamage = ObjectManager.Player.GetAutoAttackDamage(t); var wDamage = ObjectManager.Player.GetSpellDamage(t, SpellSlot.W); var rDamage = ObjectManager.Player.GetSpellDamage(t, SpellSlot.R); var powPowRange = GetRealPowPowRange(t); if (distance < (powPowRange + QAddRange) && !(aDamage * 3.5 > t.Health)) { if (!W.IsReady() || !(wDamage > t.Health) || W.GetPrediction(t).CollisionObjects.Count > 0) { if (CountAlliesNearTarget(t, 500) <= 3) { if (rDamage > t.Health && !t.IsZombie /*&& !ObjectManager.Player.IsAutoAttacking && * !ObjectManager.Player.IsChanneling*/) { R.CastIfHitchanceGreaterOrEqual(t); //R.CastIfHitchanceEquals(t, HitChance.High, false); //if (R.Cast(t) == Spell.CastStates.SuccessfullyCasted) { } } } } } else if (distance > (powPowRange + QAddRange)) { if (!W.IsReady() || !(wDamage > t.Health) || distance > W.Range || W.GetPrediction(t).CollisionObjects.Count > 0) { if (CountAlliesNearTarget(t, 500) <= 3) { if (rDamage > t.Health && !t.IsZombie /*&& !ObjectManager.Player.IsAutoAttacking && * !ObjectManager.Player.IsChanneling*/) { R.CastIfHitchanceGreaterOrEqual(t); //R.CastIfHitchanceEquals(t, HitChance.High, false); //if (R.Cast(t) == Spell.CastStates.SuccessfullyCasted) { } } } } } } } } }
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 override void GameOnUpdate(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 (Program.Config.SubMenu("Combo").Item("UseRC").GetValue <bool>() && R.IsReady() && t.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 300) && AsheQ >= 2 && t.Health > R.GetDamage(t) + ObjectManager.Player.TotalAttackDamage * 4) { R.Cast(t); } 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); } }
public override void Game_OnGameUpdate(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) { var orbwalkPos = GetOrbwalkPos(); var cursor = Game.CursorPos; if (orbwalkPos != cursor && (ComboActive || LaneClearActive || Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LastHit)) { Orbwalker.SetMarksmanOrbwalkingPoint(orbwalkPos); } else { Orbwalker.SetMarksmanOrbwalkingPoint(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>()) //Taken from ziggs(by pq/esk0r) { 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 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.IsValidTarget()) { 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).To2D().Normalized().Rotated(45 * (float)Math.PI / 180).To3D() * t.BoundingRadius; var endpos2 = tt + (startpos - endpos).To2D().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 override void ExecuteJungleClear() { Game.PrintChat("laksdjlasdjlaskd"); 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.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65)) { Q.Cast(jungleMobs.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65) ? Game.CursorPos : jungleMobs.Position); } break; } case 2: { jungleMobs = Marksman.Utils.Utils.GetMobs( Q.Range + Orbwalking.GetRealAutoAttackRange(null) + 65, Marksman.Utils.Utils.MobTypes.BigBoys); if (jungleMobs != null) { Q.Cast(jungleMobs.IsValidTarget(Orbwalking.GetRealAutoAttackRange(null) + 65) ? Game.CursorPos : jungleMobs.Position); } break; } } switch (GetValue <StringList>("UseWJ").SelectedIndex) { case 1: { if (jungleMobs.IsValidTarget(W.Range)) { W.Cast(jungleMobs.Position); } break; } case 2: { jungleMobs = Marksman.Utils.Utils.GetMobs(E.Range, Marksman.Utils.Utils.MobTypes.BigBoys); if (jungleMobs != null) { W.Cast(jungleMobs.Position); } break; } } switch (GetValue <StringList>("UseEJ").SelectedIndex) { case 1: { if (jungleMobs.IsValidTarget(E.Range)) { E.CastOnUnit(jungleMobs); } break; } case 2: { jungleMobs = Marksman.Utils.Utils.GetMobs(E.Range, Marksman.Utils.Utils.MobTypes.BigBoys); if (jungleMobs != null) { E.CastOnUnit(jungleMobs); } break; } } } }
public override void ExecuteJungleClear() { var jungleMobs = Marksman.Utils.Utils.GetMobs(Q.Range, Marksman.Utils.Utils.MobTypes.All); if (jungleMobs != null) { if (Q.IsReady()) { switch (Program.Config.Item("Jungle.UseQ").GetValue <StringList>().SelectedIndex) { case 1: { Q.CastOnUnit(jungleMobs); break; } case 2: { jungleMobs = Utils.Utils.GetMobs(Q.Range, Utils.Utils.MobTypes.BigBoys); if (jungleMobs != null) { Q.CastOnUnit(jungleMobs); } break; } } } if (W.IsReady()) { var jW = Program.Config.Item("Jungle.UseW").GetValue <StringList>().SelectedIndex; if (jW != 0) { if (jW == 1) { jungleMobs = Utils.Utils.GetMobs(Orbwalking.GetRealAutoAttackRange(null) + 65, 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) + 165)) .Sum(mob => (int)mob.Health); totalAa = (int)(totalAa / ObjectManager.Player.TotalAttackDamage); if (totalAa >= jW) { W.Cast(); } } } } if (E.IsReady()) { var jE = Program.Config.Item("Jungle.UseE").GetValue <StringList>().SelectedIndex; if (jE != 0) { var aMobs = MinionManager.GetMinions(ObjectManager.Player.Position, E.Range, MinionTypes.All, MinionTeam.Neutral); if (aMobs.Count > jE) { E.Cast(aMobs[0]); } } } } }
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.IsValidTarget() && 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.Distance(ObjectManager.Player.Position) > Orbwalking.GetRealAutoAttackRange(null) && Q.IsPositionSafe(t.Position.To2D())) { Q.Cast(t.Position); } else if (Q.IsPositionSafe(Game.CursorPos.To2D())) { 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.IsValidTarget()) { CastE(t); } } else { foreach (var e in HeroManager.Enemies.Where(e => e.IsValidTarget(E.Range) && !e.IsZombie)) { CastE(e); } } /* * foreach (var hero in * from hero in ObjectManager.Get<Obj_AI_Hero>().Where(hero => hero.IsValidTarget(550f)) * let prediction = E.GetPrediction(hero) * where * NavMesh.GetCollisionFlags( * prediction.UnitPosition.To2D() * .Extend( * ObjectManager.Player.ServerPosition.To2D(), * -GetValue<Slider>("PushDistance").Value) * .To3D()).HasFlag(CollisionFlags.Wall) || * NavMesh.GetCollisionFlags( * prediction.UnitPosition.To2D() * .Extend( * ObjectManager.Player.ServerPosition.To2D(), * -(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 Game_OnGameUpdate(EventArgs args) { if (ObjectManager.Player.IsDead) { return; } if (!Orbwalking.CanMove(100)) { return; } var getEMarkedEnemy = TristanaData.GetEMarkedEnemy; if (getEMarkedEnemy != null) { TargetSelector.SetTarget(getEMarkedEnemy); } else { var attackRange = Orbwalking.GetRealAutoAttackRange(Player); TargetSelector.SetTarget(TargetSelector.GetTarget(attackRange, TargetSelector.DamageType.Physical)); } Q.Range = 600 + 5 * (Player.Level - 1); E.Range = 630 + 7 * (Player.Level - 1); R.Range = 630 + 7 * (Player.Level - 1); if (!Player.HasBuff("Recall") && GetValue <KeyBind>("UseETH").Active&& ToggleActive && E.IsReady()) { var t = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Physical); if (t.LSIsValidTarget(E.Range)) { if (Program.Config.Item("DontEToggleHarass" + t.ChampionName) != null && Program.Config.Item("DontEToggleHarass" + t.ChampionName).GetValue <bool>() == false) { E.CastOnUnit(t); } } } var useW = W.IsReady() && GetValue <bool>("UseWC"); var useWc = W.IsReady() && GetValue <bool>("UseWCS"); var useWks = W.IsReady() && GetValue <bool>("UseWKs"); var useE = E.IsReady() && GetValue <bool>("UseEC"); var useR = R.IsReady() && GetValue <bool>("UseRM") && R.IsReady(); if (ComboActive) { Obj_AI_Hero t; if (TristanaData.GetEMarkedEnemy != null) { t = TristanaData.GetEMarkedEnemy; TargetSelector.SetTarget(TristanaData.GetEMarkedEnemy); } else { t = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical); } if (useE && E.IsReady()) { if (E.IsReady() && t.LSIsValidTarget(E.Range)) { E.CastOnUnit(t); } } if (useW) { t = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical); if (t.LSIsValidTarget()) { W.Cast(t); } } /* * else if (useWks) * { * t = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical); * if (t.LSIsValidTarget() && t.Health < TristanaData.GetWDamage) * W.Cast(t); * } * else if (useWc) * { * t = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical); * if (t.LSIsValidTarget() && TristanaData.GetEMarkedCount == 4) * W.Cast(t); * } */ } if (ComboActive) { if (useR) { var t = TargetSelector.GetTarget(R.Range - 10, TargetSelector.DamageType.Physical); if (!t.LSIsValidTarget()) { return; } if (Player.GetSpellDamage(t, SpellSlot.R) - 30 < t.Health || t.Health < Player.GetAutoAttackDamage(t, true)) { return; } R.CastOnUnit(t); } } }