コード例 #1
0
ファイル: RoleUtil.cs プロジェクト: zuojiashun/src
    private static void BuildRobotViewProp(table.RobotDataBase robotdata, ref EntityViewProp[] propList)
    {
        if (propList == null)
        {
            return;
        }
        if (propList.Length < 0 || propList.Length > (int)Client.EquipPos.EquipPos_Max)
        {
            Engine.Utility.Log.Error("BuildRobotViewProp:外观列表长度非法");
            return;
        }
        List <uint> equipList = new List <uint>();

        equipList.Add(robotdata.Hat);
        equipList.Add(robotdata.Shoulder);
        equipList.Add(robotdata.Coat);
        equipList.Add(robotdata.Leg);
        equipList.Add(robotdata.Adornl_1);
        equipList.Add(robotdata.Adornl_2);
        equipList.Add(robotdata.Shield);
        equipList.Add(robotdata.Equip);
        equipList.Add(robotdata.Shoes);
        equipList.Add(robotdata.Cuff);
        equipList.Add(robotdata.Belf);
        equipList.Add(robotdata.Necklace);

        int index = 0;

        propList[index++] = new EntityViewProp((int)Client.EquipPos.EquipPos_Body, 0);
        propList[index++] = new EntityViewProp((int)Client.EquipPos.EquipPos_Weapon, 0);

        for (int i = 0; i < equipList.Count; i++)
        {
            if (equipList[i] != 0)
            {
                table.EquipDataBase equipdb = GameTableManager.Instance.GetTableItem <table.EquipDataBase>(equipList[i]);
                if (equipdb != null)
                {
                    if (equipdb.act_show != 0)
                    {
                        table.SuitDataBase suitDb = GameTableManager.Instance.GetTableItem <table.SuitDataBase>(equipdb.act_show, 1);
                        if (suitDb != null)
                        {
                            int pos = GetPropPos((Client.EquipPos)suitDb.base_id, propList);
                            if (pos >= 0)
                            {
                                propList[pos] = new EntityViewProp((int)suitDb.type, (int)suitDb.base_id);
                            }
                            else
                            {
                                propList[index++] = new EntityViewProp((int)suitDb.type, (int)suitDb.base_id);
                            }
                        }
                    }
                }
            }
        }
    }
コード例 #2
0
ファイル: BaseEquip.cs プロジェクト: zuojiashun/src
    protected override void OnUpdateData()
    {
        base.OnUpdateData();
        if (!IsEquip)
        {
            return;
        }
        m_localDataBase = DataManager.Manager <ItemManager>().GetLocalDataBase <table.EquipDataBase>(baseId);
        if (null == m_localDataBase)
        {
            Engine.Utility.Log.Error("BaseEquip->OnUpdateData m_localDataBase null baseId:{0}", baseId);
            return;
        }
        m_bCompoundMaskEnable = EquipDefine.IsEquipGrowMaskMatchType(LocalDataBase.growMask, EquipDefine.EquipGrowType.Compound);

        m_bCanCompound = EquipDefine.IsEquipGrowMaskMatchType(LocalDataBase.growMask, EquipDefine.EquipGrowType.Compound) &&
                         AdditionAttrCount > 0;

        m_bCanSplit = EquipDefine.IsEquipGrowMaskMatchType(LocalDataBase.growMask, EquipDefine.EquipGrowType.Split) &&
                      AdditionAttrCount > 0;

        m_bCanRefine = EquipDefine.IsEquipGrowMaskMatchType(LocalDataBase.growMask, EquipDefine.EquipGrowType.Refine);

        if (null == BaseData)
        {
            Engine.Utility.Log.Error("BaseEquip->OnUpdateData BaseData null baseId:{0}", baseId);
            return;
        }
        eType = (GameCmd.EquipType)BaseData.subType;

        if (BaseData.grade > (int)EquipDefine.EquipGradeType.None && BaseData.grade < (int)EquipDefine.EquipGradeType.Max)
        {
            m_equipGrade = (EquipDefine.EquipGradeType)BaseData.grade;
        }

        BaseEquipUpdateAttr();

        BaseEquipUpdateLocation();
    }