Exemple #1
0
    public static ListView <ResSkillUnlock> GetSelSkillAvailable(ResDT_UnUseSkill unUseSkillInfo)
    {
        ListView <ResSkillUnlock> listView = new ListView <ResSkillUnlock>();
        CRoleInfo masterRoleInfo           = Singleton <CRoleInfoManager> .instance.GetMasterRoleInfo();

        if (unUseSkillInfo == null)
        {
            return(listView);
        }
        for (int i = 0; i < GameDataMgr.addedSkiilDatabin.count; i++)
        {
            ResSkillUnlock dataByIndex = GameDataMgr.addedSkiilDatabin.GetDataByIndex(i);
            if (masterRoleInfo != null && masterRoleInfo.PvpLevel >= (uint)dataByIndex.wAcntLevel)
            {
                bool flag = true;
                if (unUseSkillInfo != null)
                {
                    for (int j = 0; j < unUseSkillInfo.UnUseSkillList.Length; j++)
                    {
                        if (unUseSkillInfo.UnUseSkillList[j] == dataByIndex.dwUnlockSkillID)
                        {
                            flag = false;
                            break;
                        }
                    }
                }
                if (flag)
                {
                    listView.Add(dataByIndex);
                }
            }
        }
        return(listView);
    }
Exemple #2
0
    public static bool IsSelSkillAvailable(ResDT_UnUseSkill unUseSkillInfo, uint selSkillId)
    {
        CRoleInfo masterRoleInfo = Singleton <CRoleInfoManager> .instance.GetMasterRoleInfo();

        ResSkillUnlock resSkillUnlock = null;

        if (unUseSkillInfo == null)
        {
            return(false);
        }
        for (int i = 0; i < GameDataMgr.addedSkiilDatabin.count; i++)
        {
            ResSkillUnlock dataByIndex = GameDataMgr.addedSkiilDatabin.GetDataByIndex(i);
            if (dataByIndex.dwUnlockSkillID == selSkillId)
            {
                resSkillUnlock = dataByIndex;
                break;
            }
        }
        if (resSkillUnlock != null && masterRoleInfo != null && masterRoleInfo.PvpLevel >= (uint)resSkillUnlock.wAcntLevel)
        {
            if (unUseSkillInfo != null)
            {
                for (int j = 0; j < unUseSkillInfo.UnUseSkillList.Length; j++)
                {
                    if (unUseSkillInfo.UnUseSkillList[j] == resSkillUnlock.dwUnlockSkillID)
                    {
                        return(false);
                    }
                }
            }
            return(true);
        }
        return(false);
    }
Exemple #3
0
    public static uint GetSelfSelSkill(ResDT_UnUseSkill unUseSkillInfo, uint heroId)
    {
        if (!CAddSkillSys.IsSelSkillAvailable())
        {
            return(0u);
        }
        if (unUseSkillInfo == null)
        {
            return(0u);
        }
        CRoleInfo masterRoleInfo = Singleton <CRoleInfoManager> .instance.GetMasterRoleInfo();

        if (masterRoleInfo == null)
        {
            return(0u);
        }
        uint      num      = 0u;
        CHeroInfo heroInfo = masterRoleInfo.GetHeroInfo(heroId, true);

        if (heroInfo != null)
        {
            num = heroInfo.skillInfo.SelSkillID;
        }
        else if (masterRoleInfo.IsFreeHero(heroId))
        {
            COMDT_FREEHERO_INFO freeHeroSymbol = masterRoleInfo.GetFreeHeroSymbol(heroId);
            if (freeHeroSymbol != null)
            {
                num = freeHeroSymbol.dwSkillID;
            }
        }
        if (!CAddSkillSys.IsSelSkillAvailable(unUseSkillInfo, num))
        {
            num = GameDataMgr.addedSkiilDatabin.GetAnyData().dwUnlockSkillID;
        }
        if (!CAddSkillSys.IsSelSkillAvailable(unUseSkillInfo, num))
        {
            num = GameDataMgr.globalInfoDatabin.GetDataByKey(154u).dwConfValue;
        }
        return(num);
    }