Пример #1
0
        /// <summary>
        /// 更新物品。
        /// </summary>
        /// <param name="data">网络消息数据。</param>
        private void OnItemUpdate(MsgData data)
        {
            MsgData_sItemUpdate info = data as MsgData_sItemUpdate;
            BagInfo             bag  = GetBagInfo(info.Bag);

            if (bag != null)
            {
                ItemInfo iteminfo = bag.GetItemInfo(info.Pos);
                if (iteminfo == null)
                {
                    return;
                }
                bool newuid = iteminfo.UID != info.UID;
                if (newuid)
                {
                    mItems.Remove(iteminfo.UID);
                }
                bag.UpdateItem(info);
                if (newuid)
                {
                    mItems.Add(info.UID, bag.GetItemInfo(info.Pos));
                }
                TriggerEventItemUpdate(info.Bag, info.Pos);

                if (info.Bag == BagType.ITEM_BAG_TYPE_EQUIP)
                {
                    ShowEquipChange(info.ID);
                }
            }
            else
            {
                LogMgr.ErrorLog("未知背包编号 id:{0}", info.Bag);
            }
        }
Пример #2
0
 /// <summary>
 /// 初始化物品信息。
 /// </summary>
 /// <param name="result">服务器下发信息。</param>
 public void Init(MsgData_sItemUpdate info)
 {
     mUID       = info.UID;
     mID        = info.ID;
     mCount     = info.Count;
     mBag       = info.Bag;
     mPos       = info.Pos;
     mUseCount  = info.UseCount;
     mTodayUse  = info.TodayUse;
     mCanUseVal = info.CanUseVal;
     mFlag      = info.Flag;
     SetTimeLimit(info.TimeLimt);
 }
Пример #3
0
        public ItemInfo Copy()
        {
            ItemInfo            item = new ItemInfo();
            MsgData_sItemUpdate info = new MsgData_sItemUpdate();

            info.UID       = mUID;
            info.ID        = mID;
            info.Count     = mCount;
            info.Bag       = mBag;
            info.Pos       = mPos;
            info.UseCount  = mUseCount;
            info.TodayUse  = mTodayUse;
            info.CanUseVal = mCanUseVal;
            info.Flag      = mFlag;
            info.TimeLimt  = mTimeLimt;
            item.Init(info);
            item.relativeTime = relativeTime;
            return(item);
        }
Пример #4
0
        /// <summary>
        /// 更新物品。
        /// </summary>
        /// <param name="result">服务器下发信息。</param>
        public void UpdateItem(MsgData_sItemUpdate result)
        {
            ItemInfo info = GetItemInfo(result.Pos);

            if (info == null)
            {
                LogMgr.WarningLog("该格子原本并没有物品 bag:{0} pos:{1}", result.Bag, result.Pos);
            }

            //加入物品
            if (info == null)
            {
                info = ItemInfo.GetItemInfoClass(result.Bag);
                mItemInfos.Add(result.Pos, info);
            }
            info.Init(result);
            if (info.ID == 0 || info.Count == 0)
            {
                mItemInfos.Remove(info.Pos);
            }
        }