Пример #1
0
        private void OnRecvSellGold(IChannel channel, Message message)
        {
            Console.WriteLine("OnRecvSellGold");
            CSellGold request = message as CSellGold;
            Player    player  = (Player)channel.GetContent();
            ConnectDB connect = new ConnectDB();
            int       result;

            string goodsName  = request.goods;
            string playerName = player.user;
            int    goodPrice  = request.price;

            // delete from package
            result = connect.DBDeleteFromPackage(playerName, goodsName);
            if (result == 0)
            {
                Console.WriteLine("delete gold goods from package failure");
            }

            // add to mall
            DTreasureMall tmp = new DTreasureMall()
            {
                ownerName = playerName, price = goodPrice, isGold = true
            };

            backMall.Add(goodsName, tmp);
            result = connect.DBAddToMall(goodsName, playerName, true, goodPrice);
            if (result == 0)
            {
                Console.WriteLine("add gold goods to mall failure");
            }
        }
Пример #2
0
    public void SellGoods()
    {
        if (itemName != null)
        {
            price_ = int.Parse(price.text);
            if (price_ < 0)
            {
                MessageBox.Show("Input text must > 0!");
                return;
            }

            if (isMall)
            {
                if (price_ > TreasureInfo.playerTreasure[itemName].number)
                {
                    MessageBox.Show("You do not have so many treasure!");
                    return;
                }

                CSellSilver msg = new CSellSilver();
                // sell back to mall, remove treasure from package and add silverCoin number
                PlayerInfo.SilverNum += price_ * TreasureInfo.treasureMall[itemName].price;
                msg.silverCoin        = PlayerInfo.SilverNum;
                msg.goods             = itemName;

                if (TreasureInfo.playerTreasure[itemName].number > price_)
                {
                    TreasureInfo.playerTreasure[itemName].number -= price_;
                    msg.sellAll   = false;
                    msg.remainNum = TreasureInfo.playerTreasure[itemName].number;
                }
                else
                {
                    TreasureInfo.playerTreasure.Remove(itemName);
                    msg.sellAll = true;
                }

                // send message
                MyNetwork.Send(msg);
            }
            else
            {
                // gold treasures, remove treasure from package and add to mall
                TreasureInfo.playerTreasure.Remove(itemName);
                TreasureMall tmp = new TreasureMall()
                {
                    ownerName = PlayerInfo.name,
                    price     = price_,
                    isGold    = true
                };
                TreasureInfo.treasureMall.Add(itemName, tmp);

                // send message
                CSellGold msg2 = new CSellGold()
                {
                    goods = itemName,
                    price = price_
                };
                MyNetwork.Send(msg2);
            }
        }

        if (packageHandler != null)
        {
            packageHandler.ClearAfterAdd();
        }

        // scene
        if (inventoryHandler != null)
        {
            inventoryHandler.UpdateInventory();
        }
    }