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); }
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); }
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); }