/// <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); } } }
/// <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); } }