/// <summary> /// 添加物品。 /// </summary> /// <param name="data">网络消息数据。</param> private void OnItemAdd(MsgData data) { MsgData_sItemAdd info = data as MsgData_sItemAdd; BagInfo bag = GetBagInfo(info.Bag); if (bag != null) { bag.AddItem(info); if (mItems.ContainsKey(info.UID)) { //额外多Add了一次,下次Del时抵消 mCacheAddUID = info.UID; mItems.Remove(mCacheAddUID); } mItems.Add(info.UID, bag.GetItemInfo(info.Pos)); TriggerEventItemAdd(info.Bag, info.Pos); if (info.Bag == BagType.ITEM_BAG_TYPE_EQUIP) { ShowEquipChange(info.ID); } } else { LogMgr.ErrorLog("未知背包编号 id:{0}", info.Bag); } }
/// <summary> /// 初始化物品信息。 /// </summary> /// <param name="result">服务器下发信息。</param> public void Init(MsgData_sItemAdd 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); }
/// <summary> /// 添加物品。 /// </summary> /// <param name="result">服务器下发信息。</param> public void AddItem(MsgData_sItemAdd result) { ItemInfo info = GetItemInfo(result.Pos); if (info != null) { LogMgr.ErrorLog("物品添加失败,该格子已有物品 bag:{0} pos:{1}", info.Bag, info.Pos); return; } //加入物品 info = ItemInfo.GetItemInfoClass(result.Bag); mItemInfos.Add(result.Pos, info); info.Init(result); }