internal float Get(GameObject from, GameObject target) { if (IsDisposing) { return(0); } Tuple <float, float> output; if (CachedValues.TryGetValue(new KeyValuePair <int, int>(from.NetworkId, target.NetworkId), out output)) { if (Game.Time * 1000 - output.Item1 < RefreshRate) { return(output.Item2); } CachedValues[new KeyValuePair <int, int>(from.NetworkId, target.NetworkId)] = new Tuple <float, float>( Game.Time * 1000, from.Distance(target)); } else { CachedValues[new KeyValuePair <int, int>(from.NetworkId, target.NetworkId)] = new Tuple <float, float>( Game.Time * 1000, from.Distance(target)); } return(CachedValues[new KeyValuePair <int, int>(from.NetworkId, target.NetworkId)].Item2); }
private static void CheckKeyBindings() { if (main_menu["taliyah.pullenemy"].GetValue <MenuKeyBind>().Active || main_menu["taliyah.pushenemy"].GetValue <MenuKeyBind>().Active) { Variables.Orbwalker.Orbwalk(); if (!pull_push_enemy && Variables.TargetSelector.Selected.Target != null && Variables.TargetSelector.Selected.Target.IsValidTarget(W.Range)) { Vector3 push_position = ObjectManager.Player.ServerPosition; if (main_menu["taliyah.pushenemy"].GetValue <MenuKeyBind>().Active) { if (selectedGObj != null && selectedGObj.Distance(ObjectManager.Player) < 1000) { push_position = selectedGObj.Position; } else { push_position = Variables.TargetSelector.Selected.Target.ServerPosition + (Variables.TargetSelector.Selected.Target.ServerPosition - ObjectManager.Player.ServerPosition).Normalized() * 50f; } } var pred = W.GetPrediction(Variables.TargetSelector.Selected.Target); if (pred.Hitchance >= HitChance.High) { pull_push_enemy = true; W.Cast(pred.UnitPosition, push_position); DelayAction.Add(250, () => pull_push_enemy = false); } } } }
private static void CheckKeyBindings() { if (!pull_push_enemy && TargetSelector.SelectedTarget != null && TargetSelector.SelectedTarget.IsValidTarget(W.Range)) { Vector3 push_position = ObjectManager.Player.ServerPosition; if (main_menu["taliyah.pullenemy"].Cast <KeyBind>().CurrentValue || main_menu["taliyah.pushenemy"].Cast <KeyBind>().CurrentValue) { if (main_menu["taliyah.pushenemy"].Cast <KeyBind>().CurrentValue) { if (selectedGObj != null && selectedGObj.Distance(ObjectManager.Player) < 1000) { push_position = selectedGObj.Position; } else { push_position = TargetSelector.SelectedTarget.ServerPosition + (TargetSelector.SelectedTarget.ServerPosition - ObjectManager.Player.ServerPosition).Normalized() * 50f; } } var pred = W.GetPrediction(TargetSelector.SelectedTarget); if (pred.Hitchance >= HitChance.High) { pull_push_enemy = true; W.Cast(pred.UnitPosition); DelayAction.Add(250, () => { ObjectManager.Player.Spellbook.CastSpell(SpellSlot.W, push_position, false); pull_push_enemy = false; }); } } } }
private static void GameObject_OnCreate(GameObject sender, EventArgs args) { if (sender.IsAlly && sender is Obj_AI_Base && sender.Name.ToLower().Contains("ward") && sender.Distance(_Player) < 600 && _jumpPos.Distance(sender) < 200 && WardjumpActive) { Program.W.Cast((Obj_AI_Base) sender); } }
private void OnCreateObj(GameObject obj, EventArgs args) { if (obj.Name != "missile" && obj.IsEnemy && obj.Distance(ObjectManager.Player.ServerPosition) < 900) { //J4 wall E if (obj.Name.ToLower() == "jarvanivwall") { var enemyJ4 = ValidTargets.First(h => h.CharData.BaseSkinName.Contains("Jarvan")); if (enemyJ4 != null && enemyJ4.IsValidTarget()) { this.CastE(enemyJ4.ServerPosition); } } if (obj.Name.ToLower().Contains("soraka_base_e_rune.troy") && GameObjects.EnemyHeroes.Count(e => e.IsHPBarRendered && e.Distance(obj.Position) < 300) > 0) { this.Q.Cast(obj.Position); } var rengo = GameObjects.EnemyHeroes.FirstOrDefault(e => e.CharData.BaseSkinName == "Rengar"); if (rengo != null) { //rengar ult if (obj.Name == "Rengar_LeapSound.troy") { CastE(obj.Position); } //rengar passive brush jump (atm the object pos is the brush where it came from so // we're just gonna assume he's gonna jump on us) if (obj.Position.Distance(ObjectManager.Player.Position) < 725 && (obj.Name == "Rengar_Base_P_Buf_Max.troy" || obj.Name == "Rengar_Base_P_Leap_Grass.troy")) { CastE(ObjectManager.Player.ServerPosition); } } } }
private void OnCreateObj(GameObject obj, EventArgs args) { if (obj.Name != "missile" && obj.IsEnemy && obj.Distance(ObjectManager.Player.ServerPosition) < 900) { //J4 wall E if (obj.Name.ToLower() == "jarvanivwall") { var enemyJ4 = ValidTargets.First(h => h.CharData.BaseSkinName.Contains("Jarvan")); if (enemyJ4 != null && enemyJ4.LSIsValidTarget()) { E.Cast(enemyJ4.ServerPosition); } } /*if (obj.Name.ToLower().Contains("soraka_base_e_rune.troy") && EntityManager.Heroes.Enemies.Count(e => e.IsHPBarRendered && e.Distance(obj.Position) < 300) > 0) * { * Q.Cast(obj.Position); * }*/ if (EntityManager.Heroes.Allies.All(h => h.CharData.BaseSkinName != "Rengar")) { if (obj.Name == "Rengar_LeapSound.troy") { E.Cast(obj.Position); } if (obj.Name == "Rengar_Base_P_Buf_Max.troy" || obj.Name == "Rengar_Base_P_Leap_Grass.troy") { E.Cast(ObjectManager.Player.ServerPosition); } } } }
public static bool Team(this GameObject obj, int value) { switch (value) { case 0: return(true); case 1: return(Game.MapId.Equals(GameMapId.SummonersRift) ? obj.Distance(ObjectsManager.Fturret) > 12000 : obj.Distance(ObjectsManager.Fturret) > 8000); case 2: return(Game.MapId.Equals(GameMapId.SummonersRift) ? obj.Distance(ObjectsManager.Fturret) < 12000 : obj.Distance(ObjectsManager.Fturret) < 8000); default: return(true); } }
//Number of enemies within the given distance of the given target. This method takes into account each enemy's combat reach. public static IEnumerable <GameObject> EnemiesWithinOf(double distance, GameObject target) { if (target == null) { return(new List <GameObject>()); } return(Combat.Enemies.Where(e => target.Distance(e) <= distance + e.CombatReach)); }
/// <summary> /// I have tried to do this the smart/elegant/good way using a simple equation, but it doesnt f*****g work. /// So here it is, hacked and done really weirdly and maybe even badly but it should work more reliably /// Also possibly more intensive too /// </summary> /// <param name="source"></param> /// <param name="target"></param> /// <param name="timeToImpact"></param> /// <returns></returns> private static Location GetStupidInterceptLocation(GameObject source, GameObject target, out int timeToImpact) { int sourceVelocity = GetMaximumSpeed(source); LocationF targetVelocity = target.GetVelocity(); //Before we do any calculations, we do some simple, non-intensive checks to make sure we can actually intercept the target before getting the location to intercept //We can not move! Interception is impossible if (sourceVelocity == 0) { timeToImpact = -1; return(target.GetLocation()); } if (targetVelocity.Magnitude() == 0) //target is not moving, we will never get him { timeToImpact = source.Distance(target) / sourceVelocity; return(target.GetLocation()); } if (!IsHeadingTowards(target, source.GetLocation(), 0f)) //if the target isn't heading towards us { timeToImpact = source.Distance(target) / sourceVelocity; return(target.GetLocation()); } for (int i = 0; i < 4000; i++) { Location possibleLocation = target.GetLocation().Add(targetVelocity.GetIntLocation().Multiply(i)); float sourceTimeToLocation = source.Distance(possibleLocation) / sourceVelocity; float targetTimeToLocation = target.Distance(possibleLocation) / targetVelocity.Magnitude(); if (Mathf.Abs(sourceTimeToLocation - targetTimeToLocation) < 1) { timeToImpact = Mathf.RoundToInt(sourceTimeToLocation); return(possibleLocation); } } //Failed to find intercept point, just head to target timeToImpact = source.Distance(target) / sourceVelocity; return(target.GetLocation()); }
public int GetArrivalTime(Vector3 position) { var result = CastDelay; if (Speed != int.MaxValue) { result += (int)(1000 * SourceObject.Distance(position) / Speed); } return(result); }
public static int GetRHits(this Vector2 castPosition, GameObject targetEnemy) { var positions = EntityManager.Heroes.Enemies.Where(hero => !hero.IsDead && hero.IsValidTarget(SpellManager.R.Range)) .Select(hero => Prediction.Position.PredictUnitPosition(hero, 1000).To3D()) .ToList(); return targetEnemy.Distance(castPosition) > SpellManager.R.Range ? 0 : positions.Count(enemyPos => castPosition.Distance(enemyPos) <= SpellManager.R.Radius); }
public static int GetRHits(this Vector2 castPosition, GameObject targetEnemy) { var positions = EntityManager.Heroes.Enemies.Where(hero => !hero.IsDead && hero.IsValidTarget(SpellManager.R.Range)) .Select(hero => Prediction.Position.PredictUnitPosition(hero, 1000).To3D()) .ToList(); return(targetEnemy.Distance(castPosition) > SpellManager.R.Range ? 0 : positions.Count(enemyPos => castPosition.Distance(enemyPos) <= SpellManager.R.Radius)); }
public override void OnDeleteObject(GameObject obj) { if (Missile != null && _missileDeleted && !string.IsNullOrEmpty(SpellData.ToggleParticleName)) { var r = new Regex(SpellData.ToggleParticleName); if (r.Match(obj.Name).Success&& obj.Distance(Position, true) <= 100 * 100) { IsValid = false; } } }
public bool CheckIfCloseToObjectByDistance(GameObject obj1, GameObject obj2, int distance) { if (obj1.Distance(obj2) <= distance) { return(true); } else { return(false); } }
/// <summary> /// How many turns will it take this gameObject to arrive to target? /// </summary> /// <param name="source"></param> /// <param name="target"></param> /// <returns></returns> public static int TimeToArrive(this GameObject source, MapObject target, bool includeSizes = false) { int distance = source.Distance(target); if (includeSizes) { distance -= source.GetSize(); if (target is GameObject) { distance -= ((GameObject)target).GetSize(); } } return(distance / source.GetMaxSpeed()); }
private static void OnCreate(GameObject sender, EventArgs Args) { if (Menu["Vayne_E"]["Gapcloser"] && E.IsReady()) { var Rengar = GameObjects.EnemyHeroes.Find(heros => heros.ChampionName.Equals("Rengar")); var Khazix = GameObjects.EnemyHeroes.Find(heros => heros.ChampionName.Equals("Khazix")); if (Rengar != null && Menu["Vayne_E"]["AntiRengar"]) { if (sender.Name == ("Rengar_LeapSound.troy") && sender.Distance(Me) < E.Range) { E.CastOnUnit(Rengar); } } if (Khazix != null && Menu["Vayne_E"]["AntiKhazix"]) { if (sender.Name == ("Khazix_Base_E_Tar.troy") && sender.Distance(Me) <= 300) { E.CastOnUnit(Khazix); } } } }
private static void AttackableUnit_OnLeaveVisiblityClient(GameObject sender, EventArgs args) {//클라이언트 시야에서 사라질때 var senderHero = sender as AIHeroClient; if (senderHero != null && //sender가 챔피언이면 senderHero.IsEnemy) //sender가 적이면 { if (Config.Auto.AutoE.UseEBush && SpellManager.E.IsReady() && sender.Distance(GameObjects.Player) <= 1125 && NavMesh.IsWallOfGrass(sender.Position, 1)) { SpellManager.E.Cast(sender.Position); } } }
public static int TurnsToReach(this GameObject obj, MapObject destination) { int speed = obj.GetMaxSpeed(); if (obj is Portal) { speed = GameState.Game.LavaGiantMaxSpeed; } if (speed == 0) { return(0); } double turns = 1.0 * obj.Distance(destination) / speed; return((int)System.Math.Ceiling(turns)); }
private void GetToSafety(GameObject allyTurret, bool runToGrass = true) { if (allyTurret == null) { Console.WriteLine("CANT GET OUT, ALLY TURRET IS NULL"); return; } BotData.SetDanger(); if (runToGrass) { var nearestGrass = WallExtension.NearestGrass(Global.Player, 800); if (!nearestGrass.IsZero) { lastGrassVector = nearestGrass; lastFoundGrassTick = Environment.TickCount; } if (!lastGrassVector.IsZero && Global.Player.Distance(lastGrassVector) < Global.Player.Distance(allyTurret.ServerPosition)) { DebugConsole.WriteLine($"Running to: GRASS (SAFETY)", MessageState.Debug); BotData.SetNewMovePosition(Global.Player.ServerPosition.Extend(lastGrassVector, 600), false); return; } return; } var allyHero2 = GameObjects.AllyHeroes.FirstOrDefault(x => !x.IsMe && x.IsValidTarget(1800, true) && !x.UnderEnemyTURRET()); if (allyTurret.Distance(Global.Player) <= 3500 || allyHero2 == null) { DebugConsole.WriteLine($"Running to: ALLY TURRET (SAFETY)", MessageState.Debug); var pos = allyTurret.ServerPosition.Extend(Global.Player.GetFountainPos(), 800); BotData.SetNewMovePosition(pos); } if (allyHero2 != null) { DebugConsole.WriteLine($"Running to: ALLY HERO (SAFETY)", MessageState.Debug); var pos = Global.Player.ServerPosition.Extend(allyHero2.ServerPosition, 800); BotData.SetNewMovePosition(pos, true, 700); } }
void GameObject_OnCreate(GameObject sender, EventArgs args) { if (sender.Name == "BlobDrop" || sender.Name.Contains("Zac_Base_P_Chunk") || sender.Name.Contains("Zac_Base_W_Chunk_Splat")) { this.Blobs.Add(sender); if (sender.Distance(ObjectManager.Player) < 35) { this.DelayOnUpdate = Variables.TickCount; } } else { if (sender.Name.Contains("Zac")) { Game.PrintChat(sender.Name); } } }
public static float GetDistanceSqr(this GameObject target1, GameObject target2) { if (!CachedDistanceSqr.ContainsKey(target1.NetworkId)) { CachedDistanceSqr.Add(target1.NetworkId, new Dictionary <int, float>()); } if (!CachedDistanceSqr[target1.NetworkId].ContainsKey(target2.NetworkId)) { CachedDistanceSqr[target1.NetworkId].Add(target2.NetworkId, target1.Distance(target2, true)); } if (!CachedDistanceSqr.ContainsKey(target2.NetworkId)) { CachedDistanceSqr.Add(target2.NetworkId, new Dictionary <int, float>()); } if (!CachedDistanceSqr[target2.NetworkId].ContainsKey(target1.NetworkId)) { CachedDistanceSqr[target2.NetworkId].Add(target1.NetworkId, CachedDistanceSqr[target1.NetworkId][target2.NetworkId]); } return(CachedDistanceSqr[target1.NetworkId][target2.NetworkId]); }
public override void OnCreateObject(GameObject obj) { var minion = obj as Obj_AI_Minion; if (SpawnObject == null && minion != null) { if (minion.BaseSkinName == SpellData.MissileSpellName) { // Force skillshot to be removed IsValid = false; } } if (SpawnObject != null) { if (Utils.GetGameObjectName(obj) == SpellData.ToggleParticleName && obj.Distance(SpawnObject, true) <= 300.Pow()) { IsValid = false; } } }
public static void NavigateToUnitLos(GameObject unit, float distance) { if (RoutineManager.IsAnyDisallowed(CapabilityFlags.Movement)) { return; } if (unit == null) { return; } if (!MovementManager.IsMoving && !unit.InView()) { Core.Me.Face(Core.Me.CurrentTarget); } if (AvoidanceManager.Avoids.Any(r => r.IsPointInAvoid(unit.Location))) { return; } if (unit.Distance(Core.Me) > distance) { Navigator.MoveTo(new MoveToParameters(unit.Location)); } if (Core.Me.Distance(Core.Me.CurrentTarget.Location) <= distance && unit.InView() && unit.InLineOfSight()) { if (MovementManager.IsMoving) { Navigator.PlayerMover.MoveStop(); } } else { Navigator.MoveTo(new MoveToParameters(unit.Location)); } }
private void OnCreateObj(GameObject sender, EventArgs args) { #if DEBUG if (sender != null && sender.IsValid() && sender.Distance(ObjectManager.Player.Position) < 2500 && !sender.Name.Contains("missile")) { Console.WriteLine(sender.Name + " => " + sender.ObjectType + " @ " + sender.Position); } #endif if (sender != null && sender.IsValid()) { if (sender.Name.Contains("SRU_Baron")) //Set Cooldown to 0 { _lastBaronKill = 0; } if (sender.Name.Contains("SRU_Dragon")) //Set Cooldown to 0 { _lastDrakeKill = 0; } if (sender.Name.Contains("CampRespawn")) //Check which one //FALLBACK FOR ANIMATIONS { var pos = sender.Position; if (pos == _baronPos) { _lastBaronKill = (int)Math.Round(Game.Time); } else if (pos == _drakePos) { _lastDrakeKill = (int)Math.Round(Game.Time); } } } }
/// <summary> /// Gets the distance between two GameObjects /// </summary> /// <param name="source">The Source</param> /// <param name="target">The Target</param> /// <returns>The distance between the two objects</returns> public static float Distance(this GameObject source, GameObject target) { return(source.Distance(target.Position)); }
/// <summary> /// Gets the distance between a <see cref="GameObject" /> and a <see cref="Vector3" /> /// </summary> /// <param name="source">The Source</param> /// <param name="position">The Position</param> /// <returns>The distance between a <see cref="GameObject" /> and a <see cref="Vector3" /></returns> public static float Distance(this GameObject source, Vector3 position) { return(source.Distance(position.ToVector2())); }
public static void GameObject_OnCreate(GameObject sender, EventArgs args) { if (sender.IsAlly && sender is Obj_AI_Base && sender.Name.ToLower().Contains("ward") && sender.Distance(_Player) < 600 && _jumpPos.Distance(sender) < 200) { SpellsManager.E.Cast((Obj_AI_Base)sender); } }
private static void AddReticleToAxe(GameObject obj) { var a = Axes.Where(m => m.MissileIsValid && m.Reticle == null).OrderBy(m => obj.Distance(m.Missile.EndPosition, true)).FirstOrDefault(); if (a != null) { a.AddReticle(obj); } }
private static void GameObject_OnCreate(GameObject sender, EventArgs args) { if (sender.IsAlly && sender is Obj_Ward && sender.Distance(_Player) < 600 && _jumpPos.Distance(sender) < 200 && WardjumpActive) { Program.W.Cast((Obj_Ward) sender); } }
private void OnCombo() { bool useQ = Menu["combo"]["useq"].Enabled; bool useW = Menu["combo"]["usew"].Enabled; bool useE = Menu["combo"]["usee"].Enabled; bool useR = Menu["combo"]["user"].Enabled; if (meow != null && !meow.IsDead && meow.IsValid) { if (meow.Distance(Player) <= Menu["combo"]["pickup"].As <MenuSlider>().Value) { Orbwalker.Move(meow.ServerPosition); } } if (R.Ready && useR) { var target = GetBestEnemyHeroTargetInRange(400); if (target.IsValidTarget()) { if (target != null && target.Health < Player.GetSpellDamage(target, SpellSlot.Q) + Player.GetSpellDamage(target, SpellSlot.E) + Player.GetSpellDamage(target, SpellSlot.R) && target.Health > Menu["combo"]["waste"].As <MenuSlider>().Value) { if (!R.IsCharging) { R.StartCharging(target.ServerPosition); } if (R.IsCharging && target.Distance(Player) < 400) { R.Cast(target.ServerPosition); } } } } if (E.Ready && useE) { var target = GetBestEnemyHeroTargetInRange(E.Range); if (target.IsValidTarget()) { if (target != null) { if (Menu["combo"]["wall"].Enabled) { for (var i = 0; i < 7; i++) { var test = Player.ServerPosition.Extend(target.ServerPosition, Player.Distance(target) + 70 * i); DelayAction.Queue(150, () => { if (IsWall(test, true)) { E.CastOnUnit(target); } }); } if (Menu["combo"]["ignore"].Enabled && target.Health < Player.GetSpellDamage(target, SpellSlot.Q) + Player.GetSpellDamage(target, SpellSlot.E)) { E.CastOnUnit(target); } } if (!Menu["combo"]["wall"].Enabled) { E.CastOnUnit(target); } } } } if (Q.Ready && useQ) { var target = GetBestEnemyHeroTargetInRange(Q.Range); if (target.IsValidTarget()) { if (target.IsValidTarget(Q.Range)) { if (target != null) { Q.Cast(target); } } } } if (W.Ready && useW) { var target = GetBestEnemyHeroTargetInRange(W.Range); if (target.IsValidTarget()) { if (target.IsValidTarget(W.Range)) { if (target != null) { W.Cast(); } } } } }
private void OnCreateObj(GameObject obj, EventArgs args) { if (obj.Name != "missile" && obj.IsEnemy && obj.Distance(ObjectManager.Player.ServerPosition) < 900) { //J4 wall E if (obj.Name.ToLower() == "jarvanivwall") { var enemyJ4 = ValidTargets.First(h => h.CharData.BaseSkinName.Contains("Jarvan")); if (enemyJ4 != null && enemyJ4.LSIsValidTarget()) E.Cast(enemyJ4.ServerPosition); } /*if (obj.Name.ToLower().Contains("soraka_base_e_rune.troy") && EntityManager.Heroes.Enemies.Count(e => e.IsHPBarRendered && e.Distance(obj.Position) < 300) > 0) { Q.Cast(obj.Position); }*/ if (EntityManager.Heroes.Allies.All(h => h.CharData.BaseSkinName != "Rengar")) { if (obj.Name == "Rengar_LeapSound.troy") { E.Cast(obj.Position); } if (obj.Name == "Rengar_Base_P_Buf_Max.troy" || obj.Name == "Rengar_Base_P_Leap_Grass.troy") { E.Cast(ObjectManager.Player.ServerPosition); } } } }
public static void GameObject_OnCreate(GameObject sender, System.EventArgs args) { if (sender != null && SpellsManager.W1 && W.IsReady() && sender.Distance(user) <= W.Range && SpellsManager.Wtimer > 1000 && !sender.IsDead && sender.IsAlly && SpellsManager.W1 && sender.isWard() && W.IsInRange((Obj_AI_Minion)sender) && (RMenu.keybind("bubba") || JumperMenu.keybind("normal") || MiscMenu.keybind("wardjump"))) { SpellsManager.W((Obj_AI_Base)sender, true); WardJump.lastward = Core.GameTickCount; } }
private float GetPairScore(KeyValuePair <int, GameObject> pair, Location elfLocation) { GameObject enemyGameObject = pair.Value; float distFromBuildLocationCircle = elfLocation.DistanceF(enemyGameObject) - distanceTarget; if (distFromBuildLocationCircle >= GetMaxRangeFromEnemyGameObjectCircle()) { return(0); } float factor1; if (distFromBuildLocationCircle <= 0) { factor1 = Mathf.Pow(GetMaxRangeFromEnemyGameObjectCircle(), 1.1f) + 1 / factor1Normalization; } else { factor1 = Mathf.Pow(GetMaxRangeFromEnemyGameObjectCircle() - distFromBuildLocationCircle, 1.1f); } float factor2 = Mathf.InverseLerp(0, (GetMonitorAreaRadius() - Constants.Game.LavaGiantAttackRange - Constants.Game.CastleSize), enemyGameObject.Distance(monitorArea.GetCenter()) - Constants.Game.LavaGiantAttackRange - Constants.Game.CastleSize); return(factor1 * factor2); }
public override void OnDeleteObject(GameObject obj) { if (Missile != null && MissileDeleted && !string.IsNullOrEmpty(SpellData.ToggleParticleName)) { var r = new Regex(SpellData.ToggleParticleName); if (r.Match(obj.Name).Success && obj.Distance(Position, true) <= 100*100) { IsValid = false; } } }
private static void GameObject_OnCreate(GameObject sender, EventArgs args) { if (sender.IsAlly && sender is Obj_AI_Base && sender.Name.ToLower().Contains("ward") && sender.Distance(_Player) < 600 && _jumpPos.Distance(sender) < 200 && WardjumpActive) { Program.E.Cast((Obj_AI_Base)sender); } }
public static void RenderArrowFromPlayer(GameObject target) { if (target == null) { return; } var extended = Global.Player.ServerPosition.Extend(target.ServerPosition, target.Distance(Global.Player)); Render.WorldToScreen(extended, out var extendedVector2); Render.WorldToScreen(Global.Player.Position, out var playerV2); var arrowLine1 = extendedVector2 + (playerV2 - extendedVector2).Normalized().Rotated(40 * (float)Math.PI / 180) * 65; var arrowLine2 = extendedVector2 + (playerV2 - extendedVector2).Normalized().Rotated(-40 * (float)Math.PI / 180) * 65; Render.Line(extendedVector2, arrowLine1, Color.White); Render.Line(extendedVector2, arrowLine2, Color.White); Render.Line(playerV2, extendedVector2, Color.Orange); }
private void OnCreateObj(GameObject obj, EventArgs args) { if (obj.Name != "missile" && obj.IsEnemy && obj.Distance(ObjectManager.Player.ServerPosition) < 900) { //J4 wall E if (obj.Name.ToLower() == "jarvanivwall") { var enemyJ4 = ValidTargets.First(h => h.CharData.BaseSkinName.Contains("Jarvan")); if (enemyJ4 != null && enemyJ4.IsValidTarget()) this.CastE(enemyJ4.ServerPosition); } /*if (obj.Name.ToLower().Contains("soraka_base_e_rune.troy") && GameObjects.EnemyHeroes.Count(e => e.IsHPBarRendered && e.Distance(obj.Position) < 200) > 0) { this.Q.Cast(obj.Position); }*/ var rengo = GameObjects.EnemyHeroes.FirstOrDefault(e => e.CharData.BaseSkinName == "Rengar"); if (rengo != null) { //rengar ult if (obj.Name == "Rengar_LeapSound.troy") { CastE(obj.Position); } //rengar passive brush jump (atm the object pos is the brush where it came from so // we're just gonna assume he's gonna jump on us) if (obj.Position.Distance(ObjectManager.Player.Position) < 725 && (obj.Name == "Rengar_Base_P_Buf_Max.troy" || obj.Name == "Rengar_Base_P_Leap_Grass.troy")) { CastE(ObjectManager.Player.ServerPosition); } } } }
private static void Obj_AI_Base_OnDelete(GameObject sender, EventArgs args) { if (sender.Name == "Zed_Base_Clone_idle.troy") { if (wClone != null && sender.Distance(wClone) <= 25 || (Environment.TickCount - wTick) >= 4500) wClone = null; if (rClone != null && sender.Distance(rClone) <= 25 || (Environment.TickCount - rTick) >= 7500) { rClone = null; rTarg = null; combo = 0; } } }