コード例 #1
0
ファイル: Action1001.cs プロジェクト: daneric/Scut
 private int compareTo(UserRanking x, UserRanking y) {
     int result = y.Score - x.Score;
     if (result == 0) {
         result = y.UserId - x.UserId;
     }
     return result;
 }
コード例 #2
0
ファイル: Action1000.cs プロジェクト: daneric/Scut-samples
 public override bool TakeAction()
 {
     var cache = new ShareCacheStruct<UserRanking>();
     var ranking = cache.Find(m => m.UserName == UserName);
     if (ranking == null)
     {
         var user = new GameUser() { UserId = (int)cache.GetNextNo(), NickName = UserName};
         new PersonalCacheStruct<GameUser>().Add(user);
         ranking = new UserRanking();
         ranking.UserID = user.UserId;
         ranking.UserName = UserName;
         ranking.Score = Score;
         if (!cache.Add(ranking))
         {
             ErrorCode = Language.Instance.ErrorCode;
             ErrorInfo = string.Format("add fail, UserID {0} is exist.", ranking.UserID);
             return false;
         }
     }
     else
     {
         ranking.UserName = UserName;
         ranking.Score = Score;
     }
     return true;
 }
コード例 #3
0
ファイル: Action1000.cs プロジェクト: daneric/Scut
 public override bool TakeAction() {
     var cache = new ShareCacheStruct<UserRanking>();
     var ranking = cache.Find(m => m.UserName == userName);
     if (ranking == null) {
         var user = new GameUser() { UserId = (int)cache.GetNextNo(), NickName = userName };
         new PersonalCacheStruct<GameUser>().Add(user);
         ranking = new UserRanking();
         ranking.UserId = user.UserId;
         ranking.UserName = userName;
         ranking.Score = score;
         cache.Add(ranking);
     } else {
         ranking.UserName = userName;
         ranking.Score = score;
     }
     return true;
 }
コード例 #4
0
ファイル: Action1000.cs プロジェクト: guccang/scutlogic
 void UserRankingProcess(GameUser gu)
 {
     var cache         = new ShareCacheStruct<UserRanking>();
     var cacheRanking  = cache.FindKey(gu.UserId);
     if (cacheRanking != null)
     {
         if(gu.Score>cacheRanking.Score  )
         {
             cacheRanking.ModifyLocked(() =>
             {
                 cacheRanking.Score = gu.Score;
             });
         }
     }
     else
     {
         // ֻ��>ij��ֵ��ʱ��żӡ���֤10w���ݼ��ɡ�
         if(gu.Score>=RankingScore.limitScoreAdd)
         {
             UserRanking ur = new UserRanking();
             ur.UserID = gu.UserId;
             ur.Score = gu.Score;
             ur.UserName = gu.NickName;
             cache.Add(ur);
         }
     }
 }
コード例 #5
0
ファイル: Action4000.cs プロジェクト: guccang/scutlogic
 BlackListData UR2BLD(UserRanking ur)
 {
     BlackListData bd = new BlackListData();
     bd.UserID = ur.UserID;
     bd.UserName = ur.UserName;
     bd.Score = ur.Score;
     return bd;
 }
コード例 #6
0
ファイル: Action4000.cs プロジェクト: guccang/scutlogic
        string processAdd(string parm)
        {
            string info = "";
            string[] p = parm.Split(',');
            string addWhich = p[0];
            string name = p[1];
            int score = int.Parse(p[2]) ;
            if("ranking"==addWhich)
            {
                var cache = new PersonalCacheStruct<GameUser>();
                var urCache =new ShareCacheStruct<UserRanking>();

                var gu = new GameUser();
                gu.UserId = (int)cache.GetNextNo();
                gu.NickName = name;
                gu.Score = score;
                gu.Identify = "identify_"+name;
                var ur = new UserRanking();
                ur.UserID = gu.UserId;
                ur.UserName = name;
                ur.Score = score;

                cache.Add(gu);
                urCache.Add(ur);
                info = "增加排行榜数据成功";
            }
            return info;
        }
コード例 #7
0
ファイル: RankingClear.cs プロジェクト: guccang/scutlogic
 UserRanking copy(UserRanking ur)
 {
     UserRanking newUr = new UserRanking();
     newUr.UserID    = ur.UserID;
     newUr.Score     = ur.Score;
     return newUr;
 }