private void Game_OnUpdate(EventArgs args) { if (!Enable) { Utility.HpBarDamageIndicator.Enabled = false; CustomDamageIndicator.Enabled = false; return; } if ((IsCombo || IsHarass) && Orbwalking.CanMove(Orbwalking.Orbwalker._config.Item("ExtraWindup").GetValue <Slider>().Value) && (Q.IsReady() || E.IsReady())) { Orbwalker.SetAttack(false); } else { Orbwalker.SetAttack(true); } if (autokillsteal && !activeAssasin) { killstealUpdate(); } if (IsCombo) { comboupdate(); } if (IsHarass && Player.ManaPercent >= manaharass) { harassupdate(); } if (IsClear && Player.ManaPercent >= manaclear) { ClearOnUpdate(); } if (activeAssasin) { AssasinMode(); } }
private static void AssasinMode() { var target = TargetSelector.GetSelectedTarget(); if (Orbwalking.CanMove(Orbwalking.Orbwalker._config.Item("ExtraWindup").GetValue <Slider>().Value)) { Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos); } if (target.IsValidTarget() && !target.IsZombie) { var targetpos = Prediction.GetPrediction(target, 0.25f).UnitPosition.To2D(); var distance = targetpos.Distance(Player.Position.To2D()); if (Ignite.IsReady() && target.IsValidTarget(450)) { Player.Spellbook.CastSpell(Ignite, target); } if (!R.IsReady(3000) || Player.IsDashing()) { if (W.IsReady() && Player.Distance(target.Position) <= W.Range) { W.Cast(); } } if (R.IsReady() && AhriOrbReturn == null && AhriOrb == null && Utils.GameTimeTickCount - Rcount >= 500) { Vector2 intersec = new Vector2(); for (int i = 450; i >= 0; i = i - 50) { for (int j = 50; j <= 600; j = j + 50) { var vectors = Geometry.CircleCircleIntersection(Player.Position.To2D(), targetpos, i, j); foreach (var x in vectors) { if (!Collide(x, target) && !x.IsWall()) { intersec = x; goto ABC; } } } } ABC: if (intersec.IsValid()) { R.Cast(intersec.To3D()); } } else if (R.IsReady() && AhriOrbReturn != null && Player.Distance(targetpos) < Player.Distance(AhriOrbReturn.Position.To2D()) && Utils.GameTimeTickCount - Rcount >= 0) { var Orb = AhriOrbReturn.Position.To2D(); var dis = Orb.Distance(targetpos); Vector2 castpos = new Vector2(); for (int i = 450; i >= 200; i = i - 50) { if (Orb.Extend(targetpos, dis + i).Distance(Player.Position.To2D()) <= R.Range && !Orb.Extend(targetpos, dis + i).IsWall()) { castpos = Orb.Extend(targetpos, dis + i); break; } } if (castpos.IsValid()) { R.Cast(castpos.To3D()); } } if (Orbwalking.CanAttack() && Orbwalking.InAutoAttackRange(target)) { Player.IssueOrder(GameObjectOrder.AttackUnit, target); Orbwalking.LastAACommandTick = Utils.GameTimeTickCount - 4; } } }