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