private static void UseItemCount(string name, int itemId, float itemRange) { if (!Items.HasItem(itemId) || !Items.CanUseItem(itemId)) { return; } if (_mainMenu.Item("use" + name).GetValue <bool>()) { if (Me.CountHerosInRange("hostile", itemRange) >= _mainMenu.Item("use" + name + "Count").GetValue <Slider>().Value) { Items.UseItem(itemId); } } }
private static void UseItemCount(string name, int itemId, float itemRange) { if (!Items.HasItem(itemId) || !Items.CanUseItem(itemId)) { return; } if (_mainMenu.Item("use" + name).GetValue <bool>()) { if (Me.CountHerosInRange(true, itemRange) >= _mainMenu.Item("use" + name + "Count").GetValue <Slider>().Value) { Items.UseItem(itemId); OC.Logger(OC.LogType.Action, "Used " + name + " on me ! (Item count)"); } } }
private static void UseEvade(string sdataname, string menuvar, float range = float.MaxValue) { if (!menuvar.Contains(Oracle.ChampionName.ToLower())) { return; } var slot = Me.GetSpellSlot(sdataname); if (slot == SpellSlot.Unknown) { return; } if (slot != SpellSlot.Unknown && !_mainMenu.Item("use" + menuvar).GetValue <bool>()) { return; } var spell = new Spell(slot, range); var target = range < 5000 ? Oracle.Friendly() : Me; if (target.Distance(Me.ServerPosition, true) > range * range) { return; } var aHealthPercent = target.Health / target.MaxHealth * 100; if (!spell.IsReady() || !_menuConfig.Item("ason" + target.ChampionName).GetValue <bool>() || !target.IsValidState()) { return; } if (_mainMenu.Item("use" + menuvar + "Norm").GetValue <bool>()) { if ((Oracle.Danger || Oracle.IncomeDamage >= target.Health || target.Health / target.MaxHealth * 100 <= 20) && menuvar.Contains("team")) { if (Oracle.AggroTarget.NetworkId == target.NetworkId) { spell.CastOnUnit(target); Oracle.Logger(Oracle.LogType.Action, "(Evade) Casting " + spell.Slot + "(Dangerous Spell) on " + target.ChampionName + " (" + aHealthPercent + "%)"); } } if ((Oracle.Danger || Oracle.IncomeDamage >= target.Health || target.Health / target.MaxHealth * 100 <= 20) && menuvar.Contains("hero")) { // +1 to allow for potential counterplay if (target.CountHerosInRange(false) + 1 >= target.CountHerosInRange(true)) { if (Oracle.AggroTarget.NetworkId == Me.NetworkId) { foreach ( var ene in ObjectManager.Get <Obj_AI_Hero>() .Where(x => x.IsValidTarget(range)) .OrderByDescending(ene => ene.Health / ene.MaxHealth * 100)) { spell.CastOnUnit(ene); Oracle.Logger(Oracle.LogType.Action, "(Evade) Casting " + spell.Slot + "(DS) on " + ene.ChampionName); Oracle.Logger(Oracle.LogType.Info, "Evade target info: "); Oracle.Logger(Oracle.LogType.Info, "HP %: " + ene.Health / ene.MaxHealth * 100); Oracle.Logger(Oracle.LogType.Info, "Current HP %: " + ene.Health); } } } } } if (_mainMenu.Item("use" + menuvar + "Ults").GetValue <bool>()) { foreach (var buff in GameBuff.EvadeBuffs) { foreach (var aura in target.Buffs) { if (!aura.Name.ToLower().Contains(buff.SpellName) && aura.Name.ToLower() != buff.BuffName) { continue; } Utility.DelayAction.Add( buff.Delay, delegate { Oracle.Attacker = Oracle.GetEnemy(buff.ChampionName); Oracle.AggroTarget = target; Oracle.IncomeDamage = (float)Oracle.GetEnemy(buff.ChampionName).GetSpellDamage(Oracle.AggroTarget, buff.Slot); // check if we still have buff and didn't walk out of it if (aura.Name.ToLower().Contains(buff.SpellName) || aura.Name.ToLower() == buff.BuffName) { Oracle.DangerUlt = Oracle.Origin.Item(buff.SpellName + "ccc").GetValue <bool>(); } Oracle.Logger(Oracle.LogType.Danger, "(" + Oracle.Attacker.ChampionName + ") Dangerous buff on " + Oracle.AggroTarget.ChampionName + " should evade!"); }); } } if ((Oracle.DangerUlt || Oracle.IncomeDamage >= target.Health || target.Health / target.MaxHealth * 100 <= 18) && menuvar.Contains("team")) { if (Oracle.AggroTarget.NetworkId == target.NetworkId) { spell.CastOnUnit(target); Oracle.Logger(Oracle.LogType.Action, "(Evade) Casting " + spell.Slot + "(DS) on " + target.ChampionName + " (" + aHealthPercent + "%)"); } } if ((Oracle.DangerUlt || Oracle.IncomeDamage >= target.Health || target.Health / target.MaxHealth * 100 <= 18) && menuvar.Contains("hero")) { if (Me.CountHerosInRange(false) + 1 > Me.CountHerosInRange(true)) { if (Oracle.AggroTarget.NetworkId == Me.NetworkId) { foreach ( var ene in ObjectManager.Get <Obj_AI_Hero>() .Where(x => x.IsValidTarget(range)) .OrderByDescending(ene => ene.Health / ene.MaxHealth * 100)) { spell.CastOnUnit(ene); Oracle.Logger(Oracle.LogType.Action, "(Evade) Casting " + spell.Slot + "(DS) on " + ene.ChampionName); Oracle.Logger(Oracle.LogType.Info, "Evade target info: "); Oracle.Logger(Oracle.LogType.Info, "HP %: " + ene.Health / ene.MaxHealth * 100); Oracle.Logger(Oracle.LogType.Info, "Current HP %: " + ene.Health); } } } } } }
private static void UseEvade(string sdataname, string menuvar, float range = float.MaxValue) { if (!menuvar.Contains(OC.ChampionName.ToLower())) { return; } var slot = Me.GetSpellSlot(sdataname); if (slot != SpellSlot.Unknown && !_mainMenu.Item("use" + menuvar).GetValue <bool>()) { return; } var spell = new Spell(slot, range); var target = range < 5000 ? OC.Friendly() : Me; if (target.Distance(Me.ServerPosition, true) > range * range) { return; } var aHealthPercent = target.Health / target.MaxHealth * 100; if (!spell.IsReady() || !_menuConfig.Item("ason" + target.SkinName).GetValue <bool>() || Me.IsRecalling()) { return; } if (_mainMenu.Item("use" + menuvar + "Norm").GetValue <bool>()) { if ((OC.Danger || OC.IncomeDamage >= target.Health || target.Health / target.MaxHealth * 100 <= 20) && menuvar.Contains("team")) { if (OC.AggroTarget.NetworkId == target.NetworkId) { spell.CastOnUnit(target); OC.Logger(Program.LogType.Action, "(Evade) Casting " + spell.Slot + "(Dangerous Spell) on " + target.SkinName + " (" + aHealthPercent + "%)"); } } if ((OC.Danger || OC.IncomeDamage >= target.Health || target.Health / target.MaxHealth * 100 <= 20) && menuvar.Contains("hero")) { // +1 to allow for potential counterplay if (target.CountHerosInRange(false) + 1 >= target.CountHerosInRange(true)) { if (OC.AggroTarget.NetworkId == Me.NetworkId) { foreach ( var ene in ObjectManager.Get <Obj_AI_Hero>() .Where(x => x.IsValidTarget(range)) .OrderByDescending(ene => ene.Health / ene.MaxHealth * 100)) { spell.CastOnUnit(ene); OC.Logger(Program.LogType.Action, "(Evade) Casting " + spell.Slot + "(Dangerous Spell) on " + ene.SkinName); OC.Logger(OC.LogType.Info, "Evade target info: "); OC.Logger(OC.LogType.Info, "HP %: " + ene.Health / ene.MaxHealth * 100); OC.Logger(OC.LogType.Info, "Current HP %: " + ene.Health); } } } } } if (_mainMenu.Item("use" + menuvar + "Ults").GetValue <bool>()) { if ((OC.DangerUlt || OC.IncomeDamage >= target.Health || target.Health / target.MaxHealth * 100 <= 18) && menuvar.Contains("team")) { if (OC.AggroTarget.NetworkId == target.NetworkId) { spell.CastOnUnit(target); OC.Logger(Program.LogType.Action, "(Evade) Casting " + spell.Slot + "(Dangerous Spell) on " + target.SkinName + " (" + aHealthPercent + "%)"); } } if ((OC.DangerUlt || OC.IncomeDamage >= target.Health || target.Health / target.MaxHealth * 100 <= 18) && menuvar.Contains("hero")) { if (Me.CountHerosInRange(true) > Me.CountHerosInRange(false)) { if (OC.AggroTarget.NetworkId == Me.NetworkId) { foreach ( var ene in ObjectManager.Get <Obj_AI_Hero>() .Where(x => x.IsValidTarget(range)) .OrderByDescending(ene => ene.Health / ene.MaxHealth * 100)) { spell.CastOnUnit(ene); OC.Logger(Program.LogType.Action, "(Evade) Casting " + spell.Slot + "(Dangerous Spell) on " + ene.SkinName); OC.Logger(OC.LogType.Info, "Evade target info: "); OC.Logger(OC.LogType.Info, "HP %: " + ene.Health / ene.MaxHealth * 100); OC.Logger(OC.LogType.Info, "Current HP %: " + ene.Health); } } } } } }
private static void UseEvade(string sdataname, string menuvar, float range = float.MaxValue, bool usemana = true) { if (!menuvar.Contains(OC.ChampionName.ToLower())) { return; } var slot = Me.GetSpellSlot(sdataname); if (slot != SpellSlot.Unknown && !_mainMenu.Item("use" + menuvar).GetValue <bool>()) { return; } var spell = new Spell(slot, range); var target = range < 5000 ? OC.Friendly() : Me; if (target.Distance(Me.ServerPosition, true) > range * range) { return; } if (!spell.IsReady() || !_menuConfig.Item("ason" + target.SkinName).GetValue <bool>()) { return; } if (_mainMenu.Item("use" + menuvar + "Norm").GetValue <bool>()) { if (OC.Danger && menuvar.Contains("team")) { if (OC.AggroTarget.NetworkId == target.NetworkId) { spell.CastOnUnit(target); } } if (OC.Danger && menuvar.Contains("hero")) { if (Me.CountHerosInRange("hostile") > Me.CountHerosInRange("allies")) { if (OC.AggroTarget.NetworkId != Me.NetworkId) { return; } foreach ( var ene in ObjectManager.Get <Obj_AI_Hero>() .Where(x => x.IsValidTarget(range)) .OrderByDescending(ene => ene.Health / ene.MaxHealth * 100)) { spell.CastOnUnit(ene); } } else { // if its 1v1 cast on the sender if (OC.AggroTarget.NetworkId == Me.NetworkId) { spell.CastOnUnit(OC.Attacker); } } } } if (_mainMenu.Item("use" + menuvar + "Ults").GetValue <bool>()) { if (OC.DangerUlt && menuvar.Contains("team")) { if (OC.AggroTarget.NetworkId == target.NetworkId) { spell.CastOnUnit(target); } } if (OC.DangerUlt && menuvar.Contains("hero")) { if (Me.CountHerosInRange("hostile") > Me.CountHerosInRange("allies")) { if (OC.AggroTarget.NetworkId != Me.NetworkId) { return; } foreach ( var ene in ObjectManager.Get <Obj_AI_Hero>() .Where(x => x.IsValidTarget(range)) .OrderByDescending(ene => ene.Health / ene.MaxHealth * 100)) { spell.CastOnUnit(ene); } } else { // if its 1v1 cast on the sender if (OC.AggroTarget.NetworkId == Me.NetworkId) { spell.CastOnUnit(OC.Attacker); } } } } }