コード例 #1
0
        public void ClickObjectWillSendPacket()
        {
            AutoResetEvent are = new AutoResetEvent(false);

            void OnInternalPacketSentEvent(byte[] data, int length)
            {
                if (data[0] != 0x09)
                {
                    return;
                }

                int serial = (data[1] << 24) | (data[2] << 16) | (data[3] << 8) | data[4];

                Assert.AreEqual(0x00aabbcc, serial);

                are.Set();
            }

            Engine.InternalPacketSentEvent += OnInternalPacketSentEvent;

            AliasCommands.SetAlias("thing", 0x00aabbcc);
            ActionCommands.ClickObject("thing");

            bool result = are.WaitOne(5000);

            Assert.IsTrue(result);

            Engine.InternalPacketSentEvent -= OnInternalPacketSentEvent;
            Engine.Player = null;
        }
コード例 #2
0
        public void MoveItemWillSendDragPacket()
        {
            AutoResetEvent are = new AutoResetEvent(false);

            void OnInternalPacketSentEvent(byte[] data, int length)
            {
                if (data[0] != 0x07)
                {
                    return;
                }

                int serial = (data[1] << 24) | (data[2] << 16) | (data[3] << 8) | data[4];

                Assert.AreEqual(0x00aabbcc, serial);

                are.Set();
            }

            Engine.InternalPacketSentEvent += OnInternalPacketSentEvent;

            Engine.Items.Add(new Item(0x00aabbcc)
            {
                Count = 50
            });

            ActionCommands.MoveItem(0x00aabbcc, 0xaabbdd);

            bool result = are.WaitOne(5000);

            Assert.IsTrue(result);

            Engine.InternalPacketSentEvent -= OnInternalPacketSentEvent;
        }
コード例 #3
0
        public void ClearHandsWillSendDragPacket()
        {
            AutoResetEvent are = new AutoResetEvent(false);

            void OnInternalPacketSentEvent(byte[] data, int length)
            {
                if (data[0] != 0x07)
                {
                    return;
                }

                int serial = (data[1] << 24) | (data[2] << 16) | (data[3] << 8) | data[4];

                Assert.AreEqual(0x00aabbcc, serial);

                are.Set();
            }

            Engine.InternalPacketSentEvent += OnInternalPacketSentEvent;

            Engine.Player = new PlayerMobile(0x01);
            Engine.Player.SetLayer(Layer.OneHanded, 0x00aabbcc);

            ActionCommands.ClearHands("left");

            bool result = are.WaitOne(5000);

            Assert.IsTrue(result);

            Engine.InternalPacketSentEvent -= OnInternalPacketSentEvent;
            Engine.Player = null;
        }
コード例 #4
0
        public void RenameWillSendRenamePacket()
        {
            AutoResetEvent are = new AutoResetEvent(false);

            void OnInternalPacketSentEvent(byte[] data, int length)
            {
                int serial = (data[1] << 24) | (data[2] << 16) | (data[3] << 8) | data[4];

                Assert.AreEqual(0x00aabbcc, serial);

                string name = Encoding.ASCII.GetString(data, 5, 30).TrimEnd('\0');

                Assert.AreEqual("Snorlax", name);

                are.Set();
            }

            Engine.InternalPacketSentEvent += OnInternalPacketSentEvent;

            ActionCommands.Rename(0x00aabbcc, "Snorlax");

            bool result = are.WaitOne(5000);

            Assert.IsTrue(result);

            Engine.InternalPacketSentEvent -= OnInternalPacketSentEvent;
        }
コード例 #5
0
        public void AttackWillSendAttackPacket()
        {
            AutoResetEvent are = new AutoResetEvent(false);

            void OnInternalPacketSentEvent(byte[] data, int length)
            {
                if (data[0] != 0x05)
                {
                    return;
                }

                int serial = (data[1] << 24) | (data[2] << 16) | (data[3] << 8) | data[4];

                Assert.AreEqual(0x00aabbcc, serial);

                are.Set();
            }

            Engine.InternalPacketSentEvent += OnInternalPacketSentEvent;

            ActionCommands.Attack(0x00aabbcc);

            bool result = are.WaitOne(5000);

            Assert.IsTrue(result);

            Engine.InternalPacketSentEvent -= OnInternalPacketSentEvent;
        }
コード例 #6
0
 public AdminMenu(SodaMachine machine)
     : base(machine, "Stocker Menu")
 {
     ActionCommands.Add(new ActionCommand(Commands.NameItems, HandleNameItem));
     ActionCommands.Add(new ActionCommand(Commands.AdjustQuantity, HandleAdjustQuantity));
     ActionCommands.Add(new ActionCommand(Commands.ViewInventory, HandlePrintInventory));
     ActionCommands.Add(new ActionCommand(Commands.ViewMachineBalance, HandleViewBalance));
     ActionCommands.Add(ActionCommandFactory.CreateQuitToPreviousMenuCommand(QuitToPreviousMenu));
 }
コード例 #7
0
        public MainMenu(SodaMachine machine)
            : base(machine, "Main Menu")
        {
            ActionCommands.Add(new ActionCommand(Commands.StockerMenu, NavigateToAdminMenu));
            ActionCommands.Add(new ActionCommand(Commands.AddMoney, HandleAddMoney));
            ActionCommands.Add(new ActionCommand(Commands.PrintCustomerBalance, HandlePrintCustomerBalance));
            ActionCommands.Add(new ActionCommand(Commands.ViewProductList, HandleViewProductList));
            ActionCommands.Add(new ActionCommand(Commands.ChooseItem, HandleBuyAnItem));
            ActionCommands.Add(new ActionCommand(Commands.ReturnChange, HandleReturnChange));

            ActionCommands.Add(ActionCommandFactory.CreateQuitToPreviousMenuCommand(Quit));
        }
コード例 #8
0
        public void WillFindLayer()
        {
            Engine.Player = new PlayerMobile(1);
            Engine.Player.SetLayer(Layer.OneHanded, 0x40000001);
            AliasCommands.SetAlias("self", Engine.Player.Serial);

            Assert.IsTrue(ActionCommands.FindLayer("OneHanded"));
            Assert.IsFalse(ActionCommands.FindLayer("TwoHanded"));

            AliasCommands.UnsetAlias("self");
            Engine.Player = null;
        }
コード例 #9
0
        public void FeedWillSendDragPacket()
        {
            PlayerMobile player   = new PlayerMobile(0x01);
            Item         backpack = new Item(0x02)
            {
                Container = new ItemCollection(0x02)
                {
                    new Item(0x00aabbcc)
                    {
                        ID = 0xff, Count = 1
                    }
                },
                Owner = 0x01,
                Layer = Layer.Backpack
            };

            player.SetLayer(Layer.Backpack, 0x02);

            Engine.Player = player;
            Engine.Items.Add(backpack);

            AutoResetEvent are = new AutoResetEvent(false);

            void OnInternalPacketSentEvent(byte[] data, int length)
            {
                if (data[0] != 0x07)
                {
                    return;
                }

                int serial = (data[1] << 24) | (data[2] << 16) | (data[3] << 8) | data[4];

                Assert.AreEqual(0x00aabbcc, serial);

                are.Set();
            }

            Engine.InternalPacketSentEvent += OnInternalPacketSentEvent;

            ActionCommands.Feed(0x01, 0xff);

            bool result = are.WaitOne(5000);

            Assert.IsTrue(result);

            Engine.InternalPacketSentEvent -= OnInternalPacketSentEvent;

            Engine.Items.Clear();
            Engine.Player = null;
        }
コード例 #10
0
        public void EquipTypeWillSendDragPacket()
        {
            Item backpack = new Item(0x40000000)
            {
                Owner = 1, Container = new ItemCollection(0x40000000)
            };

            Engine.Player = new PlayerMobile(1)
            {
                Equipment = { backpack }
            };
            Engine.Player.SetLayer(Layer.Backpack, backpack.Serial);
            Engine.Items.Add(backpack);

            Item item = new Item(0x40000001, backpack.Serial)
            {
                ID = 0xff
            };

            backpack.Container.Add(item);

            AutoResetEvent are = new AutoResetEvent(false);

            void OnInternalPacketSentEvent(byte[] data, int length)
            {
                if (data[0] != 0x07)
                {
                    return;
                }

                int serial = (data[1] << 24) | (data[2] << 16) | (data[3] << 8) | data[4];

                Assert.AreEqual(item.Serial, serial);

                are.Set();
            }

            Engine.InternalPacketSentEvent += OnInternalPacketSentEvent;

            ActionCommands.EquipType(item.ID, Layer.OneHanded);

            bool result = are.WaitOne(5000);

            Assert.IsTrue(result);

            Engine.InternalPacketSentEvent -= OnInternalPacketSentEvent;
            Engine.Player = null;
            Engine.Items.Clear();
        }
コード例 #11
0
        public void ShowNamesWillSendLookRequest()
        {
            PlayerMobile player = new PlayerMobile(0x01);
            Mobile       mobile = new Mobile(0x00aabbcc);

            Engine.Player = player;
            Engine.Mobiles.Add(mobile);

            AutoResetEvent are = new AutoResetEvent(false);

            void OnInternalPacketSentEvent(byte[] data, int length)
            {
                Assert.AreEqual(0x09, data[0]);

                int serial = (data[1] << 24) | (data[2] << 16) | (data[3] << 8) | data[4];

                Assert.AreEqual(0x00aabbcc, serial);

                are.Set();
            }

            Engine.InternalPacketSentEvent += OnInternalPacketSentEvent;

            ActionCommands.ShowNames("mobiles");

            bool result = are.WaitOne(5000);

            Assert.IsTrue(result);

            Engine.Mobiles.Remove(mobile);

            Engine.Items.Add(new Item(0x00aabbcc)
            {
                ID = 0x2006
            });

            ActionCommands.ShowNames("corpses");

            result = are.WaitOne(5000);

            Assert.IsTrue(result);

            Engine.InternalPacketSentEvent -= OnInternalPacketSentEvent;
            Engine.Player = null;
            Engine.Mobiles.Clear();
            Engine.Items.Clear();
        }
コード例 #12
0
    public void ExecCommand(ActionCommands action)
    {
        switch (action)
        {
        case ActionCommands.ToggleToolbar:
            ToggleToolbar();
            break;

        case ActionCommands.RestoreScene:
            ProjectionExample.Instance.RestoreScene();
            break;

        case ActionCommands.ForgetScene:
            ProjectionExample.Instance.ForgetScene();
            break;

        case ActionCommands.AnalyzeScene:
            ProjectionExample.Instance.StartDetection();
            break;

        default:
            break;
        }
    }
コード例 #13
0
 public override void Execute()
 {
     ActionCommands.EquipLastWeapon();
 }
コード例 #14
0
 public override void Execute()
 {
     ActionCommands.Attack("enemy");
 }
コード例 #15
0
 public override void Execute()
 {
     ActionCommands.Attack("last");
 }
コード例 #16
0
ファイル: ToggleMounted.cs プロジェクト: wverri/ClassicAssist
 public override void Execute()
 {
     ActionCommands.ToggleMounted();
 }