private static void Game_OnGameUpdate(EventArgs args) { if (Target == null || ObjectManager.Player.IsDead) { return; } //ignite int igniteMode = _myMenu.Item("igniteMode").GetValue <StringList>().SelectedIndex; if (KillableTarget && igniteMode == 0 && Ignite_Ready()) { Use_Ignite(Target); } else if (ObjectManager.Player.GetSummonerSpellDamage(Target, Damage.SummonerSpell.Ignite) > Target.Health + 20 && Ignite_Ready()) { Use_Ignite(Target); } if (!UseTargetted) { return; } foreach (var item in ItemList.Where(x => x.Mode == 0 && Items.HasItem(x.ActiveId) && ShouldUse(x.ActiveName))) { if (Target != null && Items.CanUseItem(item.ActiveId)) { if (AlwaysUse(item.ActiveName)) { Items.UseItem(item.ActiveId, Target); } if (KillableTarget) { Items.UseItem(item.ActiveId, Target); } if (ObjectManager.Player.HealthPercentage() <= UseAtMyHp(item.ActiveName) && !OnlyIfKillable(item.ActiveName)) { Items.UseItem(item.ActiveId, Target); } if (Target.HealthPercentage() <= UseAtEnemyHp(item.ActiveName) && !OnlyIfKillable(item.ActiveName)) { Items.UseItem(item.ActiveId, Target); } } } if (ObjectManager.Player.HasBuff("Muramana") && Items.CanUseItem(3042) && Environment.TickCount - lastMura > 5000) { Items.UseItem(3042); } //reset mode UseTargetted = false; Target = null; KillableTarget = false; }
private static void Combo() { var target = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Magical); var prediction = Q.GetPrediction(target); if (prediction.Hitchance >= HitChance.High && Q.IsReady() && Config.Item("UseQ").GetValue <bool>() && target.IsValidTarget(Q.Range) && Barrel == null) { Q.Cast(target); } if (R.IsReady() && Config.Item("UseRprotector").GetValue <bool>() && player.HealthPercentage() <= Config.Item("Rhp").GetValue <Slider>().Value) { R.Cast(player.Position); } if (R.IsReady() && Config.Item("UseRdmg").GetValue <bool>() && target.Position.CountEnemiesInRange(250) >= Config.Item("rdmgslider").GetValue <Slider>().Value) { R.Cast(target); } }
private static void HarassTg() { if (Player.HealthPercentage() > Config.Item("CountHarass").GetValue <Slider>().Value) { var target = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical); if (CheckFor(Q, target, Q.Range, "HarassQ") && !target.HasBuff("UndyingRage")) { Q.Cast(target); } if (CheckFor(W, target, W.Range, "HarassW") && !target.HasBuff("UndyingRage")) { W.Cast(target); } } }
private static void Combo() { var target = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical); if (target == null) { return; } if (Q.IsReady() && target.Distance(Player) <= Q.Range && target.IsValidTarget() && Config.Item("UseQCombo").GetValue <bool>()) { Q.Cast(target); } if (W.IsReady() && target.IsValidTarget() && target.Distance(Player) <= W.Range && Config.Item("UseWCombo").GetValue <bool>()) { W.Cast(target); } if (E.IsReady() && target.IsValidTarget() && target.Distance(Player) <= E.Range && Config.Item("UseECombo").GetValue <bool>()) { E.Cast(target); } if (R.IsReady() && target.IsValidTarget() && Player.HealthPercentage() <= Config.Item("RHP").GetValue <Slider>().Value&& Config.Item("UseRCombo").GetValue <bool>()) { R.Cast(); } if (Config.Item("UseItems").GetValue <bool>()) { if (Player.Distance(target) <= RDO.Range) { RDO.Cast(target); } if (Player.Distance(target) <= HYD.Range) { HYD.Cast(target); } if (Player.Distance(target) <= DFG.Range) { DFG.Cast(target); } if (Player.Distance(target) <= BOTK.Range) { BOTK.Cast(target); } if (Player.Distance(target) <= CUT.Range) { CUT.Cast(target); } if (Player.Distance(target) <= 125f) { YOY.Cast(); } if (Player.Distance(target) <= TYM.Range) { TYM.Cast(target); } } }
private static void StayAlive() { Obj_AI_Hero ally = ObjectManager.Get <Obj_AI_Hero>().Where(x => x.IsAlly && !x.IsDead && x.Distance(Player.Position) < E.Range).OrderBy(x => x.Health).FirstOrDefault(); if (ally.HealthPercentage() < 8) { E.Cast(ally); } }
private static void Combo() { var nearbyEnemies = HeroManager.Enemies.Where(h => h.IsValidTarget() && h.Distance(_player) < 1000) .OrderBy(h => h.Distance(_player)); var QTarget = TargetSelector.GetTarget(_q.Range, TargetSelector.DamageType.Physical); var RTarget = TargetSelector.GetTarget(_r.Range, TargetSelector.DamageType.Magical); if (!nearbyEnemies.Any()) { return; } if (_config.Item("comboQ").GetValue <bool>() && _q.IsReady() && QTarget.IsValidTarget()) { _q.Cast(); } if (_config.Item("comboE").GetValue <bool>() && _e.IsReady()) { _e.Cast(); } if (_config.Item("comboW").GetValue <bool>() && _w.IsReady()) { if (_player.CountEnemiesInRange(700) >= _config.Item("countW").GetValue <Slider>().Value || _player.HealthPercentage() <= _config.Item("healthPercentWCombo").GetValue <Slider>().Value) { _w.Cast(); } } if (_config.Item("comboR").GetValue <bool>() && _r.IsReady()) { if (_player.CountAlliesInRange(1000) <= 2) { if (nearbyEnemies.FirstOrDefault().Distance(_player) < _q.Range) { return; } _r.CastIfWillHit(RTarget, _config.Item("countRGanks").GetValue <Slider>().Value); } else { _r.CastIfWillHit(RTarget, _config.Item("countR").GetValue <Slider>().Value); } } }
//Ulti private static void CastR() { var useR = (Config.Item("DontUlt" + Target.BaseSkinName) != null && Config.Item("DontUlt" + Target.BaseSkinName).GetValue <bool>() == false); var minHp = Config.Item("minRhealth").GetValue <Slider>().Value; if (useR && (Player.Distance(Target) < R.Range) && (Target.HealthPercentage() <= minHp)) { R.CastOnUnit(Target); } }
public static void TryToSurvive() { if (!Menu.GetBool("surviveW")) { return; } var target2 = TargetSelector.GetTarget(700f, TargetSelector.DamageType.Magical); if (Player.HealthPercentage() <= Menu.GetSlider("surviveWHP") && Spells.W.IsReady() && target2.IsValidTarget(700f)) { Spells.W.Cast(); } }
public override string ToString() { var time = _recallStart + Duration - Game.Time; if (time <= 0) { time = Game.Time - _lastActionTime; } if (LastStatus == Packet.S2C.Recall.RecallStatus.RecallStarted) { return(string.Format("Recall: {0}({1}%) Recalling ({2:0.00})", Hero.ChampionName, (int)Hero.HealthPercentage(), time)); } if (LastStatus == Packet.S2C.Recall.RecallStatus.RecallFinished) { return(string.Format("Recall: {0}({1}%) Recalled ({2:0.00})", Hero.ChampionName, (int)Hero.HealthPercentage(), time)); } if (LastStatus == Packet.S2C.Recall.RecallStatus.RecallAborted) { return(string.Format("Recall: {0}({1}%) Aborted", Hero.ChampionName, (int)Hero.HealthPercentage())); } if (LastStatus == Packet.S2C.Recall.RecallStatus.TeleportStart) { return(string.Format("Teleport: {0}({1}%) Teleporting ({2:0.00})", Hero.ChampionName, (int)Hero.HealthPercentage(), time)); } if (LastStatus == Packet.S2C.Recall.RecallStatus.TeleportEnd) { return(string.Format("Teleport: {0}({1}%) Ported ({2:0.00})", Hero.ChampionName, (int)Hero.HealthPercentage(), time)); } if (LastStatus == Packet.S2C.Recall.RecallStatus.TeleportAbort) { return(string.Format("Teleport: {0}({1}%) Aborted", Hero.ChampionName, (int)Hero.HealthPercentage())); } return(string.Empty); }
private static void UseItems(Obj_AI_Hero tar) { var ownH = GetPerValue(false); if ((Menu.Item("BotrkC").GetValue <bool>() && _orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo) && (Menu.Item("OwnHPercBotrk").GetValue <Slider>().Value <= ownH) && ((Menu.Item("EnHPercBotrk").GetValue <Slider>().Value <= tar.HealthPercentage()))) { UseItem(3153, tar); } if ((Menu.Item("BotrkH").GetValue <bool>() && _orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed) && (Menu.Item("OwnHPercBotrk").GetValue <Slider>().Value <= ownH) && ((Menu.Item("EnHPercBotrk").GetValue <Slider>().Value <= tar.HealthPercentage()))) { UseItem(3153, tar); } if (Menu.Item("YoumuuC").GetValue <bool>() && _orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo) { UseItem(3142); } if (Menu.Item("YoumuuH").GetValue <bool>() && _orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed) { UseItem(3142); } if (Menu.Item("BilgeC").GetValue <bool>() && _orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo) { UseItem(3144, tar); } if (Menu.Item("BilgeH").GetValue <bool>() && _orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed) { UseItem(3144, tar); } }
public static void LineCombo() { Obj_AI_Hero target = TargetSelector.GetTarget(Zed.q.Range - 100, TargetSelector.DamageType.Physical); if (target == null) { Zed.player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos); } else { Zed.player.IssueOrder(GameObjectOrder.AttackUnit, target); } if (MiscHelper.GetComboDamage(target) > (target.Health * 0.7)) { if (Zed.player.Mana >= (MiscHelper.GetEnergyCost(SpellSlot.Q) + MiscHelper.GetEnergyCost(SpellSlot.W) + MiscHelper.GetEnergyCost(SpellSlot.E))) { if (Zed.r.IsReady() && target != null && !Zed.rData.isCreated()) { if (750 < (Environment.TickCount - Zed.rData.getTimeCasted())) { Zed.r.Cast(target, true); } Zed.rData.setTimeCasted(Environment.TickCount); } if (Zed.menuHelper.menu.Item("comboUseW").GetValue <bool>() && Zed.w.IsReady() && target != null && !Zed.wData.isCreated() && Zed.rData.isCreated()) { if (500 < (Environment.TickCount - Zed.wData.getTimeCasted())) { Zed.w.Cast(MiscHelper.GetWCastPosition(target), true); } Zed.wData.setTimeCasted(Environment.TickCount); } } if (Zed.menuHelper.menu.Item("comboUseE").GetValue <bool>() && Zed.e.IsReady() && target != null) { if ((Zed.wData.isCreated() && target.Distance(Zed.wData.getShadow()) < Zed.e.Range) || (Zed.rData.isCreated() && target.Distance(Zed.rData.getShadow()) < Zed.e.Range) || target.Distance(Zed.player) < Zed.e.Range) { Zed.e.Cast(); } } if (Zed.menuHelper.menu.Item("comboUseQ").GetValue <bool>() && Zed.q.IsReady() && target != null) { Zed.q.CastIfHitchanceEquals(target, HitChance.High, true); } if (MiscHelper.GetComboDamage(target) > target.Health && target.HealthPercentage() < 30) { Zed.player.Spellbook.CastSpell(Zed.ignite, true); } } }
public void Following() { if ((DateTime.Now.Ticks - lastFollowTarget > nextFollowTargetDelay) || followTarget == null || followTarget.IsDead || followTarget.HealthPercentage() < 25) { followTarget = GetFollowTarget(followTarget); } if (followTarget != null) { if (status != "GetBuff" && status != "Fight" && (DateTime.Now.Ticks - lastFollow > followDelay)) { Random r = new Random(); int distance1 = r.Next(50, 200); int distance2 = r.Next(50, 200); if (Player.AttackRange >= followTarget.AttackRange) { if (Player.Team == GameObjectTeam.Chaos) { Player.IssueOrder(GameObjectOrder.MoveTo, new Vector3(followTarget.Position.X + distance1, followTarget.Position.Y, followTarget.Position.Z + distance2)); orb.SetOrbwalkingPoint(new Vector3(followTarget.Position.X + distance1, followTarget.Position.Y, followTarget.Position.Z + distance2)); } else { Player.IssueOrder(GameObjectOrder.MoveTo, new Vector3(followTarget.Position.X - distance1, followTarget.Position.Y, followTarget.Position.Z - distance2)); orb.SetOrbwalkingPoint(new Vector3(followTarget.Position.X - distance1, followTarget.Position.Y, followTarget.Position.Z - distance2)); } } else { if (Player.Team == GameObjectTeam.Order) { Player.IssueOrder(GameObjectOrder.MoveTo, new Vector3(followTarget.Position.X + distance1, followTarget.Position.Y, followTarget.Position.Z + distance2)); orb.SetOrbwalkingPoint(new Vector3(followTarget.Position.X + distance1, followTarget.Position.Y, followTarget.Position.Z + distance2)); } else { Player.IssueOrder(GameObjectOrder.MoveTo, new Vector3(followTarget.Position.X - distance1, followTarget.Position.Y, followTarget.Position.Z - distance2)); orb.SetOrbwalkingPoint(new Vector3(followTarget.Position.X - distance1, followTarget.Position.Y, followTarget.Position.Z - distance2)); } } lastFollow = DateTime.Now.Ticks; } } }
private void ProtectorOnTargetedProtection(Obj_AI_Base caster, Obj_AI_Hero target, SpellData spell) { try { if (!ConfigValue <bool>("Misc.Shield.Target")) { return; } if (Orbwalking.IsAutoAttack(spell.Name) && target.HealthPercentage() > ConfigValue <Slider>("Misc.Shield.Health").Value) { return; } if (spell.MissileSpeed > 2000 || spell.MissileSpeed == 0) { return; } // TODO: blacklist FiddleQ, FioraQ/R, LeonaE, VladQ, ZileanQ if (target.IsMe && E.IsReady()) { CastShield(caster.Position); } if (!target.IsMe && W.IsReady() && W.IsInRange(target) && (IsShieldActive || E.IsReady())) { var jumpTime = (Player.Distance(target) * 1000 / W.Instance.SData.MissileSpeed) + (W.Instance.SData.SpellCastTime * 1000); var missileTime = caster.Distance(target) * 1000 / spell.MissileSpeed; if (jumpTime > missileTime) { Console.WriteLine("Abort Jump - Missile too Fast: {0} {1}", jumpTime, missileTime); return; } W.CastOnUnit(target); Utility.DelayAction.Add((int)jumpTime, () => CastShield(caster.Position)); } } catch (Exception e) { Console.WriteLine(e); } }
private void ProtectorOnTargetedProtection(Obj_AI_Base caster, Obj_AI_Hero target, SpellData spell) { try { if (!ConfigValue<bool>("Misc.Shield.Target")) { return; } if (Orbwalking.IsAutoAttack(spell.Name) && target.HealthPercentage() > ConfigValue<Slider>("Misc.Shield.Health").Value) { return; } if (spell.MissileSpeed > 2000 || spell.MissileSpeed == 0) { return; } // TODO: blacklist FiddleQ, FioraQ/R, LeonaE, VladQ, ZileanQ if (target.IsMe && E.IsReady()) { CastShield(caster.Position); } if (!target.IsMe && W.IsReady() && W.IsInRange(target) && (IsShieldActive || E.IsReady())) { var jumpTime = (Player.Distance(target) * 1000 / W.Instance.SData.MissileSpeed) + (W.Instance.SData.SpellCastTime * 1000); var missileTime = caster.Distance(target) * 1000 / spell.MissileSpeed; if (jumpTime > missileTime) { Console.WriteLine("Abort Jump - Missile too Fast: {0} {1}", jumpTime, missileTime); return; } W.CastOnUnit(target); Utility.DelayAction.Add((int) jumpTime, () => CastShield(caster.Position)); } } catch (Exception e) { Console.WriteLine(e); } }
static void SpellDetector(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { // return if ally or non hero spell if (sender.IsAlly || sender.Type != GameObjectType.obj_AI_Hero || !args.Target.IsMe) { return; } if (!args.SData.Name.ToLower().Contains("basicattack")) { // Console.WriteLine(args.SData.Name + " Detected"); var Spellinfo = DangerousSpells.GetByName(args.SData.Name.ToLower()); if (Spellinfo != null) { Console.WriteLine("List spell detected: " + args.SData.Name); } if (Spellinfo != null && zhonyaready() && args.Target.IsMe && (Menu.Item("Enabled" + Spellinfo.DisplayName).GetValue <bool>())) { Game.PrintChat("Attempting to Evade: " + args.SData.Name); var delay = Spellinfo.BaseDelay * 1000; Utility.DelayAction.Add((int)delay, () => Zhonya.Cast()); } if (Menu.Item("enablehpzhonya").GetValue <bool>() && zhonyaready()) { var incomingspelldmg = sender.GetSpellDamage(Player, args.SData.Name); var calcdmg = Damage.CalcDamage( sender, Player, sender.GetDamageSpell(Player, args.SData.Name).DamageType, incomingspelldmg); var remaininghealth = Player.Health - calcdmg; var slidervalue = Menu.Item("minspelldmg").GetValue <Slider>().Value / 100f; var hptozhonya = Menu.Item("hptozhonya").GetValue <Slider>().Value; var remaininghealthslider = Menu.Item("remaininghealth").GetValue <Slider>().Value / 100f; if (( calcdmg / Player.Health) >= slidervalue || Player.HealthPercentage() <= hptozhonya || remaininghealth <= remaininghealthslider * Player.Health) { Console.WriteLine("Attempting to Zhonya because incoming spell costs " + calcdmg / Player.Health + " of our health."); Zhonya.Cast(); } } } }
public override void Game_OnUpdate(EventArgs args) { base.Game_OnUpdate(args); CastSpell(Q, qData); target = GetTarget(E); if (target.Health <= E.GetDamage(target)) { CastSpell(E, eData); } target = GetTarget(R); if ((status == "Fight" && Player.HealthPercentage() <= 40) || contractTarget.HealthPercentage() <= 30) { CastSpell(R, rData); } }
private static void SaveMode() { var save = ElKalistaMenu._menu.Item("ElKalista.misc.save").GetValue <bool>(); var allyHp = ElKalistaMenu._menu.Item("ElKalista.misc.allyhp").GetValue <Slider>().Value; if (ConnectedAlly == null) { foreach (var cAlly in from ally in ObjectManager.Get <Obj_AI_Hero>().Where(b => b.IsAlly && !b.IsDead && !b.IsMe) where Player.Distance(ally) < spells[Spells.R].Range from buff in ally.Buffs where ally.HasBuff("kalistacoopstrikeally") select ally) { ConnectedAlly = cAlly; break; } } else { if (save && ConnectedAlly.HealthPercentage() < allyHp && ConnectedAlly.CountEnemiesInRange(500) > 0) { spells[Spells.R].Cast(); } } }
private static void OrbwalkingAfterAttack(AttackableUnit unit, AttackableUnit target) { if (!unit.IsMe) { return; } //TODO Add E for Kiting and get away _shouldHavePassive = false; Obj_AI_Hero hero = target as Obj_AI_Hero; if (hero != null) { var targ = hero; if (_spells[SpellSlot.E].IsEnabledAndReady(Mode.Combo)) { var hypotheticalPosition = ObjectManager.Player.ServerPosition.Extend( Game.CursorPos, _spells[SpellSlot.E].Range); if (ObjectManager.Player.HealthPercentage() <= 30 && hero.HealthPercentage() >= ObjectManager.Player.HealthPercentage()) { if (ObjectManager.Player.Position.Distance(ObjectManager.Player.ServerPosition) >= 35 && hero.Distance(ObjectManager.Player.ServerPosition) < hero.Distance(ObjectManager.Player.Position) && PositionHelper.IsSafePosition(hypotheticalPosition)) { _spells[SpellSlot.E].Cast(hypotheticalPosition); } } if (PositionHelper.IsSafePosition(hypotheticalPosition) && hypotheticalPosition.Distance(targ.ServerPosition) <= Orbwalking.GetRealAutoAttackRange(null) && (!_spells[SpellSlot.Q].IsEnabledAndReady(Mode.Combo) || !_spells[SpellSlot.Q].CanCast(targ)) && (!_spells[SpellSlot.W].IsEnabledAndReady(Mode.Combo) || !_spells[SpellSlot.W].CanCast(targ) && (hypotheticalPosition.Distance(targ.ServerPosition) > 400) && !(HasPassive()))) { _spells[SpellSlot.E].Cast(hypotheticalPosition); } } } }
/// <summary> /// Heal our player /// </summary> public void HealSelf() { if (!_menu.Item("healSelf").GetValue <bool>()) { return; } if (_player.IsRecalling() || _player.IsDead || _player.InFountain()) { return; } if (!(_player.HealthPercentage() < _menu.Item("healSelfPercent").GetValue <Slider>().Value)) { return; } if (spell.IsReady()) { spell.Cast(_player); } }
private static void Game_OnGameUpdate(EventArgs args) { CurrentTarget = Utils.GetTarget(GetComboRange()); if (!Enabled) { return; } AOECombo(); if (CurrentTarget.IsValidTarget(GetComboRange())) { ComboLogic(); return; } CurrentTarget = Utils.GetTarget(W.Range * 2); if (Menu.Item("GapCloseEnabled").GetValue <bool>() && CurrentTarget.IsValidTarget(W.Range * 2)) { var canCast = CanCast("W") && W.IsReady(1) && R.IsReady(); var isTargetLow = CurrentTarget.HealthPercentage() <= Menu.Item("TargetHP").GetValue <Slider>().Value; var isPlayerLow = Player.HealthPercentage() < Menu.Item("PlayerHP").GetValue <Slider>().Value; var canDFG = (Items.DFG.HasItem() && Items.DFG.IsReady()) || (Items.BFT.HasItem() && Items.BFT.IsReady()); if (!canCast || !isTargetLow || isPlayerLow || !canDFG) { //Console.WriteLine("return"); return; } var pos = Player.Position.Extend(CurrentTarget.ServerPosition, W.Range + 100); if (W.Cast(pos)) { } } }
static void CastE(Obj_AI_Hero enemy) { if (!E.IsReady() || enemy == null || !enemy.IsValidTarget()) { return; } bool caught = IsPulling().Item1; Obj_AI_Hero CatchedQtarget = IsPulling().Item2; if (!caught && qTimer == 0) { if (Player.Distance(enemy.Position) <= E.Range) { if (Player.HealthPercentage() < 20 && enemy.HealthPercentage() > 20) { Push(enemy); } else { Pull(enemy); } } } }
private static bool IsLow() { return(_player.HealthPercentage() <= _menu.Item("Low").GetValue <Slider>().Value); }
void Game_OnGameUpdate(EventArgs args) { if (player.IsDead) { return; } if (player.HealthPercentage() <= Config.Item("zhonyashp").GetValue <Slider>().Value) { zhonyas.Cast(); } { } var lanemana = Config.Item("laneclearmana").GetValue <Slider>().Value; var harassmana = Config.Item("harassmana").GetValue <Slider>().Value; var laneclear = (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear); var allMinionsW = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, W.Range + W.Width + 30); var allMinionsE = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, E.Range + E.Width); var Wfarmpos = W.GetLineFarmLocation(allMinionsW, W.Width); var Efarmpos = E.GetCircularFarmLocation(allMinionsE, E.Width); if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear && Wfarmpos.MinionsHit >= 3 && Config.Item("laneW").GetValue <bool>() && player.ManaPercentage() >= lanemana) { W.Cast(Wfarmpos.Position); } if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear && Efarmpos.MinionsHit >= 3 && allMinionsE.Count >= 1 && Config.Item("laneE").GetValue <bool>() && player.ManaPercentage() >= lanemana) { E.Cast(Efarmpos.Position); } var mixed = (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed); var htarget = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Magical); if (htarget == null) { return; } if (E.IsReady() && mixed && Config.Item("harassE").GetValue <bool>() && htarget.IsValidTarget(E.Range) && player.ManaPercentage() >= harassmana) { E.CastIfHitchanceEquals(htarget, HitChance.High, true); } if (W.IsReady() && mixed && Config.Item("harassW").GetValue <bool>() && htarget.IsValidTarget(W.Range) && player.ManaPercentage() >= harassmana) { W.CastIfHitchanceEquals(htarget, HitChance.High, true); } //Combo var target = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Magical); if (target == null) { return; } var qtarget = TargetSelector.GetTarget(600, TargetSelector.DamageType.Magical); if (qtarget == null) { return; } var wpred = W.GetPrediction(target); if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo) { if (Q.IsReady() && R.IsReady() && Config.Item("UseQR").GetValue <bool>() && Config.Item("UseQ").GetValue <bool>() && qtarget.IsValidTarget(650) && player.Position.CountEnemiesInRange(650) >= Config.Item("QRcount").GetValue <Slider>().Value) { R.Cast(); Q.Cast(player.Position.Extend(target.Position, +300)); } else { if (Q.IsReady() && Config.Item("UseQ").GetValue <bool>() && qtarget.IsValidTarget(650) && player.Position.CountEnemiesInRange(650) >= 1) { Q.Cast(player.Position.Extend(target.Position, +300)); } } if (E3.IsReady() && R.IsReady() && Config.Item("UseER").GetValue <bool>() && Config.Item("UseR").GetValue <bool>() && target.Position.CountEnemiesInRange(450 - 250) >= Config.Item("ERcount").GetValue <Slider>().Value) { CastER(target); } else { if (E.IsReady() && Config.Item("UseE").GetValue <bool>() && target.IsValidTarget(E.Range)) { E.CastIfHitchanceEquals(target, HitChance.High, true); } if (W.IsReady() && Config.Item("UseWR").GetValue <bool>() && Config.Item("UseR").GetValue <bool>() && R.IsReady() && target.IsValidTarget(W.Range) && wpred.Hitchance >= HitChance.High && CalcDamage(target) > target.Health) { R.Cast(); Utility.DelayAction.Add(1010, () => W.CastIfHitchanceEquals(target, HitChance.High, true)); } else { if (W.IsReady() && Config.Item("UseW").GetValue <bool>() && target.IsValidTarget(W.Range)) { W.CastIfHitchanceEquals(target, HitChance.High, true); } } } } }
public static bool ishealthy() { return(Player.HealthPercentage() > 15); }
public static void Combo() { Obj_AI_Hero target = TargetSelector.GetTarget(Zed.q.Range - 50, TargetSelector.DamageType.Physical); if (Zed.player.Mana >= (MiscHelper.GetEnergyCost(SpellSlot.Q) + MiscHelper.GetEnergyCost(SpellSlot.W) + MiscHelper.GetEnergyCost(SpellSlot.E))) { if (Zed.menuHelper.menu.Item("comboUseR").GetValue <bool>() && Zed.r.IsReady() && target != null && !Zed.rData.isCreated() && MiscHelper.GetComboDamage(target) > (target.Health * 0.8)) { if (750 < (Environment.TickCount - Zed.rData.getTimeCasted())) { Zed.r.Cast(target, true); } Zed.rData.setTimeCasted(Environment.TickCount); } if (Zed.menuHelper.menu.Item("comboUseW").GetValue <bool>() && Zed.w.IsReady() && target != null && !Zed.wData.isCreated()) { if (500 < (Environment.TickCount - Zed.wData.getTimeCasted())) { Zed.w.Cast(new Vector3(target.Position.X, target.Position.Y, target.Position.Z), true); } Zed.wData.setTimeCasted(Environment.TickCount); } } if (Zed.menuHelper.menu.Item("comboUseE").GetValue <bool>() && Zed.e.IsReady() && target != null) { if ((Zed.wData.isCreated() && target.Distance(Zed.wData.getShadow()) < Zed.e.Range) || (Zed.rData.isCreated() && target.Distance(Zed.rData.getShadow()) < Zed.e.Range) || target.Distance(Zed.player) < Zed.e.Range) { Zed.e.Cast(); } } if (Zed.menuHelper.menu.Item("comboUseQ").GetValue <bool>() && Zed.q.IsReady() && target != null) { Zed.q.CastIfHitchanceEquals(target, HitChance.High, true); } if (Zed.menuHelper.menu.Item("comboIgn").GetValue <bool>() && MiscHelper.GetComboDamage(target) > target.Health && target.HealthPercentage() < 30 && target != null) { Zed.player.Spellbook.CastSpell(Zed.ignite, true); } }
public override string ToString() { var time = _recallStart + Duration - Game.Time; if (time <= 0) { time = Game.Time - _lastActionTime; } if (LastStatusType == Packet.S2C.Teleport.Type.Recall) { if (LastStatus == Packet.S2C.Teleport.Status.Start) { return(string.Format("Recall: {0}({1}%) Recalling ({2:0.00})", Hero.ChampionName, (int)Hero.HealthPercentage(), time)); } if (LastStatus == Packet.S2C.Teleport.Status.Finish) { return(string.Format("Recall: {0}({1}%) Recalled ({2:0.00})", Hero.ChampionName, (int)Hero.HealthPercentage(), time)); } if (LastStatus == Packet.S2C.Teleport.Status.Abort) { return(string.Format("Recall: {0}({1}%) Aborted", Hero.ChampionName, (int)Hero.HealthPercentage())); } } if (LastStatusType == Packet.S2C.Teleport.Type.Teleport) { if (LastStatus == Packet.S2C.Teleport.Status.Start) { return(string.Format("Teleport: {0}({1}%) Teleporting ({2:0.00})", Hero.ChampionName, (int)Hero.HealthPercentage(), time)); } if (LastStatus == Packet.S2C.Teleport.Status.Finish) { return(string.Format("Teleport: {0}({1}%) Ported ({2:0.00})", Hero.ChampionName, (int)Hero.HealthPercentage(), time)); } if (LastStatus == Packet.S2C.Teleport.Status.Abort) { return(string.Format("Teleport: {0}({1}%) Aborted", Hero.ChampionName, (int)Hero.HealthPercentage())); } } if (LastStatusType == Packet.S2C.Teleport.Type.Shen || LastStatusType == Packet.S2C.Teleport.Type.TwistedFate) { if (LastStatus == Packet.S2C.Teleport.Status.Start) { return(string.Format("(R): {0}({1}%) Transporting ({2:0.00})", Hero.ChampionName, (int)Hero.HealthPercentage(), time)); } if (LastStatus == Packet.S2C.Teleport.Status.Finish) { return(string.Format("(R): {0}({1}%) Ported ({2:0.00})", Hero.ChampionName, (int)Hero.HealthPercentage(), time)); } if (LastStatus == Packet.S2C.Teleport.Status.Abort) { return(string.Format("(R): {0}({1}%) Aborted", Hero.ChampionName, (int)Hero.HealthPercentage())); } } return(string.Empty); }
private static void UseItems(Obj_AI_Hero tar) { var ownH = GetPerValue(false); if ((Menu.Item("BotrkC").GetValue<bool>() && _orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo) && (Menu.Item("OwnHPercBotrk").GetValue<Slider>().Value <= ownH) && ((Menu.Item("EnHPercBotrk").GetValue<Slider>().Value <= tar.HealthPercentage()))) { UseItem(3153, tar); } if ((Menu.Item("BotrkH").GetValue<bool>() && _orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed) && (Menu.Item("OwnHPercBotrk").GetValue<Slider>().Value <= ownH) && ((Menu.Item("EnHPercBotrk").GetValue<Slider>().Value <= tar.HealthPercentage()))) { UseItem(3153, tar); } if (Menu.Item("YoumuuC").GetValue<bool>() && _orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo) { UseItem(3142); } if (Menu.Item("YoumuuH").GetValue<bool>() && _orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed) { UseItem(3142); } if (Menu.Item("BilgeC").GetValue<bool>() && _orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo) { UseItem(3144, tar); } if (Menu.Item("BilgeH").GetValue<bool>() && _orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed) { UseItem(3144, tar); } }
private static void Obj_AI_Hero_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (sender.IsEnemy && sender.Type == GameObjectType.obj_AI_Minion) { if (GetBool("FW") && W.IsReady() && GetActive("FarmActive") && args.Target.Name == Player.Name && Player.Mana / Player.MaxMana * 100 >= GetSlider("MP")) { if (GrabAlly("HP") == null) { W.Cast(sender, GetBool("UsePacket")); } else { W.CastIfHitchanceEquals(GrabAlly("HP"), HitC, GetBool("UsePacket")); } } } if (GetBool("AutoW") && W.IsReady() && sender.IsEnemy && (sender.Type == GameObjectType.obj_AI_Hero || sender.Type == GameObjectType.obj_AI_Turret)) { if ((args.SData.Name != null && IsOnTheLine(Player.Position, args.Start, args.End)) || (args.Target == Player && Player.Distance(sender) <= 450) || args.Target == Player && Utility.UnderTurret(Player, true)) { if (GrabAlly("HP") == null) { W.Cast(sender, GetBool("UsePacket")); } else { W.CastIfHitchanceEquals(GrabAlly("HP"), HitC, GetBool("UsePacket")); } } } if (sender.IsValid && sender.IsEnemy && args.SData.Name == "YasuoWMovingWall") { WallCastT = Environment.TickCount; YasuoWallCastedPos = sender.ServerPosition.To2D(); } if (!GetBool("Mikeal") && !GetBool("Iron")) { return; } Items.Item Mikael = new Items.Item(3222, 750);; Items.Item Iron = new Items.Item(3190, 600);; if (!Mikael.IsReady() || !Iron.IsReady()) { return; } if (sender.IsValid && sender.IsEnemy) { var allies = GrabAlly("ItemHP"); if (allies != null && args.Target == allies) { if (Utility.CountEnemiesInRange(allies, 1200) > 0 && !Utility.InFountain(allies)) { if (Mikael.IsReady() && Mikael.IsInRange(allies)) { Mikael.Cast(allies); } if (Iron.IsReady() && Iron.IsInRange(allies)) { Iron.Cast(); } } else if (sender.Type == GameObjectType.obj_AI_Turret && Utility.UnderTurret(allies, true)) { if (Mikael.IsReady() && Mikael.IsInRange(allies)) { Mikael.Cast(allies); } if (Iron.IsReady() && Iron.IsInRange(allies)) { Iron.Cast(); } } } else if (allies == null && args.Target == Player && !Utility.InFountain(Player)) { if (Player.HealthPercentage() <= GetSlider("ItemHP") && Utility.CountEnemiesInRange(Player, 1200) > 0) { if (Mikael.IsReady()) { Mikael.Cast(Player); } if (Iron.IsReady()) { Iron.Cast(); } } } } }
private static void CastUlti(Obj_AI_Hero t) { if (!Spells[SpellSlot.R].IsReady()) { return; } var selTar = TargetSelector.SelectedTarget; if (selTar != null && !selTar.IsInvulnerable && Spells[SpellSlot.R].WillHit(selTar, Player.ServerPosition) && Configs.CassioConfig.Item("apollo.cassio.r.seltar").GetValue <bool>()) { Instances.CastR(Player.IsFacing(selTar), selTar.ServerPosition); } else if (!t.IsInvulnerable && Spells[SpellSlot.R].WillHit(t, Player.ServerPosition) && Configs.CassioConfig.Item("apollo.cassio.r.kill").GetValue <bool>()) { if (Damages.ComboDmg(t) > t.Health) { Instances.CastR(Player.IsFacing(t), t.ServerPosition); } } var castPred = Spells[SpellSlot.R].GetPrediction(t, true, Spells[SpellSlot.R].Range); var enemiesHit = ObjectManager.Get <Obj_AI_Hero>() .Where(h => Spells[SpellSlot.R].WillHit(h, castPred.CastPosition) && !h.IsInvulnerable) .ToList(); var enemiesFacing = enemiesHit.Where(h => h.IsFacing(Player)).ToList(); var enemiesNotFacing = enemiesHit.Where(h => !h.IsFacing(Player)).ToList(); var minStun = Configs.CassioConfig.Item("apollo.cassio.r.minhit.stunned").GetValue <Slider>().Value; var minHit = Configs.CassioConfig.Item("apollo.cassio.r.minhit.hit").GetValue <Slider>().Value; switch (Configs.CassioConfig.Item("apollo.cassio.r.minhit.mode").GetValue <StringList>().SelectedIndex) { case 0: { if (enemiesHit.Count() >= minHit) { SpellClass.Spells[SpellSlot.Q].Cast(castPred.CastPosition, PacketCast); } break; } case 1: { if (enemiesFacing.Count() >= minStun && enemiesNotFacing.Count < minStun) { SpellClass.Spells[SpellSlot.Q].Cast(castPred.CastPosition, PacketCast); } else if (enemiesNotFacing.Count >= minStun) { Instances.CastR(false, castPred.CastPosition); } break; } } var saveBool = Configs.CassioConfig.Item("").GetValue <bool>(); //todo menu var saveMinHealth = Configs.CassioConfig.Item("").GetValue <Slider>().Value; var rTar = ObjectManager.Get <Obj_AI_Hero>() .Where(h => Spells[SpellSlot.R].WillHit(h, Player.ServerPosition) && !h.IsInvulnerable) .OrderBy(h => h.Distance(Player)).First(); var rTarcastPred = Spells[SpellSlot.R].GetPrediction(rTar, true, Spells[SpellSlot.R].Range); if (saveBool && Player.HealthPercentage() < saveMinHealth) { Instances.CastR(rTar.IsFacing(Player), rTarcastPred.CastPosition); } }
private static void Game_OnGameInput(GameInputEventArgs args) { if (args.Input.StartsWith("#")) { args.Process = false; if (args.Input.ToLowerInvariant().Contains("print buffs") && !args.Input.ToLowerInvariant().Contains("print buffs nearest")) { print(countbuffs(Player) + " buffs have been found:", "normal"); foreach (var Buff in Player.Buffs) { Game.PrintChat("<font color=\'#1fdb35\'> Buff Name: </font>" + Buff.Name); Game.PrintChat("<font color=\'#1fdb35\'> Buff Display Name: </font>" + Buff.DisplayName); Game.PrintChat("<font color=\'#1fdb35\'> Buff Type: </font>" + Buff.Type); Game.PrintChat("--------------------------"); } } else if (args.Input.ToLowerInvariant().Contains("print buffs nearest")) { print(countbuffs(GetNearestTarget(Game.CursorPos)) + " buffs have been found:", "normal"); foreach (var Buff in GetNearestTarget(Game.CursorPos).Buffs) { Game.PrintChat("<font color=\'#1fdb35\'> Buff Name: </font>" + Buff.Name); Game.PrintChat("<font color=\'#1fdb35\'> Buff Display Name: </font>" + Buff.DisplayName); Game.PrintChat("<font color=\'#1fdb35\'> Buff Type: </font>" + Buff.Type); Game.PrintChat("--------------------------"); } } else if (args.Input.ToLowerInvariant().Contains("champname")) { print("Your champion is named " + Player.ChampionName, "normal"); print("Your champion's base skin is named " + Player.BaseSkinName, "normal"); print("Your champion's current skin name is " + Player.SkinName, "normal"); } else if (args.Input.ToLowerInvariant().Contains("print position") && !args.Input.ToLowerInvariant().Contains("print position cursor")) { print("Your position is: " + Player.Position, "normal"); } else if (args.Input.ToLowerInvariant().Contains("print position cursor")) { print("Your cursor's position is: " + Game.CursorPos, "normal"); } else if (args.Input.ToLowerInvariant().Contains("print petinfo")) { if (Player.Pet != null) { var pet = Player.Pet; print("Pet found! Printing info:", "normal"); Game.PrintChat("Pet name is: " + pet.Name); Game.PrintChat("Pet position is: " + pet.Position); Game.PrintChat("Pet type is: " + pet.Type); Game.PrintChat("Pet return radius: " + Player.PetReturnRadius); Game.PrintChat("Last Pet Spawned ID: " + Player.AI_LastPetSpawnedID); } else { print("Pet not found!", "error"); } } else if (args.Input.ToLowerInvariant().Contains("print iteminfo")) { if (Player.InventoryItems.Count() > 0) { print("Printing items' info:", "normal"); foreach (var Item in Player.InventoryItems) { Game.PrintChat("Item Display Name: " + Item.DisplayName); Game.PrintChat("Item Name: " + Item.Name); Game.PrintChat("Item ID: " + Item.Id); Game.PrintChat("Item Stacks: " + Item.Stacks); Game.PrintChat("--------------------------"); } } else { print("You do not own any items!", "error"); } } else if (args.Input.ToLowerInvariant().Contains("print attacktype")) { if (Player.IsMelee()) { print("Champion is melee!", "normal"); } else if (!Player.IsMelee()) { print("Champion is ranged!", "normal"); } else { print("Unexpected error!", "error"); } } else if (args.Input.ToLowerInvariant().Contains("print largest critstrike")) { if (Player.LargestCriticalStrike != 0) { print("Your largest critical strike is " + Player.LargestCriticalStrike, "normal"); } else { print("You haven't critically striked yet!", "error"); } } else if (args.Input.ToLowerInvariant() == "print my info") { print("Printing info:", "normal"); Game.PrintChat("Armor: " + Player.Armor); Game.PrintChat("Flat Magic Reduction: " + Player.FlatMagicReduction); Game.PrintChat("Gold: " + Player.Gold); Game.PrintChat("Current Gold: " + Player.GoldCurrent); Game.PrintChat("Gold Earned: " + Player.GoldEarned); Game.PrintChat("Has Bot AI: " + Player.HasBotAI); Game.PrintChat("HP: " + Player.Health + "/" + Player.MaxHealth); Game.PrintChat("HP Percentage: " + Player.HealthPercentage()); Game.PrintChat("Mana: " + Player.Mana + "/" + Player.MaxMana); Game.PrintChat("Mana Percentage: " + Player.ManaPercentage()); } else if (args.Input.ToLowerInvariant().Contains("print my info 2")) { Game.PrintChat("HP Regen Rate: " + Player.HPRegenRate); // Game.PrintChat("Is In Fountain: " + Player.InFountain()); Game.PrintChat("Is In Shop: " + Player.InShop()); Game.PrintChat("Is Bot: " + Player.IsBot); Game.PrintChat("Is Player Dead?: " + Player.IsDead); Game.PrintChat("Is Immovable: " + Player.IsImmovable); Game.PrintChat("Is Invulnerable: " + Player.IsInvulnerable); Game.PrintChat("Is Moving: " + Player.IsMoving); Game.PrintChat("Is Pacified: " + Player.IsPacified); Game.PrintChat("Is Recalling: " + Player.IsRecalling()); } else if (args.Input.ToLowerInvariant().Contains("print my info 3")) { Game.PrintChat("Is Rooted: " + Player.IsRooted);// Game.PrintChat("Is Stunned: " + Player.IsStunned); Game.PrintChat("Is Targetable: " + Player.IsTargetable); Game.PrintChat("Is Visible: " + Player.IsVisible); Game.PrintChat("Is Winding Up: " + Player.IsWindingUp); Game.PrintChat("Is Zombie: " + Player.IsZombie); Game.PrintChat("Last Spell Casted: " + Player.LastCastedSpellName()); Game.PrintChat("Last Spell's Target: " + Player.LastCastedSpellTarget()); Game.PrintChat("Last Pause Position: " + Player.LastPausePosition); Game.PrintChat("Level: " + Player.Level); } else if (args.Input.ToLowerInvariant().Contains("print my info 4")) { Game.PrintChat("Level Cap: " + Player.LevelCap);// Game.PrintChat("Lifesteal Immune: " + Player.LifestealImmune); Game.PrintChat("Longest Time Alive: " + Player.LongestTimeSpentLiving); Game.PrintChat("Magic Immune: " + Player.MagicImmune); Game.PrintChat("Network ID: " + Player.NetworkId); Game.PrintChat("Wards Killed: " + Player.WardsKilled); Game.PrintChat("Wards Placed: " + Player.WardsPlaced); } else if (args.Input.ToLowerInvariant().Contains("print game info")) { print("Printing game info:", "normal"); Game.PrintChat("Clock Time: " + Game.ClockTime); Game.PrintChat("ID: " + Game.Id); Game.PrintChat("IP: " + Game.IP); Game.PrintChat("Map ID: " + Game.MapId); Game.PrintChat("Mode: " + Game.Mode); Game.PrintChat("Ping: " + Game.Ping); Game.PrintChat("Time: " + Game.Time); Game.PrintChat("Version: " + Game.Version); } else if (args.Input.ToLowerInvariant().Contains("ping")) { print("Ping: " + Game.Ping, "normal"); } else { print("Command not found!", "error"); } } }
private static void Game_OnGameUpdate(EventArgs args) { /////////////////check afk//////////////////////////// if (Game.Time - pastTime >= 1 && !Player.IsDead && !Player.IsRecalling() && (Game.Time - gamestart > 70)) { pastTime = Game.Time; afktime += 1; Game.PrintChat(afktime.ToString()); if (afktime > 55) // 잠수 55초 경과 { Player.IssueOrder(GameObjectOrder.AttackTo, new Vector3(4910f, 10268f, -71.24f)); follow = null; afktime = 0; } #region 우물 잠수 45초 경과 if (afktime > 45 && spawn.Distance(Player.Position) < 1500) { Game.PrintChat("AFK DETECTED, Change Target"); if (fllowlist.Contains(follow.ChampionName)) { fllowlist.Remove(follow.ChampionName); } follow = null; afktime = 0; } #endregion } ////////////////////////////////////////////////////// //////////////////check player in turret range/////////////////////// //////////////////////////////////////////////////////////////// if (fllowlist.Count == 0) { foreach (var ally in ObjectManager.Get <Obj_AI_Hero>().Where(x => x.IsAlly && !x.IsMe)) { fllowlist.Add(ally.ChampionName); Game.PrintChat("Follow LIST is NULL. ADD ALLY CHAMPIONS"); } } #region 시작아이템 구입 if (!(Items.HasItem(3301) || Items.HasItem(3096) || Items.HasItem(3069))) { Player.BuyItem(JeonItem.GetItemIdbyInt(3301)); Player.BuyItem(JeonItem.GetItemIdbyInt(3340)); Player.BuyItem(JeonItem.GetItemIdbyInt(2003)); Player.BuyItem(JeonItem.GetItemIdbyInt(2003)); Player.BuyItem(JeonItem.GetItemIdbyInt(2003)); } #endregion #region 상점이용가능할때 if (Utility.InShop(Player) || Player.IsDead) { foreach (var item in nextItem.itemIds) { if (!Items.HasItem(Convert.ToInt32(item))) { Player.BuyItem(item); } } checkItemInventory(); } #endregion #region 타겟이 안잡혀있음 - 타겟 설정 부분 if (!stopfollowing) { if (ObjectManager.Get <Obj_AI_Hero>().Any(x => !x.IsMe && fllowlist.Contains(x.ChampionName) && ad.Contains(x.ChampionName))) { follow = ObjectManager.Get <Obj_AI_Hero>().First(x => !x.IsMe && fllowlist.Contains(x.ChampionName) && ad.Contains(x.ChampionName)); } else if (follow == null && ObjectManager.Get <Obj_AI_Hero>().Any(x => !x.IsMe && fllowlist.Contains(x.ChampionName) && ap.Contains(x.ChampionName))) { follow = ObjectManager.Get <Obj_AI_Hero>().First(x => !x.IsMe && fllowlist.Contains(x.ChampionName) && ap.Contains(x.ChampionName)); } else if (follow == null && ObjectManager.Get <Obj_AI_Hero>().Any(x => !x.IsMe && fllowlist.Contains(x.ChampionName) && bruiser.Contains(x.ChampionName))) { follow = ObjectManager.Get <Obj_AI_Hero>().First(x => !x.IsMe && fllowlist.Contains(x.ChampionName) && bruiser.Contains(x.ChampionName)); } else if (follow == null) { follow = ObjectManager.Get <Obj_AI_Hero>().First(x => !x.IsMe && fllowlist.Contains(x.ChampionName)); } } #endregion if (Game.Time - foundturret > 25) // 터렛발견하고 25초 경과 { stopfollowing = false; } #region 타겟이 죽어 있는 경우 (임시) 타겟 체인지 if (follow.IsDead) { Game.PrintChat("Target is dead. Change Targeting"); if (ObjectManager.Get <Obj_AI_Hero>().Any(x => !x.IsMe && x.IsAlly && !x.IsDead && x.Distance(Player.Position) < 1800)) { follow = ObjectManager.Get <Obj_AI_Hero>().First(x => !x.IsMe && x.IsAlly && !x.IsDead && x.Distance(Player.Position) < 1800); } else { follow = ObjectManager.Get <Obj_AI_Hero>().First(x => !x.IsMe && x.IsAlly && !x.IsDead); } } #endregion #region follow가 죽었거나. (타겟과의거리가 5000이상이고. 내가 상점범위에 없고.타겟의 포지션이 상점내)이거나. 플레이어의 체력퍼센트가 설정된것 이하 일경우 if (follow.IsDead || (follow.Distance(Player.Position) > 5000 && !Utility.InShop(Player) && spawn.Distance(follow.Position) < 1500) || Player.HealthPercentage() < menu.Item("hpb").GetValue <Slider>().Value&& !Player.IsDead) { if (Game.Time - foundturret > 20 && !recalling) { Game.PrintChat("WARNNING! MUST RECALL"); var turret2 = ObjectManager.Get <Obj_AI_Turret>() .Where(x => x.IsAlly); if (turret2.Any()) { stopfollowing = true; turret = turret2.OrderBy(x => x.Distance(Player.Position)).First(); foundturret = Game.Time; } } if (stopfollowing && !recalling) { Game.PrintChat("WARNNING! MOVE TURRET"); Player.IssueOrder(GameObjectOrder.MoveTo, turret); if (Player.Distance(turret.Position) <= 350 && Game.Time - count > 15) { Player.Spellbook.CastSpell(SpellSlot.Recall); recalling = true; count = Game.Time; } } } #endregion if ((Game.Time - count > 15)) //터렛이동한지 15초~17초 사이일때 { stopfollowing = false; recalling = false; } if (Player.ChampionName.ToUpper() == "SORAKA") { #region W발동부분 - 아군 if (!recalling && !stopfollowing && W.IsReady()) { var allies2 = ObjectManager.Get <Obj_AI_Hero>() .Where( x => x.IsAlly && x.Health / x.MaxHealth * 100 < menu.Item("allyhpw").GetValue <Slider>().Value&& !x.IsDead && x.Distance(Player.Position) < 550); var objAiHeroes = allies2 as Obj_AI_Hero[] ?? allies2.ToArray(); if (objAiHeroes.Any() && Player.Health / Player.MaxHealth * 100 > menu.Item("wabovehp").GetValue <Slider>().Value) { W.Cast(objAiHeroes.First()); } } #endregion #region R발동 if (menu.Item("user").GetValue <bool>() && R.IsReady()) { var allies = ObjectManager.Get <Obj_AI_Hero>() .Where( x => x.IsAlly && x.Health / x.MaxHealth * 100 < menu.Item("allyhpr").GetValue <Slider>().Value&& !x.IsDead); if (allies.Any()) { if (R.IsReady()) { R.Cast(); } } } #endregion } #region 리콜중도 아니고 따라다니는중일때 if (!recalling && !stopfollowing) { #region 거리가 500이상 5500이하일때 if (follow.Distance(Player.Position) > 300 && follow.Distance(Player.Position) < 5500) { Player.IssueOrder(GameObjectOrder.MoveTo, follow.Position.To2D().Extend(spawn.To2D(), 200).To3D()); afktime = 0; } else // 거리가 안으로 도달했을때 위치설정 { } #endregion #region 타겟과 거리가 5500이상일때 if (follow.Distance(Player.Position) > 5500) { if (spawn.Distance(follow.Position) <= 3000) // 타겟이 기지에 있다 { Random y = new Random(); var turret = ObjectManager.Get <Obj_AI_Turret>().First(x => x.Distance(Player.Position) < 3500 && x.IsAlly); var xPos = ((spawn.X - turret.Position.X) / Vector3.Distance(turret.Position, spawn)) * 300 + turret.Position.X - y.Next(25, 150); var yPos = ((spawn.Y - turret.Position.Y) / Vector3.Distance(turret.Position, spawn)) * 300 + turret.Position.Y - y.Next(25, 150); var vec = new Vector3(xPos, yPos, follow.Position.Z); Player.IssueOrder(GameObjectOrder.MoveTo, vec); afktime = 0; } else // 타겟이 기지 밖에 있다 { Player.IssueOrder(GameObjectOrder.MoveTo, follow.Position.To2D().Extend(spawn.To2D(), 200).To3D()); afktime = 0; } } #endregion #region 타겟이 죽지않았을때 (평상시) if (!follow.IsDead) { if (Player.ChampionName.ToUpper() == "SORAKA") { #region W발동-타겟만 if (W.IsReady() && menu.Item("usew").GetValue <bool>() && Player.Health / Player.MaxHealth * 100 > menu.Item("wabovehp").GetValue <Slider>().Value) { if (follow.Health / follow.MaxHealth * 100 < menu.Item("allyhpw").GetValue <Slider>().Value&& follow.Distance(Player.Position) < 550 && Player.Health / Player.MaxHealth * 100 > menu.Item("wabovehp").GetValue <Slider>().Value) { W.Cast(follow); afktime = 0; } else if (follow.Health / follow.MaxHealth * 100 < menu.Item("allyhpw").GetValue <Slider>().Value&& follow.Distance(Player.Position) > 550) { Player.IssueOrder(GameObjectOrder.MoveTo, follow.Position); afktime = 0; } } #endregion #region 오토Q if (Q.IsReady() && !Utility.UnderTurret(Player, true)) { var target = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical); Q.Cast(target); afktime = 0; } #endregion #region 오토E if (E.IsReady() && !Utility.UnderTurret(Player, true)) { var target = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Magical); E.Cast(target); afktime = 0; } #endregion } else { var qTarget = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical); var wTarget = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Magical); var eTarget = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Magical); var rTarget = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Magical); if (Q.CanCast(qTarget)) { Q.Cast(qTarget); } if (W.CanCast(qTarget)) { W.Cast(qTarget); } if (E.CanCast(qTarget)) { E.Cast(qTarget); } if (R.CanCast(qTarget)) { R.Cast(qTarget); } } } #endregion #region 타겟이 죽었을때 else { Game.PrintChat("Target is dead. Change Targeting"); if (ObjectManager.Get <Obj_AI_Hero>().Any(x => !x.IsMe && x.IsAlly && !x.IsDead && x.Distance(Player.Position) < 1800)) { follow = ObjectManager.Get <Obj_AI_Hero>().First(x => !x.IsMe && x.IsAlly && !x.IsDead && x.Distance(Player.Position) < 1800); } else { follow = ObjectManager.Get <Obj_AI_Hero>().First(x => !x.IsMe && x.IsAlly && !x.IsDead); } } #endregion } #endregion }
private static float GetPerValue(bool mana) { return(mana ? Player.ManaPercentage() : Player.HealthPercentage()); }