/// <summary> /// 业务逻辑处理 /// </summary> /// <returns>false:中断后面的方式执行并返回Error</returns> public override bool TakeAction() { responsePack = new ClientCharacterListResponse(); var RoleCache = new PersonalCacheStruct <UserRole>(); var RoleList = RoleCache.FindAll(Current.UserId.ToString()); for (int i = 0; i < RoleList.Count; i++) { UserRole role = RoleList[i]; CharacterDBSimpleInfo simpleInfo = new CharacterDBSimpleInfo(); RoleManager.GetRoleSimpleInfo(role, simpleInfo); responsePack.charInfoList.Add(simpleInfo); } return(true); }
public static void GetRoleSimpleInfo(UserRole role, CharacterDBSimpleInfo charSimpleInfo) { if (charSimpleInfo == null || role == null) { return; } charSimpleInfo.charId = (uint)role.RoleId; charSimpleInfo.name = role.Name; charSimpleInfo.sex = (uint)role.Sex; charSimpleInfo.prof = (uint)role.Prof; charSimpleInfo.level = (uint)role.Level; charSimpleInfo.race = (uint)role.Race; charSimpleInfo.exp = (uint)role.Exp; charSimpleInfo.hp = (uint)role.Hp; charSimpleInfo.fightPower = (uint)role.FightPower; charSimpleInfo.official = role.Official; charSimpleInfo.knight = role.Knight; charSimpleInfo.camp = role.Camp; }
/// <summary> /// 业务逻辑处理 /// </summary> /// <returns>false:中断后面的方式执行并返回Error</returns> public override bool TakeAction() { responsePack = new ClientCreateCharacterResponse(); int userId = Current.UserId; string name = requestPack.name; int sex = (int)requestPack.sex; int prof = (int)requestPack.prof; if (name.Length < (int)CharacterDefine.CHARACTER_NAME_MIN_LENGTH || name.Length > (int)CharacterDefine.CHARACTER_NAME_MAX_LENGTH) { responsePack.result = (uint)ClientCreateCharacterResponse.RESULT.CREATE_CHARACTER_RESULT_NAME_LENGTH; return(true); } var UserCache = new PersonalCacheStruct <GameUser>(); var RoleCache = new PersonalCacheStruct <UserRole>(); GameUser gameUser = UserCache.FindKey(userId.ToString()); if (gameUser == null) { responsePack.result = (uint)ClientCreateCharacterResponse.RESULT.CREATE_CHARACTER_RESULT_FAIL; return(true); } var RoleList = RoleCache.FindAll(userId.ToString()); if (RoleList.Count > (int)CharacterDefine.MAX_CREATE_CHARACTER_COUNT) { responsePack.result = (uint)ClientCreateCharacterResponse.RESULT.CREATE_CHARACTER_RESULT_MAX_COUNT; return(true); } var SameNameRole = RoleList.Find(_role => _role.Name == name); if (SameNameRole != null) { responsePack.result = (uint)ERetCode.RET_LOGIN_CHARACTER_NAME_EXISTS; return(true); } int roleId = 0; if (gameUser.MaxRoleId == 0) { roleId = userId * RoleManager.RoleIdParam; gameUser.MaxRoleId = roleId; } else { roleId = gameUser.MaxRoleId + 1; gameUser.MaxRoleId = roleId; } UserRole role = RoleManager.CreateRole(userId, roleId, name, sex, prof); if (role == null) { responsePack.result = (uint)ClientCreateCharacterResponse.RESULT.CREATE_CHARACTER_RESULT_FAIL; return(false); } RoleCache.Add(role); RoleCache.Update(); { responsePack.result = (uint)ClientCreateCharacterResponse.RESULT.CREATE_CHARACTER_RESULT_SUCCESS; CharacterDBSimpleInfo dbSimpleInfo = new CharacterDBSimpleInfo(); RoleManager.GetRoleSimpleInfo(role, dbSimpleInfo); responsePack.newCharacterInfo = dbSimpleInfo; } return(true); }