private static bool CanCast(SpellSlot spell, Orbwalking.OrbwalkingMode orbwalkingMode) { var orbwalkingModeLower = Program.Orbwalker.ActiveMode.ToString().ToLower(); var spellLower = spell.ToString().ToLower(); if (Program.Orbwalker.ActiveMode != orbwalkingMode || !spell.IsReady()) { return(false); } if (spellLower.Equals("e") && ObjectManager.Player.HasBuff("LissandraE")) { return(false); } if ((orbwalkingModeLower.Equals("laneclear") && spellLower.Equals("e")) || (orbwalkingModeLower.Equals("laneclear") && spellLower.Equals("r")) || (orbwalkingModeLower.Equals("mixed") && spellLower.Equals("r")) || (orbwalkingModeLower.Equals("lasthit") && !spellLower.Equals("q"))) { return(false); } return(AlqoholicMenu.MainMenu.Item(orbwalkingModeLower + spellLower + "use").GetValue <bool>() && AlqoholicMenu.MainMenu.Item(orbwalkingModeLower + spellLower + "mana") .GetValue <Slider>() .Value <= ObjectManager.Player.ManaPercent); }
protected override void OnUpdate(Orbwalking.OrbwalkingMode mode) { if (AssistedUltMenu != null && AssistedUltMenu.GetValue <KeyBind>().Active) { CastAssistedUlt(); } if (mode == Orbwalking.OrbwalkingMode.LaneClear && LanepressureMenu.IsActive()) { mode = Orbwalking.OrbwalkingMode.Mixed; } base.OnUpdate(mode); if (mode == Orbwalking.OrbwalkingMode.Combo && IgniteInBurstMode && BurstMode.IsActive() && Target.IsValidTarget(600) && ObjectManager.Player.CalcDamage(Target, Damage.DamageType.True, ObjectManager.Player.GetIgniteDamage()) > Target.Health + Target.HPRegenRate * 5 && (_e.Instance.CooldownExpires > Game.Time + 0.5f || !OnlyIgniteWhenNoE)) { var ignite = ObjectManager.Player.Spellbook.Spells.FirstOrDefault(spell => spell.Name == "summonerdot"); if (ignite != null && ignite.IsReady()) { ObjectManager.Player.Spellbook.CastSpell(ignite.Slot, Target); } } if (!_gaveAutoWarning && Game.Time > 30 * 60f) { _gaveAutoWarning = true; Notifications.AddNotification(new Notification("Tipp: Disable AA in combo\nfor better lategame kiting!", 6000) { BorderColor = new SharpDX.Color(154, 205, 50) }); } }
/// <summary> /// The is the spell active method. /// </summary> /// <param name="spellSlot"> /// The spell slot. /// </param> /// <param name="orbwalkingMode"> /// The orbwalking mode. /// </param> /// <returns> /// <see cref="bool" /> /// </returns> private static bool IsSpellActive(SpellSlot spellSlot, Orbwalking.OrbwalkingMode orbwalkingMode) { if (Program.Orbwalker.ActiveMode != orbwalkingMode || !spellSlot.IsReady()) { return(false); } try { var orbwalkerModeLower = Program.Orbwalker.ActiveMode.ToString().ToLower(); var spellSlotNameLower = spellSlot.ToString().ToLower(); if ((orbwalkerModeLower.Equals("lasthit") && (spellSlotNameLower.Equals("e") || spellSlotNameLower.Equals("w") || spellSlotNameLower.Equals("r"))) || (orbwalkerModeLower.Equals("laneclear") && (spellSlotNameLower.Equals("e")))) { return(false); } return(MyMenu.RootMenu.Item(orbwalkerModeLower + spellSlotNameLower + "use").GetValue <bool>() && MyMenu.RootMenu.Item(orbwalkerModeLower + spellSlotNameLower + "mana") .GetValue <Slider>() .Value <= ObjectManager.Player.ManaPercent); } catch (Exception e) { Logging.AddEntry(LoggingEntryTrype.Error, "@SpellManager.cs: Can not get spell active state for slot {0} - {1}", spellSlot.ToString(), e); throw; } }
public static void DongerSkill(this Menu menu, Skills skill, Orbwalking.OrbwalkingMode mode) { var vhrname = string.Format("dz191.vhr.{0}.use{1}", mode.ToString().ToLower(), skill.ToString().ToLower()); var pradaname = string.Format("useprada{0}", skill.ToString().ToLower()); menu.Item(vhrname).SetValue(!HijackedMenu.Item(pradaname).GetValue <bool>()); }
private static void UpdateStates() { CurrentPad = Control.GetState().Gamepad; var b = CurrentPad.Buttons.ToString(); if (b == "None") { return; } if (b.Contains("DPadUp")) { CurrentMode = Orbwalking.OrbwalkingMode.Combo; } else if (b.Contains("DPadLeft")) { CurrentMode = Orbwalking.OrbwalkingMode.LaneClear; } else if (b.Contains("DPadRight")) { CurrentMode = Orbwalking.OrbwalkingMode.Mixed; } else if (b.Contains("DPadDown")) { CurrentMode = Orbwalking.OrbwalkingMode.LastHit; } else if (!b.Contains("LeftThumb")) //Push any button to cancel mode { CurrentMode = Orbwalking.OrbwalkingMode.None; } OrbWalker.ActiveMode = CurrentMode; }
public static MenuItem AddSkill(this Menu menu, Enumerations.Skills skill, Orbwalking.OrbwalkingMode mode, bool defValue = true) { var name = string.Format("dz191.vhr.{0}.use{1}", mode.ToString().ToLower(), skill.ToString().ToLower()); var displayName = string.Format("Use {0}", skill); return(menu.AddItem(new MenuItem(name, displayName).SetValue(defValue))); }
public void SetEnabled <T>(Orbwalking.OrbwalkingMode mode, bool enabled) where T : Skill { foreach (var skill in Skills.Where(skill => skill.GetType() == typeof(T))) { skill.SetEnabled(mode, enabled); } }
private static void Game_OnGameUpdate(EventArgs args) { var wp = ObjectManager.Player.GetWaypoints(); //in case you manually click to move if (wp.Count > 0 && ObjectManager.Player.Distance(wp[wp.Count - 1]) > 540) { CurrentMode = Orbwalking.OrbwalkingMode.None; OrbWalker.ActiveMode = CurrentMode; return; } if (Controller == null || !Controller.Connected) { Game.PrintChat("Controller disconnected!"); Game.OnGameUpdate -= Game_OnGameUpdate; return; } Controller.Update(); UpdateStates(); var p = ObjectManager.Player.ServerPosition.To2D() + (Controller.LeftStick.Position / 75); var pos = new Vector3(p.X, p.Y, ObjectManager.Player.Position.Z); if (ObjectManager.Player.Distance(pos) < 75) { return; } CurrentPosition.Position = pos; OrbWalker.SetOrbwalkingPoint(pos); }
private static void WCast(Orbwalking.OrbwalkingMode mode) { if (mode != Orbwalking.OrbwalkingMode.Combo && mode != Orbwalking.OrbwalkingMode.Mixed || !W.IsReady()) { return; } if (Player.CountEnemiesInRange((int)Player.AttackRange) != 0) { return; } //If the mode is combo then we use the WManaC, if the mode is Harrass we use the WManaH var str = (mode == Orbwalking.OrbwalkingMode.Combo) ? "C" : "H"; //Get a target in W range var wTarget = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical); if (!wTarget.IsValidTarget(W.Range)) { return; } var wMana = GetSliderValue("WMana" + str); if (GetPerValue(true) >= wMana && IsMenuEnabled("UseW" + str)) { W.CastIfHitchanceEquals(wTarget, CustomHitChance, Packets()); } }
public static void MovePet(Menu options, Orbwalking.OrbwalkingMode orbwalkingMode) { var isCombo = Orbwalking.OrbwalkingMode.Combo == orbwalkingMode; var isFarm = Orbwalking.OrbwalkingMode.LaneClear == orbwalkingMode; var isLastHit = Orbwalking.OrbwalkingMode.LastHit == orbwalkingMode || Orbwalking.OrbwalkingMode.Freeze == orbwalkingMode; if (PetDelay || Pet == null) { return; } if (options.Item("petMovement", true).GetValue <StringList>().SelectedIndex == 0 && (isCombo || isFarm || isLastHit)) { AttackableUnit gtarget = GetTarget( isCombo, isFarm, isLastHit, options.Item("petTarget", true).GetValue <StringList>().SelectedIndex); if (gtarget == null) { if (debug) { Console.WriteLine("follow"); } if (player.IsMoving && options.Item("petFollow", true).GetValue <bool>() && player.ChampionName != "Ivern") { var movePos = player.Position.Extend(Prediction.GetPrediction(player, 0.5f).UnitPosition, -250); MoveTo(movePos); SetPetDelay(); } } else if (gtarget.IsValid && !Pet.IsWindingUp) { if ((CanPetAttack() || options.Item("petMovementType", true).GetValue <StringList>().SelectedIndex == 1 || player.HealthPercent < 25) && player.ChampionName != "Ivern") { if (Pet.Distance(gtarget) < Pet.AttackRange + gtarget.BoundingRadius + Pet.BoundingRadius) { Attack(gtarget); } else { MoveTo(gtarget.Position); } } else { var pos = GetMovementPos( gtarget, options.Item("petOrbPos", true).GetValue <StringList>().SelectedIndex == 1); if (isLastHit || isFarm) { pos = gtarget.Position.Extend(Pet.Position, Pet.AttackRange); } MoveTo(pos); } SetPetDelay(); } } }
public virtual void Update(Orbwalking.OrbwalkingMode mode, ComboProvider combo, Obj_AI_Hero target) { if (mode == Orbwalking.OrbwalkingMode.None) { return; } if (mode == Orbwalking.OrbwalkingMode.LaneClear && SwitchClearToHarassOnTarget && target != null) { mode = Orbwalking.OrbwalkingMode.Mixed; } if (UseManaManager && !ManaManager.CanUseMana(mode)) { return; } var targetIsValid = target.IsValidTarget(); if (OnlyUpdateIfTargetValid && mode == Orbwalking.OrbwalkingMode.Combo && !targetIsValid) { return; } if (OnlyUpdateIfCastable && !CanBeCast()) { return; //Todo: check if nessecary with new comboSystem } MinHitChance = mode == Orbwalking.OrbwalkingMode.Combo ? MinComboHitchance : MinHarassHitchance; switch (mode) { case Orbwalking.OrbwalkingMode.Combo: if (ComboEnabled) { Combo(target); } break; case Orbwalking.OrbwalkingMode.LaneClear: if (LaneclearEnabled) { LaneClear(); } break; case Orbwalking.OrbwalkingMode.Mixed: if (HarassEnabled) { if (targetIsValid || !OnlyUpdateIfTargetValid) { Harass(target); } Lasthit(); } break; case Orbwalking.OrbwalkingMode.LastHit: Lasthit(); break; } }
protected virtual void OnUpdate(Orbwalking.OrbwalkingMode mode) { //Console.WriteLine(mode); try { Target = SelectTarget(); } catch { if (Game.Time % 1f < 0.05f) { Console.WriteLine("[TheNinow.ComboSystem] Error during custom target selection"); } Target = TargetSelector.GetTarget(TargetRange, DamageType); } for (int i = 0; i < _queuedCasts.Count; i++) { if (_queuedCasts[i].Item1.HasBeenCast()) { _queuedCasts.RemoveAt(i); } else { try { _queuedCasts[i].Item2(); } catch { _queuedCasts.RemoveAt(i); } break; } } if (!ObjectManager.Player.Spellbook.IsCastingSpell) //todo: removeable? { Skills.Sort(); //Checked: this is not expensive foreach (var item in Skills) { if (item.UseManaManager && ManaManager[mode] > ObjectManager.Player.ManaPercent) { continue; } item.Update(mode, this, Target); //Console.WriteLine(forthe.ElapsedTicks +" / "+item.GetType().Name); if (_cancelSpellUpdates) { _cancelSpellUpdates = false; break; } } } IsAfterAttack = false; }
private static void UpdateStates() { if (Controller.DPad.IsAnyPressed() || Controller.IsABXYPressed()) // Change mode command { uint key = 0; if (Controller.DPad.Up || Controller.X) { CurrentMode = Orbwalking.OrbwalkingMode.Combo; key = Menu.Item("Orbwalk").GetValue <KeyBind>().Key; } else if (Controller.DPad.Left || Controller.A) { CurrentMode = Orbwalking.OrbwalkingMode.LaneClear; key = Menu.Item("LaneClear").GetValue <KeyBind>().Key; } else if (Controller.DPad.Right || Controller.Y) { CurrentMode = Orbwalking.OrbwalkingMode.Mixed; key = Menu.Item("Farm").GetValue <KeyBind>().Key; } else if (Controller.DPad.Down || Controller.B) { CurrentMode = Orbwalking.OrbwalkingMode.LastHit; key = Menu.Item("LastHit").GetValue <KeyBind>().Key; } if (LastKey == key) { return; } LastKey.Release(); key.Press(); } //Push any button to cancel mode if (Controller.LeftShoulder || Controller.RightShoulder || Controller.Back || Controller.Start || Controller.RightStick.Clicked) { CurrentMode = Orbwalking.OrbwalkingMode.None; LastKey.Release(); } var s1 = ObjectManager.Player.Spellbook.GetSpell(SpellSlot.Summoner1); var s2 = ObjectManager.Player.Spellbook.GetSpell(SpellSlot.Summoner2); if (Controller.LeftTrigger > 0 && s1.State == SpellState.Ready) { SummonerCastLogic(s1); } if (Controller.RightTrigger > 0 && s2.State == SpellState.Ready) { SummonerCastLogic(s2); } Text.text = "MODE: " + CurrentMode; //OrbWalker.ActiveMode = CurrentMode; }
public override void Update(Orbwalking.OrbwalkingMode mode, ComboProvider combo, Obj_AI_Hero target) { if (Killsteal && HeroManager.Enemies.Any(enemy => enemy.IsValidTarget(1100) && CanKill(enemy))) { Cast(); } base.Update(mode, combo, target); }
public override void Update(Orbwalking.OrbwalkingMode mode, ComboProvider combo, AIHeroClient target) { base.Update(mode, combo, target); if (_afterAttack) { _afterAttack = false; } }
public override void OnFarm(Orbwalking.OrbwalkingMode mode) { if (!Menu.Item("FarmEnabled").IsActive()) { return; } var minions = MinionManager.GetMinions(E.Range); if (Menu.Item("WFarm").IsActive() && W.IsReady()) { var wKillableMinions = minions.Count(m => m.IsValidTarget(W.Range) && W.IsKillable(m)); if (wKillableMinions < Menu.Item("WMinionsHit").GetValue <Slider>().Value) { if (Menu.Item("EFarm").IsActive() && E.IsReady()) // e->w { foreach (var target in from target in Utility.GetETargets() let killableMinions = MinionManager.GetMinions(target.ServerPosition, W.Range + E.Range) .Count(m => W.IsKillable(m)) where killableMinions >= Menu.Item("EMinionsHit").GetValue <Slider>().Value select target) { CastWAfterE = true; if (E.CastOnUnit(target)) { return; } } } } else if (W.Cast()) { return; } } if (!Menu.Item("QFarm").IsActive() || !Q.IsReady()) { return; } var qKillableMinion = minions.FirstOrDefault(m => m.IsValidTarget(Q.Range) && Q.IsKillable(m)); var qMinion = minions.Where(m => m.IsValidTarget(Q.Range)).MinOrDefault(m => m.Health); if (qKillableMinion == null) { if (Menu.Item("QLastHit").IsActive() || qMinion == null) { return; } Q.CastOnUnit(qMinion); return; } Q.CastOnUnit(qKillableMinion); }
public override void OnCombo(Orbwalking.OrbwalkingMode mode) { if (AdditionalComboActive) { return; } Combo(); }
public static void CastFlayPush(Obj_AI_Hero target, Orbwalking.OrbwalkingMode Mode) { var targetPrediction = Prediction.GetPrediction(target, 0.25f); var finalPosition = target.ServerPosition.Extend( ObjectManager.Player.ServerPosition, ObjectManager.Player.ServerPosition.Distance(targetPrediction.UnitPosition) / 2f); Thresh.spells[SpellSlot.E].Cast(finalPosition); }
/// <summary> /// Adds the mana manager menu. /// </summary> /// <param name="mainMenu">The main menu.</param> /// <param name="Mode">The mode.</param> /// <returns></returns> private static Menu AddManaManagerMenu(this Menu mainMenu, Orbwalking.OrbwalkingMode Mode) { var manaManager = new Menu("Mana Manager", $"solo.{ObjectManager.Player.ChampionName.ToLower()}.{Mode.ToString().ToLower()}.mm"); { mainMenu.AddSubMenu(manaManager); } return(manaManager); }
/// <summary> /// Adds a skill. /// </summary> /// <param name="mainMenu">The main menu.</param> /// <param name="slot">The slot.</param> /// <param name="Mode">The mode.</param> /// <param name="defaultValue">if set to <c>true</c> [default value].</param> /// <param name="defMana">The definition mana.</param> /// <param name="addMM">if set to <c>true</c> [add mm].</param> /// <returns></returns> public static MenuItem AddSkill(this Menu mainMenu, SpellSlot slot, Orbwalking.OrbwalkingMode Mode, bool defaultValue = true, int defMana = 20, bool addMM = true) { if (addMM) { mainMenu.AddManaManager(slot, Mode, defMana); } return(mainMenu.AddBool($"solo.{ObjectManager.Player.ChampionName.ToLower()}.{Mode.ToString().ToLower()}.{slot.ToString().ToLower()}", $"Use {slot}", defaultValue)); }
public static bool IsEnabledAndReady(this Spell spell, Orbwalking.OrbwalkingMode mode) { var modeString = mode.ToString().ToLowerInvariant(); var EnabledInMenu = GetItemValue <bool>(string.Format("dz191.thresh.{0}.use{1}", modeString, spell.Slot.GetStringFromSlot())); var Ready = spell.IsReady(); return(EnabledInMenu && Ready); }
protected override void OnUpdate(Orbwalking.OrbwalkingMode mode) { base.OnUpdate(mode); if (AutoBuyBlueTrinket && ObjectManager.Player.Level >= BlueTrinketLevel && ObjectManager.Player.InFountain() && ObjectManager.Player.InventoryItems.Any(item => item.Id == ItemId.Warding_Totem_Trinket)) { Shop.BuyItem(ItemId.Farsight_Alteration); } }
public override void Update(Orbwalking.OrbwalkingMode mode, ComboProvider combo, Obj_AI_Hero target) { if (mode != Orbwalking.OrbwalkingMode.None && StealJungle && MinionManager.GetMinions(Range, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.None).Any(min => min.HasBuff("Kalistaexpungemarker") && IsKillable(min) && !min.Name.Contains("Mini") && !min.Name.Contains("Dragon") && !min.Name.Contains("Baron"))) { Cast(); } base.Update(mode, combo, target); }
/// <summary> /// Adds the mode menu. /// </summary> /// <param name="mainMenu">The main menu.</param> /// <param name="Mode">The mode.</param> /// <returns></returns> public static Menu AddModeMenu(this Menu mainMenu, Orbwalking.OrbwalkingMode Mode) { var modeMenu = new Menu($"[SOLO] {Mode}", $"solo.{ObjectManager.Player.ChampionName.ToLower()}.{Mode.ToString().ToLower()}"); { mainMenu.AddSubMenu(modeMenu); } return(modeMenu); }
public override void Update(Orbwalking.OrbwalkingMode mode, ComboProvider combo, Obj_AI_Hero target) { if (AutoHarass && ObjectManager.Player.ManaPercent > AutoHarassMana && target.IsValidTarget(Range)) { Cast(target); } base.Update(mode, combo, target); }
public virtual void Update(Orbwalking.OrbwalkingMode mode, ComboProvider combo, AIHeroClient target) { if (mode == Orbwalking.OrbwalkingMode.None) { return; } var targetIsValid = target.IsValidTarget(); if (OnlyUpdateIfTargetValid && mode == Orbwalking.OrbwalkingMode.Combo && !targetIsValid) { return; } if (OnlyUpdateIfCastable && !CanBeCast()) { return; //Todo: check if nessecary with new comboSystem } MinHitChance = mode == Orbwalking.OrbwalkingMode.Combo ? MinComboHitchance : MinHarassHitchance; switch (mode) { case Orbwalking.OrbwalkingMode.Combo: if (ComboEnabled) { Combo(target); } break; case Orbwalking.OrbwalkingMode.LaneClear: if (LaneclearEnabled) { LaneClear(); } break; case Orbwalking.OrbwalkingMode.Mixed: if (HarassEnabled) { if (targetIsValid || !OnlyUpdateIfTargetValid) { Harass(target); } if (LasthitEnabled) { Lasthit(); } } break; case Orbwalking.OrbwalkingMode.LastHit: if (LasthitEnabled) { Lasthit(); } break; } }
public static void CastFlayPull(Obj_AI_Hero target, Orbwalking.OrbwalkingMode Mode) { var finalPosition = target.ServerPosition.Extend( ObjectManager.Player.ServerPosition, ObjectManager.Player.Distance(target.ServerPosition) + 100f ); Thresh.spells[SpellSlot.E].Cast(finalPosition); }
public override void Update(Orbwalking.OrbwalkingMode mode, ComboProvider combo, Obj_AI_Hero target) { if (StealthRecall.GetValue <KeyBind>().Active&& _stealthRecallTime + 5 < Game.Time && !ObjectManager.Player.InFountain()) { _stealthRecallTime = Game.Time; Cast(); ObjectManager.Player.Spellbook.CastSpell(ObjectManager.Player.Spellbook.Spells.First(spell => spell.Name == "recall").Slot); } base.Update(mode, combo, target); }
public override void Update(Orbwalking.OrbwalkingMode mode, ComboProvider combo, AIHeroClient target) { base.Update(mode, combo, target); _recentAutoattack = false; if (_resetOrbwalker && !ObjectManager.Player.HasBuff("GarenE")) { _resetOrbwalker = false; Provider.Orbwalker.SetAttack(true); } }
public virtual void Update(Orbwalking.OrbwalkingMode mode, ComboProvider combo, Obj_AI_Hero target) { if (IsSafeCasting()) //Todo: check if it will instant double-toggle toggleable spells like garenE { _castAction(); } if (OnlyUpdateIfTargetValid && !target.IsValidTarget()) { return; } if (OnlyUpdateIfCastable && (!CanBeCast() || IsSafeCasting())) { return; } if (mode == Orbwalking.OrbwalkingMode.None) { return; } if (mode == Orbwalking.OrbwalkingMode.LaneClear && SwitchClearToHarassOnTarget && target != null && HarassEnabled) { mode = Orbwalking.OrbwalkingMode.Mixed; } if (UseManaManager && !ManaManager.CanUseMana(mode)) { return; } Spell.MinHitChance = mode == Orbwalking.OrbwalkingMode.Combo ? MinComboHitchance : MinHarassHitchance; switch (mode) { case Orbwalking.OrbwalkingMode.Combo: if (ComboEnabled) { Combo(combo, target); } break; case Orbwalking.OrbwalkingMode.LaneClear: if (LaneclearEnabled) { LaneClear(combo, target); } break; case Orbwalking.OrbwalkingMode.Mixed: if (HarassEnabled) { Harass(combo, target); } break; } }
private static void SetOrbwalkingMode(Orbwalking.OrbwalkingMode mode) { CurrentMode = mode; Text.text = "MODE: " + CurrentMode; foreach (var orbwalkMode in KeyDictionary.Keys) { var value = KeyDictionary[orbwalkMode]; var key = Menu.Item(value).GetValue<KeyBind>().Key; var currentMode = orbwalkMode == mode; Menu.SendMessage(key, currentMode ? WindowsMessages.WM_KEYDOWN : WindowsMessages.WM_KEYUP); } }