Пример #1
0
        protected override bool DoSuccess(int userId, out IUser user)
        {
            user = null;
            var          cacheSet  = new PersonalCacheStruct <GameUserCopy>();
            var          roleCache = new PersonalCacheStruct <UserRole>();
            var          roleList  = roleCache.FindAll(Uid);
            GameUserCopy gameUser  = cacheSet.FindKey(Uid);

            if (gameUser == null || roleList.Count == 0)
            {
                //通知客户跳转到创建角色接口
                GuideId = 1005;
                return(true);
            }
            user = new SessionUser(gameUser);
            if (gameUser.CurrRoleId == 0)
            {
                gameUser.CurrRoleId = roleList[0].RoleId;
            }

            return(true);
        }
Пример #2
0
        protected override bool CreateUserRole(out IUser user)
        {
            user = null;
            if (UserName.Length < 2 || UserName.Length > 12)
            {
                ErrorCode = Language.Instance.ErrorCode;
                ErrorInfo = Language.Instance.St1005_UserNameNotEnough;
                return(false);
            }
            var          userCache     = new PersonalCacheStruct <GameUserCopy>();
            var          roleCache     = new PersonalCacheStruct <UserRole>();
            var          userNameCache = new PersonalCacheStruct <UserDescription>();
            GameUserCopy gameUser;



            if (userCache.TryFindKey(Pid, out gameUser) == LoadingStatus.Success)
            {
                if (gameUser == null)
                {
                    gameUser = new GameUserCopy
                    {
                        UserId     = UserId,
                        PassportId = Pid,
                        RetailId   = RetailID,
                        NickName   = Pid
                    };
                    userCache.Add(gameUser);
                }
                user = new SessionUser(gameUser);

                /////////////////Test////////////////////////////
                UserDescription description;
                if (userNameCache.TryFind(gameUser.PersonalId, r => r.UserId == gameUser.UserId, out description) == LoadingStatus.Success)
                {
                    if (description == null)
                    {
                    }
                }



                ////////////////////////////////////////////////////

                UserRole role;
                if (roleCache.TryFind(gameUser.PersonalId, r => r.RoleName == UserName, out role) == LoadingStatus.Success)
                {
                    if (role == null)
                    {
                        role = new UserRole()
                        {
                            RoleId        = (int)roleCache.GetNextNo(),
                            UserId        = UserId,
                            RoleName      = UserName,
                            HeadImg       = HeadID,
                            Sex           = Sex.ToBool(),
                            LvNum         = 1,
                            ExperienceNum = 0,
                            LifeNum       = 100,
                            LifeMaxNum    = 100
                        };
                        roleCache.Add(role);
                        gameUser.CurrRoleId = role.RoleId;
                    }
                    return(true);
                }
            }
            return(false);
        }