Ejemplo n.º 1
0
 /// <summary>
 /// 初始化背包。
 /// </summary>
 /// <param name="result">服务器下发信息。</param>
 public void Init(MsgData_sQueryItemResult result)
 {
     mID          = result.ID;
     mBagType     = result.Bag;
     mSize        = result.Size;
     OpenLastTime = result.OpenLastTime;
     mItemInfos.Clear();
     for (int i = 0; i < result.ItemInfoList.Count; ++i)
     {
         ItemInfo info = ItemInfo.GetItemInfoClass(mBagType);
         info.Init(result.ItemInfoList[i]);
         if (ConfigManager.Instance.BagItem.GetItemConfig(info.ID) != null)
         {
             if (!mItemInfos.ContainsKey(info.Pos))
             {
                 mItemInfos.Add(info.Pos, info);
             }
             else
             {
                 LogMgr.LogError("格子已有物品 bag:{0} pos:{1}", info.Bag, info.Pos);
             }
         }
         else
         {
             LogMgr.LogError("物品配置不存在 bag:{0} pos:{1} id:{2}", info.Bag, info.Pos, info.ID);
         }
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// 初始化背包信息。
        /// </summary>
        /// <param name="data">网络消息数据。</param>
        private void OnBagInfo(MsgData data)
        {
            MsgData_sQueryItemResult info = data as MsgData_sQueryItemResult;
            BagInfo bag = GetBagInfo(info.Bag);

            if (bag != null)
            {
                //从mItems删除原来背包的东西
                foreach (var kvp in bag.ItemInfos)
                {
                    mItems.Remove(kvp.Value.UID);
                }
                bag.Init(info);
                //重新添加
                foreach (var kvp in bag.ItemInfos)
                {
                    mItems.Add(kvp.Value.UID, kvp.Value);
                }
                TriggerEventBagInfo(bag.BagType);
            }
            else
            {
                LogMgr.ErrorLog("未知背包编号 id:{0}", info.Bag);
            }
        }