public static void JungleFarm() { var useQ = EntryPoint.Menu.Item("l33t.stds.junglefarming.qmode").GetValue <bool>(); var useW = EntryPoint.Menu.Item("l33t.stds.junglefarming.wmode").GetValue <bool>(); var useE = EntryPoint.Menu.Item("l33t.stds.junglefarming.emode").GetValue <bool>(); var mobs = ObjectCache.GetMinions( ObjectManager.Player.ServerPosition, Spells[SpellSlot.W].Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth); if (mobs.Count <= 0) { return; } var mob = mobs[0]; if (Spells[SpellSlot.Q].IsReady() && useQ) { Spells[SpellSlot.Q].Instance.Cast(mob); Spells[SpellSlot.Q].LastCastAttemptTick = (int)(Game.ClockTime * 0x3E8); } if (Spells[SpellSlot.W].IsReady() && useW && Environment.TickCount - Spells[SpellSlot.Q].LastCastAttemptTick > 800) { Spells[SpellSlot.W].Instance.Cast(mob); Spells[SpellSlot.W].LastCastAttemptTick = (int)(Game.ClockTime * 0x3E8); } if (useE && Spells[SpellSlot.E].IsReady()) { Spells[SpellSlot.E].Instance.Cast(mob); Spells[SpellSlot.E].LastCastAttemptTick = (int)(Game.ClockTime * 0x3E8); } }
public static void ProcessFarm(bool laneClear = false) { if (!Orbwalking.CanMove(40) && (laneClear && EntryPoint.Menu.Item("l33t.stds.farming.lcmana").GetValue <Slider>().Value < EntryPoint.Player.ManaPercent || !laneClear && EntryPoint.Menu.Item("l33t.stds.farming.farmmana").GetValue <Slider>().Value < EntryPoint.Player.ManaPercent)) { return; } var rangedMinionsQ = ObjectCache.GetMinions( ObjectManager.Player.ServerPosition, Spells[SpellSlot.Q].Range + Spells[SpellSlot.Q].Instance.Width + 30, MinionTypes.Ranged); var allMinionsQ = ObjectCache.GetMinions( ObjectManager.Player.ServerPosition, Spells[SpellSlot.Q].Range + Spells[SpellSlot.Q].Instance.Width + 30); var rangedMinionsW = ObjectCache.GetMinions( ObjectManager.Player.ServerPosition, Spells[SpellSlot.W].Range + Spells[SpellSlot.W].Instance.Width + 30, MinionTypes.Ranged); var allMinionsW = ObjectCache.GetMinions( ObjectManager.Player.ServerPosition, Spells[SpellSlot.W].Range + Spells[SpellSlot.W].Instance.Width + 30); var rangedMinionsE = ObjectCache.GetMinions( ObjectManager.Player.ServerPosition, Spells[SpellSlot.E].Range + Spells[SpellSlot.E].Instance.Width + 30, MinionTypes.Ranged); var allMinionsE = ObjectCache.GetMinions( ObjectManager.Player.ServerPosition, Spells[SpellSlot.E].Range + Spells[SpellSlot.E].Instance.Width + 30); var useQi = EntryPoint.Menu.Item("l33t.stds.farming.qmode").GetValue <StringList>().SelectedIndex; var useWi = EntryPoint.Menu.Item("l33t.stds.farming.wmode").GetValue <StringList>().SelectedIndex; var useEi = EntryPoint.Menu.Item("l33t.stds.farming.emode").GetValue <StringList>().SelectedIndex; var useQ = (laneClear && (useQi == 1 || useQi == 2)) || (!laneClear && (useQi == 0 || useQi == 2)); var useW = (laneClear && (useWi == 1 || useWi == 2)) || (!laneClear && (useWi == 0 || useWi == 2)); var useE = (laneClear && (useEi == 1 || useEi == 2)) || (!laneClear && (useEi == 0 || useEi == 2)); ProcessFarmQ(useQ, laneClear, rangedMinionsQ, allMinionsQ); if (laneClear) { ProcessFarmW(useW, rangedMinionsW, allMinionsW); ProcessFarmE(useE, rangedMinionsE, allMinionsE); } }
private static void DrawDebug() { var minions = ObjectCache.GetMinions(); var heros = ObjectCache.GetHeroes(); Sprite.Begin(SpriteFlags.AlphaBlend); Font.DrawText( Sprite, "Close Minion Count: " + (minions != null ? minions.Count(m => m.IsValidTarget(475f)) : 0), (int)(Drawing.Width * 0.90f), (int)(Drawing.Height * 0.64f), Color.White); Font.DrawText( Sprite, "Minion Count: " + (minions != null ? minions.Count() : 0), (int)(Drawing.Width * 0.90f), (int)(Drawing.Height * 0.625f), Color.White); Font.DrawText( Sprite, "Hero Count: " + (heros != null ? heros.Count() : 0), (int)(Drawing.Width * 0.90f), (int)(Drawing.Height * 0.615f), Color.White); FontB.DrawText( Sprite, "Welcome back, " + ObjectManager.Player.Name + ".", (int)(Drawing.Width * 0.90f), (int)(Drawing.Height * 0.60f), Color.Red); Sprite.End(); }
public static void OnDraw(EventArgs args) { if (EntryPoint.Menu.Item("l33t.stds.drawing.drawDebug").GetValue <bool>()) { var minions = ObjectCache.GetMinions(); var heros = ObjectCache.GetHeroes(); Sprite.Begin(SpriteFlags.AlphaBlend); Font.DrawText( Sprite, "Close Minion Count: " + (minions != null ? minions.Count(m => m.IsValidTarget(475f)) : 0), (int)(Drawing.Width * 0.90f), (int)(Drawing.Height * 0.64f), Color.White); Font.DrawText( Sprite, "Minion Count: " + (minions != null ? minions.Count() : 0), (int)(Drawing.Width * 0.90f), (int)(Drawing.Height * 0.625f), Color.White); Font.DrawText( Sprite, "Hero Count: " + (heros != null ? heros.Count() : 0), (int)(Drawing.Width * 0.90f), (int)(Drawing.Height * 0.615f), Color.White); FontB.DrawText( Sprite, "Welcome back, " + ObjectManager.Player.Name + ".", (int)(Drawing.Width * 0.90f), (int)(Drawing.Height * 0.60f), Color.Red); Sprite.End(); } var classic = EntryPoint.Menu.Item("l33t.stds.drawing.classic").GetValue <bool>(); var playerPosition = EntryPoint.Player.Position; foreach (var spell in Mechanics.Spells.Where( spell => EntryPoint.Menu.Item("l33t.stds.drawing.draw" + spell.Key) != null && EntryPoint.Menu.Item("l33t.stds.drawing.draw" + spell.Key).GetValue <Circle>().Active)) { if (classic) { Drawing.DrawCircle( playerPosition, spell.Value.Range, EntryPoint.Menu.Item("l33t.stds.drawing.draw" + spell.Key).GetValue <Circle>().Color); } else { Render.Circle.DrawCircle( playerPosition, spell.Value.Range, EntryPoint.Menu.Item("l33t.stds.drawing.draw" + spell.Key).GetValue <Circle>().Color); } } if (EntryPoint.Menu.Item("l33t.stds.drawing.drawText").GetValue <bool>()) { foreach (var enemy in ObjectCache.GetHeroes().Where(e => e.IsVisible && !e.IsDead)) { var hpBarPos = enemy.HPBarPosition; hpBarPos.X += 45; hpBarPos.Y += 18; var killText = ""; var combodamage = enemy.GetComboDamage( EntryPoint.Menu.Item("l33t.stds.combo.useQ").GetValue <bool>(), EntryPoint.Menu.Item("l33t.stds.combo.useW").GetValue <bool>(), EntryPoint.Menu.Item("l33t.stds.combo.useE").GetValue <bool>(), EntryPoint.Menu.Item("l33t.stds.combo.useR").GetValue <bool>()); var percentHPleftAfterCombo = (enemy.Health - combodamage) / enemy.MaxHealth; var percentHPleft = enemy.Health / enemy.MaxHealth; if (percentHPleftAfterCombo < 0) { percentHPleftAfterCombo = 0; } var comboXPos = hpBarPos.X - 36 + (107 * percentHPleftAfterCombo); double currentHpxPos = hpBarPos.X - 36 + (107 * percentHPleft); var barcolor = System.Drawing.Color.FromArgb(100, 0, 220, 0); var barcolorline = System.Drawing.Color.WhiteSmoke; if (combodamage + Mechanics.Spells[SpellSlot.Q].Damage(enemy) + EntryPoint.Player.GetAutoAttackDamage(enemy) * 2 > enemy.Health) { killText = "Killable by: Full Combo + 1Q + 2AA"; if (combodamage >= enemy.Health) { killText = "Killable by: Full Combo"; } barcolor = System.Drawing.Color.FromArgb(100, 255, 255, 0); barcolorline = System.Drawing.Color.SpringGreen; var linecolor = barcolor; if ( enemy.GetComboDamage( EntryPoint.Menu.Item("l33t.stds.combo.useQ").GetValue <bool>(), EntryPoint.Menu.Item("l33t.stds.combo.useW").GetValue <bool>(), EntryPoint.Menu.Item("l33t.stds.combo.useE").GetValue <bool>(), false) > enemy.Health) { killText = "Killable by: Q + W + E"; barcolor = System.Drawing.Color.FromArgb(130, 255, 70, 0); linecolor = System.Drawing.Color.FromArgb(150, 255, 0, 0); } if (EntryPoint.Menu.Item("l33t.stds.drawing.drawGank").GetValue <bool>()) { var pos = EntryPoint.Player.Position + Vector3.Normalize(enemy.Position - EntryPoint.Player.Position) * 100; var myPos = Drawing.WorldToScreen(pos); pos = EntryPoint.Player.Position + Vector3.Normalize(enemy.Position - EntryPoint.Player.Position) * 350; var ePos = Drawing.WorldToScreen(pos); Drawing.DrawLine(myPos.X, myPos.Y, ePos.X, ePos.Y, 1, linecolor); } } var killTextPos = Drawing.WorldToScreen(enemy.Position); var hPleftText = Math.Round(percentHPleftAfterCombo * 100) + "%"; Drawing.DrawLine((float)comboXPos, hpBarPos.Y, (float)comboXPos, hpBarPos.Y + 5, 1, barcolorline); if (EntryPoint.Menu.Item("l33t.stds.drawing.drawKillText").GetValue <bool>()) { Drawing.DrawText(killTextPos[0] - 105, killTextPos[1] + 25, barcolor, killText); } if (EntryPoint.Menu.Item("l33t.stds.drawing.drawKillTextHP").GetValue <bool>()) { Drawing.DrawText(hpBarPos.X + 98, hpBarPos.Y + 5, barcolor, hPleftText); } if (EntryPoint.Menu.Item("l33t.stds.drawing.drawHPFill").GetValue <bool>()) { var diff = currentHpxPos - comboXPos; for (var i = 0; i < diff; i++) { Drawing.DrawLine( (float)comboXPos + i, hpBarPos.Y + 2, (float)comboXPos + i, hpBarPos.Y + 10, 1, barcolor); } } } } if (EntryPoint.Menu.Item("l33t.stds.drawing.drawQEC").GetValue <Circle>().Active&& EntryPoint.Menu.Item("l33t.stds.qesettings.qetocursor").GetValue <KeyBind>().Active&& Mechanics.Spells[SpellSlot.Q].IsReady()) { var target = TargetSelector.GetTarget( Mechanics.Spells[SpellSlot.SphereE].Range, TargetSelector.DamageType.Magical); if (target.IsValidTarget()) { if (classic) { Drawing.DrawCircle( Game.CursorPos, 150f, (target.Distance(Game.CursorPos, true) <= 22500) ? System.Drawing.Color.Red : EntryPoint.Menu.Item("l33t.stds.drawing.drawQEC").GetValue <Circle>().Color); } else { Render.Circle.DrawCircle( Game.CursorPos, 150f, (target.Distance(Game.CursorPos, true) <= 22500) ? System.Drawing.Color.Red : EntryPoint.Menu.Item("l33t.stds.drawing.drawQEC").GetValue <Circle>().Color); } } } if (EntryPoint.Menu.Item("l33t.stds.drawing.drawHUD").GetValue <bool>()) { if (EntryPoint.Menu.Item("l33t.stds.harass.togglekey").GetValue <KeyBind>().Active) { Drawing.DrawText( Drawing.Width * 0.90f, Drawing.Height * 0.68f, System.Drawing.Color.Yellow, "Auto Harass : On"); } else { Drawing.DrawText( Drawing.Width * 0.90f, Drawing.Height * 0.68f, System.Drawing.Color.DarkRed, "Auto Harass : Off"); } if (EntryPoint.Menu.Item("l33t.stds.ks.togglekey").GetValue <KeyBind>().Active) { Drawing.DrawText( Drawing.Width * 0.90f, Drawing.Height * 0.665f, System.Drawing.Color.Yellow, "Auto KS : On"); } else { Drawing.DrawText( Drawing.Width * 0.90f, Drawing.Height * 0.665f, System.Drawing.Color.DarkRed, "Auto KS : Off"); } } // Draw QE MAP if (EntryPoint.Menu.Item("l33t.stds.drawing.drawQEMAP").GetValue <bool>()) { var qeTarget = TargetSelector.GetTarget( Mechanics.Spells[SpellSlot.SphereE].Range, TargetSelector.DamageType.Magical); if (qeTarget.IsValidTarget()) { var sPos = Prediction.GetPrediction( qeTarget, Mechanics.Spells[SpellSlot.Q].Delay + Mechanics.Spells[SpellSlot.E].Delay) .UnitPosition; var tPos = Mechanics.Spells[SpellSlot.SphereE].Instance.GetPrediction(qeTarget); if (tPos != null && EntryPoint.Player.Distance(sPos, true) > Math.Pow(Mechanics.Spells[SpellSlot.E].Range, 2) && (Mechanics.Spells[SpellSlot.E].IsReady() || Mechanics.Spells[SpellSlot.E].Instance.Instance.CooldownExpires - Game.Time < 2) && Mechanics.Spells[SpellSlot.E].Level > 0) { var color = System.Drawing.Color.Red; var orb = EntryPoint.Player.Position + Vector3.Normalize(sPos - EntryPoint.Player.Position) * Mechanics.Spells[SpellSlot.E].Range; Mechanics.Spells[SpellSlot.SphereE].Instance.Delay = Mechanics.Spells[SpellSlot.Q].Delay + Mechanics.Spells[SpellSlot.E].Delay + EntryPoint.Player.Distance(orb) / Mechanics.Spells[SpellSlot.E].Instance .Speed; if (tPos.Hitchance >= HitChance.Medium) { color = System.Drawing.Color.Green; } if (Mechanics.Spells[SpellSlot.Q].Instance.Instance.ManaCost + Mechanics.Spells[SpellSlot.E].Instance.Instance.ManaCost > EntryPoint.Player.Mana) { color = System.Drawing.Color.DarkBlue; } var pos = EntryPoint.Player.Position + Vector3.Normalize(tPos.UnitPosition - EntryPoint.Player.Position) * 700; if (classic) { Drawing.DrawCircle(pos, Mechanics.Spells[SpellSlot.Q].Instance.Width, color); Drawing.DrawCircle( tPos.UnitPosition, Mechanics.Spells[SpellSlot.Q].Instance.Width / 2, color); } else { Render.Circle.DrawCircle(pos, Mechanics.Spells[SpellSlot.Q].Instance.Width, color); Render.Circle.DrawCircle( tPos.UnitPosition, Mechanics.Spells[SpellSlot.Q].Instance.Width / 2, color); } var sp1 = pos + Vector3.Normalize(EntryPoint.Player.Position - pos) * 100f; var sp = Drawing.WorldToScreen(sp1); var ep1 = pos + Vector3.Normalize(pos - EntryPoint.Player.Position) * 592; var ep = Drawing.WorldToScreen(ep1); Drawing.DrawLine(sp.X, sp.Y, ep.X, ep.Y, 2, color); } } } if (EntryPoint.Menu.Item("l33t.stds.drawing.drawWMAP").GetValue <bool>() && Mechanics.Spells[SpellSlot.W].Level > 0) { var color2 = System.Drawing.Color.FromArgb(100, 255, 0, 0); var wTarget = TargetSelector.GetTarget( Mechanics.Spells[SpellSlot.W].Range + Mechanics.Spells[SpellSlot.W].Instance.Width, TargetSelector.DamageType.Magical); if (wTarget.IsValidTarget()) { var pos2 = Mechanics.Spells[SpellSlot.W].Instance.GetPrediction(wTarget, true); if (pos2.Hitchance >= HitChance.High) { color2 = System.Drawing.Color.FromArgb(100, 50, 150, 255); } if (classic) { Drawing.DrawCircle(pos2.UnitPosition, Mechanics.Spells[SpellSlot.W].Instance.Width, color2); } else { Render.Circle.DrawCircle( pos2.UnitPosition, Mechanics.Spells[SpellSlot.W].Instance.Width, color2); } } } }
public static void ProcessFarm(bool laneClear = false) { if (!Orbwalking.CanMove(40)) { return; } var rangedMinionsQ = ObjectCache.GetMinions( ObjectManager.Player.ServerPosition, Spells[SpellSlot.Q].Range + Spells[SpellSlot.Q].Instance.Width + 30, MinionTypes.Ranged); var allMinionsQ = ObjectCache.GetMinions( ObjectManager.Player.ServerPosition, Spells[SpellSlot.Q].Range + Spells[SpellSlot.Q].Instance.Width + 30); var rangedMinionsW = ObjectCache.GetMinions( ObjectManager.Player.ServerPosition, Spells[SpellSlot.W].Range + Spells[SpellSlot.W].Instance.Width + 30, MinionTypes.Ranged); var allMinionsW = ObjectCache.GetMinions( ObjectManager.Player.ServerPosition, Spells[SpellSlot.W].Range + Spells[SpellSlot.W].Instance.Width + 30); var rangedMinionsE = ObjectCache.GetMinions( ObjectManager.Player.ServerPosition, Spells[SpellSlot.E].Range + Spells[SpellSlot.E].Instance.Width + 30, MinionTypes.Ranged); var allMinionsE = ObjectCache.GetMinions( ObjectManager.Player.ServerPosition, Spells[SpellSlot.E].Range + Spells[SpellSlot.E].Instance.Width + 30); var useQi = EntryPoint.Menu.Item("l33t.stds.farming.qmode").GetValue <StringList>().SelectedIndex; var useWi = EntryPoint.Menu.Item("l33t.stds.farming.wmode").GetValue <StringList>().SelectedIndex; var useEi = EntryPoint.Menu.Item("l33t.stds.farming.emode").GetValue <StringList>().SelectedIndex; var useQ = (laneClear && (useQi == 1 || useQi == 2)) || (!laneClear && (useQi == 0 || useQi == 2)); var useW = (laneClear && (useWi == 1 || useWi == 2)) || (!laneClear && (useWi == 0 || useWi == 2)); var useE = (laneClear && (useEi == 1 || useEi == 2)) || (!laneClear && (useEi == 0 || useEi == 2)); if (useQ && Spells[SpellSlot.Q].IsReady()) { if (laneClear) { var fl1 = Spells[SpellSlot.Q].Instance.GetCircularFarmLocation( rangedMinionsQ, Spells[SpellSlot.Q].Instance.Width); var fl2 = Spells[SpellSlot.Q].Instance.GetCircularFarmLocation( allMinionsQ, Spells[SpellSlot.Q].Instance.Width); if (fl1.MinionsHit >= 3) { Spells[SpellSlot.Q].Instance.Cast(fl1.Position); Spells[SpellSlot.Q].LastCastAttemptTick = (int)(Game.ClockTime * 0x3E8); } else if (fl2.MinionsHit >= 2 || allMinionsQ.Count == 1) { Spells[SpellSlot.Q].Instance.Cast(fl2.Position); Spells[SpellSlot.Q].LastCastAttemptTick = (int)(Game.ClockTime * 0x3E8); } } else { foreach (var minion in allMinionsQ.Where( minion => !Orbwalking.InAutoAttackRange(minion) && minion.Health < 0.75 * Spells[SpellSlot.Q].Damage(minion))) { Spells[SpellSlot.Q].Instance.Cast(minion); Spells[SpellSlot.Q].LastCastAttemptTick = (int)(Game.ClockTime * 0x3E8); } } } if (!useW || !Spells[SpellSlot.W].IsReady() || allMinionsW.Count <= 3 || !laneClear) { return; } if (Spells[SpellSlot.W].Instance.Instance.ToggleState == 1) { var gObjectPos = GetGrabbableObjectPos(false); if (gObjectPos.To2D().IsValid() && Environment.TickCount - Spells[SpellSlot.W].LastCastAttemptTick > Game.Ping + 150) { Spells[SpellSlot.W].Instance.Cast(gObjectPos); Spells[SpellSlot.W].LastCastAttemptTick = (int)(Game.ClockTime * 0x3E8); } } else if (Spells[SpellSlot.W].Instance.Instance.ToggleState != 1) { var fl1 = Spells[SpellSlot.Q].Instance.GetCircularFarmLocation( rangedMinionsW, Spells[SpellSlot.W].Instance.Width); var fl2 = Spells[SpellSlot.Q].Instance.GetCircularFarmLocation( allMinionsW, Spells[SpellSlot.W].Instance.Width); if (fl1.MinionsHit >= 3 && Spells[SpellSlot.W].Instance.IsInRange(fl1.Position.To3D())) { Spells[SpellSlot.W].Instance.Cast(fl1.Position); Spells[SpellSlot.W].LastCastAttemptTick = (int)(Game.ClockTime * 0x3E8); } else if (fl2.MinionsHit >= 1 && Spells[SpellSlot.W].Instance.IsInRange(fl2.Position.To3D()) && fl1.MinionsHit <= 2) { Spells[SpellSlot.W].Instance.Cast(fl2.Position); Spells[SpellSlot.W].LastCastAttemptTick = (int)(Game.ClockTime * 0x3E8); } } if (useE && Spells[SpellSlot.E].IsReady()) { var fl1 = Spells[SpellSlot.E].Instance.GetCircularFarmLocation( rangedMinionsE, Spells[SpellSlot.E].Instance.Width); var fl2 = Spells[SpellSlot.E].Instance.GetCircularFarmLocation( allMinionsE, Spells[SpellSlot.E].Instance.Width); if (fl1.MinionsHit >= 3) { Spells[SpellSlot.E].Instance.Cast(fl1.Position); Spells[SpellSlot.E].LastCastAttemptTick = (int)(Game.ClockTime * 0x3E8); } else if (fl2.MinionsHit >= 1 && fl1.MinionsHit <= 2) { Spells[SpellSlot.E].Instance.Cast(fl2.Position); Spells[SpellSlot.E].LastCastAttemptTick = (int)(Game.ClockTime * 0x3E8); } } }