private static void AutoWard() { if (TristanaMenu.checkWard()) { foreach (var place in wardLocation.Normal.Where(pos => pos.Distance(ObjectManager.Player.Position) <= 1000)) { if (MyActivator.WardingTotem.IsOwned() && MyActivator.WardingTotem.IsReady() && TristanaMenu.wardingTotem() && !IsWarded(place)) { MyActivator.WardingTotem.Cast(place); time = Environment.TickCount + 5000; } if (MyActivator.GreaterStealthTotem.IsOwned() && MyActivator.GreaterStealthTotem.IsReady() && TristanaMenu.greaterStealthTotem() && !IsWarded(place) && (Environment.TickCount > time)) { MyActivator.GreaterStealthTotem.Cast(place); time = Environment.TickCount + 5000; } if (MyActivator.GreaterVisionTotem.IsOwned() && MyActivator.GreaterVisionTotem.IsReady() && TristanaMenu.greaterVisionTotem() && !IsWarded(place) && (Environment.TickCount > time)) { MyActivator.GreaterVisionTotem.Cast(place); time = Environment.TickCount + 5000; } if (MyActivator.FarsightAlteration.IsOwned() && MyActivator.FarsightAlteration.IsReady() && TristanaMenu.farsightAlteration() && !IsWarded(place) && (Environment.TickCount > time)) { MyActivator.FarsightAlteration.Cast(place); time = Environment.TickCount + 5000; } if (MyActivator.PinkVision.IsOwned() && MyActivator.PinkVision.IsReady() && TristanaMenu.pinkWard() && !IsWarded(place) && (Environment.TickCount > time)) { MyActivator.PinkVision.Cast(place); time = Environment.TickCount + 5000; } } } }
private static void OnHarrass() { var enemies = EntityManager.Heroes.Enemies.OrderByDescending (a => a.HealthPercent).Where(a => !a.IsMe && a.IsValidTarget() && a.Distance(Player) <= E.Range); var target = TargetSelector.GetTarget(Q.Range, DamageType.Physical); if (!target.IsValidTarget()) { return; } if (E.IsReady() && target.IsValidTarget(E.Range)) { foreach (var eenemies in enemies) { var useE = TristanaMenu.MyCombo["harass.E" + eenemies.ChampionName].Cast <CheckBox>().CurrentValue; if (useE) { E.Cast(eenemies); } } } if (TristanaMenu.HarassQ() && target.IsValidTarget(Q.Range) && Player.ManaPercent >= TristanaMenu.HarassQe() && target.GetBuffCount("tristanaecharge") > 0) { Q.Cast(); } }
private static void KillSteal() { var enemies = EntityManager.Heroes.Enemies.OrderByDescending (a => a.HealthPercent).Where(a => !a.IsMe && a.IsValidTarget() && a.Distance(Player) <= R.Range && !a.IsDead && !a.IsZombie && a.HealthPercent <= 25); foreach ( var target2 in enemies) { var tawah = EntityManager.Turrets.Enemies.FirstOrDefault( a => !a.IsDead && a.Distance(target2) <= 775 + Player.BoundingRadius + (target2.BoundingRadius / 2) + 44.2); var useWR = TristanaMenu.MyHarass["killsteal.WR" + target2.ChampionName].Cast <CheckBox>().CurrentValue; if (useWR && TristanaMenu.KillstealR() && R.IsReady() && target2.Health + target2.AttackShield < Player.GetSpellDamage(target2, SpellSlot.R) && !target2.HasBuff("tristanaecharge")) { R.Cast(target2); } if (useWR && TristanaMenu.KillstealW() && W.IsReady() && target2.Health + target2.AttackShield < Player.GetSpellDamage(target2, SpellSlot.W) && target2.Position.CountEnemiesInRange(800) == 1 && tawah == null && Player.Mana >= 120) { W.Cast(target2.Position); } } }
private void CreateTables() { if (TristanaMenu.checkWard()) { Normal.Add(new Vector3(9918f, 6538f, 33.13258f)); Normal.Add(new Vector3(12504f, 1490f, 53.74172f)); Normal.Add(new Vector3(13312f, 2448f, 51.3669f)); Normal.Add(new Vector3(11852f, 3940f, -68.11531f)); Normal.Add(new Vector3(8180f, 5194f, 52.64763f)); Normal.Add(new Vector3(6496f, 4676f, 48.5272f)); Normal.Add(new Vector3(3416f, 7706f, 52.13334f)); Normal.Add(new Vector3(2340f, 9692f, 54.17554f)); Normal.Add(new Vector3(4710f, 10000f, -71.23711f)); Normal.Add(new Vector3(6850f, 9662f, 54.40515f)); Normal.Add(new Vector3(6868f, 11398f, 53.82961f)); Normal.Add(new Vector3(8286f, 10182f, 50.06982f)); Normal.Add(new Vector3(3074f, 10784f, -70.27567f)); Normal.Add(new Vector3(4484f, 11804f, 56.8484f)); Normal.Add(new Vector3(2364f, 13474f, 52.8381f)); Normal.Add(new Vector3(1136f, 12322f, 52.8381f)); Normal.Add(new Vector3(4460f, 11794f, 56.8484f)); Normal.Add(new Vector3(9982f, 7730f, 51.75227f)); Normal.Add(new Vector3(11450f, 7212f, 51.7251f)); Normal.Add(new Vector3(12546f, 5192f, 51.7294f)); Normal.Add(new Vector3(7800f, 3566f, 52.53794f)); } }
private static void Ignite() { var autoIgnite = TargetSelector.GetTarget(MyActivator.Ignite.Range, DamageType.True); if (autoIgnite != null && autoIgnite.Health <= Player.GetSpellDamage(autoIgnite, MyActivator.Ignite.Slot) || autoIgnite != null && autoIgnite.HealthPercent <= TristanaMenu.SpellsIgniteFocus()) { MyActivator.Ignite.Cast(autoIgnite); } }
private static void AntiGapCloser(AIHeroClient sender, Gapcloser.GapcloserEventArgs e) { if (!e.Sender.IsValidTarget() || !TristanaMenu.GapcloserR() || e.Sender.Type != Player.Type || !e.Sender.IsEnemy) { return; } R.Cast(e.Sender); }
private static void OnFlee() { if (W.IsReady() && Player.ManaPercent >= TristanaMenu.FleeM()) { W.Cast(Player.ServerPosition.Extend(Game.CursorPos, W.Range).To3D()); //Surely not stole from MarioGK } if (R.IsReady() && Player.HealthPercent <= TristanaMenu.FleeHP()) { R.Cast(Target); } }
private static void OnLaneClear() { var count = EntityManager.MinionsAndMonsters.GetLaneMinions(EntityManager.UnitTeam.Enemy, Player.ServerPosition, Player.AttackRange, false).Count(); var tawah = EntityManager.Turrets.Enemies.FirstOrDefault(t => !t.IsDead && t.IsInRange(Player, 800)); var source = EntityManager.MinionsAndMonsters.GetLaneMinions(EntityManager.UnitTeam.Enemy, Player.ServerPosition, Player.AttackRange).OrderByDescending(a => a.MaxHealth).FirstOrDefault(); var sourceE = EntityManager.MinionsAndMonsters.GetLaneMinions() .FirstOrDefault(m => m.IsValidTarget(Player.AttackRange) && m.GetBuffCount("tristanaecharge") > 0); if (count == 0) { return; } if (E.IsReady() && TristanaMenu.LcE() && source.IsValidTarget(E.Range) && Player.ManaPercent >= TristanaMenu.LcM()) { E.Cast(source); Orbwalker.ForcedTarget = sourceE; } if (Q.IsReady() && TristanaMenu.LcQ() && source.IsValidTarget(Q.Range) && Player.ManaPercent >= TristanaMenu.LcM()) { Q.Cast(); } if (W.IsReady() && TristanaMenu.LcW() && TristanaMenu.LcW1() <= count && Player.ManaPercent >= TristanaMenu.LcM()) { if (source != null) { W.Cast(source.Position); } } if (tawah == null) { return; } if (TristanaMenu.LcE1() && tawah.IsInRange(Player, E.Range) && E.IsReady() && Player.ManaPercent >= TristanaMenu.LcM()) { E.Cast(tawah); Q.Cast(); } if (TristanaMenu.LcQ() && tawah.IsInRange(Player, Q.Range) && Q.IsReady() && Player.ManaPercent >= TristanaMenu.LcM()) { Q.Cast(); } }
private static void Interrupter_OnInterruptableSpell(Obj_AI_Base sender, Interrupter.InterruptableSpellEventArgs e) { if (!sender.IsValidTarget(Q.Range) || e.DangerLevel != DangerLevel.High || e.Sender.Type != Player.Type || !e.Sender.IsEnemy) { return; } if (R.IsReady() && R.IsInRange(sender) && TristanaMenu.GapcloserR1()) { R.Cast(sender); } }
private static void OnGameUpdate(EventArgs args) { if (MyActivator.Barrier != null) { Barrier(); } if (MyActivator.Heal != null) { Heal(); } if (MyActivator.Ignite != null) { Ignite(); } if (TristanaMenu.checkSkin()) { Player.SetSkinId(TristanaMenu.SkinId()); } }
private static void OnLoadingComplete(EventArgs args) //Let's start with the addon, when the loading screen finished then the addon have to start. { // With if player.ChampionName we are searching if out champion is Tristana, if we put != is If not tristana then Fack off if (Player.ChampionName != "Tristana") { return; } //Abilitysequence is needed for my autolvlup, we will see it in the program AbilitySequence = new[] { 3, 2, 1, 3, 3, 4, 3, 1, 3, 1, 4, 1, 1, 2, 2, 4, 2, 2 }; //Like every nob addon, we want to write something in chat like our addon is loaded and some spam like this //Using Chat.Print helps you to write this, you can also choose how to type it with Color.Red like Annie bad days Chat.Print("Tristana Loaded!", Color.CornflowerBlue); Chat.Print("Enjoy the game and DONT FLAME!", Color.Red); //We start to load every single thing we need for let the addon works properly or every file we have separately to this TristanaMenu.LoadMenu(); wardLocation = new WardLocation(); Game.OnTick += GameOnTick; MyActivator.LoadSpells(); Game.OnUpdate += OnGameUpdate; #region Skill //As i said first, When we load the game we have also to set the skills right? //Then let's do it with each skill //Q was active then we have to set it as active Q = new Spell.Active(SpellSlot.Q, 550); //W was a skillshot, precisely a circular one so we have to write Spell.Skillshot //For the skillshot we have to define if it is linear, circual or madafaker //We call it by SkillShotType W = new Spell.Skillshot(SpellSlot.W, 900, SkillShotType.Circular, 450, int.MaxValue, 180); E = new Spell.Targeted(SpellSlot.E, 550); R = new Spell.Targeted(SpellSlot.R, 550); #endregion Obj_AI_Base.OnLevelUp += Obj_AI_Base_OnLevelUp; Interrupter.OnInterruptableSpell += Interrupter_OnInterruptableSpell; Gapcloser.OnGapcloser += AntiGapCloser; Obj_AI_Base.OnBuffGain += OnBuffGain; GameObject.OnCreate += GameObject_OnCreate; Drawing.OnDraw += GameOnDraw; }
private static void AutoPotions() { if (TristanaMenu.SpellsPotionsCheck() && !Player.IsInShopRange() && Player.HealthPercent <= TristanaMenu.SpellsPotionsHP() && !(Player.HasBuff("RegenerationPotion") || Player.HasBuff("ItemCrystalFlaskJungle") || Player.HasBuff("ItemMiniRegenPotion") || Player.HasBuff("ItemCrystalFlask") || Player.HasBuff("ItemDarkCrystalFlask"))) { if (MyActivator.HuntersPot.IsReady() && MyActivator.HuntersPot.IsOwned()) { MyActivator.HuntersPot.Cast(); } if (MyActivator.CorruptPot.IsReady() && MyActivator.CorruptPot.IsOwned()) { MyActivator.CorruptPot.Cast(); } if (MyActivator.Biscuit.IsReady() && MyActivator.Biscuit.IsOwned()) { MyActivator.Biscuit.Cast(); } if (MyActivator.HPPot.IsReady() && MyActivator.HPPot.IsOwned()) { MyActivator.HPPot.Cast(); } if (MyActivator.RefillPot.IsReady() && MyActivator.RefillPot.IsOwned()) { MyActivator.RefillPot.Cast(); } } if (TristanaMenu.SpellsPotionsCheck() && !Player.IsInShopRange() && Player.ManaPercent <= TristanaMenu.SpellsPotionsM() && !(Player.HasBuff("RegenerationPotion") || Player.HasBuff("ItemCrystalFlaskJungle") || Player.HasBuff("ItemMiniRegenPotion") || Player.HasBuff("ItemCrystalFlask") || Player.HasBuff("ItemDarkCrystalFlask"))) { if (MyActivator.CorruptPot.IsReady() && MyActivator.CorruptPot.IsOwned()) { MyActivator.CorruptPot.Cast(); } } }
private static void GameOnTick(EventArgs args) { if (!InsecActive || LastUpdate + 200 <= Environment.TickCount) { InsecPos = new Vector3(); } if (TristanaMenu.Lvlup()) { LevelUpSpells(); } if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo)) { OnCombo(); } if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Harass)) { OnHarrass(); } if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear)) { OnLaneClear(); } if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear)) { OnJungle(); } if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Flee)) { OnFlee(); } if (TristanaMenu.MyCombo["combo.WR"].Cast <KeyBind>().CurrentValue) { Insec(); } KillSteal(); AutoE(); AutoPotions(); AutoWard(); }
private static void GameObject_OnCreate(GameObject sender, EventArgs args) { var rengar = EntityManager.Heroes.Enemies.Find(r => r.ChampionName.Equals("Rengar")); var khazix = EntityManager.Heroes.Enemies.Find(z => z.ChampionName.Equals("Khazix")); if (khazix != null) { if (sender.Name == ("Khazix_Base_E_Tar.troy") && TristanaMenu.GapcloserR2() && sender.Position.Distance(Player) <= 400) { R.Cast(khazix); } } if (rengar == null) { return; } if (sender.Name == ("Rengar_LeapSound.troy") && TristanaMenu.GapcloserR3() && sender.Position.Distance(Player) < R.Range) { R.Cast(rengar); } }
private static void OnJungle() { var source = EntityManager.MinionsAndMonsters.GetJungleMonsters(Player.ServerPosition, Q.Range) .OrderByDescending(a => a.MaxHealth) .FirstOrDefault(); if (source == null) { return; } if (Q.IsReady() && TristanaMenu.JungleQ() && source.Distance(Player) <= Q.Range) { Q.Cast(); } if (W.IsReady() && TristanaMenu.JungleW() && source.Distance(Player) <= W.Range) { W.Cast(source.ServerPosition); } if (E.IsReady() && TristanaMenu.JungleE() && source.Distance(Player) <= E.Range) { E.Cast(source); } }
private static void GameOnDraw(EventArgs args) { if (TristanaMenu.Nodraw()) { return; } if (InsecTarget.IsValidTarget()) { Circle.Draw(SharpDX.Color.Red, InsecTarget.BoundingRadius + 100, InsecTarget.Position); } if (AllyTarget.IsValidTarget()) { Circle.Draw(SharpDX.Color.BlueViolet, AllyTarget.BoundingRadius + 100, AllyTarget.Position); } if (!TristanaMenu.OnlyReady()) { if (TristanaMenu.DrawingsQ()) { new Circle { Color = Color.AliceBlue, Radius = Q.Range, BorderWidth = 2f }.Draw(Player.Position); } if (TristanaMenu.DrawingsW()) { new Circle { Color = Color.OrangeRed, Radius = W.Range, BorderWidth = 2f }.Draw(Player.Position); } if (TristanaMenu.DrawingsE()) { new Circle { Color = Color.Cyan, Radius = E.Range, BorderWidth = 2f }.Draw(Player.Position); } if (TristanaMenu.DrawingsR()) { new Circle { Color = Color.SkyBlue, Radius = R.Range, BorderWidth = 2f }.Draw(Player.Position); } if (TristanaMenu.DrawingsT() && wardLocation.Normal.Any()) { foreach (var place in wardLocation.Normal.Where(pos => pos.Distance(ObjectManager.Player.Position) <= 1500)) { Drawing.DrawCircle(place, 100, IsWarded(place) ? Color.Red : Color.Green); } } } else { if (!Q.IsOnCooldown && TristanaMenu.DrawingsQ()) { new Circle { Color = Color.AliceBlue, Radius = 340, BorderWidth = 2f }.Draw(Player.Position); } if (!W.IsOnCooldown && TristanaMenu.DrawingsW()) { new Circle { Color = Color.OrangeRed, Radius = 800, BorderWidth = 2f }.Draw(Player.Position); } if (!E.IsOnCooldown && TristanaMenu.DrawingsE()) { new Circle { Color = Color.Cyan, Radius = 500, BorderWidth = 2f }.Draw(Player.Position); } if (!R.IsOnCooldown && TristanaMenu.DrawingsR()) { new Circle { Color = Color.SkyBlue, Radius = 500, BorderWidth = 2f }.Draw(Player.Position); } if (TristanaMenu.DrawingsT() && wardLocation.Normal.Any()) { foreach (var place in wardLocation.Normal.Where(pos => pos.Distance(ObjectManager.Player.Position) <= 1500)) { Drawing.DrawCircle(place, 100, IsWarded(place) ? Color.Red : Color.Green); } } } }
private static void OnCombo() { var enemiesr = EntityManager.Heroes.Enemies.OrderByDescending (a => a.HealthPercent).Where(a => !a.IsMe && a.IsValidTarget() && a.Distance(Player) <= R.Range); var enemiesw = EntityManager.Heroes.Enemies.OrderByDescending (a => a.HealthPercent).Where(a => !a.IsMe && a.IsValidTarget() && a.Distance(Player) <= W.Range); var enemies = EntityManager.Heroes.Enemies.OrderByDescending (a => a.HealthPercent).Where(a => !a.IsMe && a.IsValidTarget() && a.Distance(Player) <= E.Range); var target = TargetSelector.GetTarget(Q.Range, DamageType.Physical); var targetBoom = EntityManager.Heroes.Enemies.FirstOrDefault( a => a.HasBuff("tristanaecharge") && a.Distance(Player) < Player.AttackRange); if (!target.IsValidTarget(Q.Range) || target == null) { return; } if (E.IsReady() && target.IsValidTarget(E.Range)) { foreach (var eenemies in enemies) { var useE = TristanaMenu.MyCombo["combo.e" + eenemies.ChampionName].Cast <CheckBox>().CurrentValue; if (useE) { E.Cast(eenemies); } } } if (TristanaMenu.ComboQ() && Q.IsReady() && target.IsValidTarget(Q.Range)) { Q.Cast(); } if (W.IsReady() && target.IsValidTarget(W.Range) && !target.IsInvulnerable && target.Position.CountEnemiesInRange(800) <= TristanaMenu.ComboW1()) { foreach (var jumpenemies in enemiesw) { var useW = TristanaMenu.MyCombo["combo.w" + jumpenemies.ChampionName].Cast <CheckBox>().CurrentValue; if (useW && W.GetPrediction(jumpenemies).HitChancePercent >= TristanaMenu.ComboWH()) { W.Cast(W.GetPrediction(jumpenemies).CastPosition); } } } if (targetBoom != null) { if (TristanaMenu.ComboEr() && !E.IsReady() && R.IsReady() && targetBoom.IsValidTarget(R.Range) && !targetBoom.IsInvulnerable && (targetBoom.Health + targetBoom.AllShield + TristanaMenu.ComboEr1()) - (Player.GetSpellDamage(targetBoom, SpellSlot.E) + (targetBoom.Buffs.Find(a => a.Name == "tristanaecharge").Count * Player.GetSpellDamage(targetBoom, SpellSlot.E, DamageLibrary.SpellStages.Detonation))) < Player.GetSpellDamage(targetBoom, SpellSlot.R)) { R.Cast(targetBoom); } } if (R.IsReady() && target.IsValidTarget(R.Range) && !target.IsInvulnerable && target.Health + target.AttackShield + TristanaMenu.ComboR1() < Player.GetSpellDamage(target, SpellSlot.R)) { foreach (var ultenemies in enemiesr) { var useR = TristanaMenu.MyCombo["combo.r" + ultenemies.ChampionName].Cast <CheckBox>().CurrentValue; if (useR) { R.Cast(ultenemies); } } } if ((ObjectManager.Player.CountEnemiesInRange(ObjectManager.Player.AttackRange) >= TristanaMenu.YoumusEnemies() || Player.HealthPercent >= TristanaMenu.ItemsYoumuShp()) && MyActivator.Youmus.IsReady() && TristanaMenu.Youmus() && MyActivator.Youmus.IsOwned()) { MyActivator.Youmus.Cast(); return; } if (Player.HealthPercent <= TristanaMenu.BilgewaterHp() && TristanaMenu.Bilgewater() && MyActivator.Bilgewater.IsReady() && MyActivator.Bilgewater.IsOwned()) { MyActivator.Bilgewater.Cast(target); return; } if (Player.HealthPercent <= TristanaMenu.BotrkHp() && TristanaMenu.Botrk() && MyActivator.Botrk.IsReady() && MyActivator.Botrk.IsOwned()) { MyActivator.Botrk.Cast(target); } }
private static void Barrier() { if (Player.IsFacing(Target) && MyActivator.Barrier.IsReady() && Player.HealthPercent <= TristanaMenu.spellsBarrierHP()) { MyActivator.Barrier.Cast(); } }
private static void Heal() { if (Player.IsFacing(Target) && MyActivator.Heal.IsReady() && Player.HealthPercent <= TristanaMenu.SpellsHealHp()) { MyActivator.Heal.Cast(); } }
private static void OnBuffGain(Obj_AI_Base sender, Obj_AI_BaseBuffGainEventArgs args) { if (!sender.IsMe) { return; } if (args.Buff.Type == BuffType.Taunt && TristanaMenu.Taunt()) { DoQSS(); } if (args.Buff.Type == BuffType.Stun && TristanaMenu.Stun()) { DoQSS(); } if (args.Buff.Type == BuffType.Snare && TristanaMenu.Snare()) { DoQSS(); } if (args.Buff.Type == BuffType.Polymorph && TristanaMenu.Polymorph()) { DoQSS(); } if (args.Buff.Type == BuffType.Blind && TristanaMenu.Blind()) { DoQSS(); } if (args.Buff.Type == BuffType.Flee && TristanaMenu.Fear()) { DoQSS(); } if (args.Buff.Type == BuffType.Charm && TristanaMenu.Charm()) { DoQSS(); } if (args.Buff.Type == BuffType.Suppression && TristanaMenu.Suppression()) { DoQSS(); } if (args.Buff.Type == BuffType.Silence && TristanaMenu.Silence()) { DoQSS(); } if (args.Buff.Name == "zedulttargetmark" && TristanaMenu.ZedUlt()) { UltQSS(); } if (args.Buff.Name == "VladimirHemoplague" && TristanaMenu.VladUlt()) { UltQSS(); } if (args.Buff.Name == "FizzMarinerDoom" && TristanaMenu.FizzUlt()) { UltQSS(); } if (args.Buff.Name == "MordekaiserChildrenOfTheGrave" && TristanaMenu.MordUlt()) { UltQSS(); } if (args.Buff.Name == "PoppyDiplomaticImmunity" && TristanaMenu.PoppyUlt()) { UltQSS(); } }