Ejemplo n.º 1
0
 public static void damagecalc(EventArgs args)
 {
     if (!Game.IsInGame || Game.IsWatchingGame)
     {
         return;
     }
     me = ObjectMgr.LocalHero;
     if (me == null || me.ClassID != ClassID.CDOTA_Unit_Hero_Necrolyte)
     {
         return;
     }
     if (Menu.Item("Drawing.Info").GetValue <bool>())
     {
         if (Utils.SleepCheck("locktarget"))
         {
             target = me.ClosestToMouseTarget(1000);
         }
         if (target == null)
         {
             return;
         }
         if (target != null)
         {
             var combodamage     = ComboDamage();
             var BarSize_Requiem = (HUDInfo.GetHPBarSizeX(target) / ((float)(target.MaximumHealth - combodamage) / (target.Health - combodamage)));
             if (BarSize_Requiem > HUDInfo.GetHPBarSizeX(target))
             {
                 BarSize_Requiem = HUDInfo.GetHPBarSizeX(target);
             }
             Drawing.DrawText((target.Health - combodamage) > 0 ? "" + (int)(target.Health - combodamage) : "Killable", new Vector2(HUDInfo.GetHPbarPosition(target).X, HUDInfo.GetHPbarPosition(target).Y - 42), new Vector2(15, 20), combodamage < target.Health ? Color.White : Color.Red, FontFlags.Additive);
             Drawing.DrawRect(new Vector2(HUDInfo.GetHPbarPosition(target).X, HUDInfo.GetHPbarPosition(target).Y - 1), new Vector2(combodamage >= target.MaximumHealth ? 0 : BarSize_Requiem, HUDInfo.GetHpBarSizeY(target) - 8), Color.GreenYellow);
             Drawing.DrawRect(new Vector2(HUDInfo.GetHPbarPosition(target).X, HUDInfo.GetHPbarPosition(target).Y - 1), new Vector2(HUDInfo.GetHPBarSizeX(target), HUDInfo.GetHpBarSizeY(target) - 8), Color.Black, true);
         }
     }
 }
Ejemplo n.º 2
0
        private void Drawing_OnDraw(EventArgs args)
        {
            if (!IsStacking || !IsValid)
            {
                return;
            }

            campNameTextPosition = HUDInfo.GetHPbarPosition(Unit)
                                   + new Vector2((GetHpBarSizeX - MeasureCampNameTextSize.X) / 2, IsHero ? 25 : 0);

            if (campNameTextPosition.IsZero)
            {
                return;
            }
            var text = CurrentCamp.Name;

            if (Debug)
            {
                text += " (" + CurrentStatus + ")";
            }

            var campName = new DrawText
            {
                Position = campNameTextPosition, Text = text, Color = Color.White,
                TextSize = new Vector2(16)
            };

            if (IsUnderCampNameText && !IsHero)
            {
                campName.Color = Color.Orange;
            }

            campName.Draw();
        }
Ejemplo n.º 3
0
        private void OnDraw(EventArgs args)
        {
            if (!DebugMenu.ArmletToggler)
            {
                return;
            }

            if (canToggle)
            {
                Drawing.DrawText(
                    "Can toggle",
                    "Arial",
                    HUDInfo.GetHPbarPosition(Hero) + new Vector2(10, -30),
                    new Vector2(25),
                    Color.White,
                    FontFlags.None);
            }

            foreach (var source in
                     ObjectManager.GetEntities <Unit>()
                     .Where(x => x.IsAlive && x.Distance2D(Hero) < 1000 && x.IsAttacking() && !x.Equals(Hero)))
            {
                Drawing.DrawText(
                    "Attacking " + source.AttackPoint().ToString("0.##") + " / "
                    + source.AttackBackswing().ToString("0.##"),
                    "Arial",
                    HUDInfo.GetHPbarPosition(source) + new Vector2(-15, -20),
                    new Vector2(20),
                    Color.White,
                    FontFlags.None);
            }
        }
Ejemplo n.º 4
0
 private static void Drawing_OnDraw(EventArgs args)
 {
     if (!Checker.IsActive())
     {
         return;
     }
     if (!IsEnable)
     {
         return;
     }
     foreach (var v in Manager.HeroManager.GetEnemyViableHeroes())
     {
         try
         {
             var pos = HUDInfo.GetHPbarPosition(v);
             if (pos.IsZero)
             {
                 continue;
             }
             pos += new Vector2(0, HUDInfo.GetHpBarSizeY() - 2);
             var size      = new Vector2(HUDInfo.GetHPBarSizeX(), HUDInfo.GetHpBarSizeY() * ManaBarSize);
             var manaDelta = new Vector2(v.Mana * size.X / v.MaximumMana, 0);
             Drawing.DrawRect(pos, size, Color.Black);
             Drawing.DrawRect(pos, new Vector2(manaDelta.X, size.Y), new Color(R, G, B, 255));
             Drawing.DrawRect(pos, size, Color.Black, true);
         }
         catch (Exception)
         {
             Printer.Print($"[Manabars]: {v.StoredName()}");
         }
     }
 }
Ejemplo n.º 5
0
        }         // AutoSpells::END

        private void DrawUltiDamage(EventArgs args)
        {
            if (!Game.IsInGame || Game.IsPaused || Game.IsWatchingGame || enemies.Count == 0)
            {
                return;
            }

            if (Menu.Item("dmg").IsActive())
            {
                foreach (var v in enemies)
                {
                    var screenPos = HUDInfo.GetHPbarPosition(v);
                    if (!OnScreen(v.Position))
                    {
                        continue;
                    }
                    var text     = (v.Health <= damage[v.Handle] ? "Yes: " + Math.Floor(damage[v.Handle]) : "No: " + Math.Floor(damage[v.Handle]));
                    var size     = new Vector2(18, 18);
                    var textSize = Drawing.MeasureText(text, "Arial", size, FontFlags.AntiAlias);
                    var position = new Vector2(screenPos.X - textSize.X + 91, screenPos.Y + 62);
                    Drawing.DrawText(
                        text,
                        position,
                        size,
                        (v.Health <= damage[v.Handle] ? Color.LawnGreen : Color.Red),
                        FontFlags.AntiAlias);
                    Drawing.DrawText(
                        text,
                        new Vector2(screenPos.X - textSize.X + 92, screenPos.Y + 63),
                        size,
                        (Color.Black),
                        FontFlags.AntiAlias);
                }
            }
        } // DrawUltiDamage::END
Ejemplo n.º 6
0
        public static void Update(EventArgs args)
        {
            if (!Utils.SleepCheck("HpBar.Update"))
            {
                return;
            }

            // Utils.Sleep(1, "HpBar.Update");
            foreach (var enemyHero in EnemyHeroes.UsableHeroes)
            {
                var name = NameManager.Name(enemyHero);
                if (!HpBarPositionDictionary.ContainsKey(name))
                {
                    HpBarPositionDictionary.Add(name, HUDInfo.GetHPbarPosition(enemyHero));
                }
                else
                {
                    HpBarPositionDictionary[name] = HUDInfo.GetHPbarPosition(enemyHero);
                }
            }

            foreach (var enemyHero in AllyHeroes.UsableHeroes)
            {
                var name = NameManager.Name(enemyHero);
                if (!HpBarPositionDictionary.ContainsKey(name))
                {
                    HpBarPositionDictionary.Add(name, HUDInfo.GetHPbarPosition(enemyHero));
                }
                else
                {
                    HpBarPositionDictionary[name] = HUDInfo.GetHPbarPosition(enemyHero);
                }
            }
        }
Ejemplo n.º 7
0
        static Vector2 HeroPositionOnScreen(Hero x)
        {
            Vector2 PicPosition;

            PicPosition = new Vector2(HUDInfo.GetHPbarPosition(x).X - 1, HUDInfo.GetHPbarPosition(x).Y - 40);
            return(PicPosition);
        }
Ejemplo n.º 8
0
        private void OnDraw(EventArgs args)
        {
            var allEnemies = EntityManager <Hero> .Entities.Where(x =>
                                                                  x.IsValid && x.IsAlive && x.IsVisible && x.IsEnemy(Me) && !x.IsIllusion);

            foreach (var enemy in allEnemies)
            {
                var pos = HUDInfo.GetHPbarPosition(enemy);
                if (pos.IsZero)
                {
                    continue;
                }
                if (!Enable)
                {
                    UpdateDamage(enemy, out _);
                }
                if (_damageDict.TryGetValue(enemy.Handle, out var damage))
                {
                    var fontSize = HpBarY * 1.5f;
                    var mesText  = Drawing.MeasureText($"{damage}", "arial", new Vector2(fontSize), FontFlags.None);
                    Drawing.DrawText($"{damage}", pos - new Vector2(mesText.X + 5, 0), new Vector2(fontSize),
                                     Color.White, FontFlags.None);
                }
            }
        }
Ejemplo n.º 9
0
        private static void DrawOldMethod(Hero v, List <Item> items)
        {
            float count = 0;
            var   iPos  = HUDInfo.GetHPbarPosition(v);
            var   iSize = new Vector2(HUDInfo.GetHPBarSizeX(v), HUDInfo.GetHpBarSizeY(v));

            foreach (var item in items)
            {
                var itemname = Textures.GetItemTexture(item.StoredName());

                Drawing.DrawRect(iPos + new Vector2(count, 50),
                                 new Vector2(iSize.X / 3, (float)(iSize.Y * 2.5)),
                                 itemname);
                if (item.AbilityState == AbilityState.OnCooldown)
                {
                    var cd = ((int)item.Cooldown).ToString(CultureInfo.InvariantCulture);
                    Drawing.DrawText(cd, iPos + new Vector2(count, 40), Color.White,
                                     FontFlags.AntiAlias | FontFlags.DropShadow);
                }
                if (item.AbilityState == AbilityState.NotEnoughMana)
                {
                    Drawing.DrawRect(iPos + new Vector2(count, 50),
                                     new Vector2(iSize.X / 4, (float)(iSize.Y * 2.5)), new Color(0, 0, 200, 100));
                }
                count += iSize.X / 4;
            }
        }
Ejemplo n.º 10
0
        public static void OnDraw(EventArgs args)
        {
            if (!Enable || !MenuManager.IsEnable)
            {
                return;
            }
            foreach (
                var bomb in
                Core.Bombs.Where(x => x.Active && !x.IsRemoteMine && x.Status == Enums.BombStatus.WillDetonate))
            {
                var pos       = HUDInfo.GetHPbarPosition(bomb.Bomb);//Drawing.WorldToScreen(bomb.Bomb.Position);
                var bombTimer = Game.RawGameTime - bomb.StatusStartTIme;
                var hpBarSize = HUDInfo.GetHPBarSizeX();
                var size      = new Vector2(hpBarSize * 1f, BarSize);
                var cdDelta   = bombTimer * size.X / BombMaxTimer;
                pos += new Vector2(0, hpBarSize * 0.5f);
                Drawing.DrawRect(pos, new Vector2(size.X, size.Y), Color.Black);
                Drawing.DrawRect(pos, new Vector2(size.X - cdDelta, size.Y), Color.YellowGreen);
                Drawing.DrawRect(pos, new Vector2(size.X, size.Y), Color.Black, true);

                if (DrawDigs)
                {
                    var text     = $"{(int) (100 - bombTimer/BombMaxTimer*100)}%";
                    var textSize = Drawing.MeasureText(text, "Arial",
                                                       new Vector2((float)(size.Y * DigSize), size.Y / 2), FontFlags.AntiAlias);
                    var textPos = pos + new Vector2(size.X / 2 - textSize.X / 2, size.Y - textSize.Y);
                    Drawing.DrawText(
                        text,
                        textPos,
                        new Vector2(textSize.Y, 0),
                        Color.White,
                        FontFlags.AntiAlias | FontFlags.StrikeOut);
                }
            }
        }
Ejemplo n.º 11
0
        private void Drawing_OnDraw(EventArgs args)
        {
            if (!Config.Enabled)
            {
                return;
            }

            var enemies = EntityManager <Hero> .Entities
                          .Where(x => myHero.Team != x.Team && x.IsValid && !x.IsIllusion && x.IsAlive && x.IsVisible)
                          .ToList();

            if (!enemies.Any())
            {
                return;
            }

            var threshold = OrbwalkerMode.R.GetAbilityData("kill_threshold");

            if (threshold <= 0)
            {
                return;
            }

            foreach (var enemy in enemies)
            {
                var tmp  = enemy.Health < threshold ? enemy.Health : threshold;
                var perc = tmp / enemy.MaximumHealth;
                var pos  = HUDInfo.GetHPbarPosition(enemy) + 2;
                var size = new Vector2(HUDInfo.GetHPBarSizeX(enemy) - 6, HUDInfo.GetHpBarSizeY(enemy) - 2);

                Drawing.DrawRect(pos, new Vector2(size.X * perc, size.Y), Color.Chocolate);
            }
        }
Ejemplo n.º 12
0
        /// <summary>
        ///     The draw suicide.
        /// </summary>
        /// <param name="classId">
        ///     The class id.
        /// </param>
        /// <param name="health">
        ///     The health.
        /// </param>
        /// <param name="x">
        ///     The x.
        /// </param>
        /// <param name="sizey">
        ///     The size y.
        /// </param>
        /// <param name="sizeX">
        ///     The size x.
        /// </param>
        /// <param name="enabled">
        ///     The enabled.
        /// </param>
        /// <param name="hero">
        ///     The hero.
        /// </param>
        private static void DrawSuicide(
            ClassID classId,
            float health,
            double x,
            double sizey,
            double sizeX,
            bool enabled,
            Unit hero)
        {
            var suicideAttackDmg = Variables.Damage.GetSuicideDamage()[classId];

            if (!(suicideAttackDmg > 0))
            {
                return;
            }

            var dmg     = health - suicideAttackDmg;
            var canKill = dmg <= 0;

            if (Variables.Menu.DrawingsMenu.Item("drawTopPanel").GetValue <bool>())
            {
                Drawing.DrawText(
                    canKill ? "Yes" : "No",
                    new Vector2(canKill ? (float)(x + sizeX / 2) : (float)(x + sizeX / 1.7), (float)sizey),
                    new Vector2(17, 17),
                    enabled ? Color.DarkOrange : Color.DimGray,
                    FontFlags.AntiAlias);
            }

            if (!hero.IsVisible || !hero.IsAlive)
            {
                return;
            }

            if (!Variables.Menu.DrawingsMenu.Item("drawSuicideKills").GetValue <bool>())
            {
                return;
            }

            var screenPos = HUDInfo.GetHPbarPosition(hero);

            if (screenPos.X + 20 > Drawing.Width || screenPos.X - 20 < 0 || screenPos.Y + 100 > Drawing.Height ||
                screenPos.Y - 30 < 0)
            {
                return;
            }

            var text     = canKill ? "Yes" : "No " + Math.Floor(dmg);
            var size     = new Vector2(15, 15);
            var textSize = Drawing.MeasureText(text, "Arial", size, FontFlags.AntiAlias);
            var position = new Vector2(screenPos.X - textSize.X - 2, screenPos.Y - 3);

            Drawing.DrawText(
                text,
                position,
                size,
                enabled ? (canKill ? Color.LawnGreen : Color.Red) : Color.Gray,
                FontFlags.AntiAlias);
        }
Ejemplo n.º 13
0
        private void DrawingOnOnDraw(EventArgs args)
        {
            if (Enable)
            {
                foreach (var shrine in Shrines)
                {
                    if (shrine.Unit == null || !shrine.Unit.IsValid)
                    {
                        continue;
                    }
                    var v   = shrine.Unit;
                    var pos = HUDInfo.GetHPbarPosition(v);
                    if (pos.IsZero)
                    {
                        continue;
                    }
                    var filler = GetFiller(shrine);
                    if (filler == null || filler.AbilityState == AbilityState.Ready)
                    {
                        continue;
                    }
                    var cd        = filler.Cooldown;
                    var cdLength  = filler.CooldownLength;
                    var hpBarSize = HUDInfo.GetHPBarSizeX();
                    var size      = new Vector2(hpBarSize * 2, 15);
                    var buff      = v.FindModifier("modifier_filler_heal_aura");
                    var isBuff    = buff != null;
                    var remTine   = buff?.RemainingTime;
                    var cdDelta   = isBuff ? buff.RemainingTime * size.X / 5 : cd * size.X / cdLength;
                    pos += new Vector2(-hpBarSize / 2, hpBarSize * 1.5f);
                    if (true)
                    {
                        Drawing.DrawRect(pos, new Vector2(size.X, size.Y), Color.Black);
                        Drawing.DrawRect(pos, new Vector2(isBuff ? cdDelta : size.X - cdDelta, size.Y),
                                         isBuff ? Color.Orange : Color.YellowGreen);
                        Drawing.DrawRect(pos, new Vector2(size.X, size.Y), Color.Black, true);
                    }

                    if (true)
                    {
                        var text     = isBuff ? $"{(int) (remTine / 5 * 100)}%" : $"{(int) (100 - cd / cdLength * 100)}%";
                        var textSize = Drawing.MeasureText(text, "Arial",
                                                           new Vector2(size.Y * 1, size.Y / 2), FontFlags.AntiAlias);
                        var textPos = pos + new Vector2(size.X / 2 - textSize.X / 2, size.Y - textSize.Y);

                        /*Drawing.DrawRect(textPos - new Vector2(0, 0),
                         * new Vector2(textSize.X, textSize.Y),
                         * new Color(0, 0, 0, 200));*/
                        Drawing.DrawText(
                            text,
                            textPos,
                            new Vector2(textSize.Y, 0),
                            Color.White,
                            FontFlags.AntiAlias | FontFlags.StrikeOut);
                    }
                }
            }
        }
Ejemplo n.º 14
0
        private static void DrawItems(Hero v, bool forEnemy)
        {
            var pos = HUDInfo.GetHPbarPosition(v);

            if (pos.IsZero)
            {
                return;
            }
            List <Item> items;

            try
            {
                if (!Members.ItemDictionary.TryGetValue(v.Name, out items))
                {
                    return;
                }
            }
            catch (Exception)
            {
                Printer.Print("[ItemOverlay][DrawItems]: " + v.StoredName());
                return;
            }

            var count        = 0;
            var itemBoxSizeY = (float)(DefSize / 1.24);
            var newSize      = new Vector2(DefSize, itemBoxSizeY);
            var halfSize     = HUDInfo.GetHPBarSizeX() / 2;
            var maxSizeX     = Math.Max((float)items.Count / 2 * newSize.X + DefSize / (float)2.6, halfSize);

            pos -= new Vector2(-halfSize + maxSizeX, DefSize + DefSize / Extra);
            if (DangeItems && forEnemy)
            {
                items = items.Where(Check).ToList();
                if (DangOldMethod)
                {
                    DrawOldMethod(v, items);
                    return;
                }
            }
            foreach (var item in items)
            {
                try
                {
                    var tex        = Textures.GetItemTexture(item.StoredName());
                    var extraPos   = new Vector2(DefSize * count, 0);
                    var itemPos    = pos + extraPos;
                    var normalSize = newSize + new Vector2(4, DefSize / (float)2.6 + 4);
                    var normalPos  = itemPos - new Vector2(2, 2);
                    Drawing.DrawRect(normalPos, newSize + new Vector2(4, DefSize / (float)2.6 + 4), Color.Black);
                    Drawing.DrawRect(itemPos, newSize + DefSize / (float)2.6, tex);
                    DrawState(item, normalPos, normalSize, v.Mana);
                    count++;
                }
                catch (Exception)
                {
                }
            }
        }
Ejemplo n.º 15
0
        } // GetDamageTaken::END

        private void DrawUltiDamage(EventArgs args)
        {
            _enemies = ObjectManager.GetEntities <Hero>()
                       .Where(x => x.IsVisible && x.IsAlive && x.Team != Me.Team && !x.IsFullMagicResist() && !x.IsIllusion).ToList();
            if (!Game.IsInGame || Game.IsPaused || Game.IsWatchingGame || _enemies.Count == 0)
            {
                return;
            }

            if (Menu.Item("dmg").IsActive())
            {
                foreach (var v in _enemies)
                {
                    _damage[v.Handle] = CalculateDamage(v);
                    var screenPos = HUDInfo.GetHPbarPosition(v);
                    if (!OnScreen(v.Position))
                    {
                        continue;
                    }
                    var text     = v.Health <= _damage[v.Handle] ? "Yes: " + Math.Floor(_damage[v.Handle]) : "No: " + Math.Floor(_damage[v.Handle]);
                    var size     = new Vector2(18, 18);
                    var textSize = Drawing.MeasureText(text, "Arial", size, FontFlags.AntiAlias);
                    var position = new Vector2(screenPos.X - textSize.X + 85, screenPos.Y + 62);

                    Drawing.DrawText(
                        text,
                        new Vector2(screenPos.X - textSize.X + 84, screenPos.Y + 63),
                        size,
                        (Color.White),
                        FontFlags.AntiAlias);
                    Drawing.DrawText(
                        text,
                        position,
                        size,
                        (v.Health <= _damage[v.Handle] ? Color.LawnGreen : Color.Red),
                        FontFlags.AntiAlias);



                    _damage[v.Handle] = CalculateDamageR(v);
                    var textR     = v.Health <= _damage[v.Handle] ? "ThundergodS" : "";
                    var positionR = new Vector2(screenPos.X - textSize.X + 60, screenPos.Y - 20);

                    Drawing.DrawText(
                        textR,
                        new Vector2(screenPos.X - textSize.X + 59, screenPos.Y - 19),
                        size,
                        (Color.White),
                        FontFlags.AntiAlias);
                    Drawing.DrawText(
                        textR,
                        positionR,
                        size,
                        (Color.LawnGreen),
                        FontFlags.AntiAlias);
                }
            }
        } // DrawUltiDamage::END
Ejemplo n.º 16
0
        private static void DrawEzKill()
        {
            if (!Menu.Item("ezKillCheck").GetValue <bool>() || Game.IsWatchingGame || Game.IsChatOpen)
            {
                return;
            }
            switch (ezKillStyle.GetValue <StringList>().SelectedIndex)
            {
            case 0:
                var icoSize = new Vector2((float)(HUDInfo.GetHpBarSizeY() * 2));
                var icoPos  = HUDInfo.GetHPbarPosition(target) - new Vector2(21, 5);
                switch (IsEzKillable())
                {
                case true:
                    ezkillIcon = Drawing.GetTexture("materials/ensage_ui/emoticons/bc_emoticon_fire");
                    break;

                case false:
                    ezkillIcon = null;
                    break;
                }
                Drawing.DrawRect(icoPos, icoSize, ezkillIcon);
                break;

            case 1:
                var pos       = HUDInfo.GetHPbarPosition(target);
                var size      = HUDInfo.GetHpBarSizeY() + 3;
                var text      = string.Empty;
                var color     = new Color();
                var fontFlags = FontFlags.AntiAlias | FontFlags.Additive;
                if (Game.IsKeyDown(comboKey.GetValue <KeyBind>().Key))
                {
                    pos   = pos - new Vector2(58, 0);
                    text  = "CASTING...";
                    color = Color.Crimson;
                }
                else
                {
                    switch (IsEzKillable())
                    {
                    case true:
                        pos   = pos - new Vector2(40, 0);
                        text  = "EZKILL";
                        color = Color.Chartreuse;
                        break;

                    case false:
                        pos   = pos - new Vector2(63, 0);
                        text  = "NON-EZKILL";
                        color = Color.White;
                        break;
                    }
                }
                Drawing.DrawText(text, pos, new Vector2(size), color, fontFlags);
                break;
            }
        }
Ejemplo n.º 17
0
 private static void DrawDangeItems()
 {
     foreach (var hero in Manager.HeroManager.GetEnemyViableHeroes())
     {
         try
         {
             if (Manager.HeroManager.GetItemList(hero) == null)
             {
                 continue;
             }
             var         iPos  = HUDInfo.GetHPbarPosition(hero);
             var         iSize = new Vector2(HUDInfo.GetHPBarSizeX(hero), HUDInfo.GetHpBarSizeY(hero));
             float       count = 0;
             List <Item> items;
             try
             {
                 if (!Members.ItemDictionary.TryGetValue(hero.Name, out items))
                 {
                     continue;
                 }
             }
             catch (Exception)
             {
                 Printer.Print("[DrawDangeItems]: " + hero.StoredName());
                 continue;
             }
             foreach (
                 var item in
                 items
                 .Where(x => x != null && x.IsValid && Members.Menu.Item("dangitems.List").GetValue <AbilityToggler>().IsEnabled(x.Name))
                 )
             {
                 var itemname = $"materials/ensage_ui/items/{item.Name.Replace("item_", "")}.vmat";
                 Drawing.DrawRect(iPos + new Vector2(count, 50),
                                  new Vector2(iSize.X / 3, (float)(iSize.Y * 2.5)),
                                  Textures.GetTexture(itemname));
                 if (item.AbilityState == AbilityState.OnCooldown)
                 {
                     var cd = ((int)item.Cooldown).ToString(CultureInfo.InvariantCulture);
                     Drawing.DrawText(cd, iPos + new Vector2(count, 40), Color.White,
                                      FontFlags.AntiAlias | FontFlags.DropShadow);
                 }
                 if (item.AbilityState == AbilityState.NotEnoughMana)
                 {
                     Drawing.DrawRect(iPos + new Vector2(count, 50),
                                      new Vector2(iSize.X / 4, (float)(iSize.Y * 2.5)), new Color(0, 0, 200, 100));
                 }
                 count += iSize.X / 4;
             }
         }
         catch (Exception e)
         {
             Printer.Print($"[DrawDangeItems]: all --> {e.StackTrace}");
         }
     }
 }
Ejemplo n.º 18
0
        public static Vector2 GetHPbarPosition(Unit _Unit)
        {
            if (HUDHelper._Poses.ContainsKey(_Unit.ClassId))
            {
                return(Drawing.WorldToScreen(_Unit.Position) + HUDHelper._Poses[_Unit.ClassId]);
            }
            Vector2 vector2 = HUDInfo.GetHPbarPosition(_Unit) - Drawing.WorldToScreen(_Unit.Position);

            HUDHelper._Poses.Add(_Unit.ClassId, vector2);
            return(vector2);
        }
Ejemplo n.º 19
0
        private static void Overlay1(EventArgs args)
        {
            if (!Game.IsInGame)
            {
                return;
            }
            if (Menu.Item("manabar").GetValue <bool>())
            {
                var player = ObjectMgr.LocalPlayer;
                if (player == null || player.Team == Team.Observer)
                {
                    return;
                }

                var enemies = ObjectMgr.GetEntities <Hero>()
                              .Where(x => x.IsVisible && x.IsAlive && x.MaximumMana > 0 && !x.IsIllusion && x.Team != player.Team)
                              .ToList();
                foreach (var enemy in enemies)
                {
                    var start    = HUDInfo.GetHPbarPosition(enemy) + new Vector2(0, HUDInfo.GetHpBarSizeY(enemy) + 1);
                    var manaperc = enemy.Mana / enemy.MaximumMana;
                    var size     = new Vector2(HUDInfo.GetHPBarSizeX(enemy), HUDInfo.GetHpBarSizeY(enemy) * 2 / 5);

                    Drawing.DrawRect(start, size + new Vector2(1, 1), Color.Black);
                    Drawing.DrawRect(start, new Vector2(size.X * manaperc, size.Y), new Color(100, 135, 240, 255));
                    Drawing.DrawRect(start + new Vector2(-1, -2), size + new Vector2(4, 3), Color.Black, true);
                }
            }
            if (Menu.Item("toppanel").GetValue <bool>())
            {
                for (uint i = 0; i < 10; i++)
                {
                    var v = ObjectMgr.GetPlayerById(i).Hero;
                    if (v == null || !v.IsAlive)
                    {
                        continue;
                    }
                    var       pos         = HUDInfo.GetTopPanelPosition(v);
                    var       sizeX       = (float)HUDInfo.GetTopPanelSizeX(v);
                    var       sizeY       = (float)HUDInfo.GetTopPanelSizeY(v);
                    var       healthDelta = new Vector2(v.Health * sizeX / v.MaximumHealth, 0);
                    var       manaDelta   = new Vector2(v.Mana * sizeX / v.MaximumMana, 0);
                    const int height      = 7;

                    Drawing.DrawRect(pos + new Vector2(0, sizeY + 1), new Vector2(healthDelta.X, height), new Color(0, 255, 0, 100));
                    Drawing.DrawRect(pos + new Vector2(0, sizeY + 1), new Vector2(sizeX, height), Color.Black, true);

                    Drawing.DrawRect(pos + new Vector2(0, sizeY + height), new Vector2(manaDelta.X, height), new Color(80, 120, 255, 255));
                    Drawing.DrawRect(pos + new Vector2(0, sizeY + height), new Vector2(sizeX, height), Color.Black, true);
                }
            }
        }
Ejemplo n.º 20
0
        public static void DrawUltiDamage(EventArgs args)
        {
            if (!Game.IsInGame || Game.IsPaused || Game.IsWatchingGame)
            {
                return;
            }

            var me = ObjectMgr.LocalHero;

            if (me == null || me.ClassID != ClassID.CDOTA_Unit_Hero_Obsidian_Destroyer)
            {
                return;
            }

            var ultLvl = me.Spellbook.SpellR.Level;
            var enemy  =
                ObjectMgr.GetEntities <Hero>()
                .Where(y => y.Team != me.Team && y.IsAlive && y.IsVisible && !y.IsIllusion)
                .ToList();

            foreach (var v in enemy)
            {
                if (!v.IsVisible || !v.IsAlive)
                {
                    continue;
                }

                var meInt    = Math.Floor(me.TotalIntelligence);
                var enemyInt = Math.Floor(v.TotalIntelligence);
                var damage   = Math.Floor((ult[ultLvl] * (meInt - enemyInt)) * (1 - v.MagicDamageResist));
                var dmg      = v.Health - damage;
                var canKill  = dmg <= 0;

                var screenPos = HUDInfo.GetHPbarPosition(v);
                if (!OnScreen(v.Position))
                {
                    continue;
                }

                var text     = canKill ? "Yes" : "No, damage:" + Math.Floor(damage);
                var size     = new Vector2(15, 15);
                var textSize = Draws.MeasureText(text, "Arial", size, FontFlags.AntiAlias);
                var position = new Vector2(screenPos.X - textSize.X - 2, screenPos.Y - 3);
                Draws.DrawText(
                    text,
                    position,
                    size,
                    (canKill ? Color.LawnGreen : Color.Red),
                    FontFlags.AntiAlias);
            }
        }
Ejemplo n.º 21
0
        private static void DrawItems(Unit v)
        {
            var pos = HUDInfo.GetHPbarPosition(v);

            if (pos.IsZero)
            {
                return;
            }
            List <Item> items;

            try
            {
                if (!Members.ItemDictionary.TryGetValue(v.Handle, out items))
                {
                    return;
                }
            }
            catch (Exception)
            {
                Printer.Print("[ItemOverlay][DrawItems][Courier]: " + v.StoredName());
                return;
            }

            var count        = 0;
            var itemBoxSizeY = (float)(_defSize / 1.24);
            var newSize      = new Vector2(_defSize, itemBoxSizeY);
            var halfSize     = HUDInfo.GetHPBarSizeX() / 2;
            var maxSizeX     = Math.Max((float)items.Count / 2 * newSize.X + _defSize / (float)2.6, halfSize);

            pos -= new Vector2(-halfSize + maxSizeX, _defSize + _defSize / Extra);
            foreach (var item in items)
            {
                try
                {
                    var tex        = Textures.GetItemTexture(item.StoredName());
                    var extraPos   = new Vector2(_defSize * count, 0);
                    var itemPos    = pos + extraPos;
                    var normalSize = newSize + new Vector2(4, _defSize / (float)2.6 + 4);
                    var normalPos  = itemPos - new Vector2(2, 2);
                    Drawing.DrawRect(normalPos, newSize + new Vector2(4, _defSize / (float)2.6 + 4), Color.Black);
                    Drawing.DrawRect(itemPos, newSize + _defSize / (float)2.6, tex);
                    DrawState(item, normalPos, normalSize, v.Mana);
                    count++;
                }
                catch (Exception)
                {
                    // ignored
                }
            }
        }
Ejemplo n.º 22
0
        private static void Drawing_OnDraw(EventArgs args)
        {
            if (!Checker.IsActive())
            {
                return;
            }
            if (!IsEnable)
            {
                return;
            }
            foreach (var v in Manager.HeroManager.GetEnemyViableHeroes())
            {
                try
                {
                    var pos = HUDInfo.GetHPbarPosition(v);
                    if (pos.IsZero)
                    {
                        continue;
                    }
                    pos += new Vector2(0, HUDInfo.GetHpBarSizeY() - 2);
                    var size      = new Vector2(HUDInfo.GetHPBarSizeX(), HUDInfo.GetHpBarSizeY() * ManaBarSize);
                    var manaDelta = new Vector2(v.Mana * size.X / v.MaximumMana, 0);
                    Drawing.DrawRect(pos, size, Color.Black);
                    Drawing.DrawRect(pos, new Vector2(manaDelta.X, size.Y), new Color(R, G, B, 255));
                    Drawing.DrawRect(pos, size, Color.Black, true);

                    if (IsNumsEnable)
                    {
                        var text     = $"{(int)v.Mana}/{(int)v.MaximumMana}";
                        var textSize = Drawing.MeasureText(text, "Arial",
                                                           new Vector2((float)(size.Y * DigSize), size.Y / 2), FontFlags.AntiAlias);
                        var textPos = pos + new Vector2(size.X / 2 - textSize.X / 2, size.Y - textSize.Y);

                        /*Drawing.DrawRect(textPos - new Vector2(0, 0),
                         *  new Vector2(textSize.X, textSize.Y),
                         *  new Color(0, 0, 0, 200));*/
                        Drawing.DrawText(
                            text,
                            textPos,
                            new Vector2(textSize.Y, 0),
                            Color.White,
                            FontFlags.AntiAlias | FontFlags.StrikeOut);
                    }
                }
                catch (Exception)
                {
                    Printer.Print($"[Manabars]: {v.StoredName()}");
                }
            }
        }
Ejemplo n.º 23
0
 public static Vector2 GetHPbarPosition(Unit _Unit)
 {
     if (_Poses.ContainsKey(_Unit.ClassId))
     {
         return(Drawing.WorldToScreen(_Unit.Position) + _Poses[_Unit.ClassId]);
     }
     else
     {
         var _Pos = HUDInfo.GetHPbarPosition(_Unit);
         _Pos = _Pos - Drawing.WorldToScreen(_Unit.Position);
         _Poses.Add(_Unit.ClassId, _Pos);
         return(_Pos);
     }
 }
Ejemplo n.º 24
0
        private static void Drawing_OnDraw(EventArgs args)
        {
            if (!Checker.IsActive())
            {
                return;
            }
            if (!IsEnable)
            {
                return;
            }
            if (InSys == null || InSys.Count == 0)
            {
                return;
            }
            var haveEb = InSys.Any(x => x.StoredName() == "item_ethereal_blade" && x.CanBeCasted());

            foreach (var v in Manager.HeroManager.GetEnemyViableHeroes())
            {
                try
                {
                    var pos = HUDInfo.GetHPbarPosition(v);
                    if (pos.IsZero)
                    {
                        continue;
                    }
                    var myDmg = InSys.Where(x => x.CanBeCasted())
                                .Sum(
                        x =>
                        AbilityDamage.CalculateDamage(x, Members.MyHero, v,
                                                      minusMagicResistancePerc: haveEb ? 40 : 0));
                    var healthAfterShit = (int)(v.Health - myDmg);
                    var size            = HUDInfo.GetHpBarSizeY();
                    var text            = $"{healthAfterShit} ({myDmg})";
                    var textSize        = Drawing.MeasureText(text, "Arial",
                                                              new Vector2((float)(size * 1.5), 500), FontFlags.AntiAlias);
                    var textPos = pos + new Vector2(HUDInfo.GetHPBarSizeX() + 4, 0);
                    Drawing.DrawText(
                        text,
                        textPos,
                        new Vector2(textSize.Y, 0),
                        new Color(R, G, B, 255),
                        FontFlags.AntiAlias | FontFlags.StrikeOut);
                }
                catch (Exception)
                {
                    Printer.Print($"[DamageCalculation]: {v.StoredName()}");
                }
            }
        }
Ejemplo n.º 25
0
        private static void Drawing_OnDraw(EventArgs args)
        {
            if (!Game.IsInGame || !Menu.Item("hotkey").GetValue <KeyBind>().Active)
            {
                return;
            }

            var hero = ObjectMgr.LocalHero;

            if (hero == null)
            {
                return;
            }

            var heroes =
                ObjectMgr.GetEntities <Hero>()
                .Where(x => !x.IsIllusion && x.IsVisible && x.IsAlive && !x.Equals(hero))
                .ToList();

            if (!Menu.Item("ally").GetValue <bool>())
            {
                heroes = heroes.Where(x => x.Team == hero.GetEnemyTeam()).ToList();
            }

            var ratio = HUDInfo.RatioPercentage() +
                        (HUDInfo.RatioPercentage() * ((float)Menu.Item("size").GetValue <Slider>().Value / 10));

            var posX = Menu.Item("posX").GetValue <Slider>().Value;
            var posY = Menu.Item("posY").GetValue <Slider>().Value;

            foreach (var unit in heroes)
            {
                var screenPosition = HUDInfo.GetHPbarPosition(unit);
                if (screenPosition.IsZero)
                {
                    continue;
                }

                var diff = unit.MovementSpeed - hero.MovementSpeed;

                Drawing.DrawRect(screenPosition + new Vector2(posX, posY), new Vector2(45 * ratio, 25 * ratio),
                                 new Color(0, 100, 100, 255));

                Drawing.DrawText(diff > 0 ? "+" + diff : diff.ToString(), "Arial",
                                 screenPosition + new Vector2(posX + 5 * ratio, posY + 4 * ratio),
                                 new Vector2(20 * ratio, 0), diff > 0 ? Color.Orange : Color.Yellow,
                                 FontFlags.AntiAlias | FontFlags.DropShadow);
            }
        }
Ejemplo n.º 26
0
        private void showHpBar()
        {
            Damage[] damageList = new Damage[_satellite.DamageList.Count];
            _satellite.DamageList.CopyTo(damageList);
            foreach (var data in damageList)
            {
                var target        = data.GetTarget;
                var hpBarPosition = HUDInfo.GetHPbarPosition(target);
                if (!hpBarPosition.IsZero)
                {
                    var hpBarSizeX = HUDInfo.GetHPBarSizeX(target);
                    var hpBarSizeY = HUDInfo.GetHpBarSizeY(target);
                    var myHudSizeY = HUDInfo.GetHpBarSizeY(target) * 0.5f;
                    var hpBarPos   = hpBarPosition + new Vector2(1, hpBarSizeY * 0.5f);

                    var health         = data.GetHealth;
                    var readyDamage    = data.GetReadyDamage;
                    var readyDamageBar = Math.Max(readyDamage, 0) / target.MaximumHealth;

                    if (readyDamageBar > 0)
                    {
                        //剩余和最大生命值的比例
                        var readyDamagePos = Math.Max(health - readyDamage, 0) / target.MaximumHealth;
                        //计算剩余血量终点的位置,刚好是预计伤害的起点
                        var readyDamagePosition = new Vector2(hpBarPos.X + hpBarSizeX * readyDamagePos, hpBarPos.Y);
                        //计算预计伤害的长度hpBarSizeX*readyDamageBar,防止溢出,要减去溢出的伤害血量
                        //这是一种取巧的写法,普通应该是判断溢出直接等同于当前血量的终点
                        var readyDamageSize  = new Vector2(hpBarSizeX * (readyDamageBar + Math.Min(health - readyDamage, 0) / target.MaximumHealth), myHudSizeY);
                        var readyDamageColor = (readyDamage - health) < 0 ? Color.FromArgb(200, 100, 0, 0) : Color.FromArgb(200, 191, 255, 0);
                        var rect             = new RectangleF(readyDamagePosition.X, readyDamagePosition.Y, readyDamageSize.X,
                                                              readyDamageSize.Y);
                        renderer.DrawFilledRectangle(rect, Color.Black, readyDamageColor, 1f);
                    }

                    var damage    = data.GetDamage;
                    var damageBar = Math.Max(damage, 0) / target.MaximumHealth;
                    if (damageBar > 0)
                    {
                        var damagePos      = Math.Max(health - damage, 0) / target.MaximumHealth;
                        var damagePosition = new Vector2(hpBarPos.X + (hpBarSizeX * damagePos), hpBarPos.Y);
                        var damageSize     = new Vector2(hpBarSizeX * (damageBar + Math.Min(health - damage, 0) / target.MaximumHealth), myHudSizeY);
                        var damageColor    = (damage - health) < 0? Color.FromArgb(255, 0, 255, 0) : Color.Aqua;
                        var rect           = new RectangleF(damagePosition.X, damagePosition.Y, damageSize.X,
                                                            damageSize.Y);
                        renderer.DrawFilledRectangle(rect, Color.Black, damageColor, 1f);
                    }
                }
            }
        }
Ejemplo n.º 27
0
        private static void Drawing_OnDraw(EventArgs args)
        {
            if (!Game.IsInGame)
            {
                return;
            }
            var player = ObjectManager.LocalPlayer;

            if (player == null || player.Team == Team.Observer)
            {
                return;
            }

            var enemies =
                ObjectManager.GetEntities <Hero>()
                .Where(x => x.IsVisible && x.IsAlive && x.MaximumMana > 0 && !x.IsIllusion && x.Team != player.Team)
                .ToList();

            foreach (var enemy in enemies)
            {
                var start = HUDInfo.GetHPbarPosition(enemy);
                if (start == Vector2.Zero)
                {
                    continue;
                }

                start = start + new Vector2(0, HUDInfo.GetHpBarSizeY(enemy) + 1);

                var manaperc = enemy.Mana / enemy.MaximumMana;
                var size     = new Vector2(HUDInfo.GetHPBarSizeX(enemy), HUDInfo.GetHpBarSizeY(enemy) / 2);
                // Draw background
                Drawing.DrawRect(start, size + new Vector2(1, 1), new Color(0, 0, 50, 150));
                // Draw manabar
                Drawing.DrawRect(start, new Vector2(size.X * manaperc, size.Y), Color.RoyalBlue);
                // Draw frame
                Drawing.DrawRect(start + new Vector2(-1, -1), size + new Vector2(3, 3), Color.Black, true);
                // Draw text
                var text     = string.Format("{0} / {1}", (int)enemy.Mana, (int)enemy.MaximumMana);
                var textSize = Drawing.MeasureText(text, "Arial", new Vector2(size.Y * 2, size.X), FontFlags.AntiAlias);
                var textPos  = start + new Vector2(size.X / 2 - textSize.X / 2, -textSize.Y / 2 + 2);
                Drawing.DrawText(
                    text,
                    textPos,
                    new Vector2(size.Y * 2, size.X),
                    Color.White,
                    FontFlags.AntiAlias | FontFlags.DropShadow);
            }
        }
Ejemplo n.º 28
0
        private void DrawingOnOnDraw(EventArgs args)
        {
            var heroes =
                EntityManager <Hero> .Entities.Where(
                    x => x.IsAlive && !x.IsAlly(_main.Invoker.Owner) && x.IsVisible);

            if (!DrawDamageHero && !DrawDamageTop)
            {
                return;
            }
            if (_main.Invoker.Exort.Level == 0)
            {
                return;
            }
            var damage = GetSunStikeDamage;

            foreach (var hero in heroes)
            {
                var text = $"{(int)(hero.Health - damage)}";
                if (DrawDamageHero)
                {
                    var pos = HUDInfo.GetHPbarPosition(hero);
                    if (!pos.IsZero)
                    {
                        var size     = new Vector2(HUDInfo.HpBarY / 1.5f);
                        var textSize = Drawing.MeasureText(text, "Arial", size,
                                                           FontFlags.AntiAlias | FontFlags.StrikeOut);
                        pos -= new Vector2(textSize.X + 5, 0);
                        Drawing.DrawText(text, pos, size, Color.White,
                                         FontFlags.AntiAlias | FontFlags.StrikeOut);
                    }
                }
                if (DrawDamageTop)
                {
                    var sizeY = (float)HUDInfo.GetTopPanelSizeY(hero);
                    var pos   = HUDInfo.GetTopPanelPosition(hero) +
                                new Vector2(0, sizeY * 2);
                    var size = new Vector2(sizeY / 1.5f);

                    /*var textSize = Drawing.MeasureText(text, "Arial", size,
                     *  FontFlags.AntiAlias | FontFlags.StrikeOut);*/
                    Drawing.DrawText(text, pos, size, Color.White,
                                     FontFlags.AntiAlias | FontFlags.StrikeOut);
                }
            }
        }
Ejemplo n.º 29
0
        private void OnDraw(EventArgs args)
        {
            foreach (var data in Config.DamageCalculation.DamageList)
            {
                var target      = data.GetTarget;
                var health      = data.GetHealth;
                var damage      = data.GetDamage;
                var readyDamage = data.GetReadyDamage;

                if (Menu.HPBarCalculationItem)
                {
                    var hpBarPosition = HUDInfo.GetHPbarPosition(target);
                    if (!hpBarPosition.IsZero)
                    {
                        var hpBarSizeX = HUDInfo.GetHPBarSizeX(target);
                        var hpBarSizeY = HUDInfo.GetHpBarSizeY(target) / 1.7f;
                        var hpBarPos   = hpBarPosition + new Vector2(0, hpBarSizeY * (Menu.HPBarCalculationPosItem / 70f));

                        var readyDamageBar = Math.Max(readyDamage, 0) / target.MaximumHealth;
                        if (readyDamageBar > 0)
                        {
                            var readyDamagePos      = Math.Max(health - readyDamage, 0) / target.MaximumHealth;
                            var readyDamagePosition = new Vector2(hpBarPos.X + ((hpBarSizeX + readyDamageBar) * readyDamagePos), hpBarPos.Y);
                            var readyDamageSize     = new Vector2(hpBarSizeX * (readyDamageBar + Math.Min(health - readyDamage, 0) / target.MaximumHealth), hpBarSizeY);
                            var readyDamageColor    = ((float)health / target.MaximumHealth) - readyDamageBar > 0 ? new Color(100, 0, 0, 200) : new Color(191, 255, 0, 200);

                            Drawing.DrawRect(readyDamagePosition, readyDamageSize, readyDamageColor);
                            Drawing.DrawRect(readyDamagePosition, readyDamageSize, Color.Black, true);
                        }

                        var damageBar = Math.Max(damage, 0) / target.MaximumHealth;
                        if (damageBar > 0)
                        {
                            var damagePos      = Math.Max(health - damage, 0) / target.MaximumHealth;
                            var damagePosition = new Vector2(hpBarPos.X + ((hpBarSizeX + damageBar) * damagePos), hpBarPos.Y);
                            var damageSize     = new Vector2(hpBarSizeX * (damageBar + Math.Min(health - damage, 0) / target.MaximumHealth), hpBarSizeY);
                            var damageColor    = ((float)health / target.MaximumHealth) - damageBar > 0 ? new Color(0, 255, 0) : Color.Aqua;

                            Drawing.DrawRect(damagePosition, damageSize, damageColor);
                            Drawing.DrawRect(damagePosition, damageSize, Color.Black, true);
                        }
                    }
                }
            }
        }
Ejemplo n.º 30
0
        public static void Drawing(EventArgs args)
        {
            if (!IsEnable)
            {
                return;
            }
            if (!IsDrawingEnable)
            {
                return;
            }
            var heroes =
                Heroes.GetByTeam(Members.MyHero.GetEnemyTeam())
                .Where(x => x.IsVisible && x.IsAlive && x.HasModifier("modifier_earth_spirit_magnetize"))
                .ToList();

            foreach (var hero in heroes)
            {
                var pos = HUDInfo.GetHPbarPosition(hero);
                if (pos.IsZero)
                {
                    continue;
                }
                pos += new Vector2(ExtraPosX, ExtraPosY);
                var size = Size;
                var mod  = hero.FindModifier("modifier_earth_spirit_magnetize");
                if (mod == null || !mod.IsValid)
                {
                    continue;
                }
                var ultimateCd =
                    ((int)Math.Min(mod.RemainingTime + 1, 99)).ToString(CultureInfo.InvariantCulture);
                var textSize = Ensage.Drawing.MeasureText(ultimateCd, "Arial",
                                                          new Vector2((float)(size * .75), size / 2), FontFlags.AntiAlias);
                var textPos = pos;
                Ensage.Drawing.DrawRect(textPos - new Vector2(0, 0),
                                        new Vector2(textSize.X, textSize.Y),
                                        new Color(0, 0, 0, 200));
                Ensage.Drawing.DrawText(
                    ultimateCd,
                    textPos,
                    new Vector2(textSize.Y, 0),
                    Color.White,
                    FontFlags.AntiAlias | FontFlags.StrikeOut);
            }
        }