Example #1
1
 private static void Game_OnWndProc(WndEventArgs args)
 {
     if (args.Msg == (uint)WindowsMessages.WM_RBUTTONDOWN)
     {
         LastClickPoint = Game.CursorPos.To2D();
     }
 }
 /// <summary>
 /// Fired when the game recieves a window event.
 /// </summary>
 /// <param name="args">The <see cref="WndEventArgs"/> instance containing the event data.</param>
 private static void Game_OnWndProc(WndEventArgs args)
 {
     foreach (var notification in NotificationsList)
     {
         notification.Value.OnWndProc(args);
     }
 }
Example #3
0
 private static void Game_OnWndProc(WndEventArgs args)
 {
     if ((args.Msg == (uint) WindowsMessages.WM_LBUTTONDOWN) && mouseonlsharp())
     {
         bringtofront();
     }
 }
Example #4
0
        private void Game_OnWndProc(WndEventArgs args)
        {
            //Program.debug("WND: " + args.WParam);
            if(args.WParam == 16)
            {
                var priority = Config.Item("TsAa").GetValue<StringList>().SelectedIndex == 1;
                foreach (var enemy in ObjectManager.Get<Obj_AI_Hero>().Where(enemy => enemy.IsEnemy))
                {
                    Config.Item("TsAaPriority" + enemy.ChampionName).Show(priority);

                }

                Config.Item("extraFocus").Show(!priority);
                Config.Item("extraRang").Show(!priority && Config.Item("extraFocus").GetValue<bool>());
                Config.Item("extraTime").Show(!priority && Config.Item("extraFocus").GetValue<bool>());
                Config.Item("drawFocus").Show(!priority && Config.Item("extraFocus").GetValue<bool>());

                if(Config.Item("TsAa").GetValue<StringList>().SelectedIndex == 2)
                {
                    foreach (var enemy in ObjectManager.Get<Obj_AI_Hero>().Where(enemy => enemy.IsEnemy))
                    {
                        Config.Item("TsAaPriority" + enemy.ChampionName).Show(false);

                    }
                    Config.Item("extraFocus").Show(false);
                    Config.Item("extraRang").Show(false);
                    Config.Item("extraTime").Show(false);
                    Config.Item("drawFocus").Show(false);
                }
            }
        }
Example #5
0
        private static void OnWndProc(WndEventArgs args)
        {
            if (MenuGUI.IsChatOpen)
            {
                ActiveMode = ActiveModes.None;
                return;
            }

            if (Config.Keys.AllKeys.Contains(args.WParam))
            {
                var mode = ActiveModes.None;
                foreach (var entry in Config.Keys.ActiveModeLinks)
                {
                    if (entry.Key.Value.Key == args.WParam)
                    {
                        mode = mode | entry.Value;
                    }
                }

                switch (args.Msg)
                {
                    case (uint)WindowsMessages.WM_KEYDOWN:

                        ActiveMode = ActiveMode | mode;
                        break;

                    case (uint)WindowsMessages.WM_KEYUP:

                        ActiveMode = ActiveMode ^ mode;
                        break;
                }
            }
        }
Example #6
0
        private static void Game_OnWndProc(WndEventArgs m)
        {
            try
            {

                if (m.Msg == WM_KEYDOWN)
                {
                   // Console.WriteLine("key: " + m.WParam + " state " + Game.GameState + " W " + Drawing.Width + " H " + Drawing.Height);
                    if (m.WParam == 32)
                    {
                        var me = ObjectMgr.LocalHero;

                        Console.WriteLine("debug: " + me.BaseAttackTime + " : " + Orbwalker.getBaseAttackTime() + " : " + Orbwalker.GetTurnTimeBypass(me, Game.MousePosition));

                        Console.WriteLine("spell R: " + me.Spellbook.SpellQ.Level + " : " + me.Spellbook.SpellQ.CanBeCasted());

                        foreach (
                         var hero in
                       ObjectMgr.GetEntities<Hero>()
                           .Where(hero => hero.IsValid && hero.IsAlive /*(&& CalculateDamage(hero) >= hero.Health)*/))
                        {
                            Console.WriteLine(" " + hero.Name + " : " + hero.Health + " rdmg: " + me.Spellbook.SpellR.CanBeCasted(hero));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
            // Console.WriteLine("shgit");
        }
Example #7
0
        private void ButtonControl(WndEventArgs args)
        {
            ShowEasyButton = (KoreanUtils.GetParamBool(annie.MainMenu, "showeeasybutton"));

            if (ShowEasyButton)
            {
                if ((args.Msg == (uint)WindowsMessages.WM_LBUTTONUP)
                    && (MouseOnButton(StunButtonOn) || MouseOnButton(StunButtonOff)))
                {
                    if (StunButtonOn.Visible)
                    {
                        KoreanUtils.SetValueBool(annie.MainMenu, "savestunforcombo", false);
                    }
                    else if (StunButtonOff.Visible)
                    {
                        KoreanUtils.SetValueBool(annie.MainMenu, "savestunforcombo", true);
                    }
                }
                else if ((args.Msg == (uint)WindowsMessages.WM_MOUSEMOVE) && (args.WParam == 5)
                         && (MouseOnButton(StunButtonOn) || MouseOnButton(StunButtonOff)))
                {
                    MoveButtons(
                        new Vector2(Utils.GetCursorPos().X - (StunButtonOn.Width / 2), Utils.GetCursorPos().Y - 10));
                }

                StunButtonOn.Visible = KoreanUtils.GetParamBool(annie.MainMenu, "savestunforcombo");
                StunButtonOff.Visible = !StunButtonOn.Visible;
            }
            else
            {
                StunButtonOff.Visible = false;
                StunButtonOn.Visible = false;
            }
        }
Example #8
0
 public void OnKeyPress(WndEventArgs args)
 {
     if (args.Msg == (uint)WindowMessages.LeftButtonDown)
     {
         if(OnMouseDown != null)
             OnMouseDown();
         isBeingClicked = true;
         if (MenuHandler.GetCheckboxValue(MenuHandler.Settings, "Debug Click Actions"))
             Console.WriteLine(DisplayName + " had left click pushed down on it.");
     }
     else if (args.Msg == (uint)WindowMessages.LeftButtonUp)
     {
         if (OnMouseRelease != null)
             OnMouseRelease();
         isBeingClicked = false;
         if(MenuHandler.GetCheckboxValue(MenuHandler.Settings, "Debug Click Actions"))
             Console.WriteLine(DisplayName + " had left click released on it.");
     }
     else if (args.Msg == (uint)WindowMessages.MouseMove)
     {
         if (OnMouseMove != null)
             OnMouseMove();
         if (MenuHandler.GetCheckboxValue(MenuHandler.Settings, "Debug Hover Actions"))
             Console.WriteLine(DisplayName + " had the mouse move over it.");
     }
 }
 private static void Game_OnWndProc(WndEventArgs args)
 {
     if (args.Msg == (uint)WindowsMessages.WM_KEYDOWN && args.WParam == 'R' && BadaoMainVariables.R.IsReady())
     {
         BadaoMissFortuneVariables.Rcount = Utils.GameTimeTickCount;
     }
 }
Example #10
0
 private static void Game_OnWndProc(WndEventArgs args)
 {
     if (args.WParam == 'Z' && !Game.IsChatOpen && args.Msg == (uint) Utils.WindowsMessages.WM_KEYUP) {
         _enabled = true;
         _following = false;
     }
 }
Example #11
0
        private static void Game_OnWndProc(WndEventArgs args)
        {
            if (args.Msg == 0x0100 && args.WParam == 0x60)
            {
                _firstKey = 0x60;
            }

            if (args.Msg != 0x0100 || !Keys.ToList().Contains((byte) args.WParam))
            {
                return;
            }

            var key = (int) args.WParam;
            if (_firstKey == 0x60)
            {
                _firstKey = key;
            }

            if (_firstKey == key)
            {
                return;
            }

            ObjectManager.Player.SwapItem(Array.IndexOf(Keys, _firstKey), Array.IndexOf(Keys, key));
            _firstKey = 0x60;
        }
Example #12
0
 private static void Game_OnWndProc(WndEventArgs args)
 {
     if (args.WParam != 'F' || Game.IsChatOpen)
         return;
     _enabled = args.Msg != WmKeyup;
     Game.ExecuteCommand(string.Format("dota_player_units_auto_attack_after_spell {0}", _enabled?0:1));
 }
Example #13
0
        public void OnWndProc(WndEventArgs args)
        {
            if (args.Msg == WM_MOUSEDOWN)
            {
                if (args.WParam == VK_LBUTTON && Config.Item("placekey").GetValue<KeyBind>().Active)
                {
                    Vector3? nearestWard = Ward.FindNearestWardSpot(Drawing.ScreenToWorld(Game.CursorPos.X, Game.CursorPos.Y));

                    if (nearestWard != null)
                    {
                        InventorySlot wardSpellSlot = Items.GetWardSlot();
                         
                         if (wardSpellSlot != null)
                         {
                             wardSpellSlot.UseItem((Vector3)nearestWard);
                         } 
                    }

                    WardSpot nearestSafeWard = Ward.FindNearestSafeWardSpot(Drawing.ScreenToWorld(Game.CursorPos.X, Game.CursorPos.Y));

                    if (nearestSafeWard != null)
                    {
                        InventorySlot wardSpellSlot = Items.GetWardSlot();

                        if (wardSpellSlot != null)
                        {
                            ObjectManager.Player.IssueOrder(GameObjectOrder.MoveTo, nearestSafeWard.MovePosition);
                            Wardspoting._PutSafeWard = nearestSafeWard;
                        }
                    }
                }
            }
        }
Example #14
0
 public static void OnWndMsg(WndEventArgs args)
 {
     foreach (var script in ScriptInitializer.Scripts)
     {
         script.Call(script.Globals["OnWndMsg"], args.Msg, args.WParam);
     }
 }
Example #15
0
        private static ulong increaseSurroundingAlliesKey = 0x68; //arrow up (numpad)

        #endregion Fields

        #region Methods

        public static void GameOnOnWndProc(WndEventArgs args)
        {
            try
            {
                if (args.WParam == 'R' && !Game.IsChatOpen && args.Msg == 0x0100) //keydown (as soon as possible)
                {
                    logPos = ObjectMgr.LocalHero.Position.ToVector2();
                }

                //autoult toggle key pressed
                if (args.WParam == autoUltToggleKey && !Game.IsChatOpen && args.Msg == 0x0101) //keyup
                {
                    ToogleAutoUltBool = !ToogleAutoUltBool;
                }

                if (args.WParam == decreaseSurroundingAlliesKey && !Game.IsChatOpen && args.Msg == 0x0101) //keyup
                {
                    allySurroundingCountModifier--;
                }
                else if (args.WParam == increaseSurroundingAlliesKey &&
                         !Game.IsChatOpen && args.Msg == 0x0101) //keyup
                {
                    allySurroundingCountModifier++;
                }
            }
            catch
            {
                // ignored
            }
        }
Example #16
0
		private static void Game_OnWndProc(WndEventArgs args) {
			if (args.Msg == 'Q')
			{
				var Qtarget = Q.GetTarget(0, Qignored);
				if (Qtarget!=null && SpellQ.GetState() == QState.ThreshQ)
				{
					SpellQ.CastQ1(Qtarget);
				}
				else
				{
					args.Process = false;
				}
			}
			if (args.Msg == 'W')
			{
				var FurthestAlly = GetFurthestAlly();
				if (FurthestAlly != null)
				{
					W.Cast(Prediction.GetPrediction(FurthestAlly, W.Delay).CastPosition);
				}

			}
			if (args.Msg == 'E')
			{
				var Etarget = E.GetTarget();
				if (Etarget!=null)
				{
					ELogic(Etarget);
				}
				else
				{
					args.Process = false;
				}
			}
		}
        private static void Game_OnWndProc(WndEventArgs args)
        {

            if (Program.Config.Item("AssassinReset").GetValue<KeyBind>().Active && args.Msg == 257)
            {
                ClearAssassinList();
                Game.PrintChat(
                    "<font color='#FFFFFF'>Reset Assassin List is Complete! Click on the enemy for Add/Remove.</font>");
            }

            if (args.Msg != (uint)WindowsMessages.WM_LBUTTONDOWN)
            {
                return;
            }

            if (Program.Config.Item("AssassinSetClick").GetValue<bool>())
            {
                foreach (var objAiHero in from hero in ObjectManager.Get<Obj_AI_Hero>()
                                          where hero.IsValidTarget()
                                          select hero
                                              into h
                                              orderby h.Distance(Game.CursorPos) descending
                                              select h
                                                  into enemy
                                                  where enemy.Distance(Game.CursorPos) < 150f
                                                  select enemy)
                {
                    if (objAiHero != null && objAiHero.IsVisible && !objAiHero.IsDead)
                    {
                        var xSelect =
                            Program.Config.Item("AssassinSelectOption").GetValue<StringList>().SelectedIndex;

                        switch (xSelect)
                        {
                            case 0:
                                ClearAssassinList();
                                Program.Config.Item("Assassin" + objAiHero.ChampionName).SetValue(true);
                                Game.PrintChat(
                                    string.Format(
                                        "<font color='FFFFFF'>Added to Assassin List</font> <font color='#09F000'>{0} ({1})</font>",
                                        objAiHero.Name, objAiHero.ChampionName));
                                break;
                            case 1:
                                var menuStatus =
                                    Program.Config.Item("Assassin" + objAiHero.ChampionName)
                                        .GetValue<bool>();
                                Program.Config.Item("Assassin" + objAiHero.ChampionName)
                                    .SetValue(!menuStatus);
                                Game.PrintChat(
                                    string.Format("<font color='{0}'>{1}</font> <font color='#09F000'>{2} ({3})</font>",
                                        !menuStatus ? "#FFFFFF" : "#FF8877",
                                        !menuStatus ? "Added to Assassin List:" : "Removed from Assassin List:",
                                        objAiHero.Name, objAiHero.ChampionName));
                                break;
                        }
                    }
                }
            }
        }
Example #18
0
        static void Game_OnWndProc(WndEventArgs args)
        {
            if (args.Msg == 0x100 && args.WParam == InsertKey)
                ToggleText();

            if (args.Msg == 0x100 && args.WParam == DeleteKey)
                DeleteGold();
        }
Example #19
0
 private static void Game_OnWndProc(WndEventArgs args) {
     if (args.WParam == Menu.Item("hotkey").GetValue<KeyBind>().Key &&
         args.Msg == (uint) Utils.WindowsMessages.WM_KEYUP &&
         !Game.IsChatOpen) {
         enabled = true;
         following = false;
     }
 }
Example #20
0
        static void Game_OnWndProc(WndEventArgs args)
        {
            if (!_activated || args.Msg != WM_KEYUP || args.WParam != 'F' || Game.IsChatOpen || !Game.IsInGame)
                return;

            _enabled = !_enabled;
            Console.WriteLine("Crit switched to "+ (_enabled ? "on" : "off"));
        }
Example #21
0
 /// <summary>
 ///     Windows Process Message subscribed event function.
 /// </summary>
 /// <param name="args">
 ///     <see cref="WndEventArgs" /> data
 /// </param>
 private static void Game_OnWndProc(WndEventArgs args)
 {
     if (args.Msg == 0x0200)
     {
         posX = unchecked((short)args.LParam);
         posY = unchecked((short)((long)args.LParam >> 16));
     }
 }
 private void CastIgnite(WndEventArgs args)
 {
     if (args.Msg == (uint)WindowsMessages.WM_KEYDOWN
         && ObjectManager.Player.Spellbook.ActiveSpellSlot == ignite.Slot)
     {
         Cast();
     }
 }
Example #23
0
 static void Game_OnWndProc(WndEventArgs args)
 {
     if (args.WParam != 1 || cursorOnMinimap()) return;
     Point point = new Point(args.LParam);
     Vector3 kappa2 = Drawing.ScreenToWorld(point.X, point.Y);
     Vector3 kappa3 = new Vector2(kappa2.X, kappa2.Y + 500).To3D();
     if (ObjectManager.Player.Position.Distance(kappa3) < 3000 && !ObjectManager.Player.IsDead) return;
     kappa = ObjectManager.Player.Position - (ObjectManager.Player.Position - kappa3) * (((ObjectManager.Player.Position - kappa3).Length() + 800) / (ObjectManager.Player.Position - kappa3).Length());
 }
Example #24
0
 private static void Game_OnWndProc(WndEventArgs args)
 {
     if (args.Msg == (uint)WindowMessages.KeyUp)
     {
         TriggerOnDetectSkillshot(
             DetectionType.ProcessSpell, SpellDatabase.GetByName("TestSkillShot"), Environment.TickCount,
             ObjectManager.Player.ServerPosition.To2D(), Game.CursorPos.To2D(), ObjectManager.Player);
     }
 }
 private static void Game_OnWndProc(WndEventArgs args)
 {
     if (args.Msg == (uint)WindowsMessages.WM_KEYUP)
     {
         TriggerOnDetectSkillshot(
             DetectionType.ProcessSpell, SpellDatabase.GetByName("TestSkillShot"), Utils.TickCount,
             Program.PlayerPosition, Game.CursorPos.To2D(), Game.CursorPos.To2D(), ObjectManager.Player);
     }
 }
Example #26
0
 private static void Game_OnWndProc(WndEventArgs args)
 {
     if (args.Msg != (uint) WindowMessages.KeyDown) return;
     // Work around of getting
     const uint escapeKey = (uint)'1';
     if (escapeKey != args.WParam) return;
     Chat.Print("Lel");
     _keyPressed = Environment.TickCount;
 }
Example #27
0
 private static void Game_OnWndProc(WndEventArgs args)
 {
     if (args.WParam != 'V' || Game.IsChatOpen || args.Msg == (ulong)Utils.WindowsMessages.WM_KEYUP)
     {
         return;
     }
     Drop = true;
     Game.ExecuteCommand(string.Format("dota_player_units_auto_attack_after_spell {0}",Drop?0:1));
     //PrintInfo(Drop.ToString());
 }
Example #28
0
 private void Game_OnWndProc(WndEventArgs args)
 {
     if (args.WParam == 16)
     {
         Config.Item("Wgold", true).Show(Config.Item("Wmode", true).GetValue<StringList>().SelectedIndex == 1);
         Config.Item("Wblue", true).Show(Config.Item("Wmode", true).GetValue<StringList>().SelectedIndex == 1);
         Config.Item("Wred", true).Show(Config.Item("Wmode", true).GetValue<StringList>().SelectedIndex == 1);
         Config.Item("harasW", true).Show(Config.Item("Wmode", true).GetValue<StringList>().SelectedIndex == 0);
     }
 }
Example #29
0
 private static void Game_OnWndProc(WndEventArgs args)
 {
     if (args.Msg == (uint)WindowMessages.LeftButtonDown)
     {
         var target = EloBuddy.SDK.TargetSelector.GetTarget(200f, damageType, Util.MousePos);
         if (target.IsValidTarget())
         {
             ForcedTarget = target;
         }
     }
 }
Example #30
0
        static void Game_OnWndProc(WndEventArgs args)
        {
            if (MenuGUI.IsChatOpen)
                return;

            if (args.Msg == (uint)WindowsMessages.WM_RBUTTONDOWN)
            {
                CursorMove.Position = Utils.GetCursorPos();
                CursorAttack.Position = Utils.GetCursorPos();
            }
        }
Example #31
0
        private void OnWndProc(WndEventArgs args)
        {
            //F**k this shit.
            return;

            if (HudVariables.CurrentStatus != SpriteStatus.Expanded || !HudVariables.ShouldBeVisible || HudVariables.IsDragging)
            {
                return;
            }
            //Console.WriteLine("B4 : " + this.X + " "+ this.Y);
            if (this.IsDragging)
            {
                this.DraggingPosition.X = (int)(Utils.GetCursorPos().X - XDistanceFromEdge);
                this.DraggingPosition.Y = (int)(Utils.GetCursorPos().Y - YDistanceFromEdge);
                this.X = (int)this.DraggingPosition.X;
                this.Y = (int)this.DraggingPosition.Y;
            }

            if (Helper.IsInside(Utils.GetCursorPos(), (int)this.Position.X, (int)this.Position.Y, this.Width, this.Height) && args.Msg == (uint)WindowsMessages.WM_LBUTTONDOWN)
            {
                if (!this.IsDragging)
                {
                    if (InitialDragPoint == new Vector2())
                    {
                        InitialDragPoint = new Vector2(
                            HudVariables.CurrentPosition.X + this.X,
                            HudVariables.CurrentPosition.Y + HudVariables.CroppedHeight + this.Y);

                        XDistanceFromEdge = Math.Abs(InitialDragPoint.X - Utils.GetCursorPos().X);
                        YDistanceFromEdge = Math.Abs(InitialDragPoint.Y - Utils.GetCursorPos().Y);

                        this.DraggingPosition.X = (int)(Utils.GetCursorPos().X - XDistanceFromEdge);
                        this.DraggingPosition.Y = (int)(Utils.GetCursorPos().Y - YDistanceFromEdge);
                    }

                    this.IsDragging = true;
                }
            }
            else if (this.IsDragging && args.Msg == (uint)WindowsMessages.WM_LBUTTONUP)
            {
                this.IsDragging = false;
                if (IsInside(new Vector2(this.X, this.Y)))
                {
                    Inside = true;
                    var position  = new Vector2(this.X, this.Y);
                    var distanceX = position.X - InitialDragPoint.X;
                    var distanceY = position.Y - InitialDragPoint.Y;
                    this.X = (int)distanceX;
                    this.Y = (int)distanceY;
                    Console.WriteLine("X: {0} Y: {1}", this.X, this.Y);
                }
                else
                {
                    Inside = false;
                }

                InitialDragPoint      = new Vector2();
                XDistanceFromEdge     = 0;
                YDistanceFromEdge     = 0;
                this.DraggingPosition = new Vector2();
                //Console.WriteLine("After : " + this.X + " "+ this.Y);
            }
        }
Example #32
0
        private void Game_OnWndProc(WndEventArgs args)
        {
            if (Program.AIOmode == 2)
            {
                return;
            }
            if (Config.Item("spellFarm") == null || Config.Item("spellFarmMode").GetValue <StringList>().SelectedIndex == 3)
            {
                return;
            }

            if ((Config.Item("spellFarmMode").GetValue <StringList>().SelectedIndex == 0 && args.Msg == 0x20a) ||
                (Config.Item("spellFarmMode").GetValue <StringList>().SelectedIndex == 1 && args.Msg == 520)
                )
            {
                if (!Config.Item("spellFarm").GetValue <bool>())
                {
                    Config.Item("spellFarm").SetValue <bool>(true);
                    spellFarmTimer = Game.Time;

                    if (Config.Item("farmQ", true) != null)
                    {
                        Config.Item("farmQ", true).SetValue <bool>(true);
                    }

                    if (Config.Item("farmW", true) != null)
                    {
                        Config.Item("farmW", true).SetValue <bool>(true);
                    }

                    if (Config.Item("farmE", true) != null)
                    {
                        Config.Item("farmE", true).SetValue <bool>(true);
                    }

                    if (Config.Item("farmR", true) != null)
                    {
                        Config.Item("farmR", true).SetValue <bool>(true);
                    }
                }
                else
                {
                    Config.Item("spellFarm").SetValue <bool>(false);
                    spellFarmTimer = Game.Time;

                    if (Config.Item("farmQ", true) != null)
                    {
                        Config.Item("farmQ", true).SetValue <bool>(false);
                    }

                    if (Config.Item("farmW", true) != null)
                    {
                        Config.Item("farmW", true).SetValue <bool>(false);
                    }

                    if (Config.Item("farmE", true) != null)
                    {
                        Config.Item("farmE", true).SetValue <bool>(false);
                    }

                    if (Config.Item("farmR", true) != null)
                    {
                        Config.Item("farmR", true).SetValue <bool>(false);
                    }
                }
            }
        }
Example #33
0
 private void Game_OnWndProc(WndEventArgs args)
 {
     lonedruidsharp.OnWndProc(args);
 }
Example #34
0
        private void OnGameWndProc(WndEventArgs args)
        {
            try
            {
                if (!Menu.Item(Name + "Clickable").GetValue <bool>())
                {
                    return;
                }

                var index = 0;

                var hudWidth  = (float)Math.Ceiling(HudWidth * _scale);
                var hudHeight = (float)Math.Ceiling(HudHeight * _scale);

                var spacing =
                    (float)
                    Math.Ceiling((10f + Menu.Item(Menu.Name + "DrawingSpacing").GetValue <Slider>().Value) * _scale) +
                    hudHeight;

                var offsetTop   = Menu.Item(Menu.Name + "DrawingOffsetTop").GetValue <Slider>().Value + hudHeight / 2;
                var offsetRight = Drawing.Width - Menu.Item(Menu.Name + "DrawingOffsetRight").GetValue <Slider>().Value -
                                  (hudWidth + (float)Math.Ceiling(4 * _scale)) / 2f;

                if (args.Msg == (uint)WindowsMessages.WM_RBUTTONUP ||
                    args.Msg == (uint)WindowsMessages.WM_LBUTTONDBLCLK)
                {
                    var pos = Utils.GetCursorPos();
                    foreach (var enemy in _enemyObjects)
                    {
                        var offset = spacing * index;
                        if (args.Msg == (uint)WindowsMessages.WM_LBUTTONDBLCLK)
                        {
                            var spellData = _spellDatas[enemy.Unit.NetworkId];
                            for (var i = 0; spellData.Count > i; i++)
                            {
                                var spell = spellData[i];
                                if (spell != null)
                                {
                                    if (Utils.IsUnderRectangle(
                                            pos, offsetRight + hudWidth * 0.359f - SummonerWidth / 2f,
                                            offsetTop - hudHeight * 0.28f + offset + (float)Math.Ceiling(26 * _scale) * i -
                                            SummonerHeight / 2f, SummonerWidth, SummonerHeight))
                                    {
                                        var teleportCd = 0f;
                                        if (spell.Name.Contains("Teleport", StringComparison.OrdinalIgnoreCase) &&
                                            _teleports.ContainsKey(enemy.Unit.NetworkId))
                                        {
                                            _teleports.TryGetValue(enemy.Unit.NetworkId, out teleportCd);
                                        }
                                        var time = (teleportCd > 0.1f ? teleportCd : spell.CooldownExpires) - Game.Time;
                                        if (time > 0 && Environment.TickCount > _lastChatSend + 1500)
                                        {
                                            _lastChatSend = Environment.TickCount;
                                            var sName = ReadableSummonerName(spell.Name);
                                            Game.Say(
                                                string.Format(
                                                    "{0} {1} {2}", enemy.Unit.ChampionName, sName,
                                                    ((float)(Math.Round(time * 2f, MidpointRounding.AwayFromZero) / 2f))
                                                    .FormatTime()));
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            if (enemy.Unit.IsVisible && !enemy.Unit.IsDead &&
                                Utils.IsUnderRectangle(
                                    pos, offsetRight - hudWidth / 2f + hudWidth * 0.1f,
                                    offsetTop + offset - hudHeight / 2f, hudWidth, hudHeight))
                            {
                                ObjectManager.Player.IssueOrder(GameObjectOrder.MoveTo, enemy.Unit);
                            }
                        }
                        index++;
                    }
                }
            }
            catch (Exception ex)
            {
                Global.Logger.AddItem(new LogItem(ex));
            }
        }