├── Template
├── Template.csproj
└── Properties
│ └── AssemblyInfo.cs
├── EzAIO
├── .idea
│ └── .idea.EzAIO.dir
│ │ └── .idea
│ │ ├── encodings.xml
│ │ ├── vcs.xml
│ │ ├── indexLayout.xml
│ │ └── .gitignore
├── Champions
│ ├── Twitch
│ │ ├── .idea
│ │ │ └── .idea.Twitch.dir
│ │ │ │ └── .idea
│ │ │ │ ├── encodings.xml
│ │ │ │ ├── indexLayout.xml
│ │ │ │ ├── riderModule.iml
│ │ │ │ └── .gitignore
│ │ ├── Modes
│ │ │ ├── Automatic.cs
│ │ │ ├── Killsteal.cs
│ │ │ ├── Laneclear.cs
│ │ │ ├── Harass.cs
│ │ │ ├── Jungleclear.cs
│ │ │ └── Combo.cs
│ │ ├── Extension.cs
│ │ ├── Damage.cs
│ │ ├── DamageIndicator.cs
│ │ └── Menus.cs
│ ├── Ashe
│ │ ├── Extension.cs
│ │ ├── Modes
│ │ │ ├── Laneclear.cs
│ │ │ ├── Automatic.cs
│ │ │ ├── Jungleclear.cs
│ │ │ ├── Harass.cs
│ │ │ ├── Combo.cs
│ │ │ └── Killsteal.cs
│ │ ├── Damage.cs
│ │ ├── Menus.cs
│ │ └── Configs.cs
│ ├── Ezreal
│ │ ├── Extension.cs
│ │ ├── Modes
│ │ │ ├── Lasthit.cs
│ │ │ ├── LaneClear.cs
│ │ │ ├── Automatic.cs
│ │ │ ├── Killsteal.cs
│ │ │ ├── Structureclear.cs
│ │ │ ├── JungleClear.cs
│ │ │ ├── Harass.cs
│ │ │ └── Combo.cs
│ │ └── Damage.cs
│ ├── Kalista
│ │ ├── Extension.cs
│ │ ├── Modes
│ │ │ ├── Combo.cs
│ │ │ ├── Lasthit.cs
│ │ │ ├── Laneclear.cs
│ │ │ ├── Killsteal.cs
│ │ │ ├── Automatic.cs
│ │ │ ├── Jungleclear.cs
│ │ │ └── Harass.cs
│ │ ├── Damage.cs
│ │ ├── Menus.cs
│ │ └── DamageIndicator.cs
│ ├── Kaisa
│ │ ├── Extension.cs
│ │ ├── Modes
│ │ │ ├── Killsteal.cs
│ │ │ ├── Extra.cs
│ │ │ ├── Structureclear.cs
│ │ │ ├── Laneclear.cs
│ │ │ ├── Harass.cs
│ │ │ ├── Combo.cs
│ │ │ └── Jungleclear.cs
│ │ ├── Damage.cs
│ │ └── Menus.cs
│ ├── Vayne
│ │ ├── Modes
│ │ │ ├── Extra.cs
│ │ │ ├── Killsteal.cs
│ │ │ ├── Jungleclear.cs
│ │ │ ├── Structureclear.cs
│ │ │ ├── Lasthit.cs
│ │ │ ├── Laneclear.cs
│ │ │ ├── Harass.cs
│ │ │ └── Automatic.cs
│ │ └── Damage.cs
│ ├── Jhin
│ │ ├── Modes
│ │ │ ├── Automatic.cs
│ │ │ ├── Harass.cs
│ │ │ ├── Lasthit.cs
│ │ │ ├── Jungleclear.cs
│ │ │ ├── Extra.cs
│ │ │ ├── Laneclear.cs
│ │ │ └── Killsteal.cs
│ │ ├── Extension.cs
│ │ ├── Damage.cs
│ │ └── Menus.cs
│ ├── Tristana
│ │ ├── Modes
│ │ │ ├── Automatic.cs
│ │ │ ├── Jungleclear.cs
│ │ │ ├── Killsteal.cs
│ │ │ ├── Combo.cs
│ │ │ ├── Harass.cs
│ │ │ ├── Laneclear.cs
│ │ │ └── Structureclear.cs
│ │ ├── Extension.cs
│ │ ├── Damage.cs
│ │ └── Menus.cs
│ ├── Draven
│ │ ├── Modes
│ │ │ ├── Structureclear.cs
│ │ │ ├── Jungleclear.cs
│ │ │ ├── Harass.cs
│ │ │ ├── Automatic.cs
│ │ │ ├── Laneclear.cs
│ │ │ ├── Combo.cs
│ │ │ └── Killsteal.cs
│ │ ├── Damage.cs
│ │ └── Extension.cs
│ ├── Jinx
│ │ ├── Modes
│ │ │ ├── Lasthit.cs
│ │ │ ├── Automatic.cs
│ │ │ ├── Jungleclear.cs
│ │ │ ├── Harass.cs
│ │ │ ├── Laneclear.cs
│ │ │ ├── Killsteal.cs
│ │ │ └── Combo.cs
│ │ ├── Damage.cs
│ │ ├── Extension.cs
│ │ └── Menus.cs
│ ├── Katarina
│ │ ├── Modes
│ │ │ ├── Flee.cs
│ │ │ ├── Jungleclear.cs
│ │ │ └── Laneclear.cs
│ │ └── Extension.cs
│ └── Lucian
│ │ ├── Modes
│ │ ├── Structureclear.cs
│ │ ├── Laneclear.cs
│ │ ├── Extra.cs
│ │ ├── Jungleclear.cs
│ │ └── Combo.cs
│ │ ├── Extension.cs
│ │ └── Damage.cs
├── Bases
│ ├── ChampionBases.cs
│ └── DrawingBase.cs
├── Extras
│ ├── NormalizedEx.cs
│ ├── VectorConversions.cs
│ └── Helps.cs
├── Utilities
│ ├── Developer
│ │ ├── Configs.cs
│ │ ├── Menus.cs
│ │ └── Developer.cs
│ ├── BaseUlt
│ │ ├── Configs.cs
│ │ ├── Menus.cs
│ │ └── Bases.cs
│ └── SupportedChamps.cs
└── Properties
│ └── AssemblyInfo.cs
└── README.md
/Template/Template.csproj:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/EzAIO/.idea/.idea.EzAIO.dir/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/EzAIO/.idea/.idea.EzAIO.dir/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/EzAIO/Champions/Twitch/.idea/.idea.Twitch.dir/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/EzAIO/.idea/.idea.EzAIO.dir/.idea/indexLayout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/EzAIO/Champions/Twitch/.idea/.idea.Twitch.dir/.idea/indexLayout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/EzAIO/Champions/Twitch/.idea/.idea.Twitch.dir/.idea/riderModule.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/EzAIO/Champions/Ashe/Extension.cs:
--------------------------------------------------------------------------------
1 | using static EzAIO.Champions.Jhin.Jhin;
2 | using static EzAIO.Bases.ChampionBases;
3 | namespace EzAIO.Champions.Ashe
4 | {
5 | static class Extension
6 | {
7 | public static bool IsQActive()
8 | {
9 | return Player.HasBuff("AsheQAttack");
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/EzAIO/Bases/ChampionBases.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp.SDK;
2 |
3 | namespace EzAIO.Bases
4 | {
5 | abstract class ChampionBases
6 | {
7 | public static Spell Q { get; set; }
8 | public static Spell W { get; set; }
9 | public static Spell E { get; set; }
10 | public static Spell R { get; set; }
11 | }
12 | }
--------------------------------------------------------------------------------
/EzAIO/.idea/.idea.EzAIO.dir/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 | # Rider ignored files
5 | /.idea.EzAIO.iml
6 | /contentModel.xml
7 | /projectSettingsUpdater.xml
8 | /modules.xml
9 | # Datasource local storage ignored files
10 | /dataSources/
11 | /dataSources.local.xml
12 | # Editor-based HTTP Client requests
13 | /httpRequests/
14 |
--------------------------------------------------------------------------------
/EzAIO/Champions/Ezreal/Extension.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp;
2 | using EnsoulSharp.SDK;
3 |
4 | namespace EzAIO.Champions.Ezreal
5 | {
6 | class Extension
7 | {
8 | public static bool HasEssenceFlux(AIBaseClient target,float range)
9 | {
10 | return target.IsValidTarget(range) && target.HasBuff("ezrealwattach");
11 | }
12 | }
13 | }
--------------------------------------------------------------------------------
/EzAIO/Extras/NormalizedEx.cs:
--------------------------------------------------------------------------------
1 | using System.Runtime.CompilerServices;
2 | using SharpDX;
3 |
4 | namespace EzAIO.Extras
5 | {
6 | public static class NormalizedEx
7 | {
8 | public static Vector2 Normalized(this Vector2 vector)
9 | {
10 | return Vector2.Normalize(vector);
11 | }
12 |
13 | public static Vector3 Normalized(this Vector3 vector)
14 | {
15 | return Vector3.Normalize(vector);
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/EzAIO/Utilities/Developer/Configs.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp.SDK.MenuUI;
2 |
3 | namespace EzAIO.Developer
4 | {
5 | public static class Configs
6 | {
7 | public static class BuffMenu
8 | {
9 | public static readonly MenuBool MyBuffBool =
10 | new MenuBool("my", "Show my Buffs");
11 |
12 | public static readonly MenuBool EnemieBuffBool =
13 | new MenuBool("enemie", "Show enemie Buffs");
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Twitch/.idea/.idea.Twitch.dir/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 | # Rider ignored files
5 | /projectSettingsUpdater.xml
6 | /modules.xml
7 | /contentModel.xml
8 | /.idea.Twitch.iml
9 | # Datasource local storage ignored files
10 | /../../../../../../../../../../../:\Users\pjpix\Desktop\mein\EzAIO\Champions\Twitch\.idea\.idea.Twitch.dir\.idea/dataSources/
11 | /dataSources.local.xml
12 | # Editor-based HTTP Client requests
13 | /httpRequests/
14 |
--------------------------------------------------------------------------------
/EzAIO/Champions/Kalista/Extension.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp;
2 | using EnsoulSharp.SDK;
3 | using SharpDX.Direct3D9;
4 |
5 | namespace EzAIO.Champions.Kalista
6 | {
7 | class Extension
8 | {
9 | public static bool HasRendBuff(AIBaseClient target, float range)
10 | {
11 | return target.IsValidTarget(range) && target.HasBuff("kalistaexpungemarker");
12 | }
13 |
14 | public static bool HasRBuff(AIHeroClient target, float range)
15 | {
16 | return target.IsValidTarget(range) && target.HasBuff("kalistacoopstrikeally");
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Twitch/Modes/Automatic.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp;
2 | using EnsoulSharp.SDK.Utility;
3 | using EzAIO.Bases;
4 | using static EzAIO.Champions.Twitch.Configs;
5 | namespace EzAIO.Champions.Twitch.Modes
6 | {
7 | using static ChampionBases;
8 | static class Automatic
9 | {
10 | public static void CastQ()
11 | {
12 | if (!AutomaticMenu.Qsilent.Active || !Q.IsReady())
13 | {
14 | return;
15 | }
16 | Q.Cast();
17 | DelayAction.Add((int)(Q.Delay+300),
18 | ()=>ObjectManager.Player.Spellbook.CastSpell(SpellSlot.Recall));
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Kaisa/Extension.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp.SDK;
2 |
3 | namespace EzAIO.Champions.Kaisa
4 | {
5 | static class Extension
6 | {
7 | public static bool HasE()
8 | {
9 | return GameObjects.Player.HasBuff("kaisaestealth");
10 | }
11 |
12 | public static bool QUpgraded()
13 | {
14 | return GameObjects.Player.HasBuff("kaisaqevolved");
15 | }
16 |
17 | public static bool WUpgraded()
18 | {
19 | return GameObjects.Player.HasBuff("kaisawevolved");
20 | }
21 |
22 | public static bool EUpgraded()
23 | {
24 | return GameObjects.Player.HasBuff("kaisaeevolved");
25 | }
26 | }
27 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Vayne/Modes/Extra.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EzAIO.Bases;
5 | using static EzAIO.Champions.Vayne.Configs;
6 | namespace EzAIO.Champions.Vayne.Modes
7 | {
8 | using static ChampionBases;
9 | static class Extra
10 | {
11 | public static void CastQ(AfterAttackEventArgs args)
12 | {
13 | if (!ComboMenu.QBool.Enabled)
14 | {
15 | return;
16 | }
17 |
18 | var target = args.Target as AIHeroClient;
19 | if (target == null || !Extension.ShouldCastQ(target))
20 | {
21 | return;
22 | }
23 |
24 | Q.Cast(Game.CursorPos);
25 | }
26 | }
27 | }
--------------------------------------------------------------------------------
/EzAIO/Utilities/Developer/Menus.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp.SDK.MenuUI;
2 | using static EzAIO.Developer.Configs;
3 | using static EzAIO.Program;
4 |
5 | namespace EzAIO.Developer
6 | {
7 | class Menus
8 | {
9 | public Menus()
10 | {
11 | Initialize();
12 | }
13 | public static void Initialize()
14 | {
15 | var buffMenu = new Menu("Buff", "Buffs")
16 | {
17 | BuffMenu.MyBuffBool,
18 | BuffMenu.EnemieBuffBool
19 | };
20 | var menuList = new[]
21 | {
22 | buffMenu
23 | };
24 | foreach (var menu in menuList)
25 | {
26 | util.Add(menu);
27 | }
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Vayne/Modes/Killsteal.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | using static EzAIO.Champions.Vayne.Configs;
5 | namespace EzAIO.Champions.Vayne.Modes
6 | {
7 | using static ChampionBases;
8 | static class Killsteal
9 | {
10 | public static void CastE()
11 | {
12 | if (KillstealMenu.EBool.Enabled)
13 | {
14 | return;
15 | }
16 |
17 | if (!Extension.Attacked)
18 | {
19 | return;
20 | }
21 |
22 | foreach (var target in GameObjects.EnemyHeroes.Where(Extension.KillableWithE))
23 | {
24 | E.CastOnUnit(target);
25 | break;
26 | }
27 | }
28 | }
29 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Jhin/Modes/Automatic.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EzAIO.Bases;
5 | using static EzAIO.Champions.Jhin.Configs;
6 |
7 | namespace EzAIO.Champions.Jhin.Modes
8 | {
9 | using static ChampionBases;
10 | static class Automatic
11 | {
12 | public static void CastE()
13 | {
14 | if (!AutomaticMenu.ECCBool.Enabled)
15 | {
16 | return;
17 | }
18 |
19 | foreach (var target in GameObjects.EnemyHeroes.Where(x=>x.HasBuffOfType(BuffType.Stun) &&
20 | x.DistanceToPlayer()x.IsValidTarget(E.Range) && Extension.HasPoisonEffect(x,E.Range) &&
20 | EDamage(x)>= x.Health-GameObjects.Player.CalculateDamage(x,DamageType.Mixed,1)))
21 | {
22 | E.Cast();
23 | }
24 | }
25 | }
26 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Jhin/Modes/Harass.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | using EzAIO.Extras;
5 | using static EzAIO.Champions.Jhin.Configs;
6 | using static EzAIO.Champions.Jhin.Jhin;
7 | namespace EzAIO.Champions.Jhin.Modes
8 | {
9 | using static ChampionBases;
10 | static class Harass
11 | {
12 | public static void CastQ()
13 | {
14 | if (!HarassMenu.QSliderButton.Enabled)
15 | {
16 | return;
17 | }
18 |
19 | if (HarassMenu.QSliderButton.Value >= Player.ManaPercent)
20 | {
21 | return;
22 | }
23 |
24 | foreach (var target in Helps.GetBestEnemyHeroesInRange(Q.Range).Where(x=>x.IsValidTarget()))
25 | {
26 | Q.CastOnUnit(target);
27 | break;
28 | }
29 | }
30 | }
31 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Tristana/Modes/Automatic.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | using static EzAIO.Champions.Tristana.Configs;
5 | using static EzAIO.Champions.Tristana.Tristana;
6 | namespace EzAIO.Champions.Tristana.Modes
7 | {
8 | using static ChampionBases;
9 | static class Automatic
10 | {
11 | public static void CastR()
12 | {
13 | if (!AutomaticMenu.RPeelSliderButton.Enabled || Player.Health >= AutomaticMenu.RPeelSliderButton.Value)
14 | {
15 | return;;
16 | }
17 |
18 | var target = GameObjects.EnemyHeroes
19 | .Where(x => x.IsValidTarget(Player.GetRealAutoAttackRange()) && x.IsMelee)
20 | .MaxBy(x => x.TotalAttackDamage);
21 | if (target == null)
22 | {
23 | return;
24 | }
25 |
26 | R.CastOnUnit(target);
27 | }
28 | }
29 | }
--------------------------------------------------------------------------------
/EzAIO/Utilities/BaseUlt/Configs.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp.SDK.MenuUI;
2 |
3 | namespace EzAIO.Utilities.BaseUlt
4 | {
5 | public static class Configs
6 | {
7 | public static class BaseUltMenu
8 | {
9 | public static readonly MenuBool EnableBool =
10 | new MenuBool("enable", "Enable");
11 |
12 | public static readonly MenuBool CollisionBool =
13 | new MenuBool("coll", "Check Collision");
14 |
15 | public static readonly MenuSlider EnemyRangeSlider =
16 | new MenuSlider("range", "Don't cast if Enemyes in Range", 1200, 100, 2000);
17 |
18 | public static readonly MenuList NotifyModeList =
19 | new MenuList("notify", "Notify Mode", new[] {"Chat", "Screen"}, 0);
20 |
21 | public static readonly MenuKeyBind PanicKey =
22 | new MenuKeyBind("key", "Don't cast while is pressed", Keys.Space, KeyBindType.Press);
23 | }
24 | }
25 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Kalista/Modes/Combo.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp.SDK;
2 | using EzAIO.Bases;
3 | namespace EzAIO.Champions.Kalista.Modes
4 | {
5 | using static Configs;
6 | using static ChampionBases;
7 | static class Combo
8 | {
9 | public static void CastQ()
10 | {
11 | if (!ComboMenu.QBool.Enabled || !Q.IsReady())
12 | {
13 | return;
14 | }
15 |
16 | if (GameObjects.Player.IsDashing())
17 | {
18 | return;
19 | }
20 | var qtarget = TargetSelector.GetTarget(Q.Range,DamageType.Physical);
21 | if (qtarget == null)
22 | {
23 | return;
24 | }
25 |
26 | var qinput = Q.GetPrediction(qtarget);
27 | if (qinput.Hitchance >= HitChance.High)
28 | {
29 | Q.Cast(qinput.CastPosition);
30 | }
31 | }
32 |
33 | }
34 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Twitch/Damage.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | namespace EzAIO.Champions.Twitch
5 | {
6 | using static ChampionBases;
7 | class Damage
8 | {
9 | private static readonly float[] EBaseDamage = {0f, 20f, 30f, 40f, 50f, 60f, 60f};
10 | private static readonly float[] EStackDamage = {0f, 15f, 20f, 25f, 30f, 35f, 35f};
11 |
12 | public static float EDamage(AIBaseClient target)
13 | {
14 | var eLevel = E.Level;
15 | var eBaseDamage = EBaseDamage[eLevel];
16 | var stackDamage = (EStackDamage[eLevel] + GameObjects.Player.PercentBonusPhysicalDamageMod * .35f +
17 | GameObjects.Player.TotalMagicalDamage * .333f) * Extension.BuffStacks(target);
18 | var totalDamage = eBaseDamage + stackDamage;
19 | return (float) (GameObjects.Player.CalculateDamage(target, DamageType.Physical, totalDamage));
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Ashe/Modes/Laneclear.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | using static EzAIO.Champions.Ashe.Configs;
5 | using static EzAIO.Champions.Ashe.Ashe;
6 | using static EzAIO.Champions.Ashe.Damage;
7 | namespace EzAIO.Champions.Ashe.Modes
8 | {
9 | using static ChampionBases;
10 | static class Laneclear
11 | {
12 | public static void CastQ()
13 | {
14 | if (!LaneclearMenu.QSliderButton.Enabled)
15 | {
16 | return;
17 | }
18 |
19 | if (LaneclearMenu.QSliderButton.Value >= Player.ManaPercent)
20 | {
21 | return;
22 | }
23 |
24 | var minion = GameObjects.EnemyMinions.FirstOrDefault(x => x.IsValidTarget(Player.GetRealAutoAttackRange()));
25 | if (minion == null)
26 | {
27 | return;
28 | }
29 |
30 | if (!Extension.IsQActive())
31 | {
32 | Q.Cast();
33 | }
34 | }
35 | }
36 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Draven/Modes/Structureclear.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | using static EzAIO.Champions.Draven.Configs;
5 | namespace EzAIO.Champions.Draven.Modes
6 | {
7 | using static ChampionBases;
8 | static class Structureclear
9 | {
10 | public static void CastW()
11 | {
12 | if (!StructureclearMenu.WSliderButton.Enabled)
13 | {
14 | return;
15 | }
16 |
17 | if (StructureclearMenu.WSliderButton.Value >= GameObjects.Player.ManaPercent)
18 | {
19 | return;
20 | }
21 |
22 | if (GameObjects.Player.CountEnemyHeroesInRange(StructureclearMenu.WRangeSliderButton.Value) != 0)
23 | {
24 | return;
25 | }
26 |
27 | var turret = GameObjects.EnemyTurrets.FirstOrDefault(x => x.IsValidTarget(E.Range));
28 | if (turret == null)
29 | {
30 | return;
31 | }
32 | W.Cast();
33 | }
34 | }
35 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Tristana/Modes/Jungleclear.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp.SDK;
2 | using static EzAIO.Champions.Tristana.Configs;
3 | using static EzAIO.Champions.Tristana.Tristana;
4 | using static EzAIO.Bases.ChampionBases;
5 | namespace EzAIO.Champions.Tristana.Modes
6 | {
7 | static class Jungleclear
8 | {
9 | public static void CastE(BeforeAttackEventArgs args)
10 | {
11 | if (!JungleClearMenu.ESliderButton.Enabled)
12 | {
13 | return;
14 | }
15 |
16 | if (JungleClearMenu.ESliderButton.Value >= Player.ManaPercent)
17 | {
18 | return;
19 | }
20 |
21 | E.CastOnUnit(args.Target);
22 | }
23 |
24 | public static void CastQ()
25 | {
26 | if (!JungleClearMenu.QSliderButton.Enabled)
27 | {
28 | return;
29 | }
30 |
31 | if (JungleClearMenu.QSliderButton.Value >= Player.ManaPercent)
32 | {
33 | return;
34 | }
35 |
36 | Q.Cast();
37 | }
38 | }
39 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Ashe/Damage.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | using static EzAIO.Champions.Ashe.Ashe;
5 | namespace EzAIO.Champions.Ashe
6 | {
7 | using static ChampionBases;
8 | class Damage
9 | {
10 | private static readonly float[] WBaseDamage = {0f, 20f, 35f, 50f, 65f, 80f, 80f};
11 | private static readonly float[] RBaseDamage = {0f, 200f, 400f, 600f};
12 |
13 | public static float WDamage(AIBaseClient target)
14 | {
15 | var wLevel = W.Level;
16 | var wBaseDamage = WBaseDamage[wLevel] +
17 | 1f*Player.TotalAttackDamage;
18 | return (float) Player.CalculateDamage(target, DamageType.Physical, wBaseDamage);
19 | }
20 |
21 | public static float RDamage(AIBaseClient target)
22 | {
23 | var rLevel = R.Level;
24 | var rBaseDamage = RBaseDamage[rLevel] +
25 | 1f*Player.TotalMagicalDamage;
26 | return (float) Player.CalculateDamage(target, DamageType.Magical, rBaseDamage);
27 | }
28 | }
29 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Tristana/Modes/Killsteal.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | using static EzAIO.Champions.Tristana.Damage;
5 | using static EzAIO.Champions.Tristana.Configs;
6 | using static EzAIO.Champions.Tristana.Tristana;
7 | namespace EzAIO.Champions.Tristana.Modes
8 | {
9 | using static ChampionBases;
10 | static class Killsteal
11 | {
12 | public static void CastR()
13 | {
14 | if (!KillstealMenu.RBool.Enabled)
15 | {
16 | return;
17 | }
18 |
19 | foreach (var target in GameObjects.EnemyHeroes.Where(x=>x.IsValidTarget(Player.GetRealAutoAttackRange(x)) &&
20 | EDamage(x)+RDamage(x)>=x.Health-
21 | Player.CalculateDamage(x,DamageType.Physical,1) &&
22 | !x.IsInvulnerable))
23 | {
24 | R.CastOnUnit(target);
25 | break;
26 | }
27 | }
28 | }
29 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Jhin/Modes/Lasthit.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | using static EzAIO.Champions.Jhin.Damage;
5 | using static EzAIO.Champions.Jhin.Configs;
6 | using static EzAIO.Champions.Jhin.Jhin;
7 | namespace EzAIO.Champions.Jhin.Modes
8 | {
9 | using static ChampionBases;
10 | static class Lasthit
11 | {
12 | public static void CastQ()
13 | {
14 | if (!LasthitMenu.QSliderButton.Enabled)
15 | {
16 | return;
17 | }
18 |
19 | if (LasthitMenu.QSliderButton.Value >= Player.ManaPercent)
20 | {
21 | return;
22 | }
23 |
24 | if (!Extension.IsReloading() && LasthitMenu.QReloadBool.Enabled)
25 | {
26 | return;
27 | }
28 |
29 | foreach (var target in GameObjects.EnemyMinions.Where(x =>
30 | x.IsValidTarget(Q.Range) && QDamage(x) >= x.Health - Player.CalculateDamage(x, DamageType.Physical, 1)))
31 | {
32 | Q.CastOnUnit(target);
33 | }
34 | }
35 | }
36 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Kalista/Modes/Lasthit.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | using static EzAIO.Champions.Kalista.Configs;
5 | namespace EzAIO.Champions.Kalista.Modes
6 | {
7 | using static ChampionBases;
8 | using static Damage;
9 | static class Lasthit
10 | {
11 | public static void CastE()
12 | {
13 | if (!Configs.Lasthit.ESliderButton.Enabled || !E.IsReady())
14 | {
15 | return;
16 | }
17 |
18 | if (Configs.Lasthit.ESliderButton.Value >= GameObjects.Player.ManaPercent)
19 | {
20 | return;
21 | }
22 |
23 | if (GameObjects.EnemyMinions.Any(x => x.IsValidTarget(E.Range) &&
24 | Extension.HasRendBuff(x, E.Range) &&
25 | EDamage(x) >= x.Health -
26 | GameObjects.Player.CalculateDamage(x, DamageType.Physical, 1)))
27 | {
28 | E.Cast();
29 | }
30 | }
31 | }
32 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Draven/Damage.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 |
5 | namespace EzAIO.Champions.Draven
6 | {
7 | using static ChampionBases;
8 | class Damage
9 | {
10 | private static readonly float[] EBaseDamage = {0f, 75f, 110f, 145f, 180f, 215f, 215f};
11 | private static readonly float[] RBaseDamage = {0f, 175f, 275f, 375f, 375f};
12 | private static readonly float[] RBonusAD = {0f, 1.1f, 1.3f, 1.5f, 1.5f};
13 |
14 | public static float EDamage(AIBaseClient target)
15 | {
16 | var eLevel = E.Level;
17 | var eBaseDamage = EBaseDamage[eLevel] + .5f * GameObjects.Player.GetBonusPhysicalDamage();
18 | return (float) GameObjects.Player.CalculateDamage(target, DamageType.Physical, eBaseDamage);
19 | }
20 |
21 | public static float RDamage(AIBaseClient target)
22 | {
23 | var rLevel = R.Level;
24 | var rBaseDamage = RBaseDamage[rLevel] + (RBonusAD[rLevel] * GameObjects.Player.GetBonusPhysicalDamage());
25 | return (float) GameObjects.Player.CalculateDamage(target, DamageType.Physical, rBaseDamage);
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Draven/Modes/Jungleclear.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp.SDK;
2 | using EzAIO.Bases;
3 | using static EzAIO.Champions.Draven.Configs;
4 | namespace EzAIO.Champions.Draven.Modes
5 | {
6 | using static ChampionBases;
7 | class Jungleclear
8 | {
9 | public static void CastQ()
10 | {
11 | if (!JungleclearMenu.QSliderButton.Enabled)
12 | {
13 | return;
14 | }
15 |
16 | if (Extension.GetNumberAxesActives() >= JungleclearMenu.QAxesSlider.Value)
17 | {
18 | return;
19 | }
20 |
21 | if (HarassMenu.QSliderButton.Value >= GameObjects.Player.ManaPercent)
22 | {
23 | return;
24 | }
25 |
26 | Q.Cast();
27 | }
28 |
29 | public static void CastW()
30 | {
31 | if (!JungleclearMenu.WSliderButton.Enabled)
32 | {
33 | return;
34 | }
35 |
36 | if (JungleclearMenu.WSliderButton.Value >= GameObjects.Player.ManaPercent)
37 | {
38 | return;
39 | }
40 |
41 | W.Cast();
42 | }
43 | }
44 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Jinx/Modes/Lasthit.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | using static EzAIO.Champions.Jinx.Configs;
5 | using static EzAIO.Champions.Jinx.Jinx;
6 | using static EzAIO.Champions.Jinx.Damage;
7 | namespace EzAIO.Champions.Jinx.Modes
8 | {
9 | using static ChampionBases;
10 | static class Lasthit
11 | {
12 | public static void CastQ()
13 | {
14 | if (!LasthitMenu.QSliderButton.Enabled)
15 | {
16 | return;
17 | }
18 |
19 | if (LasthitMenu.QSliderButton.Value >= Player.ManaPercent)
20 | {
21 | return;
22 | }
23 |
24 | var minion = GameObjects.EnemyMinions.Where(x => x.IsValidTarget(Extension.RocketRange))
25 | .OrderBy(x => x.MaxHealth).FirstOrDefault(x =>
26 | Extension.RocketDamage(x) >= x.Health - Player.CalculateDamage(x, DamageType.Physical, 1));
27 | if (minion == null || !minion.IsValid)
28 | {
29 | return;
30 | }
31 |
32 | if (Extension.Swap(minion))
33 | {
34 | Q.Cast();
35 | }
36 | }
37 | }
38 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Ensoulsharp
2 |
3 | EzAIO will not be updated again, I will only do maintenance when I see it necessary. Now I am working on EvaAIO, a new project. I leave you the link of my new github: https://github.com/AkenoHimejimaa/EvaAIO
4 |
5 | Join in to my new Discord Channel: https://github.com/AkenoHimejimaa/EvaAIO
6 |
7 | **EzAIO**
8 |
9 | EzIO is my own AIO, I will look to add as many champions as I can. I hope you like it, if you have any questions, do not hesitate to enter my discord, as well as give me feedback to see how to improve my AIO.
10 | Over time I will implement more things.
11 |
12 | Credits to babazhou for helping me with various aspects of the code.
13 |
14 | Qué sucede gente linda de habla hispana! Este es mi AIO, espero que les guste. Si tienen algún problema o quieren darme feedback entren a mi server de discord. Se cuidan, se bañan, chao.
15 |
16 | Créditos a babazhou por ayudarme en muchos aspectos del código.
17 |
18 | **ChampionList**
19 |
20 | - Ashe
21 | - Draven.
22 | - Ezreal.
23 | - Jhin.
24 | - Jinx.
25 | - Kalista.
26 | - Kaisa.
27 | - Katarina
28 | - Lucian.
29 | - Tristana.
30 | - Twitch.
31 | - Vayne.
32 |
33 | **Utilities**
34 | - BaseUlt
35 |
36 | **To do**
37 |
38 | - Add more champs.
39 |
40 |
41 |
--------------------------------------------------------------------------------
/EzAIO/Utilities/BaseUlt/Menus.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using EnsoulSharp.SDK;
3 | using EnsoulSharp.SDK.MenuUI;
4 | using static EzAIO.Utilities.BaseUlt.Configs;
5 | using static EzAIO.Program;
6 | namespace EzAIO.Utilities.BaseUlt
7 | {
8 | class Menus
9 | {
10 |
11 | public Menus()
12 | {
13 | Initialize();
14 | }
15 |
16 | public static void Initialize()
17 | {
18 | var baseMenu = new Menu("baseULT", "Base Ult")
19 | {
20 | BaseUltMenu.EnableBool,
21 | //BaseUltMenu.CollisionBool,
22 | BaseUltMenu.EnemyRangeSlider,
23 | BaseUltMenu.NotifyModeList,
24 | BaseUltMenu.PanicKey
25 | };
26 | var supportedChanos = new List()
27 | {
28 | "Draven",
29 | "Ezreal",
30 | "Jinx",
31 | "Ashe"
32 | };
33 | if (supportedChanos.Contains(GameObjects.Player.CharacterName))
34 | {
35 | BaseUltMenu.PanicKey.AddPermashow();
36 | util.Add(baseMenu);
37 | }
38 |
39 | }
40 | }
41 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Draven/Modes/Harass.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EnsoulSharp.SDK.Utility;
5 | using EzAIO.Bases;
6 | using static EzAIO.Champions.Draven.Configs;
7 | namespace EzAIO.Champions.Draven.Modes
8 | {
9 | using static ChampionBases;
10 | static class Harass
11 | {
12 | public static void CastQ()
13 | {
14 | if (!HarassMenu.QSliderButton.Enabled)
15 | {
16 | return;
17 | }
18 |
19 | if (Extension.GetNumberAxesActives() >= HarassMenu.QAxesSlider.Value)
20 | {
21 | return;
22 | }
23 |
24 | if (HarassMenu.QSliderButton.Value >= GameObjects.Player.ManaPercent)
25 | {
26 | return;
27 | }
28 |
29 | Q.Cast();
30 | }
31 |
32 | public static void CastW()
33 | {
34 | if (!HarassMenu.EsSliderButton.Enabled)
35 | {
36 | return;
37 | }
38 |
39 | if (HarassMenu.EsSliderButton.Value >= GameObjects.Player.ManaPercent)
40 | {
41 | return;
42 | }
43 |
44 | W.Cast();
45 | }
46 | }
47 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Ashe/Modes/Automatic.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EzAIO.Bases;
5 | using static EzAIO.Champions.Ashe.Configs;
6 | using static EzAIO.Champions.Ashe.Ashe;
7 | namespace EzAIO.Champions.Ashe.Modes
8 | {
9 | using static ChampionBases;
10 | static class Automatic
11 | {
12 | public static void CastR()
13 | {
14 | if (!AutomaticMenu.Rinmobile.Enabled)
15 | {
16 | return;
17 | }
18 |
19 | foreach (var target in GameObjects.EnemyHeroes.Where(x=>x.IsStunned &&
20 | x.IsValidTarget(R.Range)))
21 | {
22 | if (AutomaticMenu.NoEnemiesSliderButton.Enabled && Player.CountEnemyHeroesInRange(W.Range) >=
23 | AutomaticMenu.NoEnemiesSliderButton.Value)
24 | {
25 | return;
26 | }
27 |
28 | var rinput = R.GetPrediction(target);
29 | if (rinput.Hitchance >= HitChance.High && R.IsInRange(rinput.CastPosition))
30 | {
31 | R.Cast(rinput.CastPosition);
32 | }
33 | }
34 | }
35 | }
36 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Draven/Modes/Automatic.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EzAIO.Bases;
5 | using static EzAIO.Champions.Draven.Configs;
6 | namespace EzAIO.Champions.Draven.Modes
7 | {
8 | using static ChampionBases;
9 | static class Automatic
10 | {
11 | public static void CastWSlowed()
12 | {
13 | if (!AutomaticMenu.WSlowedBool.Enabled)
14 | {
15 | return;
16 | }
17 |
18 | if (GameObjects.Player.HasBuffOfType(BuffType.Slow))
19 | {
20 | W.Cast();
21 | }
22 | }
23 |
24 | public static void CastRImmobile()
25 | {
26 | if (!AutomaticMenu.RImmobileBool.Enabled)
27 | {
28 | return;
29 | }
30 |
31 | foreach (var target in GameObjects.EnemyHeroes.Where(x=>
32 | x.IsValidTarget(R.Range) && !x.IsInvulnerable && x.HaveImmovableBuff()))
33 | {
34 | var rinput = R.GetPrediction(target);
35 | if (rinput.Hitchance >= HitChance.High)
36 | {
37 | R.Cast(rinput.UnitPosition);
38 | }
39 | }
40 | }
41 | }
42 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Kaisa/Modes/Killsteal.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EzAIO.Bases;
5 | using static EzAIO.Champions.Kaisa.Damage;
6 | using static EzAIO.Champions.Kaisa.Configs;
7 | namespace EzAIO.Champions.Kaisa.Modes
8 | {
9 | using static ChampionBases;
10 | static class Killsteal
11 | {
12 | public static void Cast()
13 | {
14 | if (W.IsReady() && KillstealMenu.WBool.Enabled)
15 | {
16 | CastW();
17 | }
18 | }
19 |
20 | private static void CastW()
21 | {
22 | foreach (var target in GameObjects.EnemyHeroes.Where(x => x.IsValidTarget(W.Range) &&
23 | WDamage(x) >= x.Health -
24 | GameObjects.Player.CalculateDamage(x, DamageType.Magical,
25 | 1)))
26 | {
27 | var winput = W.GetPrediction(target);
28 | if (winput.Hitchance >= HitChance.High)
29 | {
30 | W.Cast(winput.CastPosition);
31 | }
32 | }
33 | }
34 | }
35 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Tristana/Extension.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 |
5 | namespace EzAIO.Champions.Tristana
6 | {
7 | static class Extension
8 | {
9 | public static bool IsCharged(this AIBaseClient target)
10 | {
11 | return target.HasBuff("TristanaECharge");
12 | }
13 |
14 | /*public static bool IsPerfectCharged(this AIBaseClient target)
15 | {
16 | if (target.IsCharged() &&
17 | target.IsValidTarget())
18 | {
19 | switch (target.Type)
20 | {
21 | case GameObjectType.AIMinionClient:
22 | return true;
23 | case GameObjectType.AIHeroClient:
24 | var heroTarget = (AIHeroClient) target;
25 | return !heroTarget.IsInvulnerable;
26 | }
27 | }
28 |
29 | return false;
30 | }*/
31 | public static Boolean HasEBuff(AIBaseClient target)
32 | {
33 | return target.HasBuff("TristanaECharge");
34 | }
35 |
36 | public static int EBuffCount(this AIBaseClient target)
37 | {
38 | return target.GetBuffCount("TristanaECharge");
39 | }
40 | }
41 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Kaisa/Modes/Extra.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EzAIO.Bases;
5 | using static EzAIO.Champions.Kaisa.Configs;
6 | namespace EzAIO.Champions.Kaisa.Modes
7 | {
8 | using static ChampionBases;
9 | static class Extra
10 | {
11 | public static void CastW(AfterAttackEventArgs args)
12 | {
13 | if (!ComboMenu.WSliderButton.Enabled || ComboMenu.WSliderButton.Value == 2)
14 | {
15 | return;
16 | }
17 |
18 | var target = args.Target as AIHeroClient;
19 | if (target == null)
20 | {
21 | return;
22 | }
23 |
24 | if (ComboMenu.WRange.Enabled && target.DistanceToPlayer() <= ComboMenu.WRange.Value)
25 | {
26 | return;
27 | }
28 |
29 | if (ComboMenu.WSliderButton.Value == 1 &&
30 | target.GetBuffCount("kaisapassivemarker") < ComboMenu.WSliderButton.Value - 1)
31 | {
32 | return;
33 | }
34 |
35 | var winput = W.GetPrediction(target);
36 | if (winput.Hitchance >= HitChance.High)
37 | {
38 | W.Cast(winput.UnitPosition);
39 | }
40 | }
41 | }
42 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Ezreal/Modes/Lasthit.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EnsoulSharp.SDK.MenuUI;
4 | using EzAIO.Bases;
5 |
6 | namespace EzAIO.Champions.Ezreal.Modes
7 | {
8 | using static Ezreal;
9 | using static Damage;
10 | using static ChampionBases;
11 |
12 | class Lasthit
13 | {
14 | internal static void CastQ()
15 | {
16 | if (!mainMenu["Lasthit"].GetValue("q").Enabled || !Q.IsReady())
17 | {
18 | return;
19 | }
20 |
21 | if (mainMenu["Lasthit"].GetValue("q").Value >= GameObjects.Player.ManaPercent)
22 | {
23 | return;
24 | }
25 |
26 | var qtarget = GameObjects.EnemyMinions.Where(x => x.IsValidTarget(Q.Range)).FirstOrDefault(x =>
27 | QDamage(x) >= x.Health - GameObjects.Player.CalculateDamage(x, DamageType.Physical, 1));
28 | if (qtarget == null)
29 | {
30 | return;
31 | }
32 |
33 | var qinput = Q.GetPrediction(qtarget);
34 | if (qinput.Hitchance >= HitChance.High)
35 | {
36 | Q.Cast(qinput.UnitPosition);
37 | }
38 | }
39 | }
40 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Kaisa/Modes/Structureclear.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EzAIO.Bases;
5 | using static EzAIO.Champions.Kaisa.Configs;
6 | namespace EzAIO.Champions.Kaisa.Modes
7 | {
8 | using static ChampionBases;
9 | static class Structureclear
10 | {
11 | public static void CastE(AfterAttackEventArgs args)
12 | {
13 | if (!StructureclearMenu.ESliderButton.Enabled)
14 | {
15 | return;
16 | }
17 |
18 | if (StructureclearMenu.ESliderButton.Value >= GameObjects.Player.ManaPercent)
19 | {
20 | return;
21 | }
22 |
23 | var safechek = StructureclearMenu.ERange;
24 | if (safechek.Enabled && GameObjects.Player.CountEnemyHeroesInRange(safechek.Value) != 0)
25 | {
26 | return;
27 | }
28 |
29 | var etarget = GameObjects.EnemyTurrets.FirstOrDefault(x => x.IsValidTarget(E.Range));
30 | if (etarget == null)
31 | {
32 | return;
33 | }
34 |
35 | if (!GameObjects.Player.InAutoAttackRange(etarget))
36 | {
37 | return;
38 | }
39 | E.Cast(Game.CursorPos);
40 | }
41 | }
42 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Jinx/Modes/Automatic.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | using static EzAIO.Champions.Jinx.Configs;
5 | namespace EzAIO.Champions.Jinx.Modes
6 | {
7 | using static ChampionBases;
8 | static class Automatic
9 | {
10 | public static void WOnImmobile()
11 | {
12 | if (!AutomaticMenu.WCCBool.Enabled)
13 | {
14 | return;
15 | }
16 |
17 | var target = GameObjects.EnemyHeroes.FirstOrDefault(x => x.IsStunned &&
18 | x.IsValidTarget(W.Range));
19 | if (target == null)
20 | {
21 | return;
22 | }
23 | W.Cast(target);
24 |
25 | }
26 |
27 | public static void EOnImmobile()
28 | {
29 | if (!AutomaticMenu.ECCBool.Enabled)
30 | {
31 | return;
32 | }
33 |
34 | var target = GameObjects.EnemyHeroes.FirstOrDefault(x => x.IsStunned &&
35 | x.IsValidTarget(E.Range));
36 | if (target == null)
37 | {
38 | return;
39 | }
40 |
41 | E.Cast(target);
42 | }
43 | }
44 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Vayne/Modes/Jungleclear.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EzAIO.Bases;
5 | using static EzAIO.Champions.Vayne.Configs;
6 |
7 | namespace EzAIO.Champions.Vayne.Modes
8 | {
9 | using static ChampionBases;
10 | static class Jungleclear
11 | {
12 | public static void CastQ(AfterAttackEventArgs args)
13 | {
14 | if (!JungleclearMenu.QSliderButton.Enabled)
15 | {
16 | return;
17 | }
18 |
19 | if (JungleclearMenu.QSliderButton.Value >= GameObjects.Player.ManaPercent)
20 | {
21 | return;
22 | }
23 | Q.Cast(Game.CursorPos);
24 | }
25 |
26 | public static void CastE(AfterAttackEventArgs args)
27 | {
28 | var target = args.Target as AIMinionClient;
29 |
30 | if (!JungleclearMenu.ESliderButton.Enabled)
31 | {
32 | return;
33 | }
34 |
35 | if (JungleclearMenu.ESliderButton.Value >= GameObjects.Player.ManaPercent)
36 | {
37 | return;
38 | }
39 |
40 | if (Extension.IsMinionCondemnable(target))
41 | {
42 | E.CastOnUnit(target);
43 | }
44 | }
45 |
46 | }
47 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Vayne/Modes/Structureclear.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EzAIO.Bases;
5 | using static EzAIO.Champions.Vayne.Configs;
6 | namespace EzAIO.Champions.Vayne.Modes
7 | {
8 | using static ChampionBases;
9 | static class Structureclear
10 | {
11 | public static void CastQ(AfterAttackEventArgs args)
12 | {
13 | if (!StructureclearMenu.QSliderButton.Enabled)
14 | {
15 |
16 | return;
17 | }
18 |
19 | if (StructureclearMenu.QSliderButton.Value >= GameObjects.Player.ManaPercent)
20 | {
21 | return;
22 | }
23 |
24 | var safecheck = StructureclearMenu.NoEnemiesSliderButton;
25 | if (safecheck.Enabled && GameObjects.Player.CountEnemyHeroesInRange(safecheck.Value) != 0)
26 | {
27 | return;
28 | }
29 |
30 | var qtarget = GameObjects.EnemyTurrets.FirstOrDefault(x => x.IsValidTarget(Q.Range));
31 | if (qtarget == null)
32 | {
33 | return;
34 | }
35 |
36 | if (!GameObjects.Player.InAutoAttackRange(qtarget))
37 | {
38 | return;
39 | }
40 |
41 | Q.Cast(Game.CursorPos);
42 | }
43 | }
44 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Vayne/Modes/Lasthit.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using static EzAIO.Champions.Vayne.Damage;
3 | using EnsoulSharp;
4 | using EnsoulSharp.SDK;
5 | using EzAIO.Bases;
6 | using static EzAIO.Champions.Vayne.Configs;
7 | namespace EzAIO.Champions.Vayne.Modes
8 | {
9 | using static ChampionBases;
10 | static class Lasthit
11 | {
12 | public static void CastQ(AfterAttackEventArgs args)
13 | {
14 | if (!LasthitMenu.QSliderButton.Enabled)
15 | {
16 | return;
17 | }
18 |
19 | if (LasthitMenu.QSliderButton.Value >= GameObjects.Player.ManaPercent)
20 | {
21 | return;
22 | }
23 | var posAfterQ = GameObjects.Player.Position.Extend(Game.CursorPos, 300f);
24 | foreach (var target in GameObjects.EnemyMinions.Where(x=>x.IsValidTarget(Q.Range) &&
25 | x.Distance(posAfterQ) < GameObjects.Player.GetRealAutoAttackRange() &&
26 | x != Orbwalker.GetTarget() &&
27 | x.Health<=GameObjects.Player.GetAutoAttackDamage(x) + QDamage(x)))
28 | {
29 | Q.Cast(Game.CursorPos);
30 | }
31 | }
32 | }
33 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Vayne/Modes/Laneclear.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using static EzAIO.Champions.Vayne.Damage;
3 | using EnsoulSharp;
4 | using EnsoulSharp.SDK;
5 | using EzAIO.Bases;
6 | using static EzAIO.Champions.Vayne.Configs;
7 | namespace EzAIO.Champions.Vayne.Modes
8 | {
9 | using static ChampionBases;
10 | static class Laneclear
11 | {
12 | public static void CastQ(AfterAttackEventArgs args)
13 | {
14 | if (!LaneclearMenu.QSliderButton.Enabled)
15 | {
16 | return;
17 | }
18 |
19 | if (LaneclearMenu.QSliderButton.Value >= GameObjects.Player.ManaPercent)
20 | {
21 | return;
22 | }
23 |
24 | var posAfterQ = GameObjects.Player.Position.Extend(Game.CursorPos, 300f);
25 | foreach (var target in GameObjects.EnemyMinions.Where(x=>x.IsValidTarget(Q.Range) &&
26 | x.Distance(posAfterQ) < GameObjects.Player.GetRealAutoAttackRange() &&
27 | x != Orbwalker.GetTarget() &&
28 | x.Health<=GameObjects.Player.GetAutoAttackDamage(x) + QDamage(x)))
29 | {
30 | Q.Cast(Game.CursorPos);
31 | }
32 | }
33 | }
34 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Tristana/Modes/Combo.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp;
2 | using EnsoulSharp.SDK;
3 | using static EzAIO.Champions.Tristana.Configs;
4 | using static EzAIO.Bases.ChampionBases;
5 | namespace EzAIO.Champions.Tristana.Modes
6 | {
7 | static class Combo
8 | {
9 | public static void CastQ(BeforeAttackEventArgs args)
10 | {
11 | var target = args.Target as AIHeroClient;
12 | if (target == null)
13 | {
14 | return;
15 | }
16 |
17 | if (ComboMenu.QBool.Enabled)
18 | {
19 | Q.Cast();
20 | }
21 | }
22 |
23 | public static void CastE(BeforeAttackEventArgs args)
24 | {
25 | var target = args.Target as AIHeroClient;
26 | if (target == null)
27 | {
28 | return;
29 | }
30 |
31 | if (ComboMenu.EBool.Enabled)
32 | {
33 | E.CastOnUnit(target);
34 | }
35 | }
36 |
37 | public static void SemiR()
38 | {
39 | if (!ComboMenu.RSemiCastBool.Active)
40 | {
41 | return;
42 | }
43 | var target = R.GetTarget();
44 | if (target == null)
45 | {
46 | return;
47 | }
48 |
49 | R.CastOnUnit(target);
50 | }
51 | }
52 | }
--------------------------------------------------------------------------------
/EzAIO/Utilities/BaseUlt/Bases.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using SharpDX;
5 |
6 | namespace EzAIO.Utilities.BaseUlt
7 | {
8 | public class Bases
9 | {
10 | public class BaseChamps
11 | {
12 | public bool IsRecall = false;
13 | public bool Teleporting = false;
14 |
15 | public int NetworkID { get; set; }
16 | public Vector3 PosBase { get; set; }
17 | public Teleport.TeleportStatus TStatus { get; set; }
18 | public Teleport.TeleportType TType { get; set; }
19 | public int Duration { get; set; }
20 | public int Start { get; set; }
21 |
22 | public BaseChamps(AIHeroClient target, Vector3 pos, Teleport.TeleportStatus status,
23 | Teleport.TeleportType type, int duration, int start)
24 | {
25 | NetworkID = target.NetworkId;
26 | PosBase = pos;
27 | TStatus = status;
28 | TType = type;
29 | Duration = duration;
30 | Start = start;
31 | }
32 | }
33 | public static List GetChamps = new List();
34 | public static List BaseULTChamps = new List();
35 | public static int Delay = 0;
36 | public static int Speed = 0;
37 | }
38 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Jinx/Damage.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EzAIO.Bases;
5 | using static EzAIO.Champions.Jinx.Jinx;
6 | namespace EzAIO.Champions.Jinx
7 | {
8 | using static ChampionBases;
9 | class Damage
10 | {
11 | private static readonly float[] WBaseDamage = {0f, 10f, 110f, 160f, 210f, 210f};
12 | private static readonly float[] RBaseDamage = {0f, 250f, 350f, 450f, 450f};
13 | private static readonly float[] Multiplir = {0f, .25f, .3f, .35f, .35f};
14 |
15 | public static float WDamage(AIBaseClient target)
16 | {
17 | var wLevel = W.Level;
18 | var wBaseDamage = WBaseDamage[wLevel] + 1.6f * Player.TotalAttackDamage;
19 | return (float) Player.CalculateDamage(target, DamageType.Physical, wBaseDamage);
20 | }
21 |
22 | public static float RDamage(AIBaseClient target)
23 | {
24 | var rLevel = R.Level;
25 | var rBaseDamage = RBaseDamage[rLevel] + 1.5f * Player.GetBonusPhysicalDamage() +
26 | Multiplir[rLevel] * (target.MaxHealth - target.Health);
27 | var rDistance = ((int) Math.Ceiling(target.DistanceToPlayer() / 100) * 6 + 4) / 10;
28 | var total = rBaseDamage * (rDistance >= 1 ? 1 : rDistance);
29 | return (float) Player.CalculateDamage(target, DamageType.Physical, total);
30 | }
31 | }
32 | }
--------------------------------------------------------------------------------
/EzAIO/Utilities/Developer/Developer.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using EnsoulSharp;
5 | using EnsoulSharp.SDK;
6 | using SharpDX;
7 | using static EzAIO.Developer.Configs;
8 | using static EzAIO.Program;
9 | using Color = System.Drawing.Color;
10 |
11 | namespace EzAIO.Developer
12 | {
13 | public static class Developer
14 | {
15 | public static AIBaseClient Player = GameObjects.Player;
16 |
17 | public static void OnGameLoad()
18 | {
19 | if (Player.IsDead)
20 | {
21 | return;
22 | }
23 |
24 | Render.OnDraw += OnDraw;
25 | }
26 |
27 | private static void OnDraw(EventArgs args)
28 | {
29 | if (BuffMenu.MyBuffBool.Enabled)
30 | {
31 | var x = Drawing.WorldToScreen(Player.Position).X;
32 | var y = Drawing.WorldToScreen(Player.Position).Y;
33 | var buff = Player.Buffs;
34 | if (buff.Any())
35 | {
36 | Drawing.DrawText(x,y+120,System.Drawing.Color.White,"Buffs: ");
37 | }
38 |
39 | for (var i = 0; i < buff.Length * 10; i += 10)
40 | {
41 | Drawing.DrawText(x+40,(y+120+i),Color.Cyan, buff[i/10].Count+"X "+buff[i/10].Name);
42 | }
43 | }
44 | }
45 | }
46 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Tristana/Modes/Harass.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp;
2 | using EnsoulSharp.SDK;
3 | using static EzAIO.Champions.Tristana.Configs;
4 | using static EzAIO.Champions.Tristana.Tristana;
5 | using static EzAIO.Bases.ChampionBases;
6 | namespace EzAIO.Champions.Tristana.Modes
7 | {
8 | static class Harass
9 | {
10 | public static void CastQ(BeforeAttackEventArgs args)
11 | {
12 | if (!HarassMenu.QSliderButton.Enabled)
13 | {
14 | return;
15 | }
16 |
17 | if (HarassMenu.QSliderButton.Value >= Player.ManaPercent)
18 | {
19 | return;
20 | }
21 |
22 | var target = args.Target as AIHeroClient;
23 | if (target == null)
24 | {
25 | return;
26 | }
27 |
28 | Q.Cast();
29 | }
30 |
31 | public static void CastE(BeforeAttackEventArgs args)
32 | {
33 | if (!HarassMenu.ESliderButton.Enabled)
34 | {
35 | return;
36 | }
37 |
38 | if (HarassMenu.ESliderButton.Value >= Player.ManaPercent)
39 | {
40 | return;
41 | }
42 |
43 | var target = args.Target as AIHeroClient;
44 | if (target == null)
45 | {
46 | return;
47 | }
48 |
49 | E.CastOnUnit(target);
50 | }
51 | }
52 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Kaisa/Damage.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EzAIO.Bases;
5 |
6 | namespace EzAIO.Champions.Kaisa
7 | {
8 | using static ChampionBases;
9 | class Damage
10 | {
11 | private static readonly float[] WBseDamage = {0f, 30f, 55f, 80f, 105f, 130f, 130f};
12 |
13 | public static float WDamage(AIBaseClient target)
14 | {
15 | var missingHealth = target.MaxHealth - target.Health;
16 | var wLevel = W.Level;
17 | var wBaseDamage = WBseDamage[wLevel] +
18 | GameObjects.Player.TotalAttackDamage * 1.3f +
19 | GameObjects.Player.TotalMagicalDamage * .7f;
20 | if (target.GetBuffCount("kaisapassivemarker") >= (GameObjects.Player.FlatMagicDamageMod >= 100 ? 2 : 3))
21 | {
22 | var passiveDamage = missingHealth *
23 | (.15f + .0375f * GameObjects.Player.TotalMagicalDamage / 100);
24 | if (target is AIMinionClient jungle && jungle.IsJungle())
25 | {
26 | wBaseDamage += Math.Min(400, passiveDamage);
27 | }
28 | else
29 | {
30 | wBaseDamage += passiveDamage;
31 | }
32 |
33 | }
34 |
35 | return (float)GameObjects.Player.CalculateDamage(target, DamageType.Magical, wBaseDamage);
36 | }
37 | }
38 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Twitch/Modes/Laneclear.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | using static EzAIO.Champions.Twitch.Damage;
5 | using static EzAIO.Champions.Twitch.Configs;
6 |
7 | namespace EzAIO.Champions.Twitch.Modes
8 | {
9 | using static ChampionBases;
10 | class Laneclear
11 | {
12 | public static void CastE()
13 | {
14 | if (!LaneclearMenu.ESliderButton.Enabled || !E.IsReady())
15 | {
16 | return;
17 | }
18 |
19 | if (LaneclearMenu.ESliderButton.Value >= GameObjects.Player.ManaPercent)
20 | {
21 | return;
22 | }
23 |
24 | int cont = 0;
25 | foreach (var minion in GameObjects.EnemyMinions.Where(x=>x.IsValidTarget(E.Range) &&
26 | Extension.HasPoisonEffect(x,E.Range)))
27 | {
28 | if (minion == null)
29 | {
30 | return;
31 | }
32 |
33 | if (EDamage(minion) >= minion.Health - GameObjects.Player.CalculateDamage(minion, DamageType.Mixed, 1))
34 | {
35 | cont++;
36 | }
37 |
38 | if (cont != 0 && cont == LaneclearMenu.ESlider.Value)
39 | {
40 | E.Cast();
41 | }
42 | }
43 | }
44 | }
45 | }
--------------------------------------------------------------------------------
/Template/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.InteropServices;
3 |
4 | // General Information about an assembly is controlled through the following
5 | // set of attributes. Change these attribute values to modify the information
6 | // associated with an assembly.
7 | [assembly: AssemblyTitle("Template")]
8 | [assembly: AssemblyDescription("")]
9 | [assembly: AssemblyConfiguration("")]
10 | [assembly: AssemblyCompany("EweEwe")]
11 | [assembly: AssemblyProduct("Template")]
12 | [assembly: AssemblyCopyright("Copyright © 2021")]
13 | [assembly: AssemblyTrademark("")]
14 | [assembly: AssemblyCulture("")]
15 |
16 | // Setting ComVisible to false makes the types in this assembly not visible
17 | // to COM components. If you need to access a type in this assembly from
18 | // COM, set the ComVisible attribute to true on that type.
19 | [assembly: ComVisible(false)]
20 |
21 | // The following GUID is for the ID of the typelib if this project is exposed to COM
22 | [assembly: Guid("E43C3542-5940-4016-82F3-C1F476B54ACC")]
23 |
24 | // Version information for an assembly consists of the following four values:
25 | //
26 | // Major Version
27 | // Minor Version
28 | // Build Number
29 | // Revision
30 | //
31 | // You can specify all the values or you can default the Build and Revision Numbers
32 | // by using the '*' as shown below:
33 | // [assembly: AssemblyVersion("1.0.*")]
34 | [assembly: AssemblyVersion("1.0.0.0")]
35 | [assembly: AssemblyFileVersion("1.0.0.0")]
--------------------------------------------------------------------------------
/EzAIO/Champions/Katarina/Modes/Flee.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EzAIO.Bases;
5 | using static EzAIO.Champions.Katarina.Configs;
6 | namespace EzAIO.Champions.Katarina.Modes
7 | {
8 | using static ChampionBases;
9 | static class Flee
10 | {
11 | public static void CastW()
12 | {
13 | if (!FleeMenu.WBool.Enabled || !W.IsReady())
14 | {
15 | return;
16 | }
17 |
18 | W.Cast();
19 | }
20 |
21 | public static void CastE()
22 | {
23 | if (!FleeMenu.EBool.Enabled || !E.IsReady())
24 | {
25 | return;
26 | }
27 |
28 | var dagger = Extension.Daggers.FirstOrDefault(
29 | x => x.Distance(Game.CursorPos) < 450);
30 | if (dagger == null)
31 | {
32 | return;
33 | }
34 |
35 | var target = GameObjects.AttackableUnits.Where(x => x.IsTargetable &&
36 | x.DistanceToCursor() <= E.Range &&
37 | Game.CursorPos.DistanceToPlayer() >
38 | x.Distance(Game.CursorPos))
39 | .OrderBy(x => x.DistanceToPlayer()).FirstOrDefault();
40 | if (target != null)
41 | {
42 | E.Cast(target.Position);
43 | }
44 | }
45 | }
46 | }
--------------------------------------------------------------------------------
/EzAIO/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.InteropServices;
3 | using EzAIO;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("EzAIO")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("EweEwe")]
12 | [assembly: AssemblyProduct("EzAIO")]
13 | [assembly: AssemblyCopyright("Copyright © 2021")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("E43C3542-5940-4016-82F3-C1F476B54ACC")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion(Program.version)]
36 | [assembly: AssemblyFileVersion(Program.version)]
--------------------------------------------------------------------------------
/EzAIO/Champions/Ashe/Modes/Jungleclear.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | using static EzAIO.Champions.Ashe.Configs;
5 | using static EzAIO.Champions.Ashe.Ashe;
6 | using static EzAIO.Champions.Ashe.Damage;
7 | namespace EzAIO.Champions.Ashe.Modes
8 | {
9 | using static ChampionBases;
10 | static class Jungleclear
11 | {
12 | public static void CastQ()
13 | {
14 | if (!JungleclearMenu.QSliderButton.Enabled)
15 | {
16 | return;
17 | }
18 |
19 | if (JungleclearMenu.QSliderButton.Value >= Player.ManaPercent)
20 | {
21 | return;
22 | }
23 |
24 | var mob = GameObjects.Jungle.FirstOrDefault(x => x.IsValidTarget(Player.GetRealAutoAttackRange()));
25 | if (mob == null)
26 | {
27 | return;
28 | }
29 |
30 | Q.Cast();
31 | }
32 |
33 | public static void CastW(AfterAttackEventArgs args)
34 | {
35 | if (!JungleclearMenu.WSliderButton.Enabled)
36 | {
37 | return;
38 | }
39 |
40 | if (JungleclearMenu.WSliderButton.Value >= Player.ManaPercent)
41 | {
42 | return;
43 | }
44 |
45 | var mob = GameObjects.Jungle.FirstOrDefault(x => x.IsValidTarget(W.Range));
46 | if (mob == null)
47 | {
48 | return;
49 | }
50 | W.Cast(mob);
51 | }
52 | }
53 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Vayne/Modes/Harass.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EzAIO.Bases;
5 | using static EzAIO.Champions.Vayne.Extension;
6 | using static EzAIO.Champions.Vayne.Configs;
7 | namespace EzAIO.Champions.Vayne.Modes
8 | {
9 | using static ChampionBases;
10 | static class Harass
11 | {
12 | public static void CastQ(AfterAttackEventArgs args)
13 | {
14 | if (!HarassMenu.QSliderButton.Enabled)
15 | {
16 | return;
17 | }
18 |
19 | if (HarassMenu.QSliderButton.Value >= GameObjects.Player.ManaPercent)
20 | {
21 | return;
22 | }
23 |
24 | var heroytarget = args.Target as AIHeroClient;
25 | if (heroytarget == null || !ShouldCastQ(heroytarget))
26 | {
27 | return;
28 | }
29 |
30 | Q.Cast(Game.CursorPos);
31 | }
32 |
33 | public static void CastE()
34 | {
35 | if (!HarassMenu.EsSliderButton.Enabled)
36 | {
37 | return;
38 | }
39 |
40 | if (HarassMenu.EsSliderButton.Value >= GameObjects.Player.ManaPercent)
41 | {
42 | return;
43 | }
44 |
45 | foreach (var targets in TargetSelector.GetTargets(E.Range,DamageType.Physical).ToList().Where(x=>x.Has2WStacks()))
46 | {
47 | E.CastOnUnit(targets);
48 | break;
49 | }
50 | }
51 | }
52 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Ezreal/Modes/LaneClear.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EnsoulSharp.SDK.MenuUI;
4 | using EzAIO.Bases;
5 |
6 | namespace EzAIO.Champions.Ezreal.Modes
7 | {
8 | using static Ezreal;
9 | using static ChampionBases;
10 | using static Damage;
11 |
12 | class LaneClear
13 | {
14 | internal static void CastQ()
15 | {
16 | if (!mainMenu["LaneClear"].GetValue("q").Enabled || !Q.IsReady())
17 | {
18 | return;
19 | }
20 | if (mainMenu["LaneClear"].GetValue("q").Value >= GameObjects.Player.ManaPercent)
21 | {
22 | return;
23 | }
24 |
25 | var qtarget = GameObjects.EnemyMinions.Where(x=>x.IsValidTarget(Q.Range)).
26 | OrderBy(x=>x.Health).FirstOrDefault();
27 | if (qtarget == null)
28 | {
29 | return;
30 | }
31 |
32 | if (mainMenu["LaneClear"].GetValue("killable").Enabled &&
33 | QDamage(qtarget) >=
34 | qtarget.Health - GameObjects.Player.CalculateDamage(qtarget, DamageType.Physical, 1))
35 | {
36 | return;
37 | }
38 |
39 | var qinput = Q.GetPrediction(qtarget);
40 | if (qinput.Hitchance >= HitChance.High)
41 | {
42 | Q.Cast(qinput.UnitPosition);
43 | }
44 | }
45 |
46 | }
47 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Tristana/Modes/Laneclear.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | using static EzAIO.Champions.Tristana.Configs;
5 | using static EzAIO.Champions.Tristana.Tristana;
6 | using static EzAIO.Extras.Helps;
7 | namespace EzAIO.Champions.Tristana.Modes
8 | {
9 | using static ChampionBases;
10 | static class Laneclear
11 | {
12 | public static void CastE(BeforeAttackEventArgs args)
13 | {
14 | if (!LaneclearMenu.ESliderButton.Enabled)
15 | {
16 | return;
17 | }
18 |
19 | if (LaneclearMenu.ESliderButton.Value >= Player.ManaPercent)
20 | {
21 | return;
22 | }
23 |
24 | var bestMinion = GameObjects.EnemyMinions.FirstOrDefault(x =>
25 | x.IsValidTarget(Player.GetRealAutoAttackRange()) &&
26 | CountInRange(x,300,GameObjects.EnemyMinions) >=
27 | LaneclearMenu.EMinionSlider.Value);
28 | if (bestMinion == null)
29 | {
30 | return;
31 | }
32 |
33 | E.CastOnUnit(bestMinion);
34 | }
35 |
36 | public static void CastQ()
37 | {
38 | if (!LaneclearMenu.QSliderButton.Enabled)
39 | {
40 | return;
41 | }
42 |
43 | if (LaneclearMenu.QSliderButton.Value >= Player.ManaPercent)
44 | {
45 | return;
46 | }
47 |
48 | Q.Cast();
49 | }
50 | }
51 | }
--------------------------------------------------------------------------------
/EzAIO/Extras/Helps.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.Linq;
3 | using EnsoulSharp;
4 | using EnsoulSharp.SDK;
5 | using SharpDX;
6 | using static EnsoulSharp.SDK.Geometry;
7 |
8 | namespace EzAIO.Extras
9 | {
10 | static class Helps
11 | {
12 | public static readonly string[] GrabsNames = {"ThreshQ", "rocketgrab2"};
13 |
14 | public static bool IsGrabbed(this AIHeroClient hero)
15 | {
16 | return hero.Buffs.Any(x => GrabsNames.Contains(x.Name));
17 | }
18 | private static IEnumerable GetInRange(Vector2 pos, float range, IEnumerable units)
19 | {
20 | return units.Where(x => x != null && x.IsValid && x.Position.To2D().Distance(pos) <= range).ToList();
21 | }
22 | public static int CountInRange(this Vector2 pos, float range, IEnumerable units)
23 | {
24 | return GetInRange(pos, range, units).Count();
25 | }
26 |
27 | public static int CountInRange(AIBaseClient unit, float range, IEnumerable units)
28 | {
29 | return GetInRange(unit.Position.To2D(), range, units).Count();
30 | }
31 |
32 | public static List GetBestEnemyHeroesTarget()
33 | {
34 | return GetBestEnemyHeroesInRange(float.MaxValue);
35 | }
36 | public static List GetBestEnemyHeroesInRange(float range)
37 | {
38 | return GameObjects.EnemyHeroes.Where(x => x.InRange(range)).ToList();
39 | }
40 | }
41 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Katarina/Extension.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.Linq;
3 | using EnsoulSharp;
4 | using EnsoulSharp.SDK;
5 | using static EzAIO.Champions.Katarina.Configs;
6 |
7 | namespace EzAIO.Champions.Katarina
8 | {
9 | static class Extension
10 | {
11 | public static float eDelay = 0f;
12 | public static float rDealy = 0f;
13 | public static bool rTrigger = false;
14 | public static bool CastingR = false;
15 | public static List Daggers = new List();
16 |
17 | public static void GetDagger()
18 | {
19 | Daggers = MiscellaneousMenu.DetectLanded.Enabled
20 | ? GameObjects.AllGameObjects.Where(x => x.Name.Contains("_Dagger_Ground_")).ToList()
21 | : GameObjects.AllGameObjects.Where(x => x.Name.Contains("W_Indicator_Ally")).ToList();
22 | }
23 |
24 | public static void Magnet(BeforeMoveEventArgs args)
25 | {
26 | if (!MiscellaneousMenu.Magnet.Enabled)
27 | {
28 | return;
29 | }
30 |
31 | var dagger = Daggers.Where(x => x.IsValid &&
32 | x.DistanceToPlayer() < 500).OrderBy(x => x.DistanceToPlayer())
33 | .FirstOrDefault();
34 | if (dagger == null)
35 | {
36 | return;
37 | }
38 |
39 | if (dagger.Position.DistanceToPlayer() > 100)
40 | {
41 | args.MovePosition = dagger.Position;
42 | }
43 | }
44 | }
45 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Kalista/Modes/Laneclear.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | namespace EzAIO.Champions.Kalista.Modes
5 | {
6 | using static ChampionBases;
7 | using static Damage;
8 | static class Laneclear
9 | {
10 | public static void CastE()
11 | {
12 | if(!Configs.Laneclear.ESliderButton.Enabled || !E.IsReady())
13 | {
14 | return;
15 | }
16 |
17 | if (Configs.Laneclear.ESliderButton.Value >= GameObjects.Player.ManaPercent)
18 | {
19 | return;
20 | }
21 |
22 | int cont = 0;
23 | foreach (var minions in GameObjects.EnemyMinions.Where(x => x.IsValidTarget(E.Range) &&
24 | Extension.HasRendBuff(x, E.Range)))
25 | {
26 | if (EDamage(minions) >=
27 | minions.Health - GameObjects.Player.CalculateDamage(minions, DamageType.Physical, 1))
28 | {
29 | cont++;
30 | }
31 |
32 | if (cont > 0)
33 | {
34 | if (cont >= Configs.Laneclear.Eminion.Value)
35 | {
36 | E.Cast();
37 | }
38 | }
39 |
40 | if (Configs.Laneclear.EBool.Enabled && minions.Health <= 40)
41 | {
42 | E.Cast();
43 | }
44 | }
45 | }
46 | }
47 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Kaisa/Modes/Laneclear.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EzAIO.Bases;
5 | using static EzAIO.Champions.Kaisa.Configs;
6 | namespace EzAIO.Champions.Kaisa.Modes
7 | {
8 | using static ChampionBases;
9 | static class Laneclear
10 | {
11 | public static void CastQ()
12 | {
13 | if (!LaneclearMenu.QSliderButton.Enabled)
14 | {
15 | return;
16 | }
17 |
18 | if (LaneclearMenu.QSliderButton.Value >= GameObjects.Player.ManaPercent)
19 | {
20 | return;
21 | }
22 |
23 | var countMinions = GameObjects.EnemyMinions.Count(x => x.IsValidTarget(Q.Range) &&
24 | x.DistanceToPlayer() <= Q.Range);
25 | if (countMinions < LaneclearMenu.QCount.Value)
26 | {
27 | return;
28 | }
29 |
30 | Q.Cast();
31 | }
32 |
33 | public static void CastE()
34 | {
35 | if (!LaneclearMenu.ESliderButton.Enabled)
36 | {
37 | return;
38 | }
39 |
40 | if (LaneclearMenu.ESliderButton.Value >= GameObjects.Player.ManaPercent)
41 | {
42 | return;
43 | }
44 |
45 | if (!GameObjects.EnemyMinions.Any(x => x.IsValidTarget(Q.Range) && x.DistanceToPlayer() <= Q.Range))
46 | {
47 | return;
48 | }
49 | Game.Print("Hola");
50 | E.Cast();
51 | }
52 | }
53 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Kaisa/Modes/Harass.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | using static EzAIO.Champions.Kaisa.Configs;
5 | namespace EzAIO.Champions.Kaisa.Modes
6 | {
7 | using static ChampionBases;
8 | static class Harass
9 | {
10 | public static void CastQ()
11 | {
12 | if (!HarassMenu.QSliderButton.Enabled)
13 | {
14 | return;
15 | }
16 |
17 | if (HarassMenu.QSliderButton.Value >= GameObjects.Player.ManaPercent)
18 | {
19 | return;
20 | }
21 |
22 | if (GameObjects.EnemyHeroes.Any(x => x.IsValidTarget(Q.Range)))
23 | {
24 | Q.Cast();
25 | }
26 | }
27 |
28 | public static void CastW()
29 | {
30 | if (!HarassMenu.WSliderButton.Enabled)
31 | {
32 | return;
33 | }
34 |
35 | if (HarassMenu.WSliderButton.Value >= GameObjects.Player.ManaPercent)
36 | {
37 | return;
38 | }
39 |
40 | var enemies = TargetSelector.GetTargets(W.Range,DamageType.Mixed).ToList();
41 | foreach (var target in enemies.Where(x=>x.IsValidTarget(W.Range)))
42 | {
43 | if (target == null)
44 | {
45 | return;
46 | }
47 |
48 | var winput = W.GetPrediction(target);
49 | if (winput.Hitchance >= HitChance.High)
50 | {
51 | W.Cast(winput.CastPosition);
52 | }
53 | }
54 | }
55 | }
56 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Kalista/Modes/Killsteal.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | namespace EzAIO.Champions.Kalista.Modes
5 | {
6 | using static Configs;
7 | using static Damage;
8 | using static ChampionBases;
9 | static class Killsteal
10 | {
11 | public static void CastQ()
12 | {
13 | if (!KillstealMenu.QSBool.Enabled || !Q.IsReady())
14 | {
15 | return;
16 | }
17 | if (GameObjects.Player.IsDashing())
18 | {
19 | return;
20 | }
21 |
22 | foreach (var target in GameObjects.EnemyHeroes.Where(x =>
23 | x.IsValidTarget(Q.Range) &&
24 | QDamage(x) >= x.Health - GameObjects.Player.CalculateDamage(x, DamageType.Physical, 1) &&
25 | !x.IsInvulnerable))
26 | {
27 | var qinput = Q.GetPrediction(target);
28 | if (qinput.Hitchance >= HitChance.High)
29 | {
30 | Q.Cast(qinput.CastPosition);
31 | }
32 | }
33 | }
34 |
35 | public static void CastE()
36 | {
37 | if (!KillstealMenu.EBool.Enabled || !E.IsReady())
38 | {
39 | return;
40 | }
41 |
42 | if (GameObjects.EnemyHeroes.Any(x =>
43 | Extension.HasRendBuff(x, E.Range) &&
44 | EDamage(x) >= x.Health - GameObjects.Player.CalculateDamage(x, DamageType.Physical, 1)))
45 | {
46 | E.Cast();
47 | }
48 | }
49 |
50 | }
51 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Lucian/Modes/Structureclear.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EzAIO.Bases;
5 | using static EzAIO.Champions.Lucian.Configs;
6 | namespace EzAIO.Champions.Lucian.Modes
7 | {
8 | using static ChampionBases;
9 | static class Structureclear
10 | {
11 | public static void CastW(AfterAttackEventArgs args)
12 | {
13 | if (!StructureclearMenu.WSlider.Enabled)
14 | {
15 | return;
16 | }
17 |
18 | if (StructureclearMenu.WSlider.Value >= GameObjects.Player.ManaPercent)
19 | {
20 | return;
21 | }
22 |
23 | var wtarget = GameObjects.EnemyTurrets.FirstOrDefault(x => x.IsValidTarget(W.Range));
24 | if (wtarget == null)
25 | {
26 | return;
27 | }
28 |
29 | W.Cast(Game.CursorPos);
30 | }
31 |
32 | public static void CastE(AfterAttackEventArgs args)
33 | {
34 | if (!StructureclearMenu.ESlider.Enabled)
35 | {
36 | return;
37 | }
38 |
39 | if (StructureclearMenu.ESlider.Value >= GameObjects.Player.ManaPercent)
40 | {
41 | return;
42 | }
43 |
44 | var etraget = GameObjects.EnemyTurrets.FirstOrDefault(x => x.IsValidTarget(E.Range));
45 | if (etraget == null)
46 | {
47 | return;
48 | }
49 |
50 | E.Cast(GameObjects.Player.Position.Extend(Game.CursorPos, GameObjects.Player.BoundingRadius));
51 | }
52 | }
53 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Ezreal/Modes/Automatic.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EnsoulSharp.SDK.MenuUI;
4 | using EzAIO.Bases;
5 |
6 | namespace EzAIO.Champions.Ezreal.Modes
7 | {
8 | using static Ezreal;
9 | using static ChampionBases;
10 | class Automatic
11 | {
12 | internal static void CastQ()
13 | {
14 | if (!mainMenu["Automatic"].GetValue("q").Enabled || !Q.IsReady())
15 | {
16 | return;
17 | }
18 | if (mainMenu["Automatic"].GetValue("q").Value >= GameObjects.Player.ManaPercent)
19 | {
20 | return;
21 | }
22 |
23 | var qtarget = Q.GetTarget();
24 | if (qtarget == null)
25 | {
26 | return;
27 | }
28 |
29 | var qinput = Q.GetPrediction(qtarget);
30 | if (qinput.Hitchance >= HitChance.High && Q.IsInRange(qinput.CastPosition))
31 | {
32 | Q.Cast(qinput.CastPosition);
33 | }
34 | }
35 |
36 | internal static void OnImmobile()
37 | {
38 | if (!mainMenu["Automatic"].GetValue("immobile").Enabled)
39 | {
40 | return;
41 | }
42 |
43 | var target = GameObjects.EnemyHeroes.FirstOrDefault(x =>
44 | x.IsValidTarget(mainMenu["Automatic"].GetValue("rRange").Value) &&
45 | x.IsStunned);
46 | if (target == null)
47 | {
48 | return;
49 | }
50 | R.Cast(target.Position);
51 | }
52 | }
53 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Ashe/Modes/Harass.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using System.Threading;
3 | using EnsoulSharp;
4 | using EnsoulSharp.SDK;
5 | using EzAIO.Bases;
6 | using static EzAIO.Champions.Ashe.Configs;
7 | using static EzAIO.Champions.Ashe.Ashe;
8 | namespace EzAIO.Champions.Ashe.Modes
9 | {
10 | using static ChampionBases;
11 | static class Harass
12 | {
13 | public static void CastQ()
14 | {
15 | if (!HarassMenu.QSliderButton.Enabled)
16 | {
17 | return;
18 | }
19 |
20 | if (HarassMenu.QSliderButton.Value >= Player.ManaPercent)
21 | {
22 | return;
23 | }
24 |
25 | var qtarget = Q.GetTarget();
26 | if (qtarget == null)
27 | {
28 | return;
29 | }
30 |
31 | Q.Cast();
32 | }
33 |
34 | public static void CastW()
35 | {
36 | if (!HarassMenu.WSliderButton.Enabled)
37 | {
38 | return;
39 | }
40 |
41 | if (HarassMenu.WSliderButton.Value >= Player.ManaPercent)
42 | {
43 | return;
44 | }
45 |
46 | foreach (var target in GameObjects.EnemyHeroes.Where(x=>x.IsValidTarget(W.Range)))
47 | {
48 | if (target == null)
49 | {
50 | return;
51 | }
52 |
53 | var winput = W.GetPrediction(target);
54 | if (winput.Hitchance >= HitChance.High && W.IsInRange(winput.CastPosition))
55 | {
56 | W.Cast(winput.CastPosition);
57 | }
58 | }
59 | }
60 | }
61 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Lucian/Extension.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp;
2 | using EnsoulSharp.SDK;
3 | using static EzAIO.Champions.Lucian.Lucian;
4 | namespace EzAIO.Champions.Lucian
5 | {
6 | using static Configs;
7 | static class Extension
8 | {
9 | public static bool IsCulling()
10 | {
11 | return GameObjects.Player.HasBuff("LucianR");
12 | }
13 |
14 | public static bool HasPassive()
15 | {
16 | return GameObjects.Player.HasBuff("LucianPassiveBuff");
17 | }
18 |
19 | public static Geometry.Rectangle QRectangle(AIBaseClient unit)
20 | {
21 | return new Geometry.Rectangle(GameObjects.Player.Position,
22 | GameObjects.Player.Position.Extend(unit.Position, ExtendedQ.Range),
23 | ExtendedQ.Width);
24 | }
25 |
26 | public static bool CanCastE(AttackableUnit target)
27 | {
28 | if (GameObjects.Player.Distance(Game.CursorPos) <= GameObjects.Player.GetRealAutoAttackRange() &&
29 | MiscellaneousMenu.OnlyEifMouseOutAARangeBool.Enabled)
30 | {
31 | return false;
32 | }
33 |
34 | var posAfterE = GameObjects.Player.Position.Extend(Game.CursorPos, 300f);
35 | if (posAfterE.Distance(target) > GameObjects.Player.GetRealAutoAttackRange(target) &&
36 | MiscellaneousMenu.NoOutAARangeBool.Enabled)
37 | {
38 | return false;
39 | }
40 |
41 | if (posAfterE.IsUnderEnemyTurret() &&
42 | MiscellaneousMenu.NoTurret.Enabled)
43 | {
44 | return false;
45 | }
46 |
47 | return true;
48 | }
49 | }
50 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Jhin/Modes/Jungleclear.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EzAIO.Bases;
5 | using static EzAIO.Champions.Jhin.Configs;
6 | using static EzAIO.Champions.Jhin.Jhin;
7 |
8 | namespace EzAIO.Champions.Jhin.Modes
9 | {
10 | using static ChampionBases;
11 | static class Jungleclear
12 | {
13 | public static void CastE(AfterAttackEventArgs args)
14 | {
15 | if (!JungleclearMenu.ESliderButton.Enabled)
16 | {
17 | return;
18 | }
19 |
20 | if (JungleclearMenu.ESliderButton.Value >= Player.ManaPercent)
21 | {
22 | return;
23 | }
24 |
25 | var target = args.Target as AIMinionClient;
26 | if ((target.GetJungleType() & JungleType.Large) == 0)
27 | {
28 | return;
29 | }
30 | E.Cast(target);
31 | }
32 |
33 | public static void CastQ(BeforeAttackEventArgs args)
34 | {
35 | if (!JungleclearMenu.QSliderButton.Enabled)
36 | {
37 | return;
38 | }
39 |
40 | if (JungleclearMenu.QSliderButton.Value >= Player.ManaPercent)
41 | {
42 | return;
43 | }
44 |
45 | Q.CastOnUnit(args.Target);
46 | }
47 |
48 | public static void CastQ(AfterAttackEventArgs args)
49 | {
50 | if (!JungleclearMenu.QSliderButton.Enabled)
51 | {
52 | return;
53 | }
54 |
55 | if (JungleclearMenu.QSliderButton.Value >= Player.ManaPercent)
56 | {
57 | return;
58 | }
59 |
60 | Q.CastOnUnit(args.Target);
61 | }
62 | }
63 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Vayne/Damage.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EzAIO.Bases;
5 |
6 | namespace EzAIO.Champions.Vayne
7 | {
8 | using static ChampionBases;
9 | class Damage
10 | {
11 | private static readonly float[] QBaseDamage = {0f, .6f, .65f, .7f, .75f, .8f, .8f};
12 | private static readonly float[] WBaseDamage = {0f, .04f, .065f, .09f, .115f, .14f, .14f};
13 | private static readonly float[] WTrueDamage = {0f, 50f, 65f, 80f, 95f, 110f, 110f};
14 | private static readonly float[] EBaseDamage = {0f, 50f, 85f, 120f, 155f, 190f, 190f};
15 |
16 | public static float QDamage(AIBaseClient target)
17 | {
18 | var qLevel = Q.Level;
19 | var qBaseDamage = QBaseDamage[qLevel] * GameObjects.Player.TotalAttackDamage;
20 | return (float) GameObjects.Player.CalculateDamage(target, DamageType.Physical, qBaseDamage);
21 | }
22 |
23 | public static float WDamage(AIBaseClient target)
24 | {
25 | var wLevel = W.Level;
26 | var wTrueDamage = WTrueDamage[wLevel];
27 | var wBaseDamage = WBaseDamage[wLevel] * target.MaxHealth;
28 | if (target is AIMinionClient jungle && jungle.IsJungle())
29 | {
30 | return Math.Max(wTrueDamage, Math.Min(200, wBaseDamage));
31 | }
32 | return Math.Max(wTrueDamage, wBaseDamage);
33 | }
34 |
35 | public static float EDamage(AIBaseClient target)
36 | {
37 | var eLevel = E.Level;
38 | var eBaseDamage = EBaseDamage[eLevel] + .5f * GameObjects.Player.GetBonusPhysicalDamage();
39 | return (float) GameObjects.Player.CalculateDamage(target, DamageType.Physical, eBaseDamage);
40 | }
41 | }
42 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Tristana/Modes/Structureclear.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | using static EzAIO.Champions.Tristana.Configs;
5 | using static EzAIO.Champions.Tristana.Tristana;
6 | namespace EzAIO.Champions.Tristana.Modes
7 | {
8 | using static ChampionBases;
9 | static class Structureclear
10 | {
11 | public static void Cast(BeforeAttackEventArgs args)
12 | {
13 | if (StructureclearMenu.NoEnemiesRange.Enabled &&
14 | (Player.CountEnemyHeroesInRange(Player.GetRealAutoAttackRange()) >=
15 | StructureclearMenu.NoEnemiesRange.Value))
16 | {
17 | return;
18 | }
19 |
20 | var turret = GameObjects.EnemyTurrets.FirstOrDefault(x => x.IsValidTarget(Player.GetRealAutoAttackRange()));
21 | if (turret == null)
22 | {
23 | return;
24 | }
25 | CastQ();
26 | CastE(args);
27 | }
28 |
29 | private static void CastQ()
30 | {
31 | if (!StructureclearMenu.QSliderButton.Enabled)
32 | {
33 | return;
34 | }
35 |
36 | if (LaneclearMenu.QSliderButton.Value >= Player.ManaPercent)
37 | {
38 | return;
39 | }
40 |
41 | Q.Cast();
42 | }
43 |
44 | private static void CastE(BeforeAttackEventArgs args)
45 | {
46 | if (!StructureclearMenu.ESliderButton.Enabled)
47 | {
48 | return;
49 | }
50 |
51 | if (StructureclearMenu.ESliderButton.Value >= Player.ManaPercent)
52 | {
53 | return;
54 | }
55 |
56 | E.CastOnUnit(args.Target);
57 | }
58 | }
59 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Jhin/Extension.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using EnsoulSharp;
5 | using EnsoulSharp.SDK;
6 | using SharpDX;
7 | using static EzAIO.Champions.Jhin.Jhin;
8 | using static EzAIO.Bases.ChampionBases;
9 | using static EnsoulSharp.SDK.Geometry;
10 | namespace EzAIO.Champions.Jhin
11 | {
12 | static class Extension
13 | {
14 | public static Vector3 End = Vector3.Zero;
15 | public static int UltimateShootsCount;
16 |
17 | public static bool Has4Shot()
18 | {
19 | return Player.HasBuff("jhinpassiveattackbuff");
20 | }
21 |
22 | public static bool IsMarked(this AIBaseClient target)
23 | {
24 | return target.HasBuff("jhinespotteddebuff");
25 | }
26 |
27 | public static bool RHBCAU(this AIBaseClient target)
28 | {
29 | return target.HasBuff("jhinetrapslow");
30 | }
31 |
32 | public static bool HasUltimate4Shoot()
33 | {
34 | return UltimateShootsCount == 3;
35 | }
36 |
37 | public static bool IsReloading()
38 | {
39 | return Player.HasBuff("JhinPassiveReload");
40 | }
41 |
42 | public static bool IsUltShooting()
43 | {
44 | return R.Name.Equals("JhinRShot");
45 | }
46 |
47 | public static Sector RCone()
48 | {
49 | return new Sector(Player.Position, End, (float) (60f * Math.PI / 180f), R.Range, 2);
50 | }
51 |
52 | public static IEnumerable EnemiesInsideCone()
53 | {
54 | if (!IsUltShooting())
55 | {
56 | return null;
57 | }
58 | return GameObjects.EnemyHeroes.Where(x => x.IsValidTarget(R.Range) && RCone().IsInside(x)).ToList();
59 | }
60 | }
61 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Tristana/Damage.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | using static EzAIO.Champions.Tristana.Tristana;
5 | using static EzAIO.Champions.Tristana.Extension;
6 | namespace EzAIO.Champions.Tristana
7 | {
8 | using static ChampionBases;
9 | class Damage
10 | {
11 | private static readonly float[] EBaseDamage = {0f, 70f, 80f, 90f, 100f, 110f, 110f};
12 | private static readonly float[] EMultiplier = {0f, .5f, .75f, 1f, 1.25f, 1.5f, 1.5f};
13 | private static readonly float[] EStack = {0f, 21f, 24f, 27f, 30f, 33f, 33f};
14 | private static readonly float[] EStackMultiplier = {0f, .15f, .225f, .30f, .375f, .45f, .45f};
15 | private static readonly float[] RBaseDamage = {0f, 300f, 400f, 500f, 500f};
16 |
17 | public static float EDamage(AIBaseClient target)
18 | {
19 | if (!target.IsCharged())
20 | {
21 | return 0;
22 | }
23 |
24 | var eLevel = E.Level;
25 | var eBaseDamage = EBaseDamage[eLevel] +
26 | EMultiplier[eLevel] * Player.GetBonusPhysicalDamage() +
27 | .5f * Player.TotalMagicalDamage;
28 | var eBonusDamage = EStack[eLevel] + EStackMultiplier[eLevel] + Player.TotalAttackDamage +
29 | .15 * Player.TotalMagicalDamage;
30 | var total = eBaseDamage + eBonusDamage * target.EBuffCount();
31 | return (float) Player.CalculateDamage(target, DamageType.Physical, total);
32 | }
33 |
34 | public static float RDamage(AIBaseClient target)
35 | {
36 | var rLevel = R.Level;
37 | var rBaseDamage = RBaseDamage[rLevel] + Player.TotalMagicalDamage;
38 | return (float) Player.CalculateDamage(target, DamageType.Magical, rBaseDamage);
39 | }
40 |
41 | }
42 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Kalista/Damage.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | namespace EzAIO.Champions.Kalista
5 | {
6 | using static ChampionBases;
7 | class Damage
8 | {
9 | private static readonly float[] QBaseDamage = {0, 20, 85, 150, 215, 280, 280};
10 | private static readonly float[] EBaseDamage = {0, 20, 30, 40, 50, 60, 60};
11 | private static readonly float[] EStackBaseDamage = {0, 10, 14, 19, 25, 32, 32};
12 | private static readonly float[] EStackMultiplierDamage = {0, .198f, .23748f, .27498f, .31248f, .34988f};
13 |
14 | public static float QDamage(AIBaseClient target)
15 | {
16 | var qLevel = Q.Level;
17 | var qBaseDamage = QBaseDamage[qLevel] + 1f * GameObjects.Player.TotalAttackDamage;
18 | return (float) GameObjects.Player.CalculateDamage(target, DamageType.Physical, qBaseDamage);
19 | }
20 |
21 | public static float EDamage(AIBaseClient target)
22 | {
23 | var eLevel = E.Level;
24 | var eBaseDamage = EBaseDamage[eLevel] + .6 * GameObjects.Player.TotalAttackDamage;
25 | var eStackDamage = EStackBaseDamage[eLevel] +
26 | EStackMultiplierDamage[eLevel] * GameObjects.Player.TotalAttackDamage;
27 | var eStacksOnTarget = target.GetBuffCount("kalistaexpungemarker");
28 | if (eStacksOnTarget == 0)
29 | {
30 | return 0;
31 | }
32 |
33 | var total = eBaseDamage + eStackDamage * (eStacksOnTarget - 1);
34 | if (target is AIMinionClient minion && (minion.GetJungleType() & JungleType.Legendary) != 0)
35 | {
36 | total /= 2;
37 | }
38 |
39 | return (float) GameObjects.Player.CalculateDamage(target, DamageType.Physical, total);
40 | }
41 | }
42 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Jinx/Extension.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using static EzAIO.Champions.Jinx.Jinx;
5 | using static EzAIO.Bases.ChampionBases;
6 |
7 | namespace EzAIO.Champions.Jinx
8 | {
9 | static class Extension
10 | {
11 | public static float RocketRange
12 | => MinigunRange + 50 + 25 * Q.Level;
13 |
14 | private static float MinigunRange
15 | => 595;
16 | public static bool ActivatedRockets { get; set; }
17 | public static bool ActivatedPassive { get; set; }
18 |
19 | public static bool Swap(AIBaseClient target)
20 | {
21 | return SwapToMinigun(target) || SwapToRockets(target);
22 | }
23 |
24 | private static bool SwapToMinigun(AIBaseClient target)
25 | {
26 | return ActivatedRockets && target.DistanceToPlayer() < MinigunRange;
27 | }
28 |
29 | private static bool SwapToRockets(AIBaseClient target)
30 | {
31 | return !ActivatedRockets &&
32 | (target.DistanceToPlayer() < RocketRange && target.CountEnemyHeroesInRange(150) >= 2 ||
33 | target.DistanceToPlayer() > MinigunRange && target.DistanceToPlayer() < RocketRange);
34 | }
35 | public static float RocketDamage(AIBaseClient target)
36 | {
37 | return Player.GetRealAutoAttackRange(target) * 1.1f;
38 | }
39 |
40 | public static int KillableMinionsCount(AIMinionClient minions)
41 | {
42 | return GameObjects.EnemyMinions.Count(x => x.IsValidTarget(RocketRange) &&
43 | x.Distance(minions) <= 150 &&
44 | RocketRange >= x.Health -
45 | Player.CalculateDamage(x, DamageType.Physical, 1));
46 | }
47 | }
48 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Jinx/Modes/Jungleclear.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | using static EzAIO.Champions.Jinx.Configs;
5 | using static EzAIO.Champions.Jinx.Jinx;
6 | namespace EzAIO.Champions.Jinx.Modes
7 | {
8 | using static ChampionBases;
9 | static class Jungleclear
10 | {
11 | public static void CastQ()
12 | {
13 | if (!JungleclearMenu.QSliderButton.Enabled)
14 | {
15 | return;
16 | }
17 | if (JungleclearMenu.QSliderButton.Value >= Player.ManaPercent)
18 | {
19 | if (Extension.ActivatedRockets)
20 | {
21 | Q.Cast();
22 | }
23 | return;
24 | }
25 |
26 | var mob = GameObjects.Jungle.FirstOrDefault(x => x.IsValidTarget(Extension.RocketRange) );
27 | if (mob == null)
28 | {
29 | return;
30 | }
31 |
32 | if (Extension.Swap(mob))
33 | {
34 | Q.Cast();
35 | }
36 | }
37 |
38 | public static void CastW()
39 | {
40 | if (!JungleclearMenu.WSliderButton.Enabled)
41 | {
42 | return;
43 | }
44 |
45 | if (JungleclearMenu.WSliderButton.Value >= Player.ManaPercent)
46 | {
47 | return;
48 | }
49 |
50 | var mob = GameObjects.Jungle.FirstOrDefault(x => x.IsValidTarget(W.Range) && (x.GetJungleType() & JungleType.Legendary) != 0);
51 | if (mob == null)
52 | {
53 | return;
54 | }
55 |
56 | var winput = W.GetPrediction(mob);
57 | if (winput.Hitchance >= HitChance.High && W.IsInRange(winput.CastPosition))
58 | {
59 | W.Cast(winput.CastPosition);
60 | }
61 | }
62 | }
63 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Jhin/Modes/Extra.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EzAIO.Bases;
5 | using EzAIO.Extras;
6 | using static EzAIO.Champions.Jhin.Damage;
7 | using static EzAIO.Champions.Jhin.Configs;
8 | using static EzAIO.Champions.Jhin.Jhin;
9 | using static EzAIO.Extras.Helps;
10 | namespace EzAIO.Champions.Jhin.Modes
11 | {
12 | using static ChampionBases;
13 | static class Extra
14 | {
15 | public static void CastQ(BeforeAttackEventArgs args)
16 | {
17 | var target = args.Target as AIBaseClient;
18 | if (!Extension.Has4Shot() || target.Health <= Player.GetAutoAttackDamage(target))
19 | {
20 | return;
21 | }
22 |
23 | if (!ComboMenu.QBool.Enabled)
24 | {
25 | return;
26 | }
27 |
28 | Q.CastOnUnit(target);
29 | }
30 |
31 | public static void CastQ(AfterAttackEventArgs args)
32 | {
33 | if (!ComboMenu.QBool.Enabled)
34 | {
35 | return;
36 | }
37 |
38 | Q.CastOnUnit(args.Target);
39 | }
40 |
41 | public static void CastE()
42 | {
43 | if (!ComboMenu.EBool.Enabled)
44 | {
45 | return;
46 | }
47 | if (ComboMenu.EReloadBool.Enabled || !Extension.Has4Shot())
48 | {
49 | return;
50 | }
51 |
52 | var target = GameObjects.EnemyHeroes.FirstOrDefault(x=>x.IsValidTarget(E.Range));
53 |
54 | if (target == null)
55 | {
56 | return;
57 | }
58 | var einput = E.GetPrediction(target);
59 | if (einput.Hitchance >= HitChance.High && E.IsInRange(einput.CastPosition))
60 | {
61 | E.Cast(einput.CastPosition);
62 | }
63 | }
64 | }
65 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Twitch/Modes/Harass.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp.SDK;
2 | using EzAIO.Bases;
3 | using static EzAIO.Champions.Twitch.Configs;
4 | namespace EzAIO.Champions.Twitch.Modes
5 | {
6 | using static ChampionBases;
7 | static class Harass
8 | {
9 | public static void CastW()
10 | {
11 | if (!HarassMenu.WSliderButton.Enabled || !W.IsReady())
12 | {
13 | return;
14 | }
15 |
16 | if (HarassMenu.WSliderButton.Value >= GameObjects.Player.ManaPercent)
17 | {
18 | return;
19 | }
20 |
21 | var wtarget = W.GetTarget();
22 | if (wtarget == null)
23 | {
24 | return;
25 | }
26 |
27 | var winput = W.GetPrediction(wtarget);
28 | if (winput.Hitchance >= HitChance.High)
29 | {
30 | W.Cast(winput.UnitPosition);
31 | }
32 | }
33 |
34 | public static void CastE()
35 | {
36 | if (!HarassMenu.ESliderButton.Enabled || !E.IsReady())
37 | {
38 | return;
39 | }
40 |
41 | if (HarassMenu.ESliderButton.Value >= GameObjects.Player.ManaPercent)
42 | {
43 | return;
44 | }
45 |
46 | var etarget = E.GetTarget();
47 | if (etarget == null || !Extension.HasPoisonEffect(etarget, E.Range))
48 | {
49 | return;
50 | }
51 |
52 | if (HarassMenu.EBool.Enabled)
53 | {
54 | if (etarget.DistanceToPlayer() >= GameObjects.Player.GetCurrentAutoAttackRange())
55 | {
56 | E.Cast();
57 | }
58 | }
59 | else
60 | {
61 | E.Cast();
62 | }
63 |
64 | }
65 | }
66 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Ezreal/Modes/Killsteal.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EnsoulSharp.SDK.MenuUI;
5 | using EzAIO.Bases;
6 | namespace EzAIO.Champions.Ezreal.Modes
7 | {
8 | using static Damage;
9 | using static Ezreal;
10 | using static ChampionBases;
11 |
12 | static class Killsteal
13 | {
14 | internal static void CastQ()
15 | {
16 | if (!mainMenu["Killsteal"].GetValue("q").Enabled || !Q.IsReady())
17 | {
18 | return;
19 | }
20 |
21 |
22 | foreach (var target in GameObjects.EnemyHeroes.Where(x=>
23 | x.IsValidTarget(Q.Range) &&
24 | QDamage(x)>= x.Health-GameObjects.Player.CalculateDamage(x,DamageType.Physical,1) &&
25 | !x.IsInvulnerable))
26 | {
27 | var qinput = Q.GetPrediction(target);
28 | if (qinput.Hitchance >= HitChance.High)
29 | {
30 | Q.Cast(qinput.CastPosition);
31 | }
32 |
33 | }
34 | }
35 | internal static void CastR()
36 | {
37 | if (!mainMenu["Killsteal"].GetValue("r").Enabled || !Q.IsReady())
38 | {
39 | return;
40 | }
41 | foreach (var target in GameObjects.EnemyHeroes.Where(x=>
42 | x.IsValidTarget(mainMenu["Automatic"].GetValue("rRange").Value) &&
43 | RDamage(x)>= x.Health-GameObjects.Player.CalculateDamage(x,DamageType.Magical,1) &&
44 | !x.IsInvulnerable))
45 | {
46 | var rinput = R.GetPrediction(target);
47 | if (rinput.Hitchance >= HitChance.High)
48 | {
49 | R.Cast(rinput.CastPosition);
50 | }
51 |
52 | }
53 | }
54 | }
55 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Jinx/Modes/Harass.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp.SDK;
2 | using EzAIO.Bases;
3 | using static EzAIO.Champions.Jinx.Configs;
4 | using static EzAIO.Champions.Jinx.Jinx;
5 | namespace EzAIO.Champions.Jinx.Modes
6 | {
7 | using static ChampionBases;
8 | static class Harass
9 | {
10 | public static void CastQ()
11 | {
12 | if (!HarassMenu.QSliderButton.Enabled)
13 | {
14 | return;
15 | }
16 |
17 | if (HarassMenu.QSliderButton.Value > Player.ManaPercent)
18 | {
19 | if (Extension.ActivatedRockets)
20 | {
21 | Q.Cast();
22 | }
23 | return;
24 | }
25 |
26 | var target = TargetSelector.GetTarget(Extension.RocketRange,DamageType.Physical);
27 | if (target == null)
28 | {
29 | return;
30 | }
31 |
32 | if (Extension.Swap(target))
33 | {
34 | Q.Cast();
35 | }
36 | }
37 |
38 | public static void CastW()
39 | {
40 | if (!HarassMenu.WSliderButton.Enabled)
41 | {
42 | return;
43 | }
44 |
45 | if (HarassMenu.WSliderButton.Value >= Player.ManaPercent)
46 | {
47 | return;
48 | }
49 |
50 | if (HarassMenu.EnemiesBool.Enabled && Player.CountEnemyHeroesInRange(Extension.RocketRange) > 0)
51 | {
52 | return;
53 | }
54 |
55 | var target = W.GetTarget();
56 | if (target == null)
57 | {
58 | return;
59 | }
60 |
61 | var winput = W.GetPrediction(target);
62 | if (winput.Hitchance >= HitChance.High && W.IsInRange(winput.CastPosition))
63 | {
64 | W.Cast(winput.CastPosition);
65 | }
66 | }
67 | }
68 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Twitch/Modes/Jungleclear.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | using static EzAIO.Champions.Twitch.Damage;
5 | using static EzAIO.Champions.Twitch.Configs;
6 | namespace EzAIO.Champions.Twitch.Modes
7 | {
8 | using static ChampionBases;
9 | static class Jungleclear
10 | {
11 | public static void CastW()
12 | {
13 | if (!JungleclearMenu.WSliderButton.Enabled || !W.IsReady())
14 | {
15 | return;
16 | }
17 |
18 | if (JungleclearMenu.WSliderButton.Value >= GameObjects.Player.ManaPercent)
19 | {
20 | return;
21 | }
22 |
23 | var wtarget = GameObjects.Jungle.FirstOrDefault(x => x.IsValidTarget(W.Range));
24 | if (wtarget == null)
25 | {
26 | return;
27 | }
28 |
29 | var winput = W.GetPrediction(wtarget);
30 | if (winput.Hitchance >= HitChance.High)
31 | {
32 | W.Cast(winput.UnitPosition);
33 | }
34 | }
35 |
36 | public static void CastE()
37 | {
38 | if (!JungleclearMenu.ESliderButton.Enabled || !E.IsReady())
39 | {
40 | return;
41 | }
42 |
43 | if (JungleclearMenu.ESliderButton.Value >= GameObjects.Player.ManaPercent)
44 | {
45 | return;
46 | }
47 |
48 | var etarget = GameObjects.Jungle.FirstOrDefault(x=>x.IsValidTarget(E.Range));
49 | if (etarget == null || !Extension.HasPoisonEffect(etarget,E.Range))
50 | {
51 | return;
52 | }
53 |
54 | if (EDamage(etarget) >= etarget.Health - GameObjects.Player.CalculateDamage(etarget, DamageType.Mixed, 1))
55 | {
56 | E.Cast();
57 | }
58 | }
59 | }
60 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Kaisa/Modes/Combo.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp.SDK;
2 | using EzAIO.Bases;
3 | using static EzAIO.Champions.Kaisa.Configs;
4 | namespace EzAIO.Champions.Kaisa.Modes
5 | {
6 | using static ChampionBases;
7 | static class Combo
8 | {
9 | public static void CastQ()
10 | {
11 | if (!ComboMenu.QBool.Enabled)
12 | {
13 | return;
14 | }
15 |
16 | var qtarget = TargetSelector.GetTarget(Q.Range,DamageType.Physical);
17 | if (qtarget == null)
18 | {
19 | return;
20 | }
21 |
22 | Q.Cast();
23 | }
24 |
25 | public static void CastW()
26 | {
27 | if (!ComboMenu.WSliderButton.Enabled || ComboMenu.WSliderButton.Value == 2)
28 | {
29 | return;
30 | }
31 |
32 | var wtarget = TargetSelector.GetTarget(W.Range,DamageType.Mixed);
33 | if (wtarget == null)
34 | {
35 | return;
36 | }
37 |
38 | if (ComboMenu.WRange.Enabled && wtarget.DistanceToPlayer() <= ComboMenu.WRange.Value)
39 | {
40 | return;
41 | }
42 |
43 | var winput = W.GetPrediction(wtarget);
44 | if (winput.Hitchance >= HitChance.High)
45 | {
46 | W.Cast(winput.CastPosition);
47 | }
48 | }
49 |
50 | public static void CastE()
51 | {
52 | if (!ComboMenu.EBool.Enabled)
53 | {
54 | return;
55 | }
56 |
57 | if (MiscellaneousMenu.EBool.Enabled && !Extension.EUpgraded())
58 | {
59 | return;
60 | }
61 |
62 | var target = TargetSelector.GetTarget(Q.Range,DamageType.Physical);
63 | if (target == null)
64 | {
65 | return;
66 | }
67 |
68 | E.Cast();
69 | }
70 | }
71 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Kalista/Modes/Automatic.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | using SharpDX;
5 | using static EzAIO.Champions.Kalista.Extension;
6 | namespace EzAIO.Champions.Kalista.Modes
7 | {
8 | using static Configs;
9 | using static Kalista;
10 | using static ChampionBases;
11 | static class Automatic
12 | {
13 | public static void CastR()
14 | {
15 | if (!AutomaticMenu.RAllysave.Enabled || !R.IsReady())
16 | {
17 | return;
18 | }
19 | var allyR = GameObjects.AllyHeroes.FirstOrDefault(x => HasRBuff(x, R.Range));
20 | if (allyR == null)
21 | {
22 | return;
23 | }
24 |
25 | if (allyR.DistanceToPlayer() <= R.Range && allyR.HealthPercent <= AutomaticMenu.RAllysave.Value)
26 | {
27 | R.Cast();
28 | }
29 | }
30 |
31 | public static void CastW()
32 | {
33 | if (!W.IsReady() || GameObjects.Player.IsRecalling())
34 | {
35 | return;
36 | }
37 |
38 | var DrakePos = new Vector3(9866f, 4414f, -71);
39 | var Baronpos = new Vector3(5007f, 10471f, -71);
40 | if (GameObjects.Player.Position.CountEnemyHeroesInRange(2000f) <= 0)
41 | {
42 | if (AutomaticMenu.WDrake.Enabled)
43 | {
44 | if (GameObjects.Player.Distance(DrakePos) <= W.Range)
45 | {
46 | W.Cast(DrakePos);
47 | }
48 | }
49 |
50 | if (AutomaticMenu.WBaron.Enabled)
51 | {
52 | if (GameObjects.Player.Distance(Baronpos) <= W.Range)
53 | {
54 | W.Cast(Baronpos);
55 | }
56 | }
57 | }
58 | }
59 | }
60 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Ezreal/Modes/Structureclear.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EnsoulSharp.SDK.MenuUI;
5 | using EzAIO.Bases;
6 |
7 | namespace EzAIO.Champions.Ezreal.Modes
8 | {
9 | using static Ezreal;
10 | using static ChampionBases;
11 |
12 | class Structureclear
13 | {
14 | internal static void CastW()
15 | {
16 | if (!mainMenu["structure"].GetValue("w").Enabled || !W.IsReady())
17 | {
18 | return;
19 | }
20 |
21 | if (mainMenu["structure"].GetValue("w").Value >= GameObjects.Player.ManaPercent)
22 | {
23 | return;
24 | }
25 |
26 | var safecheck = mainMenu["structure"].GetValue("safe");
27 | var overrideCheck = mainMenu["structure"].GetValue("allies");
28 | var alliesCount = GameObjects.AllyHeroes.Count(x => x.IsValidTarget(900, true) && !x.IsMe);
29 |
30 | if (safecheck.Enabled && GameObjects.Player.CountEnemyHeroesInRange(safecheck.Value) != 0 &&
31 | (!overrideCheck.Enabled || alliesCount < overrideCheck.Value))
32 | {
33 | return;
34 | }
35 |
36 | if (safecheck.Enabled && GameObjects.Player.CountEnemyHeroesInRange(safecheck.Value) != 0 &&
37 | overrideCheck.Enabled && alliesCount < overrideCheck.Value)
38 | {
39 | return;
40 | }
41 |
42 | var wtarget = GameObjects.EnemyTurrets.FirstOrDefault(x => x.IsValidTarget(W.Range));
43 | if (wtarget == null)
44 | {
45 | return;
46 | }
47 |
48 | if (!GameObjects.Player.InAutoAttackRange(wtarget))
49 | {
50 | return;
51 | }
52 |
53 | W.Cast(wtarget.Position);
54 | }
55 |
56 | }
57 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Kalista/Modes/Jungleclear.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | namespace EzAIO.Champions.Kalista.Modes
5 | {
6 | using static ChampionBases;
7 | using static Damage;
8 | static class Jungleclear
9 | {
10 | public static void CastQ()
11 | {
12 | if (!Configs.Jungleclear.QSliderButton.Enabled || !Q.IsReady())
13 | {
14 | return;
15 | }
16 |
17 | if (Configs.Jungleclear.QSliderButton.Value >= GameObjects.Player.ManaPercent)
18 | {
19 | return;
20 | }
21 | if (GameObjects.Player.IsDashing())
22 | {
23 | return;
24 | }
25 |
26 | var qtarget = GameObjects.Jungle.FirstOrDefault(X => X.IsValidTarget(Q.Range));
27 | if (qtarget == null)
28 | {
29 | return;
30 | }
31 |
32 | var qinput = Q.GetPrediction(qtarget);
33 | if (qinput.Hitchance >= HitChance.High)
34 | {
35 | Q.Cast(qinput.CastPosition);
36 | }
37 | }
38 |
39 | public static void CastE()
40 | {
41 | if (!Configs.Jungleclear.ESliderButton.Enabled || !E.IsReady())
42 | {
43 | return;
44 | }
45 |
46 | if (Configs.Jungleclear.ESliderButton.Value >= GameObjects.Player.ManaPercent)
47 | {
48 | return;
49 | }
50 |
51 | if (GameObjects.Jungle.Any(x => x.IsValidTarget(E.Range) &&
52 | Extension.HasRendBuff(x, E.Range) &&
53 | EDamage(x) >= x.Health -
54 | GameObjects.Player.CalculateDamage(x, DamageType.Physical, 1)))
55 | {
56 | E.Cast();
57 | }
58 |
59 | }
60 | }
61 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Lucian/Modes/Laneclear.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | using static EzAIO.Champions.Lucian.Configs;
5 | namespace EzAIO.Champions.Lucian.Modes
6 | {
7 | using static ChampionBases;
8 | static class Laneclear
9 | {
10 | public static void CastQ()
11 | {
12 | if (!LaneclearMenu.QSlider.Enabled)
13 | {
14 | return;
15 | }
16 |
17 | if (LaneclearMenu.QSlider.Value >= GameObjects.Player.ManaPercent)
18 | {
19 | return;
20 | }
21 |
22 | var minions = GameObjects.EnemyMinions.Where(x => x.IsValidTarget(Q.Range) &&
23 | x.DistanceToPlayer() <= Q.Range).ToList();
24 | foreach (var minion in minions)
25 | {
26 | if (GameObjects.EnemyMinions.Count(x => Extension.QRectangle(minion).IsInside(x.Position)) >=
27 | LaneclearMenu.QCount.Value)
28 | {
29 | Q.CastOnUnit(minion);
30 | }
31 | }
32 | }
33 |
34 | public static void CastW()
35 | {
36 | if (!LaneclearMenu.WSlider.Enabled)
37 | {
38 | return;
39 | }
40 |
41 | if (LaneclearMenu.WSlider.Value >= GameObjects.Player.ManaPercent)
42 | {
43 | return;
44 | }
45 |
46 | var minions = GameObjects.EnemyMinions.Where(x => x.IsValidTarget(W.Range) &&
47 | x.DistanceToPlayer() <= W.Range).ToList();
48 | var farmLocation = W.GetCircularFarmLocation(minions, W.Width);
49 | if (farmLocation.MinionsHit < LaneclearMenu.WCount.Value)
50 | {
51 | return;
52 | }
53 |
54 | W.Cast(farmLocation.Position);
55 | }
56 | }
57 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Vayne/Modes/Automatic.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EzAIO.Bases;
5 | using static EzAIO.Champions.Vayne.Configs;
6 | namespace EzAIO.Champions.Vayne.Modes
7 | {
8 | using static ChampionBases;
9 | static class Automatic
10 | {
11 | public static void CastE()
12 | {
13 | if (!AutomaticMenu.EsSliderButton.Enabled)
14 | {
15 | return;
16 | }
17 |
18 | if (AutomaticMenu.EsSliderButton.Value <= GameObjects.Player.HealthPercent)
19 | {
20 | return;
21 | }
22 |
23 | var target = GameObjects.EnemyHeroes.Where(x => x.IsValidTarget(E.Range) &&
24 | x.IsMelee && !x.IsInvulnerable)
25 | .MaxBy(x => x.TotalAttackDamage);
26 |
27 | if (target == null)
28 | {
29 | return;
30 | }
31 |
32 | E.CastOnUnit(target);
33 |
34 | }
35 |
36 | public static void SemiE()
37 | {
38 | if (!ComboMenu.ESmiKeybind.Active || !E.IsReady())
39 | {
40 | return;
41 | }
42 |
43 | foreach (var target in GameObjects.EnemyHeroes.Where(x=>x.IsValidTarget(E.Range) &&
44 | x.Position.DistanceToPlayer()<550))
45 | {
46 | var pred = E.GetPrediction(target);
47 | for (var i = 40; i < 425; i += 125)
48 | {
49 | var flags = NavMesh.GetCollisionFlags(
50 | pred.UnitPosition.ToVector2().Extend(GameObjects.Player.Position.ToVector2(), -i).ToVector3());
51 | if (flags.HasFlag(CollisionFlags.Wall) || flags.HasFlag(CollisionFlags.Building))
52 | {
53 | E.CastOnUnit(target);
54 | }
55 | }
56 | }
57 | }
58 | }
59 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Ezreal/Modes/JungleClear.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EnsoulSharp.SDK.MenuUI;
5 | using EzAIO.Bases;
6 |
7 | namespace EzAIO.Champions.Ezreal.Modes
8 | {
9 | using static Ezreal;
10 | using static ChampionBases;
11 |
12 | class JungleClear
13 | {
14 | internal static void CastQ()
15 | {
16 | if (!mainMenu["Jungleclear"].GetValue("q").Enabled || !Q.IsReady())
17 | {
18 | return;
19 | }
20 | if (mainMenu["Jungleclear"].GetValue("q").Value >= GameObjects.Player.ManaPercent)
21 | {
22 | return;
23 | }
24 |
25 | var qtarget = GameObjects.Jungle.FirstOrDefault(x => x.IsValidTarget(Q.Range));
26 | if (qtarget== null)
27 | {
28 | return;
29 | }
30 |
31 | var qinput = Q.GetPrediction(qtarget);
32 | if (qinput.Hitchance >= HitChance.High)
33 | {
34 | Q.Cast(qinput.CastPosition);
35 | }
36 | }
37 |
38 | internal static void CastW()
39 | {
40 | if (!mainMenu["Jungleclear"].GetValue("w").Enabled || !W.IsReady())
41 | {
42 | return;
43 | }
44 | if (mainMenu["Jungleclear"].GetValue("w").Value >= GameObjects.Player.ManaPercent)
45 | {
46 | return;
47 | }
48 |
49 | var wtarget = GameObjects.JungleLegendary.FirstOrDefault(x => x.IsValidTarget(W.Range));
50 | if (wtarget == null)
51 | {
52 | return;
53 | }
54 | if(wtarget.Name.Contains("drake") ||
55 | wtarget.Name.Contains("baron") ||
56 | wtarget.Name.Contains("herald"))
57 | {
58 | return;
59 | }
60 | W.Cast(wtarget.Position);
61 | }
62 | }
63 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Draven/Modes/Laneclear.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | using static EzAIO.Champions.Draven.Configs;
5 | namespace EzAIO.Champions.Draven.Modes
6 | {
7 |
8 | using static ChampionBases;
9 | static class Laneclear
10 | {
11 | public static void CastQ()
12 | {
13 | if (!LaneclearMenu.QSliderButton.Enabled)
14 | {
15 | return;
16 | }
17 |
18 | if (Extension.GetNumberAxesActives() >= LaneclearMenu.QAxesSlider.Value)
19 | {
20 | return;
21 | }
22 |
23 | if (LaneclearMenu.QSliderButton.Value >= GameObjects.Player.ManaPercent)
24 | {
25 | return;
26 | }
27 |
28 | Q.Cast();
29 | }
30 |
31 | public static void CastW()
32 | {
33 | if (!LaneclearMenu.WSliderButton.Enabled)
34 | {
35 | return;
36 | }
37 |
38 | if (LaneclearMenu.WSliderButton.Value >= GameObjects.Player.ManaPercent)
39 | {
40 | return;
41 | }
42 |
43 | if (GameObjects.EnemyMinions.Count(x => x.IsValidTarget(E.Range)) < LaneclearMenu.WCountSlider.Value)
44 | {
45 | return;
46 | }
47 |
48 | W.Cast();
49 | }
50 |
51 | public static void CastE()
52 | {
53 | if (!LaneclearMenu.ESliderButton.Enabled)
54 | {
55 | return;
56 | }
57 |
58 | if (LaneclearMenu.ESliderButton.Value >= GameObjects.Player.ManaPercent)
59 | {
60 | return;
61 | }
62 |
63 | var minions = GameObjects.EnemyMinions.Where(x => x.IsValidTarget(E.Range));
64 | var farmLine = E.GetCircularFarmLocation(minions, E.Width);
65 | if (farmLine.MinionsHit < LaneclearMenu.ECountSlider.Value)
66 | {
67 | return;
68 | }
69 |
70 | E.Cast(farmLine.Position);
71 | }
72 | }
73 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Lucian/Damage.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | namespace EzAIO.Champions.Lucian
5 | {
6 | using static ChampionBases;
7 | class Damage
8 | {
9 | private static readonly float[] QBaseDamage = {0f, 95f, 130f, 165f, 200f, 235f, 235f};
10 | private static readonly float[] QMultiplier = {0f, .6f, .75f, .90f, 1.05f, 1.20f, 1.20f};
11 | private static readonly float[] WBaseDamage = {0f,.75f, 1.1f, 1.45f, 1.8f, 2.15f, 2.15f};
12 | private static readonly float[] RBaseDamage = {0f, 20f, 40f, 60f, 60f};
13 | private static readonly float[] RShots = {0, 22, 28, 34, 34};
14 |
15 | public static float QDamage(AIBaseClient target)
16 | {
17 | var qLevel = Q.Level;
18 | var qBaseDamage = QBaseDamage[qLevel] +
19 | QMultiplier[qLevel] + GameObjects.Player.GetBonusPhysicalDamage();
20 | return (float)GameObjects.Player.CalculateDamage(target, DamageType.Physical, qBaseDamage);
21 | }
22 |
23 | public static float WDamage(AIBaseClient target)
24 | {
25 | var wLevel = W.Level;
26 | var wBaseDamage = WBaseDamage[wLevel] +
27 | .9f * GameObjects.Player.TotalMagicalDamage;
28 | return (float)GameObjects.Player.CalculateDamage(target, DamageType.Magical, wBaseDamage);
29 | }
30 |
31 | public static float RDamage(AIBaseClient target)
32 | {
33 | var rLevel = R.Level;
34 | var rBaseDamage = RBaseDamage[rLevel] +
35 | .25f * GameObjects.Player.TotalAttackDamage +
36 | .1 + GameObjects.Player.TotalMagicalDamage;
37 | rBaseDamage *= RShots[rLevel];
38 | if (target is AIMinionClient minion && minion.IsMinion())
39 | {
40 | rBaseDamage *= 2;
41 | }
42 |
43 | return (float)GameObjects.Player.CalculateDamage(target, DamageType.Physical, rBaseDamage);
44 | }
45 | }
46 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Kaisa/Modes/Jungleclear.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EzAIO.Bases;
5 | using static EzAIO.Champions.Kaisa.Configs;
6 | namespace EzAIO.Champions.Kaisa.Modes
7 | {
8 | using static ChampionBases;
9 | static class Jungleclear
10 | {
11 | public static void CastQ()
12 | {
13 | if (!JungleclearMenu.QSliderButton.Enabled)
14 | {
15 | return;
16 | }
17 |
18 | if (JungleclearMenu.QSliderButton.Value >= GameObjects.Player.ManaPercent)
19 | {
20 | return;
21 | }
22 |
23 | if (GameObjects.Jungle.Any(x => x.IsValidTarget(Q.Range)))
24 | {
25 | Q.Cast();
26 | }
27 |
28 | }
29 |
30 | public static void CastW(AfterAttackEventArgs args)
31 | {
32 | if (!JungleclearMenu.WSliderButton.Enabled)
33 | {
34 | return;
35 | }
36 |
37 | if (JungleclearMenu.WSliderButton.Value >= GameObjects.Player.ManaPercent)
38 | {
39 | return;
40 | }
41 |
42 | var target = args.Target as AIMinionClient;
43 | if (target == null)
44 | {
45 | return;
46 | }
47 |
48 | if (target.GetBuffCount("kaisapassivemarker") != 3)
49 | {
50 | return;
51 | }
52 |
53 | W.Cast(target.Position);
54 | }
55 |
56 | public static void CastE()
57 | {
58 | if (!JungleclearMenu.ESliderButton.Enabled)
59 | {
60 | return;
61 | }
62 |
63 | if (JungleclearMenu.ESliderButton.Value >= GameObjects.Player.ManaPercent)
64 | {
65 | return;
66 | }
67 |
68 | var target = GameObjects.Jungle.FirstOrDefault(x => x.IsValidTarget(Q.Range));
69 | if (target == null)
70 | {
71 | return;
72 | }
73 | E.Cast();
74 | }
75 | }
76 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Ashe/Modes/Combo.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | using static EzAIO.Champions.Ashe.Configs;
5 | using static EzAIO.Champions.Ashe.Extension;
6 | namespace EzAIO.Champions.Ashe.Modes
7 | {
8 | using static ChampionBases;
9 | static class Combo
10 | {
11 | public static void CastQ()
12 | {
13 | if (!ComboMenu.QBool.Enabled)
14 | {
15 | return;
16 | }
17 |
18 | var qtarget = Q.GetTarget();
19 | if (qtarget == null)
20 | {
21 | return;
22 | }
23 |
24 | Q.Cast();
25 | }
26 |
27 | public static void CastW()
28 | {
29 | if (!ComboMenu.WBool.Enabled)
30 | {
31 | return;
32 | }
33 |
34 | if (ComboMenu.DontWBool.Enabled && IsQActive())
35 | {
36 | return;
37 | }
38 |
39 | foreach (var target in GameObjects.EnemyHeroes.Where(x=>x.IsValidTarget(W.Range)))
40 | {
41 | if (target == null)
42 | {
43 | return;
44 | }
45 |
46 | var winput = W.GetPrediction(target);
47 | if (winput.Hitchance >= HitChance.High && W.IsInRange(winput.CastPosition))
48 | {
49 | W.Cast(winput.CastPosition);
50 | }
51 | }
52 | }
53 |
54 | public static void SemiRCast()
55 | {
56 | if (!ComboMenu.RSemiKeyBind.Active)
57 | {
58 | return;
59 | }
60 |
61 | var rtarget = TargetSelector.GetTarget(AutomaticMenu.RrangeSlider.Value,DamageType.Mixed);
62 | if (rtarget == null)
63 | {
64 | return;
65 | }
66 |
67 | var rinput = R.GetPrediction(rtarget);
68 | if (rinput.Hitchance >= HitChance.High && R.IsInRange(rinput.CastPosition))
69 | {
70 | R.Cast(rinput.CastPosition);
71 | }
72 | }
73 | }
74 | }
--------------------------------------------------------------------------------
/EzAIO/Utilities/SupportedChamps.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp.SDK.MenuUI;
2 | using static EzAIO.Program;
3 | namespace EzAIO
4 | {
5 | class SupportedChamps
6 | {
7 | private static Menu champs;
8 | public SupportedChamps()
9 | {
10 | Initialize();
11 | }
12 | public static void Initialize()
13 | {
14 | champs = new Menu("AIOSupport", "Supported Champs");
15 | var TOPMenu = new Menu("TOP", "TOP")
16 | {
17 | new MenuSeparator("sep1", "Vayne")
18 | };
19 | var JGMenu = new Menu("JG", "Jungle")
20 | {
21 | new MenuSeparator("sep1", "Twicth")
22 | };
23 | var MIDMEnu = new Menu("MID", "MID")
24 | {
25 | new MenuSeparator("sep1", "Katarina"),
26 | new MenuSeparator("sep2", "Lucian")
27 | };
28 | var ADCMenu = new Menu("ADC", "ADC")
29 | {
30 | new MenuSeparator("sep11","Ashe"),
31 | new MenuSeparator("sep7","Draven"),
32 | new MenuSeparator("sep1", "Ezreal"),
33 | new MenuSeparator("sep10", "Jhin"),
34 | new MenuSeparator("sep8","Jinx"),
35 | new MenuSeparator("sep2", "Kaisa"),
36 | new MenuSeparator("sep3", "Kalista"),
37 | new MenuSeparator("sep4", "Lucian"),
38 | new MenuSeparator("sep9", "Tristana"),
39 | new MenuSeparator("sep5", "Twitch"),
40 | new MenuSeparator("sep6", "Vayne")
41 | };
42 | var SUPPMenu = new Menu("SUPP", "SUP")
43 | {
44 | new MenuSeparator("sep1", "Not yet :p")
45 | };
46 | var menuList = new[]
47 | {
48 | TOPMenu,
49 | JGMenu,
50 | MIDMEnu,
51 | ADCMenu,
52 | SUPPMenu
53 | };
54 | foreach (var menu in menuList)
55 | {
56 | champs.Add(menu);
57 | }
58 |
59 | util.Add(champs);
60 | }
61 | }
62 | }
--------------------------------------------------------------------------------
/EzAIO/Bases/DrawingBase.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp;
2 | using EnsoulSharp.SDK;
3 | using EnsoulSharp.SDK.Utility;
4 | using static EzAIO.Program;
5 | using EnsoulSharp.SDK.MenuUI;
6 | using EnsoulSharp.SDK.Rendering;
7 | using SharpDX;
8 | using Color = SharpDX.Color;
9 |
10 | namespace EzAIO.Bases
11 | {
12 |
13 | abstract class DrawingBase
14 | {
15 | protected DrawingBase()
16 | {
17 | //Drawing.OnDraw += OnDraw;
18 | }
19 | protected static Spell[] Spells { get; set; }
20 |
21 | public static class DrawMenu
22 | {
23 | public static readonly MenuBool QBool =
24 | new MenuBool($"{GameObjects.Player.CharacterName}.Qr", "Draw Q range", false);
25 | public static readonly MenuBool WBool =
26 | new MenuBool($"{GameObjects.Player.CharacterName}.Wr", "Draw W range", false);
27 | public static readonly MenuBool EBool =
28 | new MenuBool($"{GameObjects.Player.CharacterName}.Er", "Draw E range", false);
29 | public static readonly MenuBool RBool =
30 | new MenuBool($"{GameObjects.Player.CharacterName}.Rr", "Draw R range", false);
31 | }
32 |
33 | public static MenuBool getMenuBoolOf(SpellSlot slot)
34 | {
35 | MenuBool menuBool = null;
36 | switch (slot)
37 | {
38 | case SpellSlot.Q:
39 | menuBool = DrawMenu.QBool;
40 | break;
41 | case SpellSlot.W:
42 | menuBool = DrawMenu.WBool;
43 | break;
44 | case SpellSlot.E:
45 | menuBool = DrawMenu.EBool;
46 | break;
47 | case SpellSlot.R:
48 | menuBool = DrawMenu.RBool;
49 | break;
50 | }
51 |
52 | return menuBool;
53 | }
54 |
55 | public static void DrawCircle(Vector3 pos, float radius, System.Drawing.Color color)
56 | {
57 | CircleRender.Draw(pos,radius,color.ToSharpDxColor());
58 | }
59 | }
60 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Lucian/Modes/Extra.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | using SharpDX;
5 | using static EzAIO.Champions.Lucian.Configs;
6 | namespace EzAIO.Champions.Lucian.Modes
7 | {
8 | using static ChampionBases;
9 | static class Extra
10 | {
11 | public static bool CastE()
12 | {
13 | switch (ComboMenu.EMode.Index)
14 | {
15 | case 0:
16 | return DynamicCastE();
17 | case 1:
18 | return E.Cast(
19 | GameObjects.Player.Position.Extend(Game.CursorPos, GameObjects.Player.BoundingRadius));
20 | case 2:
21 | return E.Cast(GameObjects.Player.Position.Extend(Game.CursorPos, 425f));
22 | }
23 |
24 | return false;
25 | }
26 |
27 | public static bool CastQ(AfterAttackEventArgs args)
28 | {
29 | if (!ComboMenu.QBool.Enabled)
30 | {
31 | return false;
32 | }
33 |
34 | var target = args.Target as AIHeroClient;
35 | if (target == null)
36 | {
37 | return false;
38 | }
39 |
40 | return Q.CastOnUnit(target);
41 | }
42 |
43 | public static bool CastW(AfterAttackEventArgs args)
44 | {
45 | if (!ComboMenu.WBool.Enabled)
46 | {
47 | return false;
48 | }
49 |
50 | return W.Cast(args.Target.Position);
51 | }
52 |
53 | private static bool DynamicCastE()
54 | {
55 | Vector3 point;
56 | if (GameObjects.Player.Position.IsUnderEnemyTurret() ||
57 | GameObjects.Player.Distance(Game.CursorPos) <
58 | GameObjects.Player.GetRealAutoAttackRange())
59 | {
60 | point = GameObjects.Player.Position.Extend(Game.CursorPos, GameObjects.Player.BoundingRadius);
61 | }
62 | else
63 | {
64 | point = GameObjects.Player.Position.Extend(Game.CursorPos, 475f);
65 | }
66 |
67 | return E.Cast(point);
68 | }
69 | }
70 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Katarina/Modes/Jungleclear.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EzAIO.Bases;
5 | using static EzAIO.Champions.Katarina.Configs;
6 | namespace EzAIO.Champions.Katarina.Modes
7 | {
8 | using static ChampionBases;
9 | static class Jungleclear
10 | {
11 | public static void CastQ()
12 | {
13 | if (!JungleclearMenu.QBool.Enabled || !Q.IsReady())
14 | {
15 | return;
16 | }
17 |
18 | var mob = GameObjects.Jungle.Where(x => x.IsValidTarget(Q.Range)).MaxBy(X => X.MaxHealth);
19 | if (mob == null)
20 | {
21 | return;
22 | }
23 |
24 | Q.CastOnUnit(mob);
25 | }
26 |
27 | public static void CastE()
28 | {
29 | if (Extension.eDelay > Game.Time)
30 | {
31 | return;
32 | }
33 |
34 | if (!JungleclearMenu.EBool.Enabled || !E.IsReady())
35 | {
36 | return;
37 | }
38 | var mob = GameObjects.Jungle.Where(x => x.IsValidTarget(E.Range)).MaxBy(X => X.MaxHealth);
39 | if (mob == null)
40 | {
41 | return;
42 | }
43 |
44 | var dagger = Extension.Daggers.FirstOrDefault(
45 | x => x.Distance(mob) < 450 && x.DistanceToPlayer() <= E.Range + 50);
46 | if (dagger != null)
47 | {
48 | E.Cast(dagger.Position.Extend(mob.Position, 200));
49 | }
50 | else
51 | {
52 | E.Cast(mob.Position.Extend(GameObjects.Player.Position, -50));
53 | }
54 | }
55 |
56 | public static void CastW()
57 | {
58 | if (!JungleclearMenu.WBool.Enabled || !W.IsReady())
59 | {
60 | return;
61 | }
62 | var mob = GameObjects.Jungle.Where(x => x.IsValidTarget(W.Range)).MaxBy(X => X.MaxHealth);
63 |
64 | if (mob == null)
65 | {
66 | return;
67 | }
68 |
69 | if (W.Cast(mob.Position))
70 | {
71 | Extension.eDelay = Game.Time + .75f;
72 | }
73 | }
74 | }
75 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Twitch/DamageIndicator.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Linq;
3 | using EnsoulSharp.SDK;
4 | using SharpDX;
5 | using static EzAIO.Program;
6 | using static EzAIO.Champions.Twitch.Configs;
7 | using static EzAIO.Champions.Twitch.Damage;
8 | namespace EzAIO.Champions.Twitch
9 | {
10 | static class DamageIndicator
11 | {
12 | public static void EChamps()
13 | {
14 | if (!DrawConfig.Edmg.Enabled)
15 | {
16 | return;
17 | }
18 |
19 | foreach (var target in GameObjects.EnemyHeroes.Where(x => x.IsVisible &&
20 | !x.IsDead &&
21 | Extension.HasPoisonEffect(x, 15000f)))
22 | {
23 | var targetpos = target.HPBarPosition;
24 | var DMGporcent = MathUtil.Clamp((EDamage(target) / target.Health + target.AllShield) * 100, 0,100);
25 | if (DMGporcent != 0)
26 | {
27 | DrawText(TextBold,Math.Round(DMGporcent).ToString()+"%",targetpos.X+50,targetpos.Y-70,(DMGporcent>=100) ? SharpDX.Color.Cyan : SharpDX.Color.White);
28 | }
29 | }
30 | }
31 |
32 | public static void EMobs()
33 | {
34 | if (!DrawConfig.EDmgJG.Enabled)
35 | {
36 | return;
37 | }
38 | foreach (var mobs in GameObjects.Jungle.Where(x => x.IsVisible &&
39 | !x.IsDead && Extension.HasPoisonEffect(x, 15000f)))
40 | {
41 | if (mobs == null)
42 | {
43 | return;
44 | }
45 | var mobpos = mobs.HPBarPosition;
46 | var DMGporcent = MathUtil.Clamp((EDamage(mobs) / mobs.Health + mobs.PhysicalShield) * 100, 0, 100);
47 | if (DMGporcent != 0)
48 | {
49 | DrawText(TextBold,Math.Round(DMGporcent).ToString()+"%",mobpos.X+50,mobpos.Y-70,(DMGporcent>=100) ? SharpDX.Color.Cyan : SharpDX.Color.White);
50 | }
51 |
52 | }
53 | }
54 | }
55 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Twitch/Modes/Combo.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | using static EzAIO.Champions.Twitch.Configs;
5 | namespace EzAIO.Champions.Twitch.Modes
6 | {
7 | using static ChampionBases;
8 | static class Combo
9 | {
10 | public static void CastQ()
11 | {
12 | if (ComboMenu.QList.Index != 1 || !Q.IsReady())
13 | {
14 | return;
15 | }
16 |
17 | var target = GameObjects.EnemyHeroes.Where(x => x.InRange(600)).ToList();
18 | if (target == null)
19 | {
20 | return;
21 | }
22 |
23 | Q.Cast();
24 | }
25 |
26 | public static void CastQ(BeforeAttackEventArgs args)
27 | {
28 | if (ComboMenu.QList.Index != 0 || !Q.IsReady())
29 | {
30 | return;
31 | }
32 |
33 | Q.Cast();
34 | }
35 |
36 | public static void CastW()
37 | {
38 | if (!ComboMenu.WList.Enabled || !W.IsReady())
39 | {
40 | return;
41 | }
42 |
43 | var wtaregt = W.GetTarget();
44 | if (wtaregt == null)
45 | {
46 | return;
47 | }
48 |
49 | if (ComboMenu.WBool.Enabled && GameObjects.Player.IsUnderEnemyTurret())
50 | {
51 | return;
52 | }
53 |
54 | if (ComboMenu.WRBool.Enabled && Extension.HasFullEffect(GameObjects.Player))
55 | {
56 | return;
57 | }
58 |
59 | var winput = W.GetPrediction(wtaregt);
60 | if (winput.Hitchance >= HitChance.High)
61 | {
62 | W.Cast(winput.UnitPosition);
63 | }
64 | }
65 |
66 | public static void CastR()
67 | {
68 | if (!ComboMenu.RSliderButton.Enabled && !R.IsReady())
69 | {
70 | return;
71 | }
72 |
73 | if (GameObjects.Player.CountEnemyHeroesInRange(R.Range) >= ComboMenu.RSliderButton.Value)
74 | {
75 | R.Cast();
76 | }
77 | }
78 | }
79 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Lucian/Modes/Jungleclear.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EzAIO.Bases;
5 | using static EzAIO.Champions.Lucian.Configs;
6 | namespace EzAIO.Champions.Lucian.Modes
7 | {
8 | using static ChampionBases;
9 | static class Jungleclear
10 | {
11 | public static bool CastQ(AfterAttackEventArgs args)
12 | {
13 | if (!JungleclearMenu.QSlider.Enabled)
14 | {
15 | return false;
16 | }
17 |
18 | if (JungleclearMenu.QSlider.Value >= GameObjects.Player.ManaPercent)
19 | {
20 | return false;
21 | }
22 |
23 | var qtarget = GameObjects.Jungle.FirstOrDefault(x => x.IsValidTarget(Q.Range));
24 | if (qtarget == null)
25 | {
26 | return false;
27 | }
28 |
29 | return Q.CastOnUnit(qtarget);
30 | }
31 |
32 | public static bool CastW(AfterAttackEventArgs args)
33 | {
34 | if (!JungleclearMenu.WSlider.Enabled)
35 | {
36 | return false;
37 | }
38 |
39 | if (JungleclearMenu.WSlider.Value >= GameObjects.Player.ManaPercent)
40 | {
41 | return false;
42 | }
43 |
44 | var wtarget = GameObjects.Jungle.FirstOrDefault(x => x.IsValidTarget(W.Range));
45 | if (wtarget == null)
46 | {
47 | return false;
48 | }
49 | return W.Cast(args.Target.Position);
50 | }
51 |
52 | public static bool CastE()
53 | {
54 | if (!JungleclearMenu.ESlider.Enabled)
55 | {
56 | return false;
57 | }
58 |
59 | if (JungleclearMenu.ESlider.Value >= GameObjects.Player.ManaPercent)
60 | {
61 | return false;
62 | }
63 |
64 | var etarget = GameObjects.Jungle.FirstOrDefault(x => x.IsValidTarget(E.Range));
65 | if (etarget == null)
66 | {
67 | return false ;
68 | }
69 | return E.Cast(GameObjects.Player.Position.Extend(Game.CursorPos, GameObjects.Player.BoundingRadius));
70 | }
71 | }
72 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Jinx/Modes/Laneclear.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | using static EzAIO.Champions.Jinx.Configs;
5 | using static EzAIO.Champions.Jinx.Jinx;
6 | using static EzAIO.Champions.Jinx.Damage;
7 | namespace EzAIO.Champions.Jinx.Modes
8 | {
9 | using static ChampionBases;
10 | static class Laneclear
11 | {
12 | public static void CastQ()
13 | {
14 | if (!LaneclearMenu.QSliderButton.Enabled || !LaneclearMenu.SwapBool.Enabled)
15 | {
16 | return;
17 | }
18 | if (LaneclearMenu.QSliderButton.Value > Player.ManaPercent)
19 | {
20 | if (Extension.ActivatedRockets)
21 | {
22 | Q.Cast();
23 | }
24 | return;
25 | }
26 |
27 | var minion = GameObjects.EnemyMinions.Where(x => x.IsValidTarget(Extension.RocketRange) &&
28 | Player.GetAutoAttackDamage(x)>=x.Health)
29 | .OrderBy(x => x.MaxHealth).ThenByDescending(x => x.Health).FirstOrDefault();
30 | if (minion == null || !minion.IsValid)
31 | {
32 | return;
33 | }
34 |
35 | if (Extension.Swap(minion))
36 | {
37 | Q.Cast();
38 | }
39 | }
40 |
41 | public static void CastQAOE()
42 | {
43 | if (!LaneclearMenu.QSliderButton.Enabled)
44 | {
45 | return;
46 | }
47 | if (LaneclearMenu.QSliderButton.Value > Player.ManaPercent)
48 | {
49 | if (Extension.ActivatedRockets)
50 | {
51 | Q.Cast();
52 | }
53 | return;
54 | }
55 |
56 | foreach (var minion in GameObjects.EnemyMinions.Where(x=>x.IsValidTarget(Extension.RocketRange)))
57 | {
58 | if (Extension.KillableMinionsCount(minion) < LaneclearMenu.QCountSlider.Value)
59 | {
60 | continue;
61 | }
62 |
63 | if (!Extension.ActivatedRockets)
64 | {
65 | Q.Cast();
66 | return;
67 | }
68 | }
69 | }
70 | }
71 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Draven/Extension.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.Linq;
3 | using EnsoulSharp;
4 | using EnsoulSharp.SDK;
5 | using SharpDX;
6 | using static EzAIO.Bases.ChampionBases;
7 |
8 | namespace EzAIO.Champions.Draven
9 | {
10 | public class Extension
11 | {
12 | public static readonly List Marks = new List();
13 |
14 | public class Mark
15 | {
16 | public Mark(GameObject obj, int newtworkId, Vector3 pos, int endTime)
17 | {
18 | this.Object = obj;
19 | this.NewtworkId = newtworkId;
20 | this.Pos = pos;
21 | this.EndTime = endTime;
22 | }
23 | public GameObject Object { get; }
24 | public int NewtworkId { get; }
25 | public Vector3 Pos { get; }
26 | public int EndTime { get; }
27 | }
28 |
29 | public static readonly float MarksBoudingRadius = 150 - GameObjects.Player.BoundingRadius;
30 | public static readonly float[] WBoost = {0f, 1.4f, 1.45f, 1.5f, 1.55f, 1.6f, 1.6f};
31 | public static float eDelay = 0f;
32 |
33 | public static int GetNumberAxesActives()
34 | {
35 | var buffCount = (int) GameObjects.Player.GetBuffCount("DravenSpinningAttack");
36 | var markCount = Marks.Count();
37 | var flyingAxes = GameObjects.AllGameObjects.Count(x =>
38 | x.IsValid && x is MissileClient && x.Name.Contains("DravenSpinningAttack"));
39 | return buffCount + markCount + flyingAxes;
40 | }
41 |
42 | public static bool IsMarkNormallyCatchable(Mark mark)
43 | {
44 | return GameObjects.Player.MoveSpeed * (mark.EndTime - Game.Time) >= mark.Object.DistanceToPlayer();
45 | }
46 |
47 | public static bool IsMarkBoostedCatchable(Mark mark)
48 | {
49 | var boosSpeed = GameObjects.Player.MoveSpeed * WBoost[W.Level];
50 | return boosSpeed * (mark.EndTime - Game.Time) >= mark.Object.DistanceToPlayer();
51 | }
52 |
53 | public static bool HasAxeInHand()
54 | {
55 | return GameObjects.Player.HasBuff("DravenSpinningAttack");
56 | }
57 |
58 | public static bool CanCatchAxe()
59 | {
60 | return Marks.Any(x => x.Object.DistanceToPlayer() < MarksBoudingRadius);
61 | }
62 | }
63 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Ashe/Menus.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp.SDK.MenuUI;
2 | using static EzAIO.Champions.Ashe.Configs;
3 | using static EzAIO.Bases.DrawingBase;
4 | using static EzAIO.Champions.Ashe.Ashe;
5 |
6 | namespace EzAIO.Champions.Ashe
7 | {
8 | class Menus
9 | {
10 | public Menus()
11 | {
12 | Initialize();
13 | }
14 | public static void Initialize()
15 | {
16 | var automaticMenu = new Menu("Automatic", "Automatic")
17 | {
18 | AutomaticMenu.Rinmobile,
19 | AutomaticMenu.RrangeSlider,
20 | AutomaticMenu.NoEnemiesSliderButton
21 | };
22 | var comboMenu = new Menu("Combo", "Combo")
23 | {
24 | ComboMenu.QBool,
25 | ComboMenu.WBool,
26 | ComboMenu.RSemiKeyBind,
27 | new Menu("sep", "W Customization")
28 | {
29 | ComboMenu.DontWBool
30 | }
31 | };
32 | var harassMenu = new Menu("Harass", "Harass")
33 | {
34 | HarassMenu.QSliderButton,
35 | HarassMenu.WSliderButton
36 | };
37 | var killstealMenu = new Menu("Killsteal", "Kill Steal")
38 | {
39 | KillstealMenu.WBool,
40 | KillstealMenu.RBool
41 | };
42 | var laneclearMenu = new Menu("Laneclear", "Lane Clear")
43 | {
44 | LaneclearMenu.QSliderButton
45 | };
46 | var jungleclearMenu = new Menu("Jungleclear", "Jungle Clear")
47 | {
48 | JungleclearMenu.QSliderButton,
49 | JungleclearMenu.WSliderButton
50 | };
51 | var drawMenu = new Menu("Draw", "Draw")
52 | {
53 | DrawMenu.WBool,
54 | DrawMenu.EBool,
55 | DrawMenu.RBool
56 | };
57 | var menuList = new[]
58 | {
59 | automaticMenu,
60 | comboMenu,
61 | harassMenu,
62 | killstealMenu,
63 | laneclearMenu,
64 | jungleclearMenu,
65 | drawMenu
66 | };
67 | foreach (var menu in menuList)
68 | {
69 | mainMenu.Add(menu);
70 | }
71 | }
72 | }
73 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Ashe/Modes/Killsteal.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | using static EzAIO.Champions.Ashe.Configs;
5 | using static EzAIO.Champions.Ashe.Ashe;
6 | using static EzAIO.Champions.Ashe.Damage;
7 | namespace EzAIO.Champions.Ashe.Modes
8 | {
9 | using static ChampionBases;
10 | static class Killsteal
11 | {
12 | public static void CastW()
13 | {
14 | if (!KillstealMenu.WBool.Enabled)
15 | {
16 | return;
17 | }
18 |
19 | foreach (var target in GameObjects.EnemyHeroes.Where(x=>x.IsValidTarget(W.Range) &&
20 | WDamage(x)>=x.Health-Player.CalculateDamage(x,DamageType.Physical,1) &&
21 | !x.IsInvulnerable))
22 | {
23 | if (target.DistanceToPlayer() <= Player.GetRealAutoAttackRange())
24 | {
25 | return;
26 | }
27 | var winpput = W.GetPrediction(target);
28 | if (winpput.Hitchance >= HitChance.High && W.IsInRange(winpput.CastPosition))
29 | {
30 | W.Cast(winpput.CastPosition);
31 | }
32 | }
33 | }
34 |
35 | public static void CastR()
36 | {
37 | if (!KillstealMenu.RBool.Enabled)
38 | {
39 | return;
40 | }
41 | foreach (var target in GameObjects.EnemyHeroes.Where(x=>x.IsValidTarget(AutomaticMenu.RrangeSlider.Value) &&
42 | RDamage(x)>=x.Health &&
43 | !x.IsInvulnerable))
44 | {
45 | if (KillstealMenu.WBool.Enabled && WDamage(target) >= target.Health && target.InAutoAttackRange() && W.IsReady())
46 | {
47 | return;
48 | }
49 | if (target.DistanceToPlayer() <= Player.GetRealAutoAttackRange())
50 | {
51 | return;
52 | }
53 | var rinput = W.GetPrediction(target);
54 | if (rinput.Hitchance >= HitChance.High && W.IsInRange(rinput.CastPosition))
55 | {
56 | R.Cast(rinput.CastPosition);
57 | }
58 | }
59 | }
60 | }
61 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Lucian/Modes/Combo.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EzAIO.Bases;
5 | using static EzAIO.Champions.Lucian.Configs;
6 | namespace EzAIO.Champions.Lucian.Modes
7 | {
8 | using static ChampionBases;
9 | static class Combo
10 | {
11 | public static void CastE()
12 | {
13 | if (!ComboMenu.Estart.Enabled ||
14 | GameObjects.Player.Distance(Game.CursorPos) <= GameObjects.Player.GetRealAutoAttackRange())
15 | {
16 | return;
17 | }
18 |
19 | var etarget = E.GetTarget();
20 | if (etarget == null ||
21 | etarget.IsInvulnerable ||
22 | etarget.DistanceToPlayer() <= GameObjects.Player.GetRealAutoAttackRange(etarget))
23 | {
24 | return;
25 | }
26 |
27 | var posAfterE = GameObjects.Player.Position.Extend(Game.CursorPos, 425f);
28 | if (posAfterE.IsUnderEnemyTurret() ||
29 | posAfterE.CountEnemyHeroesInRange(1000f) >= 3 ||
30 | etarget.Distance(posAfterE) >= GameObjects.Player.GetRealAutoAttackRange())
31 | {
32 | return;
33 | }
34 |
35 | E.Cast(posAfterE);
36 | }
37 |
38 | public static void CastR()
39 | {
40 | if (Q.IsReady() || W.IsReady() || E.IsReady() || Extension.IsCulling())
41 | {
42 | return;
43 | }
44 |
45 | var rtarget = GameObjects.EnemyHeroes.Where(x =>
46 | x.IsValidTarget(R.Range) &&
47 | !x.IsInvulnerable).MinBy(o=>o.Health);
48 | if (rtarget == null ||
49 | Extension.HasPassive() &&
50 | rtarget.DistanceToPlayer() <= GameObjects.Player.GetRealAutoAttackRange(rtarget))
51 | {
52 | return;
53 | }
54 |
55 | if (ComboMenu.Rbool.Enabled)
56 | {
57 | R.Cast(rtarget);
58 | }
59 | }
60 |
61 | public static void SemiR()
62 | {
63 | if (!ComboMenu.RSemi.Active || !R.IsReady())
64 | {
65 | return;
66 | }
67 |
68 | var rtraget = R.GetTarget();
69 | if (rtraget == null)
70 | {
71 | return;
72 | }
73 |
74 | R.Cast(rtraget.Position);
75 | }
76 | }
77 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Jinx/Modes/Killsteal.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | using static EzAIO.Champions.Jinx.Configs;
5 | using static EzAIO.Champions.Jinx.Jinx;
6 | using static EzAIO.Champions.Jinx.Damage;
7 | namespace EzAIO.Champions.Jinx.Modes
8 | {
9 | using static ChampionBases;
10 | static class Killsteal
11 | {
12 | public static void CastW()
13 | {
14 | if (!KillstealMenu.WSliderButton.Enabled)
15 | {
16 | return;
17 | }
18 | if (Player.CountEnemyHeroesInRange(Extension.RocketRange) < KillstealMenu.WSliderButton.Value)
19 | {
20 | return;
21 | }
22 |
23 | foreach (var target in GameObjects.EnemyHeroes.Where(x=>x.IsValidTarget(W.Range) &&
24 | WDamage(x)>=x.Health-Player.CalculateDamage(x,DamageType.Physical,1) &&
25 | !x.IsInvulnerable))
26 | {
27 | var winput = W.GetPrediction(target);
28 | if (winput.Hitchance >= HitChance.High && W.IsInRange(winput.CastPosition))
29 | {
30 | W.Cast(winput.CastPosition);
31 | }
32 | }
33 | }
34 |
35 | public static void CastR()
36 | {
37 | if (!KillstealMenu.RSliderButton.Enabled)
38 | {
39 | return;
40 | }
41 | if (Player.CountEnemyHeroesInRange(Extension.RocketRange) > KillstealMenu.RSliderButton.Value)
42 | {
43 | return;
44 | }
45 |
46 | foreach (var target in GameObjects.EnemyHeroes.Where(x=>x.IsValidTarget(ComboMenu.RSliderRange.Value) &&
47 | RDamage(x)>=x.Health-Player.CalculateDamage(x,DamageType.Physical,1) &&
48 | !x.IsInvulnerable))
49 | {
50 | if (W.IsReady() && WDamage(target) >= target.Health)
51 | {
52 | return;
53 | }
54 |
55 | var rinput = R.GetPrediction(target);
56 | if (rinput.Hitchance >= HitChance.High && R.IsInRange(rinput.CastPosition) && rinput.CollisionObjects.Any(x=>x.IsEnemy))
57 | {
58 | R.Cast(rinput.CastPosition);
59 | }
60 | }
61 | }
62 | }
63 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Kalista/Modes/Harass.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EzAIO.Bases;
5 | namespace EzAIO.Champions.Kalista.Modes
6 | {
7 | using static Configs;
8 | using static ChampionBases;
9 | using static Damage;
10 | static class Harass
11 | {
12 | public static void CastQ()
13 | {
14 | if (!HarassMenu.QSliderButton.Enabled || !Q.IsReady())
15 | {
16 | return;
17 | }
18 |
19 | if (HarassMenu.QSliderButton.Value >= GameObjects.Player.ManaPercent)
20 | {
21 | return;
22 | }
23 |
24 | if (GameObjects.Player.IsDashing())
25 | {
26 | return;
27 | }
28 |
29 | var qtarget = TargetSelector.GetTarget(Q.Range,DamageType.Physical);
30 | if (qtarget == null)
31 | {
32 | return;
33 | }
34 |
35 | var qinput = Q.GetPrediction(qtarget);
36 | if (qinput.Hitchance >= HitChance.High)
37 | {
38 | Q.Cast(qinput.CastPosition);
39 | }
40 | }
41 |
42 | public static void CastE()
43 | {
44 | if (!HarassMenu.ESliderButton.Enabled || !E.IsReady())
45 | {
46 | return;
47 | }
48 |
49 | if (HarassMenu.ESliderButton.Value >= GameObjects.Player.ManaPercent)
50 | {
51 | return;
52 | }
53 | foreach (var enemy in GameObjects.EnemyHeroes.Where(x =>
54 | x.IsValidTarget(E.Range) && Extension.HasRendBuff(x, E.Range)))
55 | {
56 | if (enemy == null)
57 | {
58 | return;
59 | }
60 |
61 | foreach (var minion in GameObjects.EnemyMinions.Where(z =>
62 | z.IsValidTarget(E.Range) && Extension.HasRendBuff(z, E.Range)))
63 | {
64 | if (minion == null)
65 | {
66 | return;
67 | }
68 |
69 | if (!GameObjects.Player.InAutoAttackRange(enemy) && EDamage(minion) >=
70 | minion.Health - GameObjects.Player.CalculateDamage(minion, DamageType.Physical, 1))
71 | {
72 | E.Cast();
73 | }
74 | }
75 | }
76 | }
77 | }
78 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Ashe/Configs.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp.SDK.MenuUI;
2 |
3 | namespace EzAIO.Champions.Ashe
4 | {
5 | public static class Configs
6 | {
7 | public static class AutomaticMenu
8 | {
9 | public static readonly MenuBool Rinmobile =
10 | new MenuBool("rInmobile", "Auto R to Inmobile targets",false);
11 |
12 | public static readonly MenuSlider RrangeSlider =
13 | new MenuSlider("rRange", "R custom Range", 1300, 1000, 4000);
14 |
15 | public static readonly MenuSliderButton NoEnemiesSliderButton =
16 | new MenuSliderButton("rEnemies", "Don't R if X Enemies is in W range", 1, 0, 6);
17 | }
18 | public static class ComboMenu
19 | {
20 | public static readonly MenuBool QBool =
21 | new MenuBool("q", "Use Q");
22 |
23 | public static readonly MenuBool WBool =
24 | new MenuBool("w", "Use W");
25 |
26 | public static readonly MenuKeyBind RSemiKeyBind =
27 | new MenuKeyBind("rSemi", "R Semi-Automatic Cast", Keys.T, KeyBindType.Press);
28 |
29 | public static readonly MenuBool DontWBool =
30 | new MenuBool("dontW", "Don't cast W while Q is actvie");
31 | }
32 | public static class HarassMenu
33 | {
34 | public static readonly MenuSliderButton QSliderButton =
35 | new MenuSliderButton("q", "Use Q | If Mana >= x%", 50, 1, 100);
36 |
37 | public static readonly MenuSliderButton WSliderButton =
38 | new MenuSliderButton("w", "Use W | If Mana >= x%", 50, 1, 100);
39 | }
40 | public static class KillstealMenu
41 | {
42 | public static readonly MenuBool WBool =
43 | new MenuBool("w", "Use W");
44 |
45 | public static readonly MenuBool RBool =
46 | new MenuBool("r", "Use R", false);
47 | }
48 | public static class LaneclearMenu
49 | {
50 | public static readonly MenuSliderButton QSliderButton =
51 | new MenuSliderButton("q", "Use Q | If Mana >= x%",50,1,100);
52 | }
53 | public static class JungleclearMenu
54 | {
55 | public static readonly MenuSliderButton QSliderButton =
56 | new MenuSliderButton("q", "Use Q | If Mana >= x%", 30, 1, 100);
57 |
58 | public static readonly MenuSliderButton WSliderButton =
59 | new MenuSliderButton("w", "Use W | If Mana >= x%", 30, 1, 100);
60 | }
61 | }
62 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Twitch/Menus.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp.SDK.MenuUI;
2 | using static EzAIO.Champions.Twitch.Configs;
3 | using static EzAIO.Bases.DrawingBase;
4 | using static EzAIO.Champions.Twitch.Twitch;
5 | namespace EzAIO.Champions.Twitch
6 | {
7 | class Menus
8 | {
9 | public Menus()
10 | {
11 | Initialize();
12 | }
13 |
14 | public static void Initialize()
15 | {
16 | var automaticMenu = new Menu("Automatic", "Automatic")
17 | {
18 | AutomaticMenu.Qsilent,
19 | new MenuSeparator("info","^ Twitch back in invisible.")
20 | };
21 | var comboMenu = new Menu("Combo", "Combo")
22 | {
23 | ComboMenu.QList,
24 | ComboMenu.WList,
25 | ComboMenu.WBool,
26 | ComboMenu.WRBool,
27 | ComboMenu.RSliderButton
28 | };
29 | var harassMenu = new Menu("Harass", "Harass")
30 | {
31 | HarassMenu.WSliderButton,
32 | HarassMenu.ESliderButton,
33 | HarassMenu.EBool
34 | };
35 | var killstealMenu = new Menu("Killsteal", "Kill Steal")
36 | {
37 | KillstealMenu.EBool
38 | };
39 | var laneclearMenu = new Menu("Laneclear", "Lane Clear")
40 | {
41 | LaneclearMenu.ESliderButton,
42 | LaneclearMenu.ESlider
43 | };
44 | var jungleclearMenu = new Menu("Jungleclear", "Jungle Clear")
45 | {
46 | JungleclearMenu.WSliderButton,
47 | JungleclearMenu.ESliderButton
48 | };
49 | var drawMenu = new Menu("Draw", "Draw")
50 | {
51 | DrawMenu.WBool,
52 | DrawMenu.EBool,
53 | DrawMenu.RBool,
54 | DrawConfig.Edmg,
55 | DrawConfig.EDmgJG,
56 | DrawConfig.QTime,
57 | DrawConfig.RTime
58 | };
59 | var menuList = new[]
60 | {
61 | automaticMenu,
62 | comboMenu,
63 | harassMenu,
64 | killstealMenu,
65 | laneclearMenu,
66 | jungleclearMenu,
67 | drawMenu
68 | };
69 | foreach (var menu in menuList)
70 | {
71 | mainMenu.Add(menu);
72 | }
73 | }
74 | }
75 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Draven/Modes/Combo.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EnsoulSharp.SDK.Utility;
5 | using EzAIO.Bases;
6 | using static EzAIO.Champions.Draven.Configs;
7 | namespace EzAIO.Champions.Draven.Modes
8 | {
9 | using static ChampionBases;
10 | static class Combo
11 | {
12 | public static void CastQ()
13 | {
14 | if (!ComboMenu.QBoolSliderButton.Enabled)
15 | {
16 | return;
17 | }
18 |
19 | if (Extension.GetNumberAxesActives() >= ComboMenu.QBoolSliderButton.Value)
20 | {
21 | return;
22 | }
23 |
24 | Q.Cast();
25 | }
26 |
27 | public static void CastW(BeforeAttackEventArgs args)
28 | {
29 | if (!ComboMenu.WBool.Enabled)
30 | {
31 | return;
32 | }
33 |
34 | W.Cast();
35 | }
36 |
37 | public static void CastW()
38 | {
39 | if (!ComboMenu.WBool.Enabled)
40 | {
41 | return;
42 | }
43 |
44 | if (!GameObjects.EnemyHeroes.Any(x => x.IsValidTarget(1500f) &&
45 | x.Distance(Game.CursorPos) <= 250 &&
46 | x.DistanceToPlayer() > GameObjects.Player.GetRealAutoAttackRange()))
47 | {
48 | return;
49 | }
50 |
51 | W.Cast();
52 | }
53 |
54 | public static void CastE(AfterAttackEventArgs args)
55 | {
56 | if (!ComboMenu.EBool.Enabled)
57 | {
58 | return;
59 | }
60 |
61 | var etarget = args.Target as AIHeroClient;
62 | if (etarget == null)
63 | {
64 | return;
65 | }
66 |
67 | var einput = E.GetPrediction(etarget);
68 | if (einput.Hitchance >= HitChance.High)
69 | {
70 | DelayAction.Add((int)Extension.eDelay,()=>E.Cast(einput.UnitPosition));
71 | }
72 | }
73 |
74 | public static void SemiCastR()
75 | {
76 | if (!ComboMenu.RKey.Active)
77 | {
78 | return;
79 | }
80 |
81 | var target = TargetSelector.GetTarget(R.Range,DamageType.Physical);
82 | var rinput = R.GetPrediction(target);
83 | if (rinput.Hitchance >= HitChance.High)
84 | {
85 | R.Cast(rinput.CastPosition);
86 | }
87 | }
88 | }
89 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Jhin/Modes/Laneclear.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EzAIO.Bases;
5 | using EzAIO.Extras;
6 | using static EzAIO.Champions.Jhin.Damage;
7 | using static EzAIO.Champions.Jhin.Configs;
8 | using static EzAIO.Champions.Jhin.Jhin;
9 | using static EzAIO.Extras.Helps;
10 | namespace EzAIO.Champions.Jhin.Modes
11 | {
12 | using static ChampionBases;
13 | static class Laneclear
14 | {
15 | public static void CastQ()
16 | {
17 | if (!LaneclearMenu.QSliderButton.Enabled)
18 | {
19 | return;
20 | }
21 |
22 | if (LaneclearMenu.QSliderButton.Value >= Player.ManaPercent)
23 | {
24 | return;
25 | }
26 |
27 | var bestMinion = GameObjects.EnemyMinions.FirstOrDefault(x =>
28 | x.IsValidTarget(Q.Range) && x.Health < QDamage(x) &&
29 | CountInRange(x,300, GameObjects.EnemyMinions) >= LaneclearMenu.QSlider.Value);
30 | if (bestMinion == null)
31 | {
32 | return;
33 | }
34 |
35 |
36 | Q.CastOnUnit(bestMinion);
37 | }
38 |
39 | public static void CastW()
40 | {
41 | if (!LaneclearMenu.WSliderButton.Enabled)
42 | {
43 | return;
44 | }
45 |
46 | if (LaneclearMenu.WSliderButton.Value >= Player.ManaPercent)
47 | {
48 | return;
49 | }
50 |
51 | var minions = GameObjects.EnemyMinions.Where(x => x.IsValidTarget(W.Range)).ToList();
52 | var farmLine = W.GetLineFarmLocation(minions, W.Width);
53 | if (farmLine.MinionsHit < LaneclearMenu.WSlider.Value)
54 | {
55 | return;
56 | }
57 |
58 | W.Cast(farmLine.Position);
59 | }
60 |
61 | public static void CastE()
62 | {
63 | if (!LaneclearMenu.ESliderButton.Enabled)
64 | {
65 | return;
66 | }
67 |
68 | if (LaneclearMenu.ESliderButton.Value >= Player.ManaPercent)
69 | {
70 | return;
71 | }
72 | var minions = GameObjects.EnemyMinions.Where(x => x.IsValidTarget(E.Range)).ToList();
73 | var farmPos = E.GetCircularFarmLocation(minions, E.Width);
74 | if (farmPos.MinionsHit < LaneclearMenu.ESlider.Value)
75 | {
76 | return;
77 | }
78 |
79 | E.Cast(farmPos.Position);
80 | }
81 | }
82 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Draven/Modes/Killsteal.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using static EzAIO.Champions.Draven.Damage;
4 | using EnsoulSharp.SDK;
5 | using EzAIO.Bases;
6 | using static EzAIO.Champions.Draven.Configs;
7 | namespace EzAIO.Champions.Draven.Modes
8 | {
9 | using static ChampionBases;
10 | class Killsteal
11 | {
12 | public static void Cast()
13 | {
14 | if (E.IsReady())
15 | {
16 | if (CastE())
17 | {
18 | return;
19 | }
20 | }
21 |
22 | if (R.IsReady())
23 | {
24 | CastR();
25 | }
26 |
27 | }
28 |
29 | public static bool CastE()
30 | {
31 | if (!KillstealMenu.EBool.Enabled)
32 | {
33 | return false;
34 | }
35 |
36 | foreach (var target in GameObjects.EnemyHeroes.Where(x=>x.IsValidTarget(E.Range) &&
37 | EDamage(x)>=x.Health-GameObjects.Player.CalculateDamage(x,DamageType.Physical,1) &&
38 | x.DistanceToPlayer()>GameObjects.Player.GetRealAutoAttackRange() &&
39 | !x.IsInvulnerable))
40 | {
41 | var einput = E.GetPrediction(target);
42 | if (einput.Hitchance >= HitChance.High)
43 | {
44 | return E.Cast(einput.UnitPosition);
45 | }
46 | }
47 |
48 | return false;
49 | }
50 |
51 | public static void CastR()
52 | {
53 | if (!KillstealMenu.RBool.Enabled)
54 | {
55 | return;
56 | }
57 |
58 | foreach (var target in GameObjects.EnemyHeroes.Where(x=>x.IsValidTarget(R.Range) &&
59 | RDamage(x)>=x.Health-GameObjects.Player.CalculateDamage(x,DamageType.Physical,1) &&
60 | x.Distance(Game.CursorPos)>GameObjects.Player.GetRealAutoAttackRange() &&
61 | !x.IsInvulnerable))
62 | {
63 | var rInput = R.GetPrediction(target);
64 | if (rInput.Hitchance >= HitChance.High)
65 | {
66 | R.Cast(rInput.UnitPosition);
67 | }
68 | return;
69 | }
70 | }
71 | }
72 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Kalista/Menus.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp.SDK.MenuUI;
2 | using static EzAIO.Champions.Kalista.Configs;
3 | using static EzAIO.Bases.DrawingBase;
4 | using static EzAIO.Champions.Kalista.Kalista;
5 | namespace EzAIO.Champions.Kalista
6 | {
7 | class Menus
8 | {
9 | public Menus()
10 | {
11 | Initialize();
12 | }
13 |
14 | public static void Initialize()
15 | {
16 | var automaticMenu = new Menu("Automatic", "Automatic")
17 | {
18 | AutomaticMenu.RAllysave,
19 | AutomaticMenu.WDrake,
20 | AutomaticMenu.WBaron,
21 | AutomaticMenu.MinionsChase
22 | };
23 | var comboMenu = new Menu("Combo", "Combo")
24 | {
25 | ComboMenu.QBool,
26 | };
27 | var harassMenu = new Menu("Harass", "Harass")
28 | {
29 | HarassMenu.QSliderButton,
30 | HarassMenu.ESliderButton
31 | };
32 | var killStealMenu = new Menu("Killsteal", "Kill Steal")
33 | {
34 | KillstealMenu.QSBool,
35 | KillstealMenu.EBool
36 | };
37 | var laneClearMenu = new Menu("Laneclear", "Lane Clear")
38 | {
39 | Laneclear.ESliderButton,
40 | Laneclear.Eminion,
41 | Laneclear.EBool
42 | };
43 | var lastHitMenu = new Menu("LastHit", "Last Hit")
44 | {
45 | Lasthit.ESliderButton
46 | };
47 | var jungleclearMenu = new Menu("Jungleclear", "Jungle Clear")
48 | {
49 | Jungleclear.QSliderButton,
50 | Jungleclear.ESliderButton
51 | };
52 | var drawMenu = new Menu("Draw", "Draw")
53 | {
54 | DrawMenu.QBool,
55 | DrawMenu.WBool,
56 | DrawMenu.EBool,
57 | DrawMenu.RBool,
58 | DrawConfig.Edmg,
59 | DrawConfig.EDmgJG,
60 | DrawConfig.Ecircle
61 | };
62 | var menuList = new[]
63 | {
64 | automaticMenu,
65 | comboMenu,
66 | harassMenu,
67 | killStealMenu,
68 | laneClearMenu,
69 | lastHitMenu,
70 | jungleclearMenu,
71 | drawMenu
72 | };
73 | foreach (var menu in menuList)
74 | {
75 | maineMenu.Add(menu);
76 | }
77 | }
78 | }
79 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Ezreal/Damage.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 |
5 | namespace EzAIO.Champions.Ezreal
6 | {
7 | using static ChampionBases;
8 | class Damage
9 | {
10 |
11 | private static readonly float[] QBaseDamage = {0f, 20f, 45f, 70f, 95f, 120f, 120f};
12 | private static readonly float[] WBaseDamage = {0f, 80f, 135f, 190f, 245f, 300f, 300f};
13 | private static readonly float[] WAPScaling = {0f, .7f, .75f, .80f, .85f, .90f, .90f};
14 | private static readonly float[] EBaseDamage = {0f, 80f, 130f, 180f, 230f, 280f, 280f};
15 | private static readonly float[] RBaseDamage = {0f, 350f, 500f, 650f, 650f};
16 |
17 | public static float QDamage(AIBaseClient target)
18 | {
19 | var qLevel = Q.Level;
20 | var qBaseDamage = QBaseDamage[qLevel] +
21 | (1.3f * GameObjects.Player.TotalAttackDamage +
22 | .15f * GameObjects.Player.TotalMagicalDamage);
23 | return (float)GameObjects.Player.CalculateDamage(target, DamageType.Physical, qBaseDamage);
24 | }
25 |
26 | public static float WDamage(AIBaseClient target)
27 | {
28 | var wLevel = W.Level;
29 | var wBaseDamage = WBaseDamage[wLevel] +
30 | (.6f * GameObjects.Player.TotalAttackDamage +
31 | WAPScaling[wLevel] * GameObjects.Player.TotalMagicalDamage);
32 | return (float)GameObjects.Player.CalculateDamage(target, DamageType.Magical, wBaseDamage);
33 | }
34 |
35 | public static float EDamage(AIBaseClient target)
36 | {
37 | var eLevel = E.Level;
38 | var eBaseDamage = EBaseDamage[eLevel] +
39 | (.5f * GameObjects.Player.TotalAttackDamage +
40 | .75f * GameObjects.Player.TotalMagicalDamage);
41 | return (float) GameObjects.Player.CalculateDamage(target, DamageType.Magical, eBaseDamage);
42 | }
43 |
44 | public static float RDamage(AIBaseClient target)
45 | {
46 | var rLevel = R.Level;
47 | var rBaseDamage = RBaseDamage[rLevel] +
48 | (1f * GameObjects.Player.TotalAttackDamage +
49 | .9f * GameObjects.Player.TotalMagicalDamage);
50 | if (target is AIMinionClient minion && !minion.IsJungle())
51 | {
52 | rBaseDamage /= 2;
53 | }
54 |
55 | return (float) GameObjects.Player.CalculateDamage(target, DamageType.Magical, rBaseDamage);
56 | }
57 | }
58 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Kaisa/Menus.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp.SDK.MenuUI;
2 | using static EzAIO.Champions.Kaisa.Configs;
3 | using static EzAIO.Bases.DrawingBase;
4 | using static EzAIO.Champions.Kaisa.Kaisa;
5 | namespace EzAIO.Champions.Kaisa
6 | {
7 | class Menus
8 | {
9 | public Menus()
10 | {
11 | Initialize();
12 | }
13 |
14 | public static void Initialize()
15 | {
16 | var miscellaneousMenu = new Menu("Miscellaneous", "Miscellaneous")
17 | {
18 | MiscellaneousMenu.EBool
19 | };
20 | var comboMenu = new Menu("Combo", "Combo")
21 | {
22 | ComboMenu.QBool,
23 | ComboMenu.WSliderButton,
24 | ComboMenu.WRange,
25 | ComboMenu.WList,
26 | ComboMenu.EBool,
27 | new MenuSeparator("sep1","R is manual")
28 | };
29 | var harassMenu = new Menu("Harass", "Harass")
30 | {
31 | HarassMenu.QSliderButton,
32 | HarassMenu.WSliderButton
33 | };
34 | var killstealMenu = new Menu("Killsteal", "Kill Steal")
35 | {
36 | KillstealMenu.WBool
37 | };
38 | var laneClearMenu = new Menu("Laneclear", "Lane Clear")
39 | {
40 | LaneclearMenu.QSliderButton,
41 | LaneclearMenu.ESliderButton,
42 | new Menu("custom", "Customization")
43 | {
44 | LaneclearMenu.QCount
45 | }
46 | };
47 | var jungleclearMenu = new Menu("Jungleclear", "Jungle Clear")
48 | {
49 | JungleclearMenu.QSliderButton,
50 | JungleclearMenu.WSliderButton,
51 | JungleclearMenu.ESliderButton
52 | };
53 | var structureclearMenu = new Menu("Structureclear", "Structure Clear")
54 | {
55 | StructureclearMenu.ESliderButton,
56 | StructureclearMenu.ERange
57 | };
58 | var drawMenu = new Menu("Draw", "Draw")
59 | {
60 | DrawMenu.QBool,
61 | DrawMenu.WBool,
62 | DrawMenu.RBool
63 | };
64 | var menuList = new[]
65 | {
66 | miscellaneousMenu,
67 | comboMenu,
68 | harassMenu,
69 | killstealMenu,
70 | laneClearMenu,
71 | jungleclearMenu,
72 | structureclearMenu,
73 | drawMenu
74 | };
75 | foreach (var menu in menuList)
76 | {
77 | mainMenu.Add(menu);
78 | }
79 | }
80 | }
81 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Ezreal/Modes/Harass.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EnsoulSharp.SDK.MenuUI;
4 | using EzAIO.Bases;
5 |
6 | namespace EzAIO.Champions.Ezreal.Modes
7 | {
8 | using static Ezreal;
9 | using static ChampionBases;
10 | static class Harass
11 | {
12 | internal static void CastQ()
13 | {
14 | if (!mainMenu["Harass"].GetValue("q").Enabled || !Q.IsReady())
15 | {
16 | return;
17 | }
18 |
19 | if (mainMenu["Harass"].GetValue("q").Value >= GameObjects.Player.ManaPercent)
20 | {
21 | return;
22 | }
23 |
24 | var priorityTarget = GameObjects.EnemyHeroes.FirstOrDefault(x => Extension.HasEssenceFlux(x, Q.Range));
25 | if (priorityTarget != null)
26 | {
27 | var qinpupt = Q.GetPrediction(priorityTarget);
28 | if (qinpupt.Hitchance >= HitChance.High)
29 | {
30 | Q.Cast(qinpupt.CastPosition);
31 | }
32 | }
33 |
34 | foreach (var target in GameObjects.EnemyHeroes.Where(x=>x.IsValidTarget(Q.Range) &&
35 | !Q.GetPrediction(x).CollisionObjects.Any()))
36 | {
37 | if (target == null)
38 | {
39 | continue;
40 | }
41 |
42 | var qinput = Q.GetPrediction(target);
43 | if (qinput.Hitchance >= HitChance.High)
44 | {
45 | Q.Cast(qinput.CastPosition);
46 | }
47 |
48 | }
49 | }
50 |
51 | internal static void CastW()
52 | {
53 | if (!mainMenu["Harass"].GetValue("w").Enabled || !W.IsReady())
54 | {
55 | return;
56 | }
57 |
58 | if (!Q.IsReady() &&
59 | GameObjects.Player.CountEnemyHeroesInRange(GameObjects.Player.GetRealAutoAttackRange()) == 0)
60 | {
61 | return;
62 | }
63 |
64 | if (mainMenu["Harass"].GetValue("w").Value >= GameObjects.Player.ManaPercent)
65 | {
66 | return;
67 | }
68 |
69 | var wtarget = W.GetTarget();
70 | if (wtarget == null)
71 | {
72 | return;
73 | }
74 |
75 | var winput = W.GetPrediction(wtarget);
76 | if (winput.Hitchance >= HitChance.High)
77 | {
78 | W.Cast(winput.CastPosition);
79 | }
80 | }
81 | }
82 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Jhin/Damage.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp;
2 | using EnsoulSharp.SDK;
3 | using EzAIO.Bases;
4 | using static EzAIO.Champions.Jhin.Jhin;
5 | using static EzAIO.Champions.Jhin.Extension;
6 | namespace EzAIO.Champions.Jhin
7 | {
8 | using static ChampionBases;
9 | class Damage
10 | {
11 | private static readonly float[] QBaseDamage = {0f, 45f, 70f, 95f, 120f, 145f, 145f};
12 | private static readonly float[] QMultiplier = {0f, .35f, .425f, .5f, .575f, .65f, .65f};
13 | private static readonly float[] WBaseDamage = {0f, 50f, 85f, 120f, 155f, 190f, 190f};
14 | private static readonly float[] EBaseDamage = {0f, 20f, 80f, 140f, 200f, 260f, 260f};
15 | private static readonly float[] RBaseDamage = {0f, 50f, 125f, 200f, 200f};
16 |
17 | public static float QDamage(AIBaseClient target)
18 | {
19 | var qLevel = Q.Level;
20 | var qBaseDamage = QBaseDamage[qLevel] + QMultiplier[qLevel] * Player.TotalAttackDamage +
21 | .6f * Player.TotalMagicalDamage;
22 | return (float) Player.CalculateDamage(target, DamageType.Physical, qBaseDamage);
23 | }
24 |
25 | public static float WDamage(AIBaseClient target)
26 | {
27 | var wLevel = W.Level;
28 | var wBaseDamage = WBaseDamage[wLevel] + .5f * Player.TotalAttackDamage;
29 | return (float) Player.CalculateDamage(target, DamageType.Physical, wBaseDamage);
30 | }
31 |
32 | public static float EDamage(AIBaseClient target)
33 | {
34 | var eLevel = E.Level;
35 | var eBaseDamage = EBaseDamage[eLevel] + 1.2f * Player.TotalAttackDamage +
36 | 1f * Player.TotalMagicalDamage;
37 | if (!(target is AIHeroClient) || target.RHBCAU())
38 | {
39 | eBaseDamage *= .65f;
40 | }
41 |
42 | return (float) Player.CalculateDamage(target, DamageType.Magical, eBaseDamage);
43 | }
44 |
45 | public static float RShot(AIBaseClient target)
46 | {
47 | var rLevel = R.Level;
48 | var rShotDamage = RBaseDamage[rLevel] + .2f * Player.TotalAttackDamage;
49 | rShotDamage *= (target.MaxHealth - target.Health)*2.5f;
50 | return (float) Player.CalculateDamage(target, DamageType.Physical, rShotDamage * (Extension.Has4Shot() ? 2 : 1));
51 | }
52 |
53 | public static float RDamage(AIBaseClient target)
54 | {
55 | var rLevel = R.Level;
56 | var rBaseDamage = RBaseDamage[rLevel] + .2f * Player.TotalAttackDamage;
57 | rBaseDamage *= (target.MaxHealth - target.Health) * 2.5f * 5;
58 | return (float) Player.CalculateDamage(target, DamageType.Physical, rBaseDamage);
59 | }
60 | }
61 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Ezreal/Modes/Combo.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp.SDK;
3 | using EnsoulSharp.SDK.MenuUI;
4 | using EzAIO.Bases;
5 |
6 | namespace EzAIO.Champions.Ezreal.Modes
7 | {
8 | using static Ezreal;
9 | using static ChampionBases;
10 | static class Combo
11 | {
12 |
13 | internal static void CastQ()
14 | {
15 | if(!mainMenu["Combo"].GetValue("q").Enabled || !Q.IsReady())
16 | {
17 | return;
18 | }
19 | var qtarget = Q.GetTarget();
20 | if (qtarget == null)
21 | {
22 | return;
23 | }
24 |
25 | if (qtarget.DistanceToPlayer() < GameObjects.Player.GetRealAutoAttackRange(qtarget))
26 | {
27 | return;
28 | }
29 | var priorityTarget = GameObjects.EnemyHeroes.FirstOrDefault(x => Extension.HasEssenceFlux(x, Q.Range));
30 | if (priorityTarget != null)
31 | {
32 | var qinpupt = Q.GetPrediction(priorityTarget);
33 | if (qinpupt.Hitchance >= HitChance.High && Q.IsInRange(qinpupt.CastPosition))
34 | {
35 | Q.Cast(qinpupt.CastPosition);
36 | }
37 | }
38 | var qinput = Q.GetPrediction(qtarget);
39 | if (qinput.Hitchance >= HitChance.High && Q.IsInRange(qinput.CastPosition))
40 | {
41 | Q.Cast(qinput.CastPosition);
42 | }
43 | }
44 |
45 | internal static void CastW()
46 | {
47 | if (!mainMenu["Combo"].GetValue("w").Enabled || !W.IsReady())
48 | {
49 | return;
50 | }
51 |
52 | var wtarget = W.GetTarget();
53 | if (wtarget == null)
54 | {
55 | return;
56 | }
57 |
58 | if (wtarget.DistanceToPlayer() < GameObjects.Player.GetRealAutoAttackRange(wtarget))
59 | {
60 | return;
61 | }
62 |
63 | var winput = W.GetPrediction(wtarget);
64 | if (winput.Hitchance >= HitChance.High && W.IsInRange(winput.CastPosition))
65 | {
66 | W.Cast(winput.CastPosition);
67 | }
68 |
69 | }
70 |
71 | internal static void SemiR()
72 | {
73 | if (!mainMenu["Combo"].GetValue("rsemiautomatic").Active || !R.IsReady())
74 | {
75 | return;
76 | }
77 |
78 | var rtarget = R.GetTarget();
79 | var rinput = R.GetPrediction(rtarget);
80 | if(rinput.Hitchance>=HitChance.High && R.IsInRange(rinput.CastPosition))
81 | {
82 | R.Cast(rinput.CastPosition);
83 | }
84 | }
85 | }
86 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Jhin/Modes/Killsteal.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EzAIO.Bases;
5 | using static EzAIO.Champions.Jhin.Damage;
6 | using static EzAIO.Champions.Jhin.Configs;
7 | using static EzAIO.Champions.Jhin.Jhin;
8 | namespace EzAIO.Champions.Jhin.Modes
9 | {
10 | using static ChampionBases;
11 | static class Killsteal
12 | {
13 | public static void Cast()
14 | {
15 | if (Q.IsReady() && KillstealMenu.QBool.Enabled)
16 | {
17 | CastQ();
18 | }
19 |
20 | if (W.IsReady() && KillstealMenu.WBool.Enabled)
21 | {
22 | CastW();
23 | }
24 |
25 | if (R.IsReady() && Extension.IsUltShooting() && KillstealMenu.RShoot.Enabled)
26 | {
27 | CastR();
28 | }
29 | }
30 |
31 | public static void CastQ()
32 | {
33 | foreach (var target in GameObjects.EnemyHeroes.Where(x => x.IsValidTarget(Q.Range) &&
34 | QDamage(x) >= x.Health -
35 | Player.CalculateDamage(x, DamageType.Physical,
36 | 1) &&
37 | !x.IsInvulnerable))
38 | {
39 | Q.CastOnUnit(target);
40 | }
41 | }
42 |
43 | public static void CastW()
44 | {
45 | foreach (var target in GameObjects.EnemyHeroes.Where(x => x.IsValidTarget(W.Range) &&
46 | WDamage(x) >= x.Health -
47 | Player.CalculateDamage(x, DamageType.Physical,
48 | 1) &&
49 | !x.IsInvulnerable))
50 | {
51 | var winput = W.GetPrediction(target);
52 | if (winput.Hitchance >= HitChance.High && W.IsInRange(winput.CastPosition))
53 | {
54 | W.Cast(winput.CastPosition);
55 | }
56 | }
57 | }
58 |
59 | public static void CastR()
60 | {
61 | if (!R.IsReady())
62 | {
63 | return;
64 | }
65 | foreach (var target in Extension.EnemiesInsideCone().Where(x =>
66 | RDamage(x) >= x.Health - Player.CalculateDamage(x, DamageType.Physical, 1)))
67 | {
68 | var rinput = Jhin.RShot.GetPrediction(target);
69 | if (rinput.Hitchance >= HitChance.High && Jhin.RShot.IsInRange(rinput.CastPosition))
70 | {
71 | Jhin.RShot.Cast(rinput.CastPosition);
72 | }
73 | }
74 | }
75 | }
76 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Jinx/Menus.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp.SDK.MenuUI;
2 | using static EzAIO.Champions.Jinx.Configs;
3 | using static EzAIO.Bases.DrawingBase;
4 | using static EzAIO.Champions.Jinx.Jinx;
5 |
6 | namespace EzAIO.Champions.Jinx
7 | {
8 | class Menus
9 | {
10 | public Menus()
11 | {
12 | Initialize();
13 | }
14 |
15 | public static void Initialize()
16 | {
17 | var automaticMenu = new Menu("Automatic", "Automatic")
18 | {
19 | AutomaticMenu.WCCBool,
20 | AutomaticMenu.ECCBool,
21 | AutomaticMenu.ETeleportBool
22 | };
23 | var comboMenu = new Menu("Combo", "Combo")
24 | {
25 | ComboMenu.QBool,
26 | ComboMenu.WBool,
27 | ComboMenu.EnemiesBool,
28 | ComboMenu.PBool,
29 | ComboMenu.EKey,
30 | ComboMenu.Rkey,
31 | ComboMenu.RSliderRange,
32 | ComboMenu.RSafeBool
33 | };
34 | ComboMenu.EKey.AddPermashow();
35 | ComboMenu.Rkey.AddPermashow();
36 | var harassMenu = new Menu("Harass", "Harass")
37 | {
38 | HarassMenu.QSliderButton,
39 | HarassMenu.WSliderButton,
40 | HarassMenu.EnemiesBool
41 | };
42 | var killstealMenu = new Menu("Killsteal", "Kill Steal")
43 | {
44 | KillstealMenu.WSliderButton,
45 | KillstealMenu.RSliderButton
46 | };
47 | var laneclearMenu = new Menu("Laneclear", "Lane Clear")
48 | {
49 | LaneclearMenu.QSliderButton,
50 | LaneclearMenu.SwapBool,
51 | new Menu("customization", "Customization")
52 | {
53 | LaneclearMenu.QCountSlider
54 | }
55 | };
56 | var lasthitMenu = new Menu("Lasthit", "Last Hit")
57 | {
58 | LasthitMenu.QSliderButton
59 | };
60 | var jungleclearMenu = new Menu("Jungleclear", "Jungle CLear")
61 | {
62 | JungleclearMenu.QSliderButton,
63 | JungleclearMenu.WSliderButton
64 | };
65 | var drawMenu = new Menu("Draw", "Draw")
66 | {
67 | DrawConfig.QRRange,
68 | DrawMenu.WBool,
69 | DrawMenu.EBool,
70 | DrawMenu.RBool,
71 | };
72 | var menuList = new[]
73 | {
74 | automaticMenu,
75 | comboMenu,
76 | harassMenu,
77 | killstealMenu,
78 | laneclearMenu,
79 | lasthitMenu,
80 | jungleclearMenu,
81 | drawMenu
82 | };
83 | foreach (var menu in menuList)
84 | {
85 | mainMenu.Add(menu);
86 | }
87 |
88 | }
89 | }
90 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Jhin/Menus.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp.SDK.MenuUI;
2 | using static EzAIO.Champions.Jhin.Configs;
3 | using static EzAIO.Bases.DrawingBase;
4 | using static EzAIO.Champions.Jhin.Jhin;
5 |
6 | namespace EzAIO.Champions.Jhin
7 | {
8 | class Menus
9 | {
10 | public Menus()
11 | {
12 | Initialize();
13 | }
14 | public static void Initialize()
15 | {
16 | var automaticMenu = new Menu("Automatic", "Automatic")
17 | {
18 | AutomaticMenu.ECCBool,
19 | AutomaticMenu.ETeleportBool
20 | };
21 | var comboMenu = new Menu("Combo", "Combo")
22 | {
23 | ComboMenu.QBool,
24 | ComboMenu.QReloadBool,
25 | ComboMenu.WBool,
26 | ComboMenu.WRangeBool,
27 | ComboMenu.WCCBool,
28 | ComboMenu.EBool,
29 | ComboMenu.EReloadBool,
30 | ComboMenu.RBool,
31 | ComboMenu.RCursor,
32 | };
33 | var harassMenu = new Menu("Harass", "Harass")
34 | {
35 | HarassMenu.QSliderButton
36 | };
37 | var killstealMenu = new Menu("Killsteal", "Kill Steal")
38 | {
39 | KillstealMenu.QBool,
40 | KillstealMenu.WBool,
41 | KillstealMenu.RShoot
42 | };
43 | var laneclearMenu = new Menu("Laneclear", "Lane Clear")
44 | {
45 | LaneclearMenu.QSliderButton,
46 | LaneclearMenu.WSliderButton,
47 | LaneclearMenu.ESliderButton,
48 | new Menu("Customization", "Customization")
49 | {
50 | LaneclearMenu.QSlider,
51 | LaneclearMenu.WSlider,
52 | LaneclearMenu.ESlider
53 | }
54 | };
55 | var jungleclearMenu = new Menu("Jungleclear", "Jungle Clear")
56 | {
57 | JungleclearMenu.QSliderButton,
58 | JungleclearMenu.ESliderButton
59 | };
60 | var lasthitMenu = new Menu("Lasthit", "Last Hit")
61 | {
62 | LasthitMenu.QSliderButton,
63 | LasthitMenu.QReloadBool
64 | };
65 | var drawMenu = new Menu("Draw", "Draw")
66 | {
67 | DrawMenu.QBool,
68 | DrawMenu.WBool,
69 | DrawMenu.EBool,
70 | DrawMenu.RBool,
71 |
72 | };
73 | var menuList = new[]
74 | {
75 | automaticMenu,
76 | comboMenu,
77 | harassMenu,
78 | killstealMenu,
79 | laneclearMenu,
80 | jungleclearMenu,
81 | lasthitMenu,
82 | drawMenu
83 | };
84 | foreach (var menu in menuList)
85 | {
86 | mainMenu.Add(menu);
87 | }
88 | }
89 | }
90 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Tristana/Menus.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp.SDK.MenuUI;
2 | using static EzAIO.Champions.Tristana.Configs;
3 | using static EzAIO.Bases.DrawingBase;
4 | using static EzAIO.Champions.Tristana.Tristana;
5 | namespace EzAIO.Champions.Tristana
6 | {
7 | class Menus
8 | {
9 | public Menus()
10 | {
11 | Initialize();
12 | }
13 | public static void Initialize()
14 | {
15 | var automaticMenu = new Menu("Automatic", "Automatic")
16 | {
17 | //AutomaticMenu.AntiGrabBool,
18 | AutomaticMenu.RPeelSliderButton
19 | };
20 | var comboMenu = new Menu("Combo", "Combo")
21 | {
22 | ComboMenu.QBool,
23 | ComboMenu.EBool,
24 | ComboMenu.RSemiCastBool
25 | };
26 | ComboMenu.RSemiCastBool.AddPermashow();
27 | var harassMenu = new Menu("Harass", "Harass")
28 | {
29 | HarassMenu.QSliderButton,
30 | HarassMenu.ESliderButton
31 | };
32 | var killstealMenu = new Menu("Killsteal", "Kill Steal")
33 | {
34 | KillstealMenu.RBool
35 | };
36 | var laneclearMenu = new Menu("Laneclear", "Lane Clear")
37 | {
38 | LaneclearMenu.QSliderButton,
39 | LaneclearMenu.ESliderButton,
40 | new Menu("customization","Customization")
41 | {
42 | LaneclearMenu.EMinionSlider
43 | }
44 | };
45 | var lasthitMenu = new Menu("Lasthit", "Last Hit")
46 | {
47 | LasthitMenu.QSliderButton
48 | };
49 | var jungleclearMenu = new Menu("Jungleclear", "Jungle Clear")
50 | {
51 | JungleClearMenu.QSliderButton,
52 | JungleClearMenu.ESliderButton
53 | };
54 | var structureclearMenu = new Menu("Structureclear", "Structure Clear")
55 | {
56 | StructureclearMenu.QSliderButton,
57 | StructureclearMenu.ESliderButton,
58 | new Menu("customization","Customization")
59 | {
60 | StructureclearMenu.NoEnemiesRange,
61 | }
62 | };
63 | var drawMenu = new Menu("Draw", "Draw")
64 | {
65 | DrawMenu.WBool,
66 | DrawMenu.EBool,
67 | DrawMenu.RBool
68 | };
69 | var menuLsit = new[]
70 | {
71 | automaticMenu,
72 | comboMenu,
73 | harassMenu,
74 | killstealMenu,
75 | laneclearMenu,
76 | lasthitMenu,
77 | jungleclearMenu,
78 | structureclearMenu,
79 | drawMenu
80 | };
81 | foreach (var menu in menuLsit)
82 | {
83 | mainMenu.Add(menu);
84 | }
85 | }
86 | }
87 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Jinx/Modes/Combo.cs:
--------------------------------------------------------------------------------
1 | using EnsoulSharp.SDK;
2 | using EzAIO.Bases;
3 | using static EzAIO.Champions.Jinx.Configs;
4 | using static EzAIO.Champions.Jinx.Jinx;
5 | namespace EzAIO.Champions.Jinx.Modes
6 | {
7 | using static ChampionBases;
8 | static class Combo
9 | {
10 | public static void CastQ()
11 | {
12 | if (!ComboMenu.QBool.Enabled)
13 | {
14 | return;
15 | }
16 |
17 | var target = TargetSelector.GetTarget(Extension.RocketRange,DamageType.Physical);
18 | if (target == null)
19 | {
20 | return;
21 | }
22 |
23 | if (Extension.Swap(target))
24 | {
25 | Q.Cast();
26 | }
27 | }
28 |
29 | public static void CastW()
30 | {
31 | if (!ComboMenu.WBool.Enabled)
32 | {
33 | return;
34 | }
35 |
36 | if (ComboMenu.PBool.Enabled && Extension.ActivatedPassive)
37 | {
38 | return;
39 | }
40 |
41 | if (ComboMenu.EnemiesBool.Enabled && Player.CountEnemyHeroesInRange(Extension.RocketRange) > 0)
42 | {
43 | return;
44 | }
45 |
46 | var target = W.GetTarget();
47 | if (target == null)
48 | {
49 | return;
50 | }
51 |
52 | var winput = W.GetPrediction(target);
53 | if (winput.Hitchance >= HitChance.High && Q.IsInRange(winput.CastPosition))
54 | {
55 | W.Cast(winput.CastPosition);
56 | }
57 | }
58 |
59 | public static void CastE()
60 | {
61 | if (!ComboMenu.EKey.Enabled)
62 | {
63 | return;
64 | }
65 |
66 | var target = E.GetTarget();
67 | if (target == null)
68 | {
69 | return;
70 | }
71 |
72 | var einput = E.GetPrediction(target);
73 | if (einput.Hitchance >= HitChance.High && E.IsInRange(einput.CastPosition))
74 | {
75 | E.Cast(einput.CastPosition);
76 | }
77 | }
78 |
79 | public static void SemiCastR()
80 | {
81 | if (!ComboMenu.Rkey.Active)
82 | {
83 | return;
84 | }
85 |
86 | if (ComboMenu.RSafeBool.Enabled && Player.CountEnemyHeroesInRange(Extension.RocketRange) > 0)
87 | {
88 | return;
89 | }
90 |
91 | var target = R.GetTarget();
92 | if (target == null)
93 | {
94 | return;
95 | }
96 |
97 | var rinput = R.GetPrediction(target);
98 | if (rinput.Hitchance >= HitChance.High && R.IsInRange(rinput.CastPosition))
99 | {
100 | R.Cast(rinput.CastPosition);
101 | }
102 | }
103 | }
104 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Kalista/DamageIndicator.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Linq;
3 | using EnsoulSharp.SDK;
4 | using SharpDX;
5 | using static EzAIO.Program;
6 | using static EzAIO.Bases.DrawingBase;
7 | using static EzAIO.Champions.Kalista.Damage;
8 | using static EzAIO.Bases.ChampionBases;
9 | using static EzAIO.Champions.Kalista.Configs;
10 | using Color = System.Drawing.Color;
11 |
12 | namespace EzAIO.Champions.Kalista
13 | {
14 | static class DamageIndicator
15 | {
16 | public static void EChamps()
17 | {
18 | if (!DrawConfig.Edmg.Enabled)
19 | {
20 | return;
21 | }
22 |
23 | foreach (var target in GameObjects.EnemyHeroes.Where(x => x.IsVisible &&
24 | !x.IsDead && Extension.HasRendBuff(x, 15000f)))
25 | {
26 | var targetpos = target.HPBarPosition;
27 | var DMGporcent = MathUtil.Clamp((EDamage(target) / target.Health + target.PhysicalShield) * 100, 0,
28 | 100);
29 | if (DMGporcent != 0)
30 | {
31 | DrawText(TextBold,Math.Round(DMGporcent).ToString()+"%",targetpos.X+50,targetpos.Y-70,(DMGporcent>=100) ? SharpDX.Color.Cyan : SharpDX.Color.White);
32 | }
33 | }
34 | }
35 |
36 | public static void EMobs()
37 | {
38 | if (!DrawConfig.EDmgJG.Enabled)
39 | {
40 | return;
41 | }
42 |
43 | foreach (var mobs in GameObjects.Jungle.Where(x => x.IsVisible &&
44 | !x.IsDead && Extension.HasRendBuff(x, 15000f)))
45 | {
46 | if (mobs == null)
47 | {
48 | return;
49 | }
50 | var mobpos = mobs.HPBarPosition;
51 | var DMGporcent = MathUtil.Clamp((EDamage(mobs) / mobs.Health + mobs.PhysicalShield) * 100, 0, 100);
52 | if (DMGporcent != 0)
53 | {
54 | DrawText(TextBold,Math.Round(DMGporcent).ToString()+"%",mobpos.X+50,mobpos.Y-70,(DMGporcent>=100) ? SharpDX.Color.Cyan : SharpDX.Color.White);
55 | }
56 |
57 | }
58 | }
59 |
60 | public static void eCircle()
61 | {
62 | if (!DrawConfig.Ecircle.Enabled)
63 | {
64 | return;
65 | }
66 |
67 | foreach (var minion in GameObjects.EnemyMinions.Where(x =>
68 | x.IsValidTarget(E.Range) && Extension.HasRendBuff(x, 3000f)))
69 | {
70 | if (minion == null)
71 | {
72 | return;
73 | }
74 |
75 | if (EDamage(minion) >=
76 | minion.Health - GameObjects.Player.CalculateDamage(minion, DamageType.Physical, 1))
77 | {
78 | DrawCircle(minion.Position,20,Color.Cyan);
79 | }
80 | }
81 | }
82 | }
83 | }
--------------------------------------------------------------------------------
/EzAIO/Champions/Katarina/Modes/Laneclear.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using EnsoulSharp;
3 | using EnsoulSharp.SDK;
4 | using EzAIO.Bases;
5 | using static EzAIO.Champions.Katarina.Configs;
6 | using static EzAIO.Champions.Katarina.Damage;
7 | namespace EzAIO.Champions.Katarina.Modes
8 | {
9 | using static ChampionBases;
10 | static class Laneclear
11 | {
12 | public static void CastQ()
13 | {
14 | if (!LaneclearMenu.QBool.Enabled || !Q.IsReady())
15 | {
16 | return;
17 | }
18 |
19 | var minion = GameObjects.EnemyMinions.FirstOrDefault(x => x.IsValidTarget(Q.Range));
20 | if (minion == null)
21 | {
22 | return;
23 | }
24 |
25 | Q.CastOnUnit(minion);
26 | }
27 |
28 | public static void CastW()
29 | {
30 | if (!LaneclearMenu.WSliderButton.Enabled || !W.IsReady())
31 | {
32 | return;
33 | }
34 |
35 | if (LaneclearMenu.WSliderButton.Value > GameObjects.GetMinions(300).Count())
36 | {
37 | return;
38 | }
39 |
40 | if (W.Cast())
41 | {
42 | Extension.eDelay = Game.Time + 1.2f;
43 | }
44 | }
45 |
46 | public static void CastQLast()
47 | {
48 | if (!LasthitMenu.QBool.Enabled || !Q.IsReady())
49 | {
50 | return;
51 | }
52 |
53 | var target = GameObjects.EnemyMinions.Where(x => x.IsValidTarget(Q.Range) &&
54 | QDamage(x) >= x.Health -
55 | GameObjects.Player.CalculateDamage(x, DamageType.Magical,
56 | 1)).OrderByDescending(x => x.MagicalShield)
57 | .FirstOrDefault();
58 | if (target == null)
59 | {
60 | return;
61 | }
62 |
63 | Q.CastOnUnit(target);
64 | }
65 |
66 | public static void CastE()
67 | {
68 | if (Extension.eDelay > Game.Time)
69 | {
70 | return;
71 | }
72 |
73 | if (!LaneclearMenu.ESliderButton.Enabled || !E.IsReady())
74 | {
75 | return;
76 | }
77 |
78 | var dagger = Extension.Daggers.Where(x =>
79 | (GameObjects.EnemyMinions.Count(t => t.IsValidTarget(450,false,x.Position)) > LaneclearMenu.ESliderButton.Value) &&
80 | x.DistanceToPlayer() <= E.Range + 50)
81 | .OrderByDescending(x => (GameObjects.EnemyMinions.Count(t => t.IsValidTarget(450)))).FirstOrDefault();
82 | if (dagger == null)
83 | {
84 | return;
85 | }
86 |
87 | if (LaneclearMenu.ETurretBool.Enabled && (GameObjects.Player.Position.IsUnderEnemyTurret() || dagger.Position.IsUnderEnemyTurret()))
88 | {
89 | return;
90 | }
91 |
92 | E.Cast(dagger.Position);
93 | }
94 | }
95 | }
--------------------------------------------------------------------------------