public static RootResponse <DTOSkillSetView> GetSkillSetInfo(Guid mid) { var bag = SkillCardConvert.GetSkillBagWrap(mid); int managerLevel = (int)FrameConvert.GetWorthValue(mid, EnumWorthType.ManagerLevel); var data = new DTOSkillSetView(); data.MaxSetCells = GetMaxSkillCells(managerLevel); var form = MatchDataHelper.GetSolution(mid); if (null != form) { data.FormId = form.FormationId; data.PidStr = form.PlayerString.TrimEnd(); } data.SetList = bag.GetShowSet(); data.CntSetCells = bag.CntSetNum; return(ResponseHelper.CreateRoot <DTOSkillSetView>(data)); }
public static RootResponse <DTOSkillSetView> SkillSet(Guid mid, string cids, bool hasTask) { if (string.IsNullOrEmpty(cids) || cids.Length >= 400) { return(ResponseHelper.CreateRoot <DTOSkillSetView>(MessageCode.SkillSetInvalidArgs)); } string[] skills = cids.Split(','); if (skills.Length != SkillCardConfig.SKILLCardMAXSkillCellSize) { return(ResponseHelper.CreateRoot <DTOSkillSetView>(MessageCode.SkillSetInvalidArgs)); } int managerLevel = (int)FrameConvert.GetWorthValue(mid, EnumWorthType.ManagerLevel); int maxCells = GetMaxSkillCells(managerLevel); var bag = SkillCardConvert.GetSkillBagWrap(mid); var onlib = new Dictionary <string, DTOSkillSetItem>(bag.SetList.Count); foreach (var item in bag.SetList.Values) { item.Index = 0; onlib[item.ItemId] = item; } int cntCells = 0; DTOSkillSetItem setItem = null; var dicChk = new Dictionary <string, byte>(skills.Length); for (int i = 0; i < skills.Length; ++i) { if (skills[i] == string.Empty) { continue; } if (!onlib.TryGetValue(skills[i], out setItem)) { return(ResponseHelper.CreateRoot <DTOSkillSetView>(MessageCode.SkillMissCard)); } if (!SkillCardConvert.FillSkillCardConfig(setItem, false)) { return(ResponseHelper.CreateRoot <DTOSkillSetView>(MessageCode.SkillMissConfig)); } if (dicChk.ContainsKey(setItem.Cfg.SkillRoot)) { return(ResponseHelper.CreateRoot <DTOSkillSetView>(MessageCode.SkillSetLimitRepeat)); } ++cntCells; setItem.Index = i + 1; dicChk[setItem.Cfg.SkillRoot] = 0; skills[i] = setItem.ItemCode; } if (cntCells > maxCells) { return(ResponseHelper.CreateRoot <DTOSkillSetView>(MessageCode.SkillSetLackofCells)); } string setSkills = string.Join(",", skills); string setMap = bag.SetMap; MemcachedFactory.SolutionClient.Delete(mid); int errorCode = 0; NbManagerskillbagMgr.Set(mid, setSkills, null, setMap, bag.RawBag.RowVersion, ref errorCode); if (errorCode != (int)MessageCode.Success) { return(ResponseHelper.CreateRoot <DTOSkillSetView>(errorCode)); } var data = new DTOSkillSetView(); data.MaxSetCells = maxCells; data.CntSetCells = cntCells; data.SetList = bag.GetShowSet(); //if (hasTask) //{ data.PopMsg = TaskHandler.Instance.SkillSet(mid); //} //data.CardList = bag.GetShowBag(); return(ResponseHelper.CreateRoot <DTOSkillSetView>(data)); }