void MakeItem()
    {
        NewPlayerGuidLogic.CloseWindow();
        Tab_LivingSkill tabLivingSkill = TableManager.GetLivingSkillByID(m_CurFormulaID, 0);

        if (tabLivingSkill == null)
        {
            return;
        }

        if (Singleton <ObjManager> .Instance.MainPlayer.BaseAttr.Level < tabLivingSkill.OpenLevel)
        {
            Singleton <ObjManager> .Instance.MainPlayer.SendNoticMsg(false, "#{1900}", tabLivingSkill.OpenLevel);

            return;
        }

        bool isBind = false;
        bool isMakeShenQiMoreEquip = false;//神器打造总材料装备是否有多

        m_bIsMakeShenQi = false;
        m_bIsMakeSuit   = false;
        Tab_CommonItem _ShenQiline = TableManager.GetCommonItemByID(tabLivingSkill.StaticProductItemId, 0);

        if (_ShenQiline != null)
        {
            if (_ShenQiline.ClassID == (int)ItemClass.EQUIP && tabLivingSkill.Type == (int)FORMULA_TYPE.TYPE_SUIT)
            {
                m_bIsMakeSuit = true;
            }
            else if (_ShenQiline.ClassID == (int)ItemClass.EQUIP && _ShenQiline.ThirdClassID == (int)EquipThirdClass.SHENQI)
            {
                m_bIsMakeShenQi = true;
            }
        }
        for (int i = 0; i < tabLivingSkill.getStuffIDCount(); i++)
        {
            int nStuffID    = tabLivingSkill.GetStuffIDbyIndex(i);
            int nStuffCount = tabLivingSkill.GetStuffCountbyIndex(i);
            if (nStuffID != GlobeVar.INVALID_ID)
            {
                if (GameManager.gameManager.PlayerDataPool.BackPack.GetItemCountByDataId(nStuffID) < nStuffCount)
                {
                    Singleton <ObjManager> .Instance.MainPlayer.SendNoticMsg(false, "#{1901}");

                    return;
                }
                if (!isBind)
                {
                    if (GameManager.gameManager.PlayerDataPool.BackPack.GetBindItemCountByDataId(nStuffID) > 0)
                    {
                        isBind = true;
                        //m_bisMakeShenUseBind = true;
                    }
                }
                if (m_bIsMakeShenQi)
                {
                    Tab_CommonItem line = TableManager.GetCommonItemByID(nStuffID, 0);
                    if (line != null)
                    {
                        if (line.ClassID == (int)ItemClass.EQUIP && line.ThirdClassID == (int)EquipThirdClass.SHENQI)
                        {
                            m_bIsMakeShenQiByChuanCheng = true; //有材料是神器 则是传承 不是打造
                        }
                        if (GameManager.gameManager.PlayerDataPool.BackPack.GetItemCountByDataId(nStuffID) > nStuffCount)
                        {
                            if (line.ClassID == (int)ItemClass.EQUIP)
                            {
                                isMakeShenQiMoreEquip = true;
                            }
                        }
                    }
                }

                if (m_bIsMakeSuit)
                {
                    Tab_CommonItem line = TableManager.GetCommonItemByID(nStuffID, 0);
                    if (line != null)
                    {
                        if (GameManager.gameManager.PlayerDataPool.BackPack.GetItemCountByDataId(nStuffID) > nStuffCount)
                        {
                            if (line.ClassID == (int)ItemClass.EQUIP)
                            {
                                isMakeShenQiMoreEquip = true;
                            }
                        }
                    }
                }
            }
        }

        if (Singleton <ObjManager> .Instance.MainPlayer.BaseAttr.CurStamina < tabLivingSkill.Stamina)
        {
            Singleton <ObjManager> .Instance.MainPlayer.SendNoticMsg(false, "#{2139}");

            return;
        }

        if (GameManager.gameManager.PlayerDataPool.BackPack.GetCanContainerSize() <= 0)
        {
            Singleton <ObjManager> .Instance.MainPlayer.SendNoticMsg(false, "#{1903}");

            return;
        }

        if (GameManager.gameManager.PlayerDataPool.Money.GetMoney_Coin() < tabLivingSkill.Money)
        {
            Singleton <ObjManager> .Instance.MainPlayer.SendNoticMsg(false, "#{1902}");

            return;
        }
        if (m_bIsMakeShenQi || m_bIsMakeSuit)
        {
            if (isMakeShenQiMoreEquip) // 提示有多余的装备 是否确定用当前的装备打造神器
            {
                MessageBoxLogic.OpenOKCancelBox(StrDictionary.GetClientDictionaryString("#{5068}"), "", MakeShenQi_CurEquip_Ok);
            }
            else if (IsNeedWaringHaveLowShenQiEquip())
            {
                MessageBoxLogic.OpenOKCancelBox(StrDictionary.GetClientDictionaryString("#{5220}"), "", MakeItemOK, MakeItemCancel);
            }
            else
            {
                MakeItemOK();
            }
        }
        else
        {
            if (isBind)
            {
                MessageBoxLogic.OpenOKCancelBox(StrDictionary.GetClientDictionaryString("#{2659}"), "", MakeItemOK, MakeItemCancel);
            }
            else
            {
                MakeItemOK();
            }
        }
    }
    public void OnFormulaChoose(int nFormulaID)
    {
        Tab_LivingSkill tabLivingSkill = TableManager.GetLivingSkillByID(nFormulaID, 0);

        if (tabLivingSkill == null)
        {
            return;
        }

        Utils.CleanGrid(m_StuffGrid);
        int i = 0;

        if (tabLivingSkill.Type == (int)FORMULA_TYPE.TYPE_SHENQI ||
            tabLivingSkill.Type == (int)FORMULA_TYPE.TYPE_SHENJIE ||
            tabLivingSkill.Type == (int)FORMULA_TYPE.TYPE_SUIT)
        {
            for (; i < tabLivingSkill.getStuffIDCount(); i++)
            {
                int        nStuffID  = tabLivingSkill.GetStuffIDbyIndex(i);
                GameObject StuffItem = Utils.BindObjToParent(m_ShenQiStuffItem, m_StuffGrid, i.ToString());
                if (StuffItem != null)
                {
                    if (nStuffID != GlobeVar.INVALID_ID)
                    {
                        UInt64 itemGuid = GameManager.gameManager.PlayerDataPool.BackPack.GetItemGuidByDataID(tabLivingSkill.GetStuffIDbyIndex(i));
                        StuffItem.GetComponent <LivingSkillShenQiStuffLogic>().InitInfo(tabLivingSkill.GetStuffIDbyIndex(i), itemGuid, tabLivingSkill.GetStuffCountbyIndex(i));
                    }
                    else
                    {
                        // init empty
                    }
                }
            }
        }
        else
        {
            for (; i < tabLivingSkill.getStuffIDCount(); i++)
            {
                int        nStuffID  = tabLivingSkill.GetStuffIDbyIndex(i);
                GameObject StuffItem = Utils.BindObjToParent(m_StuffItem, m_StuffGrid, i.ToString());
                if (StuffItem != null)
                {
                    if (nStuffID != GlobeVar.INVALID_ID)
                    {
                        StuffItem.GetComponent <LivingSkillStuffLogic>().InitInfo(tabLivingSkill.GetStuffIDbyIndex(i), tabLivingSkill.GetStuffCountbyIndex(i));
                    }
                    else
                    {
                        // init empty
                        StuffItem.GetComponent <LivingSkillStuffLogic>().InitEmpty();
                    }
                }
            }
        }

        m_StuffGrid.GetComponent <UIGrid>().Reposition();
        //m_StuffGrid.GetComponent<UITopGrid>().Recenter(true);
        m_CurFormulaID = nFormulaID;

        m_PayMoneyLabel.text    = tabLivingSkill.Money.ToString();
        m_PayStaminaLabel.text  = tabLivingSkill.Stamina.ToString();
        m_OutputIcon.spriteName = tabLivingSkill.Icon;

        foreach (LivingSkillFormulaLogic formula in m_FormulaGrid.GetComponentsInChildren <LivingSkillFormulaLogic>())
        {
            if (formula.FormulaID != nFormulaID)
            {
                formula.ChooseCancel();
            }
        }
    }