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); } } }
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(); }
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); } }
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()}"); } } }
} // 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
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); } } }
static Vector2 HeroPositionOnScreen(Hero x) { Vector2 PicPosition; PicPosition = new Vector2(HUDInfo.GetHPbarPosition(x).X - 1, HUDInfo.GetHPbarPosition(x).Y - 40); return(PicPosition); }
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); } } }
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; } }
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); } } }
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); } }
/// <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); }
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); } } } }
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) { } } }
} // 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
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; } }
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}"); } } }
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); }
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); } } }
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); } }
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 } } }
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()}"); } } }
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); } }
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()}"); } } }
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); } }
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); } } } }
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); } }
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); } } }
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); } } } } }
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); } }