Example #1
0
        private void ShowBuffSkillDesc(uint uiBuffId, Vector3 BtnPos)
        {
            ResSkillCombineCfgInfo dataByKey = GameDataMgr.skillCombineDatabin.GetDataByKey(uiBuffId);

            if (((dataByKey != null) && !string.IsNullOrEmpty(dataByKey.szSkillCombineDesc)) && (this.m_BuffSkillPanel != null))
            {
                if (this.m_BuffDescTxtObj == null)
                {
                    this.m_BuffDescTxtObj = Utility.FindChild(this.m_BuffDescNodeObj, "Text");
                    if (this.m_BuffDescTxtObj == null)
                    {
                        return;
                    }
                }
                Text component = this.m_BuffDescTxtObj.GetComponent <Text>();
                component.text = dataByKey.szSkillCombineDesc;
                float   preferredHeight = component.preferredHeight;
                Vector2 sizeDelta       = this.m_textBgImage.rectTransform.sizeDelta;
                preferredHeight += ((this.m_textBgImage.gameObject.transform.localPosition.y - component.gameObject.transform.localPosition.y) * 2f) + 10f;
                this.m_textBgImage.rectTransform.sizeDelta = new Vector2(sizeDelta.x, preferredHeight);
                Vector3       vector2   = BtnPos;
                RectTransform transform = this.m_BuffBtn0.GetComponent <RectTransform>();
                vector2.y += (((this.m_BuffBtn0.transform.localScale.y * transform.rect.height) / 2f) + (preferredHeight / 2f)) + 15f;
                this.m_BuffDescNodeObj.transform.localPosition = vector2;
                this.m_BuffDescNodeObj.CustomSetActive(true);
            }
        }
Example #2
0
 private void InitBuffItem(CUIFormScript formScript, SLevelContext curLevelContext)
 {
     this.m_iLevelID        = curLevelContext.m_mapID;
     this.m_CurDifficulType = curLevelContext.m_levelDifficulty;
     for (int i = 0; i < 3; i++)
     {
         string     name       = "buffInfoPanel/buffItem" + i;
         GameObject gameObject = this.m_form.transform.Find(name).gameObject;
         this.UpdateBuffItemChooseStat(i, i == (int)this.m_iSelectedBuffItem);
         uint num = curLevelContext.m_reviveInfo[curLevelContext.m_levelDifficulty].ReviveBuff[i];
         this.m_WishBuffId[i] = num;
         ResSkillCombineCfgInfo dataByKey = GameDataMgr.skillCombineDatabin.GetDataByKey(num);
         if (dataByKey != null)
         {
             if (dataByKey.szIconPath.get_Chars(0) != '\0')
             {
                 Image      component    = gameObject.transform.Find("imageIcon").GetComponent <Image>();
                 string     prefebPath   = string.Format("{0}{1}", CUIUtility.s_Sprite_Dynamic_Skill_Dir, Utility.UTF8Convert(dataByKey.szIconPath));
                 GameObject spritePrefeb = CUIUtility.GetSpritePrefeb(prefebPath, true, true);
                 component.SetSprite(spritePrefeb, false);
             }
             Text component2 = gameObject.transform.Find("buffNameText").GetComponent <Text>();
             component2.text = StringHelper.UTF8BytesToString(ref dataByKey.szSkillCombineDesc);
         }
     }
 }
Example #3
0
 public override void OnRelease()
 {
     this.overlayCount = 0;
     Array.Clear(this.CustomParams, 0, this.CustomParams.Length);
     this.bExtraBuff  = false;
     this.cfgData     = null;
     this.battleParam = null;
     base.OnRelease();
 }
        public static int Get_Buff_CDTime(int buffid)
        {
            ResSkillCombineCfgInfo dataByKey = GameDataMgr.skillCombineDatabin.GetDataByKey((long)buffid);

            if (dataByKey == null)
            {
                return(-1);
            }
            return(dataByKey.iDuration);
        }
Example #5
0
 private void AddActionsFromSkillCombine(DictionaryView <string, Action> actions, int skillCombineID)
 {
     if (skillCombineID > 0)
     {
         ResSkillCombineCfgInfo dataByKey = GameDataMgr.skillCombineDatabin.GetDataByKey((long)skillCombineID);
         if (dataByKey != null)
         {
             this.AddAction(actions, dataByKey.szPrefab);
         }
     }
 }
Example #6
0
 public void AnalyseSkillCombine(ref List <string> ageList, int combineId)
 {
     if (combineId > 0)
     {
         ResSkillCombineCfgInfo dataByKey = GameDataMgr.skillCombineDatabin.GetDataByKey(combineId);
         if (dataByKey != null)
         {
             ageList.Add(StringHelper.UTF8BytesToString(ref dataByKey.szPrefab));
         }
     }
 }
Example #7
0
 public override void OnUse()
 {
     base.OnUse();
     this.overlayCount = 0;
     this.controlTime  = 0L;
     Array.Clear(this.CustomParams, 0, this.CustomParams.Length);
     this.bExtraBuff   = false;
     this.cfgData      = null;
     this.battleParam  = null;
     this.skillContext = null;
     this.ulStartTime  = 0L;
 }
Example #8
0
 public override void OnUse()
 {
     base.OnUse();
     this.buffLevel    = 1;
     this.overlayCount = 0;
     this.controlTime  = 0L;
     Array.Clear(this.CustomParams, 0, this.CustomParams.Length);
     this.bExtraBuff     = false;
     this.cfgData        = null;
     this.battleParam    = null;
     this.ulStartTime    = 0L;
     this.iBuffWorkTimes = 0;
     this.bFirstEffect   = false;
 }
Example #9
0
 public void AnalyseSkillCombine(ref ActorPreloadTab loadInfo, int combineId)
 {
     if (combineId > 0)
     {
         ResSkillCombineCfgInfo dataByKey = GameDataMgr.skillCombineDatabin.GetDataByKey(combineId);
         if (dataByKey != null)
         {
             AssetLoadBase item = new AssetLoadBase {
                 assetPath = StringHelper.UTF8BytesToString(ref dataByKey.szPrefab)
             };
             string checkerKey = this.GetCheckerKey(item.assetPath, loadInfo.MarkID);
             if (!this.ageCheckerSet.ContainsKey(checkerKey))
             {
                 loadInfo.ageActions.Add(item);
                 this.ageCheckerSet.Add(checkerKey, true);
             }
             if ((dataByKey.astSkillFuncInfo != null) && (dataByKey.astSkillFuncInfo.Length > 0))
             {
                 for (int i = 0; i < dataByKey.astSkillFuncInfo.Length; i++)
                 {
                     ResDT_SkillFunc func = dataByKey.astSkillFuncInfo[i];
                     if (((((func.dwSkillFuncType == 0x1c) || (func.dwSkillFuncType == 0x21)) || ((func.dwSkillFuncType == 0x36) || (func.dwSkillFuncType == 0x37))) && (((func.astSkillFuncParam != null) && (func.astSkillFuncParam.Length != 0)) && (func.astSkillFuncParam[0] != null))) && (func.astSkillFuncParam[0].iParam > 0))
                     {
                         int iParam = func.astSkillFuncParam[0].iParam;
                         if (func.dwSkillFuncType == 0x1c)
                         {
                             this.AnalyseSkillMark(ref loadInfo, iParam);
                         }
                         else if (func.dwSkillFuncType == 0x21)
                         {
                             if (combineId != iParam)
                             {
                                 this.AnalyseSkillCombine(ref loadInfo, iParam);
                             }
                         }
                         else if (func.dwSkillFuncType == 0x36)
                         {
                             this.AnalyseSkillCombine(ref loadInfo, iParam);
                         }
                         else if (func.dwSkillFuncType == 0x37)
                         {
                             this.AnalyseSkill(ref loadInfo, iParam);
                         }
                     }
                 }
             }
         }
     }
 }
Example #10
0
 public override void OnUse()
 {
     base.OnUse();
     this.buffLevel    = 1;
     this.overlayCount = 0;
     this.controlTime  = 0uL;
     Array.Clear(this.CustomParams, 0, this.CustomParams.Length);
     this.bExtraBuff     = false;
     this.cfgData        = null;
     this.battleParam    = null;
     this.ulStartTime    = 0uL;
     this.iBuffWorkTimes = 0;
     this.bFirstEffect   = false;
     this.nextDestroy    = false;
     this.SlotType       = SkillSlotType.SLOT_SKILL_0;
 }
Example #11
0
 public void Init(int id)
 {
     base.SkillID = id;
     this.cfgData = GameDataMgr.skillCombineDatabin.GetDataByKey(id);
     if (this.cfgData != null)
     {
         base.ActionName = StringHelper.UTF8BytesToString(ref this.cfgData.szPrefab);
     }
     for (int i = 0; i < 6; i++)
     {
         this.CustomParams[i] = 0;
     }
     this.controlTime = 0L;
     this.battleParam = GameDataMgr.battleParam.GetAnyData();
     this.ulStartTime = Singleton <FrameSynchr> .GetInstance().LogicFrameTick;
 }
Example #12
0
        private void ShowBuffSkillDesc(uint uiBuffId, Vector3 BtnPos)
        {
            ResSkillCombineCfgInfo dataByKey = GameDataMgr.skillCombineDatabin.GetDataByKey(uiBuffId);

            if (dataByKey == null)
            {
                return;
            }
            if (!string.IsNullOrEmpty(dataByKey.szSkillCombineDesc))
            {
                if (!this.m_BuffSkillPanel)
                {
                    return;
                }
                if (this.m_BuffDescTxtObj == null)
                {
                    this.m_BuffDescTxtObj = Utility.FindChild(this.m_BuffDescNodeObj, "Text");
                    if (this.m_BuffDescTxtObj == null)
                    {
                        return;
                    }
                }
                this.m_BuffDescNodeObj.CustomSetActive(true);
                Text component = this.m_BuffDescTxtObj.GetComponent <Text>();
                if (this.m_curActor && this.m_curActor.handle.ValueComponent != null)
                {
                    ValueDataInfo[] actorValue     = this.m_curActor.handle.ValueComponent.mActorValue.GetActorValue();
                    int             actorSoulLevel = this.m_curActor.handle.ValueComponent.actorSoulLevel;
                    uint            configId       = (uint)this.m_curActor.handle.TheActorMeta.ConfigId;
                    component.set_text(CUICommonSystem.GetSkillDesc(dataByKey.szSkillCombineDesc, actorValue, 1, actorSoulLevel, configId));
                }
                else
                {
                    component.set_text(dataByKey.szSkillCombineDesc);
                }
                float   num       = component.get_preferredHeight();
                Vector2 sizeDelta = this.m_textBgImage.get_rectTransform().sizeDelta;
                num += (this.m_textBgImage.gameObject.transform.localPosition.y - component.gameObject.transform.localPosition.y) * 2f + 10f;
                this.m_textBgImage.get_rectTransform().sizeDelta = new Vector2(sizeDelta.x, num);
                Vector3       localPosition = BtnPos;
                RectTransform component2    = this.m_BuffBtn0.GetComponent <RectTransform>();
                localPosition.y += this.m_BuffBtn0.transform.localScale.y * component2.rect.height / 2f + num / 2f + 15f;
                this.m_BuffDescNodeObj.transform.localPosition = localPosition;
            }
        }
Example #13
0
 private void InitBuffItem(CUIFormScript formScript, SLevelContext curLevelContext, ResLevelCfgInfo lInfo)
 {
     this.m_iLevelID        = curLevelContext.iLevelID;
     this.m_CurDifficulType = curLevelContext.difficulty;
     for (int i = 0; i < 3; i++)
     {
         string     name       = "buffInfoPanel/buffItem" + i;
         GameObject gameObject = this.m_form.transform.Find(name).gameObject;
         this.UpdateBuffItemChooseStat(i, i == this.m_iSelectedBuffItem);
         uint key = lInfo.astReviveInfo[curLevelContext.difficulty].ReviveBuff[i];
         this.m_WishBuffId[i] = key;
         ResSkillCombineCfgInfo dataByKey = GameDataMgr.skillCombineDatabin.GetDataByKey(key);
         if (dataByKey != null)
         {
             if (dataByKey.szIconPath[0] != '\0')
             {
                 Image      component = gameObject.transform.Find("imageIcon").GetComponent <Image>();
                 GameObject prefab    = CUIUtility.GetSpritePrefeb(string.Format("{0}{1}", CUIUtility.s_Sprite_Dynamic_Skill_Dir, Utility.UTF8Convert(dataByKey.szIconPath)), true, true);
                 component.SetSprite(prefab);
             }
             gameObject.transform.Find("buffNameText").GetComponent <Text>().text = StringHelper.UTF8BytesToString(ref dataByKey.szSkillCombineDesc);
         }
     }
 }
Example #14
0
        private static bool ParseSkillProperty(string s, out int value, uint heroId)
        {
            value = 0;
            int num  = s.IndexOf('p');
            int num2 = s.IndexOf('q');
            int num3 = s.IndexOf('g');
            int num4 = s.IndexOf('t');
            int num5 = s.IndexOf('a');
            int num6 = s.IndexOf('b');

            if (num != -1)
            {
                if (num2 != -1)
                {
                    int num7 = Convert.ToInt32(s.Substring(0, num));
                    int num8 = Convert.ToInt32(s.Substring(num + 1, num2 - num - 1));
                    int num9 = Convert.ToInt32(s.Substring(num2 + 1));
                    ResSkillCombineCfgInfo dataByKey = GameDataMgr.skillCombineDatabin.GetDataByKey((long)num7);
                    DebugHelper.Assert(dataByKey != null, "ResSkillCombineCfgInfo[{0}] can not be found! from string:\"{1}\" heroId[{2}]", new object[]
                    {
                        num7,
                        s,
                        heroId.ToString()
                    });
                    if (dataByKey != null)
                    {
                        value = dataByKey.astSkillFuncInfo[num8 - 1].astSkillFuncParam[num9 - 1].iParam;
                    }
                    return(true);
                }
                if (num3 != -1)
                {
                    int num10 = Convert.ToInt32(s.Substring(0, num));
                    int num11 = Convert.ToInt32(s.Substring(num + 1, num3 - num - 1));
                    int num12 = Convert.ToInt32(s.Substring(num3 + 1));
                    ResSkillCombineCfgInfo dataByKey2 = GameDataMgr.skillCombineDatabin.GetDataByKey((long)num10);
                    DebugHelper.Assert(dataByKey2 != null);
                    if (dataByKey2 != null)
                    {
                        value = dataByKey2.astSkillFuncInfo[num11 - 1].astSkillFuncGroup[num12 - 1].iParam;
                    }
                    return(true);
                }
            }
            else if (num4 != -1)
            {
                if (num5 != -1)
                {
                    int num13 = Convert.ToInt32(s.Substring(0, num4));
                    ResSkillCombineCfgInfo dataByKey3 = GameDataMgr.skillCombineDatabin.GetDataByKey((long)num13);
                    DebugHelper.Assert(dataByKey3 != null);
                    if (dataByKey3 != null)
                    {
                        value = dataByKey3.iDuration;
                    }
                    return(true);
                }
                if (num6 != -1)
                {
                    int num14 = Convert.ToInt32(s.Substring(0, num4));
                    ResSkillCombineCfgInfo dataByKey4 = GameDataMgr.skillCombineDatabin.GetDataByKey((long)num14);
                    DebugHelper.Assert(dataByKey4 != null);
                    if (dataByKey4 != null)
                    {
                        value = dataByKey4.iDurationGrow;
                    }
                    return(true);
                }
            }
            return(false);
        }
Example #15
0
        private static bool ParseSkillProperty(string s, out int value)
        {
            value = 0;
            int index  = s.IndexOf('p');
            int num2   = s.IndexOf('q');
            int num3   = s.IndexOf('g');
            int length = s.IndexOf('t');
            int num5   = s.IndexOf('a');
            int num6   = s.IndexOf('b');

            if (index != -1)
            {
                if (num2 != -1)
                {
                    int key  = Convert.ToInt32(s.Substring(0, index));
                    int num8 = Convert.ToInt32(s.Substring(index + 1, (num2 - index) - 1));
                    int num9 = Convert.ToInt32(s.Substring(num2 + 1));
                    ResSkillCombineCfgInfo dataByKey = GameDataMgr.skillCombineDatabin.GetDataByKey(key);
                    DebugHelper.Assert(dataByKey != null, string.Format("ResSkillCombineCfgInfo[{0}] can not be found!", key));
                    if (dataByKey != null)
                    {
                        value = dataByKey.astSkillFuncInfo[num8 - 1].astSkillFuncParam[num9 - 1].iParam;
                    }
                    return(true);
                }
                if (num3 != -1)
                {
                    int num10 = Convert.ToInt32(s.Substring(0, index));
                    int num11 = Convert.ToInt32(s.Substring(index + 1, (num3 - index) - 1));
                    int num12 = Convert.ToInt32(s.Substring(num3 + 1));
                    ResSkillCombineCfgInfo info2 = GameDataMgr.skillCombineDatabin.GetDataByKey(num10);
                    DebugHelper.Assert(info2 != null);
                    if (info2 != null)
                    {
                        value = info2.astSkillFuncInfo[num11 - 1].astSkillFuncGroup[num12 - 1].iParam;
                    }
                    return(true);
                }
            }
            else if (length != -1)
            {
                if (num5 != -1)
                {
                    int num13 = Convert.ToInt32(s.Substring(0, length));
                    ResSkillCombineCfgInfo info3 = GameDataMgr.skillCombineDatabin.GetDataByKey(num13);
                    DebugHelper.Assert(info3 != null);
                    if (info3 != null)
                    {
                        value = info3.iDuration;
                    }
                    return(true);
                }
                if (num6 != -1)
                {
                    int num14 = Convert.ToInt32(s.Substring(0, length));
                    ResSkillCombineCfgInfo info4 = GameDataMgr.skillCombineDatabin.GetDataByKey(num14);
                    DebugHelper.Assert(info4 != null);
                    if (info4 != null)
                    {
                        value = info4.iDurationGrow;
                    }
                    return(true);
                }
            }
            return(false);
        }
        private void AddDamageValue(ref HurtEventResultInfo prm)
        {
            PoolObjHandle <ActorRoot> atker   = prm.atker;
            SkillSlotType             atkSlot = prm.hurtInfo.atkSlot;
            int                 hurtTotal     = prm.hurtTotal;
            HurtTypeDef         hurtType      = prm.hurtInfo.hurtType;
            SKILL_USE_FROM_TYPE skillUseFrom  = prm.hurtInfo.SkillUseFrom;

            if (this.m_listDamageActorValue != null && atkSlot <= SkillSlotType.SLOT_SKILL_VALID && atker)
            {
                uint objID = atker.handle.ObjID;
                this.DeleteTimeoutDamageValue(objID, 0uL);
                DAMAGE_ACTOR_INFO dAMAGE_ACTOR_INFO;
                if (!this.m_listDamageActorValue.TryGetValue(objID, ref dAMAGE_ACTOR_INFO))
                {
                    dAMAGE_ACTOR_INFO           = default(DAMAGE_ACTOR_INFO);
                    dAMAGE_ACTOR_INFO.actorType = atker.handle.TheActorMeta.ActorType;
                    dAMAGE_ACTOR_INFO.actorName = atker.handle.name;
                    dAMAGE_ACTOR_INFO.ConfigId  = atker.handle.TheActorMeta.ConfigId;
                    if (dAMAGE_ACTOR_INFO.actorType == ActorTypeDef.Actor_Type_Monster)
                    {
                        MonsterWrapper monsterWrapper = atker.handle.AsMonster();
                        dAMAGE_ACTOR_INFO.bMonsterType = monsterWrapper.GetActorSubType();
                        dAMAGE_ACTOR_INFO.actorSubType = monsterWrapper.GetActorSubSoliderType();
                    }
                    Player player = Singleton <GamePlayerCenter> .instance.GetPlayer(atker.handle.TheActorMeta.PlayerId);

                    if (player != null)
                    {
                        dAMAGE_ACTOR_INFO.playerName = player.Name;
                    }
                    dAMAGE_ACTOR_INFO.listDamage = new SortedList <ulong, SKILL_SLOT_HURT_INFO[]>();
                    this.m_listDamageActorValue.Add(objID, dAMAGE_ACTOR_INFO);
                }
                ulong logicFrameTick = Singleton <FrameSynchr> .instance.LogicFrameTick;
                SKILL_SLOT_HURT_INFO[] array;
                if (!dAMAGE_ACTOR_INFO.listDamage.TryGetValue(logicFrameTick, ref array))
                {
                    array = new SKILL_SLOT_HURT_INFO[12];
                    dAMAGE_ACTOR_INFO.listDamage.Add(logicFrameTick, array);
                }
                if (array[(int)atkSlot].listHurtInfo == null)
                {
                    array[(int)atkSlot].listHurtInfo = new List <HURT_INFO>();
                }
                if (array[(int)atkSlot].listHurtInfo != null)
                {
                    string text    = null;
                    string strName = null;
                    if (skillUseFrom == SKILL_USE_FROM_TYPE.SKILL_USE_FROM_TYPE_SKILL)
                    {
                        SkillSlot skillSlot;
                        if (atkSlot < SkillSlotType.SLOT_SKILL_COUNT && atker.handle.SkillControl != null && (atker.handle.TheActorMeta.ActorType != ActorTypeDef.Actor_Type_Hero || atkSlot != SkillSlotType.SLOT_SKILL_0) && atker.handle.SkillControl.TryGetSkillSlot(atkSlot, out skillSlot) && skillSlot.SkillObj != null && skillSlot.SkillObj.cfgData != null)
                        {
                            if (!string.IsNullOrEmpty(skillSlot.SkillObj.IconName))
                            {
                                text = skillSlot.SkillObj.IconName;
                            }
                            if (!string.IsNullOrEmpty(skillSlot.SkillObj.cfgData.szSkillName))
                            {
                                strName = skillSlot.SkillObj.cfgData.szSkillName;
                            }
                        }
                    }
                    else if (skillUseFrom == SKILL_USE_FROM_TYPE.SKILL_USE_FROM_TYPE_EQUIP)
                    {
                        uint             uiFromId  = prm.hurtInfo.uiFromId;
                        ResEquipInBattle dataByKey = GameDataMgr.m_equipInBattleDatabin.GetDataByKey(uiFromId);
                        if (dataByKey != null)
                        {
                            text    = dataByKey.szIcon;
                            strName = dataByKey.szName;
                        }
                    }
                    else if (skillUseFrom == SKILL_USE_FROM_TYPE.SKILL_USE_FROM_TYPE_AREATRIGGER)
                    {
                        uint uiFromId2 = prm.hurtInfo.uiFromId;
                        ResSkillCombineCfgInfo dataByKey2 = GameDataMgr.skillCombineDatabin.GetDataByKey(uiFromId2);
                        if (dataByKey2 != null)
                        {
                            text    = dataByKey2.szIconPath;
                            strName = dataByKey2.szSkillCombineName;
                        }
                    }
                    int count = array[(int)atkSlot].listHurtInfo.get_Count();
                    int i;
                    for (i = 0; i < count; i++)
                    {
                        if (array[(int)atkSlot].listHurtInfo.get_Item(i).strIconName == text)
                        {
                            HURT_INFO hURT_INFO;
                            array[(int)atkSlot].listHurtInfo.get_Item(i).iValue = hURT_INFO.iValue + hurtTotal;
                            break;
                        }
                    }
                    if (i >= count)
                    {
                        HURT_INFO hURT_INFO2 = new HURT_INFO(hurtType, text, strName, hurtTotal, skillUseFrom);
                        array[(int)atkSlot].listHurtInfo.Add(hURT_INFO2);
                    }
                }
                dAMAGE_ACTOR_INFO.listDamage.set_Item(logicFrameTick, array);
                this.m_listDamageActorValue.set_Item(objID, dAMAGE_ACTOR_INFO);
            }
        }
Example #17
0
 public void AnalyseSkillCombine(ref ActorPreloadTab loadInfo, int combineId)
 {
     if (combineId > 0)
     {
         ResSkillCombineCfgInfo dataByKey = GameDataMgr.skillCombineDatabin.GetDataByKey((long)combineId);
         if (dataByKey != null)
         {
             AssetLoadBase item = new AssetLoadBase {
                 assetPath = StringHelper.UTF8BytesToString(ref dataByKey.szPrefab)
             };
             string checkerKey = this.GetCheckerKey(item.assetPath, loadInfo.MarkID);
             if (!this.ageCheckerSet.ContainsKey(checkerKey))
             {
                 loadInfo.ageActions.Add(item);
                 this.ageCheckerSet.Add(checkerKey, true);
             }
             if ((dataByKey.bIsShowBuff == 1) && !string.IsNullOrEmpty(dataByKey.szIconPath))
             {
                 string path = CUIUtility.s_Sprite_Dynamic_Skill_Dir + dataByKey.szIconPath;
                 if (!loadInfo.IsExistsSprite(path))
                 {
                     loadInfo.AddSprite(path);
                 }
             }
             if ((dataByKey.astSkillFuncInfo != null) && (dataByKey.astSkillFuncInfo.Length > 0))
             {
                 for (int i = 0; i < dataByKey.astSkillFuncInfo.Length; i++)
                 {
                     ResDT_SkillFunc func = dataByKey.astSkillFuncInfo[i];
                     if (((((func.dwSkillFuncType == 0x1c) || (func.dwSkillFuncType == 0x21)) || (((func.dwSkillFuncType == 0x36) || (func.dwSkillFuncType == 0x37)) || (func.dwSkillFuncType == 0x1b))) && (func.astSkillFuncParam != null)) && (func.astSkillFuncParam.Length != 0))
                     {
                         int markId  = 0;
                         int skillID = 0;
                         int iParam  = 0;
                         if (func.astSkillFuncParam[0] != null)
                         {
                             markId = func.astSkillFuncParam[0].iParam;
                         }
                         if (func.astSkillFuncParam[1] != null)
                         {
                             skillID = func.astSkillFuncParam[1].iParam;
                         }
                         if (func.astSkillFuncParam[5] != null)
                         {
                             iParam = func.astSkillFuncParam[5].iParam;
                         }
                         if (func.dwSkillFuncType == 0x1c)
                         {
                             this.AnalyseSkillMark(ref loadInfo, markId);
                         }
                         else if (func.dwSkillFuncType == 0x21)
                         {
                             if (combineId != markId)
                             {
                                 this.AnalyseSkillCombine(ref loadInfo, markId);
                             }
                         }
                         else if (func.dwSkillFuncType == 0x36)
                         {
                             this.AnalyseSkillCombine(ref loadInfo, markId);
                         }
                         else if (func.dwSkillFuncType == 0x37)
                         {
                             this.AnalyseSkill(ref loadInfo, skillID);
                         }
                         else if (func.dwSkillFuncType == 0x1b)
                         {
                             this.AnalyseSkillCombine(ref loadInfo, iParam);
                         }
                     }
                 }
             }
         }
     }
 }
Example #18
0
 public void AnalyseSkillCombine(ref ActorPreloadTab loadInfo, int combineId)
 {
     if (combineId > 0)
     {
         ResSkillCombineCfgInfo dataByKey = GameDataMgr.skillCombineDatabin.GetDataByKey((long)combineId);
         if (dataByKey != null)
         {
             if (!this.skillCombineList.Contains((long)combineId))
             {
                 this.skillCombineList.Add((long)combineId);
             }
             AssetLoadBase assetLoadBase = default(AssetLoadBase);
             assetLoadBase.assetPath = StringHelper.UTF8BytesToString(ref dataByKey.szPrefab);
             string checkerKey = this.GetCheckerKey(assetLoadBase.assetPath, loadInfo.MarkID);
             if (!this.ageCheckerSet.ContainsKey(checkerKey))
             {
                 loadInfo.ageActions.Add(assetLoadBase);
                 this.ageCheckerSet.Add(checkerKey, true);
             }
             if (dataByKey.bIsShowBuff == 1 && !string.IsNullOrEmpty(dataByKey.szIconPath))
             {
                 string path = CUIUtility.s_Sprite_Dynamic_Skill_Dir + dataByKey.szIconPath;
                 if (!loadInfo.IsExistsSprite(path))
                 {
                     loadInfo.AddSprite(path);
                 }
             }
             if (dataByKey.astSkillFuncInfo != null && dataByKey.astSkillFuncInfo.Length > 0)
             {
                 for (int i = 0; i < dataByKey.astSkillFuncInfo.Length; i++)
                 {
                     ResDT_SkillFunc resDT_SkillFunc = dataByKey.astSkillFuncInfo[i];
                     if ((resDT_SkillFunc.bSkillFuncType == 28 || resDT_SkillFunc.bSkillFuncType == 33 || resDT_SkillFunc.bSkillFuncType == 54 || resDT_SkillFunc.bSkillFuncType == 55 || resDT_SkillFunc.bSkillFuncType == 27 || resDT_SkillFunc.bSkillFuncType == 84 || resDT_SkillFunc.bSkillFuncType == 32) && resDT_SkillFunc.astSkillFuncParam != null && resDT_SkillFunc.astSkillFuncParam.Length != 0)
                     {
                         int num        = 0;
                         int num2       = 0;
                         int combineId2 = 0;
                         int combineId3 = 0;
                         if (resDT_SkillFunc.astSkillFuncParam[0] != null)
                         {
                             num = resDT_SkillFunc.astSkillFuncParam[0].iParam;
                         }
                         if (resDT_SkillFunc.astSkillFuncParam[1] != null)
                         {
                             num2 = resDT_SkillFunc.astSkillFuncParam[1].iParam;
                         }
                         if (resDT_SkillFunc.astSkillFuncParam[5] != null)
                         {
                             combineId2 = resDT_SkillFunc.astSkillFuncParam[5].iParam;
                         }
                         if (resDT_SkillFunc.astSkillFuncParam[6] != null)
                         {
                             combineId3 = resDT_SkillFunc.astSkillFuncParam[6].iParam;
                         }
                         if (resDT_SkillFunc.bSkillFuncType == 28)
                         {
                             this.AnalyseSkillMark(ref loadInfo, num);
                         }
                         else if (resDT_SkillFunc.bSkillFuncType == 33)
                         {
                             if (combineId != num)
                             {
                                 this.AnalyseSkillCombine(ref loadInfo, num);
                             }
                         }
                         else if (resDT_SkillFunc.bSkillFuncType == 54)
                         {
                             this.AnalyseSkillCombine(ref loadInfo, num);
                         }
                         else if (resDT_SkillFunc.bSkillFuncType == 55)
                         {
                             this.AnalyseSkill(ref loadInfo, num2);
                         }
                         else if (resDT_SkillFunc.bSkillFuncType == 27)
                         {
                             this.AnalyseSkillCombine(ref loadInfo, combineId2);
                             this.AnalyseSkillCombine(ref loadInfo, combineId3);
                         }
                         else if (resDT_SkillFunc.bSkillFuncType == 84)
                         {
                             this.AnalyseSkillCombine(ref loadInfo, num);
                             this.AnalyseSkillCombine(ref loadInfo, num2);
                         }
                         else if (resDT_SkillFunc.bSkillFuncType == 32)
                         {
                             this.AnalyseSkillCombine(ref loadInfo, combineId3);
                         }
                     }
                 }
             }
         }
     }
 }