private static void Farm() { if (!Orbwalking.CanMove(40)) { return; } var allMinions = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, Q.Range); var useQ = Config.Item("UseQFarm").GetValue <bool>(); var useW = Config.Item("UseWFarm").GetValue <bool>(); if (useQ && Q.IsReady()) { foreach (var minion in allMinions.Where(minion => minion.IsValidTarget() && HealthPrediction.GetHealthPrediction(minion, (int)(ObjectManager.Player.Distance(minion) * 1000 / 1400)) < 0.75 * DamageLib.getDmg(minion, DamageLib.SpellType.Q, DamageLib.StageType.FirstDamage))) { if (Vector3.Distance(minion.ServerPosition, ObjectManager.Player.ServerPosition) > Orbwalking.GetRealAutoAttackRange(ObjectManager.Player)) { Q.CastOnUnit(minion, Config.Item("QNFE").GetValue <bool>()); return; } } } else if (useW && W.IsReady()) { if (!allMinions.Any(minion => minion.IsValidTarget(W.Range) && minion.Health < 0.75 * DamageLib.getDmg(minion, DamageLib.SpellType.W))) { return; } W.Cast(); return; } }
private static bool IsKillable(Obj_AI_Base target, IEnumerable <Tuple <DamageLib.SpellType, DamageLib.StageType> > spellCombo, bool calculatePassive = true) { bool spellIncluded = false; double damage = 0; foreach (var spell in spellCombo) { if (spell.Item1 == DamageLib.SpellType.Q || spell.Item1 == DamageLib.SpellType.W || spell.Item1 == DamageLib.SpellType.E || spell.Item1 == DamageLib.SpellType.R) { var spellType = (SpellSlot)spell.Item1; if (player.Spellbook.CanUseSpell(spellType) == SpellState.Ready) { damage += DamageLib.getDmg(target, spell.Item1, spellType == SpellSlot.W ? (IsAblazed(target) ? DamageLib.StageType.FirstDamage : DamageLib.StageType.Default) : spell.Item2); spellIncluded = true; } } else if (spell.Item1 == DamageLib.SpellType.IGNITE) { if (hasIgnite && player.Spellbook.GetSpell(player.GetSpellSlot("SummonerDot")).State == SpellState.Ready) { damage += DamageLib.getDmg(target, DamageLib.SpellType.IGNITE); } } } return(damage + (spellIncluded && calculatePassive ? target.MaxHealth * 0.08 : 0) > target.Health); }
private void R_Check() { if (!Program.Menu.Item("useR_KS").GetValue <KeyBind>().Active) { return; } if (!R.IsReady() && !IsShooting()) { return; } if (Utility.CountEnemysInRange(Program.Menu.Item("useR_safe").GetValue <Slider>().Value) >= 1 && !IsShooting()) { return; } R.Range = GetRRange(); Obj_AI_Hero[] lowesttarget = { null }; foreach (var enemy in ObjectManager.Get <Obj_AI_Hero>().Where(hero => hero.IsValidTarget(R.Range)).Where(enemy => lowesttarget[0] == null || lowesttarget[0].Health > enemy.Health)) { lowesttarget[0] = enemy; } if (lowesttarget[0] != null && lowesttarget[0].Health < (DamageLib.getDmg(lowesttarget[0], DamageLib.SpellType.R) * 0.9) && Environment.TickCount - UltTick >= 700) { R.Cast(lowesttarget[0], Packets()); UltTick = Environment.TickCount; return; } if (IsShooting()) { var target = SimpleTs.GetTarget(R.Range, SimpleTs.DamageType.Magical); R.Cast(target, Packets()); } }
public override void Execute() { var minions = EntityManager.MinionsAndMonsters.GetLaneMinions(EntityManager.UnitTeam.Enemy, _Player.Position, Q.Range).OrderBy(x => x.Health); if (W.IsReady() && MenuX.Modes.LaneClear.UseW && _Player.ManaPercent >= MenuX.Modes.LaneClear.MinMana) { var wminions = Misc.GetBestCircularFarmLocation(minions.OrderByDescending(x => x.Health) .Select(xm => xm.ServerPosition.To2D()).ToList(), W.Width, W.Range); if (wminions.MinionsHit >= MenuX.Modes.LaneClear.MinMinion) { W.Cast(wminions.Position.To3D()); } } if (Q.IsReady() && MenuX.Modes.LaneClear.UseQ && _Player.ManaPercent >= MenuX.Modes.LaneClear.MinMana) { var qminions = Misc.GetBestLineFarmLocation(minions .Where(x => DamageLib.QDamage(x) >= x.Health) .Select(xm => xm.ServerPosition.To2D()).ToList(), Q.Width, Q.Range); if (qminions.MinionsHit >= 1) { Q.Cast(qminions.Position.To3D()); } } }
void AutoUlt() { var comboR = _menu.Item("comboR" + ObjectManager.Player.ChampionName).GetValue <Slider>().Value; if (comboR > 0 && _spellR.IsReady()) { int enemiesHit = 0; int killableHits = 0; foreach (Obj_AI_Hero enemy in Program.Helper.EnemyTeam.Where(x => x.IsValidTarget(_spellR.Range))) { var prediction = Prediction.GetPrediction(enemy, _spellR.Delay); if (prediction != null && prediction.UnitPosition.Distance(ObjectManager.Player.ServerPosition) <= _spellR.Range) { enemiesHit++; if (DamageLib.getDmg(enemy, DamageLib.SpellType.R) >= enemy.Health) { killableHits++; } } } if (enemiesHit >= comboR || (killableHits >= 1 && ObjectManager.Player.Health / ObjectManager.Player.MaxHealth <= 0.1)) { CastR(); } } }
public override void Game_OnGameUpdate(EventArgs args) { if ((!ComboActive && !HarassActive) || !Orbwalking.CanMove(100)) return; var useQ = GetValue<bool>("UseQ" + (ComboActive ? "C" : "H")); var useW = GetValue<bool>("UseW" + (ComboActive ? "C" : "H")); var useR = GetValue<bool>("UseR" + (ComboActive ? "C" : "H")); if (Q.IsReady() && useQ) { var t = SimpleTs.GetTarget(Q.Range, SimpleTs.DamageType.Physical); if (t != null) Q.Cast(t, false, true); } if (W.IsReady() && useW) { var t = SimpleTs.GetTarget(W.Range, SimpleTs.DamageType.Physical); if (t != null) W.Cast(t, false, true); } if (R.IsReady() && useR) { foreach ( var hero in ObjectManager.Get<Obj_AI_Hero>() .Where( hero => hero.IsValidTarget(R.Range) && DamageLib.getDmg(hero, DamageLib.SpellType.R, DamageLib.StageType.FirstDamage) - 20 > hero.Health)) R.Cast(hero, false, true); } }
private static float GetComboDamage(Obj_AI_Base enemy) { var damage = 0d; if (Q.IsReady()) { damage += DamageLib.getDmg(enemy, DamageLib.SpellType.Q); } if (W.IsReady()) { damage += DamageLib.getDmg(enemy, DamageLib.SpellType.W); } if (E.IsReady()) { damage += DamageLib.getDmg(enemy, DamageLib.SpellType.E); } if (R.IsReady()) { damage += DamageLib.getDmg(enemy, DamageLib.SpellType.R); } return((float)damage); }
void UltKs() { if (!_spellR.IsReady()) { return; } var time = Environment.TickCount; foreach (var target in Program.Helper.EnemyInfo.Where(x => //need to check if recently recalled (for cases when no mana for baseult) x.Player.IsValid && !x.Player.IsDead && x.Player.IsEnemy && !(x.RecallInfo.Recall.Status == Packet.S2C.Recall.RecallStatus.RecallStarted && x.RecallInfo.GetRecallCountdown() < 3100) && //let BaseUlt handle this one ((!x.Player.IsVisible && time - x.LastSeen < 10000) || (x.Player.IsVisible && x.Player.IsValidTarget())) && DamageLib.getDmg(x.Player, DamageLib.SpellType.R) >= Program.Helper.GetTargetHealth(x, (int)(_spellR.Delay * 1000f)))) { if (target.Player.IsVisible || (!target.Player.IsVisible && time - target.LastSeen < 2750)) //allies still attacking target? prevent overkill { if (Program.Helper.OwnTeam.Any(x => !x.IsMe && x.Distance(target.Player) < 1600)) { continue; } } if (IsInPassiveForm() || !Program.Helper.EnemyTeam.Any(x => x.IsValid && !x.IsDead && (x.IsVisible || (!x.IsVisible && time - Program.Helper.GetPlayerInfo(x).LastSeen < 2750)) && ObjectManager.Player.Distance(x) < 1600)) //any other enemies around? dont ult unless in passive form { _spellR.Cast(ObjectManager.Player.Position, Packets()); } } }
public static void Update() { if (!UtilsManager.IsSupported || !Player.Instance.Spellbook.GetSpell(SpellSlot.R).IsReady) { return; } var target = new Obj_AI_Base(); foreach (var p in UtilsManager.MonsterPos) { target = EloBuddy.SDK.EntityManager.MinionsAndMonsters.GetJungleMonsters(p.To3D(), 800).FirstOrDefault(); } if (target == null || target.IsDead) { return; } int damage = DamageLib.GetStealDamage(target); Vector3 position = Utils.GetCastPosition(UtilsManager.StealerInfos[Player.Instance.Hero], target); int travel_time = (int)Utils.GetTravelTime(UtilsManager.StealerInfos[Player.Instance.Hero], position); if (damage >= Prediction.Health.GetPrediction(target, travel_time)) { Player.Instance.Spellbook.CastSpell(SpellSlot.R, position); } }
private static void CastR(Obj_AI_Base target) { if (!target.IsValidTarget(_r.Range) || !_r.IsReady()) { return; } if (!(DamageLib.getDmg(target, DamageLib.SpellType.R, DamageLib.StageType.FirstDamage) > target.Health)) { foreach (var buff in target.Buffs) { if (buff.Name == "dariushemo") { if (DamageLib.getDmg(target, DamageLib.SpellType.R, DamageLib.StageType.FirstDamage) * (1 + buff.Count / 5) - 1 > target.Health) { _r.CastOnUnit(target, true); } } } } else if (DamageLib.getDmg(target, DamageLib.SpellType.R, DamageLib.StageType.FirstDamage) - 15 > target.Health) { _r.CastOnUnit(target, true); } }
static void Drawing_OnDraw(EventArgs args) { if (!ObjectManager.Player.IsDead) { var drawQ = _menu.Item("drawQ").GetValue <Circle>(); if (drawQ.Active) { Utility.DrawCircle(ObjectManager.Player.Position, _spellQ.Range, drawQ.Color); } } String victims = ""; int time = Environment.TickCount; foreach (Obj_AI_Hero target in _playerInfo.Where(x => x.Player.IsValid && !x.Player.IsDead && x.Player.IsEnemy && ((!x.Player.IsVisible && time - x.LastSeen < 10000) || (x.Player.IsVisible && Utility.IsValidTarget(x.Player))) && DamageLib.getDmg(x.Player, DamageLib.SpellType.R) >= GetTargetHealth(x, (int)(_spellR.Delay * 1000f))).Select(x => x.Player)) { victims += target.ChampionName + " "; } if (victims != "") { Drawing.DrawText(Drawing.Width * 0.44f, Drawing.Height * 0.7f, System.Drawing.Color.GreenYellow, "Ult can kill: " + victims); //use when pos works //new Render.Text((int)(Drawing.Width * 0.44f), (int)(Drawing.Height * 0.7f), "Ult can kill: " + victims, 30, SharpDX.Color.Red); //.Add() } }
private static void Game_OnGameUpdate(EventArgs args) { // Auto farm Q minions if (autoFarmMinions && spell.IsReady() && Orbwalking.CanMove(100)) { var minions = MinionManager.GetMinions(ObjectManager.Player.Position, spell.Range, MinionTypes.All, MinionTeam.Enemy, MinionOrderTypes.MaxHealth); minions.AddRange(MinionManager.GetMinions(ObjectManager.Player.Position, spell.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth)); foreach (var minion in minions) { // Predicted health float predictedHealth = HealthPrediction.GetHealthPrediction(minion, (int)((minion.Distance(ObjectManager.Player) / spell.Speed) * 1000 + spell.Delay * 1000), 100); // Calculated damage on minion double damage = DamageLib.CalcMagicMinionDmg((35 + (ObjectManager.Player.Spellbook.GetSpell(SpellSlot.Q).Level * 45)) + (0.60 * ObjectManager.Player.FlatMagicDamageMod), minion as Obj_AI_Minion, true); // Valid minion if (predictedHealth > 0 && damage > predictedHealth) { spell.CastOnUnit(minion); lastNetworkId = minion.NetworkId; break; } } } }
private void CastQMinion() { if (!Q.IsReady()) { return; } var allMinions = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, Q.Range, MinionTypes.All, MinionTeam.NotAlly); foreach (var minion in allMinions) { if (!minion.IsValidTarget()) { continue; } var minionInRangeAa = Orbwalking.InAutoAttackRange(minion); var minionInRangeSpell = minion.Distance(ObjectManager.Player) <= Q.Range; var minionKillableAa = DamageLib.getDmg(minion, DamageLib.SpellType.AD) >= minion.Health; var minionKillableSpell = DamageLib.getDmg(minion, DamageLib.SpellType.Q) >= minion.Health; var lastHit = Program.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LastHit; var laneClear = Program.Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear; if ((lastHit && minionInRangeSpell && minionKillableSpell) && ((minionInRangeAa && !minionKillableAa) || !minionInRangeAa)) { Q.CastOnUnit(minion, Packets()); } else if ((laneClear && minionInRangeSpell && !minionKillableSpell) && ((minionInRangeAa && !minionKillableAa) || !minionInRangeAa)) { Q.CastOnUnit(minion, Packets()); } } }
private static void Farm(bool laneclear) { var minions = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, Q.Range); var jungleMinions = MinionManager.GetMinions( ObjectManager.Player.ServerPosition, Q.Range, MinionTypes.All, MinionTeam.Neutral); minions.AddRange(jungleMinions); if (laneclear && Config.Item("wFarm").GetValue <bool>() && W.IsReady()) { if (minions.Count > 0) { W.Cast(W.GetLineFarmLocation(minions).Position.To3D()); } } if (!Config.Item("qFarm").GetValue <bool>() || (Config.Item("saveqStun").GetValue <bool>() && StunCount == 4) || !Q.IsReady()) { return; } foreach (var minion in from minion in minions.OrderByDescending(Minions => Minions.MaxHealth) .Where(minion => minion.IsValidTarget(Q.Range)) let predictedHealth = Q.GetHealthPrediction(minion) where predictedHealth < DamageLib.getDmg(minion, DamageLib.SpellType.Q) * 0.9 && predictedHealth > 0 select minion) { Q.CastOnUnit(minion, Config.Item("PCast").GetValue <bool>()); } }
private static void LaneClear() { G.Spell_Cast_LineSkillshot(t.Menu_Farm, "use_Q_LaneClear_Enemy", Q, SimpleTs.DamageType.Physical, "Enemy"); G.Spell_Cast_LineSkillshot(t.Menu_Farm, "use_Q_LaneClear_Minion", Q, SimpleTs.DamageType.Physical, "Minion", true, true); G.Spell_Cast_LineSkillshot(t.Menu_Farm, "use_Q_LaneClear_Minion", Q, SimpleTs.DamageType.Physical, "Minion", true); if (G.Menu_IsMenuActive("use_E_LaneClear_Enemy") && E.IsReady()) { Target = SimpleTs.GetTarget(E.Range, SimpleTs.DamageType.Physical); { if (Target != null) { E.Cast(); } } } if (G.Menu_IsMenuActive("use_E_LaneClear_Minion") && E.IsReady()) { var allMinions = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, E.Range, MinionTypes.All, MinionTeam.NotAlly); foreach (var Minion in allMinions) { if (Minion != null) { if (Minion.IsValidTarget(E.Range)) { if ((DamageLib.getDmg(Minion, DamageLib.SpellType.E) > Minion.Health) || (DamageLib.getDmg(Minion, DamageLib.SpellType.E) + 100 < Minion.Health)) { E.Cast(); } } } } } }
private static void ExecuteCombo() { var target = SimpleTs.GetTarget(Q.Range, SimpleTs.DamageType.Magical); if (target == null) { return; } var useQ = Config.Item("UseQCombo").GetValue <bool>(); var useW = Config.Item("UseWCombo").GetValue <bool>(); var useR = Config.Item("UseRCombo").GetValue <bool>(); if (W.IsReady() && useW && ObjectManager.Player.Distance(target) <= W.Range) { W.Cast(target, false, true); } if (Q.IsReady() && useQ && ObjectManager.Player.Distance(target) <= Q.Range) { Q.Cast(target, false, true); } if (R.IsReady() && useR && DamageLib.getDmg(target, DamageLib.SpellType.R) > target.Health) { R.CastOnUnit(target, true); } }
public override void Game_OnGameUpdate(EventArgs args) { //Update E and R range depending on level; 550 + 9 × ( Tristana's level - 1) E.Range = 550 + 9 * (ObjectManager.Player.Level - 1); R.Range = 550 + 9 * (ObjectManager.Player.Level - 1); if (Orbwalking.CanMove(100) && (ComboActive || HarassActive)) { var useE = GetValue <bool>("UseE" + (ComboActive ? "C" : "H")); if (useE) { var eTarget = SimpleTs.GetTarget(E.Range, SimpleTs.DamageType.Physical); if (E.IsReady() && eTarget.IsValidTarget()) { E.CastOnUnit(eTarget); } } } //Killsteal if (!ComboActive || !GetValue <bool>("UseRM") || !R.IsReady()) { return; } foreach ( var hero in ObjectManager.Get <Obj_AI_Hero>() .Where( hero => hero.IsValidTarget(R.Range) && DamageLib.getDmg(hero, DamageLib.SpellType.R) - 20 > hero.Health)) { R.CastOnUnit(hero); } }
private static double GetDamage(Obj_AI_Base unit) { double damage = 0; if (Q.IsReady()) { damage += DamageLib.getDmg(unit, DamageLib.SpellType.Q); } if (W.IsReady()) { damage += DamageLib.getDmg(unit, DamageLib.SpellType.W); } if (E.IsReady()) { damage += DamageLib.getDmg(unit, DamageLib.SpellType.E); } if (R.IsReady()) { damage += DamageLib.getDmg(unit, DamageLib.SpellType.R, DamageLib.StageType.FirstDamage) * 7; } if (IgniteSlot != SpellSlot.Unknown && ObjectManager.Player.SummonerSpellbook.CanUseSpell(IgniteSlot) == SpellState.Ready) { damage += DamageLib.getDmg(unit, DamageLib.SpellType.IGNITE); } return(damage * (DFG.IsReady() ? 1.2f : 1)); }
private void QLasthitMinion() { if (!Q.IsReady()) { return; } var allminions = MinionManager.GetMinions(ObjectManager.Player.Position, Q.Range, MinionTypes.All, MinionTeam.NotAlly); if (allminions.Count == 0) { return; } foreach (var minion in allminions.Where(minion => minion.Health <= DamageLib.getDmg(minion, DamageLib.SpellType.Q))) { Q.CastOnUnit(minion, Packets()); return; } if (Orbwalking.OrbwalkingMode.LaneClear != Program.Orbwalker.ActiveMode) { return; } foreach (var minion in allminions) { Q.CastOnUnit(minion, Packets()); return; } }
private static float GetComboDamage(Obj_AI_Base enemy) { var damage = 0d; if (Q.IsReady() && Q.GetCollision(ObjectManager.Player.ServerPosition.To2D(), new List <Vector2> { enemy.ServerPosition.To2D() }).Count == 0) { damage += DamageLib.getDmg(enemy, DamageLib.SpellType.Q); } if (W.IsReady()) { damage += W.Instance.Ammo * DamageLib.getDmg(enemy, DamageLib.SpellType.W, DamageLib.StageType.FirstDamage); } if (E.IsReady()) { damage += DamageLib.getDmg(enemy, DamageLib.SpellType.E); } if (IgniteSlot != SpellSlot.Unknown && Player.SummonerSpellbook.CanUseSpell(IgniteSlot) == SpellState.Ready) { damage += DamageLib.getDmg(enemy, DamageLib.SpellType.IGNITE); } if (R.IsReady()) { damage += 7 * DamageLib.getDmg(enemy, DamageLib.SpellType.R); } return((float)damage); }
private double SecondQDamage(Obj_AI_Base target, float extradamage = 0) { var damage = Q1.Level * 30 + 20 + ObjectManager.Player.BaseAttackDamage * 0.9 + 0.08 * (target.MaxHealth - target.Health - extradamage); var realdamage = DamageLib.CalcPhysicalDmg(damage, target); return(realdamage); }
private static void KillSteal(Obj_AI_Hero target) { var Qdmg = Q.GetDamage(target, DamageLib.StageType.Default); var Edmg = E.GetDamage(target, DamageLib.StageType.Default); var igniteDmg = DamageLib.getDmg(target, DamageLib.SpellType.IGNITE); if (target != null) { if (Config.Item("UseQKs").GetValue <bool>() && Q.IsReady()) { if (target.Health <= Qdmg) { Q.Cast(target); } } if (Config.Item("UseEKs").GetValue <bool>() && E.IsReady()) { if (target.Health <= Edmg) { E.Cast(target); } } if (Config.Item("UseIgnite").GetValue <bool>() && IgniteSlot != SpellSlot.Unknown && Player.SummonerSpellbook.CanUseSpell(IgniteSlot) == SpellState.Ready) { if (target.Health < igniteDmg) { Player.SummonerSpellbook.CastSpell(IgniteSlot, target); } } } }
static void UltKS() { if (_spellR.IsReady()) { int time = Environment.TickCount; foreach (PlayerInfo target in _playerInfo.Where(x => x.Player.IsValid && !x.Player.IsDead && x.Player.IsEnemy && ((!x.Player.IsVisible && time - x.LastSeen < 10000) || (x.Player.IsVisible && Utility.IsValidTarget(x.Player))) && DamageLib.getDmg(x.Player, DamageLib.SpellType.R) >= GetTargetHealth(x, (int)(_spellR.Delay * 1000f)))) { bool cast = true; if (target.Player.IsVisible || (!target.Player.IsVisible && time - target.LastSeen < 2750)) //allies still attacking target? prevent overkill { if (_ownTeam.Any(x => !x.IsMe && x.Distance(target.Player) < 1800)) { cast = false; } } if (cast && !_enemyTeam.Any(x => x.IsValid && !x.IsDead && (x.IsVisible || (!x.IsVisible && time - GetPlayerInfo(x).LastSeen < 2750)) && ObjectManager.Player.Distance(x) < 1800)) //any other enemies around? dont ult { _spellR.Cast(ObjectManager.Player.Position, _menu.Item("packetCast").GetValue <bool>()); } } } }
private static void AutoULt() { var ultTarget = SimpleTs.GetTarget(R.Range, SimpleTs.DamageType.Magical); if (DamageLib.getDmg(ultTarget, DamageLib.SpellType.R) > (ultTarget.Health * 1.05)) { MyHero.Spellbook.CastSpell(SpellSlot.R); } }
public static double CalculateDamage(Obj_AI_Base target) { double totaldamage = 0; bool marked = checkformark(target); tSpells.useignite = false; tSpells.usedfg = false; if ((ObjectManager.Player.Distance(target) < Q.Range || ObjectManager.Player.Distance(target) < E.Range && E.IsReady()) && Q.IsReady() && (W.IsReady() || E.IsReady() || R.IsReady())) { totaldamage += DamageLib.getDmg(target, DamageLib.SpellType.Q); } if ((ObjectManager.Player.Distance(target) < W.Range || ObjectManager.Player.Distance(target) < E.Range && E.IsReady()) && W.IsReady()) { totaldamage += DamageLib.getDmg(target, DamageLib.SpellType.W); } if (ObjectManager.Player.Distance(target) < E.Range && E.IsReady()) { totaldamage += DamageLib.getDmg(target, DamageLib.SpellType.E); } if ((ObjectManager.Player.Distance(target) < R.Range || ObjectManager.Player.Distance(target) < E.Range && E.IsReady()) && R.IsReady()) { totaldamage += DamageLib.getDmg(target, DamageLib.SpellType.R); } if (!Q.IsReady() && marked) { totaldamage += DamageLib.CalcMagicDmg(((ObjectManager.Player.Spellbook.GetSpell(SpellSlot.Q).Level * 15)) + (0.15 * ObjectManager.Player.FlatMagicDamageMod), target); } if (totaldamage > target.Health) { return(totaldamage); } if (Config.Item("dfg").GetValue <bool>() && Items.HasItem(3128) && Items.CanUseItem(3128)) { totaldamage = (totaldamage * 1.2) + DamageLib.CalcMagicDmg(target.MaxHealth * 0.15, target); } if (totaldamage > target.Health) { tSpells.usedfg = true; return(totaldamage); } if (Config.Item("ignite").GetValue <bool>() && IgniteSlot != SpellSlot.Unknown && ObjectManager.Player.SummonerSpellbook.CanUseSpell(IgniteSlot) == SpellState.Ready && ObjectManager.Player.Distance(target) < 600) { if (totaldamage + DamageLib.getDmg(target, DamageLib.SpellType.IGNITE) > target.Health) { tSpells.useignite = true; totaldamage += DamageLib.getDmg(target, DamageLib.SpellType.IGNITE); } } tSpells.usedfg = true; return(totaldamage); }
private static void Combo() { Orbwalker.SetAttacks(true); var target = SimpleTs.GetTarget(E.Range, SimpleTs.DamageType.Magical); if (target == null) { return; } if (DamageLib.IsKillable(target, new[] { DamageLib.SpellType.Q, DamageLib.SpellType.W, DamageLib.SpellType.E, DamageLib.SpellType.R, DamageLib.SpellType.DFG })) { if (ObjectManager.Player.Distance(target) < E.Range && DFG.IsReady()) { DFG.Cast(target); } if (ObjectManager.Player.Distance(target) < Q.Range && Q.IsReady()) { Q.CastOnUnit(target, Config.Item("QNFE").GetValue <bool>()); } if (ObjectManager.Player.Distance(target) < E.Range && E.IsReady() && !Q.IsReady()) { E.CastOnUnit(target); } if (ObjectManager.Player.Distance(target) < W.Range && W.IsReady() && !Q.IsReady()) { W.Cast(); } if (ObjectManager.Player.Distance(target) < R.Range && R.IsReady() && !Q.IsReady()) { R.Cast(); } } else { if (ObjectManager.Player.Distance(target) < Q.Range && Q.IsReady()) { Q.CastOnUnit(target, true); } if (Config.Item("ComboActive").GetValue <KeyBind>().Active&& ObjectManager.Player.Distance(target) < E.Range && E.IsReady()) { E.CastOnUnit(target); } if (ObjectManager.Player.Distance(target) < W.Range && W.IsReady()) { W.Cast(); } } }
private static void Killsteal() // Creds to TC-Crew { foreach (var hero in ObjectManager.Get <Obj_AI_Hero>().Where(hero => hero.IsValidTarget(Q.Range))) { if (Q.IsReady() && hero.Distance(ObjectManager.Player) <= Q.Range && DamageLib.getDmg(hero, DamageLib.SpellType.Q) >= hero.Health) { Q.CastOnUnit(hero, Config.Item("QNFE").GetValue <bool>()); } } }
private static float GetComboDamage(Obj_AI_Base enemy) { var damage = 0d; //damage += DamageLib.getDmg(enemy, DamageLib.SpellType.Q); damage += DamageLib.getDmg(enemy, DamageLib.SpellType.W); damage += DamageLib.getDmg(enemy, DamageLib.SpellType.E); damage += DamageLib.getDmg(enemy, DamageLib.SpellType.R); return((float)damage); }
private static void KillstealR() { foreach (var hero in ObjectManager.Get <Obj_AI_Hero>().Where(hero => hero.IsValidTarget(E.Range))) { if (R.IsReady() && hero.Distance(ObjectManager.Player) <= R.Range && DamageLib.getDmg(hero, DamageLib.SpellType.R) >= hero.Health + 20) { R.Cast(); } } }
private static void KillstealE() { foreach (var hero in ObjectManager.Get <Obj_AI_Hero>().Where(hero => hero.IsValidTarget(E.Range))) { if (E.IsReady() && hero.Distance(ObjectManager.Player) <= E.Range && DamageLib.getDmg(hero, DamageLib.SpellType.E) >= hero.Health + 20) { E.CastIfHitchanceEquals(hero, HitChance.High, true); } } }
/// <summary> /// Gets the damage that the skillshot will deal to the target using the damage lib. /// </summary> public float GetDamage(Obj_AI_Base target, DamageLib.StageType stagetype = DamageLib.StageType.Default) { var type = DamageLib.SpellType.Q; switch (Slot) { case SpellSlot.Q: type = DamageLib.SpellType.Q; break; case SpellSlot.W: type = DamageLib.SpellType.W; break; case SpellSlot.E: type = DamageLib.SpellType.E; break; case SpellSlot.R: type = DamageLib.SpellType.R; break; } return (float) DamageLib.getDmg(target, type, stagetype); }
public static bool GetRangedHealthCheck(Obj_AI_Base target, DamageLib.SpellType spellType, DamageLib.StageType stage, float precision, float speed) { return HealthPrediction.GetHealthPrediction(target, (int) ((ObjectManager.Player.Distance(target, false)*precision)/speed)) < (0.75*DamageLib.getDmg(target, spellType, stage)); }
//Credits to Lexxes gave me this function to use public static bool Spell_Cast_LineSkillshot(string MainMenu, string Menu, Spell Spell, SimpleTs.DamageType DmgType, string Objekt = "Enemy", bool Condition = true, bool Lasthit = false, DamageLib.StageType Stage = DamageLib.StageType.Default) { if (Objekt == "Enemy") { var Target = SimpleTs.GetTarget(Spell.Range, DmgType); if (Target != null) { if (Target.IsValidTarget(Spell.Range) && Spell.IsReady()) { if (Spell.GetPrediction(Target).HitChance >= Prediction.HitChance.HighHitchance) { Spell.Cast(Target, true); return true; } } } } if (Objekt == "Minion") { var allMinions = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, Spell.Range, MinionTypes.All, MinionTeam.NotAlly); foreach (var Target in allMinions) { if (Target != null) { var spelltype = DamageLib.SpellType.AD; if (Spell.Slot.ToString() == "Q") spelltype = DamageLib.SpellType.Q; if (Spell.Slot.ToString() == "W") spelltype = DamageLib.SpellType.W; if (Spell.Slot.ToString() == "E") spelltype = DamageLib.SpellType.E; if (Spell.Slot.ToString() == "R") spelltype = DamageLib.SpellType.R; if (Target.IsValidTarget(Spell.Range) && Spell.IsReady()) { if ((Lasthit && (DamageLib.getDmg(Target, spelltype, Stage) > Target.Health) || (DamageLib.getDmg(Target, spelltype, Stage) + 100 < Target.Health) && !Lasthit)) { Spell.Cast(Target.Position, true); return true; } } } } } if (Objekt == "KS") { } return true; }