示例#1
0
        public override void Execute()
        {
            PlayerMobile player = Engine.Player;

            if (player == null)
            {
                UOC.SystemMessage(Strings.Error__No_Player);
                return;
            }

            Item backpack = player.Backpack;

            if (backpack == null)
            {
                UOC.SystemMessage(Strings.Error__Cannot_find_player_backpack);
                return;
            }

            Item bandage = backpack.Container?.SelectEntity(i => _bandageTypes.Contains(i.ID));

            if (bandage == null)
            {
                UOC.SystemMessage(Strings.Error__Cannot_find_type);
                return;
            }

            ObjectCommands.UseObject(bandage.Serial);
            bool result = UOC.WaitForTarget(TIMEOUT);

            if (result)
            {
                Engine.SendPacketToServer(new Target(-1, player, true));
            }
        }
        public void WillSendUseObjectPacket()
        {
            AutoResetEvent are = new AutoResetEvent(false);

            void InternalPacketSentEvent(byte[] data, int length)
            {
                if (data[0] != 0x06)
                {
                    Assert.Fail();
                }

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

                Assert.AreEqual(0x40000001, serial);

                are.Set();
            }

            Engine.InternalPacketSentEvent += InternalPacketSentEvent;

            Engine.Items.Add(new Item(0x40000001));

            AliasCommands.SetAlias("item", 0x40000001);

            ObjectCommands.UseObject("item");

            bool result = are.WaitOne(5000);

            Assert.IsTrue(result);

            Engine.InternalPacketSentEvent -= InternalPacketSentEvent;
            Engine.Items.Clear();
            AliasCommands.UnsetAlias("item");
        }
示例#3
0
        public override void Execute()
        {
            int serial = Engine.Player?.LastObjectSerial ?? 0;

            if (serial != 0)
            {
                ObjectCommands.UseObject(serial);
            }
        }
示例#4
0
        public static void UseHand(Layer layer)
        {
            PlayerMobile player = Engine.Player;

            if (player == null)
            {
                return;
            }

            int serial = player.GetLayer(layer);

            if (serial == 0)
            {
                UOC.SystemMessage(Strings.Invalid_layer_value___);
                return;
            }

            ObjectCommands.UseObject(serial);
        }