예제 #1
0
        protected override void SetupBehaviour()
        {
            EventManager.On(HWnd, "PlayerTransformChanged", (Event ev) =>
            {
                if (TargetLocation != null && !_isInCombat && !Paused && CorpseTransform == null)
                {
                    _enemyTargettingCommander.Update();
                }
            });

            EventManager.On(HWnd, "KeyPressRequested", (Event ev) =>
            {
                var keyRequest = (KeyPressRequest)ev.Data;

                if (keyRequest.ModifierKey == Keys.LShiftKey && keyRequest.Key == Keys.D4)
                {
                    KeyHandler.PressKey(Keys.Tab);
                    return;
                }

                if (keyRequest.ModifierKey != Keys.None)
                {
                    KeyHandler.ModifiedKeypress(keyRequest.ModifierKey, keyRequest.Key);
                }
                else
                {
                    KeyHandler.PressKey(keyRequest.Key);
                }
            });

            EventManager.On(HWnd, "TooFarAway", (Event _) =>
            {
                KeyHandler.PressKey(Keys.Tab);
            });
        }
예제 #2
0
        protected override void SetupBehaviour()
        {
            EventManager.On(HWnd, "PlayerTransformChanged", (Event _) =>
            {
                if (TargetLocation != null && !_isInCombat && !Paused && CorpseTransform == null)
                {
                    _enemyTargettingCommander.Update();
                }
            });

            EventManager.On(HWnd, "DeathChanged", (Event ev) =>
            {
                if ((bool)ev.Data)
                {
                    _isAlive = false;
                    Task.Run(() =>
                    {
                        Thread.Sleep(6000);
                        KeyHandler.PressKey(Keys.F8);
                        while (!_isAlive)
                        {
                            KeyHandler.PressKey(Keys.F8);
                            Thread.Sleep(1000);
                        }
                    });
                }
                else
                {
                    _isAlive = true;
                }
            });

            EventManager.On(HWnd, "CombatChanged", (Event ev) =>
            {
                _isInCombat = (bool)ev.Data;
                Console.WriteLine("Combat: " + _isInCombat);
                if (_isInCombat)
                {
                    PauseMovement();
                    Task.Run(() => {
                        Thread.Sleep(3000);
                        RunTargetSwitchHandler();
                    });
                    return;
                }

                _lootingCommander.Loot(() => {
                    if (!_isInCombat)
                    {
                        ResumeMovement();
                    }
                });
            });

            EventManager.On(HWnd, "KeyPressRequested", (Event ev) =>
            {
                var keyRequest = (KeyPressRequest)ev.Data;

                if (keyRequest.ModifierKey != Keys.None)
                {
                    KeyHandler.ModifiedKeypress(keyRequest.ModifierKey, keyRequest.Key);
                }
                else
                {
                    if (keyRequest.Key == Keys.D9)
                    {
                        if (_initialResting)
                        {
                            _initialResting = false;
                            KeyHandler.PressKey(keyRequest.Key);
                        }

                        if (_restingTask != null)
                        {
                            _restingTask.Abort();
                        }

                        _restingTask = new Thread(() =>
                        {
                            PauseMovement();
                            Thread.Sleep(3500);
                            if (!_isInCombat)
                            {
                                _initialResting = true;
                                ResumeMovement();
                            }
                        });
                        _restingTask.Start();
                    }
                    else
                    {
                        KeyHandler.PressKey(keyRequest.Key);
                    }
                }

                if (_isInCombat)
                {
                    _timeSinceLastAttackInCombat = DateTime.Now;
                }
            });

            EventManager.On(HWnd, "WrongFacing", (Event _) =>
            {
                PauseMovement();
                KeyHandler.PressKey(Keys.S, 1500);
            });

            EventManager.On(HWnd, "TooFarAway", (Event _) =>
            {
                KeyHandler.PressKey(Keys.Tab);
            });
        }