static void AntiGapcloser_OnEnemyGapcloser(ActiveGapcloser gapcloser) { var packetCast = Config.Item("PacketCast").GetValue <bool>(); var BarrierGapCloser = Config.Item("BarrierGapCloser").GetValue <bool>(); var BarrierGapCloserMinHealth = Config.Item("BarrierGapCloserMinHealth").GetValue <Slider>().Value; var EGapCloser = Config.Item("EGapCloser").GetValue <bool>(); if (BarrierGapCloser && gapcloser.Sender.IsValidTarget(Player.AttackRange) && Player.GetHealthPerc() < BarrierGapCloserMinHealth) { if (BarrierManager.Cast()) { Game.PrintChat(string.Format("OnEnemyGapcloser -> BarrierGapCloser on {0} !", gapcloser.Sender.SkinName)); } } if (EGapCloser && E.IsReady()) { if (R.IsReady()) { R.Cast(); } E.Cast(); } }
static void Interrupter_OnPossibleToInterrupt(Obj_AI_Base unit, InterruptableSpell spell) { var packetCast = Config.Item("PacketCast").GetValue <bool>(); var RInterrupetSpell = Config.Item("RInterrupetSpell").GetValue <bool>(); var RAntiGapcloserMinHealth = Config.Item("RAntiGapcloserMinHealth").GetValue <Slider>().Value; if (RInterrupetSpell && Player.GetHealthPerc() < RAntiGapcloserMinHealth && unit.IsValidTarget(R.Range) && spell.DangerLevel == InterruptableDangerLevel.High) { if (R.CastIfHitchanceEquals(unit, unit.IsMoving ? HitChance.High : HitChance.Medium, packetCast)) { Game.PrintChat(string.Format("OnPosibleToInterrupt -> RInterrupetSpell on {0} !", unit.SkinName)); } } }
static void AntiGapcloser_OnEnemyGapcloser(ActiveGapcloser gapcloser) { if (mustDebug) { Game.PrintChat(string.Format("OnEnemyGapcloser -> {0}", gapcloser.Sender.SkinName)); } var packetCast = Config.Item("PacketCast").GetValue <bool>(); var BarrierGapCloser = Config.Item("BarrierGapCloser").GetValue <bool>(); var BarrierGapCloserMinHealth = Config.Item("BarrierGapCloserMinHealth").GetValue <Slider>().Value; //var QGapCloser = Config.Item("QGapCloser").GetValue<bool>(); if (BarrierGapCloser && Player.GetHealthPerc() < BarrierGapCloserMinHealth && gapcloser.Sender.IsValidTarget(Player.AttackRange)) { if (BarrierManager.Cast()) { Game.PrintChat(string.Format("OnEnemyGapcloser -> BarrierGapCloser on {0} !", gapcloser.Sender.SkinName)); } } //if (QGapCloser && Q.IsReady()) //{ // if (mustDebug) // Game.PrintChat(string.Format("OnEnemyGapcloser -> UseQ")); // if (packetCast) // Packet.C2S.Cast.Encoded(new Packet.C2S.Cast.Struct(Player.NetworkId, SpellSlot.Q)).Send(); // else // Q.Cast(); //} }
static void AntiGapcloser_OnEnemyGapcloser(ActiveGapcloser gapcloser) { if (mustDebug) { Game.PrintChat(string.Format("OnEnemyGapcloser -> {0}", gapcloser.Sender.SkinName)); } var packetCast = Config.Item("PacketCast").GetValue <bool>(); var BarrierGapCloser = Config.Item("BarrierGapCloser").GetValue <bool>(); var BarrierGapCloserMinHealth = Config.Item("BarrierGapCloserMinHealth").GetValue <Slider>().Value; var EGapCloser = Config.Item("EGapCloser").GetValue <bool>(); if (BarrierGapCloser && Player.GetHealthPerc() < BarrierGapCloserMinHealth && gapcloser.Sender.IsValidTarget(Player.AttackRange)) { if (BarrierManager.Cast()) { Game.PrintChat(string.Format("OnEnemyGapcloser -> BarrierGapCloser on {0} !", gapcloser.Sender.SkinName)); } } if (EGapCloser && E.IsReady() && gapcloser.Sender.IsValidTarget(E.Range)) { E.CastIfHitchanceEquals(gapcloser.Sender, gapcloser.Sender.IsMoving ? HitChance.High : HitChance.Medium, packetCast); } }
public static void UltimateHandler() { var UseRAlly = Config.Item("UseRAlly").GetValue <bool>(); var UseRAllyMinHealth = Config.Item("UseRAllyMinHealth").GetValue <Slider>().Value; var packetCast = Config.Item("PacketCast").GetValue <bool>(); if (UseRAlly && R.IsReady()) { if (Player.GetHealthPerc() < UseRAllyMinHealth && DevHelper.CountEnemyInPositionRange(Player.ServerPosition, 500) > 0) { R.CastOnUnit(Player, packetCast); return; } var AllyList = DevHelper.GetAllyList().Where(x => Player.Distance(x.ServerPosition) < R.Range && x.GetHealthPerc() < UseRAllyMinHealth && DevHelper.CountEnemyInPositionRange(x.ServerPosition, 500) > 0); if (AllyList.Any()) { var ally = AllyList.First(); R.CastOnUnit(ally, packetCast); } } }
public static void Combo() { var eTarget = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Magical); if (eTarget == null) { return; } var useQ = Config.Item("UseQCombo").GetValue <bool>(); var useW = Config.Item("UseWCombo").GetValue <bool>(); var useE = Config.Item("UseECombo").GetValue <bool>(); var useR = Config.Item("UseRCombo").GetValue <bool>(); var useIgnite = Config.Item("UseIgnite").GetValue <bool>(); var packetCast = Config.Item("PacketCast").GetValue <bool>(); var RMinHit = Config.Item("RMinHit").GetValue <Slider>().Value; var RMinHitFacing = Config.Item("RMinHitFacing").GetValue <Slider>().Value; var UseRSaveYourself = Config.Item("UseRSaveYourself").GetValue <bool>(); var UseRSaveYourselfMinHealth = Config.Item("UseRSaveYourselfMinHealth").GetValue <Slider>().Value; if (eTarget.IsValidTarget(R.Range) && R.IsReady() && UseRSaveYourself) { if (Player.GetHealthPerc() < UseRSaveYourselfMinHealth && eTarget.IsFacing(Player) && !eTarget.IsInvulnerable) { R.Cast(eTarget, packetCast, true); if (dtLastSaveYourself + 3000 < Environment.TickCount) { Game.PrintChat("Save Yourself!"); dtLastSaveYourself = Environment.TickCount; } } } if (eTarget.IsValidTarget(R.Range) && R.IsReady() && useR) { var castPred = R.GetPrediction(eTarget, true, R.Range); var enemiesHit = DevHelper.GetEnemyList().Where(x => R.WillHit(x, castPred.CastPosition) && !x.IsInvulnerable).ToList(); var enemiesFacing = enemiesHit.Where(x => x.IsFacing(Player)).ToList(); if (mustDebug) { Game.PrintChat("Hit:{0} Facing:{1}", enemiesHit.Count(), enemiesFacing.Count()); } if (enemiesHit.Count() >= RMinHit && enemiesFacing.Count() >= RMinHitFacing) { R.Cast(castPred.CastPosition, packetCast); } } if (E.IsReady() && useE) { var eTargetCastE = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Magical); if (eTargetCastE.HasBuffOfType(BuffType.Poison)) { // keep priority target } else { var query = DevHelper.GetEnemyList().Where(x => x.IsValidTarget(E.Range) && x.HasBuffOfType(BuffType.Poison)); if (query.Any()) { eTargetCastE = query.First(); } } if (eTargetCastE != null) { var buffEndTime = GetPoisonBuffEndTime(eTargetCastE); if (buffEndTime > (Game.Time + E.Delay) || Player.GetSpellDamage(eTargetCastE, SpellSlot.E) > eTargetCastE.Health * 0.9) { CastE(eTarget); if (Player.GetSpellDamage(eTargetCastE, SpellSlot.E) > eTargetCastE.Health * 0.9) { return; } } } } if (eTarget.IsValidTarget(Q.Range) && Q.IsReady() && useQ) { if (Q.Cast(eTarget, packetCast, true) == Spell.CastStates.SuccessfullyCasted) { dtLastQCast = Environment.TickCount; } } if (W.IsReady() && useW) { W.CastIfHitchanceEquals(eTarget, HitChance.High, packetCast); } if (useW) { useW = (!eTarget.HasBuffOfType(BuffType.Poison) || (!eTarget.IsValidTarget(Q.Range) && eTarget.IsValidTarget(W.Range + (W.Width / 2)))); } if (W.IsReady() && useW && Environment.TickCount > dtLastQCast + Q.Delay * 1000) { W.CastIfHitchanceEquals(eTarget, eTarget.IsMoving ? HitChance.High : HitChance.Medium, packetCast); } double igniteDamage = summonerSpellManager.GetIgniteDamage(eTarget) + (Player.GetSpellDamage(eTarget, SpellSlot.E) * 2); if (eTarget.Health < igniteDamage && E.Level > 0 && eTarget.IsValidTarget(600) && eTarget.HasBuffOfType(BuffType.Poison)) { summonerSpellManager.CastIgnite(eTarget); } }
public static void Combo() { var eTarget = SimpleTs.GetTarget(W.Range, SimpleTs.DamageType.Magical); if (eTarget == null) { return; } var useQ = Config.Item("UseQCombo").GetValue <bool>(); var useW = Config.Item("UseWCombo").GetValue <bool>(); var useE = Config.Item("UseECombo").GetValue <bool>(); var useR = Config.Item("UseRCombo").GetValue <bool>(); var useIgnite = Config.Item("UseIgnite").GetValue <bool>(); var packetCast = Config.Item("PacketCast").GetValue <bool>(); var RMinHit = Config.Item("RMinHit").GetValue <Slider>().Value; var RMinHitFacing = Config.Item("RMinHitFacing").GetValue <Slider>().Value; var UseRSaveYourself = Config.Item("UseRSaveYourself").GetValue <bool>(); var UseRSaveYourselfMinHealth = Config.Item("UseRSaveYourselfMinHealth").GetValue <Slider>().Value; if (eTarget.IsValidTarget(R.Range) && R.IsReady() && UseRSaveYourself) { if (Player.GetHealthPerc() < UseRSaveYourselfMinHealth && eTarget.IsFacing(Player)) { R.Cast(eTarget.ServerPosition, packetCast); if (dtLastSaveYourself.AddSeconds(3) < DateTime.Now) { Game.PrintChat("Save Yourself!"); dtLastSaveYourself = DateTime.Now; } } } if (eTarget.IsValidTarget(R.Range) && R.IsReady() && useR) { var castPred = R.GetPrediction(eTarget, true, R.Range); var enemiesHit = DevHelper.GetEnemyList().Where(x => R.WillHit(x, castPred.CastPosition)).ToList(); var enemiesFacing = enemiesHit.Where(x => x.IsFacing(Player)).ToList(); if (mustDebug) { Game.PrintChat("Hit:{0} Facing:{1}", enemiesHit.Count(), enemiesFacing.Count()); } if (enemiesHit.Count() >= RMinHit && enemiesFacing.Count() >= RMinHitFacing) { R.Cast(castPred.CastPosition, packetCast); } } if (eTarget.IsValidTarget(E.Range) && E.IsReady() && useE) { var buffEndTime = GetPoisonBuffEndTime(eTarget); if ((eTarget.HasBuffOfType(BuffType.Poison) && buffEndTime > (Game.Time + E.Delay)) || Player.GetSpellDamage(eTarget, SpellSlot.E) > eTarget.Health) { CastE(eTarget); } } if (eTarget.IsValidTarget(Q.Range) && Q.IsReady() && useQ) { if (Q.CastIfHitchanceEquals(eTarget, eTarget.IsMoving ? HitChance.High : HitChance.Medium, packetCast)) { dtLastQCast = DateTime.Now; } } if (W.IsReady() && useW) { var predic = W.GetPrediction(eTarget, true); if (predic.Hitchance >= HitChance.Medium && predic.AoeTargetsHitCount > 1) { W.Cast(predic.CastPosition, packetCast); } } if (useW) { useW = (!eTarget.HasBuffOfType(BuffType.Poison) || (!eTarget.IsValidTarget(Q.Range) && eTarget.IsValidTarget(W.Range + (W.Width / 2)))); } if (W.IsReady() && useW && DateTime.Now > dtLastQCast.AddMilliseconds(Q.Delay * 1000)) { W.CastIfHitchanceEquals(eTarget, eTarget.IsMoving ? HitChance.High : HitChance.Medium, packetCast); } double igniteDamage = summonerSpellManager.GetIgniteDamage(eTarget) + (Player.GetSpellDamage(eTarget, SpellSlot.E) * 2); if (eTarget.Health < igniteDamage && E.Level > 0 && eTarget.IsValidTarget(600) && eTarget.HasBuffOfType(BuffType.Poison)) { summonerSpellManager.CastIgnite(eTarget); } }