Example #1
0
        public void OnUpdate()
        {
            if (sleeper.Sleeping)
            {
                return;
            }

            var allHeroes = ObjectManager.GetEntitiesParallel <Hero>().Where(x => x.IsValid && !x.IsIllusion);

            foreach (var hero in allHeroes)
            {
                if (!addedHeroes.Contains(hero.HeroId))
                {
                    menu.AddHeroMenu(hero);
                    addedHeroes.Add(hero.HeroId);
                }

                if (menu.IsItemsMenuEnabled(hero))
                {
                    foreach (var item in hero.Inventory.Items)
                    {
                        var itemName = item.GetDefaultName();

                        if (string.IsNullOrEmpty(itemName) || addedItems.ContainsKey(hero.StoredName() + itemName))
                        {
                            continue;
                        }

                        addedItems.Add(hero.StoredName() + itemName, item);

                        if (item.GetRealCastRange() > 500)
                        {
                            menu.AddMenuItem(hero, item);
                        }
                    }
                }

                foreach (var drawnAbility in drawnAbilities.Where(x => x.Key.Equals(hero))
                         .SelectMany(x => x.Value)
                         .Where(x => (x.ParticleEffect != null || !x.IsValid) && !x.Disabled && x.Level > 0))
                {
                    switch (drawnAbility.CustomRange)
                    {
                    case CustomRange.Experience:
                    case CustomRange.Aggro:
                        continue;

                    case CustomRange.Attack:
                        if (Math.Abs(drawnAbility.Range - hero.GetAttackRange()) > 10)
                        {
                            Redraw(drawnAbility);
                        }
                        continue;
                    }

                    var newAbility = false;

                    if (!drawnAbility.IsValid)
                    {
                        drawnAbility.FindAbility();

                        if (drawnAbility.IsValid)
                        {
                            newAbility = true;
                        }
                    }

                    if (drawnAbility.Ability == null && drawnAbility.ParticleEffect != null)
                    {
                        drawnAbility.ParticleEffect.Dispose();
                        drawnAbility.ParticleEffect = null;
                    }
                    else if ((newAbility || (drawnAbility.ParticleEffect != null &&
                                             (Math.Abs(
                                                  drawnAbility.RealCastRange
                                                  - drawnAbility.Ability.GetRealCastRange()) > 5 ||
                                              drawnAbility.RadiusOnly &&
                                              Math.Abs(
                                                  drawnAbility.Radius - drawnAbility.Ability.GetRadius() - 35) > 5))) &&
                             !drawnAbility.Disabled)
                    {
                        Redraw(drawnAbility);
                    }
                }
            }

            sleeper.Sleep(3000);
        }
Example #2
0
        public async void OnUpdate()
        {
            if (sleeper.Sleeping || delay)
            {
                return;
            }

            delay = true;

            try
            {
                var allHeroes = Heroes.All.Where(x => x.IsValid && !x.IsIllusion);

                foreach (var hero in allHeroes)
                {
                    if (!addedHeroes.Contains(hero.Handle))
                    {
                        await menu.AddHeroMenu(hero);

                        addedHeroes.Add(hero.Handle);
                    }

                    foreach (var item in hero.Inventory.Items)
                    {
                        var itemName = item.GetDefaultName();

                        if (string.IsNullOrEmpty(itemName) || addedItems.ContainsKey(hero.StoredName() + itemName))
                        {
                            continue;
                        }

                        addedItems.Add(hero.StoredName() + itemName, item);

                        if (item.GetRealCastRange() > 500)
                        {
                            await menu.AddMenuItem(hero, item);
                        }
                    }

                    foreach (var drawedAbility in
                             drawedAbilities.Where(x => x.Key.Equals(hero))
                             .SelectMany(x => x.Value)
                             .Where(x => (x.ParticleEffect != null || !x.IsValid) && !x.Disabled && x.Level > 0))
                    {
                        switch (drawedAbility.CustomRange)
                        {
                        case CustomRange.Expiriece:
                            continue;

                        case CustomRange.Attack:
                            if (Math.Abs(drawedAbility.Range - hero.GetAttackRange()) > 10)
                            {
                                Redraw(drawedAbility);
                            }
                            continue;
                        }

                        var newAbility = false;

                        if (!drawedAbility.IsValid)
                        {
                            drawedAbility.FindAbility();

                            if (drawedAbility.IsValid)
                            {
                                newAbility = true;
                            }
                        }

                        if (drawedAbility.Ability == null && drawedAbility.ParticleEffect != null)
                        {
                            drawedAbility.ParticleEffect.Dispose();
                            drawedAbility.ParticleEffect = null;
                        }
                        else if ((newAbility ||
                                  (drawedAbility.ParticleEffect != null &&
                                   Math.Abs(drawedAbility.RealCastRange - drawedAbility.Ability.GetRealCastRange())
                                   > 5)) && !drawedAbility.Disabled)
                        {
                            Redraw(drawedAbility);
                        }
                    }
                }
            }
            catch (Exception)
            {
            }

            delay = false;
            sleeper.Sleep(3000);
        }