private void LogicQ() { var t = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical); var t2 = TargetSelector.GetTarget(1500, TargetSelector.DamageType.Magical); if (t.IsValidTarget() && t2.IsValidTarget() && t == t2 && !(Config.Item("separate", true).GetValue <bool>() && Program.LaneClear)) { if (Q.IsCharging) { Program.CastSpell(Q, t); if (OktwCommon.GetPassiveTime(Player, "XerathArcanopulseChargeUp") < 1 || (Player.CountEnemiesInRange(800) > 0) || Player.Distance(t) > 1450) { Q.Cast(Q.GetPrediction(t).CastPosition); } else if (OktwCommon.GetPassiveTime(Player, "XerathArcanopulseChargeUp") < 2 || (Player.CountEnemiesInRange(1000) > 0)) { Q.CastIfHitchanceEquals(t, HitChance.VeryHigh); } return; } else if (t.IsValidTarget(Q.Range - 300)) { if (t.Health < OktwCommon.GetKsDamage(t, Q)) { Q.StartCharging(); } else if (Program.Combo && Player.Mana > EMANA + QMANA) { Q.StartCharging(); } else if (t.IsValidTarget(1200) && Program.Farm && Player.Mana > RMANA + EMANA + QMANA + QMANA && Config.Item("harras" + t.ChampionName).GetValue <bool>() && !Player.UnderTurret(true) && OktwCommon.CanHarras()) { Q.StartCharging(); } else if ((Program.Combo || Program.Farm) && Player.Mana > RMANA + WMANA) { foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTarget(Q.Range) && !OktwCommon.CanMove(enemy))) { Q.StartCharging(); } } } } else if (Program.LaneClear && Q.Range > 1000 && Player.CountEnemiesInRange(1450) == 0 && (Q.IsCharging || (Player.ManaPercent > Config.Item("Mana", true).GetValue <Slider>().Value&& Config.Item("farmQ", true).GetValue <bool>() && Player.Mana > RMANA + QMANA + WMANA))) { var allMinionsQ = Cache.GetMinions(Player.ServerPosition, Q.Range); var Qfarm = Q.GetLineFarmLocation(allMinionsQ, Q.Width); if (Qfarm.MinionsHit > Config.Item("LCminions", true).GetValue <Slider>().Value || (Q.IsCharging && Qfarm.MinionsHit > 0)) { Q.Cast(Qfarm.Position); } } }
private void castQ(AIHeroClient target) { if (target == null && Q.IsCharging) { ObjectManager.Player.Spellbook.CastSpell(SpellSlot.Q); } if (Q.IsCharging) { var qTarget = TargetSelector.GetTarget(!Q.IsCharging ? Q.ChargedMaxRange / 2 : Q.ChargedMaxRange, DamageType.Physical); if (qTarget == null) { return; } if (qTarget == null && Q.IsCharging) { ObjectManager.Player.Spellbook.CastSpell(SpellSlot.Q); } var start = ObjectManager.Player.ServerPosition.LSTo2D(); var end = start.LSExtend(QCastPos, Q.Range); var direction = (end - start).Normalized(); var normal = direction.Perpendicular(); var points = new List <Vector2>(); var hitBox = qTarget.BoundingRadius; points.Add(start + normal * (Q.Width + hitBox)); points.Add(start - normal * (Q.Width + hitBox)); points.Add(end + Q.ChargedMaxRange * direction - normal * (Q.Width + hitBox)); points.Add(end + Q.ChargedMaxRange * direction + normal * (Q.Width + hitBox)); for (var i = 0; i <= points.Count - 1; i++) { var A = points[i]; var B = points[i == points.Count - 1 ? 0 : i + 1]; if (qTarget.ServerPosition.LSTo2D().LSDistance(A, B, true, true) < 50 * 50) { Q.Cast(qTarget, true); } } checkCastedQ(target); } else if (Q.CanCast(target) && !Orbwalker.IsAutoAttacking && target != null) { var qPred = Prediction.GetPrediction(target, 0.3f); var qPred2 = Prediction.GetPrediction(target, 0.6f); var poly = GetPoly(qPred.UnitPosition); if (qPred2.Hitchance >= HitChance.High && poly.IsInside(qPred2.UnitPosition.LSTo2D()) && poly.IsInside(target.ServerPosition)) { Q.StartCharging(qPred.CastPosition); } } }
private static void CastSpellQ() { if (!Q.IsReady()) { return; } var t = TargetSelector.GetTarget(Q.Range, DamageType.Physical); if (!t.LSIsValidTarget(Q.Range)) { return; } var qMinCharge = Program.combo["QMinChargeC"].Cast <Slider>().CurrentValue; EloBuddy.Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos); if (Q.IsCharging) { if (Q.Range >= qMinCharge) { Q.Cast(t, false, true); } } else { Q.StartCharging(); } }
private void castQ(AIHeroClient target) { if (Q.IsCharging) { checkCastedQ(target); } else if (Q.CanCast(target) && !Orbwalker.IsAutoAttacking) { var qPred = Prediction.GetPrediction(target, 0.3f); var qPred2 = Prediction.GetPrediction(target, 0.6f); var poly = GetPoly(qPred.UnitPosition); if (qPred2.Hitchance >= HitChance.High && poly.IsInside(qPred2.UnitPosition.To2D()) && poly.IsInside(target.ServerPosition)) { Q.StartCharging(qPred.CastPosition); } } }
private static void Game_OnGameUpdate(EventArgs args) { if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo)) { var qTarget = TargetSelector.GetTarget( !Q.IsCharging ? Q.ChargedMaxRange / 2 : Q.ChargedMaxRange, DamageType.Physical); var eTarget = TargetSelector.GetTarget(E.Range, DamageType.Physical); if (qTarget != null && getCheckBoxItem(comboMenu, "UseQCombo")) { if (Q.IsCharging) { var start = ObjectManager.Player.ServerPosition.LSTo2D(); var end = start.LSExtend(QCastPos, Q.Range); var direction = (end - start).Normalized(); var normal = direction.Perpendicular(); var points = new List <Vector2>(); var hitBox = qTarget.BoundingRadius; points.Add(start + normal * (Q.Width + hitBox)); points.Add(start - normal * (Q.Width + hitBox)); points.Add(end + Q.ChargedMaxRange * direction - normal * (Q.Width + hitBox)); points.Add(end + Q.ChargedMaxRange * direction + normal * (Q.Width + hitBox)); for (var i = 0; i <= points.Count - 1; i++) { var A = points[i]; var B = points[i == points.Count - 1 ? 0 : i + 1]; if (qTarget.ServerPosition.LSTo2D().LSDistance(A, B, true, true) < 50 * 50) { Q.Cast(qTarget, true); } } return; } if (Q.IsReady()) { Q.StartCharging(qTarget.ServerPosition); } } if (qTarget != null && getCheckBoxItem(comboMenu, "UseWCombo")) { ObjectManager.Player.Spellbook.CastSpell(SpellSlot.W, ObjectManager.Player); } if (eTarget != null && getCheckBoxItem(comboMenu, "UseECombo")) { E.Cast(eTarget); } } }
private void castQ(AIHeroClient target) { if (Q.IsCharging) { checkCastedQ(target); return; } else if (Q.CanCast(target) && !player.Spellbook.IsAutoAttacking) { var qPred = LeagueSharp.Common.Prediction.GetPrediction(target, 0.3f); var qPred2 = LeagueSharp.Common.Prediction.GetPrediction(target, 0.6f); var poly = GetPoly(qPred.UnitPosition); if (qPred2.Hitchance >= HitChance.High && poly.IsInside(qPred2.UnitPosition.To2D()) && poly.IsInside(target.ServerPosition)) { Q.StartCharging(qPred.CastPosition); return; } } }
private void CastQ(Obj_AI_Base target) { if (!Q.IsCharging) { if (target.IsValidTargetLS(Q.Range - 300)) { Q.StartCharging(); } } else { if (GetQEndTime() > 1) { Program.CastSpell(Q, target); } else { Q.Cast(Q.GetPrediction(target).CastPosition); } return; } }
private static void LogicQ() { var t = TargetSelector.GetTarget(Q.Range, DamageType.Magical); var t2 = TargetSelector.GetTarget(1500, DamageType.Magical); if (t.IsValidTarget() && t2.IsValidTarget() && t == t2 && !(getCheckBoxItem(farmMenu, "separate") && Program.LaneClear)) { if (Q.IsCharging) { Program.CastSpell(Q, t); if (OktwCommon.GetPassiveTime(Player, "XerathArcanopulseChargeUp") < 1 || (Player.CountEnemiesInRange(800) > 0) || Player.Distance(t) > 1450) { Q.Cast(t); } else if (OktwCommon.GetPassiveTime(Player, "XerathArcanopulseChargeUp") < 2 || (Player.CountEnemiesInRange(1000) > 0)) { Q.CastIfHitchanceEquals(t, HitChance.VeryHigh); } } else if (t.IsValidTarget(Q.Range - 300)) { if (t.Health < OktwCommon.GetKsDamage(t, Q)) { Q.StartCharging(); } else if (Program.Combo && Player.Mana > EMANA + QMANA) { Q.StartCharging(); } else if (t.IsValidTarget(1200) && Program.Farm && Player.Mana > RMANA + EMANA + QMANA + QMANA && getCheckBoxItem(harassMenu, "harras" + t.NetworkId) && !Player.UnderTurret(true) && OktwCommon.CanHarras()) { Q.StartCharging(); } else if ((Program.Combo || Program.Farm) && Player.Mana > RMANA + WMANA) { foreach ( var enemy in Program.Enemies.Where( enemy => enemy.IsValidTarget(Q.Range) && !OktwCommon.CanMove(enemy))) { Q.StartCharging(); } } } } else if (Program.LaneClear && Q.Range > 1000 && Player.CountEnemiesInRange(1450) == 0 && (Q.IsCharging || (Player.ManaPercent > getSliderItem(farmMenu, "Mana") && getCheckBoxItem(farmMenu, "farmQ") && Player.Mana > RMANA + QMANA + WMANA))) { var allMinionsQ = Cache.GetMinions(Player.ServerPosition, Q.Range); var Qfarm = Q.GetLineFarmLocation(allMinionsQ, Q.Width); if (Qfarm.MinionsHit > getSliderItem(farmMenu, "LCminions") || (Q.IsCharging && Qfarm.MinionsHit > 0)) { Q.Cast(Qfarm.Position); } } }