public Vladimir() { Q = new Spell(SpellSlot.Q, 600).SetTargetted(0.25f, float.MaxValue); W = new Spell(SpellSlot.W, 350); E = new Spell(SpellSlot.E, 630).SetSkillshot(0, 40, 4000, false, SkillshotType.SkillshotLine); R = new Spell(SpellSlot.R, 700).SetSkillshot(0, 375, float.MaxValue, false, SkillshotType.SkillshotCircle); Q.DamageType = W.DamageType = E.DamageType = R.DamageType = DamageType.Magical; R.MinHitChance = HitChance.VeryHigh; var comboMenu = MainMenu.Add(new Menu("Combo", "Combo")); { comboMenu.Separator("Q: Always On"); comboMenu.Bool("Ignite", "Use Ignite"); comboMenu.Bool("E", "Use E"); comboMenu.Separator("R Settings"); comboMenu.Bool("R", "Use R"); comboMenu.Slider("RHpU", "If Enemies Hp < (%) And Hit >= 2", 60); comboMenu.Slider("RCountA", "Or Count >=", 3, 1, 5); } var hybridMenu = MainMenu.Add(new Menu("Hybrid", "Hybrid")); { hybridMenu.Separator("Q: Always On"); hybridMenu.Bool("QLastHit", "Last Hit (Stack < 2)"); hybridMenu.Bool("E", "Use E", false); } var lcMenu = MainMenu.Add(new Menu("LaneClear", "Lane Clear")); { lcMenu.Separator("Q: Always On"); lcMenu.Bool("E", "Use E"); } var lhMenu = MainMenu.Add(new Menu("LastHit", "Last Hit")); { lhMenu.Bool("Q", "Use Q"); } var ksMenu = MainMenu.Add(new Menu("KillSteal", "Kill Steal")); { ksMenu.Bool("Q", "Use Q"); ksMenu.Bool("E", "Use E"); } if (GameObjects.EnemyHeroes.Any()) { Evade.Init(); EvadeTarget.Init(); } var drawMenu = MainMenu.Add(new Menu("Draw", "Draw")); { drawMenu.Bool("Q", "Q Range", false); drawMenu.Bool("E", "E Range", false); drawMenu.Bool("R", "R Range", false); } MainMenu.KeyBind("FleeW", "Use W To Flee", Keys.C); Game.OnUpdate += OnUpdate; Drawing.OnEndScene += OnEndScene; Variables.Orbwalker.OnAction += (sender, args) => { if (args.Type != OrbwalkingType.BeforeAttack || (Variables.Orbwalker.ActiveMode != OrbwalkingMode.Combo && Variables.Orbwalker.ActiveMode != OrbwalkingMode.Hybrid) || !(args.Target is AIHeroClient) || !Q.IsReady(100)) { return; } args.Process = false; }; Obj_AI_Base.OnBuffGain += (sender, args) => { if (!sender.IsMe) { return; } switch (args.Buff.DisplayName) { case "VladimirQFrenzy": haveQEmp = true; break; case "VladimirSanguinePool": haveW = true; break; case "VladimirE": haveE = true; buffE = args.Buff; break; } }; Obj_AI_Base.OnBuffLose += (sender, args) => { if (!sender.IsMe) { return; } switch (args.Buff.DisplayName) { case "VladimirQFrenzy": haveQEmp = false; break; case "VladimirSanguinePool": haveW = false; break; case "VladimirE": haveE = false; buffE = null; break; } }; GameObjectNotifier <MissileClient> .OnCreate += (sender, args) => { var spellCaster = args.SpellCaster as AIHeroClient; if (spellCaster == null || !spellCaster.IsMe || args.SData.Name != "VladimirEMissile" || !haveE) { return; } haveE = false; buffE = null; }; Obj_AI_Base.OnProcessSpellCast += (sender, args) => { if (!sender.IsMe) { return; } switch (args.SData.Name) { case "VladimirQ": haveQ = true; break; case "VladimirE": if (buffE == null && !haveE) { haveE = true; } break; } }; Spellbook.OnUpdateChargeableSpell += (sender, args) => { if (!sender.Owner.IsMe || Variables.TickCount - lastECharge >= 3000 || !args.ReleaseCast) { return; } args.Process = false; }; Spellbook.OnCastSpell += (sender, args) => { if (args.Slot != E.Slot || Variables.TickCount - lastECharge <= 500 || IsChargeE) { return; } ERelease(); }; Obj_AI_Base.OnSpellCast += (sender, args) => { if (!sender.IsMe || args.Slot != Q.Slot || !haveQ) { return; } haveQ = false; }; }
public Zed() { Q = new Spell(SpellSlot.Q, 925).SetSkillshot(0.275f, 50, 1700, true, SkillshotType.SkillshotLine); Q2 = new Spell(Q.Slot, Q.Range).SetSkillshot(Q.Delay, Q.Width, Q.Speed, true, Q.Type); Q3 = new Spell(Q.Slot, Q.Range).SetSkillshot(Q.Delay, Q.Width, Q.Speed, true, Q.Type); W = new Spell(SpellSlot.W, 700).SetTargetted(0, 1750); E = new Spell(SpellSlot.E, 290).SetTargetted(0.001f, float.MaxValue); R = new Spell(SpellSlot.R, 625); Q.DamageType = W.DamageType = E.DamageType = R.DamageType = DamageType.Physical; Q.MinHitChance = HitChance.VeryHigh; var comboMenu = MainMenu.Add(new Menu("Combo", "Combo")); { comboMenu.Separator("Q/E: Always On"); comboMenu.Bool("Ignite", "Use Ignite"); comboMenu.Bool("Item", "Use Item"); comboMenu.Separator("Swap Settings"); comboMenu.Bool("SwapIfKill", "Swap W/R If Mark Can Kill Target", false); comboMenu.Slider("SwapIfHpU", "Swap W/R If Hp < (%)", 10); comboMenu.List("SwapGap", "Swap W/R To Gap Close", new[] { "OFF", "Smart", "Always" }, 1); comboMenu.Separator("W Settings"); comboMenu.Bool("WNormal", "Use For Non-R Combo"); comboMenu.List("WAdv", "Use For R Combo", new[] { "OFF", "Line", "Triangle", "Mouse" }, 1); comboMenu.Separator("R Settings"); comboMenu.KeyBind("R", "Use R", Keys.X, KeyBindType.Toggle); comboMenu.List("RMode", "Mode", new[] { "Always", "Wait Q/E" }); comboMenu.Slider( "RStopRange", "Prevent Q/W/E If R Ready And Distance <=", (int)(R.Range + 200), (int)R.Range, (int)(R.Range + W.Range)); if (GameObjects.EnemyHeroes.Any()) { comboMenu.Separator("Extra R Settings"); GameObjects.EnemyHeroes.ForEach( i => comboMenu.Bool("RCast" + i.ChampionName, "Cast On " + i.ChampionName, false)); } } var hybridMenu = MainMenu.Add(new Menu("Hybrid", "Hybrid")); { hybridMenu.List("Mode", "Mode", new[] { "W-E-Q", "E-Q", "Q" }); hybridMenu.Separator("Auto Q Settings (Champ)"); hybridMenu.KeyBind("AutoQ", "KeyBind", Keys.T, KeyBindType.Toggle); hybridMenu.Slider("AutoQMpA", "If Mp >=", 100, 0, 200); hybridMenu.Separator("Auto E Settings (Champ/Shadow)"); hybridMenu.Bool("AutoE", "Auto", false); } var lhMenu = MainMenu.Add(new Menu("LastHit", "Last Hit")); { lhMenu.Bool("Q", "Use Q"); } var ksMenu = MainMenu.Add(new Menu("KillSteal", "Kill Steal")); { ksMenu.Bool("Q", "Use Q"); ksMenu.Bool("E", "Use E"); } if (GameObjects.EnemyHeroes.Any()) { Evade.Init(); EvadeTarget.Init(); } var drawMenu = MainMenu.Add(new Menu("Draw", "Draw")); { drawMenu.Bool("Q", "Q Range", false); drawMenu.Bool("W", "W Range", false); drawMenu.Bool("E", "E Range", false); drawMenu.Bool("R", "R Range", false); drawMenu.Bool("RStop", "Prevent Q/W/E Range", false); drawMenu.Bool("UseR", "R In Combo Status"); drawMenu.Bool("Target", "Target"); drawMenu.Bool("DMark", "Death Mark"); drawMenu.Bool("WPos", "W Shadow"); drawMenu.Bool("RPos", "R Shadow"); } MainMenu.KeyBind("FleeW", "Use W To Flee", Keys.C); Evade.Evading += Evading; Evade.TryEvading += TryEvading; Game.OnUpdate += OnUpdate; Drawing.OnDraw += OnDraw; Obj_AI_Base.OnProcessSpellCast += (sender, args) => { if (!sender.IsMe) { return; } if (args.Slot == SpellSlot.W && args.SData.Name == "ZedW") { rCasted = false; wCasted = true; } else if (args.Slot == SpellSlot.R && args.SData.Name == "ZedR") { wCasted = false; rCasted = true; } }; GameObject.OnCreate += (sender, args) => { if (sender.IsEnemy) { return; } var shadow = sender as Obj_AI_Minion; if (shadow == null || shadow.CharData.BaseSkinName != "zedshadow") { return; } if (wCasted) { wShadowT = Variables.TickCount; wShadow = shadow; wCasted = rCasted = false; } else if (rCasted) { rShadowT = Variables.TickCount; rShadow = shadow; wCasted = rCasted = false; } }; Obj_AI_Base.OnBuffAdd += (sender, args) => { if (sender.IsEnemy || !args.Buff.Caster.IsMe) { return; } var shadow = sender as Obj_AI_Minion; if (shadow == null || shadow.CharData.BaseSkinName != "zedshadow") { return; } switch (args.Buff.Name) { case "zedwshadowbuff": if (wShadow.Compare(shadow)) { return; } wShadowT = Variables.TickCount; wShadow = shadow; break; case "zedrshadowbuff": if (rShadow.Compare(shadow)) { return; } rShadowT = Variables.TickCount; rShadow = shadow; break; } }; Obj_AI_Base.OnPlayAnimation += (sender, args) => { if (sender.IsMe || sender.IsEnemy || args.Animation != "Death") { return; } if (sender.Compare(wShadow)) { wShadow = null; } else if (sender.Compare(rShadow)) { rShadow = null; } }; GameObject.OnCreate += (sender, args) => { var missile = sender as MissileClient; if (missile != null && missile.SpellCaster.IsMe && missile.SData.Name == "ZedWMissile") { wMissile = missile; return; } if (sender.Name != "Zed_Base_R_buf_tell.troy") { return; } var target = GameObjects.EnemyHeroes.FirstOrDefault(i => i.IsValidTarget() && HaveR(i)); if (target != null && target.Distance(sender) < 150) { deathMark = sender; } }; GameObject.OnDelete += (sender, args) => { if (sender.Compare(wMissile)) { wMissile = null; } else if (sender.Compare(deathMark)) { deathMark = null; } }; }