Esempio n. 1
0
        public int GetSampleData()
        {
            string accountName = AccountSession.AccountName;

            accountName = "Player_15364517";
            if (string.IsNullOrEmpty(accountName))
            {
                return(-13);
            }
            return(AbstractDaoMinigame.Instance().CreateMiniPokerDao().GetTestData(accountName));
        }
Esempio n. 2
0
        public bool AutoFinishSession(HiLoGetAccountInfoResponse resultAccInfo,
                                      long accountId, string accountName, string clientIp)
        {
            try
            {
                //Đã hết thời gian chơi
                if (resultAccInfo.currentStep > 1)
                {
                    //Đã chơi có thể tự finish
                    var result = AbstractDaoMinigame.Instance().CreateMiniHiloDao().
                                 SetBet((int)accountId, accountName, resultAccInfo.currentRoomId,
                                        resultAccInfo.currentBetType, 2, 1, clientIp,
                                        1, 1);
                    if (result.responseStatus > 0)
                    {
                        //Đã finish thành công
                        //Chuyển ván mới
                        return(true);
                    }
                    return(false);
                }
                //Chơi random 1 bước sau đó finish
                var randomLocation = new Random().Next(0, 1);
                var resultStep1    = AbstractDaoMinigame.Instance().CreateMiniHiloDao().
                                     SetBet((int)accountId, accountName, resultAccInfo.currentRoomId,
                                            resultAccInfo.currentBetType, 1, randomLocation, clientIp,
                                            1, 1);
                if (resultStep1.responseStatus > 0)
                {
                    //Finish Phiên
                    var resultStep2 = AbstractDaoMinigame.Instance().CreateMiniHiloDao().
                                      SetBet((int)accountId, accountName, resultAccInfo.currentRoomId,
                                             resultAccInfo.currentBetType, 2, 1, clientIp,
                                             1, 1);

                    if (resultStep2.responseStatus > 0)
                    {
                        //Đã finish thành công
                        //Chuyển ván mới
                        return(true);
                    }
                }
                return(false);
            }
            catch (Exception ex)
            {
                NLogManager.PublishException(ex);
                return(false);
            }
        }
Esempio n. 3
0
 public void GetAccountInfoHiLo()
 {
     try
     {
         long   accountId   = AccountSession.AccountID;
         string accountName = AccountSession.AccountName;
         if ((accountId < 1 || string.IsNullOrEmpty(accountName)))
         {
             throw new NotAuthorizedException(NOT_LOGIN_MESSAGE);
         }
         if (CacheCounter.CheckAccountActionFrequency(accountId.ToString(), 15, "GetAccInfo") > 6)
         {
             NLogManager.LogMessage(string.Format("BlockGetAccInfo=>Acc:{0}|User:{1}",
                                                  accountId, accountName));
             return;
         }
         var resultAccInfo = AbstractDaoMinigame.Instance().CreateMiniHiloDao()
                             .GetAccountInfo((int)accountId, accountName);
         NLogManager.LogMessage("resultAccInfo: " + JsonConvert.SerializeObject(resultAccInfo));
         if (resultAccInfo.currentTurnId > 0)
         {
             if (resultAccInfo.remainTime <= 0)
             {
                 NLogManager.LogMessage(string.Format("AutoFinishSession:Acc:{0}|User:{1}|Turn:{2}",
                                                      accountId, accountName, resultAccInfo.currentTurnId));
                 if (HiLoHandler.Instance.AutoFinishSession(resultAccInfo, accountId, accountName, IPAddressHelper.GetClientIP()))
                 {
                     HiLoHandler.Instance.FinishAccSession(resultAccInfo.currentTurnId);
                     return;
                 }
             }
             Clients.Caller.resultHiLoAccountInfo(resultAccInfo);
         }
     }
     catch (Exception exception)
     {
         NLogManager.LogError("ERROR GetAccountInfoHiLo: " + exception);
         NLogManager.PublishException(exception);
     }
 }
Esempio n. 4
0
        public int SetBetHiLo(int betType, int stepType, int locationId, int roomId)
        {
            try
            {
                long   accountId   = AccountSession.AccountID;
                string accountName = AccountSession.AccountName;
                if (accountId < 1 || string.IsNullOrEmpty(accountName))
                {
                    NLogManager.LogMessage(string.Format("Chưa đăng nhập"));
                    return(-1001);
                }
                if (betType < 1 || betType > 2 || locationId < 0 || locationId > 1 || roomId < 1 || roomId > 5)
                {
                    Logout();
                    NLogManager.LogMessage(string.Format("BlockAcc=> {0} ({1}) Wrong Input.", accountName, accountId));
                    return(-212);
                }

                if (CacheCounter.CheckAccountActionFrequency(accountId.ToString(), 1, "SetBet") > 2)
                {
                    NLogManager.LogMessage(string.Format("BlockAccFast => {0} ({1}) bet liên tục 1 giây 2 lần.", accountName, accountId));
                    return(-1001);
                }
                if (CacheCounter.AccountActionCounter(accountId.ToString(), "SetBetAm") > 5)
                {
                    NLogManager.LogMessage(string.Format("BlockAccAm => {0} ({1}) bắn âm > 5 lần.", accountName, accountId));
                    return(-1003);
                }
                var result = AbstractDaoMinigame.Instance().CreateMiniHiloDao().
                             SetBet((int)accountId, accountName, roomId, betType, stepType, locationId, IPAddressHelper.GetClientIP(),
                                    1, 1);

                if (stepType == 2 || result.prizeValue == 0 || result.responseStatus < 0)
                {
                    //Kết thúc phiên hoặc thua cuộc
                    HiLoHandler.Instance.FinishAccSession(result.turnId);
                }
                else
                {
                    if (result.responseStatus < 0)
                    {
                        //Add vào list để duyệt check finish phiên
                        var accInfo = new HiLoGetAccountInfoResponse()
                        {
                            currentTurnId  = result.turnId,
                            currentRoomId  = roomId,
                            currentBetType = betType,
                            AccountId      = accountId,
                            AccountName    = accountName,
                            currentStep    = result.step
                        };
                        HiLoHandler.Instance.AddOrUpdateSession(accInfo);
                    }
                }
                if (result.responseStatus < 0)
                {
                    CacheCounter.CheckAccountActionFrequency(accountId.ToString(), 15, "SetBetAm");
                }
                Clients.Caller.resultHiLoSetBet(result);
                return(result.responseStatus);
            }
            catch (Exception exception)
            {
                NLogManager.PublishException(exception);
            }
            return(-99);
        }