static AutoWalker() { GameID = DateTime.Now.Ticks + "" + RandomString(10); newPF = MainMenu.GetMenu("AB").Get <CheckBox>("newPF").CurrentValue; NavGraph = new NavGraph(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "EloBuddy\\AutoBuddyPlus")); PfNodes = new List <Vector3>(); color = new ColorBGRA(79, 219, 50, 255); MyNexus = ObjectManager.Get <Obj_HQ>().First(n => n.IsAlly); EneMyNexus = ObjectManager.Get <Obj_HQ>().First(n => n.IsEnemy); EnemyLazer = ObjectManager.Get <Obj_AI_Turret>().FirstOrDefault(tur => !tur.IsAlly && tur.GetLane() == Lane.Spawn); myHero = ObjectManager.Player; initSummonerSpells(); Target = ObjectManager.Player.Position; Orbwalker.DisableMovement = false; Orbwalker.DisableAttacking = false; Game.OnUpdate += Game_OnUpdate; Orbwalker.OverrideOrbwalkPosition = () => Target; if (Orbwalker.HoldRadius > 130 || Orbwalker.HoldRadius < 80) { Chat.Print("=================WARNING=================", Color.Red); Chat.Print("Your hold radius value in orbwalker isn't optimal for AutoBuddy", Color.Aqua); Chat.Print("Please set hold radius through menu=>Orbwalker"); Chat.Print("Recommended values: Hold radius: 80-130, Delay between movements: 100-250"); } Drawing.OnDraw += Drawing_OnDraw; Core.DelayAction(OnEndGame, 20000); updateItems(); oldOrbwalk(); Game.OnTick += OnTick; }
//start of divehelper logic private static float minionTankCheck(Obj_AI_Turret enemytower) { float timetanked = 0; if (enemytower == null) { return(timetanked); } var allyminionsundertower = ObjectManager.Get <Obj_AI_Minion>().Where(x => x.Distance(enemytower) < 900 && !x.IsDead && x.IsAlly); if (allyminionsundertower == null) { return(timetanked); } foreach (var minion in allyminionsundertower) { float shotssurvived = (float)(minion.Health / enemytower.GetAutoAttackDamage(minion)); if (shotssurvived < 1) { shotssurvived = 1; } timetanked += shotssurvived * enemytower.AttackSpeedMod; } float timetankedXD = timetanked; timetanked = 0; return(timetankedXD); }
static AutoWalker() { myNexus = ObjectManager.Get<Obj_HQ>().First(n => n.IsAlly); enemyNexus = ObjectManager.Get<Obj_HQ>().First(n => n.IsEnemy); enemyLazer = ObjectManager.Get<Obj_AI_Turret>().FirstOrDefault(tur => tur.IsEnemy && tur.GetLane() == Lane.Spawn); p = ObjectManager.Player; if (p.Spellbook.GetSpell(SpellSlot.Summoner1).Name == "summonerheal") { Heal = new Spell.Active(SpellSlot.Summoner1); } if (p.Spellbook.GetSpell(SpellSlot.Summoner2).Name == "summonerheal") { Heal = new Spell.Active(SpellSlot.Summoner2); } if (p.Spellbook.GetSpell(SpellSlot.Summoner1).Name == "summonerhaste") { Ghost = new Spell.Active(SpellSlot.Summoner1); } if (p.Spellbook.GetSpell(SpellSlot.Summoner2).Name == "summonerhaste") { Ghost = new Spell.Active(SpellSlot.Summoner2); } target = ObjectManager.Player.Position; Orbwalker.DisableMovement = true; Orbwalker.OnPreAttack += Orbwalker_OnPreAttack; Game.OnTick += OnTick; if (MainMenu.GetMenu("AB").Get<CheckBox>("debuginfo").CurrentValue) Drawing.OnDraw += Drawing_OnDraw; }
public TurretBase(Obj_AI_Turret turret) { _turret = turret; _location = GetTurretLocation(turret); _priority = GetPriority(turret); _difficult = IsDifficult(_priority); }
/// <summary> /// Give me the estimated position via SummonersRift.Base.TowerXYZ /// </summary> public ObjectiveInnerTurret(Vector2 position, ObjectiveOuterTurret requiredTurret) : base(position) { Object = ObjectManager.Get<Obj_AI_Turret>().FirstOrDefault(tower => Math.Abs(tower.Position.X - position.X) < ObjectiveOuterTurret.EstimatedPositionRange && Math.Abs(tower.Position.Y - position.Y) < ObjectiveOuterTurret.EstimatedPositionRange); _requiredTurret = requiredTurret; RequiredObjectives.Add(requiredTurret); }
private void Obj_AI_Hero_OnNewPath(Obj_AI_Base sender, GameObjectNewPathEventArgs args) { if (!IsActive() || !sender.IsMe) { return; } for (int i = 0; i < args.Path.Length; i++) { var point = args.Path[i]; Obj_AI_Turret baseTurret = ObjectManager.Get <Obj_AI_Turret>().Find(turret => IsBaseTurret(turret, 1425, true, point)); if (baseTurret != null) { Vector3 newPos; if (i == 0) { Obj_AI_Turret baseAllyTurret = ObjectManager.Get <Obj_AI_Turret>().Find(turret => IsBaseTurret(turret, 999999999, false, ObjectManager.Player.ServerPosition)); newPos = baseTurret.ServerPosition.Extend(baseAllyTurret.ServerPosition, 1425); ObjectManager.Player.IssueOrder(GameObjectOrder.MoveTo, newPos); return; } else { float dist = args.Path[i - 1].Distance( baseTurret.ServerPosition) - 1425f - 70f; newPos = args.Path[i - 1].Extend(point, dist); } ObjectManager.Player.IssueOrder(GameObjectOrder.MoveTo, newPos); } } }
private void Drawing_OnDraw(EventArgs args) { float turretRange = 800 + Player.Instance.BoundingRadius; int drawRange = towerRangeMenu["rangetodraw"].Cast <Slider>().CurrentValue; foreach (KeyValuePair <int, Obj_AI_Turret> entry in turrets) { Obj_AI_Turret turret = entry.Value; if (turret == null || !turret.IsValid || turret.IsDead) { Core.DelayAction(() => turrets.Remove(entry.Key), 1); continue; } if (turret.IsAlly && !towerRangeMenu["drawallyrange"].Cast <CheckBox>().CurrentValue || turret.IsEnemy && !towerRangeMenu["drawenemyrange"].Cast <CheckBox>().CurrentValue || Player.Instance.IsDead) { continue; } float distToTurret = Player.Instance.ServerPosition.Distance(turret.Position); if (distToTurret < turretRange + drawRange) { if (distToTurret < turretRange && turret.IsEnemy) { Circle.Draw(new ColorBGRA(255, 0, 0, 255), turretRange, 5, turret.Position); continue; } float alpha = distToTurret > turretRange ? ((turretRange + drawRange - distToTurret) / 2) / (drawRange / 2) : 1f; Circle.Draw(new ColorBGRA(0, 255, 0, alpha), turretRange, 5, turret.Position); } } }
public static void Harass() { Obj_AI_Turret closestTower = ObjectManager.Get <Obj_AI_Turret>().Where(tur => tur.IsAlly).OrderBy(tur => tur.Distance(player.Position)).First(); if (player.Mana / player.MaxMana * 100 > xMenu.SubMenu("Harass").Item("Harassmana").GetValue <Slider>().Value) { return; } var target = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical); if (target == null) { return; } { if (target.IsValidTarget(Q.Range) && Q.IsReady() && xMenu.Item("hQ").GetValue <bool>() == true) { Q.Cast(target, xMenu.Item("Packet").GetValue <bool>()); } if (target.IsValidTarget(E.Range) && E.IsReady() && xMenu.Item("hE").GetValue <bool>() == true) { E.Cast(target, xMenu.Item("Packet").GetValue <bool>()); E2.Cast(closestTower.ServerPosition); } } }
private static void Harass() { Obj_AI_Turret closestTower = ObjectManager.Get <Obj_AI_Turret>() .Where(tur => tur.IsAlly) .OrderBy(tur => tur.Distance(Player.Position)) .First(); Obj_AI_Hero qTarget = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Magical); if (qTarget != null && Config.Item("UseQHarass").GetValue <bool>() && (qTarget.IsValidTarget(Q.Range) && Q.IsReady())) { Q.Cast(qTarget); } if (qTarget != null && Config.Item("UseWHarass").GetValue <bool>() && W.IsReady()) { W.Cast(); } if (E.IsReady() && Config.Item("UseEHarass").GetValue <bool>()) { sendMovementPacket(closestTower.ServerPosition.To2D()); if (JumpState != 1) { E.Cast(closestTower.ServerPosition); } if (JumpState == 1) { E2.Cast(closestTower.ServerPosition); } } // Had same Harass idea but didn´t know how to script it. Credits to DZ191 }
public static Lane GetLane(this Obj_AI_Turret tur) { if (tur.Name.EndsWith("Shrine_A")) { return(Lane.Spawn); } if (tur.Name.EndsWith("C_02_A") || tur.Name.EndsWith("C_01_A")) { return(Lane.HQ); } if (tur.Name == null || tur.Name.Length < 12) { return(Lane.Unknown); } if (tur.Name[10] == 'R') { return(Lane.Bot); } if (tur.Name[10] == 'C') { return(Lane.Mid); } if (tur.Name[10] == 'L') { return(Lane.Top); } return(Lane.Unknown); }
public static bool IsBaseTurret(Obj_AI_Turret unit, float range, bool enemyTeam, Vector3 from) { if (unit == null || !unit.IsValid) { return false; } if (enemyTeam && unit.Team == ObjectManager.Player.Team) { return false; } else if (!enemyTeam && unit.Team != ObjectManager.Player.Team) { return false; } if (!unit.Name.Contains("TurretShrine_A")) { return false; } var @base = unit as Obj_AI_Base; var unitPosition = @base != null ? @base.ServerPosition : unit.Position; return !(range < float.MaxValue) || !(Vector2.DistanceSquared( (@from.To2D().IsValid() ? @from : ObjectManager.Player.ServerPosition).To2D(), unitPosition.To2D()) > range * range); }
private static List <ChampLane> GetChampLanes(float maxDistance = 3000, float maxDistanceFront = 4000) { Obj_AI_Turret top1 = GetAllyTurret("L_03_A"); Obj_AI_Turret top2 = GetAllyTurret("L_02_A"); Obj_AI_Turret mid1 = GetAllyTurret("C_05_A"); Obj_AI_Turret mid2 = GetAllyTurret("C_04_A"); Obj_AI_Turret bot1 = GetAllyTurret("R_03_A"); Obj_AI_Turret bot2 = GetAllyTurret("R_02_A"); List <ChampLane> ret = new List <ChampLane>(); foreach (AIHeroClient h in EntityManager.Heroes.Allies.Where(hero => hero.IsAlly && !hero.IsMe)) { Lane lane = Lane.Unknown; if (h.Distance(top1) < maxDistanceFront || h.Distance(top2) < maxDistance) { lane = Lane.Top; } else if (h.Distance(mid1) < maxDistanceFront || h.Distance(mid2) < maxDistance) { lane = Lane.Mid; } else if (h.Distance(bot1) < maxDistanceFront || h.Distance(bot2) < maxDistance) { lane = Lane.Bot; } else if (h.FindSummonerSpellSlotFromName("SummonerSmite") != SpellSlot.Unknown) { lane = Lane.Jungle; } ret.Add(new ChampLane(h, lane)); } return(ret); }
public void ChangeLane(Lane l) { status = "selected " + l; Obj_AI_Turret ally = null, enemy = null; if (l == Lane.Top) { ally = (GetAllyTurret("L_03_A") ?? GetAllyTurret("L_02_A")) ?? GetAllyTurret("L_01_A"); enemy = (GetEnemyTurret("L_03_A") ?? GetEnemyTurret("L_02_A")) ?? GetEnemyTurret("L_01_A"); } else if (l == Lane.Bot) { ally = (GetAllyTurret("R_03_A") ?? GetAllyTurret("R_02_A")) ?? GetAllyTurret("R_01_A"); enemy = (GetEnemyTurret("R_03_A") ?? GetEnemyTurret("R_02_A")) ?? GetEnemyTurret("R_01_A"); } else if (l == Lane.Mid) { ally = (GetAllyTurret("C_05_A") ?? GetAllyTurret("C_04_A")) ?? GetAllyTurret("C_03_A"); enemy = (GetEnemyTurret("R_05_A") ?? GetEnemyTurret("R_04_A")) ?? GetEnemyTurret("C_03_A"); } if (ally == null) { ally = GetAllyHQTurret() ?? GetAllySpawnTurret(); } if (enemy == null) { enemy = GetEnemyHQTurret() ?? GetEnemySpawnTurret(); } currentLogic.pushLogic.Reset(ally, enemy, l); }
private static Obj_AI_Turret SpawnTurret() { Obj_AI_Turret spawn = null; spawn = EntityManager.Turrets.Allies.Where(x => x.Distance(Spawn) < 500).First(); return(spawn); }
public static bool IsBaseTurret(Obj_AI_Turret unit, float range, bool enemyTeam, Vector3 from) { if (unit == null || !unit.IsValid) { return(false); } if (enemyTeam && unit.Team == ObjectManager.Player.Team) { return(false); } else if (!enemyTeam && unit.Team != ObjectManager.Player.Team) { return(false); } if (!unit.Name.Contains("TurretShrine_A")) { return(false); } var @base = unit as Obj_AI_Base; var unitPosition = @base != null ? @base.ServerPosition : unit.Position; return(!(range < float.MaxValue) || !(Vector2.DistanceSquared( (@from.To2D().IsValid() ? @from : ObjectManager.Player.ServerPosition).To2D(), unitPosition.To2D()) > range * range)); }
private static List <ChampLane> GetChampLanes(float maxDistance = 2000, float maxDistanceFront = 3000) { Obj_AI_Turret top1 = ObjectManager.Get <Obj_AI_Turret>().First(tur => tur.IsAlly && tur.Name.EndsWith("L_03_A")); Obj_AI_Turret top2 = ObjectManager.Get <Obj_AI_Turret>().First(tur => tur.IsAlly && tur.Name.EndsWith("L_02_A")); Obj_AI_Turret bot1 = ObjectManager.Get <Obj_AI_Turret>().First(tur => tur.IsAlly && tur.Name.EndsWith("R_03_A")); Obj_AI_Turret bot2 = ObjectManager.Get <Obj_AI_Turret>().First(tur => tur.IsAlly && tur.Name.EndsWith("R_02_A")); List <ChampLane> ret = new List <ChampLane>(); foreach (AIHeroClient h in EntityManager.Heroes.Allies.Where(hero => hero.IsAlly && !hero.IsMe)) { Lane lane = Lane.Unknown; if (h.Distance(top1) < maxDistanceFront || h.Distance(top2) < maxDistance) { lane = Lane.Top; } if (h.Distance(bot1) < maxDistanceFront || h.Distance(bot2) < maxDistance) { lane = Lane.Bot; } ret.Add(new ChampLane(h, lane)); } return(ret); }
public static Obj_AI_Turret GetMostCloseTower(this Obj_AI_Base target) { Obj_AI_Turret tur = null; if (target.IsDead) { return(null); } foreach (var turret in ObjectManager.Get <Obj_AI_Turret>().Where(t => t.IsValid && !t.IsDead && t.Health > 1f && t.IsVisible && t.Distance(target) < 1000)) { if (turret != null) { if (tur == null) { tur = turret; } else if (tur != null && tur.Distance(target) > turret.Distance(target)) { tur = turret; } } } return(tur); }
private static Lanes GetLane(Obj_AI_Turret turret) { if ((turret.Distance(Point1) <= 1500 || turret.Distance(Point2) <= 1500 || turret.Distance(Point3) <= 1500 || turret.Distance(Point4) <= 1500 || turret.Distance(Point5) <= 1500 || turret.Distance(Point6) <= 1500 || turret.Distance(Point7) <= 1500 || turret.Distance(Point8) <= 1500 || turret.Distance(Point9) <= 1500 || turret.Distance(Point10) <= 1500 || turret.Distance(Point11) <= 1500 || turret.Distance(Point12) <= 1500 || turret.Distance(Point13) <= 1500 || turret.Distance(Point14) <= 1500 || turret.Distance(Point15) <= 1500 || turret.Distance(Point16) <= 1500 || turret.Distance(Point17) <= 1500 || turret.Distance(Point18) <= 1500 || turret.Distance(Point19) <= 1500 || turret.Distance(Point20) <= 1500 || turret.Distance(Point21) <= 1500 || turret.Distance(Point22) <= 1500 || turret.Distance(Point23) <= 1500 || turret.Distance(Point24) <= 1500 || turret.Distance(Point25) <= 1500)) { return(Lanes.Bot); } if ((turret.Distance(Pointtop1) <= 1500 || turret.Distance(Pointtop2) <= 1500 || turret.Distance(Pointtop3) <= 1500 || turret.Distance(Pointtop4) <= 1500 || turret.Distance(Pointtop5) <= 1500 || turret.Distance(Pointtop6) <= 1500 || turret.Distance(Pointtop7) <= 1500 || turret.Distance(Pointtop8) <= 1500 || turret.Distance(Pointtop9) <= 1500 || turret.Distance(Pointtop10) <= 1500 || turret.Distance(Pointtop11) <= 1500)) { return(Lanes.Top); } if (turret.Distance(Pointmid1) <= 800 || turret.Distance(Pointmid2) <= 800 || turret.Distance(Pointmid3) <= 800 || turret.Distance(Pointmid4) <= 800 || turret.Distance(Pointmid5) <= 800 || turret.Distance(Pointmid6) <= 800 || turret.Distance(Pointmid7) <= 800 || turret.Distance(Pointmid8) <= 800 || turret.Distance(Pointmid9) <= 800 || turret.Distance(Pointmid10) <= 800) { return(Lanes.Mid); } return(Lanes.Unknown); }
private static void FireOnTurretShot(GameObject unit, Obj_AI_Turret turret, TurretShotArgs.TurretShotType type) { if (OnTurretShot != null) { OnTurretShot(MethodBase.GetCurrentMethod().DeclaringType, new TurretShotArgs(unit, turret, type)); } }
/* TODO: UNFINISHED */ private static void MethodMinion() { IEnumerable <Obj_AI_Minion> minions = Globals.GetLaneMinions(2000); if (minions.IsEmpty()) { return; } Obj_AI_Minion target = minions.FirstOrDefault(); if (!target.IsValid()) { return; } if (Globals.MyHero.IsUnderEnemyTurret()) { Obj_AI_Turret _Turret = ObjectManager.Turrets.Enemy.MinOrDefault(x => x.Distance(Globals.MyHero)); Globals.MyHero.IssueOrder(Globals.Tibbers.CanAttack ? GameObjectOrder.AutoAttackPet : GameObjectOrder.MovePet, target); } else { Globals.MyHero.IssueOrder(Globals.Tibbers.CanAttack ? GameObjectOrder.AutoAttackPet : GameObjectOrder.MovePet, target); } }
private static void onDraw(EventArgs args) { Drawing.DrawCircle(LeeSin.Player.Position, 730, Color.Blue); /* if(map.isWall(Game.CursorPos.To2D())) * Drawing.DrawCircle(Game.CursorPos, 200, Color.Red); * else * Drawing.DrawCircle(Game.CursorPos, 200, Color.Beige); * Polygon pol; * if ((pol = map.getInWhichPolygon(Game.CursorPos.To2D())) != null) * { * /*SharpDX.Vector2 start = pol.Points[pol.Count() - 1]; * foreach (SharpDX.Vector2 vecPol in pol.Points) * { * SharpDX.Vector2 closest = pol.ClosestVec(start, vecPol, Game.CursorPos.To2D()); * Drawing.DrawCircle(closest.To3D(), 100, Color.Green); * start = vecPol; * } * Drawing.DrawCircle(LeeSin.Player.Position, 400, Color.Green); * SharpDX.Vector2 proj = pol.getProjOnPolygon(Game.CursorPos.To2D()); * Drawing.DrawCircle(proj.To3D(), 100, Color.Green); * }*/ //ObjectManager.Get<Obj_AI_Turret>().Where(tur => tur.IsAlly).OrderBy(tur => tur.Distance(LeeSin.Player.ServerPosition)).First().Position; Obj_AI_Turret closest_tower = ObjectManager.Get <Obj_AI_Turret>().Where(tur => tur.IsAlly).OrderBy(tur => tur.Distance(LeeSin.Player.ServerPosition)).First(); Obj_AI_Base jumpOn = ObjectManager.Get <Obj_AI_Base>().Where(ally => ally.IsAlly && !(ally is Obj_AI_Turret) && !ally.IsMe && ally.Distance(LeeSin.Player.ServerPosition) < 700).OrderBy(tur => tur.Distance(closest_tower.ServerPosition)).First(); Drawing.DrawCircle(closest_tower.Position, 300, Color.Red); Drawing.DrawCircle(jumpOn.Position, 200, Color.Red); if (LeeSin.LockedTarget != null) { Drawing.DrawCircle(LeeSin.LockedTarget.Position, 200, Color.Red); } foreach (Polygon pol in map.poligs) { pol.Draw(Color.BlueViolet, 3); } if (LeeSin.testSpellCast != null) { Drawing.DrawCircle(LeeSin.testSpellCast.To3D(), 100, Color.Blue); } if (LeeSin.testSpellProj != null) { Drawing.DrawCircle(LeeSin.testSpellProj.To3D(), 100, Color.Red); } //LeeSin.testSpellProj // foreach (Polygon pol in map.poligs) //{ // pol.Draw(Color.Red, 2); //} }
/// <summary> /// Gets the turret tier type. /// </summary> /// <param name="turret"> /// The turret. /// </param> /// <returns> /// The <see cref="TurretType" />. /// </returns> public static TurretType GetTurretType(this Obj_AI_Turret turret) { switch (turret.CharData.BaseSkinName) { case "SRUAP_Turret_Order1": case "SRUAP_Turret_Chaos1": case "ha_ap_orderturret": case "HA_AP_OrderTurret2": case "HA_AP_OrderTurret3": case "HA_AP_ChaosTurret": case "HA_AP_ChaosTurret2": case "HA_AP_ChaosTurret3": return(TurretType.TierOne); case "SRUAP_Turret_Order2": case "SRUAP_Turret_Chaos2": return(TurretType.TierTwo); case "SRUAP_Turret_Order3": case "SRUAP_Turret_Chaos3": return(TurretType.TierThree); case "SRUAP_Turret_Order4": case "SRUAP_Turret_Chaos4": return(TurretType.TierFour); default: return(TurretType.Unknown); } }
static AutoWalker() { GameID = DateTime.Now.Ticks + ""+RandomString(10); newPF = MainMenu.GetMenu("AB").Get<CheckBox>("newPF").CurrentValue; NavGraph=new NavGraph(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "EloBuddy\\AutoBuddyPlus")); PfNodes=new List<Vector3>(); color = new ColorBGRA(79, 219, 50, 255); MyNexus = ObjectManager.Get<Obj_HQ>().First(n => n.IsAlly); EneMyNexus = ObjectManager.Get<Obj_HQ>().First(n => n.IsEnemy); EnemyLazer = ObjectManager.Get<Obj_AI_Turret>().FirstOrDefault(tur => !tur.IsAlly && tur.GetLane() == Lane.Spawn); myHero = ObjectManager.Player; initSummonerSpells(); Target = ObjectManager.Player.Position; Orbwalker.DisableMovement = false; Orbwalker.DisableAttacking = false; Game.OnUpdate += Game_OnUpdate; Orbwalker.OverrideOrbwalkPosition = () => Target; if (Orbwalker.HoldRadius > 130 || Orbwalker.HoldRadius < 80) { Chat.Print("=================WARNING=================", Color.Red); Chat.Print("Your hold radius value in orbwalker isn't optimal for AutoBuddy", Color.Aqua); Chat.Print("Please set hold radius through menu=>Orbwalker"); Chat.Print("Recommended values: Hold radius: 80-130, Delay between movements: 100-250"); } Drawing.OnDraw += Drawing_OnDraw; Core.DelayAction(OnEndGame, 20000); updateItems(); oldOrbwalk(); Game.OnTick += OnTick; }
private void harassMode(Obj_AI_Hero target) { Obj_AI_Turret closestTower = ObjectManager.Get <Obj_AI_Turret>() .Where(tur => tur.IsAlly) .OrderBy(tur => tur.Distance(player.Position)) .First(); if (target != null && target.IsValidTarget(E.Range)) { if (Q.IsReady() && menu.Item("useQH").GetValue <bool>()) { Q.Cast(target, true); } if (W.IsReady() && menu.Item("useWH").GetValue <bool>()) { W.Cast(player, true); } if (E.IsReady() && menu.Item("eTower").GetValue <bool>()) { sendMovementPacket(closestTower.ServerPosition.To2D()); if (jumpStage == FizzJump.PLAYFUL && player.Spellbook.GetSpell(SpellSlot.E).Name == "FizzJump") { E.Cast(closestTower.ServerPosition, true); } if (jumpStage == FizzJump.TRICKSTER && player.Spellbook.GetSpell(SpellSlot.E).Name == "fizzjumptwo") { E2.Cast(closestTower.ServerPosition, true); } } } }
static AutoWalker() { GameID = DateTime.Now.Ticks + "" + RandomString(10); newPF = MainMenu.GetMenu("AB").Get <CheckBox>("newPF").CurrentValue; NavGraph = new NavGraph(Path.Combine(SandboxConfig.DataDirectory, "AutoBuddy")); PfNodes = new List <Vector3>(); color = new ColorBGRA(79, 219, 50, 255); MyNexus = ObjectManager.Get <Obj_HQ>().First(n => n.IsAlly); EneMyNexus = ObjectManager.Get <Obj_HQ>().First(n => n.IsEnemy); EnemyLazer = ObjectManager.Get <Obj_AI_Turret>().FirstOrDefault(tur => !tur.IsAlly && tur.GetLane() == Lane.Spawn); p = ObjectManager.Player; initSummonerSpells(); Chat.Print("Selecting target position."); Target = ObjectManager.Player.Position; Chat.Print("Made it through the orbwalker..."); Orbwalker.DisableMovement = false; Orbwalker.DisableAttacking = false; Game.OnUpdate += Game_OnUpdate; if (!MainMenu.GetMenu("AB").Get <CheckBox>("disableAutoBuddy").CurrentValue) { Orbwalker.OverrideOrbwalkPosition = () => Target; } if (Orbwalker.HoldRadius > 130 || Orbwalker.HoldRadius < 80) { Chat.Print("=================WARNING=================", Color.Red); Chat.Print("Your hold radius value in orbwalker isn't optimal for AutoBuddy", Color.Aqua); Chat.Print("Please set hold radius through menu=>Orbwalker"); Chat.Print("Recommended values: Hold radius: 80-130, Delay between movements: 100-250"); } if (MainMenu.GetMenu("AB").Get <CheckBox>("debuginfo").CurrentValue) { Drawing.OnDraw += Drawing_OnDraw; } Core.DelayAction(OnEndGame, 20000); updateItems(); oldOrbwalk(); Game.OnTick += OnTick; Chat.OnMessage += Chat_OnMessage; Drawing.OnDraw += Drawing_OnDraw; }
public static bool getBackHarass() { Obj_AI_Turret closest_tower = ObjectManager.Get <Obj_AI_Turret>().Where(tur => tur.IsAlly).OrderBy(tur => tur.Distance(Player.ServerPosition)).First(); Obj_AI_Base jumpOn = ObjectManager.Get <Obj_AI_Base>().Where(ally => ally.IsAlly && !(ally is Obj_AI_Turret) && !ally.IsMe && ally.Distance(LeeSin.Player.ServerPosition) < 700).OrderBy(tur => tur.Distance(closest_tower.ServerPosition)).First(); W.Cast(jumpOn); return(false); }
/// <summary> /// A function used to update all turrets /// </summary> public static void Update() { AllyTurrets.Clear(); AllyTurrets = ObjectHandler.Get <Obj_AI_Turret>().FindAll(t => t.IsAlly); EnemyTurrets.Clear(); EnemyTurrets = ObjectHandler.Get <Obj_AI_Turret>().FindAll(t => !t.IsAlly); ClosestAllyTurret = AllyTurrets.OrderBy(t => t.Distance(ObjectHandler.Player.Position)).FirstOrDefault(); ClosestEnemyTurret = EnemyTurrets.OrderBy(t => t.Distance(ObjectHandler.Player.Position)).FirstOrDefault(); }
private static void MoveToTurret() { Obj_AI_Turret turret = EntityManager.Turrets.Allies.Where(x => !x.IsDead).OrderBy(x => x.Distance(Clone)).FirstOrDefault(); if (turret == null) { MoveToMouse(); } Player.IssueOrder(GameObjectOrder.MovePet, turret.Position.Extend(myHero, new Random().Next((int)turret.BoundingRadius, 400)).To3D()); }
public static bool DangerousTurret(Obj_AI_Turret turret) { if (!Config.towerDiveMenu["ylm.towerdive.enabled"].Cast <CheckBox>().CurrentValue) { return(true); } var units = ObjectManager.Get <Obj_AI_Base>().Where(o => (o.IsAlly && (o is AIHeroClient || o.IsMinion)) && turret.Distance(o, true) <= 900 * 900); return(units.Count() >= Config.towerDiveMenu["ylm.towerdive.minAllies"].Cast <Slider>().CurrentValue); }
public static bool DangerousTurret(Obj_AI_Turret turret) { if (!Config.Param <bool>("ylm.towerdive.enabled")) { return(true); } var units = ObjectManager.Get <Obj_AI_Base>().Where(o => (o.IsAlly && (o.IsChampion() || o.IsMinion)) && turret.Distance(o, true) <= 900 * 900); return(units.Count() >= Config.Param <Slider>("ylm.towerdive.minAllies").Value); }
private static void Game_OnGameProcessPacket(GamePacketEventArgs args) { if (args.PacketData[0] == Packet.S2C.TowerAggro.Header) { Packet.S2C.TowerAggro.Struct aggroPacket = Packet.S2C.TowerAggro.Decoded(args.PacketData); Obj_AI_Turret turret = ObjectManager.Get <Obj_AI_Turret>().First(t => t.NetworkId == aggroPacket.TurretNetworkId); Obj_AI_Base target = ObjectManager.Get <Obj_AI_Base>().First(t => t.NetworkId == aggroPacket.TargetNetworkId); Game.PrintChat(turret.BaseSkinName + target.BaseSkinName); } GamePacket p = new GamePacket(args.PacketData); if (p.Header != Packet.S2C.TowerAggro.Header) { return; } if (Packet.S2C.TowerAggro.Decoded(args.PacketData).TargetNetworkId != Player.NetworkId) { return; } if (Game.Time - foundturret > 20 && !recalling) { var turret2 = ObjectManager.Get <Obj_AI_Turret>() .Where(x => x.Distance(Player.Position) < 3500 && x.IsAlly); if (turret2.Any()) { stopfollowing = true; turret = turret2.First(); foundturret = Game.Time; } } if (!stopfollowing || recalling) //따라다니고 있고 리콜중이라면 패스 { return; } Player.IssueOrder(GameObjectOrder.MoveTo, turret); // 터렛으로 움직여 if ((Player.Distance(turret.Position) <= 350) || !(Game.Time - count > 15)) // 15초가 안지났고 터렛과의 거리가 350보다 크면 { return; } Player.Spellbook.CastSpell(SpellSlot.Recall); recalling = true; count = Game.Time; }
private void castR(Obj_AI_Hero target) { if (target == null || !target.IsValidTarget(R.Width)) { return; } Obj_AI_Turret closestTower = ObjectManager.Get <Obj_AI_Turret>() .Where(tur => tur.IsAlly) .OrderBy(tur => tur.Distance(player.Position)) .First(); Obj_AI_Hero allyHero = ObjectManager.Get <Obj_AI_Hero>().Where(hero => hero.IsAlly).OrderBy( hero => hero.Distance(player.Position)).First(); if (player.GetSpellDamage(target, SpellSlot.R) - 10 > target.Health && menu.Item("alwaysR").GetValue <bool>()) { R.Cast(target, true); } switch (menu.Item("throwPos").GetValue <StringList>().SelectedIndex) { case 0: // wall foreach ( Obj_AI_Hero collisionTarget in ObjectManager.Get <Obj_AI_Hero>().Where(hero => hero.IsValidTarget(R.Width))) { CastRToCollision(collisionTarget); } break; case 1: // mouse if (R.IsReady()) { R.Cast(Game.CursorPos.To2D(), true); } break; case 2: // closest tower //TODO: check if will land under turret if (closestTower.Distance(target) <= 800 && R.IsReady()) { R.Cast(closestTower.Position, true); } break; case 3: // closest ally if (allyHero.IsValid && R.IsReady()) { R.Cast(allyHero.Position, true); } break; } }
public static bool IsInTurret(this Obj_AI_Base targetHero, Obj_AI_Turret targetTurret = null) { if (targetTurret == null) { targetTurret = targetHero.GetMostCloseTower(); } if (targetTurret != null && targetHero.Distance(targetTurret) < 850) { return true; } return false; }
//Used for fleemode private static bool minionsUnderTower(Obj_AI_Turret enemytower) { if (enemytower.Spellbook.IsAutoAttacking && !enemytower.IsAttackingPlayer) { return(true); } else { return(false); } }
public static bool IsUnderTurret(Vector3 position) { Obj_AI_Turret closestTurret = EntityManager.Turrets.Enemies.Where(a => a.IsInRange(position, a.AttackRange + 35) && !a.IsDead).OrderBy(a => a.Distance(position)).FirstOrDefault(); if (closestTurret == null) { return(false); } return(true); }
public ObjectiveBaseTurret(Vector2 position, ObjectiveInhibitor inhib1, ObjectiveInhibitor inhib2, ObjectiveInhibitor inhib3) : base(position) { Object = ObjectManager.Get<Obj_AI_Turret>().FirstOrDefault(tower => Math.Abs(tower.Position.X - position.X) < ObjectiveOuterTurret.EstimatedPositionRange && Math.Abs(tower.Position.Y - position.Y) < ObjectiveOuterTurret.EstimatedPositionRange); _inhib1 = inhib1; _inhib2 = inhib2; _inhib3 = inhib3; RequireAll = false; RequiredObjectives.Add(inhib1); RequiredObjectives.Add(inhib2); RequiredObjectives.Add(inhib3); }
//static void Game_OnGameNotifyEvent(GameNotifyEventArgs args) //{ // args. //} private static void Game_OnGameProcessPacket(GamePacketEventArgs args) { var p = new GamePacket(args.PacketData); if (p.Header != Packet.S2C.TowerAggro.Header) { return; } if (Packet.S2C.TowerAggro.Decoded(args.PacketData).TargetNetworkId != ObjectManager.Player.NetworkId) { return; } if (Game.Time - foundturret > 20 && !recalling) { var turret2 = ObjectManager.Get<Obj_AI_Turret>() .Where(x => x.IsAlly) .OrderBy(x => Vector3.Distance(ObjectManager.Player.Position, x.Position)) .FirstOrDefault(); if (turret2 != null) { stopdoingshit = true; turret = turret2; foundturret = Game.Time; } } if (!stopdoingshit || recalling) { return; } ObjectManager.Player.IssueOrder(GameObjectOrder.MoveTo, turret); if (!(ObjectManager.Player.Distance(turret) <= 350) || !(Game.Time - count > 15)) { return; } Talk(stufftosay[saycounter]); saycounter++; ObjectManager.Player.Spellbook.CastSpell(SpellSlot.Recall); recalling = true; count = Game.Time; }
/// <summary> /// Give me the estimated position via SummonersRift.Base.TowerXYZ /// </summary> /// <param name="position"></param> public ObjectiveOuterTurret(Vector2 position) : base(position) { Object = ObjectManager.Get<Obj_AI_Turret>().FirstOrDefault(tower => Math.Abs(tower.Position.X - position.X) < EstimatedPositionRange && Math.Abs(tower.Position.Y - position.Y) < EstimatedPositionRange); }
private static Lanes GetLane(Obj_AI_Turret turret) { if ((turret.Distance(Point1) <= 1500 || turret.Distance(Point2) <= 1500 || turret.Distance(Point3) <= 1500 || turret.Distance(Point4) <= 1500 || turret.Distance(Point5) <= 1500 || turret.Distance(Point6) <= 1500 || turret.Distance(Point7) <= 1500 || turret.Distance(Point8) <= 1500 || turret.Distance(Point9) <= 1500 || turret.Distance(Point10) <= 1500 || turret.Distance(Point11) <= 1500 || turret.Distance(Point12) <= 1500 || turret.Distance(Point13) <= 1500 || turret.Distance(Point14) <= 1500 || turret.Distance(Point15) <= 1500 || turret.Distance(Point16) <= 1500 || turret.Distance(Point17) <= 1500 || turret.Distance(Point18) <= 1500 || turret.Distance(Point19) <= 1500 || turret.Distance(Point20) <= 1500 || turret.Distance(Point21) <= 1500 || turret.Distance(Point22) <= 1500 || turret.Distance(Point23) <= 1500 || turret.Distance(Point24) <= 1500 || turret.Distance(Point25) <= 1500)) { return Lanes.Bot; } if ((turret.Distance(Pointtop1) <= 1500 || turret.Distance(Pointtop2) <= 1500 || turret.Distance(Pointtop3) <= 1500 || turret.Distance(Pointtop4) <= 1500 || turret.Distance(Pointtop5) <= 1500 || turret.Distance(Pointtop6) <= 1500 || turret.Distance(Pointtop7) <= 1500 || turret.Distance(Pointtop8) <= 1500 || turret.Distance(Pointtop9) <= 1500 || turret.Distance(Pointtop10) <= 1500 || turret.Distance(Pointtop11) <= 1500)) { return Lanes.Top; } if (turret.Distance(Pointmid1) <= 800 || turret.Distance(Pointmid2) <= 800 || turret.Distance(Pointmid3) <= 800 || turret.Distance(Pointmid4) <= 800 || turret.Distance(Pointmid5) <= 800 || turret.Distance(Pointmid6) <= 800 || turret.Distance(Pointmid7) <= 800 || turret.Distance(Pointmid8) <= 800 || turret.Distance(Pointmid9) <= 800 || turret.Distance(Pointmid10) <= 800) { return Lanes.Mid; } return Lanes.Unknown; }
public static void DoAutoplay() { if (Bot.InFountain() && RandomDecision()) { WalkAround(Bot.Position); } var timeElapsed = Environment.TickCount - _loaded; if (!Bot.IsDead) { try { var turret = MetaHandler.EnemyTurrets.FirstOrDefault(t => t.Distance(Bot.Position) < 1200); if (_overrideAttackUnitAction && !_tookRecallDecision) { Bot.IssueOrder(GameObjectOrder.MoveTo, _safepos.To3D()); } if (!Bot.UnderTurret(true)) { _overrideAttackUnitAction = false; } if (Bot.UnderTurret(true) && MetaHandler.NearbyAllyMinions(turret, 750) > 2 && IsBotSafe() && !_tookRecallDecision) { if (turret.Distance(Bot.Position) < Bot.AttackRange && !_overrideAttackUnitAction) Bot.IssueOrder(GameObjectOrder.AttackUnit, turret); } else { if (TargetSelector.GetTarget(Bot.AttackRange, TargetSelector.DamageType.Physical) != null) { Obj_AI_Hero target = TargetSelector.GetTarget(Bot.AttackRange, TargetSelector.DamageType.Physical); if (target != null && target.IsValid && !target.IsDead && IsBotSafe() && !target.UnderTurret(true) && !_overrideAttackUnitAction && !_tookRecallDecision) { Bot.IssueOrder(GameObjectOrder.AttackUnit, target); } } } if (Bot.UnderTurret(true) && MetaHandler.NearbyAllyMinions(turret, 750) < 2) { _safepos.X = (Bot.Position.X + _safe); _safepos.Y = (Bot.Position.Y + _safe); Bot.IssueOrder(GameObjectOrder.MoveTo, _safepos.To3D()); } #region Carry is null if (Carry == null && timeElapsed > 15000 && timeElapsed < 135000 && !_byPassLoadedCheck) { if (Bot.InFountain() || Bot.Distance(BotLanePos) > 400) { Bot.IssueOrder(GameObjectOrder.MoveTo, BotLanePos.To3D()); } if (Bot.Distance(BotLanePos) < 1000) { WalkAround(BotLanePos.To3D()); if (timeElapsed > 60000 && !MetaHandler.ShouldSupportTopLane) { if ( MetaHandler.AllyHeroes.FirstOrDefault( hero => !hero.IsMe && hero.Distance(Bot.Position) < 4500 && !MetaHandler.HasSmite(hero)) != null) { Carry = MetaHandler.AllyHeroes.FirstOrDefault( hero => !hero.IsMe && hero.Distance(Bot.Position) < 4500 && !MetaHandler.HasSmite(hero)); } } if (timeElapsed > 60000 && MetaHandler.ShouldSupportTopLane) { if ( MetaHandler.AllyHeroes.FirstOrDefault( hero => !hero.IsMe && hero.Distance(TopLanePos) < 4500 && !MetaHandler.HasSmite(hero)) != null) { Carry = MetaHandler.AllyHeroes.FirstOrDefault( hero => !hero.IsMe && hero.Distance(TopLanePos) < 4500 && !MetaHandler.HasSmite(hero)); } } } } if (_byPassLoadedCheck && Carry == null) { if (MetaHandler.AllyHeroes.FirstOrDefault(hero => !hero.IsMe && !hero.InFountain() && !MetaHandler.HasSmite(hero)) != null) { Carry = MetaHandler.AllyHeroes.FirstOrDefault(hero => !hero.IsMe && !hero.InFountain() && !MetaHandler.HasSmite(hero)); } } #endregion #region Carry is dead if (Carry != null) { if (IsBotSafe() && Carry.IsDead || Carry.InFountain()) { if (_tempcarry == null || _tempcarry.IsDead || _tempcarry.InFountain()) { if ( MetaHandler.AllyHeroes.FirstOrDefault( hero => !hero.IsMe && !hero.InFountain() && !hero.IsDead && !MetaHandler.HasSmite(hero)) != null) { _tempcarry = MetaHandler.AllyHeroes.FirstOrDefault( hero => !hero.IsMe && !hero.InFountain() && !hero.IsDead && !MetaHandler.HasSmite(hero)); } if ( MetaHandler.AllyHeroes.FirstOrDefault( hero => !hero.IsMe && !hero.InFountain() && !hero.IsDead && !MetaHandler.HasSmite(hero)) == null && MetaHandler.AllyHeroes.FirstOrDefault( hero => !hero.IsMe && !hero.InFountain() && !hero.IsDead) != null) { //well f**k, let's follow the jungler -sighs- _tempcarry = MetaHandler.AllyHeroes.FirstOrDefault( hero => !hero.IsMe && !hero.InFountain() && !hero.IsDead); } if (!MetaHandler.AllyHeroes.Any(hero => !hero.IsMe && !hero.IsDead)) //everyone is dead { if (!Bot.InFountain()) { NearestAllyTurret = MetaHandler.AllyTurrets.FirstOrDefault(); if (NearestAllyTurret != null) { _saferecall.X = NearestAllyTurret.Position.X + _safe; _saferecall.Y = NearestAllyTurret.Position.Y; _tookRecallDecision = true; if (Bot.Position.Distance(_saferecall.To3D()) < 200) { Bot.Spellbook.CastSpell(SpellSlot.Recall); } else { Bot.IssueOrder(GameObjectOrder.MoveTo, _saferecall.To3D()); } } } } } if (_tempcarry != null) { Console.WriteLine("Carry dead or afk, following: " + _tempcarry.ChampionName); _frontline.X = _tempcarry.Position.X + _chosen; _frontline.Y = _tempcarry.Position.Y + _chosen; if (!(_tempcarry.UnderTurret(true) && MetaHandler.NearbyAllyMinions(_tempcarry, 400) < 2) && IsBotSafe()) { if (_tempcarry.Distance(Bot) > 550 && !_tookRecallDecision) { Bot.IssueOrder(GameObjectOrder.MoveTo, _frontline.To3D()); WalkAround(_tempcarry); } } } } } #endregion Carry is dead #region Following if (Carry != null && !Carry.IsDead && !Carry.InFountain() && IsBotSafe() && !(Carry.UnderTurret(true) && MetaHandler.NearbyAllyMinions(Carry, 400) < 2)) { Console.WriteLine("All good, following: " + Carry.ChampionName); _frontline.X = Carry.Position.X + _chosen; _frontline.Y = Carry.Position.Y + _chosen; if (Carry.Distance(Bot) > 550 && !_tookRecallDecision) { Bot.IssueOrder(GameObjectOrder.MoveTo, _frontline.To3D()); } WalkAround(Carry); } #endregion Following #region Carry not found if (timeElapsed > 135000 && Carry == null && IsBotSafe()) { if (_tempcarry == null || _tempcarry.IsDead || _tempcarry.InFountain()) { if ( MetaHandler.AllyHeroes.FirstOrDefault( hero => !hero.IsMe && !hero.InFountain() && !hero.IsDead && !MetaHandler.HasSmite(hero)) != null) { _tempcarry = MetaHandler.AllyHeroes.FirstOrDefault( hero => !hero.IsMe && !hero.InFountain() && !hero.IsDead && !MetaHandler.HasSmite(hero)); } if ( MetaHandler.AllyHeroes.FirstOrDefault( hero => !hero.IsMe && !hero.InFountain() && !hero.IsDead && !MetaHandler.HasSmite(hero)) == null && MetaHandler.AllyHeroes.FirstOrDefault( hero => !hero.IsMe && !hero.InFountain() && !hero.IsDead) != null) { //well f**k, let's follow the jungler -sighs- _tempcarry = MetaHandler.AllyHeroes.FirstOrDefault( hero => !hero.IsMe && !hero.InFountain() && !hero.IsDead); } } if (_tempcarry != null) { Console.WriteLine("Carry not found, following: " + _tempcarry.ChampionName); _frontline.X = _tempcarry.Position.X + _chosen; _frontline.Y = _tempcarry.Position.Y + _chosen; if (!(_tempcarry.UnderTurret(true) && MetaHandler.NearbyAllyMinions(_tempcarry, 400) < 2) && IsBotSafe()) { if (Bot.Distance(_frontline) > 550 && !_tookRecallDecision) { Bot.IssueOrder(GameObjectOrder.MoveTo, _frontline.To3D()); } WalkAround(_tempcarry); } } } #endregion #region Lowhealth mode if (!IsBotSafe() && !Bot.InFountain()) { NearestAllyTurret = MetaHandler.AllyTurrets.FirstOrDefault(); if (NearestAllyTurret != null) { _saferecall.X = NearestAllyTurret.Position.X + _safe; _saferecall.Y = NearestAllyTurret.Position.Y; if (Bot.Position.Distance(_saferecall.To3D()) < 200) { if (Environment.TickCount - _lastRecallAttempt > Rand.Next(500, 2000)) { Bot.Spellbook.CastSpell(SpellSlot.Recall); _lastRecallAttempt = Environment.TickCount; } } else { Bot.IssueOrder(GameObjectOrder.MoveTo, _saferecall.To3D()); } } } #endregion #region Carry Switching if ((Bot.Level > 8 || Environment.TickCount - _loaded > 900000) && Environment.TickCount - _lastSwitched > 180000) { var alliesSortedByKDA = MetaHandler.AllyHeroes.OrderByDescending(hero => (hero.ChampionsKilled / ((hero.Deaths != 0) ? hero.Deaths : 1))); //AsunaChan2Kawaii if (alliesSortedByKDA.FirstOrDefault() != null) { Carry = alliesSortedByKDA.FirstOrDefault(); _lastSwitched = Environment.TickCount; } } #endregion } catch (Exception e) { Console.WriteLine(e); } } }
public void SetAttack() { AttackableUnit orbTarget = orb.GetTarget(); if (orbTarget != null) { if (orbTarget is Obj_AI_Hero) { if (!Player.UnderTurret(true)) { SetOrbWalk(orbTarget); } } else if (orbTarget is Obj_AI_Minion) { status = "Follow"; if (orbTarget.Health <= Player.GetAutoAttackDamage(Player, true)) { orb.SetAttack(true); Player.IssueOrder(GameObjectOrder.AttackUnit, orbTarget); } } } else status = "Follow"; lstTurrets = ObjectHandler.Get<Obj_AI_Turret>().Enemies.ToList().FindAll(t => !t.IsDead); turret = lstTurrets.OrderBy(t => t.Distance(Player)).ToList().Count > 0 ? lstTurrets.OrderBy(t => t.Distance(Player)).ToList()[0] : null; if (turret != null) { if (turret.Distance(Player) <= Player.AttackRange) { orb.SetAttack(true); } } }
private static void OnProcessSpell(Obj_AI_Base unit, GameObjectProcessSpellCastEventArgs spell) { if (unit.IsMe) { if (IsAutoAttackReset(spell.SData.Name)) Utility.DelayAction.Add(250, ResetAutoAttackTimer); if (!IsAutoAttack(spell.SData.Name)) return; if (spell.Target is Obj_AI_Base || spell.Target is Obj_BarracksDampener || spell.Target is Obj_HQ) { _lastAaTick = Utils.GameTimeTickCount - Game.Ping/2; if (spell.Target is Obj_AI_Base) { _lastTarget = (Obj_AI_Base) spell.Target; FireOnTargetSwitch((Obj_AI_Base) spell.Target); //for melle if (unit.IsMeele) Utility.DelayAction.Add((int) (unit.AttackCastDelay*1000 + Game.Ping*0.5) + 50, () => FireAfterAttack(unit, _lastTarget)); } FireOnAttack(unit, _lastTarget); } } if (!unit.IsValidTarget(2000, false) || !unit.IsAlly || unit is Obj_AI_Hero || !(unit is Obj_AI_Turret) || !IsAutoAttack(spell.SData.Name) || !(spell.Target is Obj_AI_Base)) return; _turretTarget = (Obj_AI_Base)spell.Target; _turretAttacking = (Obj_AI_Turret)unit; }
private static Obj_AI_Turret getClosestTurret(Vector3 pos) { var minions = ObjectManager.Get<Obj_AI_Turret>().ToList(); Obj_AI_Turret closestMinion = new Obj_AI_Turret(); float closestDistSq = float.PositiveInfinity; foreach (var minion in minions) { if (Vector3.Distance(pos, minion.Position) < closestDistSq) { closestDistSq = Vector3.Distance(pos, minion.Position); closestMinion = minion; } } return closestMinion; }
//static void Game_OnGameNotifyEvent(GameNotifyEventArgs args) //{ // args. //} private static void Game_OnGameProcessPacket(GamePacketEventArgs args) { GamePacket p = new GamePacket(args.PacketData); if (p.Header != Packet.S2C.TowerAggro.Header) return; if (Packet.S2C.TowerAggro.Decoded(args.PacketData).TargetNetworkId != ObjectManager.Player.NetworkId) return; if (Game.Time - foundturret > 20 && !recalling) { var turret2 = ObjectManager.Get<Obj_AI_Turret>() .Where(x => x.Distance(ObjectManager.Player) < 3500 && x.IsAlly); if (turret2.Any()) { stopdoingshit = true; turret = turret2.First(); foundturret = Game.Time; } } if (!stopdoingshit || recalling) return; ObjectManager.Player.IssueOrder(GameObjectOrder.MoveTo, turret); if (!(ObjectManager.Player.Distance(turret) <= 350) || !(Game.Time - count > 15)) return; // Game.Say(stufftosay[saycounter]); // saycounter++; ObjectManager.Player.Spellbook.CastSpell(SpellSlot.Recall); recalling = true; count = Game.Time; }
private static void Game_OnGameUpdate(EventArgs args) { //if (Utility.InShopRange()) //{ // stopdoingshit = false; // recalling = false; // } //Game.PrintChat("in1"); if (!stopfollowingshittarget) { follow = ObjectManager.Get<Obj_AI_Hero>() .First(x => !x.IsMe && x.IsAlly && menu.Item(x.ChampionName).GetValue<bool>()) ?? ObjectManager.Get<Obj_AI_Hero>().First(x => !x.IsMe && x.IsAlly && ap.Contains(x.ChampionName)) ?? ObjectManager.Get<Obj_AI_Hero>().First(x => !x.IsMe && x.IsAlly && bruiser.Contains(x.ChampionName)) ?? ObjectManager.Get<Obj_AI_Hero>().First(x => x.IsAlly && !x.IsMe); //followpos = follow.Position; } //Game.PrintChat(follow.ChampionName); // if (deathcounter == 4) // deathcounter = 0; if (Game.Time - gamestart > 480) { follow = allies[i]; i++; gamestart = Game.Time; } // Game.PrintChat("insadfsadfd"); // if (ObjectManager.Player.IsDead && Game.Time - timedead > 80) //{ // Game.Say(deaths[deathcounter]); // deathcounter++; // timedead = Game.Time; // } //foreach (var c in _WardSpots.Where(x => x.Distance(ObjectManager.Player.Position) < 600)) //{ // InventorySlot wardSlot = Wards.GetWardSlot(); // if (wardSlot != null && wardSlot.Id != ItemId.Unknown) // { // wardSlot.UseItem(c); // } //} //foreach (var c in _SafeWardSpots.Where(x => x.WardPosition.Distance(ObjectManager.Player.Position) < 600))//x.Distance(ObjectManager.Player.Position) < 600)) //{ // InventorySlot wardSlot = Wards.GetWardSlot(); // if (wardSlot != null && wardSlot.Id != ItemId.Unknown) // { // wardSlot.UseItem(c.WardPosition); // } //} //foreach (var item in ids) //{ // if (Items.HasItem(ids[counter]) && counter < index + 1) // { // index = counter; // } // counter++; //} //if (Utility.InShopRange()) //{ // Game.PrintChat(index.ToString()); // Game.PrintChat(ids[index].ToString()); // foreach (var item in ids) // { // if (!Items.HasItem(ids[index])) // { // Game.PrintChat(ids[index].ToString()); // Packet.C2S.BuyItem.Encoded(new Packet.C2S.BuyItem.Struct(ids[index])).Send(); // index++; // return; // } // } //} //foreach (var item in ids) //{ // if (Items.HasItem(ids[counter]) && counter < index + 1) // { // index = counter; // } // counter++; //} //Game.PrintChat("lel"); if (Utility.InShopRange()) { // Game.PrintChat("in range"); foreach (var item in nextItem.itemIds) { // Game.PrintChat(item.ToString()); if (!Items.HasItem(item)) { Packet.C2S.BuyItem.Encoded(new Packet.C2S.BuyItem.Struct(item, ObjectManager.Player.NetworkId)) .Send(); } } checkItemInventory(); } //Game.PrintChat("hue"); //if (saycounter == 3) // saycounter = 0; //if (menu.Item("on").GetValue<KeyBind>().Active) //{ // Game.PrintChat(index.ToString()); // if (Items.HasItem(ids[index])) // index++; Console.WriteLine("Recalling = " + recalling); Console.WriteLine("stop: " + stopdoingshit); // Game.PrintChat(follow.ChampionName); if (Game.Time - foundturret > 25) stopdoingshit = false; //if (Utility.InShopRange()) //{ // Game.PrintChat(index.ToString()); // if (!Items.HasItem(ids[index])) // { // Game.PrintChat(ids[index].ToString()); // Packet.C2S.BuyItem.Encoded(new Packet.C2S.BuyItem.Struct(ids[index])).Send(); // index++; // } //} if (Game.Time - followtime > 40 && followpos.Distance(follow.Position) <= 100) { follow = ObjectManager.Get<Obj_AI_Hero>().First(x => !x.IsMe && x.IsAlly && ap.Contains(x.ChampionName)) ?? ObjectManager.Get<Obj_AI_Hero>().First(x => !x.IsMe && x.IsAlly && bruiser.Contains(x.ChampionName)); followpos = follow.Position; followtime = Game.Time; stopfollowingshittarget = true; } if (follow.IsDead) { follow = ObjectManager.Get<Obj_AI_Hero>().First(x => !x.IsMe && x.Distance(ObjectManager.Player) < 1300); } Console.WriteLine(follow.IsDead); if ((follow.IsDead || (follow.Distance(ObjectManager.Player.Position) > 5000 && !Utility.InShopRange() && spawn.Distance(follow.Position) < 1500) || ObjectManager.Player.Health / ObjectManager.Player.MaxHealth * 100 < menu.Item("hpb").GetValue<Slider>().Value)) { if (Game.Time - foundturret > 20 && !recalling) { var turret2 = ObjectManager.Get<Obj_AI_Turret>() .Where(x => x.Distance(ObjectManager.Player) < 3500 && x.IsAlly); if (turret2.Any()) { stopdoingshit = true; turret = turret2.First(); foundturret = Game.Time; } } if (stopdoingshit && !recalling) { ObjectManager.Player.IssueOrder(GameObjectOrder.MoveTo, turret); if (ObjectManager.Player.Distance(turret) <= 350 && Game.Time - count > 15) { // Game.Say(stufftosay[saycounter]); // saycounter++; ObjectManager.Player.Spellbook.CastSpell(SpellSlot.Recall); recalling = true; count = Game.Time; } } } //Game.PrintChat((Game.Time - count).ToString()); if ((Game.Time - count > 15 && Game.Time - count < 17)) //|| Utility.InShopRange()) { stopdoingshit = false; recalling = false; } if (!recalling && !stopdoingshit && W.IsReady()) { var allies2 = ObjectManager.Get<Obj_AI_Hero>() .Where( x => x.IsAlly && x.Health / x.MaxHealth * 100 < menu.Item("allyhpw").GetValue<Slider>().Value && !x.IsDead && x.Distance(ObjectManager.Player.Position) < 550); var objAiHeroes = allies2 as Obj_AI_Hero[] ?? allies2.ToArray(); if (objAiHeroes.Any() && ObjectManager.Player.Health / ObjectManager.Player.MaxHealth * 100 > menu.Item("wabovehp").GetValue<Slider>().Value) W.Cast(objAiHeroes.First()); } if (menu.Item("user").GetValue<bool>() && R.IsReady()) { var allies = ObjectManager.Get<Obj_AI_Hero>() .Where( x => x.IsAlly && x.Health / x.MaxHealth * 100 < menu.Item("allyhpr").GetValue<Slider>().Value && !x.IsDead); if (allies.Any()) { if (R.IsReady()) R.Cast(); } } if (!recalling && !stopdoingshit) { if (follow.Distance(ObjectManager.Player.Position) > 500) ObjectManager.Player.IssueOrder(GameObjectOrder.MoveTo, follow); if (!follow.IsDead) { if (W.IsReady() && menu.Item("usew").GetValue<bool>() && ObjectManager.Player.Health / ObjectManager.Player.MaxHealth * 100 > menu.Item("wabovehp").GetValue<Slider>().Value) { if (follow.Health / follow.MaxHealth * 100 < menu.Item("allyhpw").GetValue<Slider>().Value && follow.Distance(ObjectManager.Player.Position) < 550 && ObjectManager.Player.Health / ObjectManager.Player.MaxHealth * 100 > menu.Item("wabovehp").GetValue<Slider>().Value) { W.Cast(follow); } else if (follow.Health / follow.MaxHealth * 100 < menu.Item("allyhpw").GetValue<Slider>().Value && follow.Distance(ObjectManager.Player.Position) > 550) { ObjectManager.Player.IssueOrder(GameObjectOrder.MoveTo, follow.Position); } } if (ts.Target.Distance(ObjectManager.Player) < Q.Range && Q.IsReady() && !Utility.UnderTurret(ObjectManager.Player, true)) { Q.Cast(ts.Target); } if (ts.Target.Distance(ObjectManager.Player) < E.Range && E.IsReady() && !Utility.UnderTurret(ObjectManager.Player, true)) { E.Cast(ts.Target); } if (!(follow.Distance(ObjectManager.Player.Position) > 350)) return; Random x = new Random(); var xPos = ((spawn.X - follow.Position.X) / Vector3.Distance(follow.Position, spawn)) * 300 + follow.Position.X - x.Next(25, 150); var yPos = ((spawn.Y - follow.Position.Y) / Vector3.Distance(follow.Position, spawn)) * 300 + follow.Position.Y - x.Next(25, 150); var vec = new Vector3(xPos, yPos, follow.Position.Z); if ( NavMesh.GetCollisionFlags( vec.To2D().Extend(ObjectManager.Player.Position.To2D(), 150).To3D()) .HasFlag(CollisionFlags.None)) ObjectManager.Player.IssueOrder(GameObjectOrder.MoveTo, vec); //Game.PrintChat("following"); } else { Random y = new Random(); var turret = ObjectManager.Get<Obj_AI_Turret>() .First(x => x.Distance(ObjectManager.Player) < 3500 && x.IsAlly); var xPos = ((spawn.X - turret.Position.X) / Vector3.Distance(turret.Position, spawn)) * 300 + turret.Position.X - y.Next(25, 150); var yPos = ((spawn.Y - turret.Position.Y) / Vector3.Distance(turret.Position, spawn)) * 300 + turret.Position.Y - y.Next(25, 150); var vec = new Vector3(xPos, yPos, follow.Position.Z); ObjectManager.Player.IssueOrder(GameObjectOrder.MoveTo, vec); } } }
private bool MinionOK(Obj_AI_Base minion , Obj_AI_Turret turret) { var turrentDmg = turret.GetAutoAttackDamage(minion); var hits = (int)(minion.Health / turrentDmg); var playerDmg = Player.GetAutoAttackDamage(minion); var minionHel = HealthPrediction.LaneClearHealthPrediction(minion, 400); var hpAfter = minionHel % turrentDmg; if ((hpAfter > playerDmg) && hpAfter > 5 && (hits>0 || minionAgro!=minion)) { Program.debug(" minion HP " + (int)minionHel + " turretDmg " + (int)turrentDmg); Program.debug("HPAfter " + hpAfter + " MyDamage " + (int)Player.GetAutoAttackDamage(minion) + " HITS " + (int)hits + " tur " + turrentDmg); Orbwalker.ForceTarget(minion); Orbwalking.Attack = true; return false; } else { Program.debug("else HPAfter " + hpAfter + " MyDamage " + (int)Player.GetAutoAttackDamage(minion) + " HITS " + (int)hits + " tur " + turrentDmg); return true; } }
private static bool ShouldWait(Obj_AI_Turret turret = null) { if (turret != null && turret.Target.IsValidTarget()) return ObjectManager.Get<Obj_AI_Minion>() .Any( minion => minion.IsValidTarget() && minion.Team != GameObjectTeam.Neutral && InAutoAttackRange(minion) && minion.NetworkId != turret.Target.NetworkId && HealthPrediction.LaneClearHealthPrediction( minion, (int)((Player.AttackDelay * 1000) * LaneClearWaitTimeMod), FarmDelay()) <= Player.GetAutoAttackDamage(minion)); return ObjectManager.Get<Obj_AI_Minion>() .Any( minion => minion.IsValidTarget() && minion.Team != GameObjectTeam.Neutral && InAutoAttackRange(minion) && HealthPrediction.LaneClearHealthPrediction( minion, (int)((Player.AttackDelay * 1000) * LaneClearWaitTimeMod), FarmDelay()) <= Player.GetAutoAttackDamage(minion)); }
public static int GetMinions(Obj_AI_Turret Turret) { int i = 0; foreach (var minion in ObjectManager.Get<Obj_AI_Minion>().Where(t => t.Name.Contains("Minion") && t.Distance(Turret.Position) <= 855 && !t.IsEnemy)) { i++; } return i; }