/// <summary>
    /// Shows item tips.
    /// </summary>
    /// <param name="itemId">type:0 warehouseCell;1 bpCell in warehouse;2 bpCell in Backpack;3 character Cell;4 character Ammo</param>
    public void ShowNormalTips(int itemId, int type)
    {
        ShowTipPanel();
        ClearCommonTipTexts();

        int  orgId = (int)(itemId / 10000);
        int  ex    = (int)((itemId % 10000) / 1000);
        Mats m     = LoadTxt.MatDic [orgId];

        string itemName = m.name;

        if (itemId % 10000 != 0)
        {
            if (LoadTxt.MatDic [orgId].type == 3)
            {
                itemName += "[" + LoadTxt.GetExtraMelee(ex).name + "]";
            }
            if (LoadTxt.MatDic [orgId].type == 4)
            {
                itemName += "[" + LoadTxt.GetExtraRanged(ex).name + "]";
            }
        }

        commonTipText [0].text  = itemName + ((type == 4) ? (" ×" + GameData._playerData.AmmoNum) : "");
        commonTipText [0].color = GameConfigs.MatColor [m.quality];
        commonTipText[1].text   = m.description;
        commonTipText[1].color  = new Color(24f / 255f, 193f / 255f, 172f / 255f, 1f);
        int i = 4;

        if (m.property != null)
        {
            foreach (int key in m.property.Keys)
            {
                commonTipText [i].text  = PlayerData.GetPropName(key) + " " + (m.property [key] > 0 ? "+" : "-") + m.property [key];
                commonTipText [i].color = Color.white;
                i++;
            }
        }
        else
        {
            commonTipText[i].text   = "Can not use directly.";
            commonTipText [i].color = Color.white;
            i++;
        }

        //附加属性
        string de = "";
        float  p;

        if (itemId % 10000 != 0)
        {
            if (LoadTxt.MatDic [orgId].type == 3)
            {
                Extra_Weapon extraM = LoadTxt.GetExtraMelee(ex);
                foreach (int key in extraM.property.Keys)
                {
                    de  = PlayerData.GetPropName(key) + " ";
                    p   = extraM.property [key];
                    de += (p > 0 ? "+" : "");
                    if (key < 25)
                    {
                        de += p.ToString();
                    }
                    else
                    {
                        de += ((int)(p * 100f)).ToString() + "%";
                    }
                    commonTipText [i].text = de;

                    if (p > 0)
                    {
                        commonTipText [i].color = Color.green;
                    }
                    else
                    {
                        commonTipText [i].color = Color.red;
                    }
                    i++;
                }
            }
            if (LoadTxt.MatDic [orgId].type == 4)
            {
                Extra_Weapon extraR = LoadTxt.GetExtraRanged(ex);
                foreach (int key in extraR.property.Keys)
                {
                    de  = PlayerData.GetPropName(key) + " ";
                    p   = extraR.property [key];
                    de += (p > 0 ? "+" : "-");
                    if (key < 25)
                    {
                        de += p.ToString();
                    }
                    else
                    {
                        de += ((int)(p * 100f)).ToString() + "%";
                    }
                    commonTipText [i].text = de;

                    if (p > 0)
                    {
                        commonTipText [i].color = Color.green;
                    }
                    else
                    {
                        commonTipText [i].color = Color.red;
                    }
                    i++;
                }
            }
        }

        commonTipButton [0].gameObject.GetComponentInChildren <Text> ().text = "Pray";
        commonTipButton [1].gameObject.SetActive(true);
        commonTipButton[2].gameObject.GetComponentInChildren <Text>().text = "Cancel";
        commonTipButton [2].gameObject.SetActive(true);
        switch (type)
        {
        case 0:
            commonTipButton[0].gameObject.SetActive(true);
            commonTipButton[0].gameObject.name = "warehouse_warehouse|" + itemId;
            commonTipButton[1].gameObject.GetComponentInChildren <Text>().text = "Withdraw";
            commonTipButton[1].interactable = true;
            break;

        case 1:
            commonTipButton[0].gameObject.SetActive(true);
            commonTipButton[0].gameObject.name = "warehouse_backpack|" + itemId;
            commonTipButton[1].gameObject.GetComponentInChildren <Text>().text = "Store";
            commonTipButton[1].interactable = true;
            break;

        case 2:
            commonTipButton[0].gameObject.SetActive(true);
            commonTipButton[0].gameObject.name = "backpack_backpack|" + itemId;
            commonTipButton[1].gameObject.GetComponentInChildren <Text>().text = "Use";
            bool canUse = !(m.property == null);
            commonTipButton[1].interactable = canUse;
            break;

        case 3:
        case 4:
            commonTipButton[0].gameObject.SetActive(false);
            commonTipButton[1].gameObject.GetComponentInChildren <Text>().text = "TakeOff";
            commonTipButton[1].interactable = true;
            break;

        default:
            break;
        }
        commonTipButton [1].gameObject.name = itemId.ToString();
    }