static void Combo() { if (AIO_Menu.Champion.Combo.UseQ && Q.IsReady()) { var Qtarget = TargetSelector.GetTarget(Q.Range, Q.DamageType); if (Qtarget.Distance(Player.ServerPosition) > Orbwalking.GetRealAutoAttackRange(Player) + 50 && Qtarget != null) { Q.Cast(Qtarget); } } if (AIO_Menu.Champion.Combo.UseE && E.IsReady()) { var Etarget = TargetSelector.GetTarget(E.Range, E.DamageType); if (AIO_Func.isKillable(Etarget, getComboDamage(Etarget) * 1.5f)) { AIO_Func.CCast(E, Etarget); } } if (AIO_Menu.Champion.Combo.UseR && R.IsReady()) { var Rtarget = TargetSelector.GetTarget(W.Range, W.DamageType); if (AIO_Func.getHealthPercent(Player) < 60 || Rtarget.Distance(Player.ServerPosition) < 600) { R.Cast(); } } }
static void Combo() { if (AIO_Menu.Champion.Combo.UseE && E.IsReady()) { var qTarget = TargetSelector.GetTarget(Q.Range, Q.DamageType, true); if (qTarget != null) { E.Cast(); } } if (AIO_Menu.Champion.Combo.UseQ && Q.IsReady()) { var qTarget = TargetSelector.GetTarget(Q.Range, Q.DamageType, true); if (qTarget != null) { Q.Cast(qTarget); } } if (AIO_Menu.Champion.Combo.UseR && R.IsReady()) { var rTarget = TargetSelector.GetTarget(Q.Range, R.DamageType, true); if (rTarget != null && AIO_Func.getHealthPercent(rTarget) <= 45) { R.Cast(rTarget.Position); } } }
static void Obj_AI_Hero_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { var Sender = (Obj_AI_Base)sender; var STarget = (Obj_AI_Hero)args.Target; if (!sender.IsMe || Player.IsDead) // 갈리오 W 로직 미완성 { return; } if (args.Target.IsMe && !sender.IsAlly && W.IsReady() && AIO_Func.getHealthPercent(Player) < 80 && //args.Target.IsMe && AIO_Menu.Champion.Misc.getBoolValue("R Myself Only") Player.Distance(args.End) < 150 && AIO_Menu.Champion.Combo.UseW) { W.Cast(Player); } if (!sender.IsAlly && W.IsReady() && AIO_Func.getHealthPercent(Player) < 80 && Player.Distance(args.End) < 150 && Sender.Distance(Player.ServerPosition) <= 1000f && AIO_Menu.Champion.Combo.UseW) { W.Cast(Player); } if (!sender.IsAlly && W.IsReady() && AIO_Func.getHealthPercent(Player) < 80 && Sender.Distance(Player.ServerPosition) <= 700f && AIO_Menu.Champion.Combo.UseW) { W.Cast(Player); } }
static void Combo() { if (AIO_Menu.Champion.Combo.UseQ && Q.IsReady()) { var Qtarget = TargetSelector.GetTarget(Q.Range, Q.DamageType); AIO_Func.CCast(Q, Qtarget); } if (AIO_Menu.Champion.Combo.UseE && E.IsReady()) { var Etarget = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Magical); AIO_Func.LCast(E, Etarget, ED, float.MaxValue); } if (AIO_Menu.Champion.Combo.UseW && W.IsReady() && (Q.IsReady() || E.IsReady())) { var Wtarget = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Magical); AIO_Func.CCast(W, Wtarget); } if (AIO_Menu.Champion.Combo.UseR && R.IsReady()) { var Rtarget = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Magical); var rt = Menu.Item("Combo.Rt").GetValue <Slider>().Value; if (AIO_Func.getHealthPercent(Player) < 50 && AIO_Func.isKillable(Rtarget, getComboDamage(Rtarget) * 2 / 3) || AIO_Func.ECTarget(Rtarget, R.Width, 0, 100) >= rt) { AIO_Func.CCast(R, Rtarget); } } }
static void Combo() { if (AIO_Menu.Champion.Combo.UseQ && Q.IsReady()) { var qTarget = TargetSelector.GetTargetNoCollision(Q); if (qTarget.IsValidTarget(Q.Range)) { Q.Cast(qTarget); } } if (AIO_Menu.Champion.Combo.UseW && W.IsReady()) { W.CastOnBestTarget(); } if (AIO_Menu.Champion.Combo.UseE && E.IsReady()) { E.CastOnBestTarget(); } if (AIO_Menu.Champion.Combo.UseR && R.IsReady()) { if (!Q.IsReady() && !E.IsReady() && AIO_Func.getHealthPercent(Player) <= 98 && Player.CountEnemiesInRange(Q.Range) >= 1) { R.Cast(); } } }
static void AutoR() { if (AIO_Func.getHealthPercent(Player) < 20 && R.IsReady()) { R.Cast(); } }
public static List<Obj_AI_Hero> GetLhEnemiesNearPosition(Vector3 position, float range) // cradits to Asuna & ijabba { return HeroManager.Enemies.Where( hero => hero.IsValidTarget(range, true, position) && AIO_Func.getHealthPercent(hero) <= 15).ToList(); }
static void Combo() { if (AIO_Menu.Champion.Combo.UseR && R.IsReady()) { if (AIO_Func.getHealthPercent(Player) < 40 && AIO_Func.EnemyCount(700f) > 0) { R.Cast(Player); } } }
static void AutoR() { if (HeroManager.Allies.Where(x => AIO_Func.getHealthPercent(x) < 40 && AIO_Func.ECTarget(x, 1000f) > 0).Count() > 1 || AIO_Func.getHealthPercent(Player) < 40 && AIO_Func.ECTarget(Player, 1000f) > 0) { if (R.IsReady()) { R.Cast(); } } }
static void WWW() { if (Player.HasBuff("attroxwlife") && AIO_Func.getHealthPercent(Player) > 50) { W.Cast(); } if (Player.HasBuff("aatroxwpower") && AIO_Func.getHealthPercent(Player) < 50) { W.Cast(); } }
static void AntiGapcloser_OnEnemyGapcloser(ActiveGapcloser gapcloser) { if (!AIO_Menu.Champion.Misc.UseAntiGapcloser || Player.IsDead) { return; } if (AIO_Func.getHealthPercent(Player) <= 50 && R.IsReady() && Player.Distance(gapcloser.Sender.Position) <= R.Range) { R.Cast(); } }
static void Combo() { if (AIO_Menu.Champion.Combo.UseQ && Q.IsReady()) QSwitchForUnit(TargetSelector.GetTarget(GetQActiveRange + 30, Q.DamageType)); if (AIO_Menu.Champion.Combo.UseW && W.IsReady()) { var Wtarget = TargetSelector.GetTarget(W.Range, W.DamageType); if (Wtarget != null && !Wtarget.IsValidTarget(200f)) W.Cast(Wtarget); } if (AIO_Menu.Champion.Combo.UseE && E.IsReady()) { var Etarget = E_GetBestTarget(); if (Etarget != null) E.Cast(Etarget,false,true); } if (AIO_Menu.Champion.Combo.UseR && R.IsReady() && WLastCastedTime + 0.5 < Game.ClockTime) { if(AIO_Func.getHealthPercent(Player) > 20) { foreach (var RT in HeroManager.Enemies.Where(x => x.IsValidTarget(R.Range) && !x.IsValidTarget(DefaultRange) && !Player.HasBuffOfType(BuffType.SpellShield) && !Player.HasBuffOfType(BuffType.Invulnerability) && Utility.GetAlliesInRange(x, 500).Where(ally => !ally.IsMe && ally.IsAlly).Count() <= 1)) {//이전 식대로는 징크스가 절대 궁을 안써서 식을 좀 바꿈. AIO_Func.PredHealth(RT,R); if (RT != null && AIO_Func.PredHealth(RT,R) + RT.HPRegenRate <= (Player.Distance(RT.ServerPosition) < 1500 ? R.GetDamage2(RT,4) : R.GetDamage2(RT,1)) && !AIO_Func.CollisionCheck(Player, RT, R.Width)) AIO_Func.LCast(R,RT,50f,0f,true); //R 최대 데미지는 1500범위에서. 그리고 공식 커먼의 징크스 궁 데미지 계산이 잘못되었으니 올인원 자체 데미지 계산사용. } } else //현재 체력이 20퍼 미만일 경우 평타 사거리 내에도 궁을 쓰도록. { foreach (var RT in HeroManager.Enemies.Where(x => x.IsValidTarget(R.Range) && !Player.HasBuffOfType(BuffType.SpellShield) && !Player.HasBuffOfType(BuffType.Invulnerability) && Utility.GetAlliesInRange(x, 500).Where(ally => !ally.IsMe && ally.IsAlly).Count() <= 1)) {//이전 식대로는 징크스가 절대 궁을 안써서 식을 좀 바꿈. AIO_Func.PredHealth(RT,R); if (RT != null && AIO_Func.PredHealth(RT,R) + RT.HPRegenRate <= (Player.Distance(RT.ServerPosition) < 1500 ? R.GetDamage2(RT,4) : R.GetDamage2(RT,1)) && !AIO_Func.CollisionCheck(Player, RT, R.Width)) AIO_Func.LCast(R,RT,50f,0f,true); //R 최대 데미지는 1500범위에서. 그리고 공식 커먼의 징크스 궁 데미지 계산이 잘못되었으니 올인원 자체 데미지 계산사용. } } } }
static void Combo() { if (AIO_Menu.Champion.Combo.UseW && W.IsReady()) { var Wtarget = TargetSelector.GetTarget(W.Range, W.DamageType); W.Cast(Wtarget); } if (AIO_Menu.Champion.Combo.UseE && E.IsReady()) { var Etarget = TargetSelector.GetTarget(E.Range, E.DamageType); AIO_Func.CCast(E, Etarget); } if (AIO_Menu.Champion.Combo.UseR && R.IsReady()) { if (AIO_Func.getHealthPercent(Player) < 30) { R.Cast(); } } }
static void Game_OnUpdate(EventArgs args) { if (Player.IsDead) { return; } if (Orbwalking.CanMove(35)) { AIO_Func.SC(Q); if (Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.Combo) { AIO_Func.SC(W); } else if (AIO_Menu.Champion.Combo.UseW && W.IsReady()) { foreach (var target in HeroManager.Enemies.OrderByDescending(x => x.Health)) { if (target != null && W.CanCast(target) && (target.Distance(Player.ServerPosition) > 400 || AIO_Func.getHealthPercent(Player) < 50 && Player.HasBuff("pantheonpassiveshield"))) { W.Cast(target); } } } if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo && (AIO_Menu.Champion.Combo.UseQ && !Q.IsReady() || !AIO_Menu.Champion.Combo.UseQ) || Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed && (AIO_Menu.Champion.Harass.UseQ && !Q.IsReady() || !AIO_Menu.Champion.Harass.UseQ) || Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear && (AIO_Menu.Champion.Jungleclear.UseQ && !Q.IsReady() || !AIO_Menu.Champion.Jungleclear.UseQ) && (AIO_Menu.Champion.Jungleclear.UseW && !W.IsReady() || !AIO_Menu.Champion.Jungleclear.UseW)) { AIO_Func.SC(E); } } #region Killsteal if (AIO_Menu.Champion.Misc.getBoolValue("KillstealQ")) { KillstealQ(); } #endregion }
static void Obj_AI_Hero_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (sender.IsMe && args.SData.Name == E.Instance.Name) { Utility.DelayAction.Add(250, Orbwalking.ResetAutoAttackTimer2); } if (Menu.Item("soulboundsaver", true).GetValue <bool>() && sender.Type == GameObjectType.obj_AI_Hero && sender.IsEnemy && R.IsReady()) { var soulbound = HeroManager.Allies.FirstOrDefault(hero => hero.HasBuff("kalistacoopstrikeally", true) && args.Target.NetworkId == hero.NetworkId && AIO_Func.getHealthPercent(hero) <= 20); if (soulbound != null) { R.Cast(); } } }
static void Combo() { if (AIO_Menu.Champion.Combo.UseW && W.IsReady()) { var Wtarget = TargetSelector.GetTarget(W.Range, W.DamageType); AIO_Func.CCast(W, Wtarget); } if (AIO_Menu.Champion.Combo.UseE && E.IsReady()) { var Etarget = TargetSelector.GetTarget(E.Range, E.DamageType); AIO_Func.CCast(E, Etarget); } if (AIO_Menu.Champion.Combo.UseR && R.IsReady()) { var Rtarget = TargetSelector.GetTarget(R.Range, R.DamageType); if (AIO_Func.isKillable(Rtarget, R.GetDamage2(Rtarget) - Rtarget.HPRegenRate) || AIO_Func.getHealthPercent(Player) < 50) { R.Cast(Rtarget); } } }
internal static float pastTime = 0; //버프 체크시 랙 덜걸리도록.. internal static void Game_OnUpdate(EventArgs args) { if (Player.IsDead) { return; } if (!Player.IsRecalling() && !Player.InFountain()) { if (Menu.Item("AutoPotion.Use Health Potion").GetValue <bool>()) { if (AIO_Func.getHealthPercent(Player) <= Menu.Item("AutoPotion.ifHealthPercent").GetValue <Slider>().Value) { var healthSlot = GetPotionSlot(PotionType.Health); if (!IsBuffActive(PotionType.Health) && healthSlot != null) { Player.Spellbook.CastSpell(healthSlot.SpellSlot); } } } if (Menu.Item("AutoPotion.Use Mana Potion").GetValue <bool>()) { if (AIO_Func.getManaPercent(Player) <= Menu.Item("AutoPotion.ifManaPercent").GetValue <Slider>().Value) { var manaSlot = GetPotionSlot(PotionType.Mana); if (!IsBuffActive(PotionType.Mana) && manaSlot != null) { Player.Spellbook.CastSpell(manaSlot.SpellSlot); } } } } if (Menu.Item("Misc.BF").GetValue <bool>() && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo) // 개발 편의를 위해 추가한 버프 체크기. { if (Environment.TickCount - pastTime > 500) //랙 줄이려고 추가함 { pastTime = Environment.TickCount; } if (Environment.TickCount - pastTime > 499) { var Target = TargetSelector.GetTarget(1000, TargetSelector.DamageType.Physical); if (Target == null) { foreach (var buff in Player.Buffs) { AIO_Func.sendDebugMsg("PLAYER : " + buff.Name); } } else { foreach (var buff in Player.Buffs) { AIO_Func.sendDebugMsg("PLAYER : " + buff.Name); } foreach (var buff in Target.Buffs) { AIO_Func.sendDebugMsg("TARGET : " + buff.Name); } } } } #region RS if (Menu.Item("OnAttack.RS").GetValue <bool>()) { OnAttack.setRSmiteSlot(); //Red Smite } #endregion #region BS if (Menu.Item("Killsteal.BS").GetValue <bool>()) { Killsteal.setBSmiteSlot(); var ts = ObjectManager.Get <Obj_AI_Hero>().Where(f => !f.IsAlly && !f.IsDead && Player.Distance(f, false) <= Killsteal.smrange); if (ts == null) { return; } float dmg = Killsteal.BSDamage(); foreach (var t in ts) { if (AIO_Func.isKillable(t, dmg)) { if (Killsteal.smiteSlot.IsReady() && Killsteal.BS.Slot == Killsteal.smiteSlot) { Player.Spellbook.CastSpell(Killsteal.smiteSlot, t); } else { return; } } } } #endregion #region AA if (AIO_Func.AfterAttack() && AfterAttack.AIO) { var target = TargetSelector.GetTarget(Orbwalking.GetRealAutoAttackRange(Player) + 50, TargetSelector.DamageType.Physical, true); var itemone = AfterAttack.itemsList.FirstOrDefault(x => Items.CanUseItem((int)x.Id) && target.IsValidTarget(x.Range) && Menu.Item("AfterAttack.Use " + x.Id.ToString()).GetValue <bool>()); if (Menu.Item("Misc.Cb").GetValue <bool>() && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo || Menu.Item("Misc.Hr").GetValue <bool>() && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed) { if (Menu.Item("AfterAttack.SF").GetValue <bool>()) { if (AfterAttack.SkillCasted) { if (itemone.isTargeted) { Items.UseItem(itemone.Id, (Obj_AI_Hero)target); } else { Items.UseItem(itemone.Id); } } } else { if (itemone.isTargeted) { Items.UseItem(itemone.Id, (Obj_AI_Hero)target); } else { Items.UseItem(itemone.Id); } } } } #endregion }
static void Combo() { if (AIO_Menu.Champion.Combo.UseQ && Q.IsReady()) { var QD = Menu.Item("ComboQD", true).GetValue <Slider>().Value; var qTarget = TargetSelector.GetTarget(Q.Range, Q.DamageType, true); if (qTarget.Distance(Player.Position) > QD) { Q.Cast(qTarget); } } if (AIO_Menu.Champion.Combo.UseE && E.IsReady()) { var eTarget = TargetSelector.GetTarget(E.Range, E.DamageType, true); if (eTarget != null && !Player.IsDashing()) { E.Cast(eTarget); } } if (AIO_Menu.Champion.Combo.UseR && R.IsReady() && (AIO_Func.EnemyCount(1000, 10, 100) >= 2 || AIO_Func.EnemyCount(1000, 10, 100) == 1 && AIO_Func.getHealthPercent(Player) < 50)) { R.Cast(); } }