protected override void Obj_AI_Base_OnProcessSpellCast(Obj_AI_Base unit, GameObjectProcessSpellCastEventArgs args) { if (!unit.IsMe) { return; } if (args.SData.Name == "KatarinaR") { OrbwalkManager.SetAttack(false); OrbwalkManager.SetMovement(false); } SpellSlot castedSlot = ObjectManager.Player.GetSpellSlot(args.SData.Name); if (castedSlot == SpellSlot.Q) { Q.LastCastAttemptT = Utils.TickCount; } if (castedSlot == SpellSlot.R) { R.LastCastAttemptT = Utils.TickCount; } }
protected override void Game_OnGameUpdate(EventArgs args) { SmartKs(); if (Player.IsChannelingImportantSpell() || Player.HasBuff("KatarinaR")) { OrbwalkManager.SetAttack(false); OrbwalkManager.SetMovement(false); ShouldCancel(); return; } OrbwalkManager.SetAttack(true); OrbwalkManager.SetMovement(true); if (menu.Item("Wardjump", true).GetValue <KeyBind>().Active) { OrbwalkManager.Orbwalk(null, Game.CursorPos); WardJumper.WardJump(); } else if (menu.Item("ComboActive", true).GetValue <KeyBind>().Active) { Combo(); } else { if (menu.Item("lastHit", true).GetValue <KeyBind>().Active) { LastHit(); } if (menu.Item("LaneClearActive", true).GetValue <KeyBind>().Active) { Farm(); } if (menu.Item("jFarm", true).GetValue <KeyBind>().Active) { JungleFarm(); } if (menu.Item("HarassActive", true).GetValue <KeyBind>().Active) { Harass(); } if (menu.Item("HarassActiveT", true).GetValue <KeyBind>().Active) { Harass(); } } if (menu.Item("autoWz", true).GetValue <bool>()) { AutoW(); } }
private void SmartKs() { if (!menu.Item("smartKS", true).GetValue <bool>()) { return; } if (menu.Item("rCancel", true).GetValue <bool>() && Player.CountEnemiesInRange(570) > 1) { return; } foreach (Obj_AI_Hero target in ObjectManager.Get <Obj_AI_Hero>().Where(x => x.IsValidTarget(1375) && !x.HasBuffOfType(BuffType.Invulnerability)).OrderByDescending(GetComboDamage)) { if (target != null) { var delay = menu.Item("E_Delay_Slider", true).GetValue <Slider>().Value; bool shouldE = !menu.Item("KS_With_E", true).GetValue <KeyBind>().Active&& Utils.TickCount - E.LastCastAttemptT > 0; //QEW if (Player.Distance(target.ServerPosition) <= E.Range && shouldE && (Player.GetSpellDamage(target, SpellSlot.E) + Player.GetSpellDamage(target, SpellSlot.Q) + MarkDmg(target) + Player.GetSpellDamage(target, SpellSlot.W)) > target.Health + 20) { if (E.IsReady() && Q.IsReady() && W.IsReady()) { CancelUlt(target); Q.Cast(target); E.Cast(target); E.LastCastAttemptT = Utils.TickCount + delay; if (Player.Distance(target.ServerPosition) < W.Range) { W.Cast(); } return; } } //E + W if (Player.Distance(target.ServerPosition) <= E.Range && shouldE && (Player.GetSpellDamage(target, SpellSlot.E) + Player.GetSpellDamage(target, SpellSlot.W)) > target.Health + 20) { if (E.IsReady() && W.IsReady()) { CancelUlt(target); E.Cast(target); E.LastCastAttemptT = Utils.TickCount + delay; if (Player.Distance(target.ServerPosition) < W.Range) { W.Cast(); } //Game.PrintChat("ks 5"); return; } } //E + Q if (Player.Distance(target.ServerPosition) <= E.Range && shouldE && (Player.GetSpellDamage(target, SpellSlot.E) + Player.GetSpellDamage(target, SpellSlot.Q)) > target.Health + 20) { if (E.IsReady() && Q.IsReady()) { CancelUlt(target); E.Cast(target); E.LastCastAttemptT = Utils.TickCount + delay; Q.Cast(target); //Game.PrintChat("ks 6"); return; } } //Q if ((Player.GetSpellDamage(target, SpellSlot.Q)) > target.Health + 20) { if (Q.IsReady() && Player.Distance(target.ServerPosition) <= Q.Range) { CancelUlt(target); Q.Cast(target); //Game.PrintChat("ks 7"); return; } if (Q.IsReady() && E.IsReady() && Player.Distance(target.ServerPosition) <= 1375 && menu.Item("wardKs", true).GetValue <bool>() && target.CountEnemiesInRange(500) < 3) { CancelUlt(target); WardJumper.JumpKs(target); //Game.PrintChat("wardKS!!!!!"); return; } } //E if (Player.Distance(target.ServerPosition) <= E.Range && shouldE && (Player.GetSpellDamage(target, SpellSlot.E)) > target.Health + 20) { if (E.IsReady()) { CancelUlt(target); E.Cast(target); E.LastCastAttemptT = Utils.TickCount + delay; //Game.PrintChat("ks 8"); return; } } //R if (Player.Distance(target.ServerPosition) <= E.Range && (Player.GetSpellDamage(target, SpellSlot.R) * 5) > target.Health + 20 && menu.Item("rKS", true).GetValue <bool>()) { if (R.IsReady()) { OrbwalkManager.SetAttack(false); OrbwalkManager.SetMovement(false); R.Cast(); //Game.PrintChat("ks 8"); return; } } } } }
private void Combo(bool useQ, bool useW, bool useE, bool useR) { Obj_AI_Hero target = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Magical); int mode = menu.Item("comboMode", true).GetValue <StringList>().SelectedIndex; int eDis = menu.Item("eDis", true).GetValue <Slider>().Value; if (!target.IsValidTarget(E.Range)) { return; } if (!target.HasBuffOfType(BuffType.Invulnerability) && !target.IsZombie) { if (mode == 0) //qwe { //items var itemTarget = TargetSelector.GetTarget(750, TargetSelector.DamageType.Physical); if (itemTarget != null && E.IsReady()) { var dmg = GetComboDamage(itemTarget); ItemManager.Target = itemTarget; //see if killable if (dmg > itemTarget.Health - 50) { ItemManager.KillableTarget = true; } ItemManager.UseTargetted = true; } if (useQ && Q.IsReady() && Player.Distance(target.Position) <= Q.Range) { Q.Cast(target); } if (useE && E.IsReady() && Player.Distance(target.Position) < E.Range && Utils.TickCount - E.LastCastAttemptT > 0 && Player.Distance(target.Position) > eDis && !Q.IsReady()) { if (menu.Item("smartE", true).GetValue <bool>() && Player.CountEnemiesInRange(500) > 2 && (!R.IsReady() || !(RSpell.State == SpellState.Surpressed && R.Level > 0))) { return; } var delay = menu.Item("E_Delay_Slider", true).GetValue <Slider>().Value; OrbwalkManager.SetAttack(false); OrbwalkManager.SetMovement(false); E.Cast(target); E.LastCastAttemptT = Utils.TickCount + delay; } } else if (mode == 1) //eqw { //items var itemTarget = TargetSelector.GetTarget(750, TargetSelector.DamageType.Physical); if (itemTarget != null && E.IsReady()) { var dmg = GetComboDamage(itemTarget); ItemManager.Target = itemTarget; //see if killable if (dmg > itemTarget.Health - 50) { ItemManager.KillableTarget = true; } ItemManager.UseTargetted = true; } if (useE && E.IsReady() && Player.Distance(target.Position) < E.Range && Utils.TickCount - E.LastCastAttemptT > 0 && Player.Distance(target.Position) > eDis) { if (menu.Item("smartE", true).GetValue <bool>() && Player.CountEnemiesInRange(500) > 2 && (!R.IsReady() || !(RSpell.State == SpellState.Surpressed && R.Level > 0))) { return; } var delay = menu.Item("E_Delay_Slider", true).GetValue <Slider>().Value; OrbwalkManager.SetAttack(false); OrbwalkManager.SetMovement(false); E.Cast(target); E.LastCastAttemptT = Utils.TickCount + delay; } if (useQ && Q.IsReady() && Player.Distance(target.Position) <= Q.Range) { Q.Cast(target); } } if (useW && W.IsReady() && Player.Distance(target.Position) <= W.Range && QSuccessfullyCasted()) { W.Cast(); } if (useR && R.IsReady() && Player.CountEnemiesInRange(R.Range) > 0) { if (!Q.IsReady() && !E.IsReady() && !W.IsReady()) { OrbwalkManager.SetAttack(false); OrbwalkManager.SetMovement(false); R.Cast(); } } } }