Пример #1
0
        public void HandlePacket(GameClient client, GSPacketIn packet)
        {
            byte isok    = (byte)packet.ReadByte();
            byte repair  = (byte)packet.ReadByte();
            byte combine = (byte)packet.ReadByte();

            packet.ReadByte();            //unknow

            ITradeWindow trade = client.Player.TradeWindow;

            if (trade == null)
            {
                return;
            }
            if (isok == 0)
            {
                trade.CloseTrade();
            }
            else if (isok == 1)
            {
                if (trade.Repairing != (repair == 1))
                {
                    trade.Repairing = (repair == 1);
                }
                if (trade.Combine != (combine == 1))
                {
                    trade.Combine = (combine == 1);
                }

                ArrayList tradeSlots = new ArrayList(10);
                for (int i = 0; i < 10; i++)
                {
                    int           slotPosition = packet.ReadByte();
                    InventoryItem item         = client.Player.Inventory.GetItem((eInventorySlot)slotPosition);
                    if (item != null && ((item.IsDropable && item.IsTradable) || (client.Player.CanTradeAnyItem || client.Player.TradeWindow.Partner.CanTradeAnyItem)))
                    {
                        tradeSlots.Add(item);
                    }
                }
                trade.TradeItems = tradeSlots;

                packet.ReadShort();

                int[] tradeMoney = new int[5];
                for (int i = 0; i < 5; i++)
                {
                    tradeMoney[i] = packet.ReadShort();
                }

                long money = Money.GetMoney(tradeMoney[0], tradeMoney[1], tradeMoney[2], tradeMoney[3], tradeMoney[4]);
                trade.TradeMoney = money;

                trade.TradeUpdate();
            }
            else if (isok == 2)
            {
                trade.AcceptTrade();
            }
        }
Пример #2
0
 /// <summary>
 /// 商品とウィンドウを設定します
 /// </summary>
 /// <param name="item">商品</param>
 /// <param name="window">親となるウィンドウ</param>
 public void setGoods(IItem item, int itemValue, ITradeWindow window)
 {
     this.item = item;
     name.text = this.item.getName();
     //かり
     value.text  = "" + itemValue;
     this.window = window;
 }