private void Game_OnWndProc(WndEventArgs args) { if (!ObjectCache.menuCache.cache["ClickRemove"].GetValue <bool>()) { return; } if (args.Msg != (uint)WindowsMessages.WM_LBUTTONDOWN) { return; } foreach (var entry in SpellDetector.detectedSpells.Where(x => Game.CursorPos.To2D().InSkillShot(x.Value, 50 + x.Value.info.radius, false))) { var spell = entry.Value; if (spell.info.range > 9000 /*global*/ || spell.info.spellName.Contains("_trap")) { DelayAction.Add(1, () => SpellDetector.DeleteSpell(entry.Key)); //Game.PrintChat("<b>ezEvade</b>: " + spell.info.charName + " (" + spell.info.spellKey + ") removed!"); } } }
private static void GetLuluPix() { bool gotObj = false; foreach (var obj in ObjectManager.Get <Obj_AI_Minion>()) { if (obj != null && obj.IsValid && obj.BaseSkinName == "lulufaerie" && obj.IsEnemy) { gotObj = true; if (!ObjectTracker.ObjTracker.ContainsKey(obj.NetworkId)) { ObjectTracker.ObjTracker.Add(obj.NetworkId, new ObjectTrackerInfo(obj, "RobotBuddy")); } } } if (gotObj == false) { DelayAction.Add(5000, () => GetLuluPix()); } }
public static void Load() { Spellbook.OnCastSpell += (sender, eventArgs) => { if (!MenuConfig.QRecall.Active) { return; } if (eventArgs.Slot != SpellSlot.Recall) { return; } if (!Spells.Q.IsReady()) { return; } Spells.Q.Cast(); DelayAction.Add((int)Spells.Q.Delay + 300, () => GameObjects.Player.Spellbook.CastSpell(SpellSlot.Recall)); eventArgs.Process = false; }; }
private void Game_OnProcessSpell(Obj_AI_Base hero, GameObjectProcessSpellCastEventArgs args) { if (!menu.Item("TrackEnemyWards").GetValue <bool>()) { return; } if (hero.IsEnemy && hero.IsValid <Obj_AI_Hero>()) { WardData wardData; if (WardDatabase.wardspellNames.TryGetValue(args.SData.Name.ToLower(), out wardData)) { var pos = args.End.To2D(); DelayAction.Add(50, () => { foreach (var ward in wards) { if (ward.position.To2D().Distance(pos) < 50 && HelperUtils.TickCount - ward.timestamp < 100) { return; } } WardTrackerInfo newWard = new WardTrackerInfo( wardData, pos.To3D(), null ); newWard.startPos = args.Start.To2D(); newWard.endPos = args.End.To2D(); wards.Add(newWard); }); } } }
public void OnParticleEffectAdded(Entity sender, ParticleEffectAddedEventArgs args) { DelayAction.Add( 1000, () => { if (args.Name.Contains("techies_remote_mine_plant")) { if (!Menu.IsEnabled("techies_remote_mines") || sender.Team == heroTeam) { return; } var position = args.ParticleEffect.GetControlPoint(1); if (position.IsZero || units.Any(x => x is RemoteMine && x.Position.Distance2D(position) < 10)) { return; } units.Add(new RemoteMine(position)); } if (args.Name.Contains("techies_remote_mines_detonate")) { var remote = units.FirstOrDefault( x => x is RemoteMine && x.Position.Distance2D(args.ParticleEffect.GetControlPoint(0)) < 10); if (remote != null) { remote.ParticleEffect?.Dispose(); units.Remove(remote); } } }); }
public void ELogic() { if (!E.IsReady()) { return; } var goodTarget = ValidTargets.OrderByDescending(GetPriority).FirstOrDefault( e => e.LSIsValidTarget(900) && e.HasBuffOfType(BuffType.Knockup) || e.HasBuffOfType(BuffType.Snare) || e.HasBuffOfType(BuffType.Stun) || e.HasBuffOfType(BuffType.Suppression) || e.IsCharmed || e.IsCastingInterruptableSpell() || e.HasBuff("ChronoRevive") || e.HasBuff("ChronoShift")); if (goodTarget != null) { var pos = goodTarget.ServerPosition; if (pos.Distance(ObjectManager.Player.ServerPosition) < 900) { E.Cast(goodTarget.ServerPosition); } } foreach ( var enemyMinion in ObjectManager.Get <Obj_AI_Base>() .Where( m => m.IsEnemy && m.ServerPosition.Distance(ObjectManager.Player.ServerPosition) < E.Range && m.HasBuff("teleport_target"))) { DelayAction.Add(3250, () => { if (enemyMinion != null && enemyMinion.ServerPosition.Distance(ObjectManager.Player.ServerPosition) < 900) { E.Cast(enemyMinion.ServerPosition); } }); } }
private static void TestShit() { ObjectManager.OnAddEntity += args => { Printer.Print($"new: {args.Entity.ClassID}/{args.Entity.Name}/{(args.Entity as Unit)?.DayVision}"); }; Entity.OnParticleEffectAdded += (entity, eventArgs) => { var partName = eventArgs.Name; var name = entity.Name; if (partName.Contains("generic_hit_blood")) { return; } if (partName.Contains("ui_mouse")) { return; } if (name.Contains("portrait")) { return; } DelayAction.Add(5, () => { var effect = eventArgs.ParticleEffect; var pos = effect.Position; var a = effect.GetControlPoint(0); var senderpos = entity.NetworkPosition; Printer.Print($"{name}/{partName}"); //Printer.Print($"{name}/{partName}/{pos.PrintVector()}/{a.PrintVector()}/{senderpos.PrintVector()}"); Printer.PrintInfo(name + ": " + partName); }); }; Unit.OnModifierAdded += (sender, args) => { Printer.Print($"modifier: {sender.Name}/{args.Modifier.Name}"); }; }
private static void FleeLogic() { if (Player.IsDead) { return; } if (Menu["Flee"]["FleeKey2"].GetValue <MenuKeyBind>().Active) { var target = GetTarget(R.Range, R.DamageType); GameObjects.Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos); var minions = GetMinions(Player.Position, R.Range).Find(x => x.IsValidTarget()); if (minions != null && R.IsReady()) { R.CastOnUnit(minions); } return; } if (Menu["Flee"]["FleeKey"].GetValue <MenuKeyBind>().Active) { var target = GetTarget(Q.Range, Q.DamageType); GameObjects.Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos); var minions = GetMinions(Player.Position, Q.Range).Find(x => x.IsValidTarget()); if (minions != null && Q.IsReady() && R.IsReady()) { Q.CastOnUnit(minions); DelayAction.Add(500, () => R.CastOnUnit(minions)); } return; } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Automatic(EventArgs args) { if (GameObjects.Player.IsRecalling()) { return; } /// <summary> /// The Automatic R Orbwalking. /// </summary> if (GameObjects.Player.HasBuff("LucianR")) { DelayAction.Add( (int)(100 + Game.Ping / 2f), () => { GameObjects.Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPos); }); } /// <summary> /// The Semi-Automatic R Management. /// </summary> if (Vars.R.IsReady() && Vars.Menu["spells"]["r"]["bool"].GetValue <MenuBool>().Value) { if (!GameObjects.Player.HasBuff("LucianR") && Targets.Target.IsValidTarget(Vars.R.Range) && Vars.Menu["spells"]["r"]["key"].GetValue <MenuKeyBind>().Active) { if (!Vars.W.GetPrediction(Targets.Target).CollisionObjects.Any()) { Vars.W.Cast(Vars.W.GetPrediction(Targets.Target).UnitPosition); } Vars.R.Cast(Vars.R.GetPrediction(Targets.Target).UnitPosition); } else if (GameObjects.Player.HasBuff("LucianR") && !Vars.Menu["spells"]["r"]["key"].GetValue <MenuKeyBind>().Active) { Vars.R.Cast(); } } }
/// <summary> /// Flees this instance. /// </summary> private static void Flee() { Player.IssueOrder(GameObjectOrder.MoveTo, Game.CursorPosRaw); if ( !((Q.IsReady()) && W.IsReady() && (E.IsReady()))) { return; } var option = fleeMenu["FleeOption"].GetValue <MenuList>().Index; if (option == 0) { W.Cast(Player.Position.Extend(Game.CursorPosRaw, W.Range)); DelayAction.Add( (int)(W.Delay * 1000), () => { E.CastOnUnit(SandSoldiers.OrderBy(x => x.Distance(Player)).FirstOrDefault()); Q.Cast(Player.Position.Extend(Game.CursorPosRaw, Q.Range)); }); } else if (option == 1) { W.Cast(Player.Position.Extend(Game.CursorPosRaw, W.Range)); DelayAction.Add( (int)(W.Delay * 1000), () => { Q.Cast(Player.Position.Extend(Game.CursorPosRaw, Q.Range)); E.CastOnUnit(SandSoldiers.OrderBy(x => x.Distance(Player)).FirstOrDefault()); }); } }
private static void OnCreateObj_AzirSoldier(GameObject obj) { if (obj.Name == "AzirSoldier") { foreach (var entry in ObjectTracker.objTracker) { var info = entry.Value; if (info.Name == "AzirQSoldier") { info.usePosition = false; info.objList.Add(obj.NetworkId, obj); DelayAction.Add(8900, () => { if (info.objList.ContainsKey(obj.NetworkId)) { info.objList.Remove(obj.NetworkId); } }); } } } }
private static void Main() { Events.OnLoad += (sender, args) => { if (ObjectManager.LocalHero.HeroId != HeroId.npc_dota_hero_arc_warden) { return; } MenuManager.Init(); DelayAction.Add(100, () => { Core.Init(); TempestManager.Fresh(); IllusionManager.GetCreepManager(); NecronomiconManager.GetNecronomiconManager(); InputBlocker.GetInputBlocker().Load(); if (MenuManager.IsInfoPanelEnabled) { InfoPanel.GetInfoPanel().Load(); } }); }; }
public void OnAddEntity(EntityEventArgs args) { DelayAction.Add( 1000f, () => { try { var unit = args.Entity as Creep; if (unit == null || unit.Team == heroTeam) { return; } killableList.Add(new Classes.Creep(unit)); } catch (EntityNotFoundException) { // ignored } }); }
static SkillshotDetector() { Obj_AI_Base.OnProcessSpellCast += (sender, args) => { DelayAction.Add(0, () => OnProcessSpellCast(sender, args)); }; GameObject.OnCreate += (sender, args) => { DelayAction.Add(0, () => MissionOnCreate(sender)); }; GameObject.OnDelete += MissileOnDelete; GameObject.OnDelete += (sender, args) => { if (!sender.IsValid || sender.Team == ObjectManager.Player.Team) { return; } for (var i = Evade.DetectedSkillshots.Count - 1; i >= 0; i--) { var skillshot = Evade.DetectedSkillshots[i]; if (skillshot.SpellData.ToggleParticleName != "" && new Regex(skillshot.SpellData.ToggleParticleName).IsMatch(sender.Name)) { Evade.DetectedSkillshots.RemoveAt(i); } } }; }
public void OnExecuteAction(Ability ability, Entity entity) { if (ability == null) { return; } var target = entity as Unit; if (target == null) { return; } if (ability.StoredName() == "item_helm_of_the_dominator" || ability.ClassID == ClassID.CDOTA_Ability_Chen_HolyPersuasion || ability.ClassID == ClassID.CDOTA_Ability_Enchantress_Enchant) { DelayAction.Add( (float)ability.FindCastPoint() * 1000 + Game.Ping, () => { this.controllableUnits.Add(new Controllable(target)); }); } }
private static void Main() { Events.OnLoad += (sender, args) => { Game.PrintMessage("ObjectManager.LocalHero.ClassId: " + ObjectManager.LocalHero.ClassId); if (ObjectManager.LocalHero.ClassId != ClassId.CDOTA_Unit_Hero_ArcWarden) { return; } MenuManager.Init(); DelayAction.Add(100, () => { Core.Init(); TempestManager.Fresh(); IllusionManager.GetCreepManager(); NecronomiconManager.GetNecronomiconManager(); if (MenuManager.IsInfoPanelEnabled) { InfoPanel.GetInfoPanel().Load(); } }); }; }
private static void pushRoshanDownHill(Hero me) { var darkPact = me.Spellbook.SpellQ; var pounce = me.Spellbook.SpellW; var rocket = me.Spellbook.SpellE; var shadowDance = me.Spellbook.SpellR; me.Move(new Vector3(4064f, -2272, 384)); DelayAction.Add( 2000, () => { me.Move(new Vector3(4290.717f, -2336, 384)); }); DelayAction.Add( 3500, () => { pounce.UseAbility(); }); }
internal static void Remover2(Vector2 val) { DelayAction.Add(Timer * 1000, () => { //PositionItem if (Position_Item.Contains(val)) { Position_Item.Remove(val); } //PositionBT Enemy if (Position_BT_Enemy.Contains(val)) { Position_BT_Enemy.Remove(val); } //Furion if (NamePositionSpell.Contains(val)) { NamePositionSpell.Remove(val); } }); }
public void AddParticle(ParticleEffectAddedEventArgs particleArgs) { if (particleArgs.Name.Contains("caster")) { return; } StartCast = Game.RawGameTime; DelayAction.Add( 1, () => { StartPosition = particleArgs.ParticleEffect.GetControlPoint(0); var units = ObjectManager.GetEntities <Unit>() .Count( x => x.IsValid && !(x is Building) && x.IsAlive && x.Team == HeroTeam && x.IsSpawned && x.Distance2D(StartPosition) < GetRadius()); EndCast = StartCast + units * jumpTime; Obstacle = Pathfinder.AddObstacle(StartPosition, GetRadius(), Obstacle); }); }
private static void processSpells(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs args) { if (sender.IsMe) { if (args.SData.Name == "GangplankQWrapper") { if (!justQ) { justQ = true; DelayAction.Add(200, () => justQ = false); } } if (args.SData.Name == "GangplankE") { ePos = args.End; if (!justE) { justE = true; DelayAction.Add(500, () => justE = false); } } } }
/// <summary> /// Fired when the game is updated. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void LastHit(EventArgs args) { /// <summary> /// The E LastHit Logic. /// </summary> if (Vars.E.IsReady() && Vars.getSliderItem(Vars.EMenu, "lasthit") != 101) { DelayAction.Add(Vars.getSliderItem(Vars.EMenu, "delay"), () => { foreach (var minion in Targets.Minions.Where( m => Vars.GetRealHealth(m) < (float)GameObjects.Player.LSGetSpellDamage(m, SpellSlot.E) + (m.HasBuffOfType(BuffType.Poison) ? (float)GameObjects.Player.LSGetSpellDamage(m, SpellSlot.E, DamageStage.Empowered) : 0))) { Vars.E.CastOnUnit(minion); } }); } }
/// <summary> /// Fired on an incoming gapcloser. /// </summary> /// <param name="sender">The object.</param> /// <param name="args">The <see cref="Events.GapCloserEventArgs" /> instance containing the event data.</param> public static void OnGapCloser(object sender, Events.GapCloserEventArgs args) { if (GameObjects.Player.IsDead) { return; } if (Vars.W.IsReady() && args.IsDirectedToPlayer && !Invulnerable.Check(args.Sender, DamageType.Magical, false) && args.Sender.IsValidTarget(Vars.W.Range) && Vars.Menu["spells"]["w"]["gapcloser"].GetValue <MenuBool>().Value) { Vars.W.Cast(args.End); } if (Vars.E.IsReady() && args.Sender.IsMelee && args.Sender.IsValidTarget(Vars.E.Range) && args.SkillType == GapcloserType.Targeted && args.Target.IsMe && Vars.Menu["spells"]["e"]["gapcloser"].GetValue <MenuBool>().Value) { Vars.E.Cast(GameObjects.Player.ServerPosition.Extend(args.Sender.ServerPosition, -475f)); DelayAction.Add(0, () => Variables.Orbwalker.ResetSwingTimer()); // ?? } }
private static void OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (!sender.IsMe) { return; } if (args.SData.Name == "ZedShuriken" && Orbwalker.ActiveMode == OrbwalkerMode.Hybrid && MainMenu["Hybrid"]["Mode"].GetValue <MenuList>().Index == 0 && MainMenu["Hybrid"]["QOverW"].GetValue <MenuBool>().Value&& WState == 0 && GetTarget != null) { DelayAction.Add( Q.Delay * 1000, () => { if (W.Cast(args.End)) { W.LastCastAttemptT = Variables.TickCount; } }); } if (args.SData.Name == "ZedPBAOEDummy" && eForced) { eForced = false; } if (args.SData.Name == "ZedShadowDash") { rCasted = false; wCasted = true; } if (args.SData.Name == "zedult") { wCasted = false; rCasted = true; eForced = true; DelayAction.Add(1000, () => eForced = false); } }
private static void OnProcessSpellCast(AIBaseClient sender, AIBaseClientProcessSpellCastEventArgs args) { if (sender.IsMe && args.Slot == SpellSlot.Q && E.IsReady(200) && args.Target.Name == "Barrel") { Barrel attackedBarrel = AllBarrel.Find(b => b.GetNetworkID() == args.Target.NetworkId); List <Barrel> barrelsInRange = GetBarrelsInRange(attackedBarrel).ToList(); if (Config.Menu["Combo"]["combo.triplee"].GetValue <MenuBool>().Enabled&& barrelsInRange.Any()) { //Triple-Logic foreach (Barrel barrel in barrelsInRange) { DelayAction.Add(Helper.GetQTime(args.Target.Position) - 100 - Game.Ping / 2, () => InvokeTriplePlacement(barrel, AllBarrel)); } foreach (var enemy in GameObjects.EnemyHeroes) { if (enemy.Position.Distance(args.Target.Position) >= 350 && !barrelsInRange.Any(b => b.GetBarrel().Distance(enemy) <= 350) && barrelsInRange.Any(b => b.GetBarrel().Distance(enemy) <= 850)) { DelayAction.Add(400 + Game.Ping / 2, () => ForceCast(enemy, barrelsInRange.First(b => b.GetBarrel().Distance(enemy) >= 350 && b.GetBarrel().Distance(enemy) <= 850).GetBarrel().Position)); } } } if (Config.Menu["Combo"]["combo.doublee"].GetValue <MenuBool>().Enabled&& attackedBarrel.GetBarrel().Distance(Player) >= 610) { //Double Logic foreach (var enemy in GameObjects.EnemyHeroes) { if (args.Target.Position.Distance(enemy.Position) >= 350 && args.Target.Position.Distance(enemy.Position) <= 850) { DelayAction.Add(200 + Game.Ping / 2, () => ForceCast(enemy, args.Target.Position)); } } } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Harass(EventArgs args) { if (!Targets.Target.LSIsValidTarget() || Invulnerable.Check(Targets.Target, EloBuddy.DamageType.Magical, false)) { return; } /// <summary> /// The Q Combo Logic. /// </summary> if (Vars.Q.IsReady() && Targets.Target.LSIsValidTarget(Vars.Q.Range) && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.Q.Slot, Vars.getSliderItem(Vars.QMenu, "harass")) && Vars.getSliderItem(Vars.QMenu, "harass") != 101) { Vars.Q.Cast(Vars.Q.GetPrediction(Targets.Target).CastPosition); return; } /// <summary> /// The W Combo Logic. /// </summary> DelayAction.Add(1000, () => { if (Vars.W.IsReady() && Targets.Target.LSIsValidTarget(Vars.W.Range) && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.W.Slot, Vars.getSliderItem(Vars.WMenu, "harass")) && Vars.getSliderItem(Vars.WMenu, "harass") != 101) { Vars.W.Cast(Vars.W.GetPrediction(Targets.Target).CastPosition); } }); }
private static void Main() { Events.OnLoad += (sender, args) => { DelayAction.Add(1000, () => { var me = ObjectManager.LocalHero; if (me.HeroId != HeroId.npc_dota_hero_techies) { return; } MenuManager.Init(); Core.Init(me); Game.OnIngameUpdate += Core.OnUpdate; Drawing.OnDraw += DrawHelper.OnDraw; Drawing.OnDraw += BombStatus.OnDraw; Drawing.OnDraw += StackDrawing.OnDraw; ObjectManager.OnAddEntity += BombCatcher.OnAddEntity; ObjectManager.OnRemoveEntity += BombCatcher.OnRemoveEntity; Entity.OnInt32PropertyChange += BombCatcher.OnInt32Change; BombCatcher.Update(); BombDamageManager.Init(); Game.OnIngameUpdate += ForceStaff.OnUpdate; Printer.Both("Techies loaded!", true); /*foreach (var item in me.Inventory.Items.ToList()) * { * Console.WriteLine($"{item.Id} {item.Name}"); * }*/ /*foreach (var data in Core.Suicide.AbilitySpecialData) * { * Printer.Print($"{data.Name} -> {data.Value} -> {data.Count} -> {data.IsSpellDamageValue}"); * }*/ }); }; }
private static void OnCreateObj_jayceshockblast(GameObject obj, EventArgs args, AIHeroClient hero, SpellData spellData) { if (obj.IsEnemy && obj.Type == GameObjectType.obj_GeneralParticleEmitter && obj.Name.Contains("Jayce") && obj.Name.Contains("accel_gate_start")) { var dir = ObjectTracker.GetLastHiuOrientation(); var pos1 = obj.Position.To2D() - dir * 470; var pos2 = obj.Position.To2D() + dir * 470; var gateTracker = new ObjectTrackerInfo(obj, "AccelGate"); gateTracker.Direction = dir.To3D(); ObjectTracker.ObjTracker.Add(obj.NetworkId, gateTracker); foreach (var entry in SpellDetector.Spells) { var spell = entry.Value; if (spell.Info.SpellName == "JayceShockBlast") { var tHero = spell.HeroId; var intersection = spell.StartPos.Intersection(spell.EndPos, pos1, pos2); var projection = intersection.Point.ProjectOn(spell.StartPos, spell.EndPos); if (intersection.Intersects && projection.IsOnSegment) { SpellDetector.CreateSpellData(hero, intersection.Point.To3D(), spell.EndPos.To3D(), spellData, spell.SpellObject); DelayAction.Add(1, () => SpellDetector.DeleteSpell(entry.Key)); } } } SpellDetector.CreateSpellData(hero, pos1.To3D(), pos2.To3D(), spellData, null, 0); } }
public void AddParticle(ParticleEffectAddedEventArgs particleArgs) { var caster = particleArgs.Name.Contains("caster"); tempTime = Game.RawGameTime; DelayAction.Add( 1, () => { if (caster) { StartPosition = particleArgs.ParticleEffect.GetControlPoint(0); } else { StartCast = tempTime; EndPosition = StartPosition.Extend( particleArgs.ParticleEffect.GetControlPoint(1), GetCastRange()); EndCast = StartCast + GetCastRange() / GetProjectileSpeed(); Obstacle = Pathfinder.AddObstacle(StartPosition, EndPosition, GetRadius(), Obstacle); } }); }
private static void FinishLoading() { EloBuddy.Drawing.OnDraw += Draw; Game.OnUpdate += OnUpdate; Events.OnGapCloser += OnGapcloser; Events.OnInterruptableTarget += OnInterruptableTarget; DelayAction.Add(3000, () => MyRange = Player.GetRealAutoAttackRange()); Menu = new Menu("tyler1", "Tyler1", true); AutoCatch = Menu.Add(new MenuBool("tyler1auto", "Auto catch axes?", true)); CatchOnlyCloseToMouse = Menu.Add(new MenuBool("tyler1onlyclose", "Catch only axes close to mouse?", true)); MaxDistToMouse = Menu.Add(new MenuSlider("tyler1maxdist", "Max axe distance to mouse", 500, 250, 1250)); OnlyCatchIfSafe = Menu.Add(new MenuBool("tyler1safeaxes", "Only catch axes if safe (anti melee)", false)); MinQLaneclearManaPercent = Menu.Add(new MenuSlider("tyler1QLCMana", "Min Mana Percent for Q Laneclear", 60, 0, 100)); EMenu = Menu.Add(new Menu("tyler1E", "E Settings: ")); ECombo = EMenu.Add(new MenuBool("tyler1ECombo", "Use E in Combo", true)); EGC = EMenu.Add(new MenuBool("tyler1EGC", "Use E on Gapcloser", true)); EInterrupt = EMenu.Add(new MenuBool("tyler1EInterrupt", "Use E to Interrupt", true)); RMenu = Menu.Add(new Menu("tyler1R", "R Settings:")); RKS = RMenu.Add(new MenuBool("tyler1RKS", "Use R to steal kills", true)); RKSOnlyIfCantAA = RMenu.Add(new MenuBool("tyler1RKSOnlyIfCantAA", "Use R KS only if can't AA", true)); RIfHit = RMenu.Add(new MenuSlider("tyler1RIfHit", "Use R if it will hit X enemies", 2, 1, 5)); R1vs1 = RMenu.Add(new MenuBool("tyler1R1v1", "Always use R in 1v1", true)); WCombo = Menu.Add(new MenuBool("tyler1WCombo", "Use W in Combo", true)); UseItems = Menu.Add(new MenuBool("tyler1Items", "Use Items?", true)); DrawingMenu = Menu.Add(new Menu("tyler1DrawSettings", "Draw Settings:")); DrawAXECatchRadius = DrawingMenu.Add(new MenuBool("tyler1AxeCatchDraw", "Draw Axe Catch Radius", true)); DrawAXELocation = DrawingMenu.Add(new MenuBool("tyler1AxeLocationDraw", "Draw Axe Location", true)); DrawAXELine = DrawingMenu.Add(new MenuBool("tyler1AxeLineDraw", "Draw Line to Axe Position", true)); ColorMenu = DrawingMenu.Add(new MenuColor("tyler1DrawingColor", "Drawing Color", ColorBGRA.FromRgba(Color.Red.ToRgba()))); Menu.Attach(); }
private static void Game_OnProcessSpell(Obj_AI_Base hero, GameObjectProcessSpellCastEventArgs args) { if (!Tracker.Menu["ward.tracker"]["enemy.ward"]) { return; } if (hero.IsEnemy && hero is Obj_AI_Hero && hero.IsValid()) { WardData wardData; if (WardDatabase.WardspellNames.TryGetValue(args.SData.Name.ToLower(), out wardData)) { var pos = args.End.ToVector2(); DelayAction.Add((float)50, () => { if (Wards.Any(ward => ward.Position.ToVector2().Distance(pos) < 50 && Variables.TickCount - ward.Timestamp < 100)) { return; } var newWard = new WardTrackerInfo( wardData, pos.ToVector3(), null ) { StartPos = args.Start.ToVector2(), EndPos = args.End.ToVector2() }; Wards.Add(newWard); }); } } }