コード例 #1
0
    private void InitFittingsItemInfo()
    {
        WeaponModule wmodule = ModuleManager.Instance.FindModule <WeaponModule>();

        if (wmodule == null)
        {
            return;
        }

        PlayerDataModule module = ModuleManager.Instance.FindModule <PlayerDataModule>();

        if (module == null)
        {
            return;
        }
        FittingsTableItem fres = DataManager.FittingsTable[uiparam.itemid] as FittingsTableItem;

        if (fres == null)
        {
            GameDebug.LogError("资源ID为" + uiparam.itemid + "不存在表格fittings.txt中 ");
            return;
        }
        ConfigTableItem configitem = DataManager.ConfigTable[fres.grade] as ConfigTableItem;

        if (null == configitem)
        {
            return;
        }
        mFitName.text   = "[" + configitem.value + "]" + fres.name;
        mFitType.text   = "物品类型";
        mFitUseLv.text  = fres.itemtype;
        mFitDesc.text   = fres.itemdesc;
        mFitAbtain.text = fres.itemabtain;

        SetIcon(mFitPic, fres.bmp);
        SetIcon(mItemPic1, null);
        mItemLb.text = "";

        FittingsData fdata = module.GetFittingsData((uint)uiparam.packpos);

        if (fdata == null)
        {
            for (int i = 0; i < (int)FittingsType.MAX_PROPERTY; ++i)
            {
                mFitProNameList[i].text  = "";
                mFitproValueList[i].text = "";
            }
            mFitProNameList[0].text = "配件未洗练!";
            return;
        }

        for (int i = 0; i < (int)FittingsType.MAX_PROPERTY; ++i)
        {
            int  proid  = -1;
            int  value  = -1;
            bool forbid = false;
            if (!fdata.GetProValue((uint)i, ref proid, ref value, ref forbid))
            {
                continue;
            }

            string pname = RoleProperty.GetPropertyName(proid);
            if ("error".Equals(pname))
            {
                pname = "属性名称";
            }
            mFitProNameList[i].text = pname;

            int min = 0;
            int max = 1;
            if (!wmodule.GetFittMinMax(uiparam.itemid, proid, ref min, ref max))
            {
                mFitproValueList[i].text = "该条属性尚未洗炼!";
                continue;
            }

            mFitproValueList[i].text = value.ToString();

            /*int proindex = FittingsProperty.GetResId(proid);
             * string colorss = "000000";
             * Hashtable map = DataManager.FittcolorTable;
             * foreach (FittcolorTableItem fcres in map.Values)
             * {
             *  if (fcres.qualityid == fres.grade && value > System.Convert.ToInt32(fcres["max_" + proindex]))
             *      continue;
             *
             *  colorss = fcres.color;
             *  break;
             * }*/
        }
    }
コード例 #2
0
    //枪械属性
    public static void BuildWeaponProperty(PlayerData mainData, PropertyOperation operation)
    {
        operation.Clear();
        //主武器属性
        WeaponObj obj = mainData.mPack.GetItemByID(mainData.main_weaponId, PackageType.Pack_Weapon) as WeaponObj;

        if (null != obj)
        {
            obj.BuildProperty(operation);
        }
        //强化属性
        StrenTableItem item = DataManager.StrenTable[mainData.mStrenLv] as StrenTableItem;

        if (null == item)
        {
            GameDebug.LogError("没有此强化等级 lv = " + mainData.mStrenLv);
            return;
        }
        operation.AddPro((int)PropertyTypeEnum.PropertyTypeDamage, item.value);
        int starlv = (int)(mainData.mStrenLv / (int)STARS_RANK.MAX_STARS_RANK_NUMBER);

        if (starlv > 0 && (mainData.mStrenLv % (int)STARS_RANK.MAX_STARS_RANK_NUMBER) == 0)
        {
            starlv -= 1;
        }
        if (0 != starlv)
        {
            for (int i = 1; i <= starlv; ++i)
            {
                StrProTableItem itempro = DataManager.StrProTable[i] as StrProTableItem;
                if (null == itempro)
                {
                    GameDebug.LogError("strenthpro.txt中不存在id = " + starlv);
                    return;
                }
                if (itempro.life != uint.MaxValue)
                {
                    operation.AddPro((int)PropertyTypeEnum.PropertyTypeMaxHP, itempro.life);
                }
                if (itempro.damage != uint.MaxValue)
                {
                    operation.AddPro((int)PropertyTypeEnum.PropertyTypeDamage, itempro.damage);
                }
                if (itempro.crits != uint.MaxValue)
                {
                    operation.AddPro((int)PropertyTypeEnum.PropertyTypeCrticalLV, itempro.crits);
                }
                if (itempro.defence != uint.MaxValue)
                {
                    operation.AddPro((int)PropertyTypeEnum.PropertyTypeDefance, itempro.defence);
                }
                if (itempro.energy != uint.MaxValue)
                {
                    operation.AddPro((int)PropertyTypeEnum.PropertyTypeMaxMana, itempro.energy);
                }
            }
        }
        //配件属性
        FittingsData[] mFittings = mainData.mFittings;
        WeaponModule   module    = ModuleManager.Instance.FindModule <WeaponModule>();

        if (null == module)
        {
            return;
        }
        for (int i = 0; i < (int)FittingsType.MAX_FITTGINS; ++i)
        {
            FittingsTableItem fittingsitem = DataManager.FittingsTable[mFittings[i].GetId()] as FittingsTableItem;
            if (null == fittingsitem)
            {
                break;
            }
            for (int j = 0; j < (int)FittingsType.MAX_PROPERTY; ++j)
            {
                int min = 0;
                int max = 1;
                if (!module.GetFittMinMax(mFittings[i].GetId(), mFittings[i].GetProIdByPos(j), ref min, ref max))
                {
                    continue;
                }

                operation.AddPro(mFittings[i].GetProIdByPos(j), mFittings[i].GetProValueByPos(j));
            }
        }
    }