예제 #1
0
 public static void SendItemToTradePushedResponse(IRealmClient client, Asda2PushItemToTradeStatus status, Asda2ItemTradeRef item = null)
 {
     using (var packet = new RealmPacketOut(RealmServerOpCode.ItemToTradePushed))                   //5289
     {
         packet.WriteByte((byte)status);                                                            //{status}default value : 1 Len : 1
         packet.WriteByte((byte)(item == null || item.Item == null ? 0 : item.Item.InventoryType)); //{inv}default value : 2 Len : 1
         packet.WriteInt16(item == null || item.Item == null ? 0 : item.Item.Slot);                 //{cell}default value : 2 Len : 2
         packet.WriteInt32(item == null || item.Item == null ? 0 : item.Amount);                    //{quanity}default value : 5 Len : 4
         client.Send(packet, addEnd: false);
     }
 }
예제 #2
0
 public static void SendItemToTradePushedResponse(IRealmClient client, Asda2PushItemToTradeStatus status,
                                                  Asda2ItemTradeRef item = null)
 {
     using (RealmPacketOut packet = new RealmPacketOut(RealmServerOpCode.ItemToTradePushed))
     {
         packet.WriteByte((byte)status);
         packet.WriteByte(item == null || item.Item == null ? (byte)0 : (byte)item.Item.InventoryType);
         packet.WriteInt16(item == null || item.Item == null ? 0 : item.Item.Slot);
         packet.WriteInt32(item == null || item.Item == null ? 0 : item.Amount);
         client.Send(packet, false);
     }
 }
예제 #3
0
        public static void PushItemToTradeRequest(IRealmClient client, RealmPacketIn packet)
        {
            packet.Position += 5;
            byte  invNum   = packet.ReadByte();
            short cellNum  = packet.ReadInt16();
            int   quantity = packet.ReadInt32();

            if (client.ActiveCharacter.Asda2TradeWindow == null)
            {
                client.ActiveCharacter.YouAreFuckingCheater("Trying to push items to trade while not trading", 0);
            }
            else
            {
                Asda2ItemTradeRef          asda2ItemTradeRef = null;
                Asda2PushItemToTradeStatus trade             =
                    client.ActiveCharacter.Asda2TradeWindow.PushItemToTrade(client.ActiveCharacter, cellNum, quantity,
                                                                            invNum, ref asda2ItemTradeRef);
                SendItemToTradePushedResponse(client, trade, asda2ItemTradeRef);
            }
        }