private void Cast_R() { if (!R.IsReady() || Menu.Item("Combo_useR_onAmount").GetValue <Slider>().Value <= 0) { return; } var hits = 0; var kills = 0; foreach (var enemy in from enemy in AllHerosEnemy.Where(x => x.IsValidTarget(R.Range)) let prediction = Prediction.GetPrediction(enemy, R.Delay) where prediction != null && prediction.UnitPosition.Distance(MyHero.ServerPosition) <= R.Range select enemy) { hits += 1; if (MyHero.GetSpellDamage(enemy, SpellSlot.R) >= enemy.Health) { kills += 1; } } if (hits >= Menu.Item("Combo_useR_onAmount").GetValue <Slider>().Value || (kills >= 1 && GetHealthPercent() <= 15)) { R.Cast(); } }
private void Cast_R() { if (!R.IsReady()) { return; } if (Menu.Item("Combo_useR_onAmount").GetValue <Slider>().Value > 0) { if (Utility.CountEnemysInRange((int)R.Range) >= Menu.Item("Combo_useR_onAmount").GetValue <Slider>().Value) { R.Cast(); return; } } if (Menu.Item("Combo_useR_onEnemyHealth").GetValue <Slider>().Value <= 0) { return; } if (!AllHerosEnemy.Any(hero => hero.IsValidTarget(R.Range) && hero.Health / hero.MaxHealth * 100 < Menu.Item("Combo_useR_onEnemyHealth").GetValue <Slider>().Value)) { return; } R.Cast(); }
private void Cast_W(bool mode) { if (!W.IsReady()) { return; } if (mode) { foreach (var enemy in AllHerosEnemy.Where(enemy => enemy.IsValidTarget(W.Range))) { if (ObjectManager.Get <Obj_AI_Base>().Any(obj => obj.IsValidTarget() && obj.IsMinion && MyHero.ServerPosition.To2D() .Distance(W.GetPrediction(enemy).CastPosition.To2D(), obj.Position.To2D(), true) < 25)) { return; } W.Cast(enemy, UsePackets()); } } else { var allMinions = MinionManager.GetMinions(MyHero.Position, W.Range, MinionTypes.All, MinionTeam.NotAlly); var farmlocation = W.GetCircularFarmLocation(allMinions, 300); if (farmlocation.Position.Distance(MyHero.Position) > 300 && farmlocation.Position.Distance(MyHero.Position) < W.Range && (farmlocation.MinionsHit >= 3 || allMinions.Any(x => x.Team == GameObjectTeam.Neutral))) { W.Cast(farmlocation.Position, UsePackets()); } } }
private void Cast_E() { if (!E.IsReady()) { return; } foreach (var enemy in AllHerosEnemy.Where(hero => hero.IsValidTarget(E.Range)).Where(enemy => IsCollisionE(enemy))) { E.Cast(enemy, UsePackets()); return; } }
public override void ObjSpellMissileOnOnCreate(GameObject sender, EventArgs args) { if (Menu.Item("Q_AgainstWard").GetValue <bool>() && sender.Name.ToLower().Contains("ward") && MyHero.Distance(sender.Position) <= MyHero.AttackRange) { var query = AllHerosEnemy.Where(xSLxOrbwalker.InAutoAttackRange); // dont focus ward if enemy in range if (!query.Any()) { MyHero.IssueOrder(GameObjectOrder.AttackUnit, sender); } } }
private void Cast_R(int mode) { if (!R.IsReady()) { return; } if ( AllHerosEnemy.Where(hero => hero.IsValidTarget(R.Range)) .Select(enemy => R.CastIfWillHit(enemy, Menu.Item("Combo_useR_enemyCount").GetValue <Slider>().Value, UsePackets())) .Any(casted => casted)) { return; } var targetMode1 = SimpleTs.GetTarget(W.Range, SimpleTs.DamageType.Physical); var targetMode2 = SimpleTs.GetTarget(R.Range, SimpleTs.DamageType.Physical); switch (mode) { case 1: if (targetMode1 == null) { return; } if (targetMode1.Health < GetComboDamage(targetMode1)) { R.Cast(targetMode1, UsePackets()); } break; case 2: if (targetMode2 == null) { return; } if (targetMode2.Health < MyHero.GetSpellDamage(targetMode2, SpellSlot.R) * 0.9 && !targetMode2.IsValidTarget(W.Range)) { R.Cast(targetMode2, UsePackets()); } break; } }
private void QHandler() { if (Environment.TickCount - _qCheckTimer > 300) { _qCheckTimer = Environment.TickCount; _qActive = MyHero.Spellbook.GetSpell(SpellSlot.Q).ToggleState == 2; if (AllHerosEnemy.Where(xSLxOrbwalker.InAutoAttackRange).Where(enemy => (xSLxOrbwalker.CurrentMode == xSLxOrbwalker.Mode.Combo || xSLxOrbwalker.CurrentMode == xSLxOrbwalker.Mode.Harass) && IsSpellActive("Q")).Any(enemy => !_qActive)) { Q.Cast(); return; } if ((!AllHerosEnemy.Any(xSLxOrbwalker.InAutoAttackRange) || !(xSLxOrbwalker.CurrentMode == xSLxOrbwalker.Mode.Harass || xSLxOrbwalker.CurrentMode == xSLxOrbwalker.Mode.Combo)) && _qActive) { Q.Cast(); } } }
private void Cast_Q_UnderTower() { if (!Menu.Item("Q_UnderTurret").GetValue <bool>()) { return; } // need some improve to use E to gapcloser on enemy and stun under tower var query = AllHerosEnemy.Where(x => xSLxOrbwalker.InAutoAttackRange(x) && Utility.UnderTurret(x)); var objAiHeroes = query as Obj_AI_Hero[] ?? query.ToArray(); if (!objAiHeroes.Any()) { return; } var target = objAiHeroes.First(); MyHero.IssueOrder(GameObjectOrder.AttackUnit, target); Cast_Q(target); }
private void Cast_W(bool stun, bool slow) { if (!W.IsReady()) { return; } foreach (var unit in AllHerosEnemy.Where(x => x.IsValidTarget(W.Range) && !x.IsDead && x.IsEnemy)) { if (stun && W.GetPrediction(unit).Hitchance == HitChance.Immobile) { W.Cast(unit.ServerPosition, UsePackets()); return; } if (slow && unit.HasBuffOfType(BuffType.Slow)) { W.Cast(unit, UsePackets()); return; } } }
private void Cast_R_MinHit() { // What do you think about GetCircularFarmLocation, this will use MEC var minEnemyCount = 5; if (xSLxOrbwalker.CurrentMode == xSLxOrbwalker.Mode.Combo) { minEnemyCount = Menu.Item("Combo_useR_enemyCount").GetValue <Slider>().Value; } var query = AllHerosEnemy .Where(x => x.IsValidTarget(R.Range)) .Select(x => x.ServerPosition.To2D()); var rLocation = R.GetCircularFarmLocation(query.ToList()); if (rLocation.MinionsHit >= minEnemyCount) { R.Cast(rLocation.Position); } }
private void Cast_E(bool stun, bool slow, bool behind) { if (!E.IsReady()) { return; } foreach (var unit in AllHerosEnemy.Where(x => x.IsValidTarget(E.Range) && !x.IsDead && x.IsEnemy)) { if (stun && E.GetPrediction(unit).Hitchance == HitChance.Immobile) { E.Cast(unit.ServerPosition, UsePackets()); return; } if (slow && unit.HasBuffOfType(BuffType.Slow)) { var ePredSlow = E.GetPrediction(unit); var eBehindVecSlow = ePredSlow.CastPosition + Vector3.Normalize(unit.ServerPosition - MyHero.ServerPosition) * 100; if (MyHero.Distance(eBehindVecSlow) < E.Range) { E.Cast(eBehindVecSlow, UsePackets()); return; } } var eBehindDistance = Menu.Item("E_Behind_Distance").GetValue <Slider>().Value; var ePred = E.GetPrediction(unit); var eBehindVec = ePred.CastPosition + Vector3.Normalize(ePred.CastPosition - MyHero.ServerPosition) * eBehindDistance; if (E.IsReady() && behind && MyHero.Distance(eBehindVec) < E.Range) { E.Cast(eBehindVec); } } }
private void Cast_R() { if (!R.IsReady()) { return; } var killableEnemy = AllHerosEnemy.FirstOrDefault(enemy => enemy.IsValidTarget(R.Range) && MyHero.GetSpellDamage(enemy, SpellSlot.R) * 0.9 >= enemy.Health); if (killableEnemy != null) { R.Cast(killableEnemy, UsePackets()); } var target = SimpleTs.GetTarget(R.Range, SimpleTs.DamageType.Magical); if (GetComboDamage(target) > target.Health && GetPassiveStacks() == 4) { R.Cast(target, UsePackets()); } if (GetPassiveStacks() == 4) { R.CastIfWillHit(target, Menu.Item("R_StunCount").GetValue <Slider>().Value, UsePackets()); } }
private bool ShouldUlt() { if (EnemysinRange(500)) { return(true); } var mousePos = Game.CursorPos; var enemiesNearMouse = AllHerosEnemy.Where(x => x.Distance(MyHero) < R.Range && x.Distance(mousePos) < 650); var objAiHeroes = enemiesNearMouse as Obj_AI_Hero[] ?? enemiesNearMouse.ToArray(); if (!objAiHeroes.Any()) { return(false); } if (IsRActive()) { return(true); } var enoughMana = MyHero.Mana > MyHero.Spellbook.GetSpell(SpellSlot.Q).ManaCost + MyHero.Spellbook.GetSpell(SpellSlot.E).ManaCost + MyHero.Spellbook.GetSpell(SpellSlot.R).ManaCost; if (Menu.Item("Combo_useR_onUseActivate").GetValue <bool>() || !(Q.IsReady() && E.IsReady()) || !enoughMana) { return(false); } var friendsNearMouse = AllHerosFriend.Where(x => x.IsMe || x.Distance(mousePos) < 650); if (objAiHeroes.Count() == 1) { var enemy = objAiHeroes.FirstOrDefault(); var underTower = Utility.UnderTurret(enemy); return(enemy != null && GetComboDamage(enemy) / enemy.Health >= (underTower ? 1.25f : 1)); } var lowHealthEnemies = objAiHeroes.Count(x => x.Health / x.MaxHealth <= 0.1); var totalEnemyHealth = objAiHeroes.Sum(x => x.Health); return(friendsNearMouse.Count() - (objAiHeroes.Count() - lowHealthEnemies) >= -1 || MyHero.Health / totalEnemyHealth >= 0.8); }
private void Cast_R() { if (!R.IsReady()) { return; } if (Menu.Item("Misc_useR_ifStun").GetValue <bool>()) { foreach (var target in AllHerosEnemy.Where(hero => hero.IsValidTarget(R.Width))) { CastRToCollision(GetCollision(target)); } } if (Menu.Item("Misc_useR_ifcanKill").GetValue <bool>()) { var target = SimpleTs.GetTarget(390, SimpleTs.DamageType.Physical); if (target.Health < GetComboDamage(target) && target.IsValidTarget(MyHero.Distance(R.GetPrediction(target).CastPosition))) { R.Cast(V2E(MyHero.Position, R.GetPrediction(target).CastPosition, -50), UsePackets()); } } }