private static void DoCombo() { if (!IsComboHero) { _globalTarget = null; return; } if (_globalTarget == null || !_globalTarget.IsValid || !_globalTarget.IsAlive) { _globalTarget = Helper.ClosestToMouse(Members.MyHero); return; } if (UseOrbWalkker) { Orbwalking.Orbwalk(_globalTarget, followTarget: true); } else if (!Members.MyHero.IsAttacking() && !_attacker.Sleeping) { Members.MyHero.Attack(_globalTarget); _attacker.Sleep(250); } var inventory = Members.MyHero.Inventory.Items.Where( x => Helper.IsItemEnable(x.StoredName()) && x.CanBeCasted() && (x.GetCastRange() > 0 && Members.MyHero.Distance2D(_globalTarget) <= x.GetCastRange() + 150 || (x.GetCastRange() <= 0)) && Utils.SleepCheck($"{x.Handle}+item_usages")) .ToList(); foreach (var item in inventory) { if (item.IsAbilityBehavior(AbilityBehavior.NoTarget)) { item.UseAbility(); } else if (item.IsAbilityBehavior(AbilityBehavior.UnitTarget)) { if (item.TargetTeamType == TargetTeamType.Enemy || item.TargetTeamType == TargetTeamType.All || item.TargetTeamType == TargetTeamType.Custom) { item.UseAbility(_globalTarget); } else { item.UseAbility(Members.MyHero); } } else { item.UseAbility(_globalTarget.NetworkPosition); } Utils.Sleep(250, $"{item.Handle}+item_usages"); } }
private static void DoCombo() { if (!IsComboHero) { _globalTarget = null; return; } if (_globalTarget == null || !_globalTarget.IsValid || !_globalTarget.IsAlive) { _globalTarget = Helper.ClosestToMouse(Members.MyHero); return; } if (UseOrbWalkker) { Orbwalking.Orbwalk(_globalTarget, followTarget: true); } else if (!Members.MyHero.IsAttacking() && !_attacker.Sleeping) { Members.MyHero.Attack(_globalTarget); _attacker.Sleep(250); } var inventory = Members.MyHero.Inventory.Items.Where( x => Helper.IsItemEnable(x.StoredName()) && x.CanBeCasted() && (x.GetCastRange() > 0 && x.CanHit(_globalTarget) || (x.GetCastRange() <= 0)) && Utils.SleepCheck($"{x.Handle}+item_usages")) .ToList(); foreach (var item in inventory) { if (item.IsAbilityBehavior(AbilityBehavior.NoTarget)) { item.UseAbility(); } else if (item.IsAbilityBehavior(AbilityBehavior.UnitTarget)) { if (item.TargetTeamType == TargetTeamType.Enemy || item.TargetTeamType == TargetTeamType.All || item.TargetTeamType == TargetTeamType.Custom) { item.UseAbility(_globalTarget); } else { item.UseAbility(Members.MyHero); } } else { item.UseAbility(_globalTarget.NetworkPosition); } Utils.Sleep(250, $"{item.Handle}+item_usages"); } if (TetherInCombo) { var tether = Abilities.FindAbility("wisp_tether"); if (tether == null || tether.Level == 0 || !tether.CanBeCasted() || tether.IsHidden) { return; } var anyAllyHero = Heroes.GetByTeam(Members.MyTeam) .Where(x => !x.Equals(Members.MyHero) && x.IsAlive && tether.CanHit(x)) .OrderBy(y => y.Distance2D(_globalTarget)); var anyAllyCreep = ObjectManager.GetEntities <Unit>() .Where(x => x != null && x.Team == Members.MyTeam && x.IsAlive && tether.CanHit(x)) .OrderBy(y => y.Distance2D(_globalTarget)); var hero = anyAllyHero.FirstOrDefault(); var creep = anyAllyCreep.FirstOrDefault(); float dist1 = 0, dist2 = 0; if (hero != null) { dist1 = hero.Distance2D(_globalTarget); } if (creep != null) { dist2 = creep.Distance2D(_globalTarget); } var targetForTether = (dist1 > dist2) ? creep : hero; var mydist = Members.MyHero.Distance2D(_globalTarget); if (targetForTether != null && !targetForTether.Equals(Members.MyHero) && dist1 <= mydist && dist2 <= mydist && !_multiSleeper.Sleeping(tether + "in combo")) { tether.UseAbility(targetForTether); _multiSleeper.Sleep(250, tether + "in combo"); } } }