示例#1
0
        public UpdateSecureTrade(Container cont, TradeFlag flag, int first, int second)
            : base(0x6F)
        {
            EnsureCapacity(17);

            Stream.Write((byte)flag);
            Stream.Write(cont.Serial);
            Stream.Write(first);
            Stream.Write(second);
        }
        public void TestUpdateGoldSecureTrade(int gold, int plat, TradeFlag flag)
        {
            var cont     = new Container(World.NewItem);
            var expected = new UpdateSecureTrade(cont, flag, gold, plat).Compile();

            using var ns = PacketTestUtilities.CreateTestNetState();
            ns.SendUpdateSecureTrade(cont, flag, gold, plat);

            var result = ns.SendPipe.Reader.TryRead();

            AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
        }
示例#3
0
        public void TestUpdateGoldSecureTrade(int gold, int plat, TradeFlag flag)
        {
            var cont = new Container(Serial.LastItem + 1);
            var data = new UpdateSecureTrade(cont, flag, gold, plat).Compile();

            Span <byte> expectedData = stackalloc byte[16];
            var         pos          = 0;

            expectedData.Write(ref pos, (byte)0x6F);   // Packet ID
            expectedData.Write(ref pos, (ushort)0x10); // Length
            expectedData.Write(ref pos, (byte)flag);   // Command
            expectedData.Write(ref pos, cont.Serial);
            expectedData.Write(ref pos, gold);
            expectedData.Write(ref pos, plat);

            AssertThat.Equal(data, expectedData);
        }
        public static void SendUpdateSecureTrade(this NetState ns, Container cont, TradeFlag flag, int first, int second)
        {
            if (ns == null || !ns.GetSendBuffer(out var buffer))
            {
                return;
            }

            var writer = new CircularBufferWriter(buffer);

            writer.Write((byte)0x6F); // Packet ID
            writer.Write((ushort)16); // Length
            writer.Write((byte)flag);
            writer.Write(cont.Serial);
            writer.Write(first);
            writer.Write(second);

            ns.Send(ref buffer, writer.Position);
        }
        public static void SendUpdateSecureTrade(this NetState ns, Container cont, TradeFlag flag, int first, int second)
        {
            if (ns == null)
            {
                return;
            }

            var writer = new SpanWriter(stackalloc byte[16]);

            writer.Write((byte)0x6F); // Packet ID
            writer.Write((ushort)16); // Length
            writer.Write((byte)flag);
            writer.Write(cont.Serial);
            writer.Write(first);
            writer.Write(second);

            ns.Send(writer.Span);
        }
示例#6
0
        public void TestUpdateGoldSecureTrade(int gold, int plat, TradeFlag flag)
        {
            var         cont         = new Container(Serial.LastItem + 1);
            Span <byte> data         = new UpdateSecureTrade(cont, flag, gold, plat).Compile();
            Span <byte> expectedData = stackalloc byte[]
            {
                0x6F,                   // Packet ID
                0x00, 0x10,             // Length
                (byte)flag,             // Command
                0x00, 0x00, 0x00, 0x00, // Container Serial
                0x00, 0x00, 0x00, 0x00, // Gold
                0x00, 0x00, 0x00, 0x00  // Platinum
            };

            int pos = 4;

            cont.Serial.CopyTo(ref pos, expectedData);
            gold.CopyTo(ref pos, expectedData);
            plat.CopyTo(ref pos, expectedData);

            AssertThat.Equal(data, expectedData);
        }
示例#7
0
		public UpdateSecureTrade(Container cont, TradeFlag flag, int first, int second)
			: base(0x6F)
		{
			EnsureCapacity(17);

			m_Stream.Write((byte)flag);
			m_Stream.Write(cont.Serial);
			m_Stream.Write(first);
			m_Stream.Write(second);
		}