public static void useQSmart(Obj_AI_Base target) { try { if (!Q.IsReady() || target.Path.Count() == 0 || !target.IsMoving) { return; } Vector2 nextEnemPath = target.Path[0].To2D(); var dist = player.Position.To2D().Distance(target.Position.To2D()); var distToNext = nextEnemPath.Distance(player.Position.To2D()); if (distToNext <= dist) { return; } var msDif = player.MoveSpeed - target.MoveSpeed; if (msDif <= 0 && !LXOrbwalker.InAutoAttackRange(target) && LXOrbwalker.CanAttack()) { Q.Cast(target); } var reachIn = dist / msDif; if (reachIn > 4) { Q.Cast(target); } } catch (Exception) { throw; } }
private static void onDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args) { try { if (args.SourceNetworkId != MasterYi.player.NetworkId || !MasterYi.W.IsReady() || LXOrbwalker.CanAttack()) { return; } GameObject targ = ObjectManager.GetUnitByNetworkId <GameObject>(args.TargetNetworkId); if (targ == null) { return; } // Console.WriteLine("dmg: " + args.Damage + " type " + args.Type + " dmg type: " + args.HitType + " pred dmg: "+ MasterYi.player.GetAutoAttackDamage(targ)); // if (args.Type == DamageType.Physical) // { if (targ is Obj_AI_Hero) { if (Config.Item("comboWreset").GetValue <bool>()) { MasterYi.W.Cast(); } LXOrbwalker.ResetAutoAttackTimer(); } // } } catch (Exception ex) { Console.WriteLine(ex); } }