コード例 #1
0
ファイル: FriendCore.cs プロジェクト: cool8868/H5Nball
        public MatchCreateResponse Fight(Guid managerId, Guid awayId)
        {
            var lastTime = MemcachedFactory.FriendMutexClient.Get <DateTime>(managerId);

            if (lastTime > DateTime.Now)
            {
                return(ResponseHelper.Create <MatchCreateResponse>(MessageCode.FriendMatchWait));
            }

            //好友比赛每天每个好友只能挑战3次, 只有第一次有奖励
            var friend = FriendManagerMgr.GetOne(managerId, awayId);

            if (friend.DayMatchCount >= 3)//每日三次比赛
            {
                return(ResponseHelper.Create <MatchCreateResponse>(MessageCode.FriendMatchOver));
            }

            var matchId = ShareUtil.GenerateComb();
            var code    = MatchCore.CreateMatchFriendAsyn(matchId, managerId, awayId, friend, MatchCallback);

            if (code != MessageCode.Success)
            {
                return(ResponseHelper.Create <MatchCreateResponse>(code));
            }
            MemcachedFactory.FriendMutexClient.Set(managerId, DateTime.Now.AddSeconds(_friendMatchWaitTime));

            return(ResponseHelper.MatchCreateResponse(matchId));
        }