public static void AddDelayFunc(float time, System.Action action) { DelayAction act = new DelayAction(); act.startTime = s_currentTime + time; act.action = action; m_delayActoinList.AddLast(act); }
public void ToMenuScreen(){ DelayAction delay1 = new DelayAction (GameController.GetInstance ().GetGameOverPanel().DisplayTime,()=>{ GameController.GetInstance ().GetPlayPanel().ShowOut (); GameController.GetInstance ().GetGameOverPanel().ShowOut (); },()=>{ GameController.GetInstance ().GetMainPanel().ShowIn (); }); delay1.Play (); }
public void OnRestart(){ DelayAction delay1 = new DelayAction (GameController.GetInstance ().GetGameOverPanel().DisplayTime,()=>{ GameController.GetInstance ().GetGameOverPanel().ShowOut (); },()=>{ GameController.GetInstance ().GetPlayGameInstance().OnResume (); GameController.GetInstance ().GetPlayGameInstance().OnReStart (); GameController.GetInstance ().GetPlayPanel ().Start (); }); delay1.Play (); }
public void OnPostAttack(AttackableUnit mobPre) { var mob = mobPre as Obj_AI_Minion; if (mob == null) { return; } var count = GameObjects.Jungle.Count(x => x.Distance(Global.Player) <= _spellConfig.Q.Range / 2f); if (count <= 1 && mob.Health < Global.Player.GetAutoAttackDamage(mob)) { return; } if (Global.Player.Level <= 4) { if (_spellConfig.PassiveStack() >= 1) { return; } if (_spellConfig.Q.Ready) { _spellConfig.Q.Cast(mob); } if (_spellConfig.W.Ready && this.WEnabled && !_spellConfig.IsQ2()) { _spellConfig.W.CastOnUnit(Global.Player); } else if (_spellConfig.E.Ready && this.EEnabled && !_spellConfig.IsQ2()) { if (_spellConfig.IsFirst(_spellConfig.E)) { if (Items.CanUseTiamat()) { Items.CastTiamat(false); DelayAction.Queue(50, () => _spellConfig.E.Cast(mob)); } else { _spellConfig.E.Cast(mob); } } else { _spellConfig.E.Cast(); } } } else if (Global.Player.Level <= 8) { if (_spellConfig.PassiveStack() >= 1) { return; } if (_spellConfig.Q.Ready) { _spellConfig.Q.Cast(mob); } if (_spellConfig.W.Ready && this.WEnabled) { _spellConfig.W.CastOnUnit(Global.Player); } else if (_spellConfig.E.Ready && this.EEnabled) { if (_spellConfig.IsFirst(_spellConfig.E)) { if (Items.CanUseTiamat()) { Items.CastTiamat(false); DelayAction.Queue(50, () => _spellConfig.E.Cast(mob)); } else { _spellConfig.E.Cast(mob); } } else { _spellConfig.E.Cast(); } } } else { if (_spellConfig.Q.Ready) { _spellConfig.Q.Cast(mob); } else { if (_spellConfig.E.Ready && this.EEnabled) { if (Items.CanUseTiamat()) { Items.CastTiamat(false); DelayAction.Queue(50, () => _spellConfig.E.Cast(mob)); } else { _spellConfig.E.Cast(mob); } } if (_spellConfig.W.Ready && this.WEnabled) { if (_spellConfig.E.Ready && this.EEnabled && !_spellConfig.IsFirst(_spellConfig.E)) { return; } _spellConfig.W.CastOnUnit(Global.Player); } } } }
private static void KillStealEvent() { try { if (isCastingUlt && !KillStealMenu["FlowersKatarina.KillStealMenu.CancelR"].GetValue <MenuBool>().Enabled) { return; } if (Me.CountEnemyHeroesInRange(E.Range) == 0) { return; } foreach ( var target in GameObjects.EnemyHeroes.Where(x => !x.IsDead && x.IsValidTarget(E.Range + 300)) .OrderBy(x => x.Health)) { if (target.IsValidTarget(E.Range + 300)) { if (KillStealMenu["FlowersKatarina.KillStealMenu.Q"].GetValue <MenuBool>().Enabled&& target.Health < Q.GetDamage(target) && Q.IsReady() && target.IsValidTarget(Q.Range)) { if (isCastingUlt) { MyExtraManager.CancelUlt(true); Q.CastOnUnit(target); return; } Q.CastOnUnit(target); return; } if (KillStealMenu["FlowersKatarina.KillStealMenu.E"].GetValue <MenuBool>().Enabled&& target.Health < E.GetDamage(target) && E.IsReady()) { if (target.DistanceToPlayer() <= E.Range + 130) { var pos = Me.Position.Extend(target.Position, target.DistanceToPlayer() + 130); if (isCastingUlt) { MyExtraManager.CancelUlt(true); E.Cast(pos); return; } E.Cast(pos); return; } if (target.IsValidTarget(E.Range)) { if (isCastingUlt) { MyExtraManager.CancelUlt(true); E.Cast(target); return; } E.Cast(target); return; } } if (KillStealMenu["FlowersKatarina.KillStealMenu.Q"].GetValue <MenuBool>().Enabled&& target.Health < Q.GetDamage(target) + E.GetDamage(target) && KillStealMenu["FlowersKatarina.KillStealMenu.E"].GetValue <MenuBool>().Enabled&& Q.IsReady() && E.IsReady() && target.IsValidTarget(E.Range)) { if (isCastingUlt) { MyExtraManager.CancelUlt(true); Q.CastOnUnit(target); E.Cast(target); return; } Q.CastOnUnit(target); E.Cast(target); return; } if (target.Health < MyExtraManager.GetKataPassiveDamage(target) + E.GetDamage(target) && KillStealMenu["FlowersKatarina.KillStealMenu.E"].GetValue <MenuBool>().Enabled&& E.IsReady() && Daggers.Any( x => x.Dagger.IsValid && x.Position.Distance(target.Position) <= PassiveRange && x.Position.DistanceToPlayer() <= E.Range)) { foreach ( var obj in Daggers.Where(x => x.Position.Distance(target.Position) <= PassiveRange) .OrderBy(x => x.Position.Distance(target.Position))) { if (obj.Dagger != null && obj.Dagger.IsValid && obj.Position.DistanceToPlayer() <= E.Range) { if (isCastingUlt) { MyExtraManager.CancelUlt(true); E.Cast(obj.Position); DelayAction.Add(100 + Game.Ping, () => E.Cast(target)); return; } E.Cast(obj.Position); DelayAction.Add(100 + Game.Ping, () => E.Cast(target)); return; } } } if (target.Health < R.GetDamage(target) * 0.6 && KillStealMenu["FlowersKatarina.KillStealMenu.R"].GetValue <MenuBool>().Enabled && R.IsReady() && target.IsValidTarget(R.Range) && target.Health > 50 * target.Level) { R.Cast(); return; } } } } catch (Exception ex) { Console.WriteLine("Error in MyEventManager.KillStealEvent." + ex); } }
private static void Combo(bool extended = false, AIHeroClient sender = null) { if (Orbwalker.ActiveMode != OrbwalkerMode.Combo) { return; } //if (Config.Item("combo.r").GetValue<bool>()) //{ // AIHeroClient RTarget = GameObjects.EnemyHeroes.FirstOrDefault(t => t.CountAlliesInRange(660) > 0); // if (RTarget != null) // { // R.CastIfWillHit(RTarget, Config.Item("combo.rmin").GetValue<Slider>().Value); // } //} //Config.Menu["Combo"]["combo.qe"].GetValue<MenuBool>() if (Config.Menu["Combo"]["combo.aae"].GetValue <MenuBool>() && Orbwalker.CanAttack()) { List <Barrel> barrelsInAutoAttackRange = AllBarrel.Where(b => b.GetBarrel().Distance(Player) <= ObjectManager.Player.GetRealAutoAttackRange() && b.CanAANow()).ToList(); if (barrelsInAutoAttackRange.Any() && (Player.Buffs.All(buff => buff.Name != "gangplankpassiveattack"))) { BarrelAAForced = false; foreach (Barrel b in barrelsInAutoAttackRange) { if (GameObjects.EnemyHeroes.Any(enemy => b.GetBarrel().Position.CannotEscapeFromAA(enemy) || GetBarrelsInRange(b).Any(bar => bar.GetBarrel().Position.CannotEscapeFromAA(enemy)))) { Orbwalker.Orbwalk(b.GetBarrel(), Game.CursorPos); BarrelAAForced = true; } } } } if (Config.Menu["Combo"]["combo.qe"].GetValue <MenuBool>() && Q.IsReady() && !BarrelAAForced) { AIHeroClient target = TargetSelector.GetTarget(1200, DamageType.Physical); if (target != null) { EnemyPosition = target.Position; Helper.GetPredPos(target); if (extended && target != sender) { extended = false; } foreach (var b in AllBarrel) { if (b.CanQNow() && (b.GetBarrel().Position.CannotEscape(target, extended) || GetBarrelsInRange(b).Any(bb => bb.GetBarrel().Position.CannotEscape(target, extended, true)))) { QDelay.Delay(b.GetBarrel()); break; } } if (E.IsReady() && !QDelay.Active()) { if (Config.Menu["Combo"]["combo.doublee"].GetValue <MenuBool>().Enabled) { foreach (var b in AllBarrel) { if (b.CanQNow() && b.GetBarrel().Distance(Player) > 615 && b.GetBarrel().Distance(target) < 850) { Q.Cast(b.GetBarrel()); break; } } } if (Config.Menu["Combo"]["combo.ex"].GetValue <MenuBool>()) { foreach (var b in AllBarrel) { var castPos = b.GetBarrel().Position.ExtendToMaxRange(Helper.PredPos.ToVector3(), 685); if (b.CanQNow() && castPos.Distance(Player.Position) < 1000 && castPos.CannotEscape(target, extended, true)) { E.Cast(castPos); QDelay.Delay(b.GetBarrel()); break; } } } } } } //Triple - Logic if (Q.IsReady() && E.IsReady() && Config.Menu["Combo"]["combo.triplee"].GetValue <MenuBool>().Enabled) { IEnumerable <Barrel> validBarrels = AllBarrel.Where(b => b.CanQNow() && b.GetBarrel().Distance(Player) <= 625); foreach (Barrel validBarrel in validBarrels) { IEnumerable <Barrel> inRange = GetBarrelsInRange(validBarrel); if ( inRange.Any( b => GameObjects.EnemyHeroes.Any( e => b.GetBarrel().Distance(e.Position) < 1100 && e.Distance(Player.Position) < 1000))) { Q.Cast(validBarrel.GetBarrel()); } } } if (Q.IsReady() && E.Instance.Ammo >= 2 && Config.Menu["Combo"]["combo.triplee"].GetValue <MenuBool>().Enabled) { List <Barrel> GetValidBarrels = AllBarrel.Where(b => b.CanQNow(400) && b.GetBarrel().Distance(Player) <= 625).ToList(); AIHeroClient target = TargetSelector.GetTarget(1200, DamageType.Physical); if (target != null && GetValidBarrels.Any(b => b.GetBarrel().Distance(target) <= 1200)) { E.Cast(GetValidBarrels.First(b => b.GetBarrel().Distance(target) <= 1200).GetBarrel().Position.ExtendToMaxRange(Player.Position.ExtendToMaxRange(target.Position, 980), 685)); DelayAction.Add(600, () => QDelay.Delay(GetValidBarrels.First().GetBarrel())); } } //Config.Menu["Key"]["key.q"].GetValue<MenuKeyBind>().Active if (Config.Menu["Combo"]["combo.q"].GetValue <MenuBool>() && Q.IsReady()) { AIHeroClient target = TargetSelector.GetTarget(Q.Range, DamageType.Physical); if (target != null && (Config.Menu["Key"]["key.q"].GetValue <MenuKeyBind>().Active || (!E.IsReady() && !AllBarrel.Any(b => b.GetBarrel().Position.Distance(target.Position) < 600)))) { Q.Cast(target); } } if (E.IsReady() && E.Instance.Ammo > 1 && Config.Menu["Combo"]["combo.e"].GetValue <MenuBool>() && !AllBarrel.Any(b => b.GetBarrel().Position.Distance(Player.Position) <= 1200)) { AIHeroClient target = TargetSelector.GetTarget(1000, DamageType.Physical); if (target == null) { return; } Helper.GetPredPos(target); Vector2 castPos = target.Position.Extend(Helper.PredPos.ToVector3(), 200).ToVector2(); if (Player.Distance(castPos) <= E.Range) { E.Cast(castPos); } else { E.Cast(Player.Position.Extend(castPos.ToVector3(), 1000)); } } }
public static void OnUpdate() { var target = Global.TargetSelector.GetTarget(2500); if (target == null || !target.IsValidTarget()) { return; } var targetDist = target.Distance(Global.Player); var minion = MinionHelper.GetDashableMinion(target); var m2 = MinionHelper.GetClosest(target); var positionBehindMinion = MinionHelper.WalkBehindMinion(target); if (!positionBehindMinion.IsZero && positionBehindMinion.Distance(Global.Player) <= MenuConfig.Combo["MRange"].Value) { MinionHelper.ExtendedMinion = positionBehindMinion; MinionHelper.ExtendedTarget = target.ServerPosition; } var dashDistance = MinionHelper.DashDistance(minion, target); if (SpellConfig.E.Ready) { if (targetDist <= Global.Player.AttackRange && !SpellConfig.Q.Ready) { return; } if (!target.HasBuff("YasuoDashWrapper") && targetDist <= SpellConfig.E.Range && (targetDist > SpellConfig.E.Range - 50 && minion == null || Extension.CurrentMode == Mode.Tornado)) { SpellConfig.E.CastOnUnit(target); } if (positionBehindMinion.Distance(Global.Player) <= MenuConfig.Combo["MRange"].Value && MenuConfig.Combo["Walk"].Enabled && Global.Orbwalker.CanMove() && !(MenuConfig.Combo["Turret"].Enabled && target.IsUnderEnemyTurret())) { Global.Orbwalker.Move(positionBehindMinion); if (positionBehindMinion.Distance(Global.Player) <= 65) { SpellConfig.E.CastOnUnit(m2); } } else if (minion != null) { if (MenuConfig.Combo["Turret"].Enabled && minion.ServerPosition.PointUnderEnemyTurret() || MenuConfig.Combo["Dash"].Value == 0 && minion.Distance(Game.CursorPos) > MenuConfig.Combo["Range"].Value) { return; } SpellConfig.E.CastOnUnit(minion); } } if (SpellConfig.Q.Ready) { switch (Extension.CurrentMode) { case Mode.Dashing: case Mode.DashingTornado: if (MenuConfig.Combo["Flash"].Enabled && dashDistance < 470 && dashDistance > 220 && (Dmg.Damage(target) * 1.25 > target.Health || target.ServerPosition.CountEnemyHeroesInRange(220) >= 2)) { SpellConfig.Q.Cast(); DelayAction.Queue(Game.Ping / 2 + 30, () => SummonerSpells.Flash.Cast(target.Position), new CancellationToken(false)); } else { var circle = new Geometry.Circle(Global.Player.GetDashInfo().EndPos, 220); var count = GameObjects.EnemyHeroes.Count(x => x.IsValidTarget() && x.Distance(circle.Center.To3D()) <= circle.Radius); if (count != 0) { SpellConfig.Q.Cast(target); } } break; default: if (!Global.Player.IsDashing() && target.IsValidSpellTarget(SpellConfig.Q.Range) && !(SpellConfig.E.Ready && !target.HasBuff("YasuoDashWrapper") && Extension.CurrentMode == Mode.Tornado)) { var enemyHero = GameObjects.EnemyHeroes.OrderBy(x => x.Health).FirstOrDefault(x => x.IsValidTarget(SpellConfig.Q.Range)); if (enemyHero != null) { SpellConfig.Q.Cast(enemyHero); } } break; } } if (SpellConfig.R.Ready && KnockUpHelper.KnockedUp(target) && KnockUpHelper.IsItTimeToUlt(target)) { var airbourneTargets = GameObjects.EnemyHeroes.Where(x => KnockUpHelper.KnockedUp(x) && x.Distance(Global.Player) <= SpellConfig.R.Range); var targetCount = (airbourneTargets as Obj_AI_Hero[] ?? airbourneTargets.ToArray()).Length; if (targetCount >= MenuConfig.Combo["Count"].Value || targetDist > 350) { SpellConfig.R.Cast(); } } }
public Yasuo() { Q = new LeagueSharp.SDK.Spell(SpellSlot.Q, 505).SetSkillshot(0.4f, 20, float.MaxValue, false, SkillshotType.SkillshotLine); Q2 = new LeagueSharp.SDK.Spell(Q.Slot, 1100).SetSkillshot(Q.Delay, 90, 1250, true, Q.Type); Q3 = new LeagueSharp.SDK.Spell(Q.Slot, 250).SetTargetted(0.01f, float.MaxValue); W = new LeagueSharp.SDK.Spell(SpellSlot.W, 400); E = new LeagueSharp.SDK.Spell(SpellSlot.E, 475).SetTargetted(0.01f, 1250); E2 = new LeagueSharp.SDK.Spell(Q.Slot).SetTargetted(E.Delay + Q3.Delay, E.Speed); R = new LeagueSharp.SDK.Spell(SpellSlot.R, 1200); Q.DamageType = Q2.DamageType = R.DamageType = DamageType.Physical; E.DamageType = DamageType.Magical; Q.MinHitChance = Q2.MinHitChance = HitChance.VeryHigh; Q.CastCondition += () => !isBlockQ; Q2.CastCondition += () => !isBlockQ; Q3.CastCondition += () => !isBlockQ && IsDashing; if (YasuoPro.YasuoMenu.ComboM != null) { if (EntityManager.Heroes.Enemies.Any()) { Evade.Init(); } Evade.Evading += Evading; Evade.TryEvading += TryEvading; return; } comboMenu = config.AddSubMenu("Combo", "Combo"); comboMenu.AddGroupLabel("Q: Always On"); comboMenu.AddGroupLabel("E Gap Settings"); comboMenu.Add("EGap", new CheckBox("Use E")); comboMenu.Add("EMode", new ComboBox("Follow Mode", 0, "Enemy", "Mouse")); comboMenu.Add("ETower", new CheckBox("Under Tower", false)); comboMenu.Add("EStackQ", new CheckBox("Stack Q While Gap", false)); comboMenu.AddGroupLabel("R Settings"); comboMenu.Add("R", new KeyBind("Use R", false, KeyBind.BindTypes.PressToggle, 'X')); comboMenu.Add("RDelay", new CheckBox("Delay Cast")); comboMenu.Add("RHpU", new Slider("If Enemies Hp < (%)", 60)); comboMenu.Add("RCountA", new Slider("Or Count >=", 2, 1, 5)); hybridMenu = config.AddSubMenu("Hybrid", "Hybrid"); hybridMenu.AddGroupLabel("Q: Always On"); hybridMenu.Add("Q3", new CheckBox("Also Q3")); hybridMenu.Add("QLastHit", new CheckBox("Last Hit (Q1/2)")); hybridMenu.AddGroupLabel("Auto Q Settings"); hybridMenu.Add("AutoQ", new KeyBind("KeyBind", false, KeyBind.BindTypes.PressToggle, 'T')); hybridMenu.Add("AutoQ3", new CheckBox("Also Q3", false)); lcMenu = config.AddSubMenu("LaneClear", "Lane Clear"); lcMenu.AddGroupLabel("Q Settings"); lcMenu.Add("Q", new CheckBox("Use Q")); lcMenu.Add("Q3", new CheckBox("Also Q3", false)); lcMenu.AddGroupLabel("E Settings"); lcMenu.Add("E", new CheckBox("Use E")); lcMenu.Add("ELastHit", new CheckBox("Last Hit Only", false)); lcMenu.Add("ETower", new CheckBox("Under Tower", false)); lhMenu = config.AddSubMenu("LastHit", "Last Hit"); lhMenu.AddGroupLabel("Q Settings"); lhMenu.Add("Q", new CheckBox("Use Q")); lhMenu.Add("Q3", new CheckBox("Also Q3", false)); lhMenu.AddGroupLabel("E Settings"); lhMenu.Add("E", new CheckBox("Use E")); lhMenu.Add("ETower", new CheckBox("Under Tower", false)); ksMenu = config.AddSubMenu("KillSteal", "Kill Steal"); ksMenu.Add("Q", new CheckBox("Use Q")); ksMenu.Add("E", new CheckBox("Use E")); ksMenu.Add("R", new CheckBox("Use R")); foreach (var enemy in ObjectManager.Get <AIHeroClient>().Where(o => o.IsEnemy)) { ksMenu.Add("RCast" + enemy.NetworkId, new CheckBox("Cast On " + enemy.ChampionName, false)); } fleeMenu = config.AddSubMenu("Flee", "Flee"); fleeMenu.Add("E", new KeyBind("Use E", false, KeyBind.BindTypes.HoldActive, 'C')); fleeMenu.Add("Q", new CheckBox("Stack Q While Dash")); if (EntityManager.Heroes.Enemies.Any()) { Evade.Init(); } drawMenu = config.AddSubMenu("Draw", "Draw"); drawMenu.Add("Q", new CheckBox("Q Range", false)); drawMenu.Add("E", new CheckBox("E Range", false)); drawMenu.Add("R", new CheckBox("R Range", false)); drawMenu.Add("UseR", new CheckBox("R In Combo Status")); drawMenu.Add("StackQ", new CheckBox("Auto Stack Q Status")); miscMenu = config.AddSubMenu("Misc", "Misc"); miscMenu.Add("StackQ", new KeyBind("Auto Stack Q", false, KeyBind.BindTypes.PressToggle, 'Z')); Evade.Evading += Evading; Evade.TryEvading += TryEvading; Game.OnUpdate += OnUpdate; Drawing.OnDraw += OnDraw; Game.OnUpdate += args => { if (Player.IsDead) { if (endDashT > 0) { endDashT = 0; posDash = new Vector3(); } return; } if (endDashT > 0 && !Player.IsDashing()) { endDashT = 0; DelayAction.Add(70, () => posDash = new Vector3()); } if (!haveQ3 && Q.Delay > 0.18f) { var qDelay = Math.Max(0.4f * (1 - Math.Min((Player.AttackSpeedMod - 1) * 0.5f, 0.55f)), 0.18f); if (!Q.Delay.Equals(qDelay)) { Q.Delay = qDelay; } } if (haveQ3 && Q2.Delay > 0.27f) { var qDelay = Math.Max( 0.4f * (1 - Math.Min((Player.AttackSpeedMod - 1) * 0.296f, 0.325f)), 0.27f); if (!Q2.Delay.Equals(qDelay)) { Q2.Delay = qDelay; } } var eSpeed = 1250 + (Player.MoveSpeed - 345); if (!E.Speed.Equals(eSpeed)) { E.Speed = E2.Speed = eSpeed; } }; Orbwalker.OnPostAttack += (sender, args) => { if (!Q.IsReady() || haveQ3 || (!Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) || !Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear)) || Orbwalker.LastTarget is AIHeroClient || Orbwalker.LastTarget is Obj_AI_Minion) { return; } if (Q.GetTarget(50) != null || EntityManager.MinionsAndMonsters.EnemyMinions.Where(i => i.IsMinion() || i.IsPet(false)).Concat(EntityManager.MinionsAndMonsters.Monsters).Count(i => i.IsValidTarget(Q.Range + 50)) > 0) { return; } if ((Items.HasItem((int)ItemId.Sheen) && Items.CanUseItem((int)ItemId.Sheen)) || (Items.HasItem((int)ItemId.Trinity_Force) && Items.CanUseItem((int)ItemId.Trinity_Force))) { Q.Cast(Game.CursorPos); } }; Events.OnDash += (sender, args) => { if (!args.Unit.IsMe) { return; } posDash = args.EndPos.ToVector3(); endDashT = args.EndTick; }; Game.OnUpdate += args => { if (Player.IsDead) { return; } if (cDash == 1 && Player.GetBuffCount("YasuoDashScalar") == 2) { cDash = 2; } }; Obj_AI_Base.OnBuffGain += (sender, args) => { if (!sender.IsMe || !args.Buff.Caster.IsMe) { return; } switch (args.Buff.DisplayName) { case "YasuoQ3W": haveQ3 = true; break; case "YasuoDashScalar": cDash = 1; break; case "YasuoRArmorPen": haveR = isBlockQ = true; Orbwalker.DisableAttacking = true; Orbwalker.DisableMovement = true; break; case "yasuoeqcombosoundmiss": case "YasuoEQComboSoundHit": DelayAction.Add( 70, () => { if (Player.IsDead) { return; } Orbwalker.ResetAutoAttack(); EloBuddy.Player.IssueOrder(GameObjectOrder.AttackTo, Player.ServerPosition.LSExtend(Game.CursorPos, Player.BoundingRadius * 2)); }); break; } }; Obj_AI_Base.OnBuffLose += (sender, args) => { if (!sender.IsMe || !args.Buff.Caster.IsMe) { return; } switch (args.Buff.DisplayName) { case "YasuoQ3W": haveQ3 = false; break; case "YasuoDashScalar": cDash = 0; break; } }; Obj_AI_Base.OnBuffLose += (sender, args) => { if (sender.IsAlly || !haveR || args.Buff.DisplayName != "yasuorknockupcombotar") { return; } haveR = false; DelayAction.Add( 7, () => { Orbwalker.DisableAttacking = false; Orbwalker.DisableMovement = false; }); DelayAction.Add(22, () => isBlockQ = false); }; Obj_AI_Base.OnProcessSpellCast += (sender, args) => { if (!sender.IsMe || args.Slot != SpellSlot.Q) { return; } EloBuddy.Player.IssueOrder(GameObjectOrder.AttackTo, args.Start.LSExtend(args.End, Player.BoundingRadius * 2)); }; }
/// <summary> /// The on receive message. /// </summary> /// <param name="message"> /// The message. /// </param> /// <param name="cursorPos"> /// The cursor position. /// </param> /// <param name="key"> /// The key. /// </param> /// <param name="draggableItems"> /// The Items. /// </param> /// <param name="args"> /// The args. /// </param> protected void DraggableOnReceiveMessage( Utils.WindowsMessages message, Vector2 cursorPos, uint key, List <DraggableItem> draggableItems, WndEventArgs args = null) { if (!this.IsInside(cursorPos) && !this.BeingDragged) { this.OnReceiveMessage(message, cursorPos, key, args); return; } if (!this.BeingDragged && message == Utils.WindowsMessages.WM_MOUSEMOVE && cursorPos.Distance(this.lastClickMousePosition) > 1 && Math.Abs(cursorPos.Y - this.lastClickMousePosition.Y) > 5) { if (this.leftButtonDown && !this.ResizeTransition.Moving) { this.PrepareDraggedIcon(); return; } } if (this.BeingDragged && message == Utils.WindowsMessages.WM_MOUSEMOVE) { foreach (var draggableItem in draggableItems.Where( draggableItem => !draggableItem.BeingDragged && !draggableItem.DragTransition.Moving)) { if (cursorPos.Y < draggableItem.RealPosition.Y + draggableItem.Height && draggableItem.OrderNumber == this.OrderNumber - 1) { draggableItem.DragTransition.Start(draggableItem.RealPosition, this.RealPosition); this.OrderNumber--; draggableItem.OrderNumber++; break; } if (!(cursorPos.Y > draggableItem.RealPosition.Y) || draggableItem.OrderNumber != this.OrderNumber + 1) { continue; } draggableItem.DragTransition.Start(draggableItem.RealPosition, this.RealPosition); this.OrderNumber++; draggableItem.OrderNumber--; break; } } if (!this.dragAndDropSleeper.Sleeping && message == Utils.WindowsMessages.WM_LBUTTONDOWN) { this.leftButtonDown = true; this.dragAndDropSleeper.Sleep(200); this.lastClickMousePosition = cursorPos; DelayAction.Add( 200, () => { if (!this.BeingDragged && this.leftButtonDown) { this.PrepareDraggedIcon(); } }); } if (message != Utils.WindowsMessages.WM_LBUTTONUP) { return; } this.leftButtonDown = false; if (this.BeingDragged) { this.DragTransition.Start(this.Position, this.RealPosition); this.ResizeBack(); this.BeingDragged = false; return; } if (!this.dragAndDropSleeper.Sleeping) { return; } this.OnReceiveMessage(message, cursorPos, key, args); }
private static void Killsteal() { if (Player.IsRecalling() && Setup.Killsteal["Recall"].As <MenuBool>().Enabled) { return; } if (Player.ManaPercent() < Setup.Killsteal["Mana"].As <MenuSlider>().Value) { return; } if (Setup.Killsteal["R"].As <MenuBool>().Enabled&& Spells.R.Ready) { var target = TargetSelector.GetTarget(Spells.R.Range); if (target.IsValidTarget() && Rdmg(target) > target.Health) { Spells.R.Cast(target); } } if (Setup.Killsteal["W"].As <MenuBool>().Enabled&& Spells.W.Ready) { var target = TargetSelector.GetTarget(Spells.W.Range); var pred = Spells.W.GetPrediction(target); if (target.IsValidTarget() && !Player.HasBuff("syndrawtooltip") && delay < Game.TickCount && Wdmg(target) > target.Health) { if (Objects() != null && Objects().Distance(Player.ServerPosition) < Spells.W.Range - 25) { Spells.W.Cast(Objects().ServerPosition); delay = Game.TickCount + 1000; Spells.W.LastCastAttemptT = Game.TickCount; } } if (target.IsValidTarget() && pred.HitChance >= HitChance.High && Player.HasBuff("syndrawtooltip") && Game.TickCount - Spells.W.LastCastAttemptT > Game.Ping + 100 && Wdmg(target) > target.Health) { Spells.W.Cast(pred.CastPosition); } } if (Setup.Killsteal["E"].As <MenuBool>().Enabled&& Spells.E.Ready && Spells.Q.Ready) { var target = TargetSelector.GetTarget(Spells.EQ.Range); var pred = Spells.EQ.GetPrediction(target); if (target.IsValidTarget() && pred.HitChance >= HitChance.High && Edmg(target) > target.Health) { if (Player.ServerPosition.Distance(target.ServerPosition) > Spells.Q.Range) { var EDelay = Spells.Q.Delay - (Spells.E.Delay + ((Player.Distance(Player.ServerPosition.Extend(pred.CastPosition, Spells.Q.Range))) / Spells.E.Speed)); Spells.Q.Cast(Player.ServerPosition.Extend(pred.CastPosition, Spells.Q.Range)); DelayAction.Queue((int)EDelay * 1000, () => Spells.E.Cast(Player.ServerPosition.Extend(pred.CastPosition, Spells.Q.Range))); } else { var EDelay = Spells.Q.Delay - (Spells.E.Delay + ((Player.Distance(Player.ServerPosition.Extend(pred.CastPosition, Spells.Q.Range))) / Spells.E.Speed)); Spells.Q.Cast(pred.CastPosition.Extend(Player.ServerPosition, -150)); DelayAction.Queue((int)EDelay * 2000, () => Spells.E.Cast(pred.CastPosition.Extend(Player.ServerPosition, -150))); } } } if (Setup.Killsteal["Q"].As <MenuBool>().Enabled&& Spells.Q.Ready) { var target = TargetSelector.GetTarget(Spells.Q.Range); var pred = Spells.Q.GetPrediction(target); if (target.IsValidTarget() && pred.HitChance >= HitChance.High && Qdmg(target) > target.Health) { Spells.Q.Cast(pred.CastPosition); } } }
static SkillshotDetector() { Obj_AI_Base.OnProcessSpellCast += OnProcessSpellCast; GameObject.OnCreate += (sender, args) => { DelayAction.Add(0, () => MissileOnCreate(sender)); }; GameObject.OnDelete += MissileOnDelete; GameObject.OnCreate += (sender, args) => { var spellData = SpellDatabase.GetBySourceObjectName(sender.Name); if (spellData == null || Config.evadeMenu[spellData.SpellName + "Enabled"] == null) { return; } TriggerOnDetectSkillshot( DetectionType.ProcessSpell, spellData, Variables.TickCount - Game.Ping / 2, sender.Position.ToVector2(), sender.Position.ToVector2(), sender.Position.ToVector2(), GameObjects.Heroes.MinOrDefault(i => i.IsAlly ? 1 : 0)); }; GameObject.OnDelete += (sender, args) => { if (!sender.IsValid || sender.Team == Program.Player.Team) { return; } for (var i = Evade.DetectedSkillshots.Count - 1; i >= 0; i--) { var skillshot = Evade.DetectedSkillshots[i]; if (skillshot.SpellData.ToggleParticleName != "" && new Regex(skillshot.SpellData.ToggleParticleName).IsMatch(sender.Name)) { Evade.DetectedSkillshots.RemoveAt(i); } } }; GameObject.OnCreate += (sender, args) => { var shadow = sender as Obj_AI_Minion; if (shadow != null && shadow.CharData.BaseSkinName == "zedshadow" && shadow.IsEnemy) { TrackObjects.Add(shadow); } }; Obj_AI_Base.OnPlayAnimation += (sender, args) => { if (sender.IsAlly || args.Animation != "Death" || TrackObjects.Count == 0) { return; } TrackObjects.ForEach( i => { if (i.Compare(sender)) { TrackObjects.Remove(i); } }); }; GameObject.OnDelete += (sender, args) => { if (sender.IsAlly || TrackObjects.Count == 0) { return; } TrackObjects.ForEach( i => { if (i.Compare(sender)) { TrackObjects.Remove(i); } }); }; }
private static void Combo() { AIHeroClient target = TargetSelector.GetTarget(E.Range, DamageType.Physical); if (target == null) { return; } if (GameObjects.Player.HealthPercent < mainMenu["Combo"].GetValue <MenuSlider>("wBelow").Value&& mainMenu["Combo"].GetValue <MenuBool>("Wuse").Enabled && GameObjects.Player.CountEnemyHeroesInRange(500) > 0) { W.Cast(); } //if (R.IsReady()&& mainMenu["Combo"].GetValue<MenuBool>("Ruse").Enabled) //{ // var Rtarget = // GameObjects.EnemyHeroes.FirstOrDefault(e => e.HealthPercent < 50 && e.CountAllyHeroesInRange(660) > 0); // if (Rtarget != null) // { // R.CastIfWillHit(Rtarget, 2); // } //} var barrels = GetBarrels() .Where( o => o.IsValid && !o.IsDead && o.Distance(GameObjects.Player) < 1600 && o.SkinName == "GangplankBarrel" && o.GetBuff("gangplankebarrellife").Caster.IsMe) .ToList(); if (Q.IsReady() && E.IsReady()) { var Qbarrels = GetBarrels().Where(o => o.Distance(GameObjects.Player) < Q.Range && KillableBarrel(o)); foreach (var Qbarrel in Qbarrels) { if (Qbarrel.Distance(target) < BarrelExplosionRange) { continue; } var point = GetBarrelPoints(Qbarrel.Position) .Where( p => p.IsValid() && !p.IsWall() && p.Distance(GameObjects.Player.Position) < E.Range && p.Distance(Prediction.GetPrediction(target, GetQTime(Qbarrel)).UnitPosition) < BarrelExplosionRange && savedBarrels.Count(b => b.barrel.Position.Distance(p) < BarrelExplosionRange) < 1) .OrderBy(p => p.Distance(target.Position)) .FirstOrDefault(); if (point != null && !justE) { E.Cast(point); DelayAction.Add(1, () => Q.CastOnUnit(Qbarrel)); return; } } } var minBarrel = mainMenu["Combo"].GetValue <MenuSlider>("minBarrel").Value; if (E.IsReady() && GameObjects.Player.Distance(target) < E.Range && target.Health > Q.GetDamage(target) + GameObjects.Player.GetAutoAttackDamage(target) && Orbwalker.CanMove() && minBarrel < E.Instance.Ammo) { CastE(target, barrels); } var meleeRangeBarrel = barrels.FirstOrDefault( b => b.Health < 2 && b.Distance(GameObjects.Player) < GameObjects.Player.GetRealAutoAttackRange(b) && b.CountEnemyHeroesInRange(BarrelExplosionRange) > 0); if (meleeRangeBarrel != null) { Orbwalker.ForceTarget = meleeRangeBarrel; } if (Q.IsReady()) { if (barrels.Any()) { var detoneateTargetBarrels = barrels.Where(b => b.Distance(GameObjects.Player) < Q.Range); if (detoneateTargetBarrels.Any()) { foreach (var detoneateTargetBarrel in detoneateTargetBarrels) { if (!KillableBarrel(detoneateTargetBarrel)) { continue; } if ( detoneateTargetBarrel.Distance( Prediction.GetPrediction(target, GetQTime(detoneateTargetBarrel)).UnitPosition) < BarrelExplosionRange && target.Distance(detoneateTargetBarrel.Position) < BarrelExplosionRange) { Q.CastOnUnit(detoneateTargetBarrel); return; } var detoneateTargetBarrelSeconds = barrels.Where(b => b.Distance(detoneateTargetBarrel) < BarrelConnectionRange); if (detoneateTargetBarrelSeconds.Any()) { foreach (var detoneateTargetBarrelSecond in detoneateTargetBarrelSeconds) { if ( detoneateTargetBarrelSecond.Distance( Prediction.GetPrediction( target, GetQTime(detoneateTargetBarrel) + 0.15f).UnitPosition) < BarrelExplosionRange && target.Distance(detoneateTargetBarrelSecond.Position) < BarrelExplosionRange) { Q.CastOnUnit(detoneateTargetBarrel); return; } } } } } if (2 > 1) { var enemies = GameObjects.EnemyHeroes.Where(e => e.IsValidTarget() && e.Distance(GameObjects.Player) < 600) .Select(e => Prediction.GetPrediction(e, 0.25f)); var enemies2 = GameObjects.EnemyHeroes.Where(e => e.IsValidTarget() && e.Distance(GameObjects.Player) < 600) .Select(e => Prediction.GetPrediction(e, 0.35f)); if (detoneateTargetBarrels.Any()) { foreach (var detoneateTargetBarrel in detoneateTargetBarrels) { if (!KillableBarrel(detoneateTargetBarrel)) { continue; } var enemyCount = enemies.Count( e => e.UnitPosition.Distance(detoneateTargetBarrel.Position) < BarrelExplosionRange); if (enemyCount >= 1 && detoneateTargetBarrel.CountEnemyHeroesInRange(BarrelExplosionRange) >= 1) { Q.CastOnUnit(detoneateTargetBarrel); return; } var detoneateTargetBarrelSeconds = barrels.Where(b => b.Distance(detoneateTargetBarrel) < BarrelConnectionRange); if (detoneateTargetBarrelSeconds.Any()) { foreach (var detoneateTargetBarrelSecond in detoneateTargetBarrelSeconds) { if (enemyCount + enemies2.Count( e => e.UnitPosition.Distance(detoneateTargetBarrelSecond.Position) < BarrelExplosionRange) >= 1 && detoneateTargetBarrelSecond.CountEnemyHeroesInRange(BarrelExplosionRange) >= 1) { Q.CastOnUnit( detoneateTargetBarrel); return; } } } } } } } if (Q.CanCast(target)) { CastQonHero(target, barrels); } } }
void Start() { // Draw 3 cards. ActionParallel drawParallel = new ActionParallel(); if (PlayerPrefs.HasKey(Constants.kStrNumCardsInHand)) { int numCards = PlayerPrefs.GetInt(Constants.kStrNumCardsInHand); for (int i = 0; i < numCards; i++) { DelayAction draw = new DelayAction(i * 0.3f); CardType type = (CardType)PlayerPrefs.GetInt(Constants.kStrCardType[i]); if (type == CardType.Movement) { GridType moveType = (GridType)PlayerPrefs.GetInt(Constants.kStrCardMoveType[i]); draw.OnActionFinish += () => { DeckManager.Instance.DrawCard(moveType); }; } else { CardTier tier = (CardTier)PlayerPrefs.GetInt(Constants.kStrCardTier[i]); draw.OnActionFinish += () => { DeckManager.Instance.DrawSpecificCard(type, tier); }; } drawParallel.Add(draw); } } else { DelayAction firstDraw = new DelayAction(0.1f); firstDraw.OnActionFinish += () => { DeckManager.Instance.DrawCard(); }; DelayAction secondDraw = new DelayAction(0.1f + 0.3f); secondDraw.OnActionFinish += () => { DeckManager.Instance.DrawCard(); }; DelayAction thirdDraw = new DelayAction(0.1f + 0.3f + 0.3f); secondDraw.OnActionFinish += () => { DeckManager.Instance.DrawCard(); }; drawParallel = new ActionParallel(firstDraw, secondDraw, thirdDraw); } Vector3 vec3PlayerPos = DungeonManager.Instance.GridPosToWorldPos(Player.PosX, Player.PosY); Vector3 vec3ExitPos = DungeonManager.Instance.GridPosToWorldPos(DungeonManager.Instance.ExitPosX, DungeonManager.Instance.ExitPosY); DelayAction pan = new DelayAction(2.0f); pan.OnActionStart += () => { BoardScroller.Instance.FocusCameraToPos(vec3ExitPos, 1.5f, Graph.SmoothStep); }; pan.OnActionFinish += () => { BoardScroller.Instance.FocusCameraToPos(vec3PlayerPos, 0.5f, Graph.SmoothStep); }; DelayAction phaseAnimDelay = new DelayAction(0.6f); phaseAnimDelay.OnActionFinish += () => { EventAnimationController.Instance.ExecutePhaseAnimation(GamePhase.PlayerPhase); mbGameStarted = true; }; ActionSequence startSeq = new ActionSequence(drawParallel, pan, phaseAnimDelay); ActionHandler.RunAction(startSeq); }
public static bool Cast(Ability ability, Unit target, string name) { if (name == "pudge_rot" && Utils.SleepCheck("rotToggle")) { if (!ability.IsToggled) { ability.ToggleAbility(); Utils.Sleep(500, "rotToggle"); return(true); } return(false); } if (name == "templar_assassin_psionic_trap") { var modifier = target.FindModifier("modifier_templar_assassin_trap_slow"); if (modifier != null && modifier.RemainingTime > ability.GetHitDelay(target, name)) { return(false); } if (TemplarAssasinUseTrap(target)) { return(false); } var casted = ability.CastSkillShot(target, MyHeroInfo.Position, name); if (casted) { DelayAction.Add( new DelayActionItem( (int)ability.GetHitDelay(target, name) * 1000 + 700, delegate { TemplarAssasinUseTrap(target); }, CancellationToken.None)); } return(casted); } if (AbilityMain.Me.ClassID == ClassID.CDOTA_Unit_Hero_Invoker && !ability.CanBeCasted()) { var invoked = ability.Invoke(); if (!invoked) { return(false); } DelayAction.Add( Game.Ping * 2, () => { ability.CastStun( target, MyHeroInfo.Position, 1, abilityName: name, useSleep: false, soulRing: SoulRing.Check(ability) ? MyAbilities.SoulRing : null); }); return(true); } return(ability.CastStun( target, MyHeroInfo.Position, 1, abilityName: name, useSleep: false, soulRing: SoulRing.Check(ability) ? MyAbilities.SoulRing : null)); }
public static bool Cast(Ability ability, Unit target, string name, bool disabled = false) { if (!disabled) { disabled = target.IsStunned() || target.IsRooted() || target.IsHexed() || target.IsInvul(); } if (target.HasModifier("modifier_item_blade_mail_reflect") && AbilityDamage.CalculateDamage(ability, AbilityMain.Me, target) > AbilityMain.Me.Health) { return(false); } if (target.HasModifier("modifier_nyx_assassin_spiked_carapace")) { return(false); } if (ability.Name == "sniper_assassinate") { if (AbilityMain.Me.Distance2D(target) <= AbilityMain.Me.GetAttackRange() + 100) { return(false); } } if (ability.IsAbilityBehavior(AbilityBehavior.UnitTarget, name) && ability.Name != "lion_impale" && ability.Name != "lina_dragon_slave") { if (target.IsLinkensProtected()) { if (!Utils.SleepCheck("AbilitySharp.CancelLinkens")) { return(false); } if (MyAbilities.Cyclone != null && MyAbilities.Cyclone.CanBeCasted()) { MyAbilities.Cyclone.UseAbility(target); } else if (MyAbilities.ForceStaff != null && MyAbilities.ForceStaff.CanBeCasted()) { MyAbilities.ForceStaff.UseAbility(target); } Utils.Sleep(1000, "AbilitySharp.CancelLinkens"); Game.ExecuteCommand("dota_player_units_auto_attack_mode 0"); ManageAutoAttack.AutoAttackDisabled = true; SoulRing.Cast(ability); ability.UseAbility(target, true); return(false); } Game.ExecuteCommand("dota_player_units_auto_attack_mode 0"); ManageAutoAttack.AutoAttackDisabled = true; SoulRing.Cast(ability); ability.UseAbility(target); DelayAction.Add( new DelayActionItem(300, () => { AbilityMain.LaunchSnowball(); }, CancellationToken.None)); return(true); } if ((ability.IsAbilityBehavior(AbilityBehavior.AreaOfEffect, name) || ability.IsAbilityBehavior(AbilityBehavior.Point, name)) && (disabled || Prediction.StraightTime(target) > Nukes.NukesMenuDictionary[name].Item(name + "minstraighttime").GetValue <Slider>().Value || target.MovementSpeed < 200)) { if (AbilityMain.Me.ClassId == ClassId.CDOTA_Unit_Hero_Invoker && !ability.CanBeCasted()) { var invoked = ability.Invoke(); if (!invoked) { return(false); } DelayAction.Add( Game.Ping * 2, () => { Game.ExecuteCommand("dota_player_units_auto_attack_mode 0"); ManageAutoAttack.AutoAttackDisabled = true; var casted2 = ability.CastSkillShot( target, MyHeroInfo.Position, name, SoulRing.Check(ability) ? MyAbilities.SoulRing : null); if (!casted2) { return; } if (!disabled && Utils.SleepCheck(ability.Handle.ToString()) && ability.GetCastDelay(AbilityMain.Me, target, true) * 1000 - Game.Ping > 0.1) { DelayAction.Add( new DelayActionItem( (int) (ability.GetCastDelay(AbilityMain.Me, target, true) * 1000 - Math.Max(50, Game.Ping)), () => { if (Prediction.StraightTime(target) < (600 + (ability.GetCastDelay(AbilityMain.Me, target, true) * 1000 - Math.Max(50, Game.Ping))) && target.MovementSpeed > 200) { AbilityMain.Me.Stop(); } }, CancellationToken.None)); } }); Utils.Sleep((Game.Ping * 2) + 200, "cancelorder"); Utils.Sleep((Game.Ping * 2) + 200, ability.Handle.ToString()); Utils.Sleep((Game.Ping * 2) + 200, "casting"); } Game.ExecuteCommand("dota_player_units_auto_attack_mode 0"); ManageAutoAttack.AutoAttackDisabled = true; var casted = ability.CastSkillShot( target, MyHeroInfo.Position, name, SoulRing.Check(ability) ? MyAbilities.SoulRing : null); if (!casted) { return(false); } if (!disabled && Utils.SleepCheck(ability.Handle.ToString()) && ability.GetCastDelay(AbilityMain.Me, target, true) * 1000 - Game.Ping > 0.1) { DelayAction.Add( new DelayActionItem( (int)(ability.GetCastDelay(AbilityMain.Me, target, true) * 1000 - Math.Max(50, Game.Ping)), () => { if (Prediction.StraightTime(target) < (600 + (ability.GetCastDelay(AbilityMain.Me, target, true) * 1000 - Math.Max(50, Game.Ping))) && target.MovementSpeed > 200) { AbilityMain.Me.Stop(); } }, CancellationToken.None)); } return(true); } if (ability.IsAbilityBehavior(AbilityBehavior.NoTarget, name)) { if (ability.Name == "templar_assassin_meld") { if ( !(target.Distance2D(MyHeroInfo.Position) < (AbilityMain.Me.GetAttackRange() + 50 + target.HullRadius + AbilityMain.Me.HullRadius)) || Orbwalking.AttackOnCooldown(target) || AbilityMain.Me.IsAttacking() || (target.Predict(Game.Ping).Distance2D(MyHeroInfo.Position) > (AbilityMain.Me.GetAttackRange() + 50 + target.HullRadius + AbilityMain.Me.HullRadius)) || !Utils.SleepCheck("GlobalCasting")) { return(false); } Game.ExecuteCommand("dota_player_units_auto_attack_mode 0"); ManageAutoAttack.AutoAttackDisabled = true; ability.UseAbility(); DelayAction.Add( new DelayActionItem( (int)ability.GetCastDelay(AbilityMain.Me, target) * 1000, () => { AbilityMain.Me.Attack(target); }, CancellationToken.None)); Utils.Sleep(ability.GetCastDelay(AbilityMain.Me, target) * 1000, "GlobalCasting"); Utils.Sleep(ability.GetCastDelay(AbilityMain.Me, target) * 1000 + 200, "casting"); Utils.Sleep(ability.GetCastDelay(AbilityMain.Me, target) * 1000 + 200, "Ability.Move"); Utils.Sleep(ability.GetCastDelay(AbilityMain.Me, target) * 1000 + 200, "cancelorder"); return(true); } if (ability.Name.Contains("nevermore_shadowraze")) { Game.ExecuteCommand("dota_player_units_auto_attack_mode 0"); ManageAutoAttack.AutoAttackDisabled = true; return(ability.CastSkillShot(target, name)); } SoulRing.Cast(ability); Game.ExecuteCommand("dota_player_units_auto_attack_mode 0"); ManageAutoAttack.AutoAttackDisabled = true; ability.UseAbility(); return(true); } return(false); }
internal static void Init(Menu menu) { var orbwalkMenu = menu.Add(new Menu("Orbwalker", "Orbwalker")); { orbwalkMenu.Bool("Enable", "Enable Orbwalker"); var drawMenu = orbwalkMenu.Add(new Menu("Draw", "Draw")); { drawMenu.Bool("AARange", "Auto-Attack Range"); drawMenu.Bool("KillableMinion", "Killable Minion", false); drawMenu.Bool("KillableMinionFade", "Enable Killable Minion Fade Effect", false); } var advMenu = orbwalkMenu.Add(new Menu("Advanced", "Advanced")); { advMenu.Separator("Movement"); advMenu.Slider("ExtraHold", "Extra Hold Position", 25, 0, 250); advMenu.Separator("Miscellaneous"); advMenu.Slider("ExtraWindup", "Extra Windup", 80, 0, 200); advMenu.Slider("FarmDelay", "Farm Delay", 30, 0, 200); advMenu.Bool("PriorizeFarm", "Priorize Farm Over Harass"); advMenu.Bool("Missile", "Use Missile Checks (Ranged)"); } orbwalkMenu.Separator("Key Bindings"); orbwalkMenu.KeyBind("lasthitKey", "Farm", Keys.X); orbwalkMenu.KeyBind("laneclearKey", "Lane Clear", Keys.V); orbwalkMenu.KeyBind("hybridKey", "Hybrid", Keys.C); orbwalkMenu.KeyBind("orbwalkKey", "Orbwalk", Keys.Space); } Movement = Attack = true; Game.OnUpdate += args => { if (InterruptableSpell.IsCastingInterruptableSpell(Program.Player, true) || !Enabled) { return; } if (ActiveMode != OrbwalkingMode.None) { Orbwalk(OrbwalkTarget, OrbwalkPosition); } }; Spellbook.OnStopCast += (sender, args) => { if (!sender.Owner.IsMe || !Enabled) { return; } if (args.DestroyMissile && args.StopAnimation) { ResetAutoAttackTimer(); } }; Obj_AI_Base.OnDoCast += (sender, args) => { if (!sender.IsMe || !Enabled || !AutoAttack.IsAutoAttack(args.SData.Name)) { return; } if (Game.Ping <= 30) { DelayAction.Add(30, () => OnDoCastDelayed(args)); return; } OnDoCastDelayed(args); }; Obj_AI_Base.OnProcessSpellCast += OnProcessSpellCast; Drawing.OnDraw += OnDraw; }
/// <summary> /// Handles the <see cref="E:ProcessSpell" /> event. /// </summary> public static void OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (!Vars.Menu["enable"].GetValue <MenuSliderButton>().BValue) { return; } var objAiHero = sender as Obj_AI_Hero; if (objAiHero == null || !objAiHero.IsValidTarget() || !objAiHero.IsEnemy) { return; } if (!objAiHero.ServerPosition.IsOnScreen() && Vars.Menu["onscreen"].GetValue <MenuBool>().Value) { return; } if (GameObjects.Player.Distance(objAiHero) > Vars.Menu["enable"].GetValue <MenuSliderButton>().SValue) { return; } /// <summary> /// Check for the Not included Champions. /// </summary> if (Vars.NotIncludedChampions.Contains(objAiHero.ChampionName.ToLower())) { return; } switch (args.Slot) { case SpellSlot.R: /// <summary> /// The Ultimate (R). /// </summary> if (Vars.Menu[objAiHero.ChampionName.ToLower()]["ultimate"].GetValue <MenuBool>().Value) { /// <summary> /// Exceptions check. /// </summary> if (Vars.ExChampions.Contains(objAiHero.ChampionName)) { foreach (var s in Vars.RealSpells) { if (!objAiHero.Buffs.Any(b => b.Name.Equals(s))) { return; } if (objAiHero.GetBuffCount(Vars.RealSpells.First(r => r.Equals(args.SData.Name))) > 1) { return; } } } /// <summary> /// Let's delay the alert by 5-10 seconds since we're not Sean Wrona. /// </summary> DelayAction.Add( WeightedRandom.Next(5000, 10000), () => { if (Vars.Menu["nocombo"].GetValue <MenuBool>().Value && Vars.Menu["combokey"].GetValue <MenuKeyBind>().Active) { return; } /// <summary> /// Then we randomize the whole output (Structure/Names/SpellNames) to make it seem totally legit. /// </summary> switch (WeightedRandom.Next(1, 4)) { case 1: Game.Say($"{Vars.GetHumanName(objAiHero.ChampionName.ToLower())} no ulti"); break; case 2: Game.Say($"no ult {Vars.GetHumanName(objAiHero.ChampionName.ToLower())}"); break; case 3: Game.Say($"ult {Vars.GetHumanName(objAiHero.ChampionName.ToLower())}"); break; default: Game.Say($"{Vars.GetHumanName(objAiHero.ChampionName.ToLower())} ult"); break; } }); } break; case SpellSlot.Summoner1: /// <summary> /// The First SummonerSpell. /// </summary> if (Vars.GetHumanSpellName(objAiHero.Spellbook.Spells[4].Name.ToLower()) != null && Vars.Menu[objAiHero.ChampionName.ToLower()]["sum1"].GetValue <MenuBool>().Value) { /// <summary> /// Let's delay the alert by 5-10 seconds since we're not Sean Wrona. /// </summary> DelayAction.Add( WeightedRandom.Next(5000, 10000), () => { if (Vars.Menu["nocombo"].GetValue <MenuBool>().Value && Vars.Menu["combokey"].GetValue <MenuKeyBind>().Active) { return; } /// <summary> /// Then we randomize the whole output (Structure/Names/SpellNames) to make it seem totally legit. /// </summary> switch (WeightedRandom.Next(1, 4)) { case 1: Game.Say( $"no {Vars.GetHumanSpellName(objAiHero.Spellbook.Spells[4].Name.ToLower())} " + $"{Vars.GetHumanName(objAiHero.ChampionName.ToLower())}"); break; case 2: Game.Say( $"{Vars.GetHumanName(objAiHero.ChampionName.ToLower())} no " + $"{Vars.GetHumanSpellName(objAiHero.Spellbook.Spells[4].Name.ToLower())}"); break; case 3: Game.Say( $"{Vars.GetHumanSpellName(objAiHero.Spellbook.Spells[4].Name.ToLower())} " + $"{Vars.GetHumanName(objAiHero.ChampionName.ToLower())}"); break; default: Game.Say( $"{Vars.GetHumanName(objAiHero.ChampionName.ToLower())} " + $"{Vars.GetHumanSpellName(objAiHero.Spellbook.Spells[4].Name.ToLower())}"); break; } }); } break; case SpellSlot.Summoner2: /// <summary> /// The Second SummonerSpell. /// </summary> if (Vars.GetHumanSpellName(objAiHero.Spellbook.Spells[5].Name.ToLower()) != null && Vars.Menu[objAiHero.ChampionName.ToLower()]["sum2"].GetValue <MenuBool>().Value) { /// <summary> /// Let's delay the alert by 5-10 seconds since we're not Sean Wrona. /// </summary> DelayAction.Add( WeightedRandom.Next(5000, 10000), () => { if (Vars.Menu["nocombo"].GetValue <MenuBool>().Value && Vars.Menu["combokey"].GetValue <MenuKeyBind>().Active) { return; } /// <summary> /// Then we randomize the whole output (Structure/Names/SpellNames) to make it seem totally legit. /// </summary> switch (WeightedRandom.Next(1, 4)) { case 1: Game.Say( $"no {Vars.GetHumanSpellName(objAiHero.Spellbook.Spells[5].Name.ToLower())} " + $"{Vars.GetHumanName(objAiHero.ChampionName.ToLower())}"); break; case 2: Game.Say( $"{Vars.GetHumanName(objAiHero.ChampionName.ToLower())} no " + $"{Vars.GetHumanSpellName(objAiHero.Spellbook.Spells[5].Name.ToLower())}"); break; case 3: Game.Say( $"{Vars.GetHumanSpellName(objAiHero.Spellbook.Spells[5].Name.ToLower())} " + $"{Vars.GetHumanName(objAiHero.ChampionName.ToLower())}"); break; default: Game.Say( $"{Vars.GetHumanName(objAiHero.ChampionName.ToLower())} " + $"{Vars.GetHumanSpellName(objAiHero.Spellbook.Spells[5].Name.ToLower())}"); break; } }); } break; } }
public override void Init () { base.Init (); count = new DelayAction (10f,startAction,actionActive); }
private static void Flee() { if (!Setup.Flee["Key"].Enabled) { return; } Player.IssueOrder(OrderType.MoveTo, Game.CursorPos); if (Player.ManaPercent() < Setup.Flee["Mana"].As <MenuSlider>().Value) { return; } if (Setup.Flee["E"].As <MenuBool>().Enabled&& Spells.E.Ready && Spells.Q.Ready) { var target = TargetSelector.GetTarget(Spells.EQ.Range); var pred = Spells.EQ.GetPrediction(target); if (target.IsValidTarget() && pred.HitChance >= HitChance.High) { if (Player.ServerPosition.Distance(target.ServerPosition) > Spells.Q.Range) { var EDelay = Spells.Q.Delay - (Spells.E.Delay + ((Player.Distance(Player.ServerPosition.Extend(pred.CastPosition, Spells.Q.Range))) / Spells.E.Speed)); Spells.Q.Cast(Player.ServerPosition.Extend(pred.CastPosition, Spells.Q.Range)); DelayAction.Queue((int)EDelay * 1000, () => Spells.E.Cast(Player.ServerPosition.Extend(pred.CastPosition, Spells.Q.Range))); } else { var EDelay = Spells.Q.Delay - (Spells.E.Delay + ((Player.Distance(Player.ServerPosition.Extend(pred.CastPosition, Spells.Q.Range))) / Spells.E.Speed)); Spells.Q.Cast(pred.CastPosition.Extend(Player.ServerPosition, -150)); DelayAction.Queue((int)EDelay * 2000, () => Spells.E.Cast(pred.CastPosition.Extend(Player.ServerPosition, -150))); } } } if (Setup.Flee["E"].As <MenuBool>().Enabled&& Spells.E.Ready && !Spells.Q.Ready) { var target = TargetSelector.GetTarget(Spells.E.Range); var pred = Spells.E.GetPrediction(target); if (target.IsValidTarget() && pred.HitChance >= HitChance.High) { Spells.E.Cast(pred.CastPosition); } } if (Setup.Flee["W"].As <MenuBool>().Enabled&& Spells.W.Ready) { var target = TargetSelector.GetTarget(Spells.W.Range); var pred = Spells.W.GetPrediction(target); if (target.IsValidTarget() && !Player.HasBuff("syndrawtooltip") && delay < Game.TickCount) { if (Objects() != null && Objects().Distance(Player.ServerPosition) < Spells.W.Range - 25) { Spells.W.Cast(Objects().ServerPosition); delay = Game.TickCount + 1000; Spells.W.LastCastAttemptT = Game.TickCount; } } if (target.IsValidTarget() && pred.HitChance >= HitChance.High && Player.HasBuff("syndrawtooltip") && Game.TickCount - Spells.W.LastCastAttemptT > Game.Ping + 100) { Spells.W.Cast(pred.CastPosition); } } }
private static void Evading(List <Skillshot> skillshots) { foreach (var skillshot in skillshots) { foreach (var spell in EvadeSpellDatabase.Spells.Where( i => i.Enable && i.IsReady && i.DangerLevel <= skillshot.DangerLevel)) { if (spell.IsSpellShield) { if (skillshot.IsAboutToHit(Program.Player, spell.Delay)) { Program.Player.Spellbook.CastSpell(spell.Slot, Program.Player); } return; } if (spell.IsDash) { if (spell.IsTargetted) { var target = spell.GetEvadeTarget(); if (target != null) { Program.Player.Spellbook.CastSpell(spell.Slot, target); return; } if (Variables.TickCount - LastWardJumpAttempt < 250) { return; } if (spell.ValidTargets.Contains(SpellValidTargets.AllyWards) && Program.MainMenu["Evade"]["Spells"][spell.Name]["WardJump"]) { var ward = Items.GetWardSlot(); if (ward != null) { var point = spell.GetEvadePoint(600); if (point.IsValid()) { Program.Player.Spellbook.CastSpell(ward.SpellSlot, point); LastWardJumpAttempt = Variables.TickCount; return; } } } } else { var point = spell.GetEvadePoint(); if (point.IsValid()) { if (!spell.Invert) { if (spell.RequirePreMove) { Program.Player.IssueOrder(GameObjectOrder.MoveTo, point, false); DelayAction.Add( Game.Ping / 2 + 100, () => Program.Player.Spellbook.CastSpell(spell.Slot, point)); } else { Program.Player.Spellbook.CastSpell(spell.Slot, point); } } else { Program.Player.Spellbook.CastSpell( spell.Slot, (PlayerPosition - (point.ToVector2() - PlayerPosition)).ToVector3()); } return; } } } if (spell.IsBlink) { if (spell.IsTargetted) { var target = spell.GetEvadeTarget(); if (target != null) { if (skillshot.IsAboutToHit(Program.Player, spell.Delay)) { if (spell.SelfCast) { Program.Player.Spellbook.CastSpell(spell.Slot); } else { Program.Player.Spellbook.CastSpell(spell.Slot, target); } } return; } if (Variables.TickCount - LastWardJumpAttempt < 250) { return; } if (spell.ValidTargets.Contains(SpellValidTargets.AllyWards) && Program.MainMenu["Evade"]["Spells"][spell.Name]["WardJump"]) { var ward = Items.GetWardSlot(); if (ward != null) { var point = spell.GetEvadePoint(600); if (point.IsValid()) { Program.Player.Spellbook.CastSpell(ward.SpellSlot, point); LastWardJumpAttempt = Variables.TickCount; return; } } } } else { var point = spell.GetEvadePoint(); if (point.IsValid()) { if (skillshot.IsAboutToHit(Program.Player, spell.Delay)) { Program.Player.Spellbook.CastSpell(spell.Slot, point); } return; } } } if (spell.IsInvulnerability) { if (spell.IsTargetted) { var target = spell.GetEvadeTarget(true, 0, true); if (target != null) { if (skillshot.IsAboutToHit(Program.Player, spell.Delay)) { Program.Player.Spellbook.CastSpell(spell.Slot, target); } return; } } else { if (skillshot.IsAboutToHit(Program.Player, spell.Delay)) { if (spell.SelfCast) { Program.Player.Spellbook.CastSpell(spell.Slot); } else { Program.Player.Spellbook.CastSpell(spell.Slot, Program.Player.ServerPosition); } } return; } } if (spell.IsShield) { if (skillshot.IsAboutToHit(Program.Player, spell.Delay, spell.IsYasuoWall)) { if (spell.RequireMissilePos) { Program.Player.Spellbook.CastSpell( spell.Slot, PlayerPosition.Extend(skillshot.Start, 100).ToVector3()); } else { Program.Player.Spellbook.CastSpell(spell.Slot, Program.Player); } } return; } } } }
public DelayActionTests() { this.delayAction = new DelayAction(); }
public static void EQWLogic(AIHeroClient target, bool useQ, bool useW, bool useE) { if (target == null || !target.IsValidTarget()) { target = TargetSelector.GetTarget(MyLogic.E.Range + 300f); } if (target == null || !target.IsValidTarget() || !target.IsValidTarget()) { return; } if (useE && MyLogic.E.IsReady() && target.IsValidTarget(MyLogic.E.Range + 300f)) { var ePos = GetEPosition(target); if (ePos != Vector3.Zero && ePos.DistanceToPlayer() <= MyLogic.E.Range && CanCastE(ePos, target)) { if (MyLogic.MiscMenu["FlowersKatarina.MiscMenu.EHumanizer"].GetValue <MenuSliderButton>().Enabled) { DelayAction.Add( MyLogic.MiscMenu["FlowersKatarina.MiscMenu.EHumanizer"].GetValue <MenuSliderButton>().Value, () => MyLogic.E.Cast(ePos)); } else { MyLogic.E.Cast(ePos); } } } if (useQ && MyLogic.Q.IsReady() && target.IsValidTarget(MyLogic.Q.Range) && !MyLogic.E.IsReady()) { if (target.IsValidTarget(MyLogic.Q.Range)) { if (!(MyLogic.W.IsReady() && MyLogic.E.IsReady()) && target.DistanceToPlayer() <= 300 || !target.IsFacing(ObjectManager.Player) && target.DistanceToPlayer() > 300) { MyLogic.Q.CastOnUnit(target); } } else if (target.IsValidTarget(MyLogic.E.Range) && (Orbwalker.ActiveMode == OrbwalkerMode.Combo && MyLogic.ComboMenu["FlowersKatarina.ComboMenu.QOnMinion"].GetValue <MenuBool>().Enabled || Orbwalker.ActiveMode == OrbwalkerMode.Harass && MyLogic.HarassMenu["FlowersKatarina.HarassMenu.QOnMinion"].GetValue <MenuBool>())) { var extraDagger = target.PreviousPosition.Extend(ObjectManager.Player.PreviousPosition, 350f); var min = ObjectManager.Get <AIBaseClient>().Aggregate((x, y) => x.Distance(extraDagger) < y.Distance(extraDagger) ? x : y); if (min.Distance(extraDagger) < 130) { MyLogic.Q.CastOnUnit(min); } } } if (useW && MyLogic.W.IsReady() && target.IsValidTarget(MyLogic.W.Range)) { MyLogic.W.Cast(); } }
/// <summary> /// Fired when the game is updated. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Clear(EventArgs args) { if (Bools.HasSheenBuff()) { return; } /// <summary> /// The E Clear Logics. /// </summary> if (Vars.E.IsReady()) { /// <summary> /// The E JungleClear Logic. /// </summary> if (Targets.JungleMinions.Any()) { if (GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.E.Slot, Vars.getSliderItem(Vars.EMenu, "clear")) && Vars.getSliderItem(Vars.EMenu, "clear") != 101) { DelayAction.Add(Vars.getSliderItem(Vars.EMenu, "delay"), () => { foreach (var minion in Targets.Minions.Where(m => m.HasBuffOfType(BuffType.Poison))) { Vars.E.CastOnUnit(minion); } }); } } /// <summary> /// The E LaneClear Logics. /// </summary> else if (Targets.Minions.Any()) { if (GameObjects.Player.ManaPercent < ManaManager.GetNeededMana(Vars.E.Slot, Vars.getSliderItem(Vars.EMenu, "lasthit")) && Vars.getSliderItem(Vars.EMenu, "lasthit") != 101) { DelayAction.Add(Vars.getSliderItem(Vars.EMenu, "delay"), () => { foreach (var minion in Targets.Minions.Where( m => Vars.GetRealHealth(m) < (float)GameObjects.Player.LSGetSpellDamage(m, SpellSlot.E) + (m.HasBuffOfType(BuffType.Poison) ? (float)GameObjects.Player.LSGetSpellDamage(m, SpellSlot.E, DamageStage.Empowered) : 0))) { Vars.E.CastOnUnit(minion); } }); } else if (GameObjects.Player.ManaPercent >= ManaManager.GetNeededMana(Vars.E.Slot, Vars.getSliderItem(Vars.EMenu, "clear")) && Vars.getSliderItem(Vars.EMenu, "clear") != 101) { DelayAction.Add(Vars.getSliderItem(Vars.EMenu, "delay"), () => { foreach (var minion in Targets.Minions.Where(m => m.HasBuffOfType(BuffType.Poison))) { Vars.E.CastOnUnit(minion); } }); } } } /// <summary> /// The Q Clear Logic. /// </summary> if (Vars.Q.IsReady() && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.Q.Slot, Vars.getSliderItem(Vars.QMenu, "clear")) && Vars.getSliderItem(Vars.QMenu, "clear") != 101) { /// <summary> /// The Q JungleClear Logic. /// </summary> if (Targets.JungleMinions.Any()) { Vars.Q.Cast(Targets.JungleMinions[0].ServerPosition); } /// <summary> /// The Q LaneClear Logic. /// </summary> else if (Vars.Q.GetCircularFarmLocation(Targets.Minions, Vars.Q.Width).MinionsHit >= 3) { Vars.Q.Cast(Vars.Q.GetCircularFarmLocation(Targets.Minions, Vars.Q.Width).Position); } } /// <summary> /// The W Clear Logic. /// </summary> if (Vars.W.IsReady() && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.W.Slot, Vars.getSliderItem(Vars.WMenu, "clear")) && Vars.getSliderItem(Vars.WMenu, "clear") != 101) { /// <summary> /// The W JungleClear Logic. /// </summary> if (Targets.JungleMinions.Any(m => !m.HasBuffOfType(BuffType.Poison))) { Vars.W.Cast(Targets.JungleMinions.Where(m => !m.HasBuffOfType(BuffType.Poison)).FirstOrDefault().ServerPosition); } /// <summary> /// The W LaneClear Logic. /// </summary> else if (Vars.W.GetCircularFarmLocation(Targets.Minions, Vars.W.Width).MinionsHit >= 3) { Vars.W.Cast(Vars.W.GetCircularFarmLocation(Targets.Minions.Where(m => !m.HasBuffOfType(BuffType.Poison)).ToList(), Vars.W.Width).Position); } } }
private static void OnGameLoad() { TextBold = new Font(Drawing.Direct3DDevice, new FontDescription { FaceName = "Impact", Height = 30, Weight = FontWeight.Normal, OutputPrecision = FontPrecision.Default, Quality = FontQuality.ClearType }); Q = new Spell(SpellSlot.Q); W = new Spell(SpellSlot.W); E = new Spell(SpellSlot.E); R = new Spell(SpellSlot.R); Config = new Menu("OneKeyToWin_AIO" + ObjectManager.Player.CharacterName, "OneKeyToWin AIO", true); #region MENU ABOUT OKTW var about = new Menu("about", "About OKTW©"); about.Add(new MenuBool("debug", "Debug", false)); about.Add(new MenuBool("debugChat", "Debug Chat", false)); about.Add(new MenuSeparator("0", "OneKeyToWin© by Sebby")); about.Add(new MenuSeparator("1", "visit joduska.me")); about.Add(new MenuSeparator("2", "DONATE: [email protected]")); about.Add(new MenuBool("print", "OKTW NEWS in chat", true)); about.Add(new MenuBool("logo", "Intro logo OKTW", true)); Config.Add(about); #endregion #region PREDICTION MODE var pred = new Menu("predmode", "Prediction MODE"); pred.Add(new MenuList <string>("Qpred", "Q Prediction MODE", new[] { "Common prediction", "OKTW© PREDICTION", "SPrediction press F5 if not loaded", "Exory prediction" }, ObjectManager.Player.CharacterName) { Index = 1 }); pred.Add(new MenuList <string>("QHitChance", "Q Hit Chance", new[] { "Very High", "High", "Medium" }, ObjectManager.Player.CharacterName) { Index = 0 }); pred.Add(new MenuList <string>("Wpred", "W Prediction MODE", new[] { "Common prediction", "OKTW© PREDICTION", "SPrediction press F5 if not loaded", "Exory prediction" }, ObjectManager.Player.CharacterName) { Index = 1 }); pred.Add(new MenuList <string>("WHitChance", "W Hit Chance", new[] { "Very High", "High", "Medium" }, ObjectManager.Player.CharacterName) { Index = 0 }); pred.Add(new MenuList <string>("Epred", "E Prediction MODE", new[] { "Common prediction", "OKTW© PREDICTION", "SPrediction press F5 if not loaded", "Exory prediction" }, ObjectManager.Player.CharacterName) { Index = 1 }); pred.Add(new MenuList <string>("EHitChance", "E Hit Chance", new[] { "Very High", "High", "Medium" }, ObjectManager.Player.CharacterName) { Index = 0 }); pred.Add(new MenuList <string>("Rpred", "R Prediction MODE", new[] { "Common prediction", "OKTW© PREDICTION", "SPrediction press F5 if not loaded", "Exory prediction" }, ObjectManager.Player.CharacterName) { Index = 1 }); pred.Add(new MenuList <string>("RHitChance", "R Hit Chance", new[] { "Very High", "High", "Medium" }, ObjectManager.Player.CharacterName) { Index = 0 }); pred.Add(new MenuBool("debugPred", "Draw Aiming OKTW© PREDICTION", false)); Config.Add(pred); if (pred.GetValue <MenuList <string> >("Qpred").Index == 2 || pred.GetValue <MenuList <string> >("Wpred").Index == 2 || pred.GetValue <MenuList <string> >("Epred").Index == 2 || pred.GetValue <MenuList <string> >("Rpred").Index == 2) { SPrediction.Prediction.Initialize(pred); SPredictionLoad = true; pred.Add(new MenuSeparator("322", "SPREDICTION LOADED")); } else { pred.Add(new MenuSeparator("322", "SPREDICTION NOT LOADED")); } #endregion #region EXTRA SETTINGS var extra = new Menu("extraSet", "Extra settings OKTW©"); extra.Add(new MenuBool("supportMode", "Support Mode", false, ObjectManager.Player.CharacterName)); extra.Add(new MenuBool("comboDisableMode", "Disable auto-attack in combo mode", false, ObjectManager.Player.CharacterName)); extra.Add(new MenuBool("manaDisable", "Disable mana manager in combo", false, ObjectManager.Player.CharacterName)); extra.Add(new MenuBool("collAA", "Disable auto-attack if Yasuo wall collision", true, ObjectManager.Player.CharacterName)); var anti = new Menu("antimelee", "Anti-Melee Positioning Assistant OKTW©"); anti.Add(new MenuBool("positioningAssistant", "Anti-Melee Positioning Assistant OKTW©", false)); var assist = new Menu("antimeleeassist", "Positioning Assistant:"); foreach (var enemy in GameObjects.EnemyHeroes.Where(enemy => enemy.IsMelee)) { assist.Add(new MenuBool("posAssistant" + enemy.CharacterName, enemy.CharacterName, true)); } anti.Add(new MenuBool("positioningAssistantDraw", "Show notification", true)); anti.Add(assist); extra.Add(anti); extra.Add(new MenuBool("harassLaneclear", "Skill-Harass in lane clear", true)); extra.GetValue <MenuBool>("supportMode").Enabled = false; Config.Add(extra); #endregion #region HARASS var harass = new Menu("harass", "Harass"); foreach (var enemy in GameObjects.EnemyHeroes) { harass.Add(new MenuBool("harass" + enemy.CharacterName, enemy.CharacterName, true)); } Config.Add(harass); #endregion #region FARM var farm = new Menu("farm", "Farm"); var spellFarm = new Menu("spellfarm", "SPELLS FARM TOGGLE"); spellFarm.Add(new MenuBool("spellFarm", "OKTW spells farm", true)); spellFarm.Add(new MenuList <string>("spellFarmMode", "SPELLS FARM TOGGLE MODE", new[] { "Scroll down", "Scroll press", "Key toggle", "Disable" }) { Index = 1 }); spellFarm.Add(new MenuKeyBind("spellFarmKeyToggle", "Key toggle", Keys.N, KeyBindType.Toggle)); spellFarm.Add(new MenuBool("showNot", "Show notification", true)); spellFarm.GetValue <MenuBool>("spellFarm").Permashow(true); farm.Add(spellFarm); Config.Add(farm); #endregion #region DRAW var draw = new Menu("draw", "Draws OKTW©"); draw.Add(new MenuBool("disableDraws", "DISABLE DRAWS", false)); Config.Add(draw); #endregion #region LOAD CHAMPIONS switch (Player.CharacterName) { case "Caitlyn": new Champions.Caitlyn(); break; case "Graves": new Champions.Graves(); break; case "Jinx": new Champions.Jinx(); break; } #endregion #region LOGO if (about.GetValue <MenuBool>("logo").Enabled) { Intro = new Render.Sprite(LoadImg("intro"), new Vector2(Drawing.Width / 2 - 500, Drawing.Height / 2 - 350)); Intro.Add(0); Intro.OnDraw(); DelayAction.Add(7000, () => Intro.Remove()); } #endregion Config.Attach(); Drawing.OnDraw += Drawing_OnDraw; Game.OnUpdate += Game_OnUpdate; Game.OnWndProc += Game_OnWndProc; Orbwalker.OnAction += Orbwalker_OnAction; if (about.GetValue <MenuBool>("print").Enabled) { Chat.PrintChat("<font size='30'>OneKeyToWin</font> <font color='#b756c5'>by Sebby</font>"); Chat.PrintChat("<font color='#b756c5'>OKTW NEWS: </font>" + OktwNews); } }
public Yasuo() { Q = new LeagueSharp.SDK.Spell(SpellSlot.Q, 505).SetSkillshot(QDelay, 20, float.MaxValue, false, SkillshotType.SkillshotLine); Q2 = new LeagueSharp.SDK.Spell(Q.Slot, 1100).SetSkillshot(Q2Delay, 90, 1200, true, Q.Type); Q3 = new LeagueSharp.SDK.Spell(Q.Slot, 250).SetTargetted(0.005f, float.MaxValue); W = new LeagueSharp.SDK.Spell(SpellSlot.W, 400); E = new LeagueSharp.SDK.Spell(SpellSlot.E, 475).SetTargetted(0, 1050); E2 = new LeagueSharp.SDK.Spell(E.Slot).SetTargetted(E.Delay + Q3.Delay, E.Speed); R = new LeagueSharp.SDK.Spell(SpellSlot.R, 1200); Q.DamageType = Q2.DamageType = R.DamageType = DamageType.Physical; E.DamageType = DamageType.Magical; Q.MinHitChance = Q2.MinHitChance = HitChance.VeryHigh; E.CastCondition += () => !posDash.IsValid(); if (YasuoPro.YasuoMenu.ComboM != null) { if (EntityManager.Heroes.Enemies.Any()) { Evade.Init(); } Evade.Evading += Evading; Evade.TryEvading += TryEvading; return; } comboMenu = config.AddSubMenu("Combo", "Combo"); comboMenu.AddGroupLabel("Q: Always On"); comboMenu.AddGroupLabel("E Gap Settings"); comboMenu.Add("EGap", new CheckBox("Use E")); comboMenu.Add("EMode", new ComboBox("Follow Mode", 0, "Enemy", "Mouse")); comboMenu.Add("ETower", new CheckBox("Under Tower", false)); comboMenu.Add("EStackQ", new CheckBox("Stack Q While Gap", false)); comboMenu.AddGroupLabel("R Settings"); comboMenu.Add("R", new KeyBind("Use R", false, KeyBind.BindTypes.PressToggle, 'X')); comboMenu.Add("RDelay", new CheckBox("Delay Cast")); comboMenu.Add("RHpU", new Slider("If Enemies Hp < (%)", 60)); comboMenu.Add("RCountA", new Slider("Or Count >=", 2, 1, 5)); hybridMenu = config.AddSubMenu("Hybrid", "Hybrid"); hybridMenu.AddGroupLabel("Q: Always On"); hybridMenu.Add("Q3", new CheckBox("Also Q3")); hybridMenu.Add("QLastHit", new CheckBox("Last Hit (Q1/2)")); hybridMenu.AddGroupLabel("Auto Q Settings"); hybridMenu.Add("AutoQ", new KeyBind("KeyBind", false, KeyBind.BindTypes.PressToggle, 'T')); hybridMenu.Add("AutoQ3", new CheckBox("Also Q3", false)); lcMenu = config.AddSubMenu("LaneClear", "Lane Clear"); lcMenu.AddGroupLabel("Q Settings"); lcMenu.Add("Q", new CheckBox("Use Q")); lcMenu.Add("Q3", new CheckBox("Also Q3", false)); lcMenu.AddGroupLabel("E Settings"); lcMenu.Add("E", new CheckBox("Use E")); lcMenu.Add("ELastHit", new CheckBox("Last Hit Only", false)); lcMenu.Add("ETower", new CheckBox("Under Tower", false)); lhMenu = config.AddSubMenu("LastHit", "Last Hit"); lhMenu.AddGroupLabel("Q Settings"); lhMenu.Add("Q", new CheckBox("Use Q")); lhMenu.Add("Q3", new CheckBox("Also Q3", false)); lhMenu.AddGroupLabel("E Settings"); lhMenu.Add("E", new CheckBox("Use E")); lhMenu.Add("ETower", new CheckBox("Under Tower", false)); ksMenu = config.AddSubMenu("KillSteal", "Kill Steal"); ksMenu.Add("Q", new CheckBox("Use Q")); ksMenu.Add("E", new CheckBox("Use E")); ksMenu.Add("R", new CheckBox("Use R")); foreach (var enemy in ObjectManager.Get <AIHeroClient>().Where(o => o.IsEnemy)) { ksMenu.Add("RCast" + enemy.NetworkId, new CheckBox("Cast On " + enemy.ChampionName, false)); } fleeMenu = config.AddSubMenu("Flee", "Flee"); fleeMenu.Add("E", new KeyBind("Use E", false, KeyBind.BindTypes.HoldActive, 'C')); fleeMenu.Add("Q", new CheckBox("Stack Q While Dash")); if (EntityManager.Heroes.Enemies.Any()) { Evade.Init(); } drawMenu = config.AddSubMenu("Draw", "Draw"); drawMenu.Add("Q", new CheckBox("Q Range", false)); drawMenu.Add("E", new CheckBox("E Range", false)); drawMenu.Add("R", new CheckBox("R Range", false)); drawMenu.Add("UseR", new CheckBox("R In Combo Status")); drawMenu.Add("StackQ", new CheckBox("Auto Stack Q Status")); miscMenu = config.AddSubMenu("Misc", "Misc"); miscMenu.Add("StackQ", new KeyBind("Auto Stack Q", false, KeyBind.BindTypes.PressToggle, 'Z')); Evade.Evading += Evading; Evade.TryEvading += TryEvading; Game.OnUpdate += OnUpdate; Drawing.OnDraw += OnDraw; Game.OnUpdate += args => { if (Player.IsDead) { if (isDash) { isDash = false; posDash = new Vector2(); } return; } if (isDash && !Player.IsDashing()) { isDash = false; DelayAction.Add(50, () => posDash = new Vector2()); } Q.Delay = GetQDelay(false); Q2.Delay = GetQDelay(true); E.Speed = E2.Speed = 1045 + (Player.MoveSpeed - 345); }; Orbwalker.OnPostAttack += (sender, args) => { if (!Q.IsReady() || haveQ3 || (!Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) || !Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear)) || Orbwalker.LastTarget is AIHeroClient || Orbwalker.LastTarget is Obj_AI_Minion) { return; } if (Q.GetTarget(50) != null || Common.ListMinions().Count(i => i.IsValidTarget(Q.Range + 50)) > 0) { return; } if ((Items.HasItem((int)ItemId.Sheen) && Items.CanUseItem((int)ItemId.Sheen)) || (Items.HasItem((int)ItemId.Trinity_Force) && Items.CanUseItem((int)ItemId.Trinity_Force))) { Q.Cast(Game.CursorPos); } }; Events.OnDash += (sender, args) => { if (!args.Unit.IsMe) { return; } isDash = true; posDash = args.EndPos; }; Obj_AI_Base.OnBuffGain += (sender, args) => { if (!sender.IsMe) { return; } switch (args.Buff.DisplayName) { case "YasuoQ3W": haveQ3 = true; break; case "YasuoDashScalar": cDash = 1; break; } }; Obj_AI_Base.OnBuffUpdate += (sender, args) => { if (!sender.IsMe || !args.Buff.Caster.IsMe || args.Buff.DisplayName != "YasuoDashScalar") { return; } cDash = 2; }; Obj_AI_Base.OnBuffLose += (sender, args) => { if (!sender.IsMe) { return; } switch (args.Buff.DisplayName) { case "YasuoQ3W": haveQ3 = false; break; case "YasuoDashScalar": cDash = 0; break; } }; Obj_AI_Base.OnSpellCast += (sender, args) => { if (!sender.IsMe || !args.SData.Name.StartsWith("YasuoQ") || args.SData.Name.EndsWith("Mis")) { return; } if (args.SData.Name.EndsWith("W")) { DelayAction.Add(50, Orbwalker.ResetAutoAttack); } EloBuddy.Player.IssueOrder(GameObjectOrder.AttackTo, Player.ServerPosition.LSExtend(args.End, -(Player.BoundingRadius * 2))); }; }
public override void Use(EvadableAbility ability, Unit target) { Ability.UseAbility(target); DelayAction.Add(250 + Game.Ping, () => { Hero.Stop(); }); Sleep(); }
private static void Combo(EventArgs args) { if (Player.IsDead) { return; } if (Orbwalker.ActiveMode != OrbwalkerMode.Combo && Orbwalker.ActiveMode != OrbwalkerMode.Harass) { return; } var target = FunnySlayerCommon.FSTargetSelector.GetFSTarget(1000); if (target == null) { return; } var OrbTarget = (AIBaseClient)Orbwalker.GetTarget(); if (OrbTarget != null && !Player.IsDashing() && CheckR) { if (QEmpCast()) { return; } } if ((Player.HasBuff("RengarQ") || Player.HasBuff("RengarQEmp")) && (beforeaa || onaa)) { if (Player.HasItem(ItemId.Ravenous_Hydra_Melee_Only) && Player.CanUseItem((int)ItemId.Ravenous_Hydra_Melee_Only)) { if (Player.UseItem((int)ItemId.Ravenous_Hydra_Melee_Only)) { return; } } if (Player.HasItem(ItemId.Ravenous_Hydra) && Player.CanUseItem((int)ItemId.Ravenous_Hydra)) { if (Player.UseItem((int)ItemId.Ravenous_Hydra)) { return; } } if (Player.HasItem(ItemId.Tiamat) && Player.CanUseItem((int)ItemId.Tiamat)) { if (Player.UseItem((int)ItemId.Tiamat)) { return; } } if (Player.HasItem(ItemId.Tiamat_Melee_Only) && Player.CanUseItem((int)ItemId.Tiamat_Melee_Only)) { if (Player.UseItem((int)ItemId.Tiamat_Melee_Only)) { return; } } if (Player.HasItem(ItemId.Titanic_Hydra) && Player.CanUseItem((int)ItemId.Titanic_Hydra)) { if (Player.UseItem((int)ItemId.Titanic_Hydra)) { return; } } return; } if (Q.Name == "RengarQEmp" && Player.Level < 3) { if (Q.IsReady() && MenuRengar.QSettings.UseQCombo.Enabled && target.IsValidTarget(300)) { if (Q.Cast()) { Orbwalker.ResetAutoAttackTimer(); OnAttack(OrbTarget); return; } } else { if (E.IsReady() && MenuRengar.ESettings.UseECombo.Enabled) { if (target.DistanceToPlayer() > 300) { var pred1 = FSpred.Prediction.Prediction.GetPrediction(E, target); if (pred1.Hitchance >= FSpred.Prediction.HitChance.High && E.Cast(pred1.CastPosition)) { return; } var pred2 = E.GetPrediction(target); if (pred2.Hitchance >= EnsoulSharp.SDK.Prediction.HitChance.High && E.Cast(pred2.CastPosition)) { return; } } } else { if (W.IsReady() && MenuRengar.WSettings.UseWCombo.Enabled) { } } } } if (Player.HasBuff("RengarR")) { if (Player.IsDashing() && CheckR) { if (Q.Name == "RengarQEmp") { if (Q.IsReady() && MenuRengar.QSettings.UseQCombo.Enabled) { DelayAction.Add((int)DashTimer, () => { if (Q.Cast()) { Orbwalker.ResetAutoAttackTimer(); OnAttack(OrbTarget); return; } }); } if (E.IsReady() && MenuRengar.ESettings.UseECombo.Enabled) { if (target.DistanceToPlayer() > 350) { var pred1 = FSpred.Prediction.Prediction.GetPrediction(E, target); if (pred1.Hitchance >= FSpred.Prediction.HitChance.High && E.Cast(pred1.CastPosition)) { return; } var pred2 = E.GetPrediction(target); if (pred2.Hitchance >= EnsoulSharp.SDK.Prediction.HitChance.High && E.Cast(pred2.CastPosition)) { return; } } } } else { if (Q.IsReady() && MenuRengar.QSettings.UseQCombo.Enabled && OrbTarget != null) { DelayAction.Add((int)DashTimer, () => { if (Q.Cast()) { Orbwalker.ResetAutoAttackTimer(); OnAttack(OrbTarget); return; } }); } if (W.IsReady() && MenuRengar.WSettings.UseWCombo.Enabled) { if (Player.Mana != 4 && GameObjects.EnemyHeroes.Any(i => i.DistanceToPlayer() <= 350) && W.Cast()) { if (Player.HasItem(ItemId.Ravenous_Hydra_Melee_Only) && Player.CanUseItem((int)ItemId.Ravenous_Hydra_Melee_Only)) { if (Player.UseItem((int)ItemId.Ravenous_Hydra_Melee_Only)) { return; } } if (Player.HasItem(ItemId.Ravenous_Hydra) && Player.CanUseItem((int)ItemId.Ravenous_Hydra)) { if (Player.UseItem((int)ItemId.Ravenous_Hydra)) { return; } } if (Player.HasItem(ItemId.Tiamat) && Player.CanUseItem((int)ItemId.Tiamat)) { if (Player.UseItem((int)ItemId.Tiamat)) { return; } } if (Player.HasItem(ItemId.Tiamat_Melee_Only) && Player.CanUseItem((int)ItemId.Tiamat_Melee_Only)) { if (Player.UseItem((int)ItemId.Tiamat_Melee_Only)) { return; } } if (Player.HasItem(ItemId.Titanic_Hydra) && Player.CanUseItem((int)ItemId.Titanic_Hydra)) { if (Player.UseItem((int)ItemId.Titanic_Hydra)) { return; } } return; } } if (E.IsReady() && MenuRengar.ESettings.UseECombo.Enabled) { var pred1 = FSpred.Prediction.Prediction.GetPrediction(E, target); if (pred1.Hitchance >= FSpred.Prediction.HitChance.High && E.Cast(pred1.CastPosition)) { return; } var pred2 = E.GetPrediction(target); if (pred2.Hitchance >= EnsoulSharp.SDK.Prediction.HitChance.High && E.Cast(pred2.CastPosition)) { return; } } } } } else { if ((Player.HasBuff("RengarQ") || Player.HasBuff("RengarQEmp")) && (onaa || beforeaa)) { if (OrbTarget != null) { if (Player.HasItem(ItemId.Ravenous_Hydra_Melee_Only) && Player.CanUseItem((int)ItemId.Ravenous_Hydra_Melee_Only)) { if (Player.UseItem((int)ItemId.Tiamat)) { return; } } if (Player.HasItem(ItemId.Ravenous_Hydra) && Player.CanUseItem((int)ItemId.Ravenous_Hydra)) { if (Player.UseItem((int)ItemId.Tiamat)) { return; } } if (Player.HasItem(ItemId.Tiamat) && Player.CanUseItem((int)ItemId.Tiamat)) { if (Player.UseItem((int)ItemId.Tiamat)) { return; } } if (Player.HasItem(ItemId.Tiamat_Melee_Only) && Player.CanUseItem((int)ItemId.Tiamat_Melee_Only)) { if (Player.UseItem((int)ItemId.Tiamat_Melee_Only)) { return; } } if (Player.HasItem(ItemId.Titanic_Hydra) && Player.CanUseItem((int)ItemId.Titanic_Hydra)) { if (Player.UseItem((int)ItemId.Tiamat_Melee_Only)) { return; } } return; } } if (Player.IsDashing()) { if (Q.Name == "RengarQEmp") { if (Q.IsReady() && MenuRengar.QSettings.UseQCombo.Enabled && OrbTarget != null) { DelayAction.Add((int)DashTimer, () => { if (Q.Cast()) { Orbwalker.ResetAutoAttackTimer(); return; } }); } if (E.IsReady() && MenuRengar.ESettings.UseECombo.Enabled) { if (target.DistanceToPlayer() > 300) { var pred1 = FSpred.Prediction.Prediction.GetPrediction(E, target); if (pred1.Hitchance >= FSpred.Prediction.HitChance.High && E.Cast(pred1.CastPosition)) { return; } var pred2 = E.GetPrediction(target); if (pred2.Hitchance >= EnsoulSharp.SDK.Prediction.HitChance.High && E.Cast(pred2.CastPosition)) { return; } } } } else { if (Q.IsReady() && MenuRengar.QSettings.UseQCombo.Enabled && OrbTarget != null) { DelayAction.Add((int)DashTimer, () => { if (Q.Cast()) { Orbwalker.ResetAutoAttackTimer(); return; } }); } if (W.IsReady() && MenuRengar.WSettings.UseWCombo.Enabled) { if (Player.Mana != 4 && GameObjects.EnemyHeroes.Any(i => i.DistanceToPlayer() <= 450) && W.Cast()) { if (Player.HasItem(ItemId.Ravenous_Hydra_Melee_Only) && Player.CanUseItem((int)ItemId.Ravenous_Hydra_Melee_Only)) { if (Player.UseItem((int)ItemId.Ravenous_Hydra_Melee_Only)) { return; } } if (Player.HasItem(ItemId.Ravenous_Hydra) && Player.CanUseItem((int)ItemId.Ravenous_Hydra)) { if (Player.UseItem((int)ItemId.Ravenous_Hydra)) { return; } } if (Player.HasItem(ItemId.Tiamat) && Player.CanUseItem((int)ItemId.Tiamat)) { if (Player.UseItem((int)ItemId.Tiamat)) { return; } } if (Player.HasItem(ItemId.Tiamat_Melee_Only) && Player.CanUseItem((int)ItemId.Tiamat_Melee_Only)) { if (Player.UseItem((int)ItemId.Tiamat_Melee_Only)) { return; } } if (Player.HasItem(ItemId.Titanic_Hydra) && Player.CanUseItem((int)ItemId.Titanic_Hydra)) { if (Player.UseItem((int)ItemId.Titanic_Hydra)) { return; } } return; } } if (E.IsReady() && MenuRengar.ESettings.UseECombo.Enabled) { var pred1 = FSpred.Prediction.Prediction.GetPrediction(E, target); if (pred1.Hitchance >= FSpred.Prediction.HitChance.High && E.Cast(pred1.CastPosition)) { return; } var pred2 = E.GetPrediction(target); if (pred2.Hitchance >= EnsoulSharp.SDK.Prediction.HitChance.High && E.Cast(pred2.CastPosition)) { return; } } } } else { if (Q.Name == "RengarQEmp") { if (Q.IsReady() && MenuRengar.QSettings.UseQCombo.Enabled && GameObjects.EnemyHeroes.Any(i => i.IsValidTarget(300) && !i.IsDead)) { if (!onaa && (Player.GetRealAutoAttackRange() < 300 || TargetSelector.GetTargets(200) != null)) { if (Q.Cast()) { Orbwalker.ResetAutoAttackTimer(); } return; } } if (E.IsReady() && MenuRengar.ESettings.UseECombo.Enabled) { if (target.DistanceToPlayer() > 350) { var pred1 = FSpred.Prediction.Prediction.GetPrediction(E, target); if (pred1.Hitchance >= FSpred.Prediction.HitChance.High && E.Cast(pred1.CastPosition)) { return; } var pred2 = E.GetPrediction(target); if (pred2.Hitchance >= EnsoulSharp.SDK.Prediction.HitChance.High && E.Cast(pred2.CastPosition)) { return; } } } } else { if (Q.IsReady() && MenuRengar.QSettings.UseQCombo.Enabled && OrbTarget != null && MenuRengar.QSettings.QAfterAA.Enabled ? afteraa : (!beforeaa && !onaa)) { if ((Player.GetRealAutoAttackRange() < 300 || TargetSelector.GetTargets(200) != null)) { if (Q.Cast()) { Orbwalker.ResetAutoAttackTimer(); } return; } } if (W.IsReady() && MenuRengar.WSettings.UseWCombo.Enabled) { if (W.Name == "RengarW" && GameObjects.EnemyHeroes.Any(i => i.DistanceToPlayer() <= 400) && W.Cast()) { if (Player.HasItem(ItemId.Ravenous_Hydra_Melee_Only) && Player.CanUseItem((int)ItemId.Ravenous_Hydra_Melee_Only)) { if (Player.UseItem((int)ItemId.Ravenous_Hydra_Melee_Only)) { return; } } if (Player.HasItem(ItemId.Ravenous_Hydra) && Player.CanUseItem((int)ItemId.Ravenous_Hydra)) { if (Player.UseItem((int)ItemId.Ravenous_Hydra)) { return; } } if (Player.HasItem(ItemId.Tiamat) && Player.CanUseItem((int)ItemId.Tiamat)) { if (Player.UseItem((int)ItemId.Tiamat)) { return; } } if (Player.HasItem(ItemId.Tiamat_Melee_Only) && Player.CanUseItem((int)ItemId.Tiamat_Melee_Only)) { if (Player.UseItem((int)ItemId.Tiamat_Melee_Only)) { return; } } if (Player.HasItem(ItemId.Titanic_Hydra) && Player.CanUseItem((int)ItemId.Titanic_Hydra)) { if (Player.UseItem((int)ItemId.Titanic_Hydra)) { return; } } return; } } if (E.IsReady() && MenuRengar.ESettings.UseECombo.Enabled) { var pred1 = FSpred.Prediction.Prediction.GetPrediction(E, target); if (pred1.Hitchance >= FSpred.Prediction.HitChance.High && E.Cast(pred1.CastPosition)) { return; } var pred2 = E.GetPrediction(target); if (pred2.Hitchance >= EnsoulSharp.SDK.Prediction.HitChance.High && E.Cast(pred2.CastPosition)) { return; } } } } } }
public static bool Cast(Ability ability, Unit target, string name) { if (AbilityMain.Me.ClassID == ClassID.CDOTA_Unit_Hero_Pudge && name == "pudge_dismember" && Utils.SleepCheck("rotToggle") && AbilityMain.Me.Distance2D(target) < 400 && Utils.ChainStun(target, Game.Ping, null, false)) { var rot = AbilityMain.Me.Spellbook.Spell2; if (!rot.IsToggled) { rot.ToggleAbility(); Utils.Sleep(500, "rotToggle"); } } var straightTime = Disables.DisablesMenuDictionary[name].Item(name + "minstraighttime") != null ? (float) Disables.DisablesMenuDictionary[name].Item(name + "minstraighttime") .GetValue <Slider>() .Value / 1000 : 1; if (AbilityMain.Me.ClassID == ClassID.CDOTA_Unit_Hero_Invoker && !ability.CanBeCasted()) { var invoked = ability.Invoke(); if (!invoked) { return(false); } DelayAction.Add( Game.Ping * 2, () => { ability.CastStun( target, MyHeroInfo.Position, straightTime, abilityName: name, useSleep: name != "ancient_apparition_cold_feet" && name != "rattletrap_battery_assault" && name != "pudge_meat_hook" && name != "pudge_dismember" && name != "pudge_rot", soulRing: SoulRing.Check(ability) ? MyAbilities.SoulRing : null); }); return(true); } var casted = ability.CastStun( target, MyHeroInfo.Position, straightTime, abilityName: name, useSleep: name != "ancient_apparition_cold_feet" && name != "rattletrap_battery_assault" && name != "pudge_meat_hook" && name != "pudge_dismember" && name != "pudge_rot", soulRing: SoulRing.Check(ability) ? MyAbilities.SoulRing : null); if (!casted) { return(false); } DelayAction.Add(new DelayActionItem(300, () => { AbilityMain.LaunchSnowball(); }, CancellationToken.None)); if (name == "spirit_breaker_charge_of_darkness") { Utils.Sleep(1500, "Ability.Move"); Utils.Sleep(1500, "cancelorder"); Utils.Sleep(1500, "GlobalCasting"); } return(true); }
private static void Game_OnUpdate(EventArgs args) { if (Player.IsDead) { return; } var targets = GameObjects.EnemyHeroes.Where(i => i.IsValidTarget(3000) && !i.IsDead); if (targets != null) { foreach (var target in targets) { if (target == null) { return; } if (menuclass.misc.usew.Enabled && W.IsReady(0)) { if (target.Health <= W.GetDamage(target)) { var wpred = W.GetPrediction(target, false, -1, EnsoulSharp.SDK.Prediction.CollisionObjects.Minions | EnsoulSharp.SDK.Prediction.CollisionObjects.YasuoWall); if (wpred.CastPosition != Vector3.Zero && wpred.Hitchance >= EnsoulSharp.SDK.Prediction.HitChance.High) { if (!oa && !ba) { W.Cast(wpred.CastPosition); } } } } if (Orbwalker.ActiveMode == OrbwalkerMode.Combo) { if (menuclass.combo.useq.Enabled && Q.IsReady(0) && target.IsValidTarget(Q.Range)) { if (GetMinionInRange(Q.Range) <= menuclass.combo.useqminion.Value) { if (menuclass.combo.useqafteraa.Enabled) { if (aa) { Q.Cast(target); } } else { Q.Cast(target); } } } if (menuclass.combo.usew.Enabled && W.IsReady(0) && target.IsValidTarget(W.Range)) { var wpred = W.GetPrediction(target, false, -1, EnsoulSharp.SDK.Prediction.CollisionObjects.Minions | EnsoulSharp.SDK.Prediction.CollisionObjects.YasuoWall); if (menuclass.combo.usewout.Enabled) { if (wpred.CastPosition != Vector3.Zero && wpred.Hitchance >= EnsoulSharp.SDK.Prediction.HitChance.High) { if (!oa && !ba && target.DistanceToPlayer() > ObjectManager.Player.GetRealAutoAttackRange()) { W.Cast(wpred.CastPosition); } } } else { if (wpred.CastPosition != Vector3.Zero && wpred.Hitchance >= EnsoulSharp.SDK.Prediction.HitChance.High) { if (!oa && !ba) { W.Cast(wpred.CastPosition); } } } } if (menuclass.combo.usee.Enabled && E.IsReady(0)) { if (!oa && !ba) { if (target.DistanceToPlayer() < menuclass.combo.edistance.Value) { E.Cast(Game.CursorPos); } } } if (menuclass.combo.user.Enabled && R.IsReady(0)) { if (target.HealthPercent <= menuclass.combo.rp.Value && target.DistanceToPlayer() > menuclass.combo.rr.Value) { if (Rpos() != Vector3.Zero) { R.Cast(Rpos()); } } if (ObjectManager.Player.HealthPercent > 0 && ObjectManager.Player.HealthPercent < menuclass.combo.rp.Value) { if (Rpos() != Vector3.Zero) { if (E.IsReady()) { E.Cast(); DelayAction.Add(200, () => { R.Cast(Rpos()); }); } else { R.Cast(Rpos()); } } } if (GetHeroesInRange(1000) >= 3 && ObjectManager.Player.HealthPercent > 0 && ObjectManager.Player.HealthPercent < 75) { if (Rpos() != Vector3.Zero && menuclass.combo.usercombat) { if (E.IsReady()) { E.Cast(); DelayAction.Add(200, () => { R.Cast(Rpos()); }); } else { R.Cast(Rpos()); } } } } } if (Orbwalker.ActiveMode == OrbwalkerMode.Harass) { if (menuclass.harass.useq.Enabled && Q.IsReady(0) && target.IsValidTarget(Q.Range)) { Q.Cast(target); } if (menuclass.harass.usew.Enabled && W.IsReady(0) && target.IsValidTarget(W.Range)) { var wpred = W.GetPrediction(target, false, -1, EnsoulSharp.SDK.Prediction.CollisionObjects.Minions | EnsoulSharp.SDK.Prediction.CollisionObjects.YasuoWall); if (wpred.CastPosition != Vector3.Zero && wpred.Hitchance >= EnsoulSharp.SDK.Prediction.HitChance.High) { if (!oa && !ba) { W.Cast(wpred.CastPosition); } } } } } } if (Orbwalker.ActiveMode == OrbwalkerMode.LaneClear) { if (GetMinionInRange(ObjectManager.Player.GetRealAutoAttackRange()) > 3) { if (menuclass.farm.useq) { Q.Cast(); } if (menuclass.farm.usee && !oa && !ba) { E.Cast(Game.CursorPos); } } if (GetMinionInRange(ObjectManager.Player.GetRealAutoAttackRange() + 300) < 1 && GetMinionInRange(W.Range) >= 1) { var thisminion = GameObjects.EnemyMinions.Where(i => !i.IsValidTarget(ObjectManager.Player.GetRealAutoAttackRange() + 300) && i.DistanceToPlayer() < W.Range && i.Health < W.GetDamage(i)).FirstOrDefault(i => i.DistanceToPlayer() < W.Range); var wpred = W.GetPrediction(thisminion, false, -1, EnsoulSharp.SDK.Prediction.CollisionObjects.Minions | EnsoulSharp.SDK.Prediction.CollisionObjects.YasuoWall); if (wpred.CastPosition != Vector3.Zero && wpred.Hitchance >= EnsoulSharp.SDK.Prediction.HitChance.High) { if (menuclass.farm.usew.Enabled) { W.Cast(wpred.CastPosition); } } } } }
private static void Combo() { if (Orbwalker.Implementation.IsWindingUp) { return; } var target = TargetSelector.GetTarget(SpellManager.E2.Range); if (target.IsValidTarget()) { var nearestBarrel = BarrelManager.GetNearestBarrel(); if (nearestBarrel != null) { var chainedBarrels = BarrelManager.GetChainedBarrels(nearestBarrel); if (chainedBarrels.Any(x => BarrelManager.BarrelWillHit(x, target))) { //If any of the chained barrels will hit, cast Q on best barrel. var barrelToQ = BarrelManager.GetBestBarrelToQ(chainedBarrels); if (barrelToQ != null) { if (SpellManager.Q.Ready) { var timeWhenCanE = LastECast + 500; var delay = timeWhenCanE - Game.TickCount; delay = Ammo < 1 ? 0 : delay <= 0 ? 0 : delay; var castDelay = MenuManager.Combo["triple"].Enabled ? delay : 0; DelayAction.Queue(castDelay, () => SpellManager.Q.Cast(barrelToQ.Object)); return; } if (barrelToQ.Object.IsInAutoAttackRange() && Orbwalker.Implementation.CanAttack() && MenuManager.Combo["explodeQCooldown"].Enabled) { Orbwalker.Implementation.ForceTarget(barrelToQ.Object); Orbwalker.Implementation.Attack(barrelToQ.Object); } } } else { //No chained barrels will hit, so let's chain them OR try and triple barrel. if (chainedBarrels.Count >= 2 && MenuManager.Combo["triple"].Enabled) { //There are chained barrels, so let's see if any are in range to be triple comboed. var barrelToComboFrom = chainedBarrels.FirstOrDefault(x => BarrelManager.GetEnemiesInChainRadius(x).Count >= 1); if (barrelToComboFrom == null) { return; } var barrelToQ = BarrelManager.GetBestBarrelToQ(chainedBarrels); if (barrelToQ != null) { if (SpellManager.Q.Ready) { var timeWhenCanE = LastECast + 500; var delay = timeWhenCanE - Game.TickCount; delay = delay <= 0 ? 0 : delay; var castDelay = MenuManager.Combo["triple"].Enabled ? delay : 0; DelayAction.Queue(castDelay, () => SpellManager.Q.Cast(barrelToQ.Object)); return; } //if (barrelToQ.Object.IsInAutoAttackRange() && Orbwalker.Implementation.CanAttack() && MenuManager.Combo["explodeQCooldown"].Enabled) //{ // Orbwalker.Implementation.ForceTarget(barrelToQ.Object); // Orbwalker.Implementation.Attack(barrelToQ.Object); //} } } else { var bestChainPosition = BarrelManager.GetBestChainPosition(target, nearestBarrel); if (bestChainPosition != Vector3.Zero && target.IsInRange(SpellManager.E.Range) && Player.Distance(bestChainPosition) <= SpellManager.E.Range && SpellManager.E.Ready && nearestBarrel.CanChain) { Render.Line(nearestBarrel.ServerPosition.ToScreenPosition(), bestChainPosition.ToScreenPosition(), 5, true, Color.Red); if (SpellManager.E.Cast(bestChainPosition)) { if (SpellManager.Q.Ready && nearestBarrel.CanQ) { SpellManager.Q.Cast(nearestBarrel.Object); } else if (nearestBarrel.CanAA && nearestBarrel.Object.IsInAutoAttackRange() && Orbwalker.Implementation.CanAttack() && !Orbwalker.Implementation.IsWindingUp) { Orbwalker.Implementation.Attack(nearestBarrel.Object); } } } } } } } }
private static void Main() { //TestShit(); Events.OnLoad += (sender, args) => { MenuManager.Init(); DelayAction.Add(500, () => { Members.MyHero = ObjectManager.LocalHero; Members.MyClass = Members.MyHero.ClassId; Members.MyPlayer = ObjectManager.LocalPlayer; _openDota = new OpenDota(); ShrineHelper.Init(); Members.AbilityDictionary = new Dictionary <uint, List <Ability> >(); Members.ItemDictionary = new Dictionary <uint, List <Item> >(); Members.StashItemDictionary = new Dictionary <uint, List <Item> >(); Members.NetWorthDictionary = new Dictionary <string, long>(); Members.Heroes = new List <Hero>(); Members.AllyHeroes = new List <Hero>(); Members.EnemyHeroes = new List <Hero>(); Members.Players = new List <Player>(); Members.AllyPlayers = new List <Player>(); Members.EnemyPlayers = new List <Player>(); Members.BaseList = new List <Unit>(); Members.PAisHere = null; Members.BaraIsHere = false; Members.Apparition = false; Members.Mirana = null; Members.Windrunner = null; Updater.HeroList.Flush(); Updater.BaseList.Flush(); Updater.PlayerList.Flush(); Game.OnUpdate += Updater.HeroList.Update; Game.OnUpdate += Updater.PlayerList.Update; Game.OnUpdate += Updater.BaseList.Update; Game.OnUpdate += Devolp.ConsoleCommands; RoshanAction.Flush(); AutoItems.Flush(); Game.OnUpdate += RoshanAction.Roshan; Game.OnUpdate += Game_OnUpdate; DelayAction.Add(500, () => { Drawing.OnDraw += DrawHelper.Overlay; Drawing.OnDraw += ItemPanel.Draw; Drawing.OnDraw += NewItemPanel.OnDraw; ShowMeMore.Flush(); Drawing.OnDraw += ShowMeMore.Draw; }); Entity.OnParticleEffectAdded += ShowMeMore.Entity_OnParticleEffectAdded; Unit.OnModifierAdded += ShowMeMore.OnModifierAdded; Unit.OnModifierRemoved += ShowMeMore.OnModifierRemoved; Runes.Flush(); Drawing.OnDraw += Runes.Draw; Drawing.OnPreReset += DrawHelper.Render.Drawing_OnPreReset; Drawing.OnPostReset += DrawHelper.Render.Drawing_OnPostReset; Drawing.OnEndScene += DrawHelper.Render.Drawing_OnEndScene; Game.OnWndProc += Game_OnWndProc; AppDomain.CurrentDomain.DomainUnload += DrawHelper.Render.CurrentDomainDomainUnload; Game.OnFireEvent += RoshanAction.Game_OnGameEvent; Entity.OnInt32PropertyChange += VisionHelper.OnChange; Game.PrintMessage( "<font face='Comic Sans MS, cursive'><font color='#00aaff'>" + Members.Menu.DisplayName + " By Jumpering" + " loaded!</font> <font color='#aa0000'>v" + Assembly.GetExecutingAssembly().GetName().Version); Printer.PrintSuccess("> " + Members.Menu.DisplayName + " loaded v" + Assembly.GetExecutingAssembly().GetName().Version); /*Entity.OnParticleEffectAdded += Entity_OnParticleEffectAdded; * Drawing.OnDraw += Drawing_OnDraw;*/ DelayAction.Add(100, () => { try { if (Members.Menu.Item("Dev.CreepsDisabler.enable").GetValue <bool>()) { Game.ExecuteCommand("dota_creeps_no_spawning_enable"); } } catch (Exception) { Printer.Print("Members.Menu.AddToMainMenu();"); } }); }); }; Events.OnClose += (sender, args) => { Game.OnUpdate -= Updater.HeroList.Update; //Game.OnUpdate += Updater.PlayerList.Update; Game.OnUpdate -= Updater.BaseList.Update; Game.OnUpdate -= Devolp.ConsoleCommands; Game.OnUpdate -= RoshanAction.Roshan; Game.OnUpdate -= Game_OnUpdate; Entity.OnInt32PropertyChange -= VisionHelper.OnChange; Drawing.OnDraw -= DrawHelper.Overlay; Drawing.OnDraw -= ItemPanel.Draw; Drawing.OnDraw -= ShowMeMore.Draw; Entity.OnParticleEffectAdded -= ShowMeMore.Entity_OnParticleEffectAdded; Unit.OnModifierAdded -= ShowMeMore.OnModifierAdded; Unit.OnModifierRemoved -= ShowMeMore.OnModifierRemoved; Drawing.OnDraw -= Runes.Draw; Drawing.OnPreReset -= DrawHelper.Render.Drawing_OnPreReset; Drawing.OnPostReset -= DrawHelper.Render.Drawing_OnPostReset; Drawing.OnEndScene -= DrawHelper.Render.Drawing_OnEndScene; Game.OnWndProc -= Game_OnWndProc; AppDomain.CurrentDomain.DomainUnload -= DrawHelper.Render.CurrentDomainDomainUnload; Game.OnFireEvent -= RoshanAction.Game_OnGameEvent; Members.TopPanelPostiion.Clear(); Members.Heroes.Clear(); Members.EnemyHeroes.Clear(); Members.AllyHeroes.Clear(); Printer.PrintInfo("> " + Members.Menu.DisplayName + " unloaded"); VisionHelper.Flush(); }; }
private static void ObjAiBaseOnOnProcessSpellCast(Obj_AI_Base sender, Obj_AI_BaseMissileClientDataEventArgs e) { if (sender.IsMe && e.SpellSlot == SpellSlot.Q && e.Target.Name == "Barrel") { var barrel = (Barrel)e.Target; LastQCast = Game.TickCount; //Console.WriteLine($"[Cast] Distance from barrel: {Player.Distance(barrel.Object)}"); //1 part if (barrel.Object.Distance(Player) >= 585 && barrel.Object.Distance(Player) <= 660 && BarrelManager.GetChainedBarrels(barrel).Count == 1) //1 part combo only works at max range. { var enemies = BarrelManager.GetEnemiesInChainRadius(barrel); var bestEnemy = enemies.Where(x => x.IsValidTarget()).OrderBy(x => x.Distance(barrel.Object)).ThenBy(x => x.Health).FirstOrDefault(); if (bestEnemy != null) { var bestChainPosition = BarrelManager.GetBestChainPosition(bestEnemy, barrel); if (bestChainPosition != Vector3.Zero && bestEnemy.IsInRange(SpellManager.E.Range) && Player.Distance(bestChainPosition) <= SpellManager.E.Range && SpellManager.E.Ready) { SpellManager.E.Cast(bestChainPosition); } } } else if (MenuManager.Combo["triple"].Enabled) { //Triple barrel var chainedBarrels = BarrelManager.GetChainedBarrels(barrel); if (chainedBarrels.Count > 1) { var barrelsCanChain = chainedBarrels.Where(x => BarrelManager.GetEnemiesInChainRadius(x).Count > 0 && x.NetworkId != barrel.NetworkId).ToList(); if (barrelsCanChain.Count == 0) { barrelsCanChain = chainedBarrels.Where(x => BarrelManager.GetEnemiesInChainRadius(x, false).Count > 0 && x.NetworkId != barrel.NetworkId).ToList(); } var bestBarrel = barrelsCanChain.OrderByDescending(x => x.Created).ThenBy(x => x.Object.Distance(Player)).FirstOrDefault(); if (bestBarrel == null) { return; } var enemiesCanChainTo = BarrelManager.GetEnemiesInChainRadius(bestBarrel); if (enemiesCanChainTo.Count == 0) { enemiesCanChainTo = BarrelManager.GetEnemiesInChainRadius(bestBarrel, false); } if (enemiesCanChainTo.Count > 0) { var bestEnemy = enemiesCanChainTo.OrderBy(x => x.Health).ThenBy(x => x.Distance(Player)).FirstOrDefault(); if (bestEnemy != null) { var bestChainPosition = BarrelManager.GetBestChainPosition(bestEnemy, bestBarrel); if (bestChainPosition != Vector3.Zero && bestChainPosition.Distance(bestEnemy) <= SpellManager.ExplosionRadius && bestChainPosition.Distance(bestBarrel.Object) > SpellManager.ExplosionRadius && bestEnemy.IsInRange(SpellManager.E.Range) && Player.Distance(bestChainPosition) <= SpellManager.E.Range) { DelayAction.Queue(250, () => { if (SpellManager.E.Ready) { SpellManager.E.Cast(bestChainPosition); } }); } } } } } } else if (sender.IsMe && e.SpellSlot == SpellSlot.E) { var casted = Game.TickCount; BarrelManager.CastedBarrels.Add(casted); LastECast = casted; } }
/// <summary> /// Called while processing Spellcasting operations. /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The <see cref="Obj_AI_BaseMissileClientDataEventArgs" /> instance containing the event data.</param> public void Shield(Obj_AI_Base sender, Obj_AI_BaseMissileClientDataEventArgs args) { if (sender == null || !sender.IsEnemy) { return; } switch (sender.Type) { case GameObjectType.obj_AI_Hero: if (Invulnerable.Check(ObjectManager.GetLocalPlayer(), DamageType.Magical, false)) { return; } var hero = sender as Obj_AI_Hero; if (hero != null) { /// <summary> /// Block Gangplank's Barrels. /// </summary> if (hero.ChampionName.Equals("Gangplank")) { if (!(args.Target is Obj_AI_Minion)) { return; } if (Bools.IsAutoAttack(args.SpellData.Name) || args.SpellData.Name.Equals("GangplankQProceed")) { var target = (Obj_AI_Minion)args.Target; if ((int)target.GetRealHealth() == 1 && target.Distance(UtilityClass.Player) < 450 && target.UnitSkinName.Equals("gangplankbarrel")) { SpellClass.E.Cast(); return; } } } var spellMenu = MenuClass.Spells["e"]["whitelist"][$"{hero.ChampionName.ToLower()}.{args.SpellData.Name.ToLower()}"]; if (args.Target != null && args.Target.IsMe) { /// <summary> /// Check for Special On-Hit CC AutoAttacks. /// </summary> if (Bools.IsAutoAttack(args.SpellData.Name)) { switch (args.SpellData.Name) { case "UdyrBearAttack": case "GoldCardPreAttack": case "RedCardPreAttack": case "BlueCardPreAttack": case "NautilusRavageStrikeAttack": if (spellMenu != null && spellMenu.As <MenuBool>().Value&& (!hero.ChampionName.Equals("Udyr") || !UtilityClass.Player.HasBuff("udyrbearstuncheck"))) { SpellClass.E.Cast(); } break; } /// <summary> /// Check for Melee AutoAttack Resets. /// </summary> var getReset = hero.ValidActiveBuffs().FirstOrDefault(b => ImplementationClass.IOrbwalker.IsReset(b.Name)); var resetMenu = getReset != null ? MenuClass.Spells["e"]["whitelist"][$"{hero.ChampionName.ToLower()}.{getReset.Name.ToLower()}"] : null; if (resetMenu != null && resetMenu.As <MenuBool>().Value) { SpellClass.E.Cast(); return; } /// <summary> /// Check for Braum Passive. /// </summary> var braumMenu = MenuClass.Spells["e"]["whitelist"]["braum.passive"]; if (braumMenu != null && braumMenu.As <MenuBool>().Value&& UtilityClass.Player.GetBuffCount("BraumMark") == 3) { SpellClass.E.Cast(); return; } } } /// <summary> /// Shield all the Targetted Spells. /// </summary> var getSpellName = SpellDatabase.GetByName(args.SpellData.Name); if (spellMenu != null && getSpellName != null && spellMenu.As <MenuBool>().Value) { switch (getSpellName.SpellType) { /// <summary> /// Check for Targetted Spells. /// </summary> case SpellType.Targeted: case SpellType.TargetedMissile: if (args.Target != null && args.Target.IsMe) { var delay = MenuClass.Spells["e"]["logical"].As <MenuSliderBool>().Value; switch (hero.ChampionName) { case "Caitlyn": delay = 1050; break; case "Nocturne": delay = 350; break; case "Zed": delay = 200; break; case "Nautilus": delay = (int)UtilityClass.Player.Distance(hero); break; } DelayAction.Queue(delay, () => { SpellClass.E.Cast(); }); } break; /// <summary> /// Check for AoE Spells. /// </summary> case SpellType.SkillshotCircle: switch (hero.ChampionName) { case "Alistar": if (hero.Distance(UtilityClass.Player) <= 300 + UtilityClass.Player.BoundingRadius) { SpellClass.E.Cast(); } break; } break; } } } break; case GameObjectType.obj_AI_Minion: /// <summary> /// Block Dragon/Baron/RiftHerald's AutoAttacks. /// </summary> if (args.Target != null && args.Target.IsMe && sender.UnitSkinName.Contains("SRU_Dragon") && MenuClass.Spells["e"]["whitelist"]["minions"].As <MenuBool>().Value) { SpellClass.E.Cast(); } break; } }
private static void Combo() { var obj = new List <AIBaseClient>(); obj.AddRange(ObjectManager.Get <AIMinionClient>().Where(i => i.IsValidTarget(Q.Range) && !i.IsAlly)); obj.AddRange(ObjectManager.Get <AIHeroClient>().Where(i => i.IsValidTarget(Q.Range) && !i.IsAlly)); obj.AddRange(ObjectManager.Get <AIBaseClient>().Where(i => i.IsValidTarget(Q.Range) && !i.IsAlly)); var targets = TargetSelector.GetTargets(2000); if (targets != null) { foreach (var target in GameObjects.EnemyHeroes.Where(x => x.IsValidTarget(2000))) { if (MenuSettings.Combo.useQ.Enabled && Q.IsReady()) { AIBaseClient gapobj = GetGapObj(target); if (target.HasBuff("ireliamark") || target.Health < GetQDmg(target)) { foreach (AIBaseClient aIBaseClient in obj.Where(i => i.HasBuff("ireliamark") || i.Health <= Q.GetDamage(i))) { if (MenuSettings.Combo.Qmd.Value >= objPlayer.HealthPercent && aIBaseClient.NetworkId != target.NetworkId) { if (objPlayer.HasBuff("ireliapassivestacksmax")) { if (MenuSettings.Combo.Qmaxstacks.Enabled) { if (Extensions.Distance(target.Position, aIBaseClient.Position) < 600 && aIBaseClient.Health < GetQDmg(aIBaseClient)) { if (objPlayer.ManaPercent >= 15) { if (aIBaseClient.DistanceToPlayer() < Q.Range) { Q.Cast(aIBaseClient); } } } } else { if (target.DistanceToPlayer() < Q.Range) { Q.Cast(target); } } } else { if (Extensions.Distance(target.Position, aIBaseClient.Position) < 600) { if (objPlayer.ManaPercent >= 15 && aIBaseClient.Health < Q.GetDamage(aIBaseClient)) { if (aIBaseClient.DistanceToPlayer() < Q.Range) { Q.Cast(aIBaseClient); } } } } } else { if (target.DistanceToPlayer() < Q.Range) { Q.Cast(target); } } } } else { QgapObj(target); /*if(gapobj != null && (gapobj.HasBuff("ireliamark") || gapobj.Health <= GetQDmg(gapobj)) && Q.CanCast(gapobj)) * { * if(target.DistanceToPlayer() <= objPlayer.GetRealAutoAttackRange() + 200 && objPlayer.ManaPercent > 20) * { * foreach (AIBaseClient aIBaseClient in obj.Where(i => i.HasBuff("ireliamark") || i.Health <= GetQDmg(i))) * { * if(Extensions.Distance(gapobj.Position, aIBaseClient.Position) < 600 && aIBaseClient.Health < GetQDmg(aIBaseClient)) * { * Q.Cast(aIBaseClient); * } * } * } * else * { * if(gapobj.Health < GetQDmg(gapobj)) * Q.Cast(gapobj); * } * }*/ } } if (MenuSettings.Combo.useW.Enabled) { if (W.IsCharging) { DelayAction.Add(300 - Game.Ping, () => { if (!target.IsValidTarget(800)) { if (GetGapObj(target) != null) { W.ShootChargedSpell(GetGapObj(target).Position); } } }); } if (GetGapObj(target) != null) { if (GetGapObj(target).NetworkId != target.NetworkId) { if (GetGapObj(target).Health <= Q.GetDamage(GetGapObj(target)) + W.GetDamage(GetGapObj(target)) && GetGapObj(target).Health >= GetQDmg(GetGapObj(target)) && Extensions.Distance(target.Position, GetGapObj(target).Position) < 500) { if (objPlayer.ManaPercent > 20) { W.StartCharging(); DelayAction.Add(300 - Game.Ping, () => { W.ShootChargedSpell(GetGapObj(target).Position); }); } } } else { if (objPlayer.ManaPercent > 20) { W.StartCharging(); DelayAction.Add(300 - Game.Ping, () => { W.ShootChargedSpell(GetGapObj(target).Position); }); } } } } if (MenuSettings.Combo.useE.Enabled && E.IsReady() && !target.HasBuff("ireliamark")) { if (MenuSettings.Combo.useQ.Enabled && Q.IsReady()) { if (objPlayer.HasBuff("IreliaE")) { var PosCanE = ECatPos.Extend(target.Position, 300); foreach (AIBaseClient aIBaseClient in obj.Where(i => i.HasBuff("ireliamark") || i.Health <= Q.GetDamage(i))) { if (aIBaseClient.Position.Distance(PosCanE) < 700 && aIBaseClient.Position.Distance(target) < 500) { if (objPlayer.ManaPercent > 20 && aIBaseClient.Health < GetQDmg(aIBaseClient)) { if (aIBaseClient.DistanceToPlayer() < Q.Range) { Q.Cast(aIBaseClient); } } } } } } //EcomboCastPostion(target); if (Variables.GameTimeTickCount - (rtime + 500) > 0) { NewEPred(); } } if (MenuSettings.Combo.useR.Enabled && R.IsReady() && !target.HasBuff("ireliamark")) { var Rpred = R.GetPrediction(target, false, -1, CollisionObjects.YasuoWall); if (Variables.GameTimeTickCount - (etime + 500) > 0) { CastRx(); } if (objPlayer.Position.CountEnemyHeroesInRange(800) < 2 && target.Distance(objPlayer) < 600) { if (target.Health <= GetQDmg(target) * 3 + (W.IsReady() ? W.GetDamage(target) : 0) + (E.IsReady() ? E.GetDamage(target) : 0) + R.GetDamage(target) + 100) { if (Rpred.Hitchance == HitChance.VeryHigh && Rpred.CastPosition.DistanceToPlayer() < R.Range - 200) { if (Variables.GameTimeTickCount - (etime + 500) > 0) { R.Cast(Rpred.CastPosition); } } } } if (target.HealthPercent <= MenuSettings.Combo.y.Value) { if (Rpred.Hitchance == HitChance.VeryHigh && Rpred.CastPosition.DistanceToPlayer() < R.Range - 75) { if (Q.IsReady()) { if (target.Health > GetQDmg(target)) { if (Variables.GameTimeTickCount - (etime + 500) > 0) { R.Cast(Rpred.CastPosition); } } } else { if (Variables.GameTimeTickCount - (etime + 500) > 0) { R.Cast(Rpred.CastPosition); } } } } if (Variables.GameTimeTickCount - (etime + 500) > 0) { R.CastIfWillHit(target, MenuSettings.Combo.x); } } } } }