void UpdateEnchanseSelectedEquip()
    {
        ClearEnchanseSelected();
        if (mSelectedItem != null)
        {
            mEnchanseSelectedAction.SetActionItem(mSelectedItem.GetID());

            CObject_Item_Equip equip = mSelectedItem as CObject_Item_Equip;
            if (equip != null)
            {
                int gemCount = equip.GetGemCount();
                for (int i = 0; i < gemCount; i++)
                {
                    int nIdTable = equip.GetGemTableId(i);
                    if (nIdTable != 0)
                    {
                        CObject_Item gemItem = ObjectSystem.Instance.NewItem((uint)nIdTable);
                        CActionItem  action  = CActionSystem.Instance.GetAction_ItemID(gemItem.GetID(), false);
                        mEnchanseGemInfo[i].enchanseGem.SetActionItemByActionId(action.GetID());
                    }
                }
            }
        }
        UpdateEnchanseGemStates();
    }
    bool InsertGem(CObject_Item_Gem gem, CObject_Item_Equip equip)
    {
        for (int i = 0; i < GAMEDEFINE.MAX_ITEM_GEM; i++)
        {
            if (mEnchanseGemInfo[i].bFlag == 1)
            {
                CObject_Item_Gem gemold = CDataPool.Instance.UserBag_GetItemById(mEnchanseGemInfo[i].nGemType) as CObject_Item_Gem;
                if (gemold != null && gem.GetItemTableType() == gemold.GetItemTableType())
                {
                    return(false);
                }
            }
            if (mEnchanseGemInfo[i].bFlag == 0)
            {
                //当前没有宝石
                if (equip.GetGemTableId(i) == 0)
                {
                    byte oldFlag = 2;
                    int  index   = equip.IsGemmy(gem.GetItemTableType());
                    if (index >= 0)
                    {
                        oldFlag = mEnchanseGemInfo[index].bFlag;
                    }
                    if (oldFlag == 2)
                    {
                        mEnchanseGemInfo[i].nGemType = gem.GetID();
                        mEnchanseGemInfo[i].bFlag    = 1;

                        return(true);
                    }
                }
            }
        }
        return(false);
    }
Exemple #3
0
        //    // 通过编号去查该配方,共需要几个材料
        //    INT GetPrescr_Material_Number(INT	nPrescrID);
        //    INT GetPrescrMaterialNumberNew(INT nPrescrID);
        //    // 通过材料的编号,查询材料的详细信息,返回图标和名称。
        //    Lua_ICON_INFO	GetPrescr_Material(INT	nItemID);
        //    // 通过序号去查第几个配方的编号
        //    INT GetPrescrList_Item_FromNum(INT nIndex);
        //    INT GetPrescrList_Item_FromNum(INT nIndex, INT nLifeAbility);
        //    // 计算身上原料总共可以合成多少个这个配方。
        //    INT GetPrescr_Item_Maximum(INT nIndex);
        //    INT GetPrescrItemMaximumNew(INT nIndex, INT nMaterial);//  [10/8/2011 Sun]
        //    string GetPrescription_Kind(INT nPrescrKind);
        //    // 计算原料数量。
        //    INT GetPrescr_Material_Hold_Count(INT nIndex,INT nMaterial);
        //    INT GetPrescrMaterialCountInPackage(INT nIndex, INT nMaterial);// 根据新需求 [10/8/2011 Sun]
        //    // 刷新合成界面
        //    INT Update_Synthesize( INT	nAbility );
        //    // 打开宝石合成/镶嵌界面
        //    INT Open_Compose_Gem_Page( INT	nPage );
        //    // 开始镶嵌
        //    INT	Do_Enchase( INT nIndexEquip, INT nIndexGem, INT nIndexMat1 = -1, INT nIndexMat2 = -1 );
        //    // 开始合成
        //    INT	Do_Combine(INT nIndexGem1, INT nIndexGem2, INT nIndexGem3, INT nIndexGem4, INT nIndexGem5, INT nIndexGem6 );
        //    // 宝石摘除 [7/16/2011 ivan edit]
        //    INT	Do_SeparateGem(INT nIndexEquip, INT nIndexGem, INT nIndexMat);
        //    // 返回装备上,第i颗宝石的图标信息
        //    string	GetEquip_Gem( INT nIndexEquip , UINT nIndexGem );
        // 获取装备上的宝石数据 [7/16/2011 ivan edit]
        public string GetEquipGemInfo(CObject_Item_Equip equip, int nIndexGem, string dataType)
        {
            if (equip == null)
            {
                return("");
            }
            int nGemType = equip.GetGemTableId(nIndexGem);

            _DBC_ITEM_GEM pGem = ObjectSystem.GemDBC.Search_Index_EQU(nGemType);

            if (pGem == null)
            {
                return("");
            }

            string gemData = "";

            if (dataType == "icon")
            {
                gemData = pGem.szIcon;
            }
            else if (dataType == "level")
            {
                gemData = pGem.nQuality.ToString();
            }
            else if (dataType == "type")
            {
                gemData = pGem.nType.ToString();
            }
            else if (dataType == "id")
            {
                gemData = pGem.nID.ToString();
            }
            else if (dataType == "name")
            {
                gemData = pGem.szName;
            }
            else if (dataType == "attribute")
            {
                equip.GetGemExtAttr(nIndexGem, ref gemData);
            }

            return(gemData);
        }