示例#1
0
        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!");
                }
            }
        }
示例#2
0
        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());
            }
        }
示例#3
0
        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;
            };
        }
示例#4
0
        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);
                    });
                }
            }
        }
示例#5
0
        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);
                    }
                }
            });
        }
示例#6
0
        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);
                    }
                });
            }
        }
示例#7
0
 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}");
     };
 }
示例#8
0
        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;
            }
        }
示例#9
0
        /// <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();
                }
            }
        }
示例#10
0
        /// <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());
                });
            }
        }
示例#11
0
        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);
                            }
                        });
                    }
                }
            }
        }
示例#12
0
 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();
             }
         });
     };
 }
示例#13
0
        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
                        }
                    });
        }
示例#14
0
 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);
             }
         }
     };
 }
示例#15
0
        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)); });
            }
        }
示例#16
0
 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();
             }
         });
     };
 }
示例#17
0
        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();
            });
        }
示例#18
0
        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);
                }
            });
        }
示例#19
0
        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);
            });
        }
示例#20
0
 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);
             }
         }
     }
 }
示例#21
0
 /// <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);
             }
         });
     }
 }
示例#22
0
        /// <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()); // ??
            }
        }
示例#23
0
 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);
     }
 }
示例#24
0
        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));
                        }
                    }
                }
            }
        }
示例#25
0
        /// <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);
                }
            });
        }
示例#26
0
        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}");
                     * }*/
                });
            };
        }
示例#27
0
        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);
            }
        }
示例#28
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);
                }
            });
        }
示例#29
0
        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();
        }
示例#30
0
        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);
                    });
                }
            }
        }