コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }