void Swap(Obj_AI_Base target) { if (target != null && !target.IsDead && target.IsValidTarget() && Q.IsReady()) { PredictionOutput value = Q.GetPrediction(target, true); if (isFishBones) { if (Menu.GetBool("Misc.SwapThree") && FishStacks == 3 && value.CastPosition.Distance(ObjectManager.Player.Position) < QRange) { Q.Cast(); return; } if (Menu.GetBool("Misc.SwapDistance") && ObjectManager.Player.Position.Distance(target.Position) > 600 + target.BoundingRadius / 2 && ObjectManager.Player.Position.Distance(value.CastPosition) > 600 + target.BoundingRadius / 2 && ObjectManager.Player.Position.Distance(value.CastPosition) < QRange + target.BoundingRadius / 2) { Q.Cast(); return; } if (Menu.GetBool("Misc.SwapAOE") && FishStacks > 2 && target.CountEnemiesInRange(150) > 1) { Q.Cast(); return; } } else { if (Menu.GetBool("Misc.SwapAOE") && target.CountEnemiesInRange(150) > 1) { return; } if (Menu.GetBool("Misc.SwapThree") && FishStacks < 3 && ObjectManager.Player.Position.Distance(value.CastPosition) < 575 + target.BoundingRadius / 2 && ObjectManager.Player.Position.Distance(value.CastPosition) < 600 + target.BoundingRadius / 2) { Q.Cast(); return; } if (Menu.GetBool("Misc.SwapDistance") && ObjectManager.Player.Position.Distance(value.CastPosition) < 575 + target.BoundingRadius / 2 && ObjectManager.Player.Position.Distance(value.CastPosition) < 600 + target.BoundingRadius / 2) { Q.Cast(); return; } if (ObjectManager.Player.IsManaLow(Menu.GetSlice("Combo.mper")) && ObjectManager.Player.Position.Distance(value.CastPosition) < 600 + target.BoundingRadius) { Q.Cast(); return; } if (Program.MainOrbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed && ObjectManager.Player.Position.Distance(value.CastPosition) > 600 + target.BoundingRadius + 50) { Q.Cast(); return; } } } }
internal bool UseQ(AIHeroClient target, HitChance minhc = HitChance.Medium, bool UseQ1 = true, bool UseQ2 = true) { if (target == null) { return(false); } var tready = TornadoReady; if ((tready && !UseQ2) || !tready && !UseQ1) { return(false); } if (tready && Yasuo.IsDashing()) { if (YasuoMenu.getCheckBoxItem(YasuoMenu.ComboA, "Combo.NoQ2Dash") || ETarget == null || !(ETarget is AIHeroClient) && ETarget.CountEnemiesInRange(120) < 1) { return(false); } } var sp = tready ? Spells[Q2] : Spells[Q]; var pred = sp.GetPrediction(target); if (pred.Hitchance >= minhc) { return(sp.Cast(pred.CastPosition)); } return(false); }
public override void useW(Obj_AI_Base t) { if (!W.IsReady()) { return; } var qDmg = GetQdmg(t); if (t.HasBuffOfType(BuffType.Slow) || t.CountEnemiesInRange(250) > 1) { W.Cast(t); } if (ObjectManager.Player.Mana > RMANA + WMANA + EMANA + QMANA) { W.Cast(t); } else if (!ObjectManager.Player.UnderTurret(true) && ObjectManager.Player.Mana > ObjectManager.Player.MaxMana * 0.8 && ObjectManager.Player.Mana > RMANA + WMANA + EMANA + QMANA + WMANA) { W.Cast(t); } else if (ObjectManager.Player.Mana > RMANA + WMANA + EMANA) { foreach (var enemy in DeathWalker.AllEnemys.Where(enemy => enemy.IsValidTarget(W.Range))) { W.Cast(enemy, true); } } }
public static void castSafeE(Obj_AI_Base target) { if (target.IsValidTarget(E.Range) && E.IsReady() && target.CountEnemiesInRange(800) <= 2) { E.Cast(target); } }
public static void autoRunderTower() { if (!R.IsReady()) { return; } Obj_AI_Base tower = ObjectManager.Get <Obj_AI_Turret>().Where(tur => tur.IsAlly && tur.Health > 0).OrderBy(tur => Player.Distance(tur)).First(); if (tower != null) { var distTower = tower.Distance(Player); if (distTower < 1200 && distTower > 200 && tower.CountEnemiesInRange(tower.AttackRange) == 0) { var pol = DeathMath.getPolygonOn(Player.Position.Extend(tower.Position, -155).To2D(), tower.Position.To2D(), R.Width, 240); if ( EloBuddy.SDK.EntityManager.Heroes.Enemies.Any( ene => ene.IsValid && !ene.IsDead && pol.pointInside(ene.Position.To2D()))) { R.Cast(tower.Position); } } //if(pol.pointInside(target.Position.To2D())) } }
private void steal(Obj_AI_Base monster) { if (monster == null || monster.CountEnemiesInRange(600) == 0 || monster.CountAlliesInRange(500) > 0) { return; } float distance = Player.Instance.Position.Distance(monster.Position); int travelTime = 0; if (distance > 1500) { travelTime = 1000; distance -= 1500; } else { travelTime = (int)distance / 1500 * 1000; distance = 0; } travelTime += (int)(distance / 2500) * 1000; float health = Prediction.Health.GetPrediction(monster, travelTime); if (health - 300 > 0 && health < SpellManager.getRDamage(monster) * 0.8) { R.Cast(monster); } }
public static Vector3 BestTumblePost(Obj_AI_Base target) { if (MenuManager.Modes.Misc.AutomaticPositionTumble && target.CountEnemiesInRange(800) <= 1) { if (SpellManager.E.IsReady() && MenuManager.Modes.Condemn.TumbleIfCondemn) { var direction = (target.ServerPosition - Player.Instance.ServerPosition).To2D().Normalized(); for (var i = 0; i < 180; i++) { var angle = (float)(i * Math.PI / 180); var position = Player.Instance.ServerPosition.To2D() + direction.Rotated(-angle) * 300; if (collisionTypeCheckage(position.To3D()) && position.Distance(Player.Instance.ServerPosition) >= 300 && position.Distance(target) < Player.Instance.Distance(target)) { return(position.To3D()); } } } return(Game.CursorPos); } else { return(Game.CursorPos); } }
public static void castSafeE(Obj_AI_Base target) { if (target.IsValidTarget(E.Range) && E.IsReady() && target.CountEnemiesInRange(800) <= 2) { E.Cast(target); } }
private static void AutoUlt() { if (Player.HealthPercent < SliderCheck("alistar.min.ult", Config) && Player.CountEnemiesInRange(1500f) >= SliderCheck("alistar.min.enemy", Config) && R.IsReady()) { R.Cast(); } }
private static bool canCastQ(Obj_AI_Base target) { if (target == null || !target.IsValidTarget() || target.IsDead) { return(isFishBones()); } if (isFishBones()) { if (Misc.IsChecked(MiscMenu, "qOptionDistance")) { if (target.Distance(Player.Instance.Position) > normalAttackRange) { return(false); } } if (Misc.IsChecked(MiscMenu, "qOptionAOE")) { if (target.CountEnemiesInRange(300f) >= Misc.GetSliderValue(MiscMenu, "qOptionAOEMin")) { return(false); } } } else { if (Misc.IsChecked(MiscMenu, "qOptionDistance")) { if (target.Distance(Player.Instance.Position) > normalAttackRange) { return(true); } } if (Misc.IsChecked(MiscMenu, "qOptionAOE")) { if (target.CountEnemiesInRange(300f) >= Misc.GetSliderValue(MiscMenu, "qOptionAOEMin")) { return(true); } } } return(isFishBones()); }
private static void FishBoneToMiniGun(Obj_AI_Base t) { var realDistance = GetRealDistance(t); if (realDistance < GetRealPowPowRange(t) && t.CountEnemiesInRange(250) < Config.Item("Qaoe").GetValue <Slider>().Value) { if (Player.ManaPercent < Config.Item("QmanaCombo").GetValue <Slider>().Value || Player.GetAutoAttackDamage(t) * Config.Item("QmanaIgnore").GetValue <Slider>().Value < t.Health) { Q.Cast(); } } }
private void CastW() { if (justW) { return; } var allyW = ObjectManager.Get <Obj_AI_Base>().FirstOrDefault(o => o.HasBuff("mordekaisercreepingdeath")); if (allyW != null) { if (allyW.HealthPercent < 20 || player.HealthPercent < 20 || CombatHelper.GetBuffTime(allyW.GetBuff("mordekaisercreepingdeath")) < 0.5f) { if ((allyW.CountEnemiesInRange(250) + Environment.Minion.countMinionsInrange(allyW.Position, 250f) / 2f >= 1 || player.CountEnemiesInRange(250f) + Environment.Minion.countMinionsInrange(player.Position, 250f) / 2f >= 1)) { W.Cast(config.Item("packets").GetValue <bool>()); } } } else { Obj_AI_Base wTarget = Environment.Hero.mostEnemyAtFriend(player, W.Range, 250f); if (MordeGhost) { var ghost = ObjectManager.Get <Obj_AI_Minion>().FirstOrDefault(m => m.HasBuff("mordekaisercotgpetbuff2")); if (wTarget == null || ghost.CountEnemiesInRange(250f) > wTarget.CountEnemiesInRange(250f)) { wTarget = ghost; } } if (wTarget != null && (wTarget.CountEnemiesInRange(250) > 0 || player.CountEnemiesInRange(250) > 0)) { W.Cast(wTarget, config.Item("packets").GetValue <bool>()); } } }
private bool CheckReq(Obj_AI_Base target) { if (GetComboDamage(target) > target.Health && !_rOn && target.CountEnemiesInRange(500) < 3) { if (E.IsReady()) { //Game.PrintChat("added delay: " + addedDelay); return(true); } } return(false); }
private static void SetectCard(Obj_AI_Base target) { var card = "Blue"; if (user.CountEnemiesInRange(1000) > 1 && user.ManaPercent > 10) { card = "Gold"; } if (target.CountEnemiesInRange(300) > 1 && user.ManaPercent > 10 && user.HealthPercent > 40) { card = "Red"; } if (user.CountEnemiesInRange(1000) <= 1 && user.ManaPercent < 30 && user.HealthPercent > 50) { card = "Blue"; } StartSelecting(card); }
private void CastW(AIHeroClient target) { if (justW) { return; } var allyWs = ObjectManager.Get <Obj_AI_Base>() .Where(o => o.Distance(player) < 1500 && o.HasBuff("mordekaisercreepingdeath")); if (allyWs.Any()) { foreach (var allyW in allyWs) { if (allyW is AIHeroClient) { var data = Program.IncDamages.GetAllyData(allyW.NetworkId); if (data != null) { if (data.IsAboutToDie) { W.Cast(); } } } } } else { Obj_AI_Base wTarget = Environment.Hero.mostEnemyAtFriend(player, W.Range, wWidth); if (MordeGhost && PetHandler.Pet != null) { if (wTarget == null || PetHandler.Pet.CountEnemiesInRange(250f) > wTarget.CountEnemiesInRange(250f)) { W.Cast(PetHandler.Pet); return; } } if (wTarget != null && (wTarget.CountEnemiesInRange(250) > 0 || player.CountEnemiesInRange(250) > 0)) { W.Cast(wTarget); } } }
void CastR(Obj_AI_Base target) { if (target.IsDead) { return; } if (target.GetDistance() < Menu.GetSlice("Misc.RRange") && R.IsReady()) { if (target.CountEnemiesInRange(250) > Menu.GetSlice("Misc.REnemies")) { R.Cast(target, false, true); return; } } if (target.GetDistance() < Menu.GetSlice("Misc.MinRRange") && Menu.GetBool("Misc.ROverkill") && target.GetDistance() < Menu.GetSlice("Misc.RRange")) { float RD = DLib.CalcSpellDamage(target, "R"); float AD = (float)ObjectManager.Player.GetAutoAttackDamage(target); if (target.Health < AD * 3.5) { return; } else if (target.Health < RD) { R.Cast(target); } } if (target.GetDistance() < Menu.GetSlice("Misc.RRange")) { float RD = DLib.CalcSpellDamage(target, "R"); if (target.Health < RD) { R.Cast(target); } } }
private float GetComboDamage(Obj_AI_Base target) { double comboDamage = 0; if (Q.IsReady()) { comboDamage += Player.GetSpellDamage(target, SpellSlot.Q) * 2; } if (W.IsReady()) { comboDamage += Player.GetSpellDamage(target, SpellSlot.W); } if (R.IsReady()) { comboDamage += Player.GetSpellDamage(target, SpellSlot.R) / target.CountEnemiesInRange(R.Range); } comboDamage = ItemManager.CalcDamage(target, comboDamage); return((float)(comboDamage + Player.GetAutoAttackDamage(target) * 3)); }
private static void OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (Player.Instance.IsRecalling()) return; foreach ( var enemy in EntityManager.Heroes.Enemies.Where( enemy => sender.IsAlly && Player.Instance.IsInRange(sender, E.Range) && args.SData.Name == "EzrealMysticShotMissile" && sender.CountEnemiesInRange(1200) > 0 && Prediction.Position.PredictUnitPosition(enemy, 250).IsInRange(args.End, 60))) CastShield(sender); if (!sender.IsEnemy) return; priorAllyOrder = new List<AIHeroClient>(); hpAllyOrder = new List<AIHeroClient>(); highestPriority = 0; lowestHP = int.MaxValue; if (Config.Settings.AutoShield.PriorMode == 1) { foreach (var slider in Config.Settings.AutoShield.Sliders) { if (slider.CurrentValue >= highestPriority) { highestPriority = slider.CurrentValue; foreach ( var ally in Config.Settings.AutoShield.Heros.Where( ally => slider.VisibleName.Contains(ally.ChampionName))) priorAllyOrder.Insert(0, ally); } else { foreach ( var ally in Config.Settings.AutoShield.Heros.Where( ally => slider.VisibleName.Contains(ally.ChampionName))) priorAllyOrder.Add(ally); } } foreach (var ally in priorAllyOrder.Where(ally => Player.Instance.IsInRange(ally, E.Range))) { foreach ( var shieldThisSpell in from shieldThisAlly in Config.Settings.AutoShield.ShieldAllyList.Where( x => x.DisplayName.Contains(ally.ChampionName) && x.CurrentValue) from shieldThisSpell in Config.Settings.AutoShield.ShieldSpellList where shieldThisSpell.DisplayName.Contains(args.SData.Name) && shieldThisSpell.CurrentValue select shieldThisSpell) { if (args.Target == ally) CastShield(ally); else { if (Prediction.Position.PredictUnitPosition(ally, 250) .IsInRange(args.End, MissileDatabase.rangeRadiusDatabase[shieldThisSpell.DisplayName.Last(), 1])) { CastShield(ally); } else if (sender.IsFacing(ally) && Prediction.Position.PredictUnitPosition(ally, 250) .IsInRange(sender, MissileDatabase.rangeRadiusDatabase[shieldThisSpell.DisplayName.Last(), 0])) { CastShield(ally); } } } } } else { foreach (var ally in EntityManager.Heroes.Allies) { if (ally.Health <= lowestHP) { lowestHP = ally.Health; hpAllyOrder.Insert(0, ally); } else hpAllyOrder.Add(ally); } foreach (var ally in hpAllyOrder.Where(ally => Player.Instance.IsInRange(ally, E.Range))) { foreach ( var shieldThisSpell in Config.Settings.AutoShield.ShieldAllyList.Where( x => x.DisplayName.Contains(ally.ChampionName) && x.CurrentValue) .SelectMany( shieldThisAlly => Config.Settings.AutoShield.ShieldSpellList.Where( s => s.DisplayName.Contains(args.SData.Name) && s.CurrentValue))) { if (args.Target == ally) CastShield(ally); else { if (Prediction.Position.PredictUnitPosition(ally, 250) .IsInRange(args.End, MissileDatabase.rangeRadiusDatabase[shieldThisSpell.DisplayName.Last(), 1])) { CastShield(ally); } else if (sender.IsFacing(ally) && Prediction.Position.PredictUnitPosition(ally, 250) .IsInRange(sender, MissileDatabase.rangeRadiusDatabase[shieldThisSpell.DisplayName.Last(), 0])) { CastShield(ally); } } } } } }
public static void UseItems(Obj_AI_Base target, float comboDmg = 0f, bool cleanseSpell = false) { hydraTarget = target; if (Item.HasItem(randuins.Id) && Item.CanUseItem(randuins.Id)) { if (target != null && player.Distance(target) < randuins.Range && player.CountEnemiesInRange(randuins.Range) >= 2) { Item.UseItem(randuins.Id); } } if (target != null && Item.HasItem(odins.Id) && Item.CanUseItem(odins.Id)) { var odinDmg = player.GetItemDamage(target, ItemId.Odyns_Veil); if (odinDmg > target.Health) { odins.Cast(target); } } if (Item.HasItem(bilgewater.Id) && Item.CanUseItem(bilgewater.Id)) { var bilDmg = player.GetItemDamage(target, ItemId.Bilgewater_Cutlass); if (bilDmg > target.Health) { bilgewater.Cast(target); } } if (target != null && Item.HasItem(botrk.Id) && Item.CanUseItem(botrk.Id)) { var botrDmg = player.GetItemDamage(target, ItemId.Blade_of_the_Ruined_King); if (botrDmg > target.Health) { botrk.Cast(target); } } if (target != null && Item.HasItem(hexgun.Id) && Item.CanUseItem(hexgun.Id)) { var hexDmg = player.GetItemDamage(target, ItemId.Hextech_Gunblade); if (hexDmg > target.Health) { hexgun.Cast(target); } } if ( ((!MuramanaEnabled && 40 < player.ManaPercent) || (MuramanaEnabled && 40 > player.ManaPercent))) { if (Muramana.IsOwned() && Muramana.IsReady()) { Muramana.Cast(); } if (Muramana2.IsOwned() && Muramana2.IsReady()) { Muramana2.Cast(); } } MuramanaTime = System.Environment.TickCount; if (Item.HasItem(youmuu.Id) && Item.CanUseItem(youmuu.Id) && target != null && player.Distance(target) < player.AttackRange + 50 && target.HealthPercent < 65) { youmuu.Cast(); } if (Item.HasItem(frost.Id) && Item.CanUseItem(frost.Id) && target != null) { if (player.Distance(target) < frost.Range && (2 <= target.CountEnemiesInRange(225f) && ((target.Health / target.MaxHealth * 100f) < 40 && true || !true))) { frost.Cast(target); } } if (Item.HasItem(solari.Id) && Item.CanUseItem(solari.Id)) { if ((2 <= player.CountAlliesInRange(solari.Range) && 2 <= player.CountEnemiesInRange(solari.Range)) || ObjectManager.Get<Obj_AI_Base>() .FirstOrDefault( h => h.IsAlly && !h.IsDead && solari.IsInRange(h) && CombatHelper.CheckCriticalBuffs(h)) != null) { solari.Cast(); } } UseCleanse(cleanseSpell); }
public static Vector3 BestTumblePost(Obj_AI_Base target) { if (MenuManager.Modes.Misc.AutomaticPositionTumble && target.CountEnemiesInRange(800) <= 1) { if (SpellManager.E.IsReady() && MenuManager.Modes.Condemn.TumbleIfCondemn) { var direction = (target.ServerPosition - Player.Instance.ServerPosition).To2D().Normalized(); for (var i = 0; i < 180; i++) { var angle = (float)(i * Math.PI / 180); var position = Player.Instance.ServerPosition.To2D() + direction.Rotated(-angle) * 300; if (collisionTypeCheckage(position.To3D()) && position.Distance(Player.Instance.ServerPosition) >= 300 && position.Distance(target) < Player.Instance.Distance(target)) return position.To3D(); } } return Game.CursorPos; } else { return Game.CursorPos; } }
private static void FishBoneToMiniGun(Obj_AI_Base t) { var realDistance = GetRealDistance(t); if (realDistance < GetRealPowPowRange(t) && t.CountEnemiesInRange(250) < Config.Item("Qaoe").GetValue<Slider>().Value) { if (Player.ManaPercent < Config.Item("QmanaCombo").GetValue<Slider>().Value || Player.GetAutoAttackDamage(t) * Config.Item("QmanaIgnore").GetValue<Slider>().Value < t.Health) Q.Cast(); } }
private static int GetEnemiesAround(Obj_AI_Base unit, float range) { return unit.CountEnemiesInRange(range); }
private static void Game_OnUpdate(EventArgs args) { //if (Config.Item("SmitCast").GetValue<KeyBind>().Active) //{ // Console.WriteLine(Utill.GetInfo()); //} if (Config.Item(Player.ChampionName + "DamageType").GetValue <StringList>().SelectedIndex == 0) { return; } #region 取雪球标记目标 if (GetSnowBallState() == SnowBallState.Dash) { foreach (var enemy in ObjectManager.Get <Obj_AI_Base>().Where(o => o.IsEnemy && o.IsValid && !o.IsDead && o.Distance(Player) <= SnowBall.Range + 400 && (o.Type == GameObjectType.obj_AI_Minion || o.Type == GameObjectType.obj_AI_Hero))) { if (enemy.HasBuff("snowballfollowupself") || enemy.HasBuff("porothrowfollowup")) { MarkTarget = enemy; break; } else { MarkTarget = null; } } } else { MarkTarget = null; } #endregion #region 连招时 标记目标 或 打伤害 if (Config.Item("Combo").GetValue <KeyBind>().Active) { if (GetSnowBallState() == SnowBallState.Mark) { var Target = TargetSelector.GetTarget(SnowBall.Range, DamageTypeList[Config.Item(Player.ChampionName + "DamageType").GetValue <StringList>().SelectedIndex], false, ignoreList); //Game.PrintChat("Combo SnowBall"); CastMark(Target); } } #endregion #region 抢人头 if (Config.Item("KS").GetValue <bool>()) { if (GetSnowBallState() == SnowBallState.Mark) { foreach (var enemy in HeroManager.Enemies.Where(o => o.IsValid && !o.IsDead && o.Distance(Player) <= SnowBall.Range - 10)) { if (enemy.Health < GetSnowBallDmg()) { //Game.PrintChat("enemy.Health:" + enemy.Health + " SnowBallDmg:" + GetSnowBallDmg()); //Game.PrintChat("KS1 SnowBall"); CastMark(enemy); } } } if (GetSnowBallState() == SnowBallState.Dash && MarkTarget != null && MarkTarget.Type == GameObjectType.obj_AI_Hero && MarkTarget.CountEnemiesInRange(700) < Player.CountEnemiesInRange(700)) { var enemy = MarkTarget as Obj_AI_Hero; if (enemy.Health <= GetSnowBallDmg()) { //Game.PrintChat("KS2 SnowBall"); SnowBall.Cast(); } } } #endregion #region 半手动 if ((Config.Item("SmitCast").GetValue <KeyBind>().Active || Config.Item("Toggle").GetValue <KeyBind>().Active) && GetSnowBallState() == SnowBallState.Mark) { var Target = TargetSelector.GetTarget(SnowBall.Range, DamageTypeList[Config.Item(Player.ChampionName + "DamageType").GetValue <StringList>().SelectedIndex], false, ignoreList); //Game.PrintChat("SmitCast SnowBall"); //CastMark(Target,HitChance.High); CastMark(Target); } #endregion }
private static int GetEnemiesAround(Obj_AI_Base unit, float range) { return(unit.CountEnemiesInRange(range)); }
private static bool canCastQ(Obj_AI_Base target) { if (target == null || !target.IsValidTarget() || target.IsDead) return isFishBones(); if (isFishBones()) { if (Misc.IsChecked(MiscMenu, "qOptionDistance")) { if (target.Distance(Player.Instance.Position) > normalAttackRange) { return false; } } if (Misc.IsChecked(MiscMenu, "qOptionAOE")) { if (target.CountEnemiesInRange(300f) >= Misc.GetSliderValue(MiscMenu, "qOptionAOEMin")) { return false; } } } else { if (Misc.IsChecked(MiscMenu, "qOptionDistance")) { if (target.Distance(Player.Instance.Position) > normalAttackRange) { return true; } } if (Misc.IsChecked(MiscMenu, "qOptionAOE")) { if (target.CountEnemiesInRange(300f) >= Misc.GetSliderValue(MiscMenu, "qOptionAOEMin")) { return true; } } } return isFishBones(); }
/// <summary> /// Casting Logic. /// </summary> public static void Casting(Spell.SpellBase spellBase, Obj_AI_Base target, bool enabled = true) { if (spellBase == null || target == null || !enabled) { return; } if (spellBase.DontWaste() && ModesManager.LaneClear) { return; } if (spellBase.IsDangerDash() && target.CountAlliesInRange(1000) >= target.CountEnemiesInRange(1000) && (target.PredictPosition().UnderEnemyTurret() && Misc.SafeToDive || !target.PredictPosition().UnderEnemyTurret())) { spellBase.Cast(target); return; } if (spellBase.IsDangerDash()) { return; } if (spellBase.IsDash()) { spellBase.Cast(target.PredictPosition().Extend(Player.Instance, 300).To3D()); return; } if (spellBase.IsToggle()) { if (spellBase is Spell.Active) { if (spellBase.Handle.ToggleState != 2 && target.IsValidTarget(spellBase.Range)) { spellBase.Cast(); return; } if (spellBase.Handle.ToggleState == 2 && !target.IsValidTarget(spellBase.Range)) { spellBase.Cast(); return; } } else { if (spellBase.Handle.ToggleState != 2 && target.IsValidTarget(spellBase.Range)) { spellBase.Cast(target); return; } if (spellBase.Handle.ToggleState == 2 && !target.IsValidTarget(spellBase.Range)) { spellBase.Cast(Game.CursorPos); return; } } } if (spellBase is Spell.Active) { spellBase.Cast(); return; } if ((spellBase is Spell.Skillshot || spellBase is Spell.Targeted || spellBase is Spell.Ranged) && !(spellBase is Spell.Chargeable)) { spellBase.Cast(target); return; } if (spellBase is Spell.Chargeable) { var chargeable = spellBase as Spell.Chargeable; if (!chargeable.IsCharging) { chargeable.StartCharging(); return; } if (chargeable.IsInRange(target)) { chargeable.Cast(target); } } }
private void steal(Obj_AI_Base monster) { if (monster == null || monster.CountEnemiesInRange(600) == 0 || monster.CountAlliesInRange(500) > 0) return; float distance = Player.Instance.Position.Distance(monster.Position); int travelTime = 0; if (distance > 1500) { travelTime = 1000; distance -= 1500; } else { travelTime = (int)distance / 1500 * 1000; distance = 0; } travelTime += (int)(distance / 2500) * 1000; float health = Prediction.Health.GetPrediction(monster, travelTime); if (health - 300 > 0 && health < SpellManager.getRDamage(monster) * 0.8) { R.Cast(monster); } }
private void CastW(AIHeroClient target) { if (justW) { return; } var allyWs = ObjectManager.Get <Obj_AI_Base>() .Where(o => o.Distance(player) < 1500 && o.HasBuff("mordekaisercreepingdeath")); if (allyWs.Any()) { foreach (var allyW in allyWs) { var targethero = HeroManager.Enemies.Where(e => e.Distance(allyW.Position) < wWidth && e.IsValidTarget()) .OrderByDescending(e => e.Distance(allyW.Position)) .FirstOrDefault(); if (targethero != null) { var pred = Prediction.GetPrediction(targethero, 0.1f) .UnitPosition.Distance(Prediction.GetPrediction(allyW, 0.1f).UnitPosition); if ((pred > wWidth && (allyW.CountEnemiesInRange(wWidth) == 1 || target.NetworkId == targethero.NetworkId)) && !allyWs.Any( a => Prediction.GetPrediction(targethero, 0.1f) .UnitPosition.Distance(Prediction.GetPrediction(a, 0.1f).UnitPosition) < wWidth)) { W.Cast(); } } if (allyW is AIHeroClient) { var data = Program.IncDamages.GetAllyData(allyW.NetworkId); if (data != null) { if (data.IsAboutToDie) { W.Cast(); } } } } } else { Obj_AI_Base wTarget = Environment.Hero.mostEnemyAtFriend(player, W.Range, wWidth); if (MordeGhost && PetHandler.Pet != null) { if (wTarget == null || PetHandler.Pet.CountEnemiesInRange(250f) > wTarget.CountEnemiesInRange(250f)) { W.Cast(PetHandler.Pet); return; } } if (wTarget != null && (wTarget.CountEnemiesInRange(250) > 0 || player.CountEnemiesInRange(250) > 0)) { W.Cast(wTarget); } } }
private static void OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (Player.Instance.IsRecalling()) { return; } foreach ( var enemy in EntityManager.Heroes.Enemies.Where( enemy => sender.IsAlly && Player.Instance.IsInRange(sender, E.Range) && args.SData.Name == "EzrealMysticShotMissile" && sender.CountEnemiesInRange(1200) > 0 && Prediction.Position.PredictUnitPosition(enemy, 250).IsInRange(args.End, 60))) { CastShield(sender); } if (!sender.IsEnemy) { return; } priorAllyOrder = new List <AIHeroClient>(); hpAllyOrder = new List <AIHeroClient>(); highestPriority = 0; lowestHP = int.MaxValue; if (Config.Settings.AutoShield.PriorMode == 1) { foreach (var slider in Config.Settings.AutoShield.Sliders) { if (slider.CurrentValue >= highestPriority) { highestPriority = slider.CurrentValue; foreach ( var ally in Config.Settings.AutoShield.Heros.Where( ally => slider.VisibleName.Contains(ally.ChampionName))) { priorAllyOrder.Insert(0, ally); } } else { foreach ( var ally in Config.Settings.AutoShield.Heros.Where( ally => slider.VisibleName.Contains(ally.ChampionName))) { priorAllyOrder.Add(ally); } } } foreach (var ally in priorAllyOrder.Where(ally => Player.Instance.IsInRange(ally, E.Range))) { foreach ( var shieldThisSpell in from shieldThisAlly in Config.Settings.AutoShield.ShieldAllyList.Where( x => x.DisplayName.Contains(ally.ChampionName) && x.CurrentValue) from shieldThisSpell in Config.Settings.AutoShield.ShieldSpellList where shieldThisSpell.DisplayName.Contains(args.SData.Name) && shieldThisSpell.CurrentValue select shieldThisSpell) { if (args.Target == ally) { CastShield(ally); } else { if (Prediction.Position.PredictUnitPosition(ally, 250) .IsInRange(args.End, MissileDatabase.rangeRadiusDatabase[shieldThisSpell.DisplayName.Last(), 1])) { CastShield(ally); } else if (sender.IsFacing(ally) && Prediction.Position.PredictUnitPosition(ally, 250) .IsInRange(sender, MissileDatabase.rangeRadiusDatabase[shieldThisSpell.DisplayName.Last(), 0])) { CastShield(ally); } } } } } else { foreach (var ally in EntityManager.Heroes.Allies) { if (ally.Health <= lowestHP) { lowestHP = ally.Health; hpAllyOrder.Insert(0, ally); } else { hpAllyOrder.Add(ally); } } foreach (var ally in hpAllyOrder.Where(ally => Player.Instance.IsInRange(ally, E.Range))) { foreach ( var shieldThisSpell in Config.Settings.AutoShield.ShieldAllyList.Where( x => x.DisplayName.Contains(ally.ChampionName) && x.CurrentValue) .SelectMany( shieldThisAlly => Config.Settings.AutoShield.ShieldSpellList.Where( s => s.DisplayName.Contains(args.SData.Name) && s.CurrentValue))) { if (args.Target == ally) { CastShield(ally); } else { if (Prediction.Position.PredictUnitPosition(ally, 250) .IsInRange(args.End, MissileDatabase.rangeRadiusDatabase[shieldThisSpell.DisplayName.Last(), 1])) { CastShield(ally); } else if (sender.IsFacing(ally) && Prediction.Position.PredictUnitPosition(ally, 250) .IsInRange(sender, MissileDatabase.rangeRadiusDatabase[shieldThisSpell.DisplayName.Last(), 0])) { CastShield(ally); } } } } } }
public bool GoodBounceTarget(Obj_AI_Base target) { return(target.CountEnemiesInRange(380) > 1); }
private float GetComboDamage(Obj_AI_Base target) { double comboDamage = 0; if (Q.IsReady()) comboDamage += Player.GetSpellDamage(target, SpellSlot.Q) * 2; if (W.IsReady()) comboDamage += Player.GetSpellDamage(target, SpellSlot.W); if (R.IsReady()) comboDamage += Player.GetSpellDamage(target, SpellSlot.R) / target.CountEnemiesInRange(R.Range); comboDamage = ItemManager.CalcDamage(target, comboDamage); return (float)(comboDamage + Player.GetAutoAttackDamage(target) * 3); }