private void DrawRanges(EventArgs args) { if (!KoreanUtils.GetParamBool(champion.MainMenu, "drawskillranges")) { return; } if (KoreanUtils.GetParamKeyBind(champion.MainMenu, "flashult") && (spells.R.IsReady()) && (FlashSpell.Flash(champion.Player).IsReady)) { Render.Circle.DrawCircle(champion.Player.Position, champion.Spells.RFlash.Range, Color.DarkGreen, 5); } else if (spells.Q.IsReady() && spells.Q.CanCast()) { Render.Circle.DrawCircle(champion.Player.Position, spells.Q.Range, Color.DarkGreen, 5); } else if (spells.W.IsReady() && spells.W.CanCast()) { Render.Circle.DrawCircle(champion.Player.Position, spells.W.Range, Color.DarkGreen, 5); } else if (spells.R.IsReady() && spells.R.CanCast()) { Render.Circle.DrawCircle(champion.Player.Position, spells.R.Range, Color.DarkGreen, 5); } }
public override void LastHitMode() { if (!KoreanUtils.GetParamBool(champion.MainMenu, "useqtofarm")) { return; } Obj_AI_Base target = MinionManager.GetMinions(champion.Player.Position, Q.Range) .Where( minion => !champion.Player.CanAttack || (champion.Player.CanAttack && champion.Player.Distance(minion) > Orbwalking.GetRealAutoAttackRange(champion.Player))) .FirstOrDefault( minion => Q.GetDamage(minion) > HealthPrediction.GetHealthPrediction(minion, (int)(champion.Player.Distance(minion) / Q.Speed) * 1000, (int)Q.Delay * 1000)); if (target != null) { UseQ(target); } }
public AnnieButtons(Annie annie) { this.annie = annie; ShowEasyButton = (KoreanUtils.GetParamBool(annie.MainMenu, "showeeasybutton")); int posX = KoreanUtils.GetParamInt(annie.MainMenu, "easybuttonpositionx"); posX = (posX == 0) ? 50 : posX; int posY = KoreanUtils.GetParamInt(annie.MainMenu, "easybuttonpositiony"); posY = (posY == 0) ? 50 : posY; Vector2 pos = new Vector2(posX, posY); StunButtonOn = new Render.Sprite(Resources.StunON, pos); StunButtonOn.Scale = new Vector2(0.90f, 0.90f); StunButtonOn.Add(); StunButtonOff = new Render.Sprite(Resources.StunOFF, pos); StunButtonOff.Scale = new Vector2(0.90f, 0.90f); StunButtonOff.Add(); if (ShowEasyButton) { StunButtonOn.Visible = KoreanUtils.GetParamBool(annie.MainMenu, "savestunforcombo"); StunButtonOff.Visible = !StunButtonOn.Visible; } KoreanUtils.GetParam(annie.MainMenu, "savestunforcombo").ValueChanged += SaveStunForComboValueChanged; Game.OnWndProc += ButtonControl; }
private void ButtonControl(WndEventArgs args) { ShowEasyButton = (KoreanUtils.GetParamBool(annie.MainMenu, "showeeasybutton")); if (ShowEasyButton) { if ((args.Msg == (uint)WindowsMessages.WM_LBUTTONUP) && (MouseOnButton(StunButtonOn) || MouseOnButton(StunButtonOff))) { if (StunButtonOn.Visible) { KoreanUtils.SetValueBool(annie.MainMenu, "savestunforcombo", false); } else if (StunButtonOff.Visible) { KoreanUtils.SetValueBool(annie.MainMenu, "savestunforcombo", true); } } else if ((args.Msg == (uint)WindowsMessages.WM_MOUSEMOVE) && (args.WParam == 5) && (MouseOnButton(StunButtonOn) || MouseOnButton(StunButtonOff))) { MoveButtons( new Vector2(Utils.GetCursorPos().X - (StunButtonOn.Width / 2), Utils.GetCursorPos().Y - 10)); } StunButtonOn.Visible = KoreanUtils.GetParamBool(annie.MainMenu, "savestunforcombo"); StunButtonOff.Visible = !StunButtonOn.Visible; } else { StunButtonOff.Visible = false; StunButtonOn.Visible = false; } }
public override void LastHitMode() { if (KoreanUtils.GetParamBool(champion.MainMenu, "useqtofarm") && Q.IsReady()) { Obj_AI_Base target = MinionManager.GetMinions(Q.Range).OrderByDescending(minion => minion.MaxHealth) .FirstOrDefault(minion => Q.GetDamage(minion) > HealthPrediction.GetHealthPrediction(minion, (int)(champion.Player.Distance(minion) / Q.Speed) * 1000, (int)Q.Delay * 1000)); if (target != null) { Q.Cast(target); } } if (E.IsReady() && !Q.IsReady()) { int farmCount = MinionManager.GetMinions(E.Range).Count(minion => E.IsKillable(minion)); if (farmCount >= 2) { E.Cast(); } } }
private void AntiGapcloser_OnEnemyGapcloser(ActiveGapcloser gapcloser) { if (KoreanUtils.GetParamBool(vlady.MainMenu, "antigapcloser") && W.IsReady()) { W.Cast(); } }
private void UseOffensiveItems(Obj_AI_Base target) { if (target == null) { return; } if (KoreanUtils.GetParamBool(champion.MainMenu, "usebilgewatercutlass") && ItemData.Bilgewater_Cutlass.GetItem().IsReady()) { ItemData.Bilgewater_Cutlass.GetItem().Cast(target); } if (KoreanUtils.GetParamBool(champion.MainMenu, "usehextechgunblade") && ItemData.Hextech_Gunblade.GetItem().IsReady()) { ItemData.Hextech_Gunblade.GetItem().Cast(target); } if (KoreanUtils.GetParamBool(champion.MainMenu, "usebotrk") && ItemData.Blade_of_the_Ruined_King.GetItem().IsReady()) { ItemData.Blade_of_the_Ruined_King.GetItem().Cast(target); } }
private static bool ExtendedQIsReady(CommonChampion lucian, bool laneclear = false) { Spell q = lucian.Spells.Q; if (!KoreanUtils.GetParamBool(lucian.MainMenu, "extendedq") || !q.IsReady()) { return(false); } List <Obj_AI_Base> minions = MinionManager.GetMinions(AdvancedQ.Range); if (minions.Count == 0) { return(false); } if (!laneclear) { if (lucian.Player.CountEnemiesInRange(AdvancedQ.Range) == 0) { return(false); } } return(true); }
private bool CheckHaras(AIHeroClient target) { if (target == null) { return(false); } return(KoreanUtils.GetParamBool(lucian.MainMenu, target.ChampionName.ToLowerInvariant())); }
private void Drawing_OnDraw(EventArgs args) { if (KoreanUtils.GetParamBool(lucian.MainMenu, "drawingetext")) { Text.X = (int)lucian.Player.HPBarPosition.X + 5; Text.Y = (int)lucian.Player.HPBarPosition.Y + 180; Text.OnEndScene(); } }
private static bool CheckHaras(CommonChampion lucian, Obj_AI_Hero target) { if (target == null) { return(false); } return(KoreanUtils.GetParamBool(lucian.MainMenu, target.ChampionName.ToLowerInvariant())); }
public StackPassive(CommonChampion champion) { R = champion.Spells.R; this.champion = champion; if (KoreanUtils.GetParamBool(champion.MainMenu, "autostackpassive")) { Orbwalking.BeforeAttack += StackR; } }
public SemiAutomaticE(Lucian lucian) { this.lucian = lucian; E = lucian.Spells.E; if (KoreanUtils.GetParamBool(lucian.MainMenu, "dashmode")) { Game.OnWndProc += Game_OnWndProc; } }
public override void Ultimate(AIHeroClient target) { if (target == null) { R.Cast(Game.CursorPos); } else if (KoreanUtils.GetParamBool(champion.MainMenu, "lockr")) { R.Cast(target.Position); } }
public override void LaneClearMode() { if (CheckPassive()) { return; } lock (lockObject) { if (Q.UseOnLaneClear && Q.IsReady() && Q.CanCast() && !CheckPassive() && HaveManaToLaneclear() && champion.CastExtendedQToLaneClear()) { ProcessSpell(); } if (W.UseOnLaneClear && W.IsReady() && W.CanCast() && !CheckPassive() && HaveManaToHaras()) { List <Obj_AI_Base> minions = MinionManager.GetMinions(W.Range).ToList(); MinionManager.FarmLocation farmLocation = W.GetCircularFarmLocation(minions); int minMinions = KoreanUtils.GetParamSlider(champion.MainMenu, "wcounthit"); if (farmLocation.MinionsHit >= minMinions && minions.Count >= minMinions) { if (W.Cast(farmLocation.Position)) { ProcessSpell(); } } } if (E.UseOnLaneClear && lucian.semiAutomaticE.Holding && E.IsReady() && E.CanCast() && !CheckPassive() && (E.Instance.SData.Mana.Equals(0) || (E.Instance.SData.Mana > 0 && HaveManaToHaras()))) { Obj_AI_Base target = MinionManager.GetMinions(E.Range + Orbwalking.GetRealAutoAttackRange(champion.Player)) .FirstOrDefault( minion => champion.Player.Distance(minion) > Orbwalking.GetRealAutoAttackRange(champion.Player) && Game.CursorPos.Distance(minion.Position) < champion.Player.Distance(minion)); if (target != null && lucian.semiAutomaticE.Cast(target)) { ProcessSpell(); champion.Orbwalker.ForceTarget(target); } } } if (KoreanUtils.GetParamBool(champion.MainMenu, "harasonlaneclear")) { HarasMode(); } }
private void DrawRanges(EventArgs args) { if (!KoreanUtils.GetParamBool(champion.MainMenu, "drawskillranges")) { return; } Render.Circle.DrawCircle( champion.Player.Position, spells.MaxRangeCombo, Color.FromArgb(150, Color.DarkGreen), 10); }
public override void LaneClearMode() { if (E.IsReady() && E.UseOnLaneClear) { if (MinionManager.GetMinions(E.Range).Count >= KoreanUtils.GetParamSlider(champion.MainMenu, "minminionstoe")) { E.Cast(); } if (E.IsReady()) { if (MinionManager.GetMinions(E.Range, MinionTypes.All, MinionTeam.Neutral).Count > 0) { E.Cast(); } } } if (KoreanUtils.GetParamBool(champion.MainMenu, "saveqtofarm") && KoreanUtils.GetParamBool(champion.MainMenu, "useqtofarm")) { LastHitMode(); } else if (Q.IsReady() && Q.UseOnLaneClear) { Obj_AI_Base minion = MinionManager.GetMinions(Q.Range).OrderByDescending(x => x.MaxHealth).FirstOrDefault(); if (minion != null) { Q.Cast(minion); } } if (Q.IsReady() && Q.UseOnLaneClear) { Obj_AI_Base jungleMob = MinionManager.GetMinions(E.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth) .FirstOrDefault(); if (jungleMob != null) { Q.Cast(jungleMob); } } if (KoreanUtils.GetParamBool(champion.MainMenu, "harasonlaneclear")) { HarasMode(); } }
public KillSteal(CommonChampion champion) { orbwalker = champion.Orbwalker; player = champion.Player; e = champion.Spells.E; w = champion.Spells.W; aaRange = Orbwalking.GetRealAutoAttackRange(champion.Player); aaDamage = target => (float)champion.Player.GetAutoAttackDamage(target); if (KoreanUtils.GetParamBool(champion.MainMenu, "killsteal")) { Game.OnUpdate += KS; } }
private void LoadLambdaExpressions() { ParamName = s => KoreanUtils.ParamName(MainMenu, s); GetParamBool = s => KoreanUtils.GetParamBool(MainMenu, s); SetValueBool = (s, b) => KoreanUtils.SetValueBool(MainMenu, s, b); GetParamSlider = s => KoreanUtils.GetParamSlider(MainMenu, s); GetParamKeyBind = s => KoreanUtils.GetParamKeyBind(MainMenu, s); CanFarm = () => (!GetParamBool("supportmode")) || ((GetParamBool("supportmode")) && (Player.CountAlliesInRange(1500f) == 1)); CheckStun = () => Player.HasBuff("pyromania_particle"); SaveStun = () => (CheckStun() && (GetParamBool("savestunforcombo"))); }
private void LockR(Spellbook sender, SpellbookCastSpellEventArgs args) { if (args.Slot != SpellSlot.R) { return; } lock (lockObject) { Spellbook.OnCastSpell -= LockR; if (KoreanUtils.GetParamBool(champion.MainMenu, "useyoumuu") && ItemData.Youmuus_Ghostblade.GetItem().IsReady()) { ItemData.Youmuus_Ghostblade.GetItem().Cast(); } if (KoreanUtils.GetParamBool(champion.MainMenu, "lockr")) { AIHeroClient target = null; if (TargetSelector.SelectedTarget != null && TargetSelector.SelectedTarget.Distance(champion.Player.Position) < R.Range + 400F) { target = TargetSelector.SelectedTarget; } else { target = TargetSelector.GetTarget( champion.Player, R.Range + 400f, TargetSelector.DamageType.Physical); } if (target != null) { args.Process = false; if (R.Cast(target.Position)) { ProcessSpell(); } } } Spellbook.OnCastSpell += LockR; } }
private void DrawRanges(EventArgs args) { if (!KoreanUtils.GetParamBool(champion.MainMenu, "drawskillranges")) { return; } if (spells.R.IsReady() && spells.R.CanCast()) { Render.Circle.DrawCircle(champion.Player.Position, spells.R.Range, Color.DarkGreen, 5); } else if (spells.Q.IsReady() && spells.Q.CanCast()) { Render.Circle.DrawCircle(champion.Player.Position, spells.Q.Range, Color.DarkGreen, 5); } else if (spells.E.IsReady() && spells.E.CanCast()) { Render.Circle.DrawCircle(champion.Player.Position, spells.E.Range, Color.DarkGreen, 5); } }
public override void LaneClearMode() { if (!HaveManaToLaneclear()) { return; } if (spells.Q.UseOnLaneClear && spells.Q.IsReady() && spells.Q.CanCast()) { List <AIBaseClient> minions = MinionManager.GetMinions(champion.Player.Position, spells.Q.Range); MinionManager.FarmLocation farmLocation = spells.Q.GetCircularFarmLocation(minions); if (farmLocation.MinionsHit >= KoreanUtils.GetParamSlider(champion.MainMenu, "minminionstoq")) { spells.Q.Cast(farmLocation.Position); } } if (!HaveManaToLaneclear()) { return; } if (spells.W.UseOnLaneClear && spells.W.IsReady() && spells.W.CanCast()) { List <AIBaseClient> minions = MinionManager.GetMinions(champion.Player.Position, spells.W.Range); MinionManager.FarmLocation wFarmLocation = spells.W.GetCircularFarmLocation(minions); if (wFarmLocation.MinionsHit >= KoreanUtils.GetParamSlider(champion.MainMenu, "minminionstow")) { spells.W.Cast(wFarmLocation.Position); } } if (KoreanUtils.GetParamBool(champion.MainMenu, "harasonlaneclear")) { HarasMode(); } }
private bool IsOffensiveItemsReady() { if (KoreanUtils.GetParamBool(champion.MainMenu, "usebilgewatercutlass") && ItemData.Bilgewater_Cutlass.GetItem().IsReady()) { return(true); } if (KoreanUtils.GetParamBool(champion.MainMenu, "usehextechgunblade") && ItemData.Hextech_Gunblade.GetItem().IsReady()) { return(true); } if (KoreanUtils.GetParamBool(champion.MainMenu, "usebotrk") && ItemData.Blade_of_the_Ruined_King.GetItem().IsReady()) { return(true); } return(false); }
public override void LaneClearMode() { if (Q.UseOnLaneClear && Q.IsReady() && champion.Player.ManaPercent > KoreanUtils.GetParamSlider(champion.MainMenu, "minenergytolaneclear")) { if (KoreanUtils.GetParamBool(champion.MainMenu, "saveqtofarm")) { LastHitMode(); } else { Q.Cast(MinionManager.GetMinions(Q.Range).FirstOrDefault()); } } if (E.UseOnLaneClear && E.IsReady() && champion.Player.ManaPercent > KoreanUtils.GetParamSlider(champion.MainMenu, "minenergytolaneclear") && MinionManager.GetMinions(E.Range).Count >= KoreanUtils.GetParamSlider(champion.MainMenu, "minminionstoe")) { E.Cast(); } }
private void Game_OnUpdate(EventArgs args) { if (choGath.Spells.R.IsReady() && flash.IsReady && KoreanUtils.GetParamKeyBind(choGath.MainMenu, "flashult")) { AIHeroClient target = HeroManager.Enemies.FirstOrDefault( champ => choGath.Spells.RFlash.Range - 20f >= choGath.Player.Distance(champ) && choGath.Spells.R.GetDamage(champ) > champ.Health + 20f); if (target != null) { choGath.Player.Spellbook.CastSpell(flash.Slot, target.Position); Utility.DelayAction.Add(50, () => choGath.Spells.R.Cast(target.Position)); } if (KoreanUtils.GetParamBool(choGath.MainMenu, "orbwalktoflashult")) { choGath.Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPosRaw); } choGath.ChoGathOrbwalker.ComboMode(); } }
private void Game_OnUpdate(EventArgs args) { if (!KoreanUtils.GetParamBool(Vladimir.MainMenu, "autostackeactive")) { return; } if (Vladimir.Player.IsRecalling() || Vladimir.Player.InFountain()) { return; } if (Vladimir.Player.HealthPercent < KoreanUtils.GetParamSlider(Vladimir.MainMenu, "autostackelimit") || Math.Round(Vladimir.Player.HPRegenRate * 5, 0) < KoreanUtils.GetParamSlider(Vladimir.MainMenu, "autostackehealthregen")) { return; } if (NextCicleOn <= Game.Time) { Utility.DelayAction.Add(100, () => E.Cast()); } }
private void SmartUse(Orbwalking.BeforeAttackEventArgs args) { if (E.Instance.ToggleState == 2) { if ((args.Target is AITurretClient && champion.Player.CountEnemiesInRange(1000f) > 0) || (champion.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LastHit || champion.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed) || (champion.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear && !KoreanUtils.GetParamBool(champion.MainMenu, "useetolaneclear"))) { E.Cast(); } } else if (E.Instance.ToggleState < 2) { if ((args.Target is AITurretClient && champion.Player.CountEnemiesInRange(1000f) == 0) || (champion.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear && KoreanUtils.GetParamBool(champion.MainMenu, "useetolaneclear")) || (champion.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)) { E.Cast(); } } }
public override void ComboMode() { Obj_AI_Hero target; if (W.UseOnCombo && !CheckPassive() && W.IsReady() && W.CanCast()) { target = TargetSelector.GetTarget(champion.Player, W.Range, TargetSelector.DamageType.Physical); PredictionOutput wPrediction = W.GetPrediction(target); if (wPrediction != null && wPrediction.Hitchance >= HitChance.VeryHigh && wPrediction.CastPosition != Vector3.Zero) { if (W.Cast(wPrediction.CastPosition)) { ProcessSpell(); } } else if (target != null && target.Distance(champion.Player) <= Orbwalking.GetRealAutoAttackRange(champion.Player)) { if (W.Cast(target.Position)) { ProcessSpell(); } } } if (Q.UseOnCombo && Q.IsReady() && Q.CanCast()) { if (!CheckPassive()) { target = TargetSelector.GetTarget(champion.Player, Q.Range, TargetSelector.DamageType.Physical); if (target != null && Q.IsReadyToCastOn(target) && Q.CanCast(target)) { if (Q.CastOnUnit(target)) { ProcessSpell(); } } } if (champion.CastExtendedQ()) { ProcessSpell(); } } if (E.UseOnCombo && !CheckPassive() && E.IsReady() && E.CanCast() && (!KoreanUtils.GetParamBool(champion.MainMenu, "dashmode") || (KoreanUtils.GetParamBool(champion.MainMenu, "dashmode") && lucian.semiAutomaticE.Holding))) { target = TargetSelector.GetTarget( E.Range + Orbwalking.GetRealAutoAttackRange(champion.Player) - 25f, TargetSelector.DamageType.Physical); if (target != null && target.IsEnemy && target.IsValid && !target.IsDead && lucian.semiAutomaticE.Cast(target)) { ProcessSpell(); } } }
public override void ComboMode() { //IDK why but i need this code since the patch 5.17 if (champion.Player.IsChannelingImportantSpell()) { Orbwalking.MoveTo(Game.CursorPos); return; } AIHeroClient target; if (W.UseOnCombo && !CheckPassive() && W.IsReady() && W.CanCast()) { target = TargetSelector.GetTarget(champion.Player, W.Range, TargetSelector.DamageType.Physical); if (target != null) { PredictionOutput wPrediction = W.GetPrediction(target); if (wPrediction != null && wPrediction.Hitchance >= HitChance.High && wPrediction.CastPosition != Vector3.Zero) { if (W.Cast(wPrediction.CastPosition)) { ProcessSpell(); } } else if (target != null && target.Distance(champion.Player) <= Orbwalking.GetRealAutoAttackRange(champion.Player)) { if (W.Cast(target.ServerPosition)) { ProcessSpell(); } } } } if (Q.UseOnCombo && Q.IsReady() && Q.CanCast()) { if (!CheckPassive()) { target = TargetSelector.GetTarget(champion.Player, Q.Range, TargetSelector.DamageType.Physical); if (target != null) { if (target != null && Q.IsReadyToCastOn(target) && Q.CanCast(target)) { if (Q.CastOnUnit(target)) { ProcessSpell(); } } } } if (champion.CastExtendedQ()) { ProcessSpell(); } } if (E.UseOnCombo && !CheckPassive() && E.IsReady() && E.CanCast() && (!KoreanUtils.GetParamBool(champion.MainMenu, "dashmode") || (KoreanUtils.GetParamBool(champion.MainMenu, "dashmode") && lucian.semiAutomaticE.Holding))) { target = TargetSelector.GetTarget( E.Range + Orbwalking.GetRealAutoAttackRange(champion.Player) - 25f, TargetSelector.DamageType.Physical); if (target != null && target.IsEnemy && target.IsValid && !target.IsDead && lucian.semiAutomaticE.Cast(target)) { ProcessSpell(); } } }