private static void ObjMissileClientOnCreate(GameObject sender, EventArgs args) { if (!sender.IsValid<MissileClient>()) { return; } var missile = (MissileClient) sender; if (!missile.SpellCaster.IsValid<Obj_AI_Hero>() || missile.SpellCaster.Team == ObjectManager.Player.Team) { return; } var unit = (Obj_AI_Hero) missile.SpellCaster; var spellData = SpellDatabase.GetByMissileName(missile.SData.Name); if (spellData == null) { return; } var missilePosition = missile.Position.To2D(); var unitPosition = missile.StartPosition.To2D(); var endPos = missile.EndPosition.To2D(); var direction = (endPos - unitPosition).Normalized(); if (unitPosition.Distance(endPos) > spellData.Range || spellData.FixedRange) { endPos = unitPosition + direction * spellData.Range; } if (spellData.ExtraRange != -1) { endPos = endPos + Math.Min(spellData.ExtraRange, spellData.Range - endPos.Distance(unitPosition)) * direction; } var castTime = Utils.GameTimeTickCount - Game.Ping / 2 - (spellData.MissileDelayed ? 0 : spellData.Delay) - (int) (1000 * missilePosition.Distance(unitPosition) / spellData.MissileSpeed); TriggerOnDetectSkillshot(DetectionType.RecvPacket, spellData, castTime, unitPosition, endPos, unit); }
private static void OnCreateObj_FizzMarinerDoom(GameObject obj, EventArgs args, SpellData spellData) { if (!obj.IsValid<MissileClient>()) return; MissileClient missile = (MissileClient)obj; if (missile.SpellCaster != null && missile.SpellCaster.Team != ObjectManager.Player.Team && missile.SData.Name == "FizzMarinerDoomMissile") { SpellDetector.CreateSpellData(missile.SpellCaster, missile.StartPosition, missile.EndPosition, spellData, null, 500, true, SpellType.Circular, false, spellData.secondaryRadius); /*foreach (KeyValuePair<int, Spell> entry in SpellDetector.spells) { var spell = entry.Value; if (spell.info.spellName == "FizzMarinerDoom" && spell.spellObject != null && spell.spellObject.NetworkId == missile.NetworkId) { if (spell.spellType == SpellType.Circular) { spell.spellObject = null; } } }*/ } }
private void RangeAttackOnCreate(GameObject sender, EventArgs args) { if (!sender.IsValid<Obj_SpellMissile>()) { return; } var missile = (Obj_SpellMissile) sender; // Caster ally hero / not me if (!missile.SpellCaster.IsValid<Obj_AI_Hero>() || !missile.SpellCaster.IsAlly || missile.SpellCaster.IsMe || missile.SpellCaster.IsMelee()) { return; } // Target enemy hero if (!missile.Target.IsValid<Obj_AI_Hero>() || !missile.Target.IsEnemy) { return; } var caster = (Obj_AI_Hero) missile.SpellCaster; if (E.IsReady() && E.IsInRange(missile.SpellCaster) && ConfigValue<bool>("Misc.E.AA." + caster.ChampionName)) { E.Cast(caster); // add delay } }
static void GameObject_OnCreate(GameObject obj, EventArgs args) { if (obj.IsValid<MissileClient>()) return; foreach (var troy in Gametroy.Objects) { if (obj.Name.Contains(troy.Name) && obj.IsValid<GameObject>()) { troy.Obj = obj; troy.Start = Utils.GameTimeTickCount; if (!troy.Included) troy.Included = Essentials.HeroInGame(troy.Owner); } } }
private void OnObjCreate(GameObject sender, System.EventArgs args) { if (sender.IsValid<Obj_AI_Minion>() && sender.IsAlly && sender.Name.Equals("ThreshLantern", StringComparison.OrdinalIgnoreCase)) { LanternObject = sender; } }
/// <summary> /// Handles the OnCreate event of the GameObject class. /// </summary> /// <param name="sender"> /// The sender. /// </param> /// <param name="args"> /// The <see cref="EventArgs" /> instance containing the event data. /// </param> private static void GameObject_OnCreate(GameObject sender, EventArgs args) { if (!sender.IsAlly || !sender.IsValid<Obj_AI_Base>()) { return; } var obj = (Obj_AI_Base)sender; if (obj.CharData.BaseSkinName.Equals("syndrasphere")) { Orbs.Add(obj); } }
static void GameObject_OnCreate(GameObject obj, EventArgs args) { foreach (var troy in Troy.Troys) { if (obj.Name.Contains(troy.Name) && obj.IsValid<GameObject>()) { troy.Obj = obj; troy.Start = Utils.GameTimeTickCount; if (!troy.Included) troy.Included = true; } } }
private void SpellMissile_OnCreate(GameObject obj, EventArgs args) { if (!obj.IsValid<Obj_SpellMissile>()) return; Obj_SpellMissile missile = (Obj_SpellMissile)obj; SpellData spellData; if (missile.SpellCaster != null && missile.SpellCaster.Team != myHero.Team && missile.SData.Name != null && onMissileSpells.TryGetValue(missile.SData.Name, out spellData) && missile.StartPosition != null && missile.EndPosition != null) { if (missile.StartPosition.Distance(myHero.Position) < spellData.range + 1000) { var hero = missile.SpellCaster; if (hero.IsVisible) { if (spellData.usePackets) { CreateSpellData(hero, missile.StartPosition, missile.EndPosition, spellData, obj); return; } foreach (KeyValuePair<int, Spell> entry in spells) { Spell spell = entry.Value; if (spell.info.missileName == missile.SData.Name && spell.heroID == missile.SpellCaster.NetworkId) { if (spell.info.isThreeWay == false && spell.info.isSpecial == false) { spell.spellObject = obj; //Game.PrintChat("aquired: " + (obj.Position.To2D().Distance(spell.startPos))); } } } } else { if (Evade.menu.SubMenu("Main").Item("DodgeFOWSpells").GetValue<bool>()) { CreateSpellData(hero, missile.StartPosition, missile.EndPosition, spellData, obj); } } } } }
private void SpellMissile_OnCreateOld(GameObject sender, EventArgs args) { if (sender.IsEnemy || sender.Type != GameObjectType.MissileClient || !sender.IsValid<MissileClient>()) return; MissileClient missile = (MissileClient)sender; if (missile.SData.Name != null) { if (missile.SData.Name == MissileName || missile.SData.Name == MissileReturnName) { Missile = missile; } } }
private void Obj_SpellMissile_OnDelete(GameObject sender, EventArgs args) { if (sender.IsEnemy || sender.Type != GameObjectType.MissileClient || !sender.IsValid<MissileClient>()) return; MissileClient missile = (MissileClient)sender; if ( missile.SData.Name != null) { if(missile.SData.Name == "AhriOrbReturn") QMissile = null; if (missile.SData.Name == "AhriSeduceMissile") EMissile = null; } }
private static void OnDeleteObj_FizzMarinerDoom(GameObject obj, EventArgs args, SpellData spellData) { //need to track where bait is attached to if (!obj.IsValid<MissileClient>()) return; MissileClient missile = (MissileClient)obj; if (missile.SpellCaster != null && missile.SpellCaster.Team != ObjectManager.Player.Team && missile.SData.Name == "FizzMarinerDoomMissile") { SpellDetector.CreateSpellData(missile.SpellCaster, missile.StartPosition, missile.EndPosition, spellData, null, 1000, true, SpellType.Circular, false, 350); } }
private static void SpellMissile_OnCreate(GameObject sender, EventArgs args) { try { if (!sender.IsValid <MissileClient>()) { return; } if (!Menu.Item("TargetedActive").GetValue <bool>()) { return; } var missile = (MissileClient)sender; if (!missile.SpellCaster.IsValid <Obj_AI_Hero>() || !missile.SpellCaster.IsEnemy) { return; } if (!missile.Target.IsValid <Obj_AI_Hero>() || !missile.Target.IsAlly) { return; } var caster = (Obj_AI_Hero)missile.SpellCaster; var target = (Obj_AI_Hero)missile.Target; if ( Menu.SubMenu("Detector") .SubMenu("Targeted") .Item("Detector.Targeted." + target.ChampionName) .GetValue <bool>()) { if (OnTargetedProtection != null) { OnTargetedProtection(caster, target, missile.SData); } } } catch (Exception e) { Console.WriteLine(e); } }
private void SpellMissile_OnCreateOld(GameObject sender, EventArgs args) { if (sender.IsEnemy || sender.Type != GameObjectType.MissileClient || !sender.IsValid <MissileClient>()) { return; } MissileClient missile = (MissileClient)sender; if (missile.SData.Name != null) { if (missile.SData.Name == MissileName || missile.SData.Name == MissileReturnName) { Missile = missile; } } }
private static void Obj_SpellMissile_OnCreate(GameObject sender, EventArgs args) { // Deny InvalidCastException if (sender is Obj_LampBulb) { return; } if (sender.IsValid <Obj_SpellMissile>()) { var missile = (Obj_SpellMissile)sender; if (missile.SpellCaster.IsValid <Obj_AI_Hero>() && IsAutoAttack(missile.SData.Name)) { FireAfterAttack(missile.SpellCaster, _lastTarget); } } }
private static void DebugSpellMissileOnCreate(GameObject sender, EventArgs args) { if (!sender.IsValid <MissileClient>()) { return; } var missile = (MissileClient)sender; if (missile.SpellCaster.IsValid <AIHeroClient>()) { Console.WriteLine( "{0} Missile Created:{1} Distance:{2} Radius:{3} Speed:{4}", System.Environment.TickCount, missile.SData.Name, missile.StartPosition.LSDistance(missile.EndPosition), missile.SData.CastRadiusSecondary, missile.SData.MissileSpeed); } }
private static void SpellMissileOnCreate(GameObject sender, EventArgs args) { if (!sender.IsValid <Obj_SpellMissile>()) { return; // only valid missile } var missile = (Obj_SpellMissile)sender; var unit = missile.SpellCaster; if (!unit.IsValid <Obj_AI_Hero>()) { return; // only valid hero } var spellData = SkillshotDatabase.GetByMissileName(missile.SData.Name); if (spellData == null) { return; // only if database contains skillshot } var missilePosition = missile.Position.To2D(); var unitPosition = missile.StartPosition.To2D(); var endPos = missile.EndPosition.To2D(); //Calculate the real end Point: var direction = (endPos - unitPosition).Normalized(); if (unitPosition.Distance(endPos) > spellData.Range || spellData.FixedRange) { endPos = unitPosition + direction * spellData.Range; } if (spellData.ExtraRange != -1) { endPos = endPos + Math.Min(spellData.ExtraRange, spellData.Range - endPos.Distance(unitPosition)) * direction; } var castTime = Environment.TickCount - Game.Ping / 2 - (spellData.MissileDelayed ? 0 : spellData.Delay) - (int)(1000 * missilePosition.Distance(unitPosition) / spellData.MissileSpeed); //Trigger the skillshot detection callbacks. TriggerOnDetectSkillshot(DetectionType.RecvPacket, spellData, castTime, unitPosition, endPos, unit); }
private static void DebugSpellMissileOnDelete(GameObject sender, EventArgs args) { if (!sender.IsValid <Obj_SpellMissile>()) { return; } var missile = (Obj_SpellMissile)sender; if (missile.SpellCaster.IsValid <Obj_AI_Hero>()) { Console.WriteLine("{0} Missile Deleted:{1} Distance:{2}", Environment.TickCount, missile.SData.Name, missile.EndPosition.Distance(missile.Position)); } }
private void SpellMissile_OnDelete(GameObject obj, EventArgs args) { if (!obj.IsValid <Obj_SpellMissile>()) { return; } Obj_SpellMissile missile = (Obj_SpellMissile)obj; //SpellData spellData; foreach (var spell in spells.Values.ToList().Where( s => (s.spellObject != null && s.spellObject.NetworkId == obj.NetworkId))) //isAlive { DeleteSpell(spell.spellID); } }
private void Obj_SpellMissile_OnDelete(GameObject sender, EventArgs args) { if (sender.IsEnemy || sender.Type != GameObjectType.MissileClient || !sender.IsValid <MissileClient>()) { return; } MissileClient missile = (MissileClient)sender; if (missile.SData.Name != null) { if (missile.SData.Name.ToLower() == MissileReturnName.ToLower()) { Missile = null; } } }
private void SpellMissile_OnDeleteOld(GameObject obj, EventArgs args) { if (!obj.IsValid <MissileClient>()) { return; } MissileClient missile = (MissileClient)obj; //SpellData spellData; foreach (var spell in spells.Values.ToList().Where( s => (s.spellObject != null && s.spellObject.NetworkId == obj.NetworkId))) //isAlive { DelayAction.Add(1, () => DeleteSpell(spell.spellID)); } }
private static void OnDeleteObj_FizzMarinerDoom(GameObject obj, EventArgs args, SpellData spellData) { //need to track where bait is attached to if (!obj.IsValid <MissileClient>()) { return; } MissileClient missile = (MissileClient)obj; if (missile.SpellCaster != null && missile.SpellCaster.Team != ObjectManager.Player.Team && missile.SData.Name == "FizzMarinerDoomMissile") { SpellDetector.CreateSpellData(missile.SpellCaster, missile.StartPosition, missile.EndPosition, spellData, null, 1000, true, SpellType.Circular, false, 350); } }
private static void ObjMissileClientOnCreate(GameObject sender, EventArgs args) { if (!sender.IsValid<MissileClient>()) { return; } var missile = (MissileClient) sender; if (!missile.SpellCaster.IsValid<Obj_AI_Hero>() || missile.SpellCaster.Team == ObjectManager.Player.Team) { return; } var spellData = SpellDatabase.GetByMissileName(missile.SData.Name); if (spellData == null) { return; } Utility.DelayAction.Add(0, () => ObjMissileClientOnCreateDelayed(missile, spellData)); }
private static void OnCreateWardForFlee(GameObject sender, EventArgs args) { if ((Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.Flee && !GetValue <KeyBind>("Combo", "Star").Active) || !W.IsReady() || !IsWOne || !sender.IsValid <Obj_AI_Minion>()) { return; } var ward = (Obj_AI_Minion)sender; if (!ward.IsAlly || !IsWard(ward) || !W.IsInRange(ward) || Utils.GameTimeTickCount - _limitWardTime > 1000 || ward.Distance(_limitWardPos) > 200) { return; } if (W.CastOnUnit(ward)) { _limitWardPos = new Vector3(); } }
static void GameObject_OnDelete(GameObject obj, EventArgs args) { if (obj.IsValid <MissileClient>()) { return; } foreach (var troy in Gametroy.Troys) { if (troy.Included && obj.Name.ToLower().Contains(troy.Name.ToLower())) { troy.Obj = null; troy.Start = 0; troy.Limiter = 0; // reset limiter troy.Included = false; } } }
private static void OnCreateObjMissile(GameObject sender, EventArgs args) { if (!sender.IsValid <Obj_SpellMissile>()) { return; } var missile = (Obj_SpellMissile)sender; if (!missile.SData.IsAutoAttack()) { return; } if (missile.SpellCaster.IsMe && !missile.SpellCaster.IsMelee()) { FireAfterAttack(LastTarget); LastRealAttack = Environment.TickCount; } }
static void GameObject_OnDelete(GameObject obj, EventArgs args) { if (obj.IsValid<MissileClient>()) return; foreach (var troy in Gametroy.Objects) { if (obj.Name.Contains(troy.Name)) { troy.Obj = null; troy.Start = 0; troy.Limiter = 0; // reset limiter if (troy.Included) troy.Included = false; } } }
private static void OnCreate(GameObject sender, EventArgs args) { if (!sender.IsValid <MissileClient>()) { return; } var missile = (MissileClient)sender; if (!missile.SpellCaster.IsValid <Obj_AI_Hero>() || missile.SpellCaster.Team == ObjectManager.Player.Team) { return; } var unit = (Obj_AI_Hero)missile.SpellCaster; var spellData = Spells.FirstOrDefault( i => i.SpellNames.Contains(missile.SData.Name.ToLower()) && Menu.SubMenu("ET_" + i.ChampionName).Item(i.MissileName, true) != null && Menu.SubMenu("ET_" + i.ChampionName).Item(i.MissileName, true).GetValue <bool>()); if (spellData == null && missile.SData.IsAutoAttack() && (!missile.SData.Name.ToLower().Contains("crit") ? Menu.Item("BAttack", true).GetValue <bool>() && ObjectManager.Player.HealthPercent < Menu.Item("BAttackHpU", true).GetValue <Slider>().Value : Menu.Item("CAttack", true).GetValue <bool>() && ObjectManager.Player.HealthPercent < Menu.Item("CAttackHpU", true).GetValue <Slider>().Value)) { spellData = new SpellData { ChampionName = unit.ChampionName, SpellNames = new[] { missile.SData.Name } }; } if (spellData == null || !missile.Target.IsMe) { return; } DetectedTargets.Add(new Targets { Start = unit.ServerPosition, Obj = missile }); }
private static void OnCreate(GameObject sender) { if (!sender.IsValid <MissileClient>()) { return; } var missile = (MissileClient)sender; if (!missile.SpellCaster.IsValid <Obj_AI_Hero>() || missile.SpellCaster.Team == ObjectManager.GetLocalPlayer().Team) { return; } var unit = (Obj_AI_Hero)missile.SpellCaster; var spellData = Spells.FirstOrDefault( i => i.SpellNames.Contains(missile.SpellData.Name.ToLower()) && SpellMenu["Brian.EvadeTargetMenu." + i.MissileName].Enabled); if (spellData == null && missile.SpellData.IsAutoAttack() && (!missile.SpellData.Name.ToLower().Contains("crit") ? AttackMenu["Brian.EvadeTargetMenu.BAttack"].Enabled && ObjectManager.GetLocalPlayer().HealthPercent() < AttackMenu["Brian.EvadeTargetMenu.BAttackHpU"].Value : AttackMenu["Brian.EvadeTargetMenu.CAttack"].Enabled && ObjectManager.GetLocalPlayer().HealthPercent() < AttackMenu["Brian.EvadeTargetMenu.CAttackHpU"].Value)) { spellData = new SpellData { ChampionName = unit.ChampionName, SpellNames = new[] { missile.SpellData.Name } }; } if (spellData == null || !missile.Target.IsMe) { return; } DetectedTargets.Add(new Targets { Start = unit.ServerPosition, Obj = missile, Time = Game.TickCount }); }
private static void OnCreateObj_FizzMarinerDoom(GameObject obj, EventArgs args, SpellData spellData) { if (!obj.IsValid <MissileClient>()) { return; } var missile = (MissileClient)obj; var dist = missile.StartPosition.Distance(missile.EndPosition); var radius = dist > 910 ? 400 : (dist >= 455 ? 300 : 200); if (missile.SpellCaster != null && missile.SpellCaster.CheckTeam() && missile.SData.Name == "FizzRMissile") { SpellDetector.CreateSpellData(missile.SpellCaster, missile.StartPosition, missile.EndPosition, spellData, null, 500, true, SpellType.Circular, false, radius); } }
private void OnCreateObject(GameObject sender, EventArgs args) { if (!_menuhandler.GetValue <bool>((Menu)_Mainmenu.Item("Global Switches"), "ward_tracker")) { return; } if (sender != null && sender.IsValid() && (sender.Name.Contains("Ward") || sender.Name.Contains("JammerDevice") || sender.Name.Contains("DoABarrelRoll") && _menuhandler.GetValue <bool>(_menu, "maokai") || sender.Name.Contains("Noxious") && _menuhandler.GetValue <bool>(_menu, "teemo") || sender.Name.Contains("Seed") && _menuhandler.GetValue <bool>(_menu, "zyra") || sender.Name.Contains("Cupcake") && _menuhandler.GetValue <bool>(_menu, "caitlyn"))) { if (sender.Name != "WardCorpse") { var x = new WardType(sender, Game.Time); if (sender.Name.Contains("DoABarrelRoll")) //Maokai { x.override_time = 30; } if (sender.Name.Contains("Seed")) //Maokai { x.override_time = 60; } if (sender.Name.Contains("Cupcake")) //Caitlyn { x.override_time = 90; } wards.Add(x); } } else { foreach (var ward in wards) { if (!ward.ward.IsValid() || ward.ward.Health == 0 || ward.ward.Position == sender.Position) { wards.Remove(ward); break; } } } }
private static void OnCreateWardForJump(GameObject sender, EventArgs args) { if (!GetValue <KeyBind>("Insec", "NormalInsec").Active || !IsReady || !W.IsReady() || !IsWOne || !sender.IsValid <Obj_AI_Minion>()) { return; } var ward = (Obj_AI_Minion)sender; if (!ward.IsAlly || !IsWard(ward) || !W.IsInRange(ward) || Utils.GameTimeTickCount - LastWardTime > 1000 || ward.Distance(_lastWardPos) > 200) { return; } if (W.CastOnUnit(ward, PacketCast)) { _lastWardPos = new Vector3(); } }
private void SpellMissile_OnDelete(GameObject obj, EventArgs args) { if (!obj.IsValid <MissileClient>()) { return; } MissileClient missile = (MissileClient)obj; //SpellData spellData; foreach (var spell in spells.Values.ToList().Where( s => (s.spellObject != null && s.spellObject.NetworkId == obj.NetworkId))) //isAlive { //Console.WriteLine("Distance: " + obj.Position.Distance(myHero.Position)); DelayAction.Add(1, () => DeleteSpell(spell.spellID)); } }
/// <summary> /// Delete the missiles that collide. /// </summary> private static void SpellMissileOnDelete(GameObject sender, EventArgs args) { if (OnDeleteMissile == null) { return; // no subscriptions } if (!sender.IsValid <MissileClient>()) { return; // only valid missile } var missile = (MissileClient)sender; var unit = missile.SpellCaster; if (!unit.IsValid <AIHeroClient>()) { return; // only valid hero } var spellName = missile.SData.Name; foreach (var skillshot in ActiveSkillshots) { if (skillshot.SkillshotData.MissileSpellName == spellName && (skillshot.Caster.NetworkId == unit.NetworkId && (missile.EndPosition.To2D() - missile.StartPosition.To2D()).AngleBetween(skillshot.Direction) < 10) && skillshot.SkillshotData.CanBeRemoved) { OnDeleteMissile(skillshot, missile); break; } } ActiveSkillshots.RemoveAll( skillshot => (skillshot.SkillshotData.MissileSpellName == spellName || skillshot.SkillshotData.ExtraMissileNames.Contains(spellName)) && (skillshot.Caster.NetworkId == unit.NetworkId && ((missile.EndPosition.To2D() - missile.StartPosition.To2D()).AngleBetween(skillshot.Direction) < 10) && skillshot.SkillshotData.CanBeRemoved || skillshot.SkillshotData.ForceRemove)); // }
public override void Unregister(GameObject Object) { Object.UnregisterEffectEvent(this, "BeginAttack"); Object.UnregisterEffectEvent(this, "BodyPositionChanged"); Object.UnregisterEffectEvent(this, "CanChangeBodyPosition"); Object.UnregisterEffectEvent(this, "CanChangeMovementMode"); Object.UnregisterEffectEvent(this, "EndTurn"); Object.UnregisterEffectEvent(this, "IsMobile"); Object.UnregisterEffectEvent(this, "LeaveCell"); Object.UnregisterEffectEvent(this, "MovementModeChanged"); if (DestroyOnBreak != null) { if (DestroyOnBreak.IsValid()) { DestroyOnBreak.Destroy(); } DestroyOnBreak = null; } base.Unregister(Object); }
private void Obj_SpellMissile_OnDelete(GameObject sender, EventArgs args) { if (!sender.IsValid <MissileClient>()) { return; } MissileClient missile = (MissileClient)sender; if (missile.IsValid && missile.IsAlly && missile.SData.Name != null) { if (missile.SData.Name == "AhriOrbReturn") { QMissile = null; } if (missile.SData.Name == "AhriSeduceMissile") { EMissile = null; } } }
private static void ObjMissileClientOnCreate(GameObject sender, EventArgs args) { if (!sender.IsValid <MissileClient>()) { return; } var missile = (MissileClient)sender; if (!missile.SpellCaster.IsValid <Obj_AI_Hero>() || missile.SpellCaster.Team == ObjectManager.Player.Team) { return; } var spellData = SpellDatabase.GetByMissileName(missile.SData.Name); if (spellData == null) { return; } Utility.DelayAction.Add(0, () => ObjMissileClientOnCreateDelayed(missile, spellData)); }
static void GameObject_OnCreate(GameObject obj, EventArgs args) { if (obj.IsValid <MissileClient>()) { return; } foreach (var troy in Gametroy.Troys) { if (obj.Name.ToLower().Contains(troy.Name.ToLower())) { troy.Obj = obj; troy.Start = Utils.GameTimeTickCount; if (!troy.Included) { troy.Included = Helpers.IsEnemyInGame(troy.Owner); } } } }
private static void OnCreateObject(GameObject sender, EventArgs args) { #pragma warning disable 0618 //wall if (sender.IsValid <Obj_SpellLineMissile>()) { if (sender is Obj_SpellLineMissile) { Obj_SpellLineMissile missle = (Obj_SpellLineMissile)sender; if (missle.SData.Name == "yasuowmovingwallmisl") { Yasuo.wall.setL(missle); } if (missle.SData.Name == "yasuowmovingwallmisr") { Yasuo.wall.setR(missle); } } } }
private static void Obj_SpellMissile_OnDelete(GameObject sender, EventArgs args) { if (sender.IsEnemy || sender.Type != GameObjectType.MissileClient || !sender.IsValid <MissileClient>()) { return; } var missile = (MissileClient)sender; if (missile.SData.Name != null) { if (missile.SData.Name == "AhriOrbReturn") { QMissile = null; } if (missile.SData.Name == "AhriSeduceMissile") { EMissile = null; } } }
private void SpellMissile_OnCreateOld(GameObject sender, EventArgs args) { if (sender.IsEnemy || sender.Type != GameObjectType.MissileClient || !sender.IsValid <MissileClient>()) { return; } MissileClient missile = (MissileClient)sender; if (missile.SData.Name != null) { if (missile.SData.Name == "AhriOrbMissile" || missile.SData.Name == "AhriOrbReturn") { QMissile = sender; } if (missile.SData.Name == "AhriSeduceMissile") { EMissile = sender; } } }
private static void OnCreateWardForFlee(GameObject sender, EventArgs args) { if (Orbwalk.CurrentMode != Orbwalker.Mode.Flee || !Q.IsReady() || !sender.IsValid <Obj_AI_Minion>()) { return; } var ward = (Obj_AI_Minion)sender; if (!ward.IsAlly || !IsWard(ward) || !Q.IsInRange(ward) || Utils.GameTimeTickCount - _limitWard > 1000) { return; } LeagueSharp.Common.Utility.DelayAction.Add( 50, () => { var buff = ward.GetBuff("sharedstealthwardbuff") ?? ward.GetBuff("sharedvisionwardbuff"); if (buff != null && buff.Caster.IsMe) { Q.CastOnUnit(ward, PacketCast); } }); }
private static void OnCreateObj_ViktorDeathRay3(GameObject obj, EventArgs args) { if (!obj.IsValid<MissileClient>()) return; MissileClient missile = (MissileClient)obj; SpellData spellData; if (missile.SpellCaster != null && missile.SpellCaster.Team != ObjectManager.Player.Team && missile.SData.Name != null && missile.SData.Name == "viktoreaugmissile" && SpellDetector.onMissileSpells.TryGetValue("ViktorDeathRay3", out spellData) && missile.StartPosition != null && missile.EndPosition != null) { var missileDist = missile.EndPosition.To2D().Distance(missile.StartPosition.To2D()); var delay = missileDist / 1.5f + 600; spellData.spellDelay = delay; SpellDetector.CreateSpellData(missile.SpellCaster, missile.StartPosition, missile.EndPosition, spellData); } }
private static void ObjSpellMissileOnCreate(GameObject sender, EventArgs args) { if (!sender.IsValid <MissileClient>()) { return; } var missile = (MissileClient)sender; if (!missile.SpellCaster.IsValid <AIHeroClient>() || missile.SpellCaster.Team == Variables._Player.Team) { return; } var unit = (AIHeroClient)missile.SpellCaster; var spellData = Spells.FirstOrDefault( i => i.SpellNames.Contains(missile.SData.Name.ToLower()) && championmenu2[i.MissileName].Cast <CheckBox>().CurrentValue); if (spellData == null && //MenuManager.LaneClearMenu["E"].Cast<CheckBox>().CurrentValue (!missile.SData.Name.ToLower().Contains("crit") ? evadeMenu2["BAttack"].Cast <CheckBox>().CurrentValue && Variables._Player.HealthPercent < evadeMenu2["BAttackHpU"].Cast <Slider>().CurrentValue : evadeMenu2["CAttack"].Cast <CheckBox>().CurrentValue && Variables._Player.HealthPercent < evadeMenu2["CAttackHpU"].Cast <Slider>().CurrentValue)) { spellData = new SpellData { ChampionName = unit.ChampionName, SpellNames = new[] { missile.SData.Name } }; } if (spellData == null || !missile.Target.IsMe) { return; } DetectedTargets.Add(new Targets { Start = unit.ServerPosition, Obj = missile }); }
/// <summary> /// Called on missle creation. /// </summary> /// <param name="sender"></param> /// <param name="args"></param> private static void ObjSpellMissileOnOnCreate(GameObject sender, EventArgs args) { if (!Misc.SpellE.SpellSlot.IsReady() || !MyMenu.RootMenu.Item("tide.activated").IsActive()) { return; } if ((MyMenu.RootMenu.Item("tide.mode").GetValue <StringList>().SelectedIndex == 1 && Program.Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.Combo)) { return; } if (!sender.IsValid <MissileClient>()) { return; } // Credits to H3H3. var missile = (MissileClient)sender; if (!missile.SpellCaster.IsValid <AIHeroClient>() || !missile.SpellCaster.IsAlly || missile.SpellCaster.IsMe || missile.SpellCaster.IsMelee()) { return; } if (!missile.Target.IsValid <AIHeroClient>() || !missile.Target.IsEnemy) { return; } var caster = (AIHeroClient)missile.SpellCaster; if (ObjectManager.Player.ManaPercent > MyMenu.RootMenu.Item("tide.mana").GetValue <Slider>().Value&& Misc.SpellE.SpellObject.IsInRange(caster)) { Misc.SpellE.SpellObject.CastOnUnit(caster); } }
private void RangeAttackOnCreate(GameObject sender, EventArgs args) { if (!sender.IsValid<Obj_SpellMissile>()) return; var missile = (Obj_SpellMissile) sender; // Caster ally hero / not me if (!missile.SpellCaster.IsValid<Obj_AI_Hero>() || !missile.SpellCaster.IsAlly || missile.SpellCaster.IsMe || !missile.SpellCaster.IsHeroType(HeroType.Ad) || missile.SpellCaster.IsMelee()) return; // Target enemy hero if (!missile.Target.IsValid<Obj_AI_Hero>() || !missile.Target.IsEnemy) return; if (E.IsReady() && E.IsInRange(missile.SpellCaster) && ConfigValue<bool>("MiscE")) { E.CastOnUnit(missile.SpellCaster, UsePackets); } }
private void SpellMissile_OnDeleteOld(GameObject obj, EventArgs args) { if (!obj.IsValid<MissileClient>()) return; MissileClient missile = (MissileClient)obj; //SpellData spellData; foreach (var spell in spells.Values.ToList().Where( s => (s.spellObject != null && s.spellObject.NetworkId == obj.NetworkId))) //isAlive { DelayAction.Add(1, () => DeleteSpell(spell.spellID)); } }
private void SpellMissile_OnDelete(GameObject obj, EventArgs args) { if (!obj.IsValid<MissileClient>()) return; MissileClient missile = (MissileClient)obj; //SpellData spellData; foreach (var spell in spells.Values.ToList().Where( s => (s.spellObject != null && s.spellObject.NetworkId == obj.NetworkId))) //isAlive { //Console.WriteLine("Distance: " + obj.Position.Distance(myHero.Position)); DelayAction.Add(1, () => DeleteSpell(spell.spellID)); } }
private void SpellMissile_OnCreateOld(GameObject obj, EventArgs args) { if (!obj.IsValid<MissileClient>()) return; MissileClient missile = (MissileClient)obj; SpellData spellData; if (missile.SpellCaster != null && missile.SpellCaster.Team != myHero.Team && missile.SData.Name != null && onMissileSpells.TryGetValue(missile.SData.Name, out spellData) && missile.StartPosition != null && missile.EndPosition != null) { if (missile.StartPosition.LSDistance(myHero.Position) < spellData.range + 1000) { var hero = missile.SpellCaster; if (hero.IsVisible) { if (spellData.usePackets) { CreateSpellData(hero, missile.StartPosition, missile.EndPosition, spellData, obj); return; } foreach (KeyValuePair<int, Spell> entry in spells) { Spell spell = entry.Value; var dir = (missile.EndPosition.LSTo2D() - missile.StartPosition.LSTo2D()).LSNormalized(); if (spell.info.missileName == missile.SData.Name && spell.heroID == missile.SpellCaster.NetworkId && dir.LSAngleBetween(spell.direction) < 10) { if (spell.info.isThreeWay == false && spell.info.isSpecial == false) { spell.spellObject = obj; } } } } else { if (ObjectCache.menuCache.cache["DodgeFOWSpells"].Cast<CheckBox>().CurrentValue) { CreateSpellData(hero, missile.StartPosition, missile.EndPosition, spellData, obj); } } } } }
private void SpellMissile_OnCreate(GameObject obj, EventArgs args) { if (!obj.IsValid<MissileClient>()) return; MissileClient missile = (MissileClient)obj; // todo: keepo //if (missile.SpellCaster.IsMe) // Console.WriteLine("Missile: " + missile.SData.Name); SpellData spellData; if (missile.SpellCaster != null && missile.SpellCaster.Team != myHero.Team && missile.SData.Name != null && onMissileSpells.TryGetValue(missile.SData.Name, out spellData) && missile.StartPosition != null && missile.EndPosition != null) { if (missile.StartPosition.LSDistance(myHero.Position) < spellData.range + 1000) { var hero = missile.SpellCaster; if (hero.IsVisible) { if (spellData.usePackets) { CreateSpellData(hero, missile.StartPosition, missile.EndPosition, spellData, obj); return; } var objectAssigned = false; foreach (KeyValuePair<int, Spell> entry in detectedSpells) { Spell spell = entry.Value; var dir = (missile.EndPosition.LSTo2D() - missile.StartPosition.LSTo2D()).LSNormalized(); if (spell.info.missileName.Equals(missile.SData.Name, StringComparison.InvariantCultureIgnoreCase) || (spell.info.missileName + "_urf").Equals(missile.SData.Name, StringComparison.InvariantCultureIgnoreCase) && spell.heroID == missile.SpellCaster.NetworkId && dir.LSAngleBetween(spell.direction) < 10) { if (spell.info.isThreeWay == false && spell.info.isSpecial == false) { spell.spellObject = obj; objectAssigned = true; break; /*if(spell.spellType == SpellType.Line) { if (missile.SData.LineWidth != spell.info.radius) { Console.WriteLine("Wrong radius " + spell.info.spellName + ": " + spell.info.radius + " vs " + missile.SData.LineWidth); } if (missile.SData.MissileSpeed != spell.info.projectileSpeed) { Console.WriteLine("Wrong speed " + spell.info.spellName + ": " + spell.info.projectileSpeed + " vs " + missile.SData.MissileSpeed); } }*/ //var acquisitionTime = EvadeUtils.TickCount - spell.startTime; //Console.WriteLine("AcquiredTime: " + acquisitionTime); } } } if (objectAssigned == false) { CreateSpellData(hero, missile.StartPosition, missile.EndPosition, spellData, obj); } } else { if (ObjectCache.menuCache.cache["DodgeFOWSpells"].Cast<CheckBox>().CurrentValue) { CreateSpellData(hero, missile.StartPosition, missile.EndPosition, spellData, obj); } } } } }
private void Obj_AI_Base_OnCreate(GameObject sender, EventArgs args) { //return; if (sender.IsValid && sender.IsAlly && ObjectManager.Player.Distance(sender.Position) < 200) { //obj = sender; if (!sender.IsValid<MissileClient>()) return; MissileClient missile = (MissileClient)sender; if (missile.SData.LineWidth == 0) return; Program.debug(" " + missile.SData.LineWidth + " " + missile.SData.MissileSpeed + " " + (Game.Time - castTime)); if (missile.IsValid && missile.IsAlly && missile.SData.Name != null && (missile.SData.Name == "SivirQMissile" || missile.SData.Name == "SivirQMissileReturn")) { } //Program.debug(""+); //Program.debug("cast time" +(time - Game.Time)); } }
private static void OnCreate(GameObject sender, EventArgs args) { var name = sender.Name.ToLower(); if (sender.IsValid<Obj_AI_Minion>() && (name.Contains("sru_") || name.Contains("worm")) && sender.Team != GameObjectTeam.Neutral) _minions.Add((Obj_AI_Minion)sender); }
private static void OnCreate(GameObject sender, EventArgs args) { if (sender.IsValid<Obj_AI_Turret>()) _turrets.Add((Obj_AI_Turret)sender); }
private static void OnCreateObject(GameObject sender, EventArgs args) { #pragma warning disable 0618 //wall if (sender.IsValid<Obj_SpellLineMissile>()) { if (sender is Obj_SpellLineMissile) { Obj_SpellLineMissile missle = (Obj_SpellLineMissile)sender; if (missle.SData.Name == "yasuowmovingwallmisl") { Yasuo.wall.setL(missle); } if (missle.SData.Name == "yasuowmovingwallmisr") { Yasuo.wall.setR(missle); } } } }
private static void Obj_SpellMissile_OnCreate(GameObject sender, EventArgs args) { if (sender.IsValid<Obj_SpellMissile>()) { var missile = (Obj_SpellMissile)sender; if (missile.SpellCaster.IsValid<Obj_AI_Hero>() && IsAutoAttack(missile.SData.Name)) { FireAfterAttack(missile.SpellCaster, _lastTarget); } } }
private void Obj_SpellMissile_OnDelete(GameObject sender, EventArgs args) { if (!sender.IsValid<MissileClient>()) return; MissileClient missile = (MissileClient)sender; if (missile.IsValid && missile.IsAlly && missile.SData.Name != null && (missile.SData.Name == "SivirQMissile" || missile.SData.Name == "SivirQMissileReturn")) { QMissile = null; } }
private static void Obj_AI_Base_OnCreate(GameObject sender, EventArgs args) { if (sender.IsValid<MissileClient>() && sender.IsAlly) { var missile = (MissileClient) sender; if (missile.SData.Name != null && missile.SData.Name == "VelkozQMissile") QMissile = missile; } }
private static void OnCreate(GameObject sender, EventArgs args) { var name = sender.Name.ToLower(); if (sender.IsValid<Obj_AI_Minion>() && !name.Contains("sru_") && !name.Contains("ward") && !name.Contains("ttn") && !name.Contains("tt_") && !name.Contains("trinket") && !name.Contains("teemo") && sender.Team != GameObjectTeam.Neutral) _minions.Add((Obj_AI_Minion)sender); }
private void SpellMissile_OnCreateOld(GameObject sender, EventArgs args) { if (!sender.IsValid<MissileClient>()) return; MissileClient missile = (MissileClient)sender; if (missile.IsValid && missile.IsAlly && missile.SData.Name != null && missile.SData.Name == "DravenR") { RMissile = sender; } }
private void SpellMissile_OnCreateOld(GameObject sender, EventArgs args) { if (!sender.IsValid<MissileClient>()) return; MissileClient missile = (MissileClient)sender; if (missile.IsValid && missile.IsAlly && missile.SData.Name != null ) { if (missile.SData.Name == "AhriOrbMissile" || missile.SData.Name == "AhriOrbReturn") { QMissile = sender; } if (missile.SData.Name == "AhriSeduceMissile") { EMissile = sender; } } }
private static void MissileClient_OnSpellMissileCreate(GameObject sender, EventArgs args) { #region FoW / Missile if (!sender.IsValid<MissileClient>()) { return; } var missile = (MissileClient)sender; if (missile.SpellCaster is AIHeroClient && missile.SpellCaster?.Team != Player.Team) { var startPos = missile.StartPosition.LSTo2D(); var endPos = missile.EndPosition.LSTo2D(); var data = Data.Somedata.GetByMissileName(missile.SData.Name.ToLower()); if (data == null) return; var direction = (endPos - startPos).LSNormalized(); if (startPos.LSDistance(endPos) > data.Range) endPos = startPos + direction * data.Range; if (startPos.LSDistance(endPos) < data.Range && data.FixedRange) endPos = startPos + direction * data.Range; foreach (var hero in Activator.Allies()) { // reset if needed Essentials.ResetIncomeDamage(hero.Player); var distance = (1000 * (startPos.LSDistance(hero.Player.ServerPosition) / data.Speed)); var endtime = -100 + Game.Ping / 2 + distance; // setup projection var proj = hero.Player.ServerPosition.LSTo2D().LSProjectOn(startPos, endPos); var projdist = hero.Player.ServerPosition.LSTo2D().LSDistance(proj.SegmentPoint); // get the evade time var evadetime = (int)(1000 * (data.Width - projdist + hero.Player.BoundingRadius) / hero.Player.MoveSpeed); // check if hero on segment if (data.Width + hero.Player.BoundingRadius + 35 <= projdist) { continue; } if (data.Range > 10000) { // ignore if can evade if (hero.Player.NetworkId == Player.NetworkId) { if (hero.Player.CanMove && evadetime < endtime) { // check next player continue; } } } if (Activator.zmenu[data.SDataName + "predict"].Cast<CheckBox>().CurrentValue) { LeagueSharp.Common.Utility.DelayAction.Add(100, () => { hero.Attacker = missile.SpellCaster; hero.IncomeDamage += 1; hero.HitTypes.Add(HitType.Spell); hero.HitTypes.AddRange( MenuTypes.Where( x => Activator.zmenu[data.SDataName + x.ToString().ToLower()].Cast<CheckBox>().CurrentValue)); LeagueSharp.Common.Utility.DelayAction.Add((int)endtime * 2 + (200 - Game.Ping), () => { hero.Attacker = null; hero.IncomeDamage -= 1; hero.HitTypes.RemoveAll( x => !x.Equals(HitType.Spell) && Activator.zmenu[data.SDataName + x.ToString().ToLower()].Cast<CheckBox>().CurrentValue); hero.HitTypes.Remove(HitType.Spell); }); }); } } } #endregion }