private static void Drawing_OnEndScene(EventArgs args) { if (Drawing.Direct3DDevice == null || Drawing.Direct3DDevice.IsDisposed) { return; } if (MenuLocal.Item("Lantern.Draw.Enable").GetValue <bool>()) { return; } foreach (var ability in objectDrawings.Where(d => d.Object.IsValid && d.Position.IsOnScreen() && d.EndTime > Game.Time)) { var position = Drawing.WorldToScreen(ability.Position); if (MenuLocal.Item("Lantern.Draw.Timer").GetValue <bool>()) { CommonGeometry.DrawBox(new Vector2(position.X - 50, position.Y - 50), 100, 8, Color.Transparent, 1, Color.Black); var buffTime = ability.EndTime - Game.Time; int n = (buffTime > 0) ? (int)(100 * (1f - (Math.Abs(ability.EndTime - ability.StartTime) > float.Epsilon ? buffTime / (ability.EndTime - ability.StartTime) : 1f))) : 100; CommonGeometry.DrawBox(new Vector2(position.X - 50 + 1, position.Y - 50 + 1), n, 6, ability.Color, 1, Color.Transparent); CommonGeometry.DrawText(CommonGeometry.TextPassive, (ability.EndTime - Game.Time).ToString("0.0"), position.X - 50 + 105, +position.Y - 52, SharpDX.Color.AntiqueWhite); } if (MenuLocal.Item("Lantern.Draw.Circle").GetValue <bool>()) { var circle = new CommonGeometry.Circle2(ability.Position.To2D(), 450, Game.Time * 300 - ability.StartTime * 300, ability.EndTime * 300 - ability.StartTime * 300) .ToPolygon(); circle.Draw(Color.Red, 2); } if (MenuLocal.Item("Lantern.Draw.Direction").GetValue <bool>()) { var color = Color.DarkRed; var width = 4; var startpos = ObjectManager.Player.Position; var endpos = ability.Position; if (startpos.Distance(endpos) > 100) { var endpos1 = ability.Position + (startpos - endpos).To2D().Normalized().Rotated(25 * (float)Math.PI / 180).To3D() * 75; var endpos2 = ability.Position + (startpos - endpos).To2D().Normalized().Rotated(-25 * (float)Math.PI / 180).To3D() * 75; var x1 = new Geometry.Polygon.Line(startpos, endpos); x1.Draw(color, width - 2); var y1 = new Geometry.Polygon.Line(endpos, endpos1); y1.Draw(color, width - 2); var z1 = new Geometry.Polygon.Line(endpos, endpos2); z1.Draw(color, width - 2); } } } }
private static void Drawing_OnDraw_PassiveTimes(EventArgs args) { var passiveBuffs = (from b in ObjectManager.Player.Buffs join b1 in CommonBuffManager.PassiveBuffs on b.DisplayName equals b1.BuffName select new { b, b1 }).Distinct(); foreach (var buffName in passiveBuffs) { //Chat.Print(buffName.b1.BuffName); for (int i = 0; i < passiveBuffs.Count(); i++) { if (buffName.b.EndTime >= Game.Time) { CommonGeometry.DrawBox(new Vector2(ObjectManager.Player.HPBarPosition.X + 10, (i * 8) + ObjectManager.Player.HPBarPosition.Y + 32), 130, 6, Color.FromArgb(100, 255, 200, 37), 1, Color.Black); var buffTime = buffName.b.EndTime - buffName.b.StartTime; CommonGeometry.DrawBox(new Vector2(ObjectManager.Player.HPBarPosition.X + 11, (i * 8) + ObjectManager.Player.HPBarPosition.Y + 33), (130 / buffTime) * (buffName.b.EndTime - Game.Time), 4, buffName.b1.Color, 1, buffName.b1.Color); TimeSpan timeSpan = TimeSpan.FromSeconds(buffName.b.EndTime - Game.Time); var timer = $"{timeSpan.Minutes:D2}:{timeSpan.Seconds:D2}"; CommonGeometry.DrawText(CommonGeometry.TextPassive, timer, ObjectManager.Player.HPBarPosition.X + 142, (i * 8) + ObjectManager.Player.HPBarPosition.Y + 29, SharpDX.Color.Wheat); } } } foreach (var hero in HeroManager.AllHeroes) { var jungleBuffs = (from b in hero.Buffs join b1 in CommonBuffManager.JungleBuffs on b.DisplayName equals b1.BuffName select new { b, b1 }).Distinct(); foreach (var buffName in jungleBuffs.ToList()) { var nDiff1 = buffName.b.EndTime - buffName.b.StartTime < 10 ? (Game.Time - buffName.b.StartTime) * 10 : Game.Time - buffName.b.StartTime; var nDiff2 = buffName.b.EndTime - buffName.b.StartTime < 10 ? (buffName.b.EndTime - buffName.b.StartTime) * 10 : buffName.b.EndTime - buffName.b.StartTime; var circle1 = new CommonGeometry.Circle2(new Vector2(hero.Position.X + 3, hero.Position.Y - 3), 140 + (buffName.b1.Number * 20), nDiff1, nDiff2).ToPolygon(); circle1.Draw(Color.Black, 3); var circle = new CommonGeometry.Circle2(hero.Position.To2D(), 140 + (buffName.b1.Number * 20), nDiff1, nDiff2).ToPolygon(); circle.Draw(buffName.b1.Color, 3); } } }
private static void Drawing_OnDraw(EventArgs args) { if (getCheckBoxItem(drawMenu, "Show.JungleBuffs")) { foreach (var hero in HeroManager.AllHeroes) { var jungleBuffs = (from b in hero.Buffs join b1 in CommonBuffManager.JungleBuffs on b.DisplayName equals b1.BuffName select new { b, b1 }).Distinct(); foreach (var buffName in jungleBuffs.ToList()) { var circle1 = new CommonGeometry.Circle2(new Vector2(hero.Position.X + 3, hero.Position.Y - 3), 140 + (buffName.b1.Number * 20), Game.Time - buffName.b.StartTime, buffName.b.EndTime - buffName.b.StartTime).ToPolygon(); circle1.Draw(Color.Black, 3); var circle = new CommonGeometry.Circle2(hero.Position.To2D(), 140 + (buffName.b1.Number * 20), Game.Time - buffName.b.StartTime, buffName.b.EndTime - buffName.b.StartTime).ToPolygon(); circle.Draw(buffName.b1.Color, 3); } } } if (getCheckBoxItem(comboMenu, "ComboShowInfo")) { var xComboStr = "Combo Mode: "; System.Drawing.Color color = Color.FromArgb(100, 255, 200, 37); var xCombo = getBoxItem(comboMenu, "ComboMode"); switch (xCombo) { case 0: xComboStr += "Auto"; color = Color.FromArgb(100, 255, 200, 37); break; case 1: //Q-R xComboStr += "Q - R"; color = Color.FromArgb(100, 4, 0, 255); break; case 2: //W-R xComboStr += "W - R"; color = Color.FromArgb(100, 255, 0, 0); break; case 3: //E-R xComboStr += "E - R"; color = Color.FromArgb(100, 0, 255, 8); break; } Common.CommonGeometry.DrawText(CommonGeometry.Text, xComboStr, ObjectManager.Player.HPBarPosition.X + 150, ObjectManager.Player.HPBarPosition.Y + 75, SharpDX.Color.Wheat); } //if (Config.Item("HarassShowInfo")) //{ // var xHarassInfo = ""; // if (Config.Item("HarassUseTQ").GetValue<KeyBind>().Active) // xHarassInfo += "Q - "; // if (Config.Item("HarassUseTW").GetValue<KeyBind>().Active) // xHarassInfo += "W - "; // if (Config.Item("HarassUseTE").GetValue<KeyBind>().Active) // xHarassInfo += "E - "; // if (xHarassInfo.Length < 1) // { // xHarassInfo = "Harass Toggle: OFF "; // } // else // { // xHarassInfo = "Harass Toggle: " + xHarassInfo; // } // xHarassInfo = xHarassInfo.Substring(0, xHarassInfo.Length - 3); // //Drawing.DrawText(Drawing.Width * 0.44f, Drawing.Height * 0.82f, Color.Wheat, xHarassInfo); // //Common.CommonGeometry.DrawBox(new Vector2((int)ObjectManager.Player.HPBarPosition.X + 145, (int)ObjectManager.Player.HPBarPosition.Y + 15), 125, 18, Color.FromArgb(100, 255, 200, 37), 1, Color.Black); // //Common.CommonGeometry.DrawText(CommonGeometry.Text, xHarassInfo, ObjectManager.Player.HPBarPosition.X + 150, ObjectManager.Player.HPBarPosition.Y + 17, SharpDX.Color.Wheat); //} foreach (var spell in SpellList) { var menuItem = getCheckBoxItem(drawMenu, spell.Slot + "Range"); if (menuItem && spell.Level > 0) { Render.Circle.DrawCircle(ObjectManager.Player.Position, spell.Range, Color.Honeydew, spell.IsReady() ? 5 : 1); } } var wqRange = getCheckBoxItem(drawMenu, "WQRange"); if (wqRange && Q.IsReady() && W.IsReady()) { Render.Circle.DrawCircle(ObjectManager.Player.Position, W.Range + Q.Range, Color.Honeydew, Q.IsReady() && W.IsReady() ? 5 : 1); } var activeERange = getCheckBoxItem(drawMenu, "ActiveERange"); if (activeERange && EnemyHaveSoulShackle != null) { Render.Circle.DrawCircle(ObjectManager.Player.Position, 1100f, Color.Honeydew); } /* * var wObjPosition = Config.Item("WObjPosition"); * var wObjTimeTick = Config.Item("WObjTimeTick"); * * foreach (var existingSlide in ExistingSlide) * { * if (wObjPosition.Active) * Render.Circle.DrawCircle(existingSlide.Position, 110f, wObjPosition.Color); * * if (!wObjTimeTick) continue; * if (!(existingSlide.ExpireTime > Game.Time)) continue; * * var time = TimeSpan.FromSeconds(existingSlide.ExpireTime - Game.Time); * var pos = Drawing.WorldToScreen(existingSlide.Position); * var display = string.Format("{0}:{1:D2}", time.Minutes, time.Seconds); * Drawing.DrawText(pos.X - display.Length * 3, pos.Y - 65, Color.GreenYellow, display); * } * * foreach ( * var enemy in * ObjectManager.Get<AIHeroClient>() * .Where( * enemy => * enemy.IsEnemy && !enemy.IsDead && enemy.IsVisible && * ObjectManager.Player.LSDistance(enemy) < E.Range + 1400 && * !xEnemyHaveSoulShackle(enemy))) * { * Render.Circle.DrawCircle(enemy.Position, 75f, Color.GreenYellow); * } */ }