private void onProcessSpell(GameObject sender, EventArgs args) { var theSpell = (Obj_SpellMissile)sender; if (sender.IsMe && theSpell.SData.Name == "ZedUltMissile") { RShadow = new ZedShadow { shadowPosition = player.ServerPosition, WR = RWEnum.R, gameTick = Environment.TickCount, sender = sender, shadowObj = CheckForClones(RWEnum.R) }; ROut = true; } if (sender.IsMe && theSpell.SData.Name == "ZedShadowDashMissile") { WShadow = new ZedShadow { shadowPosition = CheckForClones(RWEnum.W).ServerPosition, WR = RWEnum.W, gameTick = Environment.TickCount, sender = sender, shadowObj = CheckForClones(RWEnum.W) }; WOut = true; } if (sender.Name.Contains("Zed_Base_R_buf_tell.troy")) { isChampKill = true; deathMarkTarget = null; } }
private bool safeBack(ZedShadow shadow) { Vector3 shadowPos = shadow.shadowPosition; Vector3 playerPos = player.ServerPosition; int nearShadowPos = getEnemiesInRange(shadowPos, 500f).Count; int nearPlayerPos = getEnemiesInRange(playerPos, 500f).Count; if (nearPlayerPos > nearShadowPos) { return(true); } return(false); }
private void onDeleteObject(GameObject sender, EventArgs args) { GameObject theObject = sender; if (theObject.IsValid && theObject == WShadow.shadowObj) { WShadow = null; WOut = false; } if (theObject.IsValid && theObject == RShadow.shadowObj) { RShadow = null; ROut = false; } if (sender.Name.Contains("Zed_Base_R_buf_tell.troy")) { isChampKill = false; deathMarkTarget = null; } }
private bool safeBack(ZedShadow shadow) { Vector3 shadowPos = shadow.shadowPosition; Vector3 playerPos = player.ServerPosition; int nearShadowPos = getEnemiesInRange(shadowPos, 500f).Count; int nearPlayerPos = getEnemiesInRange(playerPos, 500f).Count; if (nearPlayerPos > nearShadowPos) return true; return false; }
private void onProcessSpell(GameObject sender, EventArgs args) { var theSpell = (Obj_SpellMissile) sender; if (sender.IsMe && theSpell.SData.Name == "ZedUltMissile") { RShadow = new ZedShadow { shadowPosition = player.ServerPosition, WR = RWEnum.R, gameTick = Environment.TickCount, sender = sender, shadowObj = CheckForClones(RWEnum.R) }; ROut = true; } if (sender.IsMe && theSpell.SData.Name == "ZedShadowDashMissile") { WShadow = new ZedShadow { shadowPosition = CheckForClones(RWEnum.W).ServerPosition, WR = RWEnum.W, gameTick = Environment.TickCount, sender = sender, shadowObj = CheckForClones(RWEnum.W) }; WOut = true; } if (sender.Name.Contains("Zed_Base_R_buf_tell.troy")) { isChampKill = true; deathMarkTarget = null; } }
private void DoTheRDance() { //Added a very basic line combo. Obj_AI_Hero ComboTarget; if (getDeathmarkedTarget() == null) { PositionBeforeR = Vector3.Zero; var ts = new TargetSelector(R.Range, TargetSelector.TargetingMode.LessCast); ComboTarget = ts.Target; if (!ComboTarget.IsValidTarget()) { return; } PositionBeforeR = player.ServerPosition; R.Cast(ComboTarget); } else { getDeathmarkedTarget(); } safetySwap(); ComboTarget = getDeathmarkedTarget(); //LXOrbwalker.(ComboTarget); setForcedTarget with lxorbwalker LXOrbwalker.ForcedTarget = ComboTarget; // could work idk Vector3 tgPos = ComboTarget.ServerPosition; Vector2 bestShadowPos = getBestShadowPos(PositionBeforeR, tgPos); if (bestShadowPos == Vector2.Zero) { return; } W.Cast(bestShadowPos); ZedShadow WSh = WShadow; ZedShadow RSh = RShadow; if (WSh == null || RShadow == null) { Game.PrintChat("Something went wrong"); return; } PredictionOutput customQPredictionW = Prediction.GetPrediction(new PredictionInput { Unit = ComboTarget, Delay = Q.Delay, Radius = Q.Width, From = WSh.shadowPosition, Range = Q.Range, Collision = false, Type = Q.Type, RangeCheckFrom = player.ServerPosition, Aoe = false }); PredictionOutput customQPredictionR = Prediction.GetPrediction(new PredictionInput { Unit = ComboTarget, Delay = Q.Delay, Radius = Q.Width, From = RSh.shadowPosition, Range = Q.Range, Collision = false, Type = Q.Type, RangeCheckFrom = player.ServerPosition, Aoe = false }); bool isPlayerERangeW = getEnemiesInRange(WSh.shadowPosition, E.Range).Contains(ComboTarget); bool isPlayerERangeR = getEnemiesInRange(RSh.shadowPosition, E.Range).Contains(ComboTarget); if (customQPredictionW.Hitchance >= customHitchance || customQPredictionR.Hitchance >= customHitchance) { Q.Cast(ComboTarget); } if (isPlayerERangeR || isPlayerERangeW) { E.Cast(); } if (isChampKill && canBackToShadow() && isMenuEnabled(menu, "SwapRKill")) { if (isMenuEnabled(menu, "SafeRBack") && safeBack(RSh)) { R.Cast(); } else { R.Cast(); } } }