Пример #1
0
        /// <summary>
        /// UserAchievementCache
        /// </summary>
        public static void DoUserAchievementCache()
        {
            var achieveSet = new PersonalCacheStruct <UserAchievementCache>();

            TraceLog.WriteInfo("Do UserAchievementCache table start...");
            int count = 0;

            try
            {
                var    dbProvider = DbConnectionProvider.CreateDbProvider(DbConfig.MERGE);
                string sql        = "SELECT UserID,AchievementList FROM UserAchievementCache";
                using (IDataReader reader = dbProvider.ExecuteReader(CommandType.Text, sql))
                {
                    while (reader.Read())
                    {
                        UserAchievementCache achievecache = new UserAchievementCache()
                        {
                            UserID = reader["UserID"].ToInt()
                        };

                        var bytes = reader.GetValue(1) as byte[];
                        achievecache.AchievementList = (CacheList <AchievementData>)ProtoBufUtils.Deserialize(bytes, typeof(CacheList <AchievementData>));

                        if (achieveSet.FindKey(achievecache.UserID.ToString()) == null)
                        {
                            //achieveSet.Add(achievecache);
                            count++;
                        }
                    }
                    //achieveSet.Update();
                }
            }
            catch (Exception ex)
            {
                TraceLog.WriteError("Do UserAchievementCache table error Exception: {0} .", ex);
                return;
            }


            TraceLog.WriteInfo("Do UserAchievementCache table successful : {0} .", count);
        }
Пример #2
0
        public static UserBasisCache CreateRole(int _UserId, string _Sid, int _ServerID, string _Pid, string _RetailID,
                                                string _UserName, int _profession, string _HeadID)
        {
            // Basis初始化
            UserBasisCache basis = new UserBasisCache(_UserId);

            basis.IsRefreshing   = true;
            basis.SessionID      = _Sid;
            basis.ServerID       = _ServerID;
            basis.Pid            = _Pid;
            basis.RetailID       = _RetailID;
            basis.NickName       = _UserName;
            basis.UserLv         = (short)ConfigEnvSet.GetInt("User.Level");
            basis.RewardsDiamond = ConfigEnvSet.GetInt("User.InitDiamond");
            //bisis.Vit = DataHelper.InitVit;
            basis.VipLv           = ConfigEnvSet.GetInt("User.VipLv");
            basis.Profession      = _profession;
            basis.AvatarUrl       = _HeadID;
            basis.UserStatus      = UserStatus.MainUi;
            basis.LoginDate       = DateTime.Now;
            basis.CreateDate      = DateTime.Now;
            basis.OfflineDate     = DateTime.Now;
            basis.Gold            = ConfigEnvSet.GetString("User.InitGold");
            basis.OfflineEarnings = "0";

            var cacheSet = new PersonalCacheStruct <UserBasisCache>();

            cacheSet.Add(basis);
            cacheSet.Update();

            // 属性初始化
            UserAttributeCache attcache = new UserAttributeCache();

            attcache.UserID = basis.UserID;
            var attributeSet = new PersonalCacheStruct <UserAttributeCache>();

            attributeSet.Add(attcache);
            attributeSet.Update();

            // 装备初始化
            UserEquipsCache equipcache = new UserEquipsCache();

            equipcache.UserID = basis.UserID;
            equipcache.ResetCache();
            var equipsSet = new PersonalCacheStruct <UserEquipsCache>();

            equipsSet.Add(equipcache);
            equipsSet.Update();

            // 背包初始化
            UserPackageCache packagecache = new UserPackageCache();

            packagecache.UserID = basis.UserID;
            packagecache.ResetCache();
            var packageSet = new PersonalCacheStruct <UserPackageCache>();


            packagecache.AddItem(20001, 1);
            packagecache.AddItem(20012, 1);
            packagecache.AddItem(20023, 1);
            packagecache.AddItem(20034, 1);
            packagecache.AddItem(20045, 1);
            packagecache.AddItem(20056, 1);
            packagecache.AddItem(20067, 1);
            //for (int i = 20001; i < 20077; ++i)
            //    packagecache.AddItem(i, 10);
            //for (int i = 30001; i < 30005; ++i)
            //    packagecache.AddItem(i, 9999);
            //for (int i = 40001; i < 40009; ++i)
            //    packagecache.AddItem(i, 1);

            packageSet.Add(packagecache);
            packageSet.Update();

            // 战魂初始化
            UserSoulCache soulcache = new UserSoulCache();

            soulcache.UserID = basis.UserID;
            soulcache.ResetCache();
            var soulSet = new PersonalCacheStruct <UserSoulCache>();

            soulSet.Add(soulcache);
            soulSet.Update();



            // 技能初始化
            UserSkillCache skillcache = new UserSkillCache();

            skillcache.UserID = basis.UserID;
            skillcache.ResetCache(_profession);
            var skillSet = new PersonalCacheStruct <UserSkillCache>();

            skillSet.Add(skillcache);
            skillSet.Update();

            // 好友初始化
            UserFriendsCache friendscache = new UserFriendsCache();

            friendscache.UserID = basis.UserID;
            friendscache.ResetCache();
            var friendsSet = new PersonalCacheStruct <UserFriendsCache>();

            friendsSet.Add(friendscache);
            friendsSet.Update();

            // 成就初始化
            UserAchievementCache achievecache = new UserAchievementCache();

            achievecache.UserID = basis.UserID;
            achievecache.ResetCache();
            var achieveSet = new PersonalCacheStruct <UserAchievementCache>();

            achieveSet.Add(achievecache);
            achieveSet.Update();

            // 充值初始化
            UserPayCache paycache = new UserPayCache();

            paycache.UserID = basis.UserID;
            paycache.ResetCache();
            var paySet = new PersonalCacheStruct <UserPayCache>();

            paySet.Add(paycache);
            paySet.Update();

            // 邮箱初始化
            UserMailBoxCache mailcache = new UserMailBoxCache();

            mailcache.UserID = basis.UserID;
            mailcache.ResetCache();
            var      mailSet = new PersonalCacheStruct <UserMailBoxCache>();
            MailData mail    = new MailData()
            {
                ID      = Guid.NewGuid().ToString(),
                Title   = "恭喜您已获得月卡免费体验资格",
                Sender  = "系统",
                Date    = DateTime.Now,
                Context = "恭喜您已获得月卡免费体验资格,月卡有效期为1天,为了您能获得更好的游戏体验,您可以在充值页面续费成为我们正式的月卡用户!",
            };

            UserHelper.AddNewMail(basis.UserID, mail, false);
            mailSet.Add(mailcache);
            mailSet.Update();

            // 任务初始化
            UserTaskCache taskcache = new UserTaskCache();

            taskcache.UserID = basis.UserID;
            taskcache.ResetCache();
            var taskSet = new PersonalCacheStruct <UserTaskCache>();

            taskSet.Add(taskcache);
            taskSet.Update();


            // 竞技场初始化
            UserCombatCache combatcache = new UserCombatCache();

            combatcache.UserID = basis.UserID;
            combatcache.ResetCache();
            var combatSet = new PersonalCacheStruct <UserCombatCache>();

            combatSet.Add(combatcache);
            combatSet.Update();

            // 活动相关初始化
            UserEventAwardCache eventawardcache = new UserEventAwardCache();

            eventawardcache.UserID = basis.UserID;
            eventawardcache.ResetCache();
            var eventAwardSet = new PersonalCacheStruct <UserEventAwardCache>();

            eventAwardSet.Add(eventawardcache);
            eventAwardSet.Update();

            // 公会初始化
            UserGuildCache guildcache = new UserGuildCache();

            guildcache.UserID = basis.UserID;
            guildcache.ResetCache();
            var guildSet = new PersonalCacheStruct <UserGuildCache>();

            guildSet.Add(guildcache);
            guildSet.Update();

            // 精灵初始化
            UserElfCache elfcache = new UserElfCache();

            elfcache.UserID = basis.UserID;
            elfcache.ResetCache();
            var elfSet = new PersonalCacheStruct <UserElfCache>();

            elfSet.Add(elfcache);
            elfSet.Update();

            // 赠送物品初始化
            UserTransferItemCache transfercache = new UserTransferItemCache();

            transfercache.UserID = basis.UserID;
            transfercache.ResetCache();
            var transferSet = new PersonalCacheStruct <UserTransferItemCache>();

            transferSet.Add(transfercache);
            transferSet.Update();

            // 仇人数据初始化
            UserEnemysCache enemy = new UserEnemysCache();

            enemy.UserID = basis.UserID;
            enemy.ResetCache();
            var enemySet = new PersonalCacheStruct <UserEnemysCache>();

            enemySet.Add(enemy);
            enemySet.Update();

            // 抽奖数据初始化
            UserLotteryCache lottery = new UserLotteryCache();

            lottery.UserID = basis.UserID;
            lottery.ResetCache();
            var lotterySet = new PersonalCacheStruct <UserLotteryCache>();

            lotterySet.Add(lottery);
            lotterySet.Update();

            UserHelper.RefreshUserFightValue(basis.UserID, false);

            // 排行榜初始化
            UserRank combatRank = new UserRank()
            {
                UserID     = basis.UserID,
                NickName   = basis.NickName,
                Profession = basis.Profession,
                UserLv     = basis.UserLv,
                AvatarUrl  = basis.AvatarUrl,
                VipLv      = basis.VipLv,
                FightValue = attcache.FightValue,
                RankId     = int.MaxValue,
                RankDate   = DateTime.Now,
            };
            Ranking <UserRank> combatranking = RankingFactory.Get <UserRank>(CombatRanking.RankingKey);
            var combat = combatranking as CombatRanking;

            combat.TryAppend(combatRank);
            combat.rankList.Add(combatRank);

            UserRank           levelRank    = new UserRank(combatRank);
            Ranking <UserRank> levelranking = RankingFactory.Get <UserRank>(LevelRanking.RankingKey);
            var level = levelranking as LevelRanking;

            level.TryAppend(levelRank);
            level.rankList.Add(levelRank);

            UserRank           fightRank    = new UserRank(combatRank);
            Ranking <UserRank> fightranking = RankingFactory.Get <UserRank>(FightValueRanking.RankingKey);
            var fight = fightranking as FightValueRanking;

            fight.TryAppend(fightRank);
            fight.rankList.Add(fightRank);

            UserRank           comboRank    = new UserRank(combatRank);
            Ranking <UserRank> comboranking = RankingFactory.Get <UserRank>(ComboRanking.RankingKey);
            var combo = comboranking as ComboRanking;

            combo.TryAppend(comboRank);
            combo.rankList.Add(comboRank);


            UserHelper.RestoreUserData(basis.UserID);
            UserHelper.EveryDayTaskProcess(basis.UserID, TaskType.Login, 1, false);
            //UserHelper.AddMouthCardMail(basis.UserID);


            return(basis);
        }