void AutoEscape() { //Avoid interrupting our assasination attempt if (jumpManager.MidAssasination) { return; } if (Config.GetBool("Safety.autoescape") && !IsHealthy) { if (Khazix.CountEnemiesInRange(500) > 0) { var ally = HeroList.FirstOrDefault(h => h.HealthPercent > 40 && h.CountEnemiesInRange(400) == 0 && !h.ServerPosition.PointUnderEnemyTurret()); if (ally != null && ally.IsValid) { E.Cast(ally.ServerPosition.To2D()); return; } } var underTurret = EnemyTurrets.Any(x => x.IsValid && !x.IsDead && x.IsValid && Khazix.Distance(x.Position) <= 900f); if (underTurret || Khazix.CountEnemiesInRange(500) >= 1) { var bestposition = Khazix.ServerPosition.Extend(NexusPosition, E.Range).To2D(); E.Cast(bestposition); return; } } }
internal void AssasinationCombo(Obj_AI_Hero target) { if ((target != null)) { var dist = Khazix.Distance(target); // Normal abilities if (Q.IsReady() && dist <= Q.Range) { Q.Cast(target); } if (W.IsReady() && !EvolvedW && dist <= W.Range) { var pred = W.GetPrediction(target); if (pred.Hitchance >= Config.GetHitChance("WHitchance")) { W.Cast(pred.CastPosition); } } else if (W.IsReady() && EvolvedW && dist <= WE.Range) { PredictionOutput pred = WE.GetPrediction(target); CastWE(target, pred.UnitPosition.To2D(), 0); } if (Config.GetBool("UseItems")) { UseItems(target); } } }
void OnDraw(EventArgs args) { if (getCheckBoxItem(draw, "Drawings.Disable") || Khazix.IsDead || Khazix.IsRecalling()) { return; } if (getCheckBoxItem(debug, "Debugon")) { var isolatedtargs = GetIsolatedTargets(); foreach (var x in isolatedtargs) { var heroposwts = Drawing.WorldToScreen(x.Position); Drawing.DrawText(heroposwts.X, heroposwts.Y, System.Drawing.Color.White, "Isolated"); } } if (getCheckBoxItem(djump, "jumpdrawings") && Jumping) { var PlayerPosition = Drawing.WorldToScreen(Khazix.Position); var Jump1 = Drawing.WorldToScreen(Jumppoint1).To3D(); var Jump2 = Drawing.WorldToScreen(Jumppoint2).To3D(); Render.Circle.DrawCircle(Jump1, 250, System.Drawing.Color.White); Render.Circle.DrawCircle(Jump2, 250, System.Drawing.Color.White); Drawing.DrawLine(PlayerPosition.X, PlayerPosition.Y, Jump1.X, Jump1.Y, 10, System.Drawing.Color.DarkCyan); Drawing.DrawLine(Jump1.X, Jump1.Y, Jump2.X, Jump2.Y, 10, System.Drawing.Color.DarkCyan); } var drawq = getCheckBoxItem(draw, "DrawQ"); var draww = getCheckBoxItem(draw, "DrawW"); var drawe = getCheckBoxItem(draw, "DrawE"); if (drawq) { Render.Circle.DrawCircle(Khazix.Position, Q.Range, System.Drawing.Color.White); } if (draww) { Render.Circle.DrawCircle(Khazix.Position, W.Range, System.Drawing.Color.Red); } if (drawe) { Render.Circle.DrawCircle(Khazix.Position, E.Range, System.Drawing.Color.Green); } }
void SpellCast(Spellbook sender, SpellbookCastSpellEventArgs args) { if (!EvolvedE || !getCheckBoxItem(djump, "save")) { return; } if (args.Slot.Equals(SpellSlot.Q) && args.Target is AIHeroClient && getCheckBoxItem(djump, "djumpenabled")) { var target = args.Target as AIHeroClient; var qdmg = GetQDamage(target); var dmg = (Khazix.GetAutoAttackDamage(target) * 2) + qdmg; if (target.Health < dmg && target.Health > qdmg) { //save some unnecessary q's if target is killable with 2 autos + Q instead of Q as Q is important for double jumping args.Process = false; } } }
void OnUpdate(EventArgs args) { if (Khazix.IsDead || Khazix.IsRecalling()) { return; } EvolutionCheck(); AutoEscape(); if (Config.GetBool("Kson")) { KillSteal(); } if (Config.GetKeyBind("Harass.Key")) { Harass(); } switch (Config.Orbwalker.ActiveMode) { case Orbwalking.OrbwalkingMode.Combo: Combo(); break; case Orbwalking.OrbwalkingMode.Mixed: Mixed(); break; case Orbwalking.OrbwalkingMode.LaneClear: Waveclear(); break; case Orbwalking.OrbwalkingMode.LastHit: LH(); break; case Orbwalking.OrbwalkingMode.Assasination: jumpManager.Assasinate(); break; } }
void OnUpdate(EventArgs args) { if (Khazix.IsDead || Khazix.IsRecalling()) { return; } EvolutionCheck(); if (getCheckBoxItem(ks, "Kson")) { KillSteal(); } if (getKeyBindItem(harass, "Harass.Key")) { Harass(); } if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo)) { Combo(); } if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Harass)) { Mixed(); } if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear)) { Waveclear(); } if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LastHit)) { LH(); } }
void Harass() { if (getCheckBoxItem(harass, "UseQHarass") && Q.IsReady()) { var enemy = TargetSelector.GetTarget(Q.Range, DamageType.Physical); if (enemy.IsValidEnemy()) { Q.Cast(enemy); } } if (getCheckBoxItem(harass, "UseWHarass") && W.IsReady()) { AIHeroClient target = TargetSelector.GetTarget(950, DamageType.Physical); var autoWI = getCheckBoxItem(harass, "Harass.AutoWI"); var autoWD = getCheckBoxItem(harass, "Harass.AutoWD"); var hitchance = HarassHitChance(Config); if (target != null && W.IsReady()) { if (!EvolvedW && Khazix.Distance(target) <= W.Range) { PredictionOutput predw = W.GetPrediction(target); if (predw.Hitchance == hitchance) { W.Cast(predw.CastPosition); } } else if (EvolvedW && target.IsValidTarget(W.Range)) { PredictionOutput pred = WE.GetPrediction(target); if ((pred.Hitchance == HitChance.Immobile && autoWI) || (pred.Hitchance == HitChance.Dashing && autoWD) || pred.Hitchance >= hitchance) { CastWE(target, pred.UnitPosition.To2D(), 0, hitchance); } } } } }
void KillSteal() { AIHeroClient target = HeroList .Where(x => x.IsValidTarget() && x.Distance(Khazix.Position) < 1375f && !x.IsZombie) .MinOrDefault(x => x.Health); if (target != null && target.IsInRange(600)) { if (getCheckBoxItem(safety, "Safety.autoescape") && !IsHealthy) { var ally = HeroList.FirstOrDefault(h => h.HealthPercent > 40 && h.CountEnemiesInRange(400) == 0 && !h.ServerPosition.PointUnderEnemyTurret()); if (ally != null && ally.IsValid) { E.Cast(ally.ServerPosition); return; } var objAiturret = EnemyTurretPositions.Where(x => Vector3.Distance(Khazix.ServerPosition, x) <= 900f); if (objAiturret.Any() || Khazix.CountEnemiesInRange(500) >= 1) { var bestposition = Khazix.ServerPosition.LSExtend(NexusPosition, E.Range); E.Cast(bestposition); return; } } if (getCheckBoxItem(ks, "UseQKs") && Q.IsReady() && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) <= Q.Range) { double QDmg = GetQDamage(target); if (!Jumping && target.Health <= QDmg) { Q.Cast(target); return; } } if (getCheckBoxItem(ks, "UseEKs") && E.IsReady() && !Jumping && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) <= E.Range && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) > Q.Range) { double EDmg = Khazix.GetSpellDamage(target, SpellSlot.E); if (!Jumping && target.Health < EDmg) { LeagueSharp.Common.Utility.DelayAction.Add( Game.Ping + getSliderItem(ks, "Edelay"), delegate { PredictionOutput pred = E.GetPrediction(target); if (target.IsValid && !target.IsDead) { if (getCheckBoxItem(ks, "Ksbypass") || ShouldJump(pred.CastPosition)) { E.Cast(pred.CastPosition); } } }); } } if (W.IsReady() && !EvolvedW && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) <= W.Range && getCheckBoxItem(ks, "UseWKs")) { double WDmg = Khazix.GetSpellDamage(target, SpellSlot.W); if (target.Health <= WDmg) { var pred = W.GetPrediction(target); if (pred.Hitchance >= HitChance.Medium) { W.Cast(pred.CastPosition); return; } } } if (W.IsReady() && EvolvedW && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) <= W.Range && getCheckBoxItem(ks, "UseWKs")) { double WDmg = Khazix.GetSpellDamage(target, SpellSlot.W); PredictionOutput pred = WE.GetPrediction(target); if (target.Health <= WDmg && pred.Hitchance >= HitChance.Medium) { CastWE(target, pred.UnitPosition.To2D(), 0, Config.GetHitChance("WHitchance")); return; } if (pred.Hitchance >= HitChance.Collision) { List <Obj_AI_Base> PCollision = pred.CollisionObjects; var x = PCollision .FirstOrDefault(PredCollisionChar => Vector3.Distance(PredCollisionChar.ServerPosition, target.ServerPosition) <= 30); if (x != null) { W.Cast(x.Position); return; } } } // Mixed's EQ KS if (Q.IsReady() && E.IsReady() && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) <= E.Range + Q.Range && getCheckBoxItem(ks, "UseEQKs")) { double QDmg = GetQDamage(target); double EDmg = Khazix.GetSpellDamage(target, SpellSlot.E); if ((target.Health <= QDmg + EDmg)) { LeagueSharp.Common.Utility.DelayAction.Add(getSliderItem(ks, "Edelay"), delegate { PredictionOutput pred = E.GetPrediction(target); if (target.IsValidTarget() && !target.IsZombie && ShouldJump(pred.CastPosition)) { if (getCheckBoxItem(ks, "Ksbypass") || ShouldJump(pred.CastPosition)) { E.Cast(pred.CastPosition); } } }); } } // MIXED EW KS if (W.IsReady() && E.IsReady() && !EvolvedW && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) <= W.Range + E.Range && getCheckBoxItem(ks, "UseEWKs")) { double WDmg = Khazix.GetSpellDamage(target, SpellSlot.W); if (target.Health <= WDmg) { LeagueSharp.Common.Utility.DelayAction.Add(getSliderItem(ks, "Edelay"), delegate { PredictionOutput pred = E.GetPrediction(target); if (target.IsValid && !target.IsDead && ShouldJump(pred.CastPosition)) { if (getCheckBoxItem(ks, "Ksbypass") || ShouldJump(pred.CastPosition)) { E.Cast(pred.CastPosition); } } }); } } if (Tiamat.IsReady() && Vector2.Distance(Khazix.ServerPosition.To2D(), target.ServerPosition.To2D()) <= Tiamat.Range && getCheckBoxItem(ks, "UseTiamatKs")) { double Tiamatdmg = Khazix.GetItemDamage(target, LeagueSharp.Common.Damage.DamageItems.Tiamat); if (target.Health <= Tiamatdmg) { Tiamat.Cast(); return; } } if (Hydra.IsReady() && Vector2.Distance(Khazix.ServerPosition.To2D(), target.ServerPosition.To2D()) <= Hydra.Range && getCheckBoxItem(ks, "UseTiamatKs")) { double hydradmg = Khazix.GetItemDamage(target, LeagueSharp.Common.Damage.DamageItems.Hydra); if (target.Health <= hydradmg) { Hydra.Cast(); } } } }
void Combo() { AIHeroClient target = null; if (SpellSlot.E.IsReady() && SpellSlot.Q.IsReady()) { target = TargetSelector.GetTarget((E.Range + Q.Range) * 0.95f, DamageType.Physical); } if (target == null) { target = TargetSelector.GetTarget(W.Range, DamageType.Physical); } if ((target != null)) { var dist = Khazix.Distance(target); // Normal abilities if (Q.IsReady() && !Jumping && getCheckBoxItem(combo, "UseQCombo")) { if (dist <= Q.Range) { Q.Cast(target); } } if (W.IsReady() && !EvolvedW && dist <= W.Range && getCheckBoxItem(combo, "UseWCombo")) { var pred = W.GetPrediction(target); if (pred.Hitchance >= Config.GetHitChance("WHitchance")) { W.Cast(pred.CastPosition); } } if (E.IsReady() && !Jumping && dist <= E.Range && getCheckBoxItem(combo, "UseECombo") && dist > Q.Range + (0.7 * Khazix.MoveSpeed)) { PredictionOutput pred = E.GetPrediction(target); if (target.IsValid && !target.IsDead && ShouldJump(pred.CastPosition)) { E.Cast(pred.CastPosition); } } // Use EQ AND EW Synergy if ((dist <= E.Range + Q.Range + (0.7 * Khazix.MoveSpeed) && dist > Q.Range && E.IsReady() && getCheckBoxItem(combo, "UseEGapclose")) || (dist <= E.Range + W.Range && dist > Q.Range && E.IsReady() && W.IsReady() && getCheckBoxItem(combo, "UseEGapcloseW"))) { PredictionOutput pred = E.GetPrediction(target); if (target.IsValid && !target.IsDead && ShouldJump(pred.CastPosition)) { E.Cast(pred.CastPosition); } if (getCheckBoxItem(combo, "UseRGapcloseW") && R.IsReady()) { R.CastOnUnit(Khazix); } } // Ult Usage if (R.IsReady() && !Q.IsReady() && !W.IsReady() && !E.IsReady() && getCheckBoxItem(combo, "UseRCombo")) { R.Cast(); } // Evolved if (W.IsReady() && EvolvedW && dist <= WE.Range && getCheckBoxItem(combo, "UseWCombo")) { PredictionOutput pred = WE.GetPrediction(target); if (pred.Hitchance >= Config.GetHitChance("WHitchance")) { CastWE(target, pred.UnitPosition.To2D(), 0, Config.GetHitChance("WHitchance")); } if (pred.Hitchance >= HitChance.Collision) { List <Obj_AI_Base> PCollision = pred.CollisionObjects; var x = PCollision.Where(PredCollisionChar => PredCollisionChar.Distance(target) <= 30).FirstOrDefault(); if (x != null) { W.Cast(x.Position); } } } if (dist <= E.Range + (0.7 * Khazix.MoveSpeed) && dist > Q.Range && getCheckBoxItem(combo, "UseECombo") && E.IsReady()) { PredictionOutput pred = E.GetPrediction(target); if (target.IsValid && !target.IsDead && ShouldJump(pred.CastPosition)) { E.Cast(pred.CastPosition); } } if (getCheckBoxItem(combo, "UseItems")) { UseItems(target); } } }
void Waveclear() { List <Obj_AI_Minion> allMinions = ObjectManager.Get <Obj_AI_Minion>().Where(x => x.IsValidTarget(W.Range) && !MinionManager.IsWard(x)).ToList(); if (getCheckBoxItem(farm, "UseQFarm") && Q.IsReady()) { var minion = Orbwalker.LastTarget as Obj_AI_Minion; if (minion != null && HealthPrediction.GetHealthPrediction( minion, (int)(Khazix.Distance(minion) * 1000 / 1400)) > 0.35f * Khazix.GetSpellDamage(minion, SpellSlot.Q) && Khazix.Distance(minion) <= Q.Range) { Q.Cast(minion); } else if (minion == null || !minion.IsValid) { foreach (var min in allMinions.Where(x => x.IsValidTarget(Q.Range))) { if (HealthPrediction.GetHealthPrediction( min, (int)(Khazix.Distance(min) * 1000 / 1400)) > 3 * Khazix.GetSpellDamage(min, SpellSlot.Q) && Khazix.Distance(min) <= Q.Range) { Q.Cast(min); break; } } } } if (getCheckBoxItem(farm, "UseWFarm") && W.IsReady() && Khazix.HealthPercent <= getSliderItem(farm, "Farm.WHealth")) { var wmins = EvolvedW ? allMinions.Where(x => x.IsValidTarget(WE.Range)) : allMinions.Where(x => x.IsValidTarget(W.Range)); MinionManager.FarmLocation farmLocation = MinionManager.GetBestCircularFarmLocation(wmins .Select(minion => minion.ServerPosition.To2D()) .ToList(), EvolvedW ? WE.Width : W.Width, EvolvedW ? WE.Range : W.Range); var distcheck = EvolvedW ? Khazix.Distance(farmLocation.Position) <= WE.Range : Khazix.Distance(farmLocation.Position) <= W.Range; if (distcheck) { W.Cast(farmLocation.Position); } } if (getCheckBoxItem(farm, "UseEFarm") && E.IsReady()) { MinionManager.FarmLocation farmLocation = MinionManager.GetBestCircularFarmLocation( MinionManager.GetMinions(Khazix.ServerPosition, E.Range) .Select(minion => minion.ServerPosition.To2D()) .ToList(), E.Width, E.Range); if (Khazix.Distance(farmLocation.Position) <= E.Range) { E.Cast(farmLocation.Position); } } if (getCheckBoxItem(farm, "UseItemsFarm")) { MinionManager.FarmLocation farmLocation = MinionManager.GetBestCircularFarmLocation( MinionManager.GetMinions(Khazix.ServerPosition, Hydra.Range) .Select(minion => minion.ServerPosition.To2D()) .ToList(), Hydra.Range, Hydra.Range); if (Hydra.IsReady() && Khazix.Distance(farmLocation.Position) <= Hydra.Range && farmLocation.MinionsHit >= 2) { Items.UseItem(3074, Khazix); } if (Tiamat.IsReady() && Khazix.Distance(farmLocation.Position) <= Tiamat.Range && farmLocation.MinionsHit >= 2) { Items.UseItem(3077, Khazix); } if (Titanic.IsReady() && Khazix.Distance(farmLocation.Position) <= Titanic.Range && farmLocation.MinionsHit >= 2) { Items.UseItem(3748, Khazix); } } }
void LH() { List <Obj_AI_Base> allMinions = MinionManager.GetMinions(Khazix.ServerPosition, Q.Range); if (getCheckBoxItem(farm, "UseQFarm") && Q.IsReady()) { foreach (Obj_AI_Base minion in allMinions.Where( minion => minion.IsValidTarget() && HealthPrediction.GetHealthPrediction( minion, (int)(Khazix.Distance(minion) * 1000 / 1400)) < 0.75 * Khazix.GetSpellDamage(minion, SpellSlot.Q))) { if (Vector3.Distance(minion.ServerPosition, Khazix.ServerPosition) > Orbwalking.GetRealAutoAttackRange(Khazix) && Khazix.Distance(minion) <= Q.Range) { Q.CastOnUnit(minion); return; } } } if (getCheckBoxItem(farm, "UseWFarm") && W.IsReady()) { MinionManager.FarmLocation farmLocation = MinionManager.GetBestCircularFarmLocation( MinionManager.GetMinions(Khazix.ServerPosition, W.Range).Where(minion => HealthPrediction.GetHealthPrediction( minion, (int)(Khazix.Distance(minion) * 1000 / 1400)) < 0.75 * Khazix.GetSpellDamage(minion, SpellSlot.W)) .Select(minion => minion.ServerPosition.To2D()) .ToList(), W.Width, W.Range); if (farmLocation.MinionsHit >= 1) { if (!EvolvedW) { if (Khazix.Distance(farmLocation.Position) <= W.Range) { W.Cast(farmLocation.Position); } } if (EvolvedW) { if (Khazix.Distance(farmLocation.Position) <= W.Range) { W.Cast(farmLocation.Position); } } } } if (getCheckBoxItem(farm, "UseEFarm") && E.IsReady()) { MinionManager.FarmLocation farmLocation = MinionManager.GetBestCircularFarmLocation( MinionManager.GetMinions(Khazix.ServerPosition, E.Range).Where(minion => HealthPrediction.GetHealthPrediction( minion, (int)(Khazix.Distance(minion) * 1000 / 1400)) < 0.75 * Khazix.GetSpellDamage(minion, SpellSlot.W)) .Select(minion => minion.ServerPosition.To2D()) .ToList(), E.Width, E.Range); if (farmLocation.MinionsHit >= 1) { if (Khazix.Distance(farmLocation.Position) <= E.Range) { E.Cast(farmLocation.Position); } } } if (getCheckBoxItem(farm, "UseItemsFarm")) { MinionManager.FarmLocation farmLocation = MinionManager.GetBestCircularFarmLocation( MinionManager.GetMinions(Khazix.ServerPosition, Hydra.Range) .Select(minion => minion.ServerPosition.To2D()) .ToList(), Hydra.Range, Hydra.Range); if (Hydra.IsReady() && Khazix.Distance(farmLocation.Position) <= Hydra.Range && farmLocation.MinionsHit >= 2) { Items.UseItem(3074, Khazix); } if (Tiamat.IsReady() && Khazix.Distance(farmLocation.Position) <= Tiamat.Range && farmLocation.MinionsHit >= 2) { Items.UseItem(3077, Khazix); } } }
static void Main(string[] args) { Khazix K6 = new Khazix(); }
void DoubleJump(EventArgs args) { if (!E.IsReady() || !EvolvedE || !Config.GetBool("djumpenabled") || Khazix.IsDead || Khazix.IsRecalling() || jumpManager.MidAssasination) { return; } var Targets = HeroList.Where(x => x.IsValidTarget() && !x.IsInvulnerable && !x.IsZombie); if (Q.IsReady() && E.IsReady()) { var CheckQKillable = Targets.FirstOrDefault(x => Vector3.Distance(Khazix.ServerPosition, x.ServerPosition) < Q.Range - 25 && GetQDamage(x) > x.Health); if (CheckQKillable != null) { Jumping = true; Jumppoint1 = GetDoubleJumpPoint(CheckQKillable); E.Cast(Jumppoint1.To2D()); Q.Cast(CheckQKillable); var oldpos = Khazix.ServerPosition; Utility.DelayAction.Add(Config.GetSlider("JEDelay") + Game.Ping, () => { if (E.IsReady()) { Jumppoint2 = GetDoubleJumpPoint(CheckQKillable, false); E.Cast(Jumppoint2.To2D()); } Jumping = false; }); } } }
void KillSteal() { //Avoid interrupting our assasination attempt if (jumpManager.MidAssasination) { return; } Obj_AI_Hero target = HeroList .Where(x => x.IsValidTarget() && x.Distance(Khazix.Position) < 1375f && !x.IsZombie) .MinOrDefault(x => x.Health); if (target != null) { if (Config.GetBool("UseIgnite") && Ignite.IsReady() && target.IsInRange(Ignite.Range)) { double igniteDmg = Khazix.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite); if (igniteDmg > target.Health) { Ignite.Cast(target); return; } } if (Config.GetBool("UseQKs") && Q.IsReady() && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) <= Q.Range) { double QDmg = GetQDamage(target); if (!Jumping && target.Health <= QDmg) { Q.Cast(target); return; } } if (Config.GetBool("UseEKs") && E.IsReady() && !Jumping && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) <= E.Range && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) > Q.Range) { double EDmg = Khazix.GetSpellDamage(target, SpellSlot.E); if (!Jumping && target.Health < EDmg) { Utility.DelayAction.Add( Game.Ping + Config.GetSlider("EDelay"), delegate { var jump = GetJumpPosition(target); if (jump.shouldJump) { if (target.IsValid && !target.IsDead) { E.Cast(jump.position); } } }); } } if (W.IsReady() && !EvolvedW && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) <= W.Range && Config.GetBool("UseWKs")) { double WDmg = Khazix.GetSpellDamage(target, SpellSlot.W); if (target.Health <= WDmg) { var pred = W.GetPrediction(target); if (pred.Hitchance >= HitChance.Medium) { W.Cast(pred.CastPosition); return; } } } if (W.IsReady() && EvolvedW && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) <= W.Range && Config.GetBool("UseWKs")) { double WDmg = Khazix.GetSpellDamage(target, SpellSlot.W); PredictionOutput pred = WE.GetPrediction(target); if (target.Health <= WDmg && pred.Hitchance >= HitChance.Medium) { CastWE(target, pred.UnitPosition.To2D(), 0, Config.GetHitChance("WHitchance")); return; } if (pred.Hitchance >= HitChance.Collision) { List <Obj_AI_Base> PCollision = pred.CollisionObjects; var x = PCollision .FirstOrDefault(PredCollisionChar => Vector3.Distance(PredCollisionChar.ServerPosition, target.ServerPosition) <= 30); if (x != null) { W.Cast(x.Position); return; } } } // Mixed's EQ KS if (Q.IsReady() && E.IsReady() && target.IsValidEnemy(0.90f * (E.Range + Q.Range)) && Config.GetBool("UseEQKs")) { double QDmg = GetQDamage(target); double EDmg = Khazix.GetSpellDamage(target, SpellSlot.E); if ((target.Health <= QDmg + EDmg)) { Utility.DelayAction.Add(Config.GetSlider("EDelay"), delegate { var jump = GetJumpPosition(target); if (jump.shouldJump) { E.Cast(jump.position); } }); } } // MIXED EW KS if (W.IsReady() && E.IsReady() && !EvolvedW && target.IsValidEnemy(W.Range + E.Range) && Config.GetBool("UseEWKs")) { double WDmg = Khazix.GetSpellDamage(target, SpellSlot.W); if (target.Health <= WDmg) { Utility.DelayAction.Add(Config.GetSlider("EDelay"), delegate { var jump = GetJumpPosition(target); if (jump.shouldJump) { E.Cast(jump.position); } }); } } if (Tiamat.IsReady() && Vector2.Distance(Khazix.ServerPosition.To2D(), target.ServerPosition.To2D()) <= Tiamat.Range && Config.GetBool("UseTiamatKs")) { double Tiamatdmg = Khazix.GetItemDamage(target, Damage.DamageItems.Tiamat); if (target.Health <= Tiamatdmg) { Tiamat.Cast(); return; } } if (Config.GetBool("UseSmiteKs")) { if (SmiteManager.CanCast(target)) { var dmg = SmiteManager.GetSmiteDamage(target); if (dmg >= target.Health) { SmiteManager.Cast(target); } } } if (Hydra.IsReady() && Vector2.Distance(Khazix.ServerPosition.To2D(), target.ServerPosition.To2D()) <= Hydra.Range && Config.GetBool("UseTiamatKs")) { double hydradmg = Khazix.GetItemDamage(target, Damage.DamageItems.Hydra); if (target.Health <= hydradmg) { Hydra.Cast(); } } } }
public JumpManager(Khazix K6) { this.K6 = K6; }
void Combo() { Obj_AI_Hero target = null; TargetSelector.TargetSelectionConditionDelegate conditions = targ => targ.IsIsolated() || targ.Health <= GetBurstDamage(targ); float targetSelectionRange = Khazix.AttackRange; if (SpellSlot.Q.IsReady()) { targetSelectionRange += Q.Range; } if (SpellSlot.E.IsReady()) { targetSelectionRange += E.Range; } else if (SpellSlot.W.IsReady()) { targetSelectionRange += W.Range; } //Get Optimal target if available target = TargetSelector.GetTarget(targetSelectionRange, TargetSelector.DamageType.Physical, true, null, null, conditions); //If could not find then settle for anything if (target == null) { target = TargetSelector.GetTarget(targetSelectionRange, TargetSelector.DamageType.Physical, true, null, null); } //If a target has been found if ((target != null && target.IsValidEnemy())) { var dist = Khazix.Distance(target.ServerPosition); // Normal abilities if (Config.GetBool("UseQCombo") && Q.IsReady() && !Jumping) { if (dist <= Q.Range) { Q.Cast(target); } } if (Config.GetBool("UseWCombo") && W.IsReady() && !EvolvedW && dist <= W.Range) { var pred = W.GetPrediction(target); if (pred.Hitchance >= Config.GetHitChance("WHitchance")) { W.Cast(pred.CastPosition); } } if (Config.GetBool("UseECombo") && E.IsReady() && !Jumping && dist <= E.Range && dist > Q.Range + (0.4 * Khazix.MoveSpeed)) { var jump = GetJumpPosition(target); if (jump.shouldJump) { E.Cast(jump.position); } } // Use EQ if ((Config.GetBool("UseEGapcloseQ") && Q.IsReady() && E.IsReady() && dist > Q.Range + (0.4 * Khazix.MoveSpeed) && dist <= E.Range + Q.Range)) { var jump = GetJumpPosition(target); if (jump.shouldJump) { E.Cast(jump.position); } if (Config.GetBool("UseRGapcloseL") && R.IsReady()) { R.CastOnUnit(Khazix); } } // Ult Usage if (R.IsReady() && !Q.IsReady() && !W.IsReady() && !E.IsReady() && Config.GetBool("UseRCombo") && Khazix.CountEnemiesInRange(500) > 0) { R.Cast(); } // Evolved if (W.IsReady() && EvolvedW && dist <= WE.Range && Config.GetBool("UseWCombo")) { PredictionOutput pred = WE.GetPrediction(target); if (pred.Hitchance >= Config.GetHitChance("WHitchance")) { CastWE(target, pred.UnitPosition.To2D(), 0, Config.GetHitChance("WHitchance")); } if (pred.Hitchance >= HitChance.Collision) { List <Obj_AI_Base> PCollision = pred.CollisionObjects; var x = PCollision.Where(PredCollisionChar => PredCollisionChar.Distance(target) <= 30).FirstOrDefault(); if (x != null) { W.Cast(x.Position); } } } if (Config.GetBool("Combo.Smite")) { if (SmiteManager.CanCast(target)) { SmiteManager.Cast(target); } } if (Config.GetBool("UseItems")) { UseItems(target); } } }
void Waveclear() { List <Obj_AI_Minion> allMinions = ObjectManager.Get <Obj_AI_Minion>().OrderBy(x => x.MaxHealth).Where(x => x.IsValidTarget(W.Range) && !MinionManager.IsWard(x)).ToList(); if (Config.GetBool("UseQFarm") && Q.IsReady() && !Orbwalking.CanAttack()) { bool UsedQ = false; var minion = Orbwalker.GetTarget() as Obj_AI_Minion; if (minion != null) { var hpred = HealthPrediction.GetHealthPrediction(minion, (int)(Khazix.Distance(minion) * 1000 / 1400)); var qdmg = Khazix.GetSpellDamage(minion, SpellSlot.Q); if ((hpred <= qdmg || hpred >= qdmg * 3) && Khazix.Distance(minion) <= Q.Range) { Q.Cast(minion); UsedQ = true; } } if (!UsedQ) { var killable = allMinions.Find(x => x.IsInRange(Q.Range) && HealthPrediction.GetHealthPrediction(x, (int)(Khazix.Distance(x) * 1000 / 1400)) <= Khazix.GetSpellDamage(x, SpellSlot.Q)); if (killable != null) { Q.Cast(killable); } else { foreach (var min in allMinions.Where(x => x.IsValidTarget(Q.Range))) { if (HealthPrediction.GetHealthPrediction( min, (int)(Khazix.Distance(min) * 1000 / 1400)) > 3 * Khazix.GetSpellDamage(min, SpellSlot.Q) && Khazix.Distance(min) <= Q.Range) { Q.Cast(min); break; } } } } } if (Config.GetBool("UseWFarm") && W.IsReady() && Khazix.HealthPercent <= Config.GetSlider("Farm.WHealth")) { var wmins = EvolvedW ? allMinions.Where(x => x.IsValidTarget(WE.Range)) : allMinions.Where(x => x.IsValidTarget(W.Range)); MinionManager.FarmLocation farmLocation = MinionManager.GetBestCircularFarmLocation(wmins .Select(minion => minion.ServerPosition.To2D()) .ToList(), EvolvedW ? WE.Width : W.Width, EvolvedW ? WE.Range : W.Range); var distcheck = EvolvedW ? Khazix.Distance(farmLocation.Position) <= WE.Range : Khazix.Distance(farmLocation.Position) <= W.Range; if (distcheck) { W.Cast(farmLocation.Position); } } if (Config.GetBool("UseEFarm") && E.IsReady()) { MinionManager.FarmLocation farmLocation = MinionManager.GetBestCircularFarmLocation( MinionManager.GetMinions(Khazix.ServerPosition, E.Range) .Select(minion => minion.ServerPosition.To2D()) .ToList(), E.Width, E.Range); if (Khazix.Distance(farmLocation.Position) <= E.Range) { E.Cast(farmLocation.Position); } } if (Config.GetBool("UseItemsFarm") && !Orbwalking.CanAttack()) { MinionManager.FarmLocation farmLocation = MinionManager.GetBestCircularFarmLocation( MinionManager.GetMinions(Khazix.ServerPosition, Hydra.Range) .Select(minion => minion.ServerPosition.To2D()) .ToList(), Hydra.Range, Hydra.Range); if (Hydra.IsReady() && Khazix.Distance(farmLocation.Position) <= Hydra.Range && farmLocation.MinionsHit >= 2) { Items.UseItem(3074, Khazix); } if (Tiamat.IsReady() && Khazix.Distance(farmLocation.Position) <= Tiamat.Range && farmLocation.MinionsHit >= 2) { Items.UseItem(3077, Khazix); } if (Titanic.IsReady() && Khazix.Distance(farmLocation.Position) <= Titanic.Range && farmLocation.MinionsHit >= 2) { Items.UseItem(3748, Khazix); } } }
void DoubleJump(EventArgs args) { if (!E.IsReady() || !EvolvedE || !getCheckBoxItem(djump, "djumpenabled") || Khazix.IsDead || Khazix.IsRecalling()) { return; } var Targets = HeroList.Where(x => x.IsValidTarget() && !x.IsInvulnerable && !x.IsZombie); if (Q.IsReady() && E.IsReady()) { var CheckQKillable = Targets.FirstOrDefault(x => Vector3.Distance(Khazix.ServerPosition, x.ServerPosition) < Q.Range - 25 && GetQDamage(x) > x.Health); if (CheckQKillable != null) { Jumping = true; Jumppoint1 = GetJumpPoint(CheckQKillable); E.Cast(Jumppoint1); Q.Cast(CheckQKillable); var oldpos = Khazix.ServerPosition; LeagueSharp.Common.Utility.DelayAction.Add(getSliderItem(djump, "JEDelay") + Game.Ping, () => { if (E.IsReady()) { Jumppoint2 = GetJumpPoint(CheckQKillable, false); E.Cast(Jumppoint2); } Jumping = false; }); } } }
internal KhazixMenu GenerateMenu(Khazix K6) { Config = new KhazixMenu(K6); return(Config); }
public KhazixMenu(Khazix k6) { K6 = k6; menu = new Menu("SephKhazix", "SephKhazix", true); var ow = menu.AddSubMenu("Orbwalking"); Orbwalker = new Orbwalking.Orbwalker(ow); //Harass var harass = menu.AddSubMenu("Harass"); harass.AddBool("UseQHarass", "Use Q"); harass.AddBool("UseWHarass", "Use W"); harass.AddBool("Harass.AutoWI", "Auto-W immobile"); harass.AddBool("Harass.AutoWD", "Auto W"); harass.AddKeyBind("Harass.Key", "Harass key", "H".ToCharArray()[0], KeyBindType.Toggle).Permashow(); harass.AddBool("Harass.InMixed", "Harass in Mixed Mode", false); harass.AddSList("Harass.WHitchance", "W Hit Chance", new[] { HitChance.Low.ToString(), HitChance.Medium.ToString(), HitChance.High.ToString() }, 1); //Combo var combo = menu.AddSubMenu("Combo"); combo.AddBool("UseQCombo", "Use Q"); combo.AddBool("UseWCombo", "Use W"); combo.AddSList("WHitchance", "W Hit Chance", new[] { HitChance.Low.ToString(), HitChance.Medium.ToString(), HitChance.High.ToString() }, 1); combo.AddBool("UseECombo", "Use E"); combo.AddSList("JumpMode", "Jump Mode", new[] { "CurrentPosition", "Prediction" }, 0); combo.AddBool("UseEGapcloseQ", "Use E To Gapclose for Q", false); combo.AddBool("UseEGapcloseW", "Use E To Gapclose For W", false); combo.AddBool("UseRGapcloseL", "Use R after long gapcloses"); combo.AddBool("UseRCombo", "Use R"); combo.AddBool("Combo.Smite", "Use Smite"); combo.AddBool("UseItems", "Use Items"); var assasination = menu.AddSubMenu("Assasination"); assasination.AddSList("AssMode", "Return Point", new[] { "Old Position", "Mouse Pos" }, 0); //Farm var farm = menu.AddSubMenu("Farm"); farm.AddBool("UseQFarm", "Use Q"); farm.AddBool("UseEFarm", "Use E", false); farm.AddBool("UseWFarm", "Use W"); farm.AddSlider("Farm.WHealth", "Health % to use W", 80, 0, 100); farm.AddBool("UseItemsFarm", "Use Items").SetValue(true); harass.AddBool("Farm.InMixed", "Farm in Mixed Mode", true); //Kill Steal var ks = menu.AddSubMenu("KillSteal"); ks.AddBool("Kson", "Use KillSteal"); ks.AddBool("UseQKs", "Use Q"); ks.AddBool("UseWKs", "Use W"); ks.AddBool("UseEKs", "Use E"); ks.AddBool("Ksbypass", "Bypass safety checks for E KS", false); ks.AddBool("UseEQKs", "Use EQ in KS"); ks.AddBool("UseEWKs", "Use EW in KS", false); ks.AddBool("UseTiamatKs", "Use items"); ks.AddBool("UseSmiteKs", "Use Smite"); ks.AddSlider("EDelay", "E Delay (ms)", 0, 0, 300); ks.AddBool("UseIgnite", "Use Ignite"); var safety = menu.AddSubMenu("Safety Menu"); safety.AddBool("Safety.Enabled", "Enable Safety Checks"); safety.AddKeyBind("Safety.Override", "Safety Override Key", 'T', KeyBindType.Press).Permashow(); safety.AddBool("Safety.autoescape", "Use E to get out when low"); safety.AddBool("Safety.CountCheck", "Min Ally ratio to Enemies to jump"); safety.AddItem(new MenuItem("Safety.Ratio", "Ally:Enemy Ratio (/5)").SetValue(new Slider(2, 0, 5))); safety.AddBool("Safety.TowerJump", "Avoid Tower Diving"); safety.AddSlider("Safety.MinHealth", "Healthy %", 35, 0, 100); safety.AddBool("Safety.noaainult", "No Autos while Stealth", false); //Double Jump var djump = menu.AddSubMenu("Double Jumping"); djump.AddBool("djumpenabled", "Enabled"); djump.AddSlider("JEDelay", "Delay between jumps", 250, 250, 500); djump.AddSList("jumpmode", "Jump Mode", new[] { "Default (jumps towards your nexus)", "Custom - Settings below" }, 0); djump.AddBool("save", "Save Double Jump Abilities", false); djump.AddBool("noauto", "Wait for Q instead of autos", false); djump.AddBool("jcursor", "Jump to Cursor (true) or false for script logic"); djump.AddBool("secondjump", "Do second Jump"); djump.AddBool("jcursor2", "Second Jump to Cursor (true) or false for script logic"); djump.AddBool("jumpdrawings", "Enable Jump Drawinsg"); //Drawings var draw = menu.AddSubMenu("Drawings"); draw.AddBool("Drawings.Disable", "Disable all", true); draw.AddCircle("DrawQ", "Draw Q", 0, System.Drawing.Color.White); draw.AddCircle("DrawW", "Draw W", 0, System.Drawing.Color.Red); draw.AddCircle("DrawE", "Draw E", 0, System.Drawing.Color.Green); var dmgAfterE = new MenuItem("DrawComboDamage", "Draw combo damage").SetValue(true); var drawFill = new MenuItem("DrawColour", "Fill colour", true).SetValue( new Circle(true, Color.Goldenrod)); draw.AddItem(drawFill); draw.AddItem(dmgAfterE); DamageIndicator.DamageToUnit = K6.GetBurstDamage; DamageIndicator.Enabled = dmgAfterE.GetValue <bool>() && !GetBool("Drawings.Disable"); DamageIndicator.Fill = drawFill.GetValue <Circle>().Active; DamageIndicator.FillColor = drawFill.GetValue <Circle>().Color; dmgAfterE.ValueChanged += delegate(object sender, OnValueChangeEventArgs eventArgs) { DamageIndicator.Enabled = eventArgs.GetNewValue <bool>(); }; drawFill.ValueChanged += delegate(object sender, OnValueChangeEventArgs eventArgs) { DamageIndicator.Fill = eventArgs.GetNewValue <Circle>().Active; DamageIndicator.FillColor = eventArgs.GetNewValue <Circle>().Color; }; //Debug var debug = menu.AddSubMenu("Debug"); debug.AddBool("Debugon", "Enable Debugging"); menu.AddToMainMenu(); }
public static void Main() { Khazix K6 = new Khazix(); }
void KillSteal() { Obj_AI_Hero target = HeroList .Where(x => x.IsValidTarget() && x.Distance(Khazix.Position) < 1375f && !x.IsZombie) .MinOrDefault(x => x.Health); if (target != null && target.IsInRange(Ignite.Range)) { if (Config.GetBool("UseIgnite") && IgniteSlot != SpellSlot.Unknown && Khazix.Spellbook.CanUseSpell(IgniteSlot) == SpellState.Ready) { double igniteDmg = Khazix.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite); if (igniteDmg > target.Health) { Khazix.Spellbook.CastSpell(IgniteSlot, target); return; } } if (Config.GetBool("Safety.autoescape") && !IsHealthy) { var ally = HeroList.FirstOrDefault(h => h.HealthPercent > 40 && h.CountEnemiesInRange(400) == 0 && !h.ServerPosition.PointUnderEnemyTurret()); if (ally != null && ally.IsValid) { E.Cast(ally.ServerPosition); return; } var underTurret = EnemyTurrets.Any(x => x.Distance(Khazix.ServerPosition) <= 900f && !x.IsDead && x.IsValid); if (underTurret || Khazix.CountEnemiesInRange(500) >= 1) { var bestposition = Khazix.ServerPosition.Extend(NexusPosition, E.Range); E.Cast(bestposition); return; } } if (Config.GetBool("UseQKs") && Q.IsReady() && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) <= Q.Range) { double QDmg = GetQDamage(target); if (!Jumping && target.Health <= QDmg) { Q.Cast(target); return; } } if (Config.GetBool("UseEKs") && E.IsReady() && !Jumping && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) <= E.Range && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) > Q.Range) { double EDmg = Khazix.GetSpellDamage(target, SpellSlot.E); if (!Jumping && target.Health < EDmg) { Utility.DelayAction.Add( Game.Ping + Config.GetSlider("EDelay"), delegate { PredictionOutput pred = E.GetPrediction(target); if (target.IsValid && !target.IsDead) { if (Config.GetBool("Ksbypass") || ShouldJump(pred.CastPosition)) { E.Cast(pred.CastPosition); } } }); } } if (W.IsReady() && !EvolvedW && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) <= W.Range && Config.GetBool("UseWKs")) { double WDmg = Khazix.GetSpellDamage(target, SpellSlot.W); if (target.Health <= WDmg) { var pred = W.GetPrediction(target); if (pred.Hitchance >= HitChance.Medium) { W.Cast(pred.CastPosition); return; } } } if (W.IsReady() && EvolvedW && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) <= W.Range && Config.GetBool("UseWKs")) { double WDmg = Khazix.GetSpellDamage(target, SpellSlot.W); PredictionOutput pred = WE.GetPrediction(target); if (target.Health <= WDmg && pred.Hitchance >= HitChance.Medium) { CastWE(target, pred.UnitPosition.To2D(), 0, Config.GetHitChance("WHitchance")); return; } if (pred.Hitchance >= HitChance.Collision) { List <Obj_AI_Base> PCollision = pred.CollisionObjects; var x = PCollision .FirstOrDefault(PredCollisionChar => Vector3.Distance(PredCollisionChar.ServerPosition, target.ServerPosition) <= 30); if (x != null) { W.Cast(x.Position); return; } } } // Mixed's EQ KS if (Q.IsReady() && E.IsReady() && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) <= E.Range + Q.Range && Config.GetBool("UseEQKs")) { double QDmg = GetQDamage(target); double EDmg = Khazix.GetSpellDamage(target, SpellSlot.E); if ((target.Health <= QDmg + EDmg)) { Utility.DelayAction.Add(Config.GetSlider("EDelay"), delegate { PredictionOutput pred = E.GetPrediction(target); if (target.IsValidTarget() && !target.IsZombie && ShouldJump(pred.CastPosition)) { if (Config.GetBool("Ksbypass") || ShouldJump(pred.CastPosition)) { E.Cast(pred.CastPosition); } } }); } } // MIXED EW KS if (W.IsReady() && E.IsReady() && !EvolvedW && Vector3.Distance(Khazix.ServerPosition, target.ServerPosition) <= W.Range + E.Range && Config.GetBool("UseEWKs")) { double WDmg = Khazix.GetSpellDamage(target, SpellSlot.W); if (target.Health <= WDmg) { Utility.DelayAction.Add(Config.GetSlider("EDelay"), delegate { PredictionOutput pred = E.GetPrediction(target); if (target.IsValid && !target.IsDead && ShouldJump(pred.CastPosition)) { if (Config.GetBool("Ksbypass") || ShouldJump(pred.CastPosition)) { E.Cast(pred.CastPosition); } } }); } } if (Tiamat.IsReady() && Vector2.Distance(Khazix.ServerPosition.To2D(), target.ServerPosition.To2D()) <= Tiamat.Range && Config.GetBool("UseTiamatKs")) { double Tiamatdmg = Khazix.GetItemDamage(target, Damage.DamageItems.Tiamat); if (target.Health <= Tiamatdmg) { Tiamat.Cast(); return; } } if (Hydra.IsReady() && Vector2.Distance(Khazix.ServerPosition.To2D(), target.ServerPosition.To2D()) <= Hydra.Range && Config.GetBool("UseTiamatKs")) { double hydradmg = Khazix.GetItemDamage(target, Damage.DamageItems.Hydra); if (target.Health <= hydradmg) { Hydra.Cast(); } } } }