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