public static List <string>[] GetManagerSkillList(Guid managerId, ManagerSkillUseWrap use, string siteId = "") { var lstAll = new List <string>(); var lib = ManagerUtil.GetSkillLibWrap(managerId, siteId); FixTalents(use, lib, siteId); lstAll.AddRange(lib.LowWills.Keys); lstAll.AddRange(use.SetWills.Keys); lstAll.AddRange(lib.NodoTalents.Keys); if (!string.IsNullOrEmpty(use.Raw.CoachSkill)) { lstAll.Add(use.Raw.CoachSkill); } //var combs = ManagerSkillCache.Instance().CheckCombs(use.SetWills.Keys, use.OnPids); //var combs = ManagerSkillCache.Instance().CheckCombs(use.OnPids); //if (null != combs) // lstAll.AddRange(combs); var clubSkills = ManagerSkillCache.Instance().CheckClubSkills(use.OnPids); if (null != clubSkills) { lstAll.AddRange(clubSkills); } var rankSkills = BuffCache.Instance().GetRankedSkillList(lstAll); //if (null != combs) // rankSkills[1].AddRange(combs); var skills = use.ManagerSkills; skills[0] = rankSkills[0]; skills[1] = rankSkills[1]; skills[2] = rankSkills[2]; return(skills); }
DTOBuffMemberView GetMembers4Db(Guid managerId, ManagerSkillUseWrap use, ArenaTeammemberFrame arenaFrame) { if (!FrameConfig.SWAPBuffDataReadDb || null == use || use.Raw.SyncFlag != 0) { return(null); } var rawMembers = BuffUtil.GetRawMembers(managerId, true, arenaFrame); var members = NbManagerbuffmemberMgr.GetByMid(managerId, ShareUtil.GetTableMod(managerId)); //var extra = NbManagerextraMgr.GetById(managerId); var dic = new Dictionary <Guid, NbManagerbuffmemberEntity>(members.Count); DicPlayerEntity cfg = null; foreach (var item in members) { cfg = PlayersdicCache.Instance.GetPlayer(Math.Abs(item.Pid)); if (null == cfg) { continue; } FillBuffMemberProp(item, cfg); item.ReadySkillList = item.ReadySkills.Split(',').ToList(); item.LiveSkillList = item.LiveSkills.Split(',').ToList(); } var data = CreateBuffView(managerId, use, rawMembers.ToDictionary(i => i.Idx, i => i)); data.Kpi = arenaFrame.Kpi; data.SyncIdleFlag = false; data.BuffMembers = dic; return(data); }
DTOBuffMemberView GetMembers4Mem(out ManagerSkillUseWrap use, out DTOBuffPoolView poolView, Guid managerId, string siteId, ArenaTeammemberFrame arenaFrame) { use = ManagerUtil.GetSkillUseWrap(managerId, siteId); poolView = BuffPoolCore.Instance().GetRawPools(managerId, siteId, true); bool syncFlag = true; if (FrameConfig.SWAPBuffDisableCrossCache && !string.IsNullOrEmpty(siteId)) { syncFlag = false; } ulong verNo = use.VersionNo; DateTime dtNow = DateTime.Now; if (verNo == 0 || dtNow >= poolView.SyncTime) { if (syncFlag) { s_buffSync.SyncBuffPools(managerId, siteId); } return(null); } var data = s_memBuffMember.Get <DTOBuffMemberView>(arenaFrame.ArenaType.ToString() + managerId.ToString()); if (null != data && data.UseSyncVersion == verNo && data.PoolSyncTime == poolView.SyncTime && data.PoolSyncVersion == poolView.SyncVersion) { return(data); } return(null); }
static void FixTalents(ManagerSkillUseWrap use, ManagerSkillLibWrap lib, string siteId) { bool needFix = false; foreach (var item in lib.NodoTalents) { if (!item.Key.Contains('_')) { needFix = true; break; } } if (!needFix) { foreach (var item in lib.TodoTalents) { if (!item.Key.Contains('_')) { needFix = true; break; } } } if (needFix) { var skills = NbManagertreeMgr.GetByManagerId(use.Raw.ManagerId, siteId); foreach (var item in skills) { if (lib.NodoTalents.ContainsKey(item.SkillCode)) { lib.NodoTalents.Remove(item.SkillCode); lib.NodoTalents[item.SkillCode + "_" + item.Points] = 0; } if (lib.TodoTalents.ContainsKey(item.SkillCode)) { lib.TodoTalents.Remove(item.SkillCode); lib.TodoTalents[item.SkillCode + "_" + item.Points] = 0; } } } for (int i = 0; i < use.SetTalents.Length; i++) { if (string.IsNullOrEmpty(use.SetTalents[i])) { continue; } foreach (var todoSkill in lib.TodoTalents) { if (todoSkill.Key.StartsWith(use.SetTalents[i], true, System.Globalization.CultureInfo.InvariantCulture)) { use.SetTalents[i] = todoSkill.Key; break; } } } }
public static void FillLiveSkillList(ManagerSkillUseWrap use, List <string> liveSkills) { if (null == use || null == liveSkills || liveSkills.Count == 0) { return; } var skills = use.ManagerSkills; skills[1].AddRange(liveSkills); }
DTOBuffMemberView CreateBuffView(Guid managerId, ManagerSkillUseWrap use, Dictionary <Guid, TeammemberEntity> rawMembers) { var mSkills = use.ManagerSkills; var obj = new DTOBuffMemberView(); obj.CreateTime = DateTime.Now; obj.SyncIdleFlag = true; obj.UseSyncVersion = use.VersionNo; obj.ReadySkillList = mSkills[0]; obj.LiveSkillList = mSkills[1]; obj.FirmSkillList = mSkills[2]; obj.SubSkills = use.SetTalents; obj.RawMembers = rawMembers; return(obj); }