Пример #1
0
    private void OnReq_UseItem(MessageRecv obj)
    {
        System.IO.MemoryStream ms  = new System.IO.MemoryStream(obj.Data);
        ReqUseItem             req = Serializer.Deserialize <ReqUseItem>(ms);

        AckUseItem ack = new AckUseItem();

        ack.Num     = req.Num;
        ack.Pos     = req.Pos;
        ack.PosType = req.PosType;
        ack.ID      = req.ID;
        NetworkManager.Instance.Send(MessageID.MSG_ACK_USEITEM, ack, 0, 0);
    }
Пример #2
0
    public void TryUseItemByPos(int pos, int num)
    {
        XItem item = DataDBSBagItem.GetDataById(pos);

        if (item.Num < num)
        {
            GTItemHelper.ShowTip("物品不足");
            return;
        }
        DItem itemDB = ReadCfgItem.GetDataById(item.Id);

        if (itemDB.ItemType == EItemType.BOX)
        {
            if (itemDB.Data1 != 0)
            {
                if (GTDataManager.Instance.GetItemCountById(itemDB.Data1) < num)
                {
                    GTItemHelper.ShowTip("需要足够的钥匙");
                    return;
                }
            }
            DAward awardDB = ReadCfgAward.GetDataById(itemDB.Data2);
            if (GTItemHelper.CheckBagFull(awardDB.MaxDropNum))
            {
                return;
            }
        }

        ReqUseItem req = new ReqUseItem();

        req.Pos     = pos;
        req.Num     = num;
        req.PosType = (int)EPosType.BagItem;
        req.ID      = item.Id;
        NetworkManager.Instance.Send <ReqUseItem>(MessageID.MSG_REQ_USEITEM, req);
    }