public static void Load() { Events.OnLoad += (obj, loadArgs) => { Shop.Main.Init(); _autoLevel = new AutoLevel(AutoLevel.GetSequenceFromDb()); _autoLevel.Enable(); Obj_AI_Base.OnIssueOrder += (sender, issueOrderArgs) => { if (SessionBasedData.Loaded && sender.IsMe) { if (issueOrderArgs.Order == GameObjectOrder.MoveTo && ObjectManager.Player.Distance(issueOrderArgs.TargetPosition) < 1000) { if (ObjectManager.Player.IsRecalling() || (ObjectManager.Player.InFountain() && ObjectManager.Player.HealthPercent < 95)) { Logging.Log("bot is recalling"); issueOrderArgs.Process = false; return; } if (issueOrderArgs.TargetPosition.IsDangerousPosition()) { Logging.Log("target position is dangerous"); issueOrderArgs.Process = false; return; } if (Environment.TickCount - _lastMovementCommand > Utility.Random.GetRandomInteger(300, 1100)) { Logging.Log("humanizing"); _lastMovementCommand = Environment.TickCount; return; } issueOrderArgs.Process = false; } if (issueOrderArgs.Target != null) { if (issueOrderArgs.Target is Obj_AI_Hero) { Logging.Log("anti outtraded"); if (ObjectManager.Player.IsUnderEnemyTurret() || (ObjectManager.Get<Obj_AI_Minion>().Count(m => m.IsEnemy && !m.IsDead && m.Distance(ObjectManager.Player) < 600) > 4 && Variables.Orbwalker.ActiveMode != OrbwalkingMode.Combo)) { issueOrderArgs.Process = false; return; } } if (issueOrderArgs.Target is Obj_AI_Minion && (issueOrderArgs.Target as Obj_AI_Minion).Team == GameObjectTeam.Neutral) { Logging.Log("skipped hitting jg camp"); issueOrderArgs.Process = false; return; } } } }; Spellbook.OnCastSpell += (sender, castSpellArgs) => { if (castSpellArgs.Slot == SpellSlot.Recall) { Variables.Orbwalker.ActiveMode = OrbwalkingMode.None; } }; Obj_AI_Base.OnProcessSpellCast += (sender, spellCastArgs) => { if (Variables.Orbwalker.ActiveMode != OrbwalkingMode.Combo && spellCastArgs.Target != null && spellCastArgs.Target.IsMe) { if (sender is Obj_AI_Minion) { AttackedByMinionsFlag = true; DelayAction.Add(350, () => AttackedByMinionsFlag = false); } if (sender is Obj_AI_Turret) { AttackedByTurretFlag = true; DelayAction.Add(500, () => AttackedByTurretFlag = false); } } }; Game.OnUpdate += args => { if (ObjectManager.Player.IsRecalling() || (ObjectManager.Player.InFountain() && ObjectManager.Player.HealthPercent < 95)) { Variables.Orbwalker.ActiveMode = OrbwalkingMode.None; return; } if (ObjectManager.Player.Position.IsDangerousPosition()) { AttackedByMinionsFlag = true; DelayAction.Add(350, () => AttackedByMinionsFlag = false); } }; Variables.Orbwalker.OnAction += (sender, args) => { if (ObjectManager.Player.IsRecalling()) { args.Process = false; Variables.Orbwalker.ActiveMode = OrbwalkingMode.None; } if (Environment.TickCount - _lastAfkCheckTime > 30000) { _lastAfkCheckTime = Environment.TickCount; if (_lastAfkCheckPosition.Distance(ObjectManager.Player.ServerPosition) < 400) { var pos = new Utility.Geometry.Circle(ObjectManager.Player.Position.ToVector2(), 500).ToPolygon().GetRandomPointInPolygon(); pos.WalkToPoint(OrbwalkingMode.None, true); } _lastAfkCheckPosition = ObjectManager.Player.ServerPosition; } }; }; }
public static void Load() { Events.OnLoad += (obj, loadArgs) => { Shop.Main.Init(); _autoLevel = new AutoLevel(AutoLevel.GetSequenceFromDb()); _autoLevel.Enable(); Obj_AI_Base.OnIssueOrder += (sender, issueOrderArgs) => { if (SessionBasedData.Loaded && sender.IsMe) { if (issueOrderArgs.Order == GameObjectOrder.MoveTo && ObjectManager.Player.Distance(issueOrderArgs.TargetPosition) < 1000) { if (ObjectManager.Player.IsRecalling() || (ObjectManager.Player.InFountain() && ObjectManager.Player.HealthPercent < 95)) { Logging.Log("bot is recalling"); issueOrderArgs.Process = false; return; } if (issueOrderArgs.TargetPosition.IsDangerousPosition()) { Logging.Log("target position is dangerous"); issueOrderArgs.Process = false; return; } if (Environment.TickCount - _lastMovementCommand > Utility.Random.GetRandomInteger(300, 1100)) { Logging.Log("humanizing"); _lastMovementCommand = Environment.TickCount; return; } issueOrderArgs.Process = false; } if (issueOrderArgs.Target != null) { if (issueOrderArgs.Target is Obj_AI_Hero) { Logging.Log("anti outtraded"); if (ObjectManager.Player.IsUnderEnemyTurret() || (ObjectManager.Get <Obj_AI_Minion>().Count(m => m.IsEnemy && !m.IsDead && m.Distance(ObjectManager.Player) < 600) > 4 && Variables.Orbwalker.ActiveMode != OrbwalkingMode.Combo)) { issueOrderArgs.Process = false; return; } } if (issueOrderArgs.Target is Obj_AI_Minion && (issueOrderArgs.Target as Obj_AI_Minion).Team == GameObjectTeam.Neutral) { Logging.Log("skipped hitting jg camp"); issueOrderArgs.Process = false; return; } } } }; Spellbook.OnCastSpell += (sender, castSpellArgs) => { if (castSpellArgs.Slot == SpellSlot.Recall) { Variables.Orbwalker.ActiveMode = OrbwalkingMode.None; } }; Obj_AI_Base.OnProcessSpellCast += (sender, spellCastArgs) => { if (Variables.Orbwalker.ActiveMode != OrbwalkingMode.Combo && spellCastArgs.Target != null && spellCastArgs.Target.IsMe) { if (sender is Obj_AI_Minion) { AttackedByMinionsFlag = true; DelayAction.Add(350, () => AttackedByMinionsFlag = false); } if (sender is Obj_AI_Turret) { AttackedByTurretFlag = true; DelayAction.Add(500, () => AttackedByTurretFlag = false); } } }; Game.OnUpdate += args => { if (ObjectManager.Player.IsRecalling() || (ObjectManager.Player.InFountain() && ObjectManager.Player.HealthPercent < 95)) { Variables.Orbwalker.ActiveMode = OrbwalkingMode.None; return; } if (ObjectManager.Player.Position.IsDangerousPosition()) { AttackedByMinionsFlag = true; DelayAction.Add(350, () => AttackedByMinionsFlag = false); } }; Variables.Orbwalker.OnAction += (sender, args) => { if (ObjectManager.Player.IsRecalling()) { args.Process = false; Variables.Orbwalker.ActiveMode = OrbwalkingMode.None; } if (Environment.TickCount - _lastAfkCheckTime > 30000) { _lastAfkCheckTime = Environment.TickCount; if (_lastAfkCheckPosition.Distance(ObjectManager.Player.ServerPosition) < 400) { var pos = new Utility.Geometry.Circle(ObjectManager.Player.Position.ToVector2(), 500).ToPolygon().GetRandomPointInPolygon(); pos.WalkToPoint(OrbwalkingMode.None, true); } _lastAfkCheckPosition = ObjectManager.Player.ServerPosition; } }; }; }
public static void Load() { Events.OnLoad += (obj, loadArgs) => { Shop.Main.Init(); Obj_AI_Base.OnIssueOrder += (sender, issueOrderArgs) => { if (SessionBasedData.Loaded && sender.IsMe) { if (issueOrderArgs.Order == GameObjectOrder.MoveTo) { //no walking to fountain. if (issueOrderArgs.TargetPosition == Vector3.Zero || issueOrderArgs.TargetPosition.X == 0) { issueOrderArgs.Process = false; return; } //no walking to cursor pos if (issueOrderArgs.TargetPosition.Distance(Game.CursorPos) < 50) { issueOrderArgs.Process = false; return; } //force stay in fountain until 95% hp if (ObjectManager.Player.InFountain() && ObjectManager.Player.HealthPercent < 95) { issueOrderArgs.Process = false; return; } //no walking into turrets if no minions under it if (!ObjectManager.Player.IsUnderEnemyTurret() && issueOrderArgs.TargetPosition.IsDangerousPosition()) { issueOrderArgs.Process = false; return; } //humanizer shit if (Environment.TickCount - _lastMovementCommand > Utility.Random.GetRandomInteger(300, 1100)) { _lastMovementCommand = Environment.TickCount; return; } } if (issueOrderArgs.Target != null) { if (issueOrderArgs.Target is Obj_BarracksDampener) { var target = (Obj_BarracksDampener)issueOrderArgs.Target; if (!target.IsValidTarget() || target.Health < 1) { issueOrderArgs.Process = false; return; } } //no hitting heroes under enemy turrets if (issueOrderArgs.Target is Obj_AI_Hero) { if (ObjectManager.Player.IsUnderEnemyTurret()) { issueOrderArgs.Process = false; return; } } //no hitting jg camps if (issueOrderArgs.Target is Obj_AI_Minion && (issueOrderArgs.Target as Obj_AI_Minion).Team == GameObjectTeam.Neutral) { Logging.Log("skipped hitting jg camp"); issueOrderArgs.Process = false; return; } } } }; Spellbook.OnCastSpell += (sender, castSpellArgs) => { if (castSpellArgs.Slot == SpellSlot.Recall) { Variables.Orbwalker.ActiveMode = OrbwalkingMode.Combo; } }; Obj_AI_Base.OnProcessSpellCast += (sender, spellCastArgs) => { if (Variables.Orbwalker.ActiveMode != OrbwalkingMode.Combo && spellCastArgs.Target != null && spellCastArgs.Target.IsMe) { if (sender is Obj_AI_Minion) { AttackedByMinionsFlag = true; DelayAction.Add(1350, () => AttackedByMinionsFlag = false); } if (sender is Obj_AI_Turret) { AttackedByTurretFlag = true; DelayAction.Add(1500, () => { if (!ObjectManager.Player.IsUnderEnemyTurret()) { AttackedByTurretFlag = false; } else { DelayAction.Add(2250, () => AttackedByTurretFlag = false); } }); } } }; Game.OnUpdate += args => { if (ObjectManager.Player.IsRecalling() || (ObjectManager.Player.InFountain() && ObjectManager.Player.HealthPercent < 95)) { Variables.Orbwalker.ActiveMode = OrbwalkingMode.None; return; } if (ObjectManager.Player.Position.IsDangerousPosition()) { AttackedByMinionsFlag = true; DelayAction.Add(350, () => AttackedByMinionsFlag = false); } }; Variables.Orbwalker.OnAction += (sender, args) => { if (ObjectManager.Player.IsRecalling()) { args.Process = false; Variables.Orbwalker.ActiveMode = OrbwalkingMode.None; } if (Environment.TickCount - _lastAfkCheckTime > 30000) { _lastAfkCheckTime = Environment.TickCount; if (_lastAfkCheckPosition.Distance(ObjectManager.Player.ServerPosition) < 400) { var pos = new Utility.Geometry.Circle(ObjectManager.Player.Position.ToVector2(), 500).ToPolygon().GetRandomPointInPolygon(); pos.WalkToPoint(OrbwalkingMode.None, true); } _lastAfkCheckPosition = ObjectManager.Player.ServerPosition; } }; }; }