/// <summary>
    /// 获得物品的使用次数,如果找不到此物品,返回-1;
    ///
    /// 现在客户端写的有问题吧;
    /// </summary>
    /// <param name="type"></param>
    /// <param name="nTableId"></param>
    /// <returns></returns>
    public int GetItemUseTimes(EM_BAG_HASHTABLE_TYPE type, int nTableId)
    {
        BaseItem bi = FindItem(type, nTableId);

        if (bi == null)
        {
            return(-1);
        }

        return(bi.GetItemTimesCount());
    }
    public List <BaseItem> GetItemList(EM_BAG_HASHTABLE_TYPE bagType)
    {
        if (m_ItemMapList.ContainsKey((int)bagType) == false)
        {
            LogManager.LogError(false);
            LogManager.LogToFile("not has bagType Key of GetItemList()");
            return(null);
        }

        return(m_ItemMapList[(int)bagType]);
    }
    /// <summary>
    /// 根据资源id获取人物身上物品数量,
    /// 材料
    /// 消耗品;
    /// </summary>
    /// <returns></returns>
    public int GetItemCountById(EM_BAG_HASHTABLE_TYPE bagType, int id)
    {
        List <BaseItem> items  = new List <BaseItem>();
        int             result = 0;

        switch (bagType)
        {
        case EM_BAG_HASHTABLE_TYPE.EM_BAG_HASHTABLE_TYPE_COMMON:
            items = m_ItemMapList[(int)EM_BAG_HASHTABLE_TYPE.EM_BAG_HASHTABLE_TYPE_COMMON];
            if (items == null || items.Count == 0)
            {
                return(0);
            }
            foreach (BaseItem bi in items)
            {
                if (bi == null)
                {
                    continue;
                }

                if (bi.GetItemTableID() == id)
                {
                    result++;
                }
            }
            return(result);

        case EM_BAG_HASHTABLE_TYPE.EM_BAG_HASHTABLE_TYPE_EQUIP:
            items = m_ItemMapList[(int)EM_BAG_HASHTABLE_TYPE.EM_BAG_HASHTABLE_TYPE_EQUIP];
            if (items == null || items.Count == 0)
            {
                return(0);
            }
            foreach (BaseItem bi in items)
            {
                if (bi == null)
                {
                    continue;
                }

                if (bi.GetItemTableID() == id)
                {
                    result++;
                }
            }
            return(result);
        }

        return(-1);
    }
    /// <summary>
    /// 设置某种类型物品为已读状态
    /// </summary>
    /// <param name="type">物品类型</param>
    public void SetNewItemPreviw(EM_BAG_HASHTABLE_TYPE type)
    {
        List <X_GUID> delGUIDs = new List <X_GUID>();

        foreach (X_GUID item in m_NewGetItems)
        {
            if (FindItem(type, item) != null)
            {
                delGUIDs.Add(item);
            }
        }
        foreach (X_GUID item in delGUIDs)
        {
            m_NewGetItems.Remove(item);
        }
    }
    public BaseItem FindItem(EM_BAG_HASHTABLE_TYPE type, int nTableId)
    {
        int bagType = (int)type;

        if (m_ItemMapList.ContainsKey(bagType) == false)
        {
            LogManager.LogToFile("not has bagType Key of FindItem()");
            return(null);
        }

        for (int i = 0; i < m_ItemMapList[bagType].Count; ++i)
        {
            if (m_ItemMapList[bagType][i].GetItemTableID().Equals(nTableId))
            {
                return(m_ItemMapList[bagType][i]);
            }
        }
        return(null);
    }
 public BaseItem FindItem(EM_BAG_HASHTABLE_TYPE type, X_GUID guid)
 {
     return(FindItem((int)type, guid));
 }