Ejemplo n.º 1
0
        private void _sharedTradeDataProcess(OldPacket pkt, TradeUpdateEvent handler)
        {
            if (handler == null)
            {
                return;
            }

            short player1ID = pkt.GetShort();
            List <InventoryItem> player1Items = new List <InventoryItem>();

            while (pkt.PeekByte() != 255)
            {
                player1Items.Add(new InventoryItem(pkt.GetShort(), pkt.GetInt()));
            }
            pkt.Skip(1);

            short player2ID = pkt.GetShort();
            List <InventoryItem> player2Items = new List <InventoryItem>();

            while (pkt.PeekByte() != 255)
            {
                player2Items.Add(new InventoryItem(pkt.GetShort(), pkt.GetInt()));
            }
            pkt.Skip(1);

            handler(player1ID, player1Items, player2ID, player2Items);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Handles SHOP_OPEN from server, contains shop data for a shop dialog
        /// </summary>
        private void _handleShopOpen(OldPacket pkt)
        {
            if (OnShopOpen == null)
            {
                return;
            }

            int    shopKeeperID = pkt.GetShort();
            string shopName     = pkt.GetBreakString();

            List <ShopItem> tradeItems = new List <ShopItem>();

            while (pkt.PeekByte() != 255)
            {
                ShopItem nextItem = new ShopItem(pkt.GetShort(), pkt.GetThree(), pkt.GetThree(), pkt.GetChar());
                tradeItems.Add(nextItem);
            }
            pkt.GetByte();

            List <CraftItem> craftItems = new List <CraftItem>();

            while (pkt.PeekByte() != 255)
            {
                int ID = pkt.GetShort();
                List <Tuple <int, int> > ingreds = new List <Tuple <int, int> >();

                for (int i = 0; i < 4; ++i)
                {
                    ingreds.Add(new Tuple <int, int>(pkt.GetShort(), pkt.GetChar()));
                }
                craftItems.Add(new CraftItem(ID, ingreds));
            }
            pkt.GetByte();

            OnShopOpen(shopKeeperID, shopName, tradeItems, craftItems);
        }