DrawLine() публичный статический Метод

public static DrawLine ( Vector2 pointA, Vector2 pointB, Color color, float width, bool antiAlias = false ) : void
pointA Vector2
pointB Vector2
color Color
width float
antiAlias bool
Результат void
Пример #1
0
    private void OnGUI()
    {
        if (!graphMode)
        {
            var style = GUI.skin.GetStyle("label");
            style.fontSize = 24;

            if (m_joycons == null || m_joycons.Count <= 0)
            {
                GUILayout.Label("Joy-Con が接続されていません");
                return;
            }

            if (!m_joycons.Any(c => c.isLeft))
            {
                GUILayout.Label("Joy-Con (L) が接続されていません");
                return;
            }

            //if (!m_joycons.Any(c => !c.isLeft))
            //{
            //    GUILayout.Label("Joy-Con (R) が接続されていません");
            //    return;
            //}

            GUILayout.BeginHorizontal(GUILayout.Width(960));

            foreach (var joycon in m_joycons)
            {
                var isLeft = joycon.isLeft;
                var name   = isLeft ? "Joy-Con (L)" : "Joy-Con (R)";
                var key    = isLeft ? "Z キー" : "X キー";
                //var button = isLeft ? m_pressedButtonL : m_pressedButtonR;
                var button      = m_pressedButtonL;
                var stick       = joycon.GetStick();
                var gyro        = joycon.GetGyro();
                var accel       = joycon.GetAccel();
                var orientation = joycon.GetVector();


                GUILayout.BeginVertical(GUILayout.Width(480));
                GUILayout.Label(name);
                GUILayout.Label(key + ":振動");
                GUILayout.Label("押されているボタン:" + button);
                GUILayout.Label(string.Format("スティック:({0}, {1})", stick[0], stick[1]));
                GUILayout.Label("ジャイロ:" + gyro);
                GUILayout.Label("加速度:" + accel);
                GUILayout.Label("傾き:" + orientation);
                GUILayout.EndVertical();
            }

            GUILayout.EndHorizontal();
        }
        else
        {
            //加速度グラフ描画

            var area = GUILayoutUtility.GetRect(Screen.width, Screen.height);

            // Grid
            const int div = 10;
            for (int i = 0; i <= div; ++i)
            {
                var lineColor = (i == 0 || i == div) ? Color.white : Color.gray;
                var lineWidth = (i == 0 || i == div) ? 2f : 1f;
                var x         = (area.width / div) * i;
                var y         = (area.height / div) * i;
                Drawing.DrawLine(
                    new Vector2(area.x + x, area.y),
                    new Vector2(area.x + x, area.yMax), lineColor, lineWidth, true);
                Drawing.DrawLine(
                    new Vector2(area.x, area.y + y),
                    new Vector2(area.xMax, area.y + y), lineColor, lineWidth, true);
            }

            // Data
            if (accelLog.Count > 0)
            {
                var     max         = accelLog.Max();
                var     dx          = area.width / accelLog.Count;
                var     dy          = area.height / max;
                Vector2 previousPos = new Vector2(area.x, area.yMax);
                for (var i = 0; i < accelLog.Count; ++i)
                {
                    var x          = area.x + dx * i;
                    var y          = area.yMax - dy * accelLog[i];
                    var currentPos = new Vector2(x, y);
                    Drawing.DrawLine(previousPos, currentPos, Color.red, 3f, true);
                    previousPos = currentPos;
                }
            }
        }
    }
Пример #2
0
 public static void Line(Vector2 pos, int width, int height, Color color)
 {
     Drawing.DrawLine(pos, new Vector2(pos.X, pos.Y + height), width, color);
 }
Пример #3
0
        public static void OnDraw(EventArgs args)
        {
            if (getCheckBoxItem(drawMenu, "drawQMax") && !Player.IsDead)
            {
                Render.Circle.DrawCircle(Player.Position, _Q.Range,
                                         Color.Blue);
            }

            if (getCheckBoxItem(drawMenu, "drawQEffective") && !Player.IsDead)
            {
                Render.Circle.DrawCircle(Player.Position, qRange,
                                         Color.Blue);
            }

            if (getCheckBoxItem(drawMenu, "drawW") && !Player.IsDead)
            {
                Render.Circle.DrawCircle(Player.Position, _W.Range,
                                         Color.Blue);
            }

            if (getCheckBoxItem(drawMenu, "drawE") && !Player.IsDead)
            {
                Render.Circle.DrawCircle(Player.Position, _E.Range,
                                         Color.Blue);
            }

            if (getCheckBoxItem(drawMenu, "drawQCol") && !Player.IsDead)
            {
                if (currentTarget != null && Player.LSDistance(currentTarget) < qRange + 200)
                {
                    var playerPos = Drawing.WorldToScreen(Player.Position);
                    var targetPos = Drawing.WorldToScreen(currentTarget.Position);
                    Drawing.DrawLine(playerPos, targetPos, 4,
                                     _Q.GetPrediction(currentTarget, overrideRange: qRange).Hitchance < GetSelectedHitChance()
                            ? Color.Red
                            : Color.Green);
                }
            }

            if (currentTarget != null &&
                (getCheckBoxItem(drawMenu, "drawTargetC") && currentTarget.IsVisible &&
                 !currentTarget.IsDead))
            {
                Render.Circle.DrawCircle(currentTarget.Position, currentTarget.BoundingRadius + 10, Color.Red);
                Render.Circle.DrawCircle(currentTarget.Position, currentTarget.BoundingRadius + 25, Color.Red);
                Render.Circle.DrawCircle(currentTarget.Position, currentTarget.BoundingRadius + 45, Color.Red);
            }

            if (currentTarget != null &&
                (getCheckBoxItem(drawMenu, "drawTargetT") && !currentTarget.IsDead))
            {
                Drawing.DrawText(100, 150, Color.Red, "Current Target: " + currentTarget.ChampionName);
            }

            if (getCheckBoxItem(drawMenu, "drawSouls") && !Player.IsDead)
            {
                foreach (var soul in soulList.Where(s => s.IsValid))
                {
                    Render.Circle.DrawCircle(soul.Position, 50,
                                             Color.LightBlue);
                }
            }
        }
Пример #4
0
        private static void onDraw(EventArgs args)
        {
            if (Config.Item("disDraw").GetValue <bool>())
            {
                return;
            }

            if (Config.Item("drawQ").GetValue <bool>())
            {
                Utility.DrawCircle(Yasuo.Player.Position, 475, (Yasuo.isDashigPro)?Color.Red:Color.Blue, 10, 10);
            }
            if (Config.Item("drawR").GetValue <bool>())
            {
                Utility.DrawCircle(Yasuo.Player.Position, 1200, Color.Blue);
            }

            if (Config.Item("flee").GetValue <KeyBind>().Active&& Config.Item("drawWJ").GetValue <bool>())
            {
                Utility.DrawCircle(Game.CursorPos, 350, Color.Cyan);

                Utility.DrawCircle(Yasuo.lastDash.from, 60, Color.BlueViolet);
                Utility.DrawCircle(Yasuo.lastDash.to, 60, Color.BlueViolet);

                foreach (Yasuo.YasDash dash in Yasuo.dashes)
                {
                    if (dash.from.Distance(Game.CursorPos) < 1200)
                    {
                        var SA = Drawing.WorldToScreen(dash.from);
                        var SB = Drawing.WorldToScreen(dash.to);
                        Drawing.DrawLine(SA.X, SA.Y, SB.X, SB.Y, 3, Color.Green);
                    }
                }
            }
            foreach (var ss in DetectedSkillshots)
            {
                ss.Draw(Color.CadetBlue, Color.Red, 1);
            }

            /*   if ((int)NavMesh.GetCollisionFlags(Game.CursorPos) == 2 || (int)NavMesh.GetCollisionFlags(Game.CursorPos) == 64)
             *  Drawing.DrawCircle(Game.CursorPos, 70, Color.Green);
             * if (map.isWall(Game.CursorPos.To2D()))
             *  Drawing.DrawCircle(Game.CursorPos, 100, Color.Red);
             *
             * foreach (Polygon pol in map.poligs)
             * {
             *  pol.Draw(Color.BlueViolet, 3);
             * }
             *
             * foreach(Obj_AI_Base jun in MinionManager.GetMinions(Yasuo.Player.ServerPosition,700,MinionTypes.All,MinionTeam.Neutral))
             * {
             *  Drawing.DrawCircle(jun.Position, 70, Color.Green);
             *   SharpDX.Vector2 proj = map.getClosestPolygonProj(jun.ServerPosition.To2D());
             *   SharpDX.Vector2 posAfterE = jun.ServerPosition.To2D() + (SharpDX.Vector2.Normalize(proj - jun.ServerPosition.To2D() ) * 475);
             *   Drawing.DrawCircle(posAfterE.To3D(), 50, Color.Violet);
             * }
             *
             * foreach (Obj_SpellMissile mis in skillShots)
             * {
             *  Drawing.DrawCircle(mis.Position, 47, Color.Orange);
             *  Drawing.DrawCircle(mis.EndPosition, 100, Color.BlueViolet);
             * Drawing.DrawCircle(mis.SpellCaster.Position, Yasuo.Player.BoundingRadius + mis.SData.LineWidth, Color.DarkSalmon);
             *  Drawing.DrawCircle(mis.StartPosition, 70, Color.Green);
             * }*/
        }
Пример #5
0
        public static void Drawing_OnDraw(EventArgs args)
        {
            Obj_AI_Base mob1 = GetNearest(ObjectManager.Player.ServerPosition);

            if (Vector3.Distance(ObjectManager.Player.ServerPosition, mob1.ServerPosition) < 1500 && mob1.IsVisible)
            {
                bool smiteR = false;
                bool spellR = false;
                if (ObjectManager.Player.SummonerSpellbook.CanUseSpell(smiteSlot) == SpellState.Ready)
                {
                    smiteR = true;
                }
                if (Config.Item("Enabled-" + ObjectManager.Player.ChampionName).GetValue <bool>())
                {
                    spellR = true;
                }
                double smited = smiteDamage();
                double spelld = 0;
                if (champSpell.IsReady() && spellR)
                {
                    spelld = spellDamage(mob1);
                }

                Vector2 hpBarPos = mob1.HPBarPosition;
                hpBarPos.X += 45;
                hpBarPos.Y += 18;
                var    smitePercent      = smited / mob1.MaxHealth;
                var    spellPercent      = spelld / mob1.MaxHealth;
                double smiteXPos         = hpBarPos.X + (63 * smitePercent);
                double smiteXPosBig      = hpBarPos.X - 30 + (126 * smitePercent);
                double spellXPos         = hpBarPos.X + (63 * spellPercent);
                double spellXPosBig      = hpBarPos.X - 30 + (126 * spellPercent);
                double spellsmiteXPos    = hpBarPos.X + ((63 * spellPercent) + (63 * smitePercent));
                double spellsmiteXPosBig = hpBarPos.X - 30 + ((126 * spellPercent) + (126 * smitePercent));

                if (mob1.BaseSkinName == "LizardElder" ||
                    mob1.BaseSkinName == "AncientGolem" ||
                    mob1.BaseSkinName == "GiantWolf" ||
                    mob1.BaseSkinName == "GreatWraith" ||
                    mob1.BaseSkinName == "Wraith" ||
                    mob1.BaseSkinName == "Golem")
                {
                    if (smiteR && spellR)
                    {
                        Drawing.DrawLine((float)smiteXPos, hpBarPos.Y, (float)smiteXPos, (float)hpBarPos.Y + 5, 2,
                                         smited > mob1.Health ? Color.SpringGreen : Color.SeaShell);
                        Drawing.DrawLine((float)spellsmiteXPos, hpBarPos.Y, (float)spellsmiteXPos, (float)hpBarPos.Y + 5, 2,
                                         (smited + spelld) > mob1.Health ? Color.SpringGreen : Color.SeaShell);
                    }
                    else if (smiteR)
                    {
                        Drawing.DrawLine((float)smiteXPos, hpBarPos.Y, (float)smiteXPos, hpBarPos.Y + 5, 2,
                                         smited > mob1.Health ? Color.SpringGreen : Color.SeaShell);
                    }
                    else if (spellR)
                    {
                        Drawing.DrawLine((float)spellXPos, hpBarPos.Y, (float)spellXPos, hpBarPos.Y + 5, 2,
                                         spelld > mob1.Health ? Color.SpringGreen : Color.SeaShell);
                    }
                }
                else if (mob1.BaseSkinName == "Worm")
                {
                    if (smiteR && spellR)
                    {
                        Drawing.DrawLine((float)smiteXPosBig, hpBarPos.Y, (float)smiteXPosBig, hpBarPos.Y + 5, 2,
                                         smited > mob1.Health ? Color.SpringGreen : Color.SeaShell);
                        Drawing.DrawLine((float)spellsmiteXPosBig, hpBarPos.Y, (float)spellsmiteXPosBig, hpBarPos.Y + 5, 2,
                                         (smited + spelld) > mob1.Health ? Color.SpringGreen : Color.SeaShell);
                    }
                    else if (smiteR)
                    {
                        Drawing.DrawLine((float)smiteXPosBig, hpBarPos.Y, (float)smiteXPosBig, hpBarPos.Y + 5, 2,
                                         smited > mob1.Health ? Color.SpringGreen : Color.SeaShell);
                    }
                    else if (spellR)
                    {
                        Drawing.DrawLine((float)spellXPosBig, hpBarPos.Y, (float)spellXPosBig, hpBarPos.Y + 5, 2,
                                         spelld > mob1.Health ? Color.SpringGreen : Color.SeaShell);
                    }
                }
                else if (mob1.BaseSkinName == "Dragon")
                {
                    if (smiteR && spellR)
                    {
                        Drawing.DrawLine((float)smiteXPosBig, hpBarPos.Y - 5, (float)smiteXPosBig, hpBarPos.Y, 2,
                                         smited > mob1.Health ? Color.SpringGreen : Color.SeaShell);
                        Drawing.DrawLine((float)spellsmiteXPosBig, hpBarPos.Y - 5, (float)spellsmiteXPosBig, hpBarPos.Y, 2,
                                         (smited + spelld) > mob1.Health ? Color.SpringGreen : Color.SeaShell);
                    }
                    else if (smiteR)
                    {
                        Drawing.DrawLine((float)smiteXPosBig, hpBarPos.Y - 5, (float)smiteXPosBig, hpBarPos.Y, 2,
                                         smited > mob1.Health ? Color.SpringGreen : Color.SeaShell);
                    }
                    else if (spellR)
                    {
                        Drawing.DrawLine((float)spellXPosBig, hpBarPos.Y - 5, (float)spellXPosBig, hpBarPos.Y, 2,
                                         spelld > mob1.Health ? Color.SpringGreen : Color.SeaShell);
                    }
                }
            }
        }
Пример #6
0
        internal static void Draw()
        {
            var menuItem = Program.Menu.Item("DrawQE").GetValue <Circle>();

            if (menuItem.Active)
            {
                Render.Circle.DrawCircle(ObjectManager.Player.Position, Spells.QE.Range, menuItem.Color);
            }
            menuItem = Program.Menu.Item("DrawQEC").GetValue <Circle>();

            if (Program.Menu.Item("drawing").GetValue <bool>())
            {
                foreach (var enemy in ObjectManager.Get <Obj_AI_Hero>().Where(enemy => enemy.Team != ObjectManager.Player.Team))
                {
                    if (enemy.IsVisible && !enemy.IsDead)
                    {
                        //Draw Combo Damage to Enemy HP bars

                        var hpBarPos = enemy.HPBarPosition;
                        hpBarPos.X += 45;
                        hpBarPos.Y += 18;
                        var killText    = "";
                        var combodamage = GetDamage.GetComboDamage(
                            enemy, Program.Menu.Item("UseQ").GetValue <bool>(), Program.Menu.Item("UseW").GetValue <bool>(),
                            Program.Menu.Item("UseE").GetValue <bool>(), Program.Menu.Item("UseR").GetValue <bool>());
                        var PercentHPleftAfterCombo = (enemy.Health - combodamage) / enemy.MaxHealth;
                        var PercentHPleft           = enemy.Health / enemy.MaxHealth;
                        if (PercentHPleftAfterCombo < 0)
                        {
                            PercentHPleftAfterCombo = 0;
                        }
                        double comboXPos     = hpBarPos.X - 36 + (107 * PercentHPleftAfterCombo);
                        double currentHpxPos = hpBarPos.X - 36 + (107 * PercentHPleft);
                        var    barcolor      = Color.FromArgb(100, 0, 220, 0);
                        var    barcolorline  = Color.WhiteSmoke;
                        if (combodamage + ObjectManager.Player.GetSpellDamage(enemy, SpellSlot.Q) +
                            ObjectManager.Player.GetAutoAttackDamage(enemy) * 2 > enemy.Health)
                        {
                            killText = "Killable by: Full Combo + 1Q + 2AA";
                            if (combodamage >= enemy.Health)
                            {
                                killText = "Killable by: Full Combo";
                            }
                            barcolor     = Color.FromArgb(100, 255, 255, 0);
                            barcolorline = Color.SpringGreen;
                            var linecolor = barcolor;
                            if (
                                GetDamage.GetComboDamage(
                                    enemy, Program.Menu.Item("UseQ").GetValue <bool>(), Program.Menu.Item("UseW").GetValue <bool>(),
                                    Program.Menu.Item("UseE").GetValue <bool>(), false) > enemy.Health)
                            {
                                killText  = "Killable by: Q + W + E";
                                barcolor  = Color.FromArgb(130, 255, 70, 0);
                                linecolor = Color.FromArgb(150, 255, 0, 0);
                            }
                            if (Program.Menu.Item("Gank").GetValue <bool>())
                            {
                                var pos = ObjectManager.Player.Position +
                                          Vector3.Normalize(enemy.Position - ObjectManager.Player.Position) * 100;
                                var myPos = Drawing.WorldToScreen(pos);
                                pos = ObjectManager.Player.Position + Vector3.Normalize(enemy.Position - ObjectManager.Player.Position) * 350;
                                var ePos = Drawing.WorldToScreen(pos);
                                Drawing.DrawLine(myPos.X, myPos.Y, ePos.X, ePos.Y, 1, linecolor);
                            }
                        }
                        var killTextPos = Drawing.WorldToScreen(enemy.Position);
                        var hPleftText  = Math.Round(PercentHPleftAfterCombo * 100) + "%";
                        Drawing.DrawLine(
                            (float)comboXPos, hpBarPos.Y, (float)comboXPos, hpBarPos.Y + 5, 1, barcolorline);
                        if (Program.Menu.Item("KillText").GetValue <bool>())
                        {
                            Drawing.DrawText(killTextPos[0] - 105, killTextPos[1] + 25, barcolor, killText);
                        }
                        if (Program.Menu.Item("KillTextHP").GetValue <bool>())
                        {
                            Drawing.DrawText(hpBarPos.X + 98, hpBarPos.Y + 5, barcolor, hPleftText);
                        }
                        if (Program.Menu.Item("DrawHPFill").GetValue <bool>())
                        {
                            var diff = currentHpxPos - comboXPos;
                            for (var i = 0; i < diff; i++)
                            {
                                Drawing.DrawLine(
                                    (float)comboXPos + i, hpBarPos.Y + 2, (float)comboXPos + i,
                                    hpBarPos.Y + 10, 1, barcolor);
                            }
                        }
                    }

                    //Draw QE to cursor circle
                    if (Program.Menu.Item("UseQEC").GetValue <KeyBind>().Active&& Spells.E.IsReady() && Spells.Q.IsReady() && menuItem.Active)
                    {
                        Render.Circle.DrawCircle(Game.CursorPos, 150f,
                                                 (enemy.Distance(Game.CursorPos, true) <= 150 * 150) ? Color.Red : menuItem.Color, 3);
                    }
                }
            }

            foreach (var spell in Spells.SpellList)
            {
                // Draw Spell Ranges
                menuItem = Program.Menu.Item("Draw" + spell.Slot).GetValue <Circle>();
                if (menuItem.Active)
                {
                    Render.Circle.DrawCircle(ObjectManager.Player.Position, spell.Range, menuItem.Color);
                }
            }

            // Dashboard Indicators
            if (Program.Menu.Item("HUD").GetValue <bool>())
            {
                if (Program.Menu.Item("HarassActiveT").GetValue <KeyBind>().Active)
                {
                    Drawing.DrawText(Drawing.Width * 0.90f, Drawing.Height * 0.68f, Color.Yellow, "Auto Harass : On");
                }
                else
                {
                    Drawing.DrawText(Drawing.Width * 0.90f, Drawing.Height * 0.68f, Color.DarkRed, "Auto Harass : Off");
                }

                if (Program.Menu.Item("AutoKST").GetValue <KeyBind>().Active)
                {
                    Drawing.DrawText(Drawing.Width * 0.90f, Drawing.Height * 0.66f, Color.Yellow, "Auto KS : On");
                }
                else
                {
                    Drawing.DrawText(Drawing.Width * 0.90f, Drawing.Height * 0.66f, Color.DarkRed, "Auto KS : Off");
                }
            }
            // Draw QE MAP
            if (Program.Menu.Item("DrawQEMAP").GetValue <bool>())
            {
                var qeTarget = TargetSelector.GetTarget(Spells.QE.Range, TargetSelector.DamageType.Magical);
                var sPos     = Prediction.GetPrediction(qeTarget, Spells.Q.Delay + Spells.E.Delay).UnitPosition;
                var tPos     = Spells.QE.GetPrediction(qeTarget);
                if (tPos != null && ObjectManager.Player.Distance(sPos, true) > Math.Pow(Spells.E.Range, 2) &&
                    (Spells.E.IsReady() || ObjectManager.Player.Spellbook.GetSpell(SpellSlot.E).CooldownExpires - Game.Time < 2) &&
                    ObjectManager.Player.Spellbook.GetSpell(SpellSlot.E).Level > 0)
                {
                    var color = Color.Red;
                    var orb   = ObjectManager.Player.Position + Vector3.Normalize(sPos - ObjectManager.Player.Position) * Spells.E.Range;
                    Spells.QE.Delay = Spells.Q.Delay + Spells.E.Delay + ObjectManager.Player.Distance(orb) / Spells.E.Speed;
                    if (tPos.Hitchance >= HitChance.Medium)
                    {
                        color = Color.Green;
                    }
                    if (ObjectManager.Player.Spellbook.GetSpell(SpellSlot.Q).ManaCost +
                        ObjectManager.Player.Spellbook.GetSpell(SpellSlot.E).ManaCost > ObjectManager.Player.Mana)
                    {
                        color = Color.DarkBlue;
                    }
                    var pos = ObjectManager.Player.Position + Vector3.Normalize(tPos.UnitPosition - ObjectManager.Player.Position) * 700;
                    Render.Circle.DrawCircle(pos, Spells.Q.Width, color);
                    Render.Circle.DrawCircle(tPos.UnitPosition, Spells.Q.Width / 2, color);
                    var sp1 = pos + Vector3.Normalize(ObjectManager.Player.Position - pos) * 100f;
                    var sp  = Drawing.WorldToScreen(sp1);
                    var ep1 = pos + Vector3.Normalize(pos - ObjectManager.Player.Position) * 592;
                    var ep  = Drawing.WorldToScreen(ep1);
                    Drawing.DrawLine(sp.X, sp.Y, ep.X, ep.Y, 2, color);
                }
            }

            if (!Program.Menu.Item("DrawWMAP").GetValue <bool>() || ObjectManager.Player.Spellbook.GetSpell(SpellSlot.W).Level <= 0)
            {
                return;
            }
            var color2  = Color.FromArgb(100, 255, 0, 0);
            var wTarget = TargetSelector.GetTarget(Spells.W.Range + Spells.W.Width, TargetSelector.DamageType.Magical);
            var pos2    = Spells.W.GetPrediction(wTarget, true);

            if (pos2.Hitchance >= HitChance.High)
            {
                color2 = Color.FromArgb(100, 50, 150, 255);
            }
            Render.Circle.DrawCircle(pos2.UnitPosition, Spells.W.Width, color2);
        }
Пример #7
0
        private static void Drawing_OnDraw(EventArgs args)
        {
            if (Util.MyHero.IsDead)
            {
                return;
            }
            if (Menu.GetCheckBoxValue("Disable"))
            {
                return;
            }
            var target = TargetSelector.Target;

            if (Menu.GetCheckBoxValue("Target") && target.IsValidTarget())
            {
                Circle.Draw(Color.Red, 120f, 5, target.Position);
            }
            if (Menu.GetSliderValue("E.Lines") > 0 && SpellSlot.E.IsReady())
            {
                switch (Menu.GetSliderValue("E.Lines"))
                {
                case 1:
                    foreach (var b in from b in BallManager.Balls.Where(m => m.IsIdle && m.ObjectIsValid && m.EIsOnRange) from enemy in EntityManager.Heroes.Enemies.Where(b.E_WillHit) select b)
                    {
                        Drawing.DrawLine(b.Position.E_StartPosition().WorldToScreen(), b.EEndPosition.WorldToScreen(),
                                         SpellManager.QE.Width, System.Drawing.Color.FromArgb(100, 255, 255, 255));
                    }
                    break;

                case 2:
                    foreach (var b in BallManager.Balls.Where(m => m.IsIdle && m.ObjectIsValid && m.EIsOnRange))
                    {
                        Drawing.DrawLine(b.Position.E_StartPosition().WorldToScreen(), b.EEndPosition.WorldToScreen(),
                                         SpellManager.QE.Width, System.Drawing.Color.FromArgb(100, 255, 255, 255));
                    }
                    break;
                }
            }
            if (Menu.GetCheckBoxValue("W.Object") && SpellManager.WObject != null)
            {
                Circle.Draw(Color.Blue, SpellManager.W_Width1, 1, SpellManager.WObject.Position);
            }
            if (Menu.GetCheckBoxValue("Killable") && SpellSlot.R.IsReady())
            {
                foreach (var enemy in EntityManager.Heroes.Enemies.Where(m => m.IsValidTarget(SpellManager.R.Range) && SpellSlot.R.GetSpellDamage(m) >= m.Health))
                {
                    Drawing.DrawText(enemy.Position.WorldToScreen(), System.Drawing.Color.Red, "R KILLABLE", 15);
                }
            }
            if (Menu.GetCheckBoxValue("Harass.Toggle"))
            {
                Drawing.DrawText(Util.MyHero.Position.WorldToScreen() - new Vector2(50, 0), System.Drawing.Color.White, "Harass Toggle: " + (Harass.Menu.GetKeyBindValue("Toggle") ? "ON": "OFF"), 15);
            }
            var color = new ColorBGRA(255, 255, 255, 100);

            if (Menu.GetCheckBoxValue("Q") && SpellSlot.Q.IsReady())
            {
                Circle.Draw(color, SpellManager.Q.Range, Util.MyHero.Position);
            }
            if (Menu.GetCheckBoxValue("W") && SpellSlot.W.IsReady())
            {
                Circle.Draw(color, SpellManager.W.Range, Util.MyHero.Position);
            }
            if (Menu.GetCheckBoxValue("QE") && SpellSlot.E.IsReady())
            {
                Circle.Draw(color, SpellManager.QE.Range, Util.MyHero.Position);
            }
            if (Menu.GetCheckBoxValue("R") && SpellSlot.R.IsReady())
            {
                Circle.Draw(color, SpellManager.R.Range, Util.MyHero.Position);
            }
        }
Пример #8
0
    private void DrawGrid(Rect rect)
    {
        Color color = Color.white;

        GUI.BeginGroup(rect, GUI.skin.box);
        GUIStyle style = new GUIStyle(GUI.skin.label);

        style.normal.textColor = Color.white;
        style.richText         = true;

        // X-Axis
        Drawing.DrawLine(hStart, hEnd, color, thickness, false);

        // X-Axis Markers
        for (int i = 0; i < xNumMarkers; i++)
        {
            float xPos = hStart.x + xUnitLength * (i + 1), yPos = hStart.y - 5;
            // Unit Line
//				Drawing.DrawLine(new Vector2(xPos, yPos), new Vector2(xPos, yPos + 10), color, thickness, false);
            // Unit Label
            style.alignment = TextAnchor.UpperCenter;

            if (i < xAxisLabels.Count)
            {
//					GUI.Label(new Rect(xPos - 42, yPos + 10, 80, 70), xAxisLabels[xMin + i], style);
            }
        }
        // X-Axis Label
        style.alignment = TextAnchor.UpperCenter;
        GUI.Label(new Rect(hStart.x + (xAxisLength - 80) / 2, hStart.y + 35, 80, 30), "<color=yellow>" + xTitle + "</color>", style);

        // Y-Axis
        Drawing.DrawLine(vStart, vEnd, color, thickness, false);
        // Y-Axis Markers
        for (int i = 0; i <= yNumMarkers; i++)
        {
            float xPos = vStart.x - 5, yPos = vStart.y - yUnitLength * i;
            // Unit Line
            Drawing.DrawLine(new Vector2(xPos, yPos), new Vector2(xPos + 10, yPos), color, thickness, false);
            // Unit Label
            style.alignment = TextAnchor.UpperRight;
            GUI.Label(new Rect(xPos - 85, yPos - 11, 80, 30), (i * yRange / 5).ToString(), style);
        }
        // Y-Axis Label
        style.alignment = TextAnchor.UpperCenter;

        Matrix4x4 matrix = GUI.matrix;

        GUIUtility.RotateAroundPivot(-90, new Vector2(hStart.x - 35, (rect.height) / 2));
        GUI.Label(new Rect(hStart.x - 100, (rect.height - 60) / 2, 200, 30),
                  "<color=orange>" + yTitle + "</color>",
                  style
                  );
        GUI.matrix = matrix;

        // Draw Series Sets
//			for (int i = 0; i < Mathf.Min(seriesSets.Count, 3); i++) {
//				SeriesSet seriesSet = seriesSets[sliderValue + i];
//				DrawSeriesSet(seriesSet, i);
//			}
        if (seriesSets.Count > 0)
        {
            //draw default vs target
            SeriesSet seriesSet = seriesSets [0];
            DrawSeriesSet(seriesSet, 0);
            Vector2 v1 = new Vector2(
                seriesSet.rect.x + barWidth + (interBarWidth / 2),
                seriesSet.rect.y
                );
            Vector2 v2 = new Vector2(
                v1.x,
                seriesSet.rect.y - yAxisLength
                );
            //separate default from player attempts with a line
            Drawing.DrawLine(v1, v2, color, thickness, false);
            //draw attempts vs target
            for (int series = 1; series < Mathf.Min(perPage, seriesSets.Count); series++)
            {
                seriesSet = seriesSets [sliderValue + series];
                DrawSeriesSet(seriesSet, series);
            }
        }
        GUI.EndGroup();
    }
Пример #9
0
        private void Drawing_OnDraw(EventArgs args)
        {
            if (!IsActive())
            {
                return;
            }
            try
            {
                for (int i = 0; i < HidObjects.Count; i++)
                {
                    ObjectData obj = HidObjects[i];
                    if (Game.Time > obj.EndTime)
                    {
                        HidObjects.RemoveAt(i);
                        break;
                    }
                    Vector2 objMPos  = Drawing.WorldToMinimap(obj.EndPosition);
                    Vector2 objPos   = Drawing.WorldToScreen(obj.EndPosition);
                    var     posList  = new List <Vector3>();
                    float   range    = 0;
                    String  typeText = "";
                    switch (obj.ObjectBase.Type)
                    {
                    case ObjectType.Sight:
                        range    = WardRange;
                        typeText = "S";
                        break;

                    case ObjectType.Trap:
                        range    = TrapRange;
                        typeText = "T";
                        break;

                    case ObjectType.Vision:
                        range    = WardRange;
                        typeText = "V";
                        break;

                    case ObjectType.Unknown:
                        if ((obj.StartPosition).IsOnScreen() &&
                            (obj.EndPosition).IsOnScreen())
                        {
                            Drawing.DrawLine(Drawing.WorldToScreen(obj.StartPosition), Drawing.WorldToScreen(obj.EndPosition), 1, obj.ObjectBase.Color);
                        }
                        break;
                    }
                    if (VisionDetector.GetMenuItem("SAssembliesDetectorsVisionDrawVisionRange").GetValue <bool>())
                    {
                        if (obj.EndPosition.IsOnScreen())
                        {
                            Utility.DrawCircle(obj.EndPosition, range, obj.ObjectBase.Color);
                        }
                    }
                    if (obj.Points == null)
                    {
                        posList    = GetVision(obj.EndPosition, range);
                        obj.Points = posList;
                    }
                    else
                    {
                        posList = obj.Points;
                    }
                    if (VisionDetector.GetMenuItem("SAssembliesDetectorsVisionDrawRealVisionRange").GetValue <bool>())
                    {
                        for (int j = 0; j < posList.Count; j++)
                        {
                            Vector2 visionPos1 = Drawing.WorldToScreen(posList[j]);
                            Vector2 visionPos2;
                            try
                            {
                                visionPos2 = Drawing.WorldToScreen(posList[j + 1]);
                                if (posList[j].IsOnScreen() && posList[j + 1].IsOnScreen())
                                {
                                    Drawing.DrawLine(visionPos1.X, visionPos1.Y, visionPos2.X, visionPos2.Y, 2.0f, obj.ObjectBase.Color);
                                }
                            }
                            catch (Exception)
                            {
                                visionPos2 = Drawing.WorldToScreen(posList[0]);
                                if (posList[j].IsOnScreen() && posList[0].IsOnScreen())
                                {
                                    Drawing.DrawLine(visionPos1.X, visionPos1.Y, visionPos2.X, visionPos2.Y, 2.0f, obj.ObjectBase.Color);
                                }
                            }
                        }
                    }
                    //if (obj.EndPosition.IsOnScreen())
                    //{
                    Drawing.DrawText(objMPos[0], objMPos[1], obj.ObjectBase.Color, typeText);
                    //}

                    if (VisionDetector.GetMenuItem("SAssembliesDetectorsVisionDrawRange").GetValue <bool>())
                    {
                        if (obj.EndPosition.IsOnScreen())
                        {
                            Utility.DrawCircle(obj.EndPosition, 50, obj.ObjectBase.Color);
                        }
                    }
                    float endTime = obj.EndTime - Game.Time;
                    if (!float.IsInfinity(endTime) && !float.IsNaN(endTime) && endTime.CompareTo(float.MaxValue) != 0)
                    {
                        var    m  = (float)Math.Floor(endTime / 60);
                        var    s  = (float)Math.Ceiling(endTime % 60);
                        String ms = (s < 10 ? m + ":0" + s : m + ":" + s);
                        if (obj.EndPosition.IsOnScreen())
                        {
                            Drawing.DrawText(objPos[0], objPos[1], obj.ObjectBase.Color, ms);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Draw: " + ex);
            }
        }
Пример #10
0
        private void Drawing_OnEndScene(EventArgs args)
        {
            if (Config.Item("disableDraws").GetValue<bool>())
                return;

            bool blink = true;

            if ((int)(Game.Time * 10) % 2 == 0)
                blink = false;

            var minimap = Config.Item("minimap").GetValue<bool>();
            var HpBar = Config.Item("HpBar").GetValue<bool>();
            var championInfo = Config.Item("championInfo").GetValue<bool>();
            var ScreenRadar = Config.Item("ScreenRadar").GetValue<bool>();
            var ScreenRadarEnemy = Config.Item("ScreenRadarEnemy").GetValue<bool>();
            var ScreenRadarJungler = Config.Item("ScreenRadarJungler").GetValue<bool>();
            var SpellTrackerEnemy = Config.Item("SpellTrackerEnemy").GetValue<bool>();
            var SpellTrackerAlly = Config.Item("SpellTrackerAlly").GetValue<bool>();
            var SpellTrackerMe = Config.Item("SpellTrackerMe").GetValue<bool>();
            var SpellTrackerLvl = Config.Item("SpellTrackerLvl").GetValue<bool>();
            var ShowClicks = Config.Item("ShowClicks").GetValue<bool>();
            var championInfoHD = Config.Item("championInfoHD").GetValue<bool>();
            float posY = (Config.Item("posY").GetValue<Slider>().Value * 0.001f) * Drawing.Height;
            float posX = (Config.Item("posX").GetValue<Slider>().Value * 0.001f) * Drawing.Width;

            int Width = 103;
            int Height = 8;
            int XOffset = 10;
            int YOffset = 20;
            var FillColor = System.Drawing.Color.GreenYellow;
            var Color = System.Drawing.Color.Azure;

            var hudSpace = 0;
            var area = 5000;
            var notPos = new Vector2(Drawing.Width / 2 - 150, Drawing.Height / 6);

            var centerScreenWorld = Drawing.ScreenToWorld(centerScreen);
            if (Config.Item("Notification").GetValue<bool>())
            {
                var noti = NotificationsList.FirstOrDefault();
                if (noti != null)
                {
                    if (noti.TimeRec == 0)
                    {
                        noti.TimeRec = Utils.TickCount;
                    }
                    else if (Utils.TickCount - noti.TimeRec > 3000)
                    {
                        NotificationsList.Remove(noti);
                    }
                    else
                    {
                        float time = Utils.TickCount - noti.TimeRec;
                        float calcOpacity = 1;

                        if (time < 500)
                            calcOpacity = time / 500;
                        else if (time > 2500)
                            calcOpacity = (3000 - time) / 500;

                        var opacity = new ColorBGRA(256, 256, 256, 0.9f * calcOpacity);
                        Not.Position = notPos;

                        if (noti.Lost)
                            Not.Color = new ColorBGRA(0, 0.5f, 1f, 0.6f * calcOpacity);

                        else
                            Not.Color = new ColorBGRA(0.5f, 0, 0, 0.6f * calcOpacity);

                        Not.OnEndScene();

                        if (noti.Lost)
                        {
                            Lost.Position = notPos + new Vector2(81, 8);
                            Lost.Color = opacity;
                            Lost.OnEndScene();
                        }
                        else
                        {
                            Isready.Position = notPos + new Vector2(81, 8);
                            Isready.Color = opacity;
                            Isready.OnEndScene();
                        }

                        noti.SpellIco.Position = notPos + new Vector2(8, 8);
                        noti.SpellIco.Color = opacity;
                        noti.SpellIco.OnEndScene();

                        noti.Hero.Position = notPos + new Vector2(152, 8);
                        noti.Hero.Color = opacity;
                        noti.Hero.Scale = new Vector2(0.547f, 0.547f);
                        noti.Hero.OnEndScene();

                    }
                }
            }
            if (Config.Item("showWards").GetValue<bool>())
            {
                #region showWards
                var circleSize = 30;
                foreach (var obj in OKTWward.HiddenObjList.Where(obj => Render.OnScreen(Drawing.WorldToScreen(obj.pos))))
                {
                    if (obj.pos.IsOnScreen())
                    {
                        var pos = Drawing.WorldToScreen(obj.pos) + new Vector2(-50, -50); ;
                        if (obj.type == 1)
                        {
                            Drawing.DrawText(pos.X - 15, pos.Y - 13, System.Drawing.Color.YellowGreen, MakeNiceNumber(obj.endTime - Game.Time));
                            Ward.Position = pos + new Vector2(10, 10);

                            Ward.OnEndScene();
                            DrawFontTextMap(Tahoma13, ((int)(obj.endTime - Game.Time)).ToString(), obj.pos + new Vector3(-18, 18, 0), SharpDX.Color.White);
                        }
                        else if (obj.type == 2)
                        {
                            Pink.Position = pos + new Vector2(10, 10);
                            Pink.OnEndScene();

                        }
                        else if (obj.type == 3)
                        {
                            OktwCommon.DrawTriangleOKTW(circleSize, obj.pos, System.Drawing.Color.Orange);
                            DrawFontTextMap(Tahoma13, "! " + (int)(obj.endTime - Game.Time), obj.pos, SharpDX.Color.Orange);
                        }
                    }

                    {
                        var pos = Drawing.WorldToMinimap(obj.pos);
                        if (obj.type == 1)
                        {
                            WardMM.Position = pos;
                            WardMM.OnEndScene();
                        }
                        else if (obj.type == 2)
                        {
                            PinkMM.Position = pos;
                            PinkMM.OnEndScene();
                        }
                        else if (obj.type == 3)
                        {

                        }
                    }
                }
                #endregion
            }

            foreach (var hero in OKTWtracker.ChampionInfoList.Where(x => !x.Hero.IsDead))
            {
                var barPos = hero.Hero.HPBarPosition;
                var q = hero.Hero.Spellbook.GetSpell(SpellSlot.Q);
                var w = hero.Hero.Spellbook.GetSpell(SpellSlot.W);
                var e = hero.Hero.Spellbook.GetSpell(SpellSlot.E);
                var r = hero.Hero.Spellbook.GetSpell(SpellSlot.R);

                if (hero.Hero.IsVisible && ((SpellTrackerAlly && (hero.Hero.IsAlly && !hero.Hero.IsMe)) || (SpellTrackerEnemy && hero.Hero.IsEnemy) || (SpellTrackerMe && hero.Hero.IsMe)))
                {
                    if (hero.Hero.IsAlly)
                        barPos = barPos + new Vector2(0, -4);
                    if (hero.Hero.IsMe)
                        barPos = barPos + new Vector2(25, -7);

                    Drawing.DrawLine(barPos + new Vector2(7, 34), barPos + new Vector2(115, 34), 9, System.Drawing.Color.DimGray);
                    Drawing.DrawLine(barPos + new Vector2(8, 35), barPos + new Vector2(113, 35), 7, System.Drawing.Color.Black);

                    var qCal = Math.Max(Math.Min((q.CooldownExpires - Game.Time) / q.Cooldown, 1), 0);
                    var wCal = Math.Max(Math.Min((w.CooldownExpires - Game.Time) / w.Cooldown, 1), 0);
                    var eCal = Math.Max(Math.Min((e.CooldownExpires - Game.Time) / e.Cooldown, 1), 0);
                    var rCal = Math.Max(Math.Min((r.CooldownExpires - Game.Time) / r.Cooldown, 1), 0);

                    if (q.Level > 0)
                    {
                        Drawing.DrawLine(barPos + new Vector2(9, 36), barPos + new Vector2(33 - (24 * qCal), 36), 5, qCal > 0 ? System.Drawing.Color.Orange : System.Drawing.Color.YellowGreen);
                        if (SpellTrackerLvl)
                            for (int i = 0 ; i < Math.Min(q.Level, 5) ; i++)
                                Drawing.DrawLine(barPos + new Vector2(10 + i * 5, 37), barPos + new Vector2(11 + i * 5, 37), 3, System.Drawing.Color.Black);
                            
                        
                    }
                    if (w.Level > 0)
                    {
                        Drawing.DrawLine(barPos + new Vector2(35, 36), barPos + new Vector2(59 - (24 * wCal), 36), 5, wCal > 0 ? System.Drawing.Color.Orange : System.Drawing.Color.YellowGreen);
                        if (SpellTrackerLvl)
                            for (int i = 0 ; i < Math.Min(w.Level, 5) ; i++)
                                Drawing.DrawLine(barPos + new Vector2(36 + i * 5, 37), barPos + new Vector2(37 + i * 5, 37), 3, System.Drawing.Color.Black);
                        
                    }
                    if (e.Level > 0)
                    {
                        Drawing.DrawLine(barPos + new Vector2(61, 36), barPos + new Vector2(85 - (24 * eCal), 36), 5, eCal > 0 ? System.Drawing.Color.Orange : System.Drawing.Color.YellowGreen);
                        if (SpellTrackerLvl)
                            for (int i = 0 ; i < Math.Min(e.Level, 5) ; i++)
                                Drawing.DrawLine(barPos + new Vector2(62 + i * 5, 37), barPos + new Vector2(63 + i * 5, 37), 3, System.Drawing.Color.Black);
                        
                    }
                    if (r.Level > 0)
                    {
                        Drawing.DrawLine(barPos + new Vector2(87, 36), barPos + new Vector2(112 - (24 * rCal), 36), 5, rCal > 0 ? System.Drawing.Color.Orange : System.Drawing.Color.YellowGreen);
                        if (SpellTrackerLvl)
                            for (int i = 0 ; i < Math.Min(r.Level, 5) ; i++)
                                Drawing.DrawLine(barPos + new Vector2(88 + i * 5, 37), barPos + new Vector2(89 + i * 5, 37), 3, System.Drawing.Color.Black);
                    }
                }

                if (hero.Hero.IsMe)
                    continue;

                if (hero.Hero.IsEnemy)
                {
                    if (ShowClicks && hero.Hero.IsValidTarget() && hero.LastWayPoint.IsValid() && hero.Hero.Position.Distance(hero.LastWayPoint) > 100)
                    {
                        drawLine(hero.Hero.Position, hero.LastWayPoint, 1, System.Drawing.Color.Red);
                        DrawFontTextMap(Tahoma13, hero.Hero.ChampionName, hero.LastWayPoint, SharpDX.Color.WhiteSmoke);
                    }
                    #region Damage indicators
                    if (HpBar && hero.Hero.IsHPBarRendered && hero.Hero.Position.IsOnScreen())
                    {
                        
                        if (HpBar)
                        {
                            float QdmgDraw = 0, WdmgDraw = 0, EdmgDraw = 0, RdmgDraw = 0, damage = 0;
                            bool qRdy = Player.Spellbook.GetSpell(SpellSlot.Q).IsReady();
                            bool wRdy = Player.Spellbook.GetSpell(SpellSlot.W).IsReady();
                            bool eRdy = Player.Spellbook.GetSpell(SpellSlot.E).IsReady();
                            bool rRdy = Player.Spellbook.GetSpell(SpellSlot.R).IsReady();

                            float qDmg = 0;
                            float wDmg = 0;
                            float eDmg = 0;
                            float rDmg = 0;

                            if (qRdy)
                                qDmg = (float)Player.GetSpellDamage(hero.Hero, SpellSlot.Q);
                            if (wRdy)
                                wDmg = (float)Player.GetSpellDamage(hero.Hero, SpellSlot.W);
                            if (eRdy)
                                eDmg = (float)Player.GetSpellDamage(hero.Hero, SpellSlot.E);
                            if (rRdy)
                                rDmg = (float)Player.GetSpellDamage(hero.Hero, SpellSlot.R);

                            damage = qDmg + wDmg + eDmg + rDmg;

                            if (qRdy)
                                QdmgDraw = (qDmg / damage);

                            if (wRdy && Player.ChampionName != "Kalista")
                                WdmgDraw = (wDmg / damage);

                            if (eRdy)
                                EdmgDraw = (eDmg / damage);

                            if (rRdy)
                                RdmgDraw = (rDmg / damage);

                            var percentHealthAfterDamage = Math.Max(0, hero.Hero.Health - damage) / hero.Hero.MaxHealth;

                            var yPos = barPos.Y + YOffset;
                            var xPosDamage = barPos.X + XOffset + Width * percentHealthAfterDamage;
                            var xPosCurrentHp = barPos.X + XOffset + Width * hero.Hero.Health / hero.Hero.MaxHealth;

                            float differenceInHP = xPosCurrentHp - xPosDamage;
                            var pos1 = barPos.X + XOffset + (107 * percentHealthAfterDamage);

                            for (int i = 0; i < differenceInHP; i++)
                            {
                                if (qRdy && i < QdmgDraw * differenceInHP)
                                    Drawing.DrawLine(pos1 + i, yPos, pos1 + i, yPos + Height, 1, System.Drawing.Color.Cyan);
                                else if (wRdy && i < (QdmgDraw + WdmgDraw) * differenceInHP)
                                    Drawing.DrawLine(pos1 + i, yPos, pos1 + i, yPos + Height, 1, System.Drawing.Color.Orange);
                                else if (eRdy && i < (QdmgDraw + WdmgDraw + EdmgDraw) * differenceInHP)
                                    Drawing.DrawLine(pos1 + i, yPos, pos1 + i, yPos + Height, 1, System.Drawing.Color.Yellow);
                                else if (rRdy && i < (QdmgDraw + WdmgDraw + EdmgDraw + RdmgDraw) * differenceInHP)
                                    Drawing.DrawLine(pos1 + i, yPos, pos1 + i, yPos + Height, 1, System.Drawing.Color.YellowGreen);
                            }
                        }
                    }
                    #endregion
                    if (minimap)
                    {
                        if (!hero.Hero.IsVisible)
                        {
                            var minimapSprite = hero.MinimapSprite;

                            var lastWP = hero.LastWayPoint;
                            var heroPos = hero.PredictedPos;

                            if (!hero.LastWayPoint.IsZero)
                            {
                                if (heroPos.Distance(lastWP) < 1200)
                                    lastWP = heroPos.Extend(lastWP, 1200);
                                Drawing.DrawLine(Drawing.WorldToMinimap(heroPos), Drawing.WorldToMinimap(lastWP), 2, System.Drawing.Color.OrangeRed);
                            }

                            minimapSprite.Position = Drawing.WorldToMinimap(heroPos) - new Vector2(10, 10);
                            minimapSprite.OnEndScene();
                        }
                    }

                    if (championInfo && championInfoHD)
                    {

                        var hudSprite = hero.HudSprite;

                        if (!hero.Hero.IsVisible)
                            hudSprite.Color = new ColorBGRA(System.Drawing.Color.DimGray.ToArgb());
                        else
                            hudSprite.Color = new ColorBGRA(System.Drawing.Color.White.ToArgb());

                        Vector2 hudPos = new Vector2(posX + hudSpace, posY);
                        float scale = 0.5f;
                        hudSprite.Scale = new Vector2(scale, scale);
                        hudSprite.Position = hudPos - new Vector2(12, 10);
                        hudSprite.OnEndScene();

                        var vec1manaB = new Vector2(hudPos.X - 9, hudPos.Y + 48);
                        var vec2manaB = new Vector2(hudPos.X - 8 + 50 + 3, hudPos.Y + 48);
                        Drawing.DrawLine(vec1manaB, vec2manaB, 18, System.Drawing.Color.DarkGoldenrod);

                        var vec1hpB = new Vector2(hudPos.X - 8, hudPos.Y + 49);
                        var vec2hpB = new Vector2(hudPos.X - 8 + 50 + 2, hudPos.Y + 49);
                        Drawing.DrawLine(vec1hpB, vec2hpB, 16, System.Drawing.Color.Black);

                        System.Drawing.Color color = System.Drawing.Color.LimeGreen;
                        if (hero.Hero.HealthPercent < 30)
                            color = System.Drawing.Color.OrangeRed;
                        else if (hero.Hero.HealthPercent < 50)
                            color = System.Drawing.Color.DarkOrange;
                        var vec1hp = new Vector2(hudPos.X - 7, hudPos.Y + 50);
                        var vec2hp = new Vector2(hudPos.X - 7 + hero.Hero.HealthPercent / 2, hudPos.Y + 50);
                        Drawing.DrawLine(vec1hp, vec2hp, 7, color);

                        var vec1mana = new Vector2(hudPos.X - 7, hudPos.Y + 59);
                        var vec2mana = new Vector2(hudPos.X - 7 + hero.Hero.ManaPercent / 2, hudPos.Y + 59);
                        Drawing.DrawLine(vec1mana, vec2mana, 5, System.Drawing.Color.DodgerBlue);
                        var vecHudLevel = new Vector2(hudPos.X + 30, hudPos.Y + 33);

                        DrawFontTextScreen(HudLevel, hero.Hero.Level.ToString(), vecHudLevel.X, vecHudLevel.Y, SharpDX.Color.White);

                        {
                            if (Game.Time - hero.FinishRecallTime < 4)
                            {
                                DrawFontTextScreen(RecFont, "    FINISH", hudPos.X - 10, hudPos.Y + 18, SharpDX.Color.YellowGreen);
                            }
                            else if (hero.StartRecallTime <= hero.AbortRecallTime && Game.Time - hero.AbortRecallTime < 4)
                            {
                                DrawFontTextScreen(RecFont, "    ABORT", hudPos.X - 10, hudPos.Y + 18, SharpDX.Color.Yellow);
                            }
                            else if (Game.Time - hero.StartRecallTime < 8)
                            {
                                var recallPercent = (Game.Time - hero.StartRecallTime) / 8;
                                var vec1rec = new Vector2(hudPos.X - 9, hudPos.Y + 35);
                                var vec2rec = new Vector2(hudPos.X - 8 + 50 + 3, hudPos.Y + 35);
                                Drawing.DrawLine(vec1rec, vec2rec, 14, System.Drawing.Color.DarkGoldenrod);

                                vec1rec = new Vector2(hudPos.X - 8, hudPos.Y + 36);
                                vec2rec = new Vector2(hudPos.X - 8 + 50 + 2, hudPos.Y + 36);
                                Drawing.DrawLine(vec1rec, vec2rec, 12, System.Drawing.Color.Black);

                                vec1rec = new Vector2(hudPos.X - 7, hudPos.Y + 37);
                                vec2rec = new Vector2(hudPos.X - 7 + 100 * recallPercent / 2, hudPos.Y + 37);
                                Drawing.DrawLine(vec1rec, vec2rec, 10, System.Drawing.Color.Yellow);

                                if (blink)
                                    DrawFontTextScreen(RecFont, "RECALLING", hudPos.X - 10, hudPos.Y + 18, SharpDX.Color.White);

                            }
                        }

                        var ult = hero.Hero.Spellbook.Spells[3];
                        var sum1 = hero.Hero.Spellbook.Spells[4];
                        var sum2 = hero.Hero.Spellbook.Spells[5];

                        if (ult != null)
                        {
                            var sumTime = ult.CooldownExpires - Game.Time;

                            var spritePos = new Vector2(hudPos.X + 3, hudPos.Y - 53);
                            var vecHudCd = new Vector2(hudPos.X + 10, hudPos.Y - 46);
                            var sumSprite = GetSummonerIcon("r");
                            sumSprite.Position = spritePos;

                            sumSprite.Scale = new Vector2(0.4f, 0.4f);
                            if (hero.Hero.Level < 6)
                            {
                                sumSprite.Color = new ColorBGRA(System.Drawing.Color.DimGray.ToArgb());
                                sumSprite.OnEndScene();
                            }
                            else if (sumTime < 0)
                            {
                                sumSprite.Color = new ColorBGRA(System.Drawing.Color.White.ToArgb());
                                sumSprite.OnEndScene();
                            }
                            else
                            {
                                sumSprite.Color = new ColorBGRA(System.Drawing.Color.DimGray.ToArgb());
                                sumSprite.OnEndScene();
                                DrawFontTextScreen(HudCd, MakeNiceNumber(sumTime), vecHudCd.X, vecHudCd.Y, SharpDX.Color.White);
                            }
                        }

                        if (sum1 != null)
                        {
                            var sumTime = sum1.CooldownExpires - Game.Time;

                            var vecFlashPos = new Vector2(hudPos.X - 10, hudPos.Y - 30);
                            var vecHudCd = new Vector2(hudPos.X - 4, hudPos.Y - 24);
                            var sumSprite = GetSummonerIcon(sum1.Name);
                            sumSprite.Position = vecFlashPos;
                            sumSprite.Scale = new Vector2(0.4f, 0.4f);

                            if (sumTime < 0)
                            {
                                sumSprite.Color = new ColorBGRA(System.Drawing.Color.White.ToArgb());
                                sumSprite.OnEndScene();
                            }
                            else
                            {
                                sumSprite.Color = new ColorBGRA(System.Drawing.Color.DimGray.ToArgb());
                                sumSprite.OnEndScene();
                                DrawFontTextScreen(HudCd, MakeNiceNumber(sumTime), vecHudCd.X, vecHudCd.Y, SharpDX.Color.White);
                            }
                        }

                        if (sum2 != null)
                        {
                            var sumTime = sum2.CooldownExpires - Game.Time;

                            var vecHealPos = new Vector2(hudPos.X + 15, hudPos.Y - 30);
                            var vecHudCd = new Vector2(hudPos.X + 22, hudPos.Y - 24);
                            var sumSprite = GetSummonerIcon(sum2.Name);
                            sumSprite.Position = vecHealPos;
                            sumSprite.Scale = new Vector2(0.4f, 0.4f);

                            if (sumTime < 0)
                            {
                                sumSprite.Color = new ColorBGRA(System.Drawing.Color.White.ToArgb());
                                sumSprite.OnEndScene();
                            }
                            else
                            {
                                sumSprite.Color = new ColorBGRA(System.Drawing.Color.DimGray.ToArgb());
                                sumSprite.OnEndScene();
                                DrawFontTextScreen(HudCd, MakeNiceNumber(sumTime), vecHudCd.X, vecHudCd.Y, SharpDX.Color.White);
                            }
                        }
                        hudSpace += 65;
                    }
                    else if (championInfo)
                    {
                        var hudSprite = hero.HudSprite;

                        if (!hero.Hero.IsVisible)
                            hudSprite.Color = new ColorBGRA(System.Drawing.Color.DimGray.ToArgb());
                        else
                            hudSprite.Color = new ColorBGRA(System.Drawing.Color.White.ToArgb());

                        Vector2 hudPos = new Vector2(posX + hudSpace, posY);
                        float scale = 0.33f;
                        hudSprite.Scale = new Vector2(scale, scale);
                        hudSprite.Position = hudPos - new Vector2(11, -8);
                        hudSprite.OnEndScene();

                        var vec1manaB = new Vector2(hudPos.X - 9, hudPos.Y + 48);
                        var vec2manaB = new Vector2(hudPos.X - 8 + 33 + 3, hudPos.Y + 48);
                        Drawing.DrawLine(vec1manaB, vec2manaB, 18, System.Drawing.Color.DarkGoldenrod);

                        var vec1hpB = new Vector2(hudPos.X - 8, hudPos.Y + 49);
                        var vec2hpB = new Vector2(hudPos.X - 8 + 33 + 2, hudPos.Y + 49);
                        Drawing.DrawLine(vec1hpB, vec2hpB, 16, System.Drawing.Color.Black);

                        System.Drawing.Color color = System.Drawing.Color.LimeGreen;
                        if (hero.Hero.HealthPercent < 30)
                            color = System.Drawing.Color.OrangeRed;
                        else if (hero.Hero.HealthPercent < 50)
                            color = System.Drawing.Color.DarkOrange;
                        var vec1hp = new Vector2(hudPos.X - 7, hudPos.Y + 50);
                        var vec2hp = new Vector2(hudPos.X - 7 +  33 * hero.Hero.HealthPercent * 0.01f, hudPos.Y + 50);
                        Drawing.DrawLine(vec1hp, vec2hp, 7, color);

                        var vec1mana = new Vector2(hudPos.X - 7, hudPos.Y + 59);
                        var vec2mana = new Vector2(hudPos.X - 7 + 33 * hero.Hero.ManaPercent * 0.01f, hudPos.Y + 59);
                        Drawing.DrawLine(vec1mana, vec2mana, 5, System.Drawing.Color.DodgerBlue);
                        var vecHudLevel = new Vector2(hudPos.X + 15, hudPos.Y + 36);
                        DrawFontTextScreen(HudLevel2, hero.Hero.Level.ToString(), vecHudLevel.X, vecHudLevel.Y, SharpDX.Color.White);
                        {
                            if (Game.Time - hero.FinishRecallTime < 4)
                            {
                                DrawFontTextScreen(HudLevel2, "FINISH", hudPos.X - 9, hudPos.Y + 18, SharpDX.Color.YellowGreen);
                            }
                            else if (hero.StartRecallTime <= hero.AbortRecallTime && Game.Time - hero.AbortRecallTime < 4)
                            {
                                DrawFontTextScreen(HudLevel2, "ABORT", hudPos.X - 9, hudPos.Y + 18, SharpDX.Color.Yellow);
                            }
                            else if (Game.Time - hero.StartRecallTime < 8)
                            {
                                var recallPercent = (Game.Time - hero.StartRecallTime) / 8;
                                var vec1rec = new Vector2(hudPos.X - 9, hudPos.Y + 35);
                                var vec2rec = new Vector2(hudPos.X - 8 + 33 + 3, hudPos.Y + 35);
                                Drawing.DrawLine(vec1rec, vec2rec, 14, System.Drawing.Color.DarkGoldenrod);

                                vec1rec = new Vector2(hudPos.X - 8, hudPos.Y + 36);
                                vec2rec = new Vector2(hudPos.X - 8 + 33 + 2, hudPos.Y + 36);
                                Drawing.DrawLine(vec1rec, vec2rec, 12, System.Drawing.Color.Black);

                                vec1rec = new Vector2(hudPos.X - 7, hudPos.Y + 37);
                                vec2rec = new Vector2(hudPos.X - 7 + 33 * recallPercent, hudPos.Y + 37);
                                Drawing.DrawLine(vec1rec, vec2rec, 10, System.Drawing.Color.Yellow);

                                if (blink)
                                    DrawFontTextScreen(HudLevel2, "RECALL", hudPos.X - 9, hudPos.Y + 18, SharpDX.Color.White);

                            }
                        }

                        var ult = hero.Hero.Spellbook.Spells[3];
                        var sum1 = hero.Hero.Spellbook.Spells[4];
                        var sum2 = hero.Hero.Spellbook.Spells[5];

                        if (ult != null)
                        {
                            var sumTime = ult.CooldownExpires - Game.Time;

                            var spritePos = new Vector2(hudPos.X - 2, hudPos.Y - 30);
                            var vecHudCd = new Vector2(hudPos.X + 2, hudPos.Y - 24);
                            var sumSprite = GetSummonerIcon("r");
                            sumSprite.Position = spritePos;

                            sumSprite.Scale = new Vector2(0.35f, 0.35f);
                            if (hero.Hero.Level < 6)
                            {
                                sumSprite.Color = new ColorBGRA(System.Drawing.Color.DimGray.ToArgb());
                                sumSprite.OnEndScene();
                            }
                            else if (sumTime < 0)
                            {
                                sumSprite.Color = new ColorBGRA(System.Drawing.Color.White.ToArgb());
                                sumSprite.OnEndScene();
                            }
                            else
                            {
                                sumSprite.Color = new ColorBGRA(System.Drawing.Color.DimGray.ToArgb());
                                sumSprite.OnEndScene();
                                DrawFontTextScreen(HudCd, MakeNiceNumber(sumTime), vecHudCd.X, vecHudCd.Y, SharpDX.Color.White);
                            }
                        }

                        if (sum1 != null)
                        {
                            var sumTime = sum1.CooldownExpires - Game.Time;

                            var vecFlashPos = new Vector2(hudPos.X - 13, hudPos.Y - 10);
                            var vecHudCd = new Vector2(hudPos.X - 8, hudPos.Y - 5);
                            var sumSprite = GetSummonerIcon(sum1.Name);
                            sumSprite.Position = vecFlashPos;
                            sumSprite.Scale = new Vector2(0.35f, 0.35f);
                            
                            if (sumTime < 0)
                            {
                                sumSprite.Color = new ColorBGRA(System.Drawing.Color.White.ToArgb());
                                sumSprite.OnEndScene();
                            }
                            else
                            {
                                sumSprite.Color = new ColorBGRA(System.Drawing.Color.DimGray.ToArgb());
                                sumSprite.OnEndScene();
                                DrawFontTextScreen(HudCd, MakeNiceNumber(sumTime), vecHudCd.X, vecHudCd.Y, SharpDX.Color.White);
                            }
                        }

                        if (sum2 != null)
                        {
                            var sumTime = sum2.CooldownExpires - Game.Time;

                            var vecHealPos = new Vector2(hudPos.X + 9, hudPos.Y - 10);
                            var vecHudCd = new Vector2(hudPos.X + 15, hudPos.Y - 5);
                            var sumSprite = GetSummonerIcon(sum2.Name);
                            sumSprite.Position = vecHealPos;
                            sumSprite.Scale = new Vector2(0.35f, 0.35f);

                            if (sumTime < 0)
                            {
                                sumSprite.Color = new ColorBGRA(System.Drawing.Color.White.ToArgb());
                                sumSprite.OnEndScene();
                            }
                            else
                            {
                                sumSprite.Color = new ColorBGRA(System.Drawing.Color.DimGray.ToArgb());
                                sumSprite.OnEndScene();
                                DrawFontTextScreen(HudCd, MakeNiceNumber(sumTime), vecHudCd.X, vecHudCd.Y, SharpDX.Color.White);
                            }
                        }
                        hudSpace += 45;
                    }
                }

                if (ScreenRadar && !hero.Hero.Position.IsOnScreen() && (!ScreenRadarEnemy || hero.Hero.IsEnemy) && (!ScreenRadarJungler || hero.IsJungler))
                {
                    var dis = centerScreenWorld.Distance(hero.Hero.Position);
                    if (dis < area)
                    {
                        float scale = 1.1f;

                        if (dis < area)
                            scale -= dis / area;

                        var normalSprite = hero.NormalSprite;

                        Vector2 dupa2 = centerScreen.Extend(Drawing.WorldToScreen(hero.Hero.Position), Drawing.Height / 2 - 120);

                        normalSprite.Scale = new Vector2(scale, scale);

                        if (hero.Hero.IsEnemy)
                        {
                            if (!hero.Hero.IsHPBarRendered)
                            {
                                dupa2 = centerScreen.Extend(Drawing.WorldToScreen(hero.LastWayPoint), Drawing.Height / 2 - 120);
                                normalSprite.Color = new ColorBGRA(System.Drawing.Color.DimGray.ToArgb());
                            }
                            else
                                normalSprite.Color = new ColorBGRA(System.Drawing.Color.White.ToArgb());
                        }
                        normalSprite.Scale = new Vector2(scale, scale);
                        normalSprite.Position = dupa2;
                        normalSprite.OnEndScene();
                    }
                }
            }
        }
Пример #11
0
        static void Drawing_OnDraw(EventArgs args)
        {
            if (Player.IsDead)
            {
                return;
            }

            var drawingAA = SharpShooter.Menu.Item("drawingAA", true).GetValue <Circle>();
            var drawingW  = SharpShooter.Menu.Item("drawingW", true).GetValue <Circle>();
            var drawingE  = SharpShooter.Menu.Item("drawingE", true).GetValue <Circle>();

            if (drawingAA.Active)
            {
                Render.Circle.DrawCircle(Player.Position, Orbwalking.GetRealAutoAttackRange(Player), drawingAA.Color);
            }

            if (W.IsReady() && drawingW.Active)
            {
                Render.Circle.DrawCircle(Player.Position, W.Range, drawingW.Color);
            }

            if (E.IsReady() && drawingE.Active)
            {
                Render.Circle.DrawCircle(Player.Position, E.Range, drawingE.Color);
            }

            if (SharpShooter.Menu.Item("drawingQTimer", true).GetValue <Boolean>())
            {
                foreach (var buff in Player.Buffs)
                {
                    if (buff.Name == "TwitchHideInShadows")
                    {
                        var targetpos = Drawing.WorldToScreen(Player.Position);
                        Drawing.DrawText(targetpos[0] - 10, targetpos[1], Color.Gold, "" + (buff.EndTime - Game.ClockTime));
                    }
                }
            }

            if (SharpShooter.Menu.Item("stealthrecall", true).GetValue <KeyBind>().Active)
            {
                var targetpos = Drawing.WorldToScreen(Player.Position);

                if (Q.IsReady() && Recall.IsReady())
                {
                    Drawing.DrawText(targetpos[0] - 60, targetpos[1] - 50, Color.Gold, "Try Stealth recall");
                }
                else if (Player.HasBuff("TwitchHideInShadows") && Player.HasBuff("Recall"))
                {
                    Drawing.DrawText(targetpos[0] - 60, targetpos[1] - 50, Color.Gold, "Stealth Recall Activated");
                }
                else if (!Player.HasBuff("recall"))
                {
                    Drawing.DrawText(targetpos[0] - 60, targetpos[1] - 50, Color.Gold, "Q is not ready");
                }
            }

            if (SharpShooter.Menu.Item("drawingRLine", true).GetValue <Boolean>())
            {
                if (Player.HasBuff("TwitchFullAutomatic", true))
                {
                    var aatarget = TargetSelector.GetTarget(Orbwalking.GetRealAutoAttackRange(Player), TargetSelector.DamageType.Physical);

                    if (aatarget != null)
                    {
                        var from = Drawing.WorldToScreen(Player.Position);

                        var dis = (Orbwalking.GetRealAutoAttackRange(Player) + 300) - Player.Distance(aatarget, false);

                        var to = Drawing.WorldToScreen(dis > 0 ? aatarget.ServerPosition.Extend(Player.Position, -dis) : aatarget.ServerPosition);
                        Drawing.DrawLine(from[0], from[1], to[0], to[1], 10, Color.FromArgb(100, 71, 200, 62));
                    }
                }
            }

            if (SharpShooter.Menu.Item("drawingRTimer", true).GetValue <Boolean>())
            {
                foreach (var buff in Player.Buffs)
                {
                    if (buff.Name == "TwitchFullAutomatic")
                    {
                        var targetpos = Drawing.WorldToScreen(Player.Position);
                        Drawing.DrawText(targetpos[0] - 10, targetpos[1], Color.Gold, "" + (buff.EndTime - Game.ClockTime));
                        break;
                    }
                }
            }
        }
Пример #12
0
 public static void Init()
 {
     if (ObjectManager.Player.IsDead)
     {
         return;
     }
     if (VayneMenu.Config.Item("vayne.q.draw").GetValue <Circle>().Active&& VayneSpells.Q.IsReady())
     {
         Render.Circle.DrawCircle(ObjectManager.Player.Position, VayneSpells.Q.Range, VayneMenu.Config.Item("vayne.q.draw").GetValue <Circle>().Color);
     }
     if (VayneMenu.Config.Item("vayne.e.draw").GetValue <Circle>().Active&& VayneSpells.Q.IsReady())
     {
         Render.Circle.DrawCircle(ObjectManager.Player.Position, VayneSpells.E.Range, VayneMenu.Config.Item("vayne.e.draw").GetValue <Circle>().Color);
     }
     if (!Helper.VEnabled("vayne.disable.catch"))
     {
         var selectedtarget = TargetSelector.GetSelectedTarget();
         if (selectedtarget != null)
         {
             var playerposition = Drawing.WorldToScreen(ObjectManager.Player.Position);
             var enemyposition  = Drawing.WorldToScreen(selectedtarget.Position);
             if (Helper.VEnabled("vayne.catch.line"))
             {
                 if (Catcher.GapcloseCalculte(selectedtarget, VayneSpells.Q) < 0 && Catcher.Calculate(selectedtarget) < 0)
                 {
                     Drawing.DrawLine(playerposition, enemyposition, 2, Color.LawnGreen);
                 }
                 if (Catcher.GapcloseCalculte(selectedtarget, VayneSpells.Q) > 0 && Catcher.Calculate(selectedtarget) > 0)
                 {
                     Drawing.DrawLine(playerposition, enemyposition, 2, Color.Red);
                 }
                 if (Catcher.GapcloseCalculte(selectedtarget, VayneSpells.Q) < 0 && Catcher.Calculate(selectedtarget) > 0)
                 {
                     Drawing.DrawLine(playerposition, enemyposition, 2, Color.Orange);
                 }
             }
             if (Helper.VEnabled("vayne.catch.circle"))
             {
                 if (Catcher.GapcloseCalculte(selectedtarget, VayneSpells.Q) < 0 && Catcher.Calculate(selectedtarget) < 0)
                 {
                     Render.Circle.DrawCircle(selectedtarget.Position, 100, Color.LawnGreen);
                 }
                 if (Catcher.GapcloseCalculte(selectedtarget, VayneSpells.Q) > 0 && Catcher.Calculate(selectedtarget) > 0)
                 {
                     Render.Circle.DrawCircle(selectedtarget.Position, 100, Color.Red);
                 }
                 if (Catcher.GapcloseCalculte(selectedtarget, VayneSpells.Q) < 0 && Catcher.Calculate(selectedtarget) > 0)
                 {
                     Render.Circle.DrawCircle(selectedtarget.Position, 100, Color.Orange);
                 }
             }
             if (Helper.VEnabled("vayne.catch.text"))
             {
                 if (Catcher.GapcloseCalculte(selectedtarget, VayneSpells.Q) < 0 && Catcher.Calculate(selectedtarget) < 0)
                 {
                     Drawing.DrawText(playerposition.X, playerposition.Y, Color.LawnGreen, "Catch (Time): " + (int)Catcher.Calculate(selectedtarget));
                     if (VayneSpells.Q.IsReady())
                     {
                         Drawing.DrawText(playerposition.X - 20, playerposition.Y - 20, Color.LawnGreen, "Catch With Gapclose (Time): " + (int)Catcher.GapcloseCalculte(selectedtarget, VayneSpells.Q));
                     }
                 }
                 if (Catcher.GapcloseCalculte(selectedtarget, VayneSpells.Q) > 0 && Catcher.Calculate(selectedtarget) > 0)
                 {
                     Drawing.DrawText(playerposition.X, playerposition.Y, Color.Red, "Catch (Time): " + (int)Catcher.Calculate(selectedtarget));
                     if (VayneSpells.Q.IsReady())
                     {
                         Drawing.DrawText(playerposition.X - 20, playerposition.Y - 20, Color.Red, "Catch With Gapclose (Time): " + (int)Catcher.GapcloseCalculte(selectedtarget, VayneSpells.Q));
                     }
                 }
                 if (Catcher.GapcloseCalculte(selectedtarget, VayneSpells.Q) < 0 && Catcher.Calculate(selectedtarget) > 0)
                 {
                     Drawing.DrawText(playerposition.X, playerposition.Y, Color.Orange, "Catch (Time): " + (int)Catcher.Calculate(selectedtarget));
                     if (VayneSpells.Q.IsReady())
                     {
                         Drawing.DrawText(playerposition.X - 20, playerposition.Y - 20, Color.Orange, "Catch With Gapclose (Time): " + (int)Catcher.GapcloseCalculte(selectedtarget, VayneSpells.Q));
                     }
                 }
             }
         }
     }
 }
Пример #13
0
        private static void OnDraw(EventArgs args)
        {
            var target =
                HeroManager.Enemies.Find(
                    x => x.HasBuff("TristanaECharge") && x.LSIsValidTarget(2000));

            if (!target.LSIsValidTarget())
            {
                return;
            }

            if (getCheckBoxItem(miscMenu, "ElTristana.DrawStacks"))
            {
                if (LastHarassPos == null)
                {
                    LastHarassPos = Player.ServerPosition;
                }

                var x = target.HPBarPosition.X + 45;
                var y = target.HPBarPosition.Y - 25;

                if (spells[Spells.E].Level > 0)
                {
                    if (HasEBuff(target)) //Credits to lizzaran
                    {
                        var stacks = target.GetBuffCount("TristanaECharge");
                        if (stacks > -1)
                        {
                            for (var i = 0; 4 > i; i++)
                            {
                                Drawing.DrawLine(x + i * 20, y, x + i * 20 + 10, y, 10,
                                                 i > stacks ? Color.DarkGray : Color.OrangeRed);
                            }
                        }

                        if (stacks == 3)
                        {
                            if (getCheckBoxItem(suicideMenu, "ElTristana.W"))
                            {
                                if (getCheckBoxItem(suicideMenu, "ElTristana.W.Jump"))
                                {
                                    if (getCheckBoxItem(suicideMenu, "ElTristana.W.Jump.kill"))
                                    {
                                        if (target.LSIsValidTarget(spells[Spells.W].Range) &&
                                            Player.CountEnemiesInRange(getSliderItem(suicideMenu,
                                                                                     "ElTristana.W.Enemies.Range")) <=
                                            getSliderItem(suicideMenu, "ElTristana.W.Enemies"))
                                        {
                                            if (getCheckBoxItem(suicideMenu, "ElTristana.W.Jump.tower"))
                                            {
                                                var underTower = target.UnderTurret();
                                                if (underTower)
                                                {
                                                    return;
                                                }
                                            }

                                            if (spells[Spells.W].GetDamage(target) > target.Health + 15)
                                            {
                                                var prediction = spells[Spells.W].GetPrediction(target);
                                                if (prediction.Hitchance >= HitChance.High)
                                                {
                                                    spells[Spells.W].Cast(prediction.CastPosition);
                                                }
                                            }
                                        }
                                    }
                                    else
                                    {
                                        if (target.LSIsValidTarget(spells[Spells.W].Range) &&
                                            Player.CountEnemiesInRange(getSliderItem(suicideMenu,
                                                                                     "ElTristana.W.Enemies.Range")) <=
                                            getSliderItem(suicideMenu, "ElTristana.W.Enemies"))
                                        {
                                            if (getCheckBoxItem(suicideMenu, "ElTristana.W.Jump.tower"))
                                            {
                                                var underTower = target.UnderTurret();
                                                if (underTower)
                                                {
                                                    return;
                                                }
                                            }
                                            spells[Spells.W].Cast(target.ServerPosition);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            if (getCheckBoxItem(miscMenu, "ElTristana.Draw.off"))
            {
                return;
            }

            if (getCheckBoxItem(miscMenu, "ElTristana.Draw.Q"))
            {
                if (spells[Spells.Q].Level > 0)
                {
                    Render.Circle.DrawCircle(ObjectManager.Player.Position, spells[Spells.Q].Range, Color.White);
                }
            }

            if (getCheckBoxItem(miscMenu, "ElTristana.Draw.E"))
            {
                if (spells[Spells.E].Level > 0)
                {
                    Render.Circle.DrawCircle(ObjectManager.Player.Position, spells[Spells.E].Range, Color.White);
                }
            }

            if (getCheckBoxItem(miscMenu, "ElTristana.Draw.R"))
            {
                if (spells[Spells.R].Level > 0)
                {
                    Render.Circle.DrawCircle(ObjectManager.Player.Position, spells[Spells.R].Range, Color.White);
                }
            }
        }
Пример #14
0
        private static void DrawMinion(Obj_AI_Base minion)
        {
            var hpBarPosition = minion.HPBarPosition;
            var maxHealth     = minion.MaxHealth;
            var sDamage       = Player.GetSummonerSpellDamage(minion, LeagueSharp.Common.Damage.SummonerSpell.Smite);
            var x             = sDamage / maxHealth;
            var barWidth      = 0;

            switch (minion.CharData.BaseSkinName)
            {
            case "SRU_Red":
            case "SRU_Blue":
            case "SRU_Dragon":
                barWidth = 145;
                Drawing.DrawLine(
                    new Vector2(hpBarPosition.X + 3 + (float)(barWidth * x), hpBarPosition.Y + 18),
                    new Vector2(hpBarPosition.X + 3 + (float)(barWidth * x), hpBarPosition.Y + 28), 2f,
                    Color.Chartreuse);
                Drawing.DrawText(
                    hpBarPosition.X - 22 + (float)(barWidth * x), hpBarPosition.Y, Color.Chartreuse,
                    sDamage.ToString());
                break;

            case "SRU_Baron":
                barWidth = 194;
                Drawing.DrawLine(
                    new Vector2(hpBarPosition.X - 22 + (float)(barWidth * x), hpBarPosition.Y + 13),
                    new Vector2(hpBarPosition.X - 22 + (float)(barWidth * x), hpBarPosition.Y + 29), 2f,
                    Color.Chartreuse);
                Drawing.DrawText(
                    hpBarPosition.X - 22 + (float)(barWidth * x), hpBarPosition.Y - 3, Color.Chartreuse,
                    sDamage.ToString());
                break;

            case "Sru_Crab":
                barWidth = 61;
                Drawing.DrawLine(
                    new Vector2(hpBarPosition.X + 45 + (float)(barWidth * x), hpBarPosition.Y + 34),
                    new Vector2(hpBarPosition.X + 45 + (float)(barWidth * x), hpBarPosition.Y + 37), 2f,
                    Color.Chartreuse);
                Drawing.DrawText(
                    hpBarPosition.X + 40 + (float)(barWidth * x), hpBarPosition.Y + 16, Color.Chartreuse,
                    sDamage.ToString());
                break;

            case "SRU_Murkwolf":
                barWidth = 75;
                Drawing.DrawLine(
                    new Vector2(hpBarPosition.X + 54 + (float)(barWidth * x), hpBarPosition.Y + 19),
                    new Vector2(hpBarPosition.X + 54 + (float)(barWidth * x), hpBarPosition.Y + 23), 2f,
                    Color.Chartreuse);
                Drawing.DrawText(
                    hpBarPosition.X + 50 + (float)(barWidth * x), hpBarPosition.Y, Color.Chartreuse,
                    sDamage.ToString());
                break;

            case "SRU_Razorbeak":
                barWidth = 75;
                Drawing.DrawLine(
                    new Vector2(hpBarPosition.X + 54 + (float)(barWidth * x), hpBarPosition.Y + 18),
                    new Vector2(hpBarPosition.X + 54 + (float)(barWidth * x), hpBarPosition.Y + 22), 2f,
                    Color.Chartreuse);
                Drawing.DrawText(
                    hpBarPosition.X + 54 + (float)(barWidth * x), hpBarPosition.Y, Color.Chartreuse,
                    sDamage.ToString());
                break;

            case "SRU_Krug":
                barWidth = 81;
                Drawing.DrawLine(
                    new Vector2(hpBarPosition.X + 58 + (float)(barWidth * x), hpBarPosition.Y + 18),
                    new Vector2(hpBarPosition.X + 58 + (float)(barWidth * x), hpBarPosition.Y + 22), 2f,
                    Color.Chartreuse);
                Drawing.DrawText(
                    hpBarPosition.X + 54 + (float)(barWidth * x), hpBarPosition.Y, Color.Chartreuse,
                    sDamage.ToString());
                break;

            case "SRU_Gromp":
                barWidth = 87;
                Drawing.DrawLine(
                    new Vector2(hpBarPosition.X + 62 + (float)(barWidth * x), hpBarPosition.Y + 18),
                    new Vector2(hpBarPosition.X + 62 + (float)(barWidth * x), hpBarPosition.Y + 22), 2f,
                    Color.Chartreuse);
                Drawing.DrawText(
                    hpBarPosition.X + 58 + (float)(barWidth * x), hpBarPosition.Y, Color.Chartreuse,
                    sDamage.ToString());
                break;
            }
        }
Пример #15
0
        private void OnDraw(EventArgs args)
        {
            if (Config.Item("disableDraws").GetValue <bool>())
            {
                return;
            }

            if (Config.Item("showWards").GetValue <bool>())
            {
                var circleSize = 30;
                foreach (var obj in OKTWward.HiddenObjList)
                {
                    if (obj.type == 1)
                    {
                        OktwCommon.DravTriangleOKTW(circleSize, obj.pos, System.Drawing.Color.Yellow);
                        DrawFontTextMap(Tahoma13, "" + (int)(obj.endTime - Game.Time), obj.pos, SharpDX.Color.Yellow);
                    }

                    if (obj.type == 2)
                    {
                        OktwCommon.DravTriangleOKTW(circleSize, obj.pos, System.Drawing.Color.HotPink);
                        DrawFontTextMap(Tahoma13, "VW", obj.pos, SharpDX.Color.HotPink);
                    }
                    if (obj.type == 3)
                    {
                        OktwCommon.DravTriangleOKTW(circleSize, obj.pos, System.Drawing.Color.Orange);
                        DrawFontTextMap(Tahoma13, "! " + (int)(obj.endTime - Game.Time), obj.pos, SharpDX.Color.Orange);
                    }
                }
            }

            if (Program.AIOmode != 2 && Config.Item("showNot").GetValue <bool>() && Config.Item("spellFarm") != null && spellFarmTimer + 1 > Game.Time)
            {
                if (Config.Item("spellFarm").GetValue <bool>())
                {
                    DrawFontTextScreen(TextBold, "SPELLS FARM ON", Drawing.Width * 0.5f, Drawing.Height * 0.4f, SharpDX.Color.GreenYellow);
                }
                else
                {
                    DrawFontTextScreen(TextBold, "SPELLS FARM OFF", Drawing.Width * 0.5f, Drawing.Height * 0.4f, SharpDX.Color.OrangeRed);
                }
            }


            bool blink = true;

            if ((int)(Game.Time * 10) % 2 == 0)
            {
                blink = false;
            }

            var   HpBar        = Config.Item("HpBar").GetValue <bool>();
            var   championInfo = Config.Item("championInfo").GetValue <bool>();
            var   GankAlert    = Config.Item("GankAlert").GetValue <bool>();
            var   ShowKDA      = Config.Item("ShowKDA").GetValue <bool>();
            var   ShowClicks   = Config.Item("ShowClicks").GetValue <bool>();
            float posY         = ((float)Config.Item("posY").GetValue <Slider>().Value * 0.01f) * Drawing.Height;
            float posX         = ((float)Config.Item("posX").GetValue <Slider>().Value * 0.01f) * Drawing.Width;
            float positionDraw = 0;
            float positionGang = 500;
            int   Width        = 103;
            int   Height       = 8;
            int   XOffset      = 10;
            int   YOffset      = 20;
            var   FillColor    = System.Drawing.Color.GreenYellow;
            var   Color        = System.Drawing.Color.Azure;
            float offset       = 0;

            foreach (var enemy in Program.Enemies)
            {
                if (Config.Item("SS").GetValue <bool>())
                {
                    offset += 0.15f;
                    if (!enemy.IsVisible && !enemy.IsDead)
                    {
                        var ChampionInfoOne = OKTWtracker.ChampionInfoList.Find(x => x.NetworkId == enemy.NetworkId);
                        if (ChampionInfoOne != null && enemy != Program.jungler)
                        {
                            if ((int)(Game.Time * 10) % 2 == 0 && Game.Time - ChampionInfoOne.LastVisableTime > 3 && Game.Time - ChampionInfoOne.LastVisableTime < 7)
                            {
                                DrawFontTextScreen(TextBold, "SS " + enemy.ChampionName + " " + (int)(Game.Time - ChampionInfoOne.LastVisableTime), Drawing.Width * offset, Drawing.Height * 0.02f, SharpDX.Color.OrangeRed);
                            }
                            if (Game.Time - ChampionInfoOne.LastVisableTime >= 7)
                            {
                                DrawFontTextScreen(TextBold, "SS " + enemy.ChampionName + " " + (int)(Game.Time - ChampionInfoOne.LastVisableTime), Drawing.Width * offset, Drawing.Height * 0.02f, SharpDX.Color.OrangeRed);
                            }
                        }
                    }
                }

                if (enemy.IsValidTarget() && ShowClicks)
                {
                    var lastWaypoint = enemy.GetWaypoints().Last().To3D();
                    if (lastWaypoint.IsValid())
                    {
                        drawLine(enemy.Position, lastWaypoint, 1, System.Drawing.Color.Red);

                        if (enemy.GetWaypoints().Count() > 1)
                        {
                            DrawFontTextMap(Tahoma13, enemy.ChampionName, lastWaypoint, SharpDX.Color.WhiteSmoke);
                        }
                    }
                }

                if (HpBar && enemy.IsHPBarRendered && Render.OnScreen(Drawing.WorldToScreen(enemy.Position)))
                {
                    var barPos = enemy.HPBarPosition;

                    float QdmgDraw = 0, WdmgDraw = 0, EdmgDraw = 0, RdmgDraw = 0, damage = 0;;

                    if (Q.IsReady())
                    {
                        damage = damage + Q.GetDamage(enemy);
                    }

                    if (W.IsReady() && Player.ChampionName != "Kalista")
                    {
                        damage = damage + W.GetDamage(enemy);
                    }

                    if (E.IsReady())
                    {
                        damage = damage + E.GetDamage(enemy);
                    }

                    if (R.IsReady())
                    {
                        damage = damage + R.GetDamage(enemy);
                    }

                    if (Q.IsReady())
                    {
                        QdmgDraw = (Q.GetDamage(enemy) / damage);
                    }

                    if (W.IsReady() && Player.ChampionName != "Kalista")
                    {
                        WdmgDraw = (W.GetDamage(enemy) / damage);
                    }

                    if (E.IsReady())
                    {
                        EdmgDraw = (E.GetDamage(enemy) / damage);
                    }

                    if (R.IsReady())
                    {
                        RdmgDraw = (R.GetDamage(enemy) / damage);
                    }

                    var percentHealthAfterDamage = Math.Max(0, enemy.Health - damage) / enemy.MaxHealth;

                    var yPos                     = barPos.Y + YOffset;
                    var xPosDamage               = barPos.X + XOffset + Width * percentHealthAfterDamage;
                    var xPosCurrentHp            = barPos.X + XOffset + Width * enemy.Health / enemy.MaxHealth;

                    float differenceInHP = xPosCurrentHp - xPosDamage;
                    var   pos1           = barPos.X + XOffset + (107 * percentHealthAfterDamage);

                    for (int i = 0; i < differenceInHP; i++)
                    {
                        if (Q.IsReady() && i < QdmgDraw * differenceInHP)
                        {
                            Drawing.DrawLine(pos1 + i, yPos, pos1 + i, yPos + Height, 1, System.Drawing.Color.Cyan);
                        }
                        else if (W.IsReady() && i < (QdmgDraw + WdmgDraw) * differenceInHP)
                        {
                            Drawing.DrawLine(pos1 + i, yPos, pos1 + i, yPos + Height, 1, System.Drawing.Color.Orange);
                        }
                        else if (E.IsReady() && i < (QdmgDraw + WdmgDraw + EdmgDraw) * differenceInHP)
                        {
                            Drawing.DrawLine(pos1 + i, yPos, pos1 + i, yPos + Height, 1, System.Drawing.Color.Yellow);
                        }
                        else if (R.IsReady() && i < (QdmgDraw + WdmgDraw + EdmgDraw + RdmgDraw) * differenceInHP)
                        {
                            Drawing.DrawLine(pos1 + i, yPos, pos1 + i, yPos + Height, 1, System.Drawing.Color.YellowGreen);
                        }
                    }
                }

                var kolor = System.Drawing.Color.GreenYellow;

                if (enemy.IsDead)
                {
                    kolor = System.Drawing.Color.Gray;
                }
                else if (!enemy.IsVisible)
                {
                    kolor = System.Drawing.Color.OrangeRed;
                }

                var kolorHP = System.Drawing.Color.GreenYellow;

                if (enemy.IsDead)
                {
                    kolorHP = System.Drawing.Color.GreenYellow;
                }
                else if ((int)enemy.HealthPercent < 30)
                {
                    kolorHP = System.Drawing.Color.Red;
                }
                else if ((int)enemy.HealthPercent < 60)
                {
                    kolorHP = System.Drawing.Color.Orange;
                }

                if (championInfo)
                {
                    positionDraw += 15;
                    DrawFontTextScreen(Tahoma13, "" + enemy.Level, posX - 25, posY + positionDraw, SharpDX.Color.White);
                    DrawFontTextScreen(Tahoma13, enemy.ChampionName, posX, posY + positionDraw, SharpDX.Color.White);

                    if (true)
                    {
                        var ChampionInfoOne = Core.OKTWtracker.ChampionInfoList.Find(x => x.NetworkId == enemy.NetworkId);
                        if (Game.Time - ChampionInfoOne.FinishRecallTime < 4)
                        {
                            DrawFontTextScreen(Tahoma13, "FINISH", posX - 90, posY + positionDraw, SharpDX.Color.GreenYellow);
                        }
                        else if (ChampionInfoOne.StartRecallTime <= ChampionInfoOne.AbortRecallTime && Game.Time - ChampionInfoOne.AbortRecallTime < 4)
                        {
                            DrawFontTextScreen(Tahoma13, "ABORT", posX - 90, posY + positionDraw, SharpDX.Color.Yellow);
                        }
                        else if (Game.Time - ChampionInfoOne.StartRecallTime < 8)
                        {
                            int   recallPercent = (int)(((Game.Time - ChampionInfoOne.StartRecallTime) / 8) * 100);
                            float recallX1      = posX - 90;
                            float recallY1      = posY + positionDraw + 3;
                            float recallX2      = (recallX1 + ((int)recallPercent / 2)) + 1;
                            float recallY2      = posY + positionDraw + 3;
                            Drawing.DrawLine(recallX1, recallY1, recallX1 + 50, recallY2, 8, System.Drawing.Color.Red);
                            Drawing.DrawLine(recallX1, recallY1, recallX2, recallY2, 8, System.Drawing.Color.White);
                        }
                    }

                    if (ShowKDA)
                    {
                        var fSlot = enemy.Spellbook.Spells[4];
                        if (fSlot.Name != "summonerflash")
                        {
                            fSlot = enemy.Spellbook.Spells[5];
                        }

                        if (fSlot.Name == "summonerflash")
                        {
                            var fT = fSlot.CooldownExpires - Game.Time;
                            if (fT < 0)
                            {
                                DrawFontTextScreen(Tahoma13, "F rdy", posX + 110, posY + positionDraw, SharpDX.Color.GreenYellow);
                            }
                            else
                            {
                                DrawFontTextScreen(Tahoma13, "F " + (int)fT, posX + 110, posY + positionDraw, SharpDX.Color.Yellow);
                            }
                        }

                        if (enemy.Level > 5)
                        {
                            var rSlot = enemy.Spellbook.Spells[3];
                            var t     = rSlot.CooldownExpires - Game.Time;

                            if (t < 0)
                            {
                                DrawFontTextScreen(Tahoma13, "R rdy", posX + 145, posY + positionDraw, SharpDX.Color.GreenYellow);
                            }
                            else
                            {
                                DrawFontTextScreen(Tahoma13, "R " + (int)t, posX + 145, posY + positionDraw, SharpDX.Color.Yellow);
                            }
                        }
                        else
                        {
                            DrawFontTextScreen(Tahoma13, "R ", posX + 145, posY + positionDraw, SharpDX.Color.Yellow);
                        }
                    }

                    //Drawing.DrawText(posX - 70, posY + positionDraw, kolor, enemy.Level + " lvl");
                }

                var Distance = Player.Distance(enemy.Position);
                if (GankAlert && !enemy.IsDead && Distance > 1200)
                {
                    var wts = Drawing.WorldToScreen(ObjectManager.Player.Position.Extend(enemy.Position, positionGang));

                    wts[0] = wts[0];
                    wts[1] = wts[1] + 15;

                    if ((int)enemy.HealthPercent > 0)
                    {
                        Drawing.DrawLine(wts[0], wts[1], (wts[0] + ((int)enemy.HealthPercent) / 2) + 1, wts[1], 8, kolorHP);
                    }

                    if ((int)enemy.HealthPercent < 100)
                    {
                        Drawing.DrawLine((wts[0] + ((int)enemy.HealthPercent) / 2), wts[1], wts[0] + 50, wts[1], 8, System.Drawing.Color.White);
                    }

                    if (Distance > 3500 && enemy.IsVisible)
                    {
                        DrawFontTextMap(Tahoma13, enemy.ChampionName, Player.Position.Extend(enemy.Position, positionGang), SharpDX.Color.White);
                    }
                    else if (!enemy.IsVisible)
                    {
                        var ChampionInfoOne = Core.OKTWtracker.ChampionInfoList.Find(x => x.NetworkId == enemy.NetworkId);
                        if (ChampionInfoOne != null)
                        {
                            if (Game.Time - ChampionInfoOne.LastVisableTime > 3 && Game.Time - ChampionInfoOne.LastVisableTime < 7)
                            {
                                if (blink)
                                {
                                    DrawFontTextMap(Tahoma13, "SS " + enemy.ChampionName + " " + (int)(Game.Time - ChampionInfoOne.LastVisableTime), Player.Position.Extend(enemy.Position, positionGang), SharpDX.Color.Yellow);
                                }
                            }
                            else
                            {
                                DrawFontTextMap(Tahoma13, "SS " + enemy.ChampionName + " " + (int)(Game.Time - ChampionInfoOne.LastVisableTime), Player.Position.Extend(enemy.Position, positionGang), SharpDX.Color.Yellow);
                            }
                        }
                        else
                        {
                            DrawFontTextMap(Tahoma13, "SS " + enemy.ChampionName, Player.Position.Extend(enemy.Position, positionGang), SharpDX.Color.Yellow);
                        }
                    }
                    else if (blink)
                    {
                        DrawFontTextMap(Tahoma13B, enemy.ChampionName, Player.Position.Extend(enemy.Position, positionGang), SharpDX.Color.OrangeRed);
                    }

                    if (Distance < 3500 && enemy.IsVisible && !Render.OnScreen(Drawing.WorldToScreen(Player.Position.Extend(enemy.Position, Distance + 500))))
                    {
                        drawLine(Player.Position.Extend(enemy.Position, 100), Player.Position.Extend(enemy.Position, positionGang - 100), (int)((3500 - Distance) / 300), System.Drawing.Color.OrangeRed);
                    }
                    else if (Distance < 3500 && !enemy.IsVisible && !Render.OnScreen(Drawing.WorldToScreen(Player.Position.Extend(enemy.Position, Distance + 500))))
                    {
                        var need = Core.OKTWtracker.ChampionInfoList.Find(x => x.NetworkId == enemy.NetworkId);
                        if (need != null && Game.Time - need.LastVisableTime < 5)
                        {
                            drawLine(Player.Position.Extend(enemy.Position, 100), Player.Position.Extend(enemy.Position, positionGang - 100), (int)((3500 - Distance) / 300), System.Drawing.Color.Gray);
                        }
                    }
                }
                positionGang = positionGang + 100;
            }

            if (Program.AIOmode != 2)
            {
                DrawOrbwalkerRange();
                DrawOrbwalkerTarget();
            }
            else
            {
                Drawing.DrawText(Drawing.Width * 0.2f, Drawing.Height * 1f, System.Drawing.Color.Cyan, "OKTW AIO only utility mode ON");
            }
        }
Пример #16
0
 private void OnDraw(EventArgs args)
 {
     if (Player.IsDead)
     {
         return;
     }
     if (Config.Item(Name + "DrawQ").GetValue <bool>() && SkillQ.Level > 0)
     {
         Utility.DrawCircle(Player.Position, (SkillQ.Instance.Name == "BlindMonkQOne") ? SkillQ.Range : 1300, SkillQ.IsReady() ? Color.Green : Color.Red);
     }
     if (Config.Item(Name + "DrawW").GetValue <bool>() && SkillW.Level > 0)
     {
         Utility.DrawCircle(Player.Position, SkillW.Range, SkillW.IsReady() ? Color.Green : Color.Red);
     }
     if (Config.Item(Name + "DrawE").GetValue <bool>() && SkillE.Level > 0)
     {
         Utility.DrawCircle(Player.Position, (SkillE.Instance.Name == "BlindMonkEOne") ? SkillE.Range : 575, SkillE.IsReady() ? Color.Green : Color.Red);
     }
     if (Config.Item(Name + "DrawR").GetValue <bool>() && SkillR.Level > 0)
     {
         Utility.DrawCircle(Player.Position, SkillR.Range, SkillR.IsReady() ? Color.Green : Color.Red);
     }
     if (Config.Item(Name + "drawInsec").GetValue <bool>() && SkillR.IsReady())
     {
         Byte validTargets = 0;
         if (targetObj != null)
         {
             Utility.DrawCircle(targetObj.Position, 70, Color.FromArgb(0, 204, 0));
             validTargets += 1;
         }
         if (Config.Item(Name + "insecMode").GetValue <StringList>().SelectedIndex == 2 || (Config.Item(Name + "insecMode").GetValue <StringList>().SelectedIndex != 2 && allyObj != null))
         {
             Utility.DrawCircle((Config.Item(Name + "insecMode").GetValue <StringList>().SelectedIndex != 2) ? allyObj.Position : Game.CursorPos, 70, Color.FromArgb(0, 204, 0));
             if (Config.Item(Name + "insecMode").GetValue <StringList>().SelectedIndex != 2)
             {
                 validTargets += 1;
             }
         }
         if ((Config.Item(Name + "insecMode").GetValue <StringList>().SelectedIndex == 2 && validTargets == 1) || (Config.Item(Name + "insecMode").GetValue <StringList>().SelectedIndex != 2 && validTargets == 2))
         {
             var posDraw = targetObj.Position + Vector3.Normalize(((Config.Item(Name + "insecMode").GetValue <StringList>().SelectedIndex != 2) ? allyObj.Position : Game.CursorPos) - targetObj.Position) * 600;
             Drawing.DrawLine(Drawing.WorldToScreen(targetObj.Position), Drawing.WorldToScreen(posDraw), 2, Color.White);
         }
     }
     if (Config.Item(Name + "insecMode").GetValue <StringList>().SelectedIndex == 0 && SkillR.IsReady() && Config.Item(Name + "drawInsecTower").GetValue <bool>())
     {
         Utility.DrawCircle(Player.Position, Config.Item(Name + "insecTowerR").GetValue <Slider>().Value, Color.White);
     }
     if (Config.Item(Name + "drawKillable").GetValue <bool>())
     {
         foreach (var killableObj in ObjectManager.Get <Obj_AI_Hero>().Where(i => i.IsValidTarget()))
         {
             var dmgTotal = Player.GetAutoAttackDamage(killableObj);
             if (SkillQ.IsReady() && SkillQ.Instance.Name == "BlindMonkQOne")
             {
                 dmgTotal += SkillQ.GetDamage(killableObj);
             }
             if (SkillR.IsReady() && Config.Item(Name + "ult" + killableObj.ChampionName).GetValue <bool>())
             {
                 dmgTotal += SkillR.GetDamage(killableObj);
             }
             if (SkillE.IsReady() && SkillQ.Instance.Name == "BlindMonkEOne")
             {
                 dmgTotal += SkillE.GetDamage(killableObj);
             }
             if (SkillQ.IsReady() && (killableObj.HasBuff("BlindMonkQOne", true) || killableObj.HasBuff("blindmonkqonechaos", true)))
             {
                 dmgTotal += GetQ2Dmg(killableObj, dmgTotal);
             }
             if (killableObj.Health < dmgTotal)
             {
                 var posText = Drawing.WorldToScreen(killableObj.Position);
                 Drawing.DrawText(posText.X - 30, posText.Y - 5, Color.White, "Killable");
             }
         }
     }
 }
Пример #17
0
        private void Ondraw(EventArgs args)
        {
            var drawQ           = GetMenu.GetMenu.Item("DQ").GetValue <bool>();
            var drawW           = GetMenu.GetMenu.Item("DW").GetValue <bool>();
            var drawE           = GetMenu.GetMenu.Item("DE").GetValue <bool>();
            var drawQE          = GetMenu.GetMenu.Item("DQE").GetValue <bool>();
            var drawR           = GetMenu.GetMenu.Item("DR").GetValue <bool>();
            var drawOrb         = GetMenu.GetMenu.Item("DO").GetValue <bool>();
            var drawOrbText     = GetMenu.GetMenu.Item("DST").GetValue <bool>();
            var drawHarassTogle = GetMenu.GetMenu.Item("DHT").GetValue <bool>();

            if (ObjectManager.Player.IsDead)
            {
                return;
            }
            if (drawHarassTogle)
            {
                var HKey = GetMenu.GetMenu.Item("HKey").GetValue <KeyBind>().Active;
                if (HKey)
                {
                    Drawing.DrawText(0, 250, System.Drawing.Color.Yellow, "Harass Toggle : True");
                }
                else
                {
                    Drawing.DrawText(0, 250, System.Drawing.Color.Yellow, "Harass Toggle : False");
                }
            }
            if (GetSpells.GetQ.IsReady() && drawQ)
            {
                Render.Circle.DrawCircle(ObjectManager.Player.Position, GetSpells.GetQ.Range, System.Drawing.Color.DarkCyan, 2);
            }
            if (GetSpells.GetW.IsReady() && drawW)
            {
                Render.Circle.DrawCircle(ObjectManager.Player.Position, GetSpells.GetW.Range, System.Drawing.Color.DarkCyan, 2);
            }
            if (GetSpells.GetE.IsReady() && drawE)
            {
                Render.Circle.DrawCircle(ObjectManager.Player.Position, GetSpells.GetE.Range, System.Drawing.Color.DarkCyan, 2);
            }
            if (GetSpells.GetR.IsReady() && drawR)
            {
                Render.Circle.DrawCircle(ObjectManager.Player.Position, GetSpells.GetR.Range, System.Drawing.Color.DarkCyan, 2);
            }
            if (drawQE && GetSpells.GetE.IsReady() && GetSpells.GetQ.IsReady())
            {
                Render.Circle.DrawCircle(ObjectManager.Player.Position, GetSpells.GetQ.Range + 450, System.Drawing.Color.Red, 2);
            }
            var orbs = GetOrbs;

            if (orbs != null)
            {
                if (drawOrb)
                {
                    foreach (var b in orbs)
                    {
                        Render.Circle.DrawCircle(b, 50, System.Drawing.Color.DarkRed, 2);
                        var wts    = Drawing.WorldToScreen(Hero.Position);
                        var wtssxt = Drawing.WorldToScreen(b);
                        Drawing.DrawLine(wts, wtssxt, 2, System.Drawing.Color.DarkRed);
                    }
                }
                if (drawOrbText)
                {
                    var orbsTotal = "Active Orbs R : " + (orbs.Count);
                    Drawing.DrawText(0, 200, System.Drawing.Color.Yellow, orbsTotal);
                }
            }
        }
Пример #18
0
        /// <summary>
        ///     The drawing event.
        /// </summary>
        /// <param name="args">
        ///     The event args.
        /// </param>
        internal void OnDraw(EventArgs args)
        {
            if (!this.Visible)
            {
                return;
            }

            Drawing.Direct3DDevice.SetRenderState(RenderState.AlphaBlendEnable, true);
            MenuDrawHelper.DrawBox(
                this.Position,
                this.Width,
                this.Height,
                (this.Children.Count > 0 && this.Children[0].Visible || this.Items.Count > 0 && this.Items[0].Visible)
                    ? MenuSettings.ActiveBackgroundColor
                    : MenuSettings.BackgroundColor,
                1,
                System.Drawing.Color.Black);

            var style = this.Style;

            style &= ~FontStyle.Strikeout;
            style &= ~FontStyle.Underline;

            var font = MenuDrawHelper.GetFont(style);

            font.DrawText(
                null,
                MultiLanguage._(this.DisplayName),
                new Rectangle((int)this.Position.X + 5, (int)this.Position.Y, this.Width, this.Height),
                FontDrawFlags.VerticalCenter,
                this.Color);
            font.DrawText(
                null,
                ">",
                new Rectangle((int)this.Position.X - 5, (int)this.Position.Y, this.Width, this.Height),
                FontDrawFlags.Right | FontDrawFlags.VerticalCenter,
                this.Color);

            var textWidth = font.MeasureText(null, MultiLanguage._(this.DisplayName));

            if ((this.Style & FontStyle.Strikeout) != 0)
            {
                Drawing.DrawLine(
                    this.Position.X + 5,
                    this.Position.Y + (MenuSettings.MenuItemHeight / 2f),
                    this.Position.X + 5 + textWidth.Width,
                    this.Position.Y + (MenuSettings.MenuItemHeight / 2f),
                    1f,
                    System.Drawing.Color.FromArgb(this.Color.A, this.Color.R, this.Color.G, this.Color.B));
            }

            if ((this.Style & FontStyle.Underline) != 0)
            {
                Drawing.DrawLine(
                    this.Position.X + 5,
                    this.Position.Y + (MenuSettings.MenuItemHeight / 1.5f),
                    this.Position.X + 5 + textWidth.Width,
                    this.Position.Y + (MenuSettings.MenuItemHeight / 1.5f),
                    1f,
                    System.Drawing.Color.FromArgb(this.Color.A, this.Color.R, this.Color.G, this.Color.B));
            }

            //Draw the menu submenus
            foreach (var child in this.Children.Where(child => child.Visible))
            {
                child.OnDraw(args);
            }

            //Draw the items
            for (var i = this.Items.Count - 1; i >= 0; i--)
            {
                var item = this.Items[i];
                if (item.Visible)
                {
                    item.OnDraw();
                }
            }
        }
Пример #19
0
        private void Ondraw(EventArgs args)
        {
            var DrawTotalDamage = program.getMenu().Item("DrawDamageIndicator").GetValue <bool>();

            if (!DrawTotalDamage)
            {
                return;
            }
            const int width = 103;
            const int height = 8;
            const int xOffset = 10;
            const int yOffset = 20;
            float     qDamage = 0, wDamage = 0, eDamage = 0, rDamage = 0;

            //Based on Sebby's Damage Draw.
            foreach (var tar in HeroManager.Enemies.Where(x => !x.IsDead))
            {
                if (program.getSkills().getQ().IsReady())
                {
                    qDamage = program.getSkills().getQ().GetDamage(tar);
                }
                if (program.getSkills().getE().IsReady())
                {
                    eDamage = program.getSkills().getE().GetDamage(tar);
                }
                if (program.getSkills().getR().IsReady())
                {
                    rDamage = program.getSkills().getR().GetDamage(tar);
                }
                var totalSpellDamage = qDamage + wDamage + eDamage + rDamage;
                if (!tar.IsHPBarRendered || !tar.Position.IsOnScreen())
                {
                    continue;
                }
                var percentHealthAfterDamage = Math.Max(0, tar.Health - totalSpellDamage) / tar.MaxHealth;
                var barPos         = tar.HPBarPosition;
                var yPos           = barPos.Y + yOffset;
                var xPosDamage     = barPos.X + xOffset + width * percentHealthAfterDamage;
                var xPosCurrentHp  = barPos.X + xOffset + width * tar.Health / tar.MaxHealth;
                var pos1           = barPos.X + xOffset + (107 * percentHealthAfterDamage);
                var differenceInHp = xPosCurrentHp - xPosDamage;
                var hpPos          = tar.HPBarPosition;
                var currentXPos    = hpPos.X;


                float qdmgDraw = 0, wdmgDraw = 0, edmgDraw = 0, rdmgDraw = 0;
                if (qDamage != 0)
                {
                    qdmgDraw = (qDamage / totalSpellDamage);
                }

                if (wDamage != 0)
                {
                    wdmgDraw = (wDamage / totalSpellDamage);
                }

                if (eDamage != 0)
                {
                    edmgDraw = (eDamage / totalSpellDamage);
                }

                if (rDamage != 0)
                {
                    rdmgDraw = (rDamage / totalSpellDamage);
                }
                for (var i = 0; i < differenceInHp; i++)
                {
                    Drawing.DrawLine(pos1 + i, yPos, pos1 + i, yPos + height, 1, System.Drawing.Color.OrangeRed);
                }
            }
        }
Пример #20
0
        public override void Redraw(float currentTime, float elapsedTime)
        {
            // update camera, tracking test vehicle
            Demo.UpdateCamera(currentTime, elapsedTime, vehicle);

            // draw "ground plane"  (make it 4x map size)
            float s = MapDriver.worldSize * 2;
            float u = -0.2f;

            Drawing.DrawQuadrangle(new Vector3(+s, u, +s),
                                   new Vector3(+s, u, -s),
                                   new Vector3(-s, u, -s),
                                   new Vector3(-s, u, +s),
                                   new Color((byte)(255.0f * 0.8f), (byte)(255.0f * 0.7f), (byte)(255.0f * 0.5f)));                      // "sand"

            // draw map and path
            if (MapDriver.demoSelect == 2)
            {
                vehicle.DrawPath();
            }
            vehicle.DrawMap();

            // draw test vehicle
            vehicle.Draw();

            // QQQ mark origin to help spot artifacts
            float tick = 2;

            Drawing.DrawLine(new Vector3(tick, 0, 0), new Vector3(-tick, 0, 0), Color.Green);
            Drawing.DrawLine(new Vector3(0, 0, tick), new Vector3(0, 0, -tick), Color.Green);

            // compute conversion factor miles-per-hour to meters-per-second
            float metersPerMile  = 1609.344f;
            float secondsPerHour = 3600;
            float MPSperMPH      = metersPerMile / secondsPerHour;

            // display status in the upper left corner of the window
            StringBuilder status = new StringBuilder();

            status.AppendFormat("Speed: {0} mps ({1} mph), average: {2:0.0} mps\n\n",
                                (int)vehicle.Speed,
                                (int)(vehicle.Speed / MPSperMPH),
                                vehicle.totalDistance / vehicle.totalTime);
            status.AppendFormat("collisions avoided for {0} seconds",
                                (int)(Demo.Clock.TotalSimulationTime - vehicle.timeOfLastCollision));
            if (vehicle.countOfCollisionFreeTimes > 0)
            {
                status.AppendFormat("\nmean time between collisions: {0} ({1}/{2})",
                                    (int)(vehicle.sumOfCollisionFreeTimes / vehicle.countOfCollisionFreeTimes),
                                    (int)vehicle.sumOfCollisionFreeTimes,
                                    (int)vehicle.countOfCollisionFreeTimes);
            }

            status.AppendFormat("\n\nStuck count: {0} ({1} cycles, {2} off path)",
                                vehicle.stuckCount,
                                vehicle.stuckCycleCount,
                                vehicle.stuckOffPathCount);
            status.Append("\n\n[F1] ");
            if (1 == MapDriver.demoSelect)
            {
                status.Append("wander, ");
            }
            if (2 == MapDriver.demoSelect)
            {
                status.Append("follow path, ");
            }
            status.Append("avoid obstacle");

            if (2 == MapDriver.demoSelect)
            {
                status.Append("\n[F2] path following direction: ");
                if (vehicle.pathFollowDirection > 0)
                {
                    status.Append("+1");
                }
                else
                {
                    status.Append("-1");
                }
                status.Append("\n[F3] path fence: ");
                if (usePathFences)
                {
                    status.Append("on");
                }
                else
                {
                    status.Append("off");
                }
            }

            status.Append("\n[F4] rocks: ");
            if (useRandomRocks)
            {
                status.Append("on");
            }
            else
            {
                status.Append("off");
            }
            status.Append("\n[F5] prediction: ");
            if (vehicle.curvedSteering)
            {
                status.Append("curved");
            }
            else
            {
                status.Append("linear");
            }
            if (2 == MapDriver.demoSelect)
            {
                status.AppendFormat("\n\nLap {0} (completed: {1}%)",
                                    vehicle.lapsStarted,
                                    ((vehicle.lapsStarted < 2) ? 0 :
                                     (int)(100 * ((float)vehicle.lapsFinished /
                                                  (float)(vehicle.lapsStarted - 1))))
                                    );

                status.AppendFormat("\nHints given: {0}, taken: {1}",
                                    vehicle.hintGivenCount,
                                    vehicle.hintTakenCount);
            }
            status.Append("\n");
            qqqRange("WR ", MapDriver.savedNearestWR, status);
            qqqRange("R  ", MapDriver.savedNearestR, status);
            qqqRange("L  ", MapDriver.savedNearestL, status);
            qqqRange("WL ", MapDriver.savedNearestWL, status);
            Vector3 screenLocation = new Vector3(15, 50, 0);
            Vector3 color          = new Vector3(0.15f, 0.15f, 0.5f);

            Drawing.Draw2dTextAt2dLocation(status.ToString(), screenLocation, new Color(color));

            {
                float v  = Drawing.GetWindowHeight() - 5;
                float m  = 10;
                float w  = Drawing.GetWindowWidth();
                float f  = w - (2 * m);
                float s2 = vehicle.RelativeSpeed();

                // limit tick mark
                float l = vehicle.annoteMaxRelSpeed;
                Drawing.Draw2dLine(new Vector3(m + (f * l), v - 3, 0), new Vector3(m + (f * l), v + 3, 0), Color.Black);
                // two "inverse speedometers" showing limits due to curvature and
                // path alignment
                if (l != 0)
                {
                    float c = vehicle.annoteMaxRelSpeedCurve;
                    float p = vehicle.annoteMaxRelSpeedPath;
                    Drawing.Draw2dLine(new Vector3(m + (f * c), v + 1, 0), new Vector3(w - m, v + 1, 0), Color.Red);
                    Drawing.Draw2dLine(new Vector3(m + (f * p), v - 2, 0), new Vector3(w - m, v - 1, 0), Color.Green);
                }
                // speedometer: horizontal line with length proportional to speed
                Drawing.Draw2dLine(new Vector3(m, v, 0), new Vector3(m + (f * s), v, 0), Color.White);
                // min and max tick marks
                Drawing.Draw2dLine(new Vector3(m, v, 0), new Vector3(m, v - 2, 0), Color.White);
                Drawing.Draw2dLine(new Vector3(w - m, v, 0), new Vector3(w - m, v - 2, 0), Color.White);
            }
        }
Пример #21
0
 public static void Drawing_OnDraw(EventArgs args)
 {
     try
     {
         if (Player.IsDead)
         {
             return;
         }
         if (_MainMenu.Item("LeeSin_Draw_Q").GetValue <bool>())
         {
             Render.Circle.DrawCircle(Player.Position, _Q.Range, Color.White, 1);
         }
         if (_MainMenu.Item("LeeSin_Draw_W").GetValue <bool>())
         {
             Render.Circle.DrawCircle(Player.Position, _W.Range, Color.White, 1);
         }
         if (_MainMenu.Item("LeeSin_Draw_E").GetValue <bool>())
         {
             Render.Circle.DrawCircle(Player.Position, _E.Range, Color.White, 1);
         }
         if (_MainMenu.Item("LeeSin_Draw_Ward").GetValue <bool>())
         {
             Render.Circle.DrawCircle(Player.Position, 625, Color.White, 1);
         }
         //if (TargetSelector.GetSelectedTarget() != null) Render.Circle.DrawCircle(TargetSelector.GetSelectedTarget().Position, 375, Color.Green, 2);
         if (_MainMenu.Item("LeeSin_InsecKick").GetValue <KeyBind>().Active&& TargetSelector.GetSelectedTarget() != null && _MainMenu.Item("LeeSin_PredictR").GetValue <bool>())
         {
             var GetTarget = TargetSelector.GetSelectedTarget();
             if (GetTarget == null || GetTarget.IsDead)
             {
                 return;
             }
             var Turrets = ObjectManager.Get <Obj_Turret>()
                           .OrderBy(obj => obj.Position.Distance(Player.Position))
                           .FirstOrDefault(obj => obj.IsAlly && !obj.IsDead);
             var AllyChampion = ObjectManager.Get <Obj_AI_Hero>().FirstOrDefault(obj => obj.IsAlly && !obj.IsMe && !obj.IsDead && obj.Distance(Player.Position) < 2000);
             if (Turrets == null && AllyChampion == null)
             {
                 return;
             }
             if (AllyChampion != null)
             {
                 var InsecPOS = InsecST.Extend(InsecED, +InsecED.Distance(InsecST) + 230);
             }
             Render.Circle.DrawCircle(InsecPOS, 50, Color.Gold);
             if (GetTarget.Distance(Player.Position) < 625)
             {
                 Render.Circle.DrawCircle(Player.Position, 525, Color.LightGreen);
             }
             else
             {
                 Render.Circle.DrawCircle(Player.Position, 525, Color.IndianRed);
             }
             Drawing.DrawLine(Drawing.WorldToScreen(InsecST)[0], Drawing.WorldToScreen(InsecST)[1], Drawing.WorldToScreen(InsecED)[0], Drawing.WorldToScreen(InsecED)[1], 2, Color.Green);
         }
         if (_Q.IsReady() && ObjectManager.Player.Spellbook.GetSpell(SpellSlot.Q).Name == "blindmonkqtwo")
         {
             var target = ObjectManager.Get <Obj_AI_Hero>().FirstOrDefault(f => f.IsEnemy && !f.IsZombie && f.Distance(Player.Position) <= _Q.Range && f.HasBuff("BlindMonkQOne"));
             if (target != null)
             {
                 Render.Circle.DrawCircle(target.Position, 175, Color.YellowGreen);
             }
         }
     }
     catch (Exception)
     {
         if (NowTime() > ErrorTime)
         {
             Game.PrintChat(ChampName + " in FreshBooster isn't Load. Error Code 03");
             ErrorTime = TickCount(10000);
         }
     }
 }
Пример #22
0
        public static void Init()
        {
            Drawing.OnDraw += args =>
            {
                if (Activator.Origin.Item("acdebug").GetValue <bool>())
                {
                    foreach (var hero in Activator.Allies())
                    {
                        var mpos = Drawing.WorldToScreen(hero.Player.Position);

                        if (!hero.Player.IsDead)
                        {
                            Drawing.DrawText(mpos[0] - 40, mpos[1] - 15, Color.White, "Ability Damage: " + hero.AbilityDamage);
                            Drawing.DrawText(mpos[0] - 40, mpos[1] + 0, Color.White, "Tower Damage: " + hero.TowerDamage);
                            Drawing.DrawText(mpos[0] - 40, mpos[1] + 15, Color.White, "Buff Damage: " + hero.BuffDamage);
                            Drawing.DrawText(mpos[0] - 40, mpos[1] + 30, Color.White, "Troy Damage: " + hero.TroyDamage);
                            Drawing.DrawText(mpos[0] - 40, mpos[1] + 45, Color.White, "Minion Damage: " + hero.MinionDamage);
                        }
                    }
                }

                if (Activator.Origin.Item("acdebug2").GetValue <bool>())
                {
                    Drawing.DrawText(200f, 250f, Color.Wheat, "Item Priority (Debug)");

                    var prior = Lists.Priorities.Values.Where(ii => ii.Needed())
                                .OrderByDescending(ii => ii.Menu().Item("prior" + ii.Name()).GetValue <Slider>().Value);

                    foreach (var item in prior)
                    {
                        for (int i = 0; i < prior.Count(); i++)
                        {
                            Drawing.DrawText(200, 265 + 5 * (i * 3), Color.White, item.Name() + " / Needed: "
                                             + item.Needed() + " / Ready: " + item.Ready() + " :: " + item.Position);
                        }
                    }
                }

                if (Activator.Origin.Item("acdebug3").GetValue <bool>())
                {
                    var player = Activator.Allies().FirstOrDefault(x => x.Player.IsMe);
                    if (player != null)
                    {
                        Drawing.DrawText(900f, 250f, Color.Wheat, "Qleanse/QSS (Debug)");
                        Drawing.DrawText(900f, 265f, Color.Wheat, "QSSBuffCount: " + player.QSSBuffCount);
                        Drawing.DrawText(900f, 280f, Color.Wheat, "QSSHighestBuffTime: " + player.QSSHighestBuffTime);
                        Drawing.DrawText(900f, 295f, Color.Wheat, "CleanseBuffCount: " + player.CleanseBuffCount);
                        Drawing.DrawText(900f, 310f, Color.Wheat, "CleanseHighestBuffTime: " + player.CleanseHighestBuffTime);
                    }
                }

                if (!Activator.SmiteInGame)
                {
                    return;
                }

                if (Activator.Origin.Item("drawsmitet").GetValue <bool>())
                {
                    var wts = Drawing.WorldToScreen(Activator.Player.Position);

                    if (Activator.Origin.Item("usesmite").GetValue <KeyBind>().Active)
                    {
                        Drawing.DrawText(wts[0] - 35, wts[1] + 55, Color.White, "Smite: ON");
                    }

                    if (!Activator.Origin.Item("usesmite").GetValue <KeyBind>().Active)
                    {
                        Drawing.DrawText(wts[0] - 35, wts[1] + 55, Color.Gray, "Smite: OFF");
                    }
                }

                if (Activator.Origin.Item("drawsmite").GetValue <bool>())
                {
                    if (Activator.Origin.Item("usesmite").GetValue <KeyBind>().Active)
                    {
                        Render.Circle.DrawCircle(Activator.Player.Position, 500f, Color.White, 2);
                    }

                    if (!Activator.Origin.Item("usesmite").GetValue <KeyBind>().Active)
                    {
                        Render.Circle.DrawCircle(Activator.Player.Position, 500f, Color.Gray, 2);
                    }
                }

                if (!Activator.Player.IsDead && Activator.Origin.Item("drawfill").GetValue <bool>())
                {
                    if (Activator.MapId != (int)MapType.SummonersRift)
                    {
                        return;
                    }

                    var spell      = Data.Smitedata.CachedSpellList.FirstOrDefault();
                    var minionlist = MinionManager.GetMinions(Activator.Player.Position, 1200f, MinionTypes.All, MinionTeam.Neutral);

                    foreach (var minion in minionlist.Where(th => Helpers.IsEpicMinion(th) || Helpers.IsLargeMinion(th)))
                    {
                        var yoffset = Offsets[minion.Name].Y;
                        var xoffset = Offsets[minion.Name].X;
                        var width   = Offsets[minion.Name].Width;
                        var height  = Offsets[minion.Name].Height;

                        if (!minion.IsHPBarRendered)
                        {
                            continue;
                        }

                        var barPos = minion.HPBarPosition;

                        var sdamage = spell != null && Activator.Player.GetSpell(spell.Slot).State == SpellState.Ready
                            ? Activator.Player.GetSpellDamage(minion, spell.Slot, spell.Stage)
                            : 0;

                        var smite = Activator.Player.GetSpell(Activator.Smite).State == SpellState.Ready
                            ? Activator.Player.GetSummonerSpellDamage(minion, Damage.SummonerSpell.Smite)
                            : 0;

                        var damage   = smite + sdamage;
                        var pctafter = Math.Max(0, minion.Health - damage) / minion.MaxHealth;

                        var yaxis    = barPos.Y + yoffset;
                        var xaxisdmg = (float)(barPos.X + xoffset + width * pctafter);
                        var xaxisnow = barPos.X + xoffset + width * minion.Health / minion.MaxHealth;

                        var ana = xaxisnow - xaxisdmg;
                        var pos = barPos.X + xoffset + 12 + (139 * pctafter);

                        for (var i = 0; i < ana; i++)
                        {
                            if (Activator.Origin.Item("usesmite").GetValue <KeyBind>().Active)
                            {
                                Drawing.DrawLine((float)pos + i, yaxis, (float)pos + i, yaxis + height, 1,
                                                 Color.White);
                            }

                            if (!Activator.Origin.Item("usesmite").GetValue <KeyBind>().Active)
                            {
                                Drawing.DrawLine((float)pos + i, yaxis, (float)pos + i, yaxis + height, 1,
                                                 Color.Gray);
                            }
                        }
                    }
                }
            };
        }
Пример #23
0
            public void Draw()
            {
                GUI.Box(rect, name + ": cur / avg " + unitName);

                // x pos in graph
                var padding = 20;
                var x       = rect.x + padding;
                var y       = rect.y + padding;
                var width   = rect.width - 2 * padding;
                var height  = rect.height - 2 * padding;

                int stepSize = Mathf.CeilToInt(width / totalStepCount);



                if (values.Count == 0)
                {
                    return;
                }
                var valueIndex      = Mathf.Max(0, values.Count - totalStepCount);
                var numValuesToDraw = values.Count - valueIndex;

                var posX        = x + width - stepSize * numValuesToDraw;
                var valueHeight = maxValue - minValue;

                if (Mathf.Approximately(valueHeight, 0))
                {
                    valueHeight = 0;
                }

                float posY = y + height;

                if (valueIndex > 0 && valueHeight > 0)
                {
                    posY = y + height * (1 - ((values[valueIndex - 1] - minValue) / valueHeight));
                }
                Vector2 lastPos = new Vector2(posX, posY);
                float   total   = 0;
                int     count   = 0;

                for (int i = valueIndex; i < values.Count; ++i)
                {
                    var v = values[i];
                    total = total + v;
                    count = count + 1;
                    if (valueHeight != 0)
                    {
                        posY = y + height * (1 - ((v - minValue) / valueHeight));
                    }
                    var pos = new Vector2(posX, posY);
                    Drawing.DrawLine(lastPos, pos, color, 1, false);
                    lastPos = pos;
                    posX   += stepSize;
                }

                var r = rect;

                r.y      = r.y + r.height - padding;
                r.height = padding;
                string lastValueString;

                if (values.Count > 0)
                {
                    lastValueString = string.Format("{0:0.00} / {1:0.00} {2}", values[values.Count - 1], total / count, unitName);
                }
                else
                {
                    lastValueString = "---" + unitName;
                }
                GUI.Box(r, lastValueString);
            }
Пример #24
0
        private static void WreckingBallOnDraw(EventArgs args)
        {
            if (getCheckBoxItem(drawingsMenu, "disableAllDraw") || leeHero.IsDead)
            {
                return;
            }

            var       heroPos         = Drawing.WorldToScreen(leeHero.Position);
            var       textDimension   = Drawing.GetTextEntent("Bubba Kush Active!", 23);
            const int OffsetValue     = -30;
            const int OffsetValueInfo = -50;
            var       offSet          = new Vector2(heroPos.X, heroPos.Y - OffsetValue);
            var       offSetInfo      = new Vector2(heroPos.X, heroPos.Y - OffsetValueInfo);

            var simpleCircles = getCheckBoxItem(drawingsMenu, "simpleCircles");

            if (getKeyBindItem(mainMenu, "bubbaKey"))
            {
                Drawing.DrawText(offSet.X - textDimension.Width / 2f, offSet.Y, System.Drawing.Color.Lime, "Bubba Kush Active!");
            }
            else
            {
                Drawing.DrawText(offSet.X - textDimension.Width / 2f, offSet.Y, System.Drawing.Color.Red, "Bubba Kush Inactive!");
            }

            if (getCheckBoxItem(drawingsMenu, "bestTarget"))
            {
                if (rTarget != null)
                {
                    if (!simpleCircles)
                    {
                        Drawing.DrawCircle(rTarget.Position, 200, System.Drawing.Color.Red);
                    }
                    else
                    {
                        Render.Circle.DrawCircle(
                            rTarget.Position,
                            200,
                            System.Drawing.Color.Red);
                    }
                }
            }

            if (getCheckBoxItem(drawingsMenu, "secondTarget"))
            {
                if (rTargetSecond != null)
                {
                    if (!simpleCircles)
                    {
                        Drawing.DrawCircle(
                            rTargetSecond.Position,
                            150,
                            System.Drawing.Color.DeepSkyBlue);
                    }
                    else
                    {
                        Render.Circle.DrawCircle(
                            rTargetSecond.Position,
                            150,
                            System.Drawing.Color.DeepSkyBlue);
                    }
                }
            }

            if (getCheckBoxItem(drawingsMenu, "traceLine"))
            {
                if (rTarget != null && rTargetSecond != null)
                {
                    Drawing.DrawLine(Drawing.WorldToScreen(rTarget.Position), Drawing.WorldToScreen(rTargetSecond.Position), 5, System.Drawing.Color.BlueViolet);
                }
            }

            if (getCheckBoxItem(drawingsMenu, "myRangeDraw"))
            {
                if (!simpleCircles)
                {
                    Drawing.DrawCircle(
                        leeHero.Position,
                        getSliderItem(mainMenu, "firstTargetRange"),
                        System.Drawing.Color.Yellow);
                }
                else
                {
                    Render.Circle.DrawCircle(
                        leeHero.Position,
                        getSliderItem(mainMenu, "firstTargetRange"),
                        System.Drawing.Color.Yellow);
                }
            }

            if (getCheckBoxItem(drawingsMenu, "rTargetDraw"))
            {
                if (rTarget != null)
                {
                    if (!simpleCircles)
                    {
                        Drawing.DrawCircle(
                            rTarget.Position,
                            getSliderItem(mainMenu, "secondTargetRange"),
                            System.Drawing.Color.Orange);
                    }
                    else
                    {
                        Render.Circle.DrawCircle(
                            rTarget.Position,
                            getSliderItem(mainMenu, "secondTargetRange"),
                            System.Drawing.Color.Orange);
                    }
                }
            }

            if (bubbaKushing)
            {
                if (spellR.Instance.State == SpellState.NotLearned)
                {
                    Drawing.DrawText(offSetInfo.X, offSetInfo.Y, System.Drawing.Color.AliceBlue, "R is not leveled up yet");
                }
                else
                {
                    if (!spellR.Instance.IsReady())
                    {
                        Drawing.DrawText(offSetInfo.X, offSetInfo.Y, System.Drawing.Color.AliceBlue, "R is not ready yet");
                    }
                }
            }

            if (rTarget != null && rTargetSecond != null)
            {
                if (getCheckBoxItem(drawingsMenu, "predVector"))
                {
                    var flashVector = GetFlashVector(true);

                    Render.Circle.DrawCircle(flashVector, distLeeKickPos, System.Drawing.Color.Blue);
                }
            }
        }
Пример #25
0
 public static void RectangleFilled(Vector2 pos, int width, int height, Color color)
 {
     pos.Y = pos.Y - height / 2f;
     Drawing.DrawLine(pos.X, pos.Y, pos.X + width, pos.Y, height, color);
 }
Пример #26
0
 private void DrawLine(Rect rect, Vector2 from, Vector2 to, Color color)
 {
     Drawing.DrawLine(ToVector2(rect, from), ToVector2(rect, to), color, 2, false);
 }
Пример #27
0
        private static void OnDraw(EventArgs args)
        {
            if (!_drawing)
            {
                return;
            }

            if (Menu.Item("orb_Draw_AARange").GetValue <Circle>().Active)
            {
                Utility.DrawCircle(MyHero.Position, GetAutoAttackRange(), Menu.Item("orb_Draw_AARange").GetValue <Circle>().Color);
            }

            if (Menu.Item("orb_Draw_AARange_Enemy").GetValue <Circle>().Active ||
                Menu.Item("orb_Draw_hitbox").GetValue <Circle>().Active)
            {
                foreach (var enemy in AllEnemys.Where(enemy => enemy.IsValidTarget(1500)))
                {
                    if (Menu.Item("orb_Draw_AARange_Enemy").GetValue <Circle>().Active)
                    {
                        Utility.DrawCircle(enemy.Position, GetAutoAttackRange(enemy, MyHero), Menu.Item("orb_Draw_AARange_Enemy").GetValue <Circle>().Color);
                    }
                    if (Menu.Item("orb_Draw_hitbox").GetValue <Circle>().Active)
                    {
                        Utility.DrawCircle(enemy.Position, enemy.BoundingRadius, Menu.Item("orb_Draw_hitbox").GetValue <Circle>().Color);
                    }
                }
            }

            if (Menu.Item("orb_Draw_AARange_Enemy").GetValue <Circle>().Active)
            {
                foreach (var enemy in AllEnemys.Where(enemy => enemy.IsValidTarget(1500)))
                {
                    Utility.DrawCircle(enemy.Position, GetAutoAttackRange(enemy, MyHero), Menu.Item("orb_Draw_AARange_Enemy").GetValue <Circle>().Color);
                }
            }

            if (Menu.Item("orb_Draw_Holdzone").GetValue <Circle>().Active)
            {
                Utility.DrawCircle(MyHero.Position, Menu.Item("orb_Misc_Holdzone").GetValue <Slider>().Value, Menu.Item("orb_Draw_Holdzone").GetValue <Circle>().Color);
            }

            if (Menu.Item("orb_Draw_MinionHPBar").GetValue <Circle>().Active ||
                Menu.Item("orb_Draw_Lasthit").GetValue <Circle>().Active ||
                Menu.Item("orb_Draw_nearKill").GetValue <Circle>().Active)
            {
                var minionList = MinionManager.GetMinions(MyHero.Position, GetAutoAttackRange() + 500, MinionTypes.All, MinionTeam.Enemy, MinionOrderTypes.MaxHealth);
                foreach (var minion in minionList.Where(minion => minion.IsValidTarget(GetAutoAttackRange() + 500)))
                {
                    var attackToKill  = Math.Ceiling(minion.MaxHealth / MyHero.GetAutoAttackDamage(minion, true));
                    var hpBarPosition = minion.HPBarPosition;
                    var barWidth      = minion.IsMelee() ? 75 : 80;
                    if (minion.HasBuff("turretshield", true))
                    {
                        barWidth = 70;
                    }
                    var barDistance = (float)(barWidth / attackToKill);
                    if (Menu.Item("orb_Draw_MinionHPBar").GetValue <Circle>().Active)
                    {
                        for (var i = 1; i < attackToKill; i++)
                        {
                            var startposition = hpBarPosition.X + 45 + barDistance * i;
                            Drawing.DrawLine(
                                new Vector2(startposition, hpBarPosition.Y + 18),
                                new Vector2(startposition, hpBarPosition.Y + 23),
                                Menu.Item("orb_Draw_MinionHPBar_thickness").GetValue <Slider>().Value,
                                Menu.Item("orb_Draw_MinionHPBar").GetValue <Circle>().Color);
                        }
                    }
                    if (Menu.Item("orb_Draw_Lasthit").GetValue <Circle>().Active&&
                        minion.Health <= MyHero.GetAutoAttackDamage(minion, true))
                    {
                        Utility.DrawCircle(minion.Position, minion.BoundingRadius, Menu.Item("orb_Draw_Lasthit").GetValue <Circle>().Color);
                    }
                    else if (Menu.Item("orb_Draw_nearKill").GetValue <Circle>().Active&&
                             minion.Health <= MyHero.GetAutoAttackDamage(minion, true) * 2)
                    {
                        Utility.DrawCircle(minion.Position, minion.BoundingRadius, Menu.Item("orb_Draw_nearKill").GetValue <Circle>().Color);
                    }
                }
            }
        }
Пример #28
0
        private static void Drawing_OnDraw(EventArgs args)
        {
            var me = ObjectMgr.LocalHero;

            if (me == null || !me.IsValid)
            {
                return;
            }
            if (Game.IsPaused || !Game.IsInGame || !_loaded || !Menu.Item("showPanel").GetValue <bool>())
            {
                return;
            }
            if (Menu.Item("moveHotkey").GetValue <KeyBind>().Active)
            {
                Menu.Item("posX").SetValue(new Slider((int)Game.MouseScreenPosition.X, -2000, 2000));
                Menu.Item("posY").SetValue(new Slider((int)Game.MouseScreenPosition.Y, -2000, 2000));
            }
            var percent = HUDInfo.RatioPercentage();
            var pos     = new Vector2(Menu.Item("posX").GetValue <Slider>().Value, Menu.Item("posY").GetValue <Slider>().Value);
            var size    = new Vector2(200 * percent, 300 * percent);

            Drawing.DrawRect(pos, size, new Color(0, 0, 0, 100));
            Drawing.DrawRect(pos, size, new Color(0, 155, 255, 255), true);
            Drawing.DrawLine(pos + new Vector2(0, size.Y / 7), pos + new Vector2(size.X, size.Y / 7), new Color(0, 155, 255, 255));
            Drawing.DrawText("Techies Annihilation", pos + new Vector2(10, 10), new Vector2(20 * percent, 0), Color.LightBlue, FontFlags.AntiAlias | FontFlags.DropShadow);
            Drawing.DrawText("v " + Ver, pos + new Vector2(10, size.Y / 9), new Vector2(10 * percent, 0), Color.LightBlue, FontFlags.AntiAlias | FontFlags.DropShadow);
            var spellPos  = pos + new Vector2(size.X / 5 + 25, size.Y / 7 + 10);
            var spellSize = new Vector2(size.X / 8, size.Y / 12);

            Drawing.DrawRect(spellPos, spellSize, new Color(0, 0, 0, 155));
            Drawing.DrawRect(spellPos + new Vector2(spellSize.X + 20 * percent, 0), spellSize, new Color(0, 0, 0, 155));
            Drawing.DrawRect(spellPos + new Vector2(spellSize.X * 2 + 40 * percent, 0), spellSize, new Color(0, 0, 0, 155));
            Drawing.DrawRect(spellPos, spellSize, Drawing.GetTexture("materials/ensage_ui/other/npc_dota_techies_land_mine" + ".vmat"));
            Drawing.DrawRect(spellPos + new Vector2(spellSize.X + 20 * percent, 0), spellSize, Drawing.GetTexture("materials/ensage_ui/spellicons/techies_suicide" + ".vmat"));
            Drawing.DrawRect(spellPos + new Vector2(spellSize.X * 2 + 40 * percent, 0), spellSize, Drawing.GetTexture("materials/ensage_ui/other/npc_dota_techies_remote_mine" + ".vmat"));
            var i = 0;

            foreach (var v in from hero in PlayersDictionary select hero.Value into v where v != null where v.IsValid where v.Team != me.Team select v)
            {
                i++;
                var start = HUDInfo.GetHPbarPosition(v) + new Vector2(0, (float)(-HUDInfo.GetHpBarSizeY() * 1.5));

                if (v.IsAlive)
                {
                    if (Menu.Item("showDmgFromUlt").GetValue <bool>())
                    {
                        float minesDmg;
                        var   dmgAfterUlt = string.Format("{0}",
                                                          GlobalHealthAfterMines.TryGetValue(v, out minesDmg) ? (object)(int)minesDmg : "-");
                        Drawing.DrawText(dmgAfterUlt, start + new Vector2(-10, 0),
                                         new Vector2(Menu.Item("fontSize").GetValue <Slider>().Value, 0), Color.White,
                                         FontFlags.AntiAlias | FontFlags.DropShadow);
                    }
                    if (Menu.Item("showDmgFromSuic").GetValue <bool>())
                    {
                        float suicide;
                        var   dmgAfterSuic = string.Format("{0}",
                                                           GlobalHealthAfterSuicide.TryGetValue(v, out suicide) ? (object)(int)suicide : "-");
                        Drawing.DrawText(dmgAfterSuic, start + new Vector2(HUDInfo.GetHPBarSizeX(), 0),
                                         new Vector2(Menu.Item("fontSize").GetValue <Slider>().Value, 0), Color.White,
                                         FontFlags.AntiAlias | FontFlags.DropShadow);
                    }
                }
                Drawing.DrawRect(pos + new Vector2(10, size.Y / 7 + 10 + i * (size.Y / 10 + 5) * percent),
                                 new Vector2(size.X / 5, size.Y / 10),
                                 Drawing.GetTexture("materials/ensage_ui/heroes_horizontal/" +
                                                    v.Name.Substring("npc_dota_hero_".Length) + ".vmat"));
                Drawing.DrawRect(pos + new Vector2(10, size.Y / 7 + 10 + i * (size.Y / 10 + 5) * percent),
                                 new Vector2(size.X / 5, size.Y / 10), new Color(0, 0, 0, 255), true);

                var ultDmg =
                    string.Format("{0}/{1}",
                                  !v.IsAlive
                            ? 0
                            : Math.Abs(_currentBombDamage) <= 0 ? 0 : GetCount(v, v.Health, _currentBombDamage, me),
                                  Math.Abs(_currentBombDamage) <= 0
                            ? 0
                            : GetCount(v, v.MaximumHealth, _currentBombDamage, me));
                Drawing.DrawText(ultDmg,
                                 new Vector2(spellPos.X + spellSize.X * 2 + 40 * percent,
                                             pos.Y + size.Y / 7 + 10 + i * (size.Y / 10 + 5) * percent), new Vector2(20 * percent, 0), Color.LightBlue,
                                 FontFlags.AntiAlias | FontFlags.DropShadow);
                var dummy = false;
                CanKillSuic(v, ref dummy, me);
                Drawing.DrawText(dummy ? "[+]" : "[-]",
                                 new Vector2(spellPos.X + spellSize.X * 1 + 20 * percent,
                                             pos.Y + size.Y / 7 + 10 + i * (size.Y / 10 + 5) * percent), new Vector2(20 * percent, 0), Color.LightBlue,
                                 FontFlags.AntiAlias | FontFlags.DropShadow);

                Drawing.DrawText("-",
                                 new Vector2(spellPos.X + 10 * percent,
                                             pos.Y + size.Y / 7 + 10 + i * (size.Y / 10 + 5) * percent), new Vector2(20 * percent, 0), Color.LightBlue,
                                 FontFlags.AntiAlias | FontFlags.DropShadow);
            }
        }
Пример #29
0
 public static void Cross(Vector2 pos, float size, float thickness, Color color)
 {
     Drawing.DrawLine(pos.X - size, pos.Y - size, pos.X + size, pos.Y + size, thickness, color);
     Drawing.DrawLine(pos.X + size, pos.Y - size, pos.X - size, pos.Y + size, thickness, color);
 }
Пример #30
0
        private static void Drawing_OnDraw(EventArgs args)
        {
            if (Globals.MyHero.IsDead)
                return;

            if (Menus.VisualsMenu.Get<MenuCheckbox>("DrawSpellsRange").Checked)
            {
                if (Menus.VisualsMenu.Get<MenuCheckbox>("DrawQ").Checked && Menus.VisualsMenu.Get<MenuCheckbox>("DrawOnlyWhenReadyQ").Checked
                    ? SpellsManager.Q.IsReady() : Menus.VisualsMenu.Get<MenuCheckbox>("DrawQ").Checked)
                {
                    Drawing.DrawCircle(Globals.MyHero.Position, SpellsManager.Q.Range, Color.BlueViolet, 1);
                }

                if (Menus.VisualsMenu.Get<MenuCheckbox>("DrawW").Checked && Menus.VisualsMenu.Get<MenuCheckbox>("DrawOnlyWhenReadyW").Checked
                    ? SpellsManager.W.IsReady() : Menus.VisualsMenu.Get<MenuCheckbox>("DrawW").Checked)
                {
                    Drawing.DrawCircle(Globals.MyHero.Position, SpellsManager.W.Range, Color.Yellow, 1);
                }

                if (Menus.VisualsMenu.Get<MenuCheckbox>("DrawR").Checked && Menus.VisualsMenu.Get<MenuCheckbox>("DrawOnlyWhenReadyR").Checked
                    ? SpellsManager.R.IsReady() : Menus.VisualsMenu.Get<MenuCheckbox>("DrawR").Checked)
                {
                    Drawing.DrawCircle(Globals.MyHero.Position, SpellsManager.R.Range, Color.Red, 1);
                }
            }

            /* TODO: OPTIMIZE */
            if (Menus.VisualsMenu.Get<MenuCheckbox>("DrawPredictionR").Checked)
            {
                if (SpellsManager.R.IsUsable() && !Globals.IsTibbersSpawned)
                {
                    Vector3 bestCastPosition = Other.Prediction.GetBestCircularCastPosition(GameObjectType.AIHeroClient, SpellsManager.R, Menus.ComboMenu.Get<MenuSlider>("UltimateTargets").CurrentValue, 235);

                    if (bestCastPosition != Vector3.Zero) 
                    {
                        if (Menus.ComboMenu.Get<MenuCheckbox>("OnlyIfStunReadyR").Checked) 
                        {
                            if (Globals.IsPassiveReady)
                            {
                                Drawing.DrawCircle(bestCastPosition, 235, Color.OrangeRed);
                                Drawing.DrawLine(Globals.MyHero.Position, bestCastPosition, Color.OrangeRed, 2);
                            }
                        }
                        else 
                        {
                            Drawing.DrawCircle(bestCastPosition, 235, Color.OrangeRed);
                            Drawing.DrawLine(Globals.MyHero.Position, bestCastPosition, Color.OrangeRed, 2);
                        }
                    }
                }
            }

            /* TODO: OPTIMIZE */
            if (Menus.VisualsMenu.Get<MenuCheckbox>("DrawPredictionW").Checked && Globals.OrbwalkerMode != Orbwalker.OrbwalkingMode.Combo)
            {
                if (SpellsManager.W.IsUsable())
                {
                    Vector3 predictionW = new Vector3();

                    if (Other.Prediction.GetBestLocationW(out predictionW) >= Menus.LaneClearMenu.Get<MenuSlider>("MinMinions").CurrentValue)
                    {
                        if (predictionW != Vector3.Zero)
                        {
                            if (Menus.LaneClearMenu.Get<MenuSlider>("MaxMana").CurrentValue < Globals.MyHeroManaPercent)
                            {
                                if (Menus.LaneClearMenu.Get<MenuCheckbox>("StopIfPassiveIsCharged").Checked)
                                {
                                    if (!Globals.IsPassiveReady)
                                    {
                                        Drawing.DrawLine(Globals.MyHero.Position, predictionW, Color.GreenYellow, 2);
                                        Drawing.DrawCircle(predictionW, 70, Color.GreenYellow);
                                    }
                                }
                                else
                                {
                                    Drawing.DrawLine(Globals.MyHero.Position, predictionW, Color.GreenYellow, 2);
                                    Drawing.DrawCircle(predictionW, 70, Color.GreenYellow);
                                }
                            }
                        }
                    }
                }
            }

            /* TODO: OPTIMIZE */
            if (Menus.VisualsMenu.Get<MenuCheckbox>("DrawBoundingRadius").Checked)
            {
                if (Globals.CachedEnemies == null || !Globals.CachedEnemies.Any()) return;

                Globals.CachedEnemies.Where(x => !x.IsDead && x.IsVisibleOnScreen && x.IsVisible).ToList().ForEach(x => Drawing.DrawCircle(x.Position, x.BoundingRadius));
            }
        }