private void LastHit() { if (q.UseOnLastHit) { Obj_AI_Base target = MinionManager.GetMinions(q.Range, MinionTypes.All, MinionTeam.Enemy, MinionOrderTypes.MaxHealth) .FirstOrDefault( minion => minion.Distance(player) > Orbwalking.GetRealAutoAttackRange(minion) + 10F && !minion.IsDead && q.GetDamage(minion) / 2 > minion.Health); if (target != null && q.IsKillable(target)) { PredictionOutput predictionOutput = q.GetPrediction(target); q.Cast(predictionOutput.CastPosition); } } if (e.UseOnLastHit) { if (MinionManager.GetMinions(e.Range).Count(minion => e.IsKillable(minion)) >= zedMenu.GetParamSlider("koreanzed.lasthitmenu.useeif")) { e.Cast(); } } }
private void LastHit() { if (actionQueue.ExecuteNextAction(lastHitQueue)) { return; } if (q.UseOnLastHit && q.IsReady() && energy.ReadyToLastHit) { Obj_AI_Base target = MinionManager.GetMinions(q.Range, MinionTypes.All, MinionTeam.Enemy, MinionOrderTypes.MaxHealth) .FirstOrDefault( minion => minion.Distance(player) > Orbwalking.GetRealAutoAttackRange(minion) + 10F && !minion.IsDead && q.GetDamage(minion) / 2 >= HealthPrediction.GetHealthPrediction( minion, (int)(player.Distance(minion) / q.Speed) * 1000, (int)q.Delay * 1000)); if (target != null) { PredictionOutput predictionOutput = q.GetPrediction(target); actionQueue.EnqueueAction(lastHitQueue, () => q.IsReady(), () => q.Cast(predictionOutput.CastPosition), () => !q.IsReady()); //Console.WriteLine("lasthit q 1"); return; } } if (e.UseOnLastHit && e.IsReady() && energy.ReadyToLastHit) { if (MinionManager.GetMinions(e.Range).Count(minion => e.IsKillable(minion)) >= zedMenu.GetParamSlider("koreanzed.lasthitmenu.useeif")) { actionQueue.EnqueueAction(lastHitQueue, () => e.IsReady(), () => e.Cast(), () => !e.IsReady()); //Console.WriteLine("lasthit q 2"); return; } } }
private void Game_OnUpdate(EventArgs args) { if (q.IsReady() && player.Mana > q.ManaCost) { foreach (Obj_AI_Hero objAiHero in player.GetEnemiesInRange(q.Range).Where(hero => !hero.IsDead && !hero.IsZombie && q.IsKillable(hero))) { PredictionOutput predictionOutput = q.GetPrediction(objAiHero); if ((predictionOutput.Hitchance >= HitChance.High) && ((!q.GetCollision(player.Position.To2D(), new List <Vector2> { predictionOutput.CastPosition.To2D() }).Any()) || q.GetDamage(objAiHero) / 2 > objAiHero.Health)) { q.Cast(predictionOutput.CastPosition); //Console.WriteLine("ks q"); } } } if (e.IsReady() && player.Mana > e.ManaCost) { if (player.GetEnemiesInRange(e.Range).Any(hero => !hero.IsDead && !hero.IsZombie && e.IsKillable(hero))) { e.Cast(); //Console.WriteLine("ks e"); } } if (zedOrbwalker.ActiveMode != Orbwalking.OrbwalkingMode.Combo || !zedShadows.CanCast) { return; } List <Obj_AI_Hero> heroList = ObjectManager.Player.GetEnemiesInRange(2000F); if (heroList.Count() == 1) { Obj_AI_Hero target = heroList.FirstOrDefault(); if (target != null && zedShadows.CanCast && player.Distance(target) > Orbwalking.GetRealAutoAttackRange(target) && player.Distance(target) < w.Range + Orbwalking.GetRealAutoAttackRange(target) && player.GetAutoAttackDamage(target) > target.Health && player.Mana > w.ManaCost) { zedShadows.Cast(target.Position); //Console.WriteLine("ks w 1"); zedShadows.Switch(); //Console.WriteLine("ks w 2"); } } }
public float ComboDamage(AIHeroClient target) { float result = q.UseOnCombo && q.IsReady() ? (q.GetCollision(player.Position.To2D(), new List <Vector2>() { target.Position.To2D() }) .Any() ? q.GetDamage(target) / 2 : q.GetDamage(target)) : 0F; result += e.UseOnCombo && e.IsReady() ? e.GetDamage(target) : 0F; result += w.UseOnCombo && w.IsReady() && player.Distance(target) < w.Range + Orbwalking.GetRealAutoAttackRange(target) ? (float)player.GetAutoAttackDamage(target, true) : 0F; float multiplier = 0.3F; if (r.Instance.Level == 2) { multiplier = 0.4F; } else if (r.Instance.Level == 3) { multiplier = 0.5F; } result += r.UseOnCombo && r.IsReady() ? (float) (r.GetDamage(target) + player.GetAutoAttackDamage(target, true) + (q.IsReady() ? q.GetDamage(target) * multiplier : 0F) + (e.IsReady() ? e.GetDamage(target) * multiplier : 0F)) : 0F; return(result); }
private void Game_OnUpdate(System.EventArgs args) { if (targetUnderTurret != null && targetUnderTurret.IsDead) { targetUnderTurret = null; turrent = null; } if (zedOrbwalker.ActiveMode != Orbwalking.OrbwalkingMode.Combo && zedOrbwalker.ActiveMode != Orbwalking.OrbwalkingMode.None && turrent != null && targetUnderTurret != null && !targetUnderTurret.IsDead && targetUnderTurret.IsValid) { if (targetUnderTurret.IsValid) { if (ObjectManager.Player.Distance(targetUnderTurret) < Orbwalking.GetRealAutoAttackRange(targetUnderTurret) + 20F && (targetUnderTurret.Health < (ObjectManager.Player.GetAutoAttackDamage(targetUnderTurret) * 2) + turrent.GetAutoAttackDamage(targetUnderTurret) && targetUnderTurret.Health > turrent.GetAutoAttackDamage(targetUnderTurret) + ObjectManager.Player.GetAutoAttackDamage(targetUnderTurret))) { ObjectManager.Player.IssueOrder(GameObjectOrder.AttackUnit, targetUnderTurret); } if (q.IsReady() && q.CanCast(targetUnderTurret) && ObjectManager.Player.Distance(targetUnderTurret) < Orbwalking.GetRealAutoAttackRange(targetUnderTurret) + 20F && targetUnderTurret.Health < q.GetDamage(targetUnderTurret) + ObjectManager.Player.GetAutoAttackDamage(targetUnderTurret, true)) { q.Cast(targetUnderTurret); return; } if (e.IsReady() && e.CanCast(targetUnderTurret) && !q.IsReady() && ObjectManager.Player.Distance(targetUnderTurret) < Orbwalking.GetRealAutoAttackRange(targetUnderTurret) + 20F && targetUnderTurret.Health < e.GetDamage(targetUnderTurret) + ObjectManager.Player.GetAutoAttackDamage(targetUnderTurret, true)) { e.Cast(targetUnderTurret); } } } }
public float ComboDamage(Obj_AI_Hero target) { float result = q.UseOnCombo && q.IsReady() ? (q.GetCollision(player.Position.To2D(), new List <Vector2>() { target.Position.To2D() }) .Any() ? q.GetDamage(target) / 2 : q.GetDamage(target)) : 0F; result += e.UseOnCombo && e.IsReady() ? e.GetDamage(target) : 0F; result += w.UseOnCombo && w.IsReady() && player.Distance(target) < w.Range + Orbwalking.GetRealAutoAttackRange(target) ? (float)player.GetAutoAttackDamage(target, true) : 0F; result += r.UseOnCombo && r.IsReady() ? (float)(r.GetDamage(target) + player.GetAutoAttackDamage(target, true)) : 0F; return(result); }