Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
        /// <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);
        }