private static void OnDraw(EventArgs args) { var myPos = Drawing.WorldToScreen(Player.Position); if (Config.Item("drawEnable").GetValue <bool>()) { if (Config.Item("drawQ").GetValue <bool>()) { Render.Circle.DrawCircle(ObjectManager.Player.Position, Q.Range, Color.Aqua, 1); } if (Config.Item("drawW").GetValue <bool>()) { Render.Circle.DrawCircle(ObjectManager.Player.Position, W.Range, Color.Aqua, 1); } if (Config.Item("drawE").GetValue <bool>()) { Render.Circle.DrawCircle(ObjectManager.Player.Position, E.Range, Color.Aqua, 1); } if (Config.Item("drawR").GetValue <bool>()) { Render.Circle.DrawCircle(ObjectManager.Player.Position, R.Range, Color.Aqua, 1); } if (Config.Item("drawtimer").GetValue <bool>()) { foreach (var orb in OrbManager.GetOrbs(false)) { var orbPos = Drawing.WorldToScreen(orb); Drawing.DrawText(orbPos.X, orbPos.Y, Color.Lime, OrbTimer.ToString()); } } } var enemy = TargetSelector.GetTarget(1500, TargetSelector.DamageType.Magical); List <Vector2> waypoints = enemy.GetWaypoints(); for (int i = 0; i < waypoints.Count - 1; i++) { oWp = Drawing.WorldToScreen(waypoints[i].To3D()); nWp = Drawing.WorldToScreen(waypoints[i + 1].To3D()); if (!waypoints[i].IsOnScreen() && !waypoints[i + 1].IsOnScreen()) { continue; } if (Config.Item("drawEpred").GetValue <bool>()) { Drawing.DrawLine(myPos.X - 25, myPos.Y - 25, nWp[0] - 25, nWp[1] - 25, 1, Color.Red); Drawing.DrawLine(myPos.X + 25, myPos.Y + 25, nWp[0] + 25, nWp[1] + 25, 1, Color.Red); } } }
private static void Combo() { var target = TargetSelector.GetTarget(1300, TargetSelector.DamageType.Magical); if (Q.IsReady() && (Config.Item("UseQCombo").GetValue <bool>())) { var Qprediction = Q.GetPrediction(target); if (Qprediction.Hitchance >= HitChance.VeryHigh) { Q.Cast(Qprediction.CastPosition); } } if (Player.Spellbook.GetSpell(SpellSlot.W).ToggleState == 1 && W.IsReady()) { var WGrabObject = GetGrabableObjectPos(target == null); if (WGrabObject.To2D().IsValid() && Utils.TickCount - W.LastCastAttemptT > Game.Ping + 300) { W.Cast(WGrabObject); W.LastCastAttemptT = Utils.TickCount; } else if (target != null && Player.Spellbook.GetSpell(SpellSlot.W).ToggleState != 1 && W.IsReady() && Utils.TickCount - W.LastCastAttemptT > Game.Ping + 100) { if (OrbManager.WObject(false) != null) { W.From = OrbManager.WObject(false).ServerPosition; W.Cast(target, false, true); } } } else if (target != null && Player.Spellbook.GetSpell(SpellSlot.W).ToggleState != 1 && W.IsReady() && Utils.TickCount - W.LastCastAttemptT > Game.Ping + 100) { if (OrbManager.WObject(false) != null) { W.From = OrbManager.WObject(false).ServerPosition; W.Cast(target, false, true); } } if (E.IsReady() && (Config.Item("UseECombo").GetValue <bool>())) { foreach (var orb in OrbManager.GetOrbs(true)) { if (Player.Distance(orb) < E.Range + 100) { var startPoint = orb.To2D().Extend(Player.ServerPosition.To2D(), 100); var endPoint = Player.ServerPosition.To2D() .Extend(orb.To2D(), Player.Distance(orb) > 200 ? 1300 : 1000); QE.Delay = E.Delay + Player.Distance(orb) / E.Speed; QE.From = orb; var enemyPred = QE.GetPrediction(target); if (enemyPred.Hitchance >= HitChance.VeryHigh && enemyPred.UnitPosition.To2D().Distance(startPoint, endPoint, false) < QE.Width + target.BoundingRadius) { E.Cast(orb, true); W.LastCastAttemptT = Utils.TickCount; return; } } } } if (E.IsReady() && Q.IsReady() && (Config.Item("UseQECombo").GetValue <bool>())) { QE.Delay = E.Delay + Q.Range / E.Speed; QE.From = Player.ServerPosition.To2D().Extend(target.ServerPosition.To2D(), Q.Range).To3D(); var prediction = QE.GetPrediction(target); if (prediction.Hitchance >= HitChance.High) { Q.Cast(Player.ServerPosition.To2D().Extend(prediction.CastPosition.To2D(), Q.Range - 100)); QET = Utils.TickCount; W.LastCastAttemptT = Utils.TickCount; } } if (R.IsReady() && (Config.Item("UseRCombo").GetValue <bool>())) { if (target.Health < R.GetDamage(target)) { R.Cast(target); } } }
private static int GetOrbCount() { OrbManager.GetOrbs().Count(); return(OrbManager.GetOrbs().Count()); }
private static void Combo() { var target = TargetSelector.GetTarget(1300, TargetSelector.DamageType.Magical); if (Q.IsReady() && (Config.Item("UseQCombo").GetValue <bool>())) { var Qprediction = Q.GetPrediction(target); if (Qprediction.Hitchance >= HitChance.VeryHigh) { Q.Cast(Qprediction.CastPosition); } } if (Player.Spellbook.GetSpell(SpellSlot.W).ToggleState == 1 && W.IsReady() && Config.Item("UseWCombo").GetValue <bool>()) { foreach (var enemy in HeroManager.Enemies.Where(x => x.IsValidTarget(W.Range + W.Width) && W.GetPrediction(x).Hitchance >= HitChance.High)) { UseW(enemy, enemy); } } if (E.IsReady() && (Config.Item("UseECombo").GetValue <bool>())) { foreach (var orb in OrbManager.GetOrbs(true)) { if (Player.Distance(orb) < E.Range + 100) { var startPoint = orb.To2D().Extend(Player.ServerPosition.To2D(), 100); var endPoint = Player.ServerPosition.To2D() .Extend(orb.To2D(), Player.Distance(orb) > 200 ? 1300 : 1000); QE.Delay = E.Delay + Player.Distance(orb) / E.Speed; QE.From = orb; var enemyPred = QE.GetPrediction(target); if (enemyPred.Hitchance >= HitChance.VeryHigh && enemyPred.UnitPosition.To2D().Distance(startPoint, endPoint, false) < QE.Width + target.BoundingRadius) { E.Cast(orb, true); W.LastCastAttemptT = Utils.TickCount; return; } } } } if (E.IsReady() && Q.IsReady() && (Config.Item("UseQECombo").GetValue <bool>())) { QE.Delay = E.Delay + Q.Range / E.Speed; QE.From = Player.ServerPosition.To2D().Extend(target.ServerPosition.To2D(), Q.Range).To3D(); var prediction = QE.GetPrediction(target); if (prediction.Hitchance >= HitChance.High) { Q.Cast(Player.ServerPosition.To2D().Extend(prediction.CastPosition.To2D(), Q.Range - 100)); QET = Utils.TickCount; W.LastCastAttemptT = Utils.TickCount; } } if (R.IsReady() && (Config.Item("UseRCombo").GetValue <bool>())) { if (target.Health < R.GetDamage(target)) { R.Cast(target); } } }