コード例 #1
0
ファイル: SlotMachine.cs プロジェクト: ssdody/BedeSlots
        public SpinData Spin(int rows, int cols, decimal amount)
        {
            var matrix      = GenerateItemMatrix(rows, cols, items);
            var coefficient = CalculateCoefficient(matrix);

            amount = coefficient != 0 ? Math.Round(((decimal)coefficient * amount), 2) : 0;

            var spinData = new SpinData()
            {
                Matrix      = GetNamesOfItems(matrix),
                Amount      = amount,
                WinningRows = winningRows,
                Coefficient = coefficient
            };

            return(spinData);
        }
コード例 #2
0
    IEnumerator ProcessSpinData(SpinData spinData)
    {
        Debug.Log("ProcessSpinData " + spinData.spawnSkills.Count);
        if (spinData.newBossData != null)
        {
            Debug.Log("ProcessSpinData~~~~~~~~~ ");
            PauseSpawnSkill();
        }
        // Show Glow on user slot if not you
        Vector3 fromPos = Vector3.zero;

        if (!spinData.isYou)
        {
            PlayerSlotScript playerSlot = FindUserSlot(spinData.username);
            if (playerSlot != null)
            {
                fromPos = playerSlot.transform.position;
                playerSlot.ShowGlow();
            }
        }
        else
        {
            fromPos = userAvatarTexture.transform.position;
            if (!bigWinPanel.isShowing && spinData.newBossData == null)
            {
                slotMachine.Wait();
                if (!IsInvoking("ReleaseSlotPause"))
                {
                    Invoke("ReleaseSlotPause", 1f * spinData.spawnSkills.Count);
                }
            }
        }
        for (int i = 0; i < spinData.spawnSkills.Count; i++)
        {
            SpawnSkill(spinData.spawnSkills[i], fromPos, spinData.isYou);
            yield return(new WaitForSeconds(0.5f));
        }
        if (spinData.newBossData != null)
        {
            yield return(new WaitForSeconds(2f));

            DisplayBossDrop(spinData.dropCash, spinData.dropGem, spinData.newBossData);
        }
    }
コード例 #3
0
	IEnumerator ProcessSpinData(SpinData spinData) {
		Debug.Log("ProcessSpinData " + spinData.spawnSkills.Count);
		if (spinData.newBossData != null) {
			Debug.Log("ProcessSpinData~~~~~~~~~ ");
			PauseSpawnSkill();
		}
		// Show Glow on user slot if not you
		Vector3 fromPos = Vector3.zero;
		if (!spinData.isYou) {
			PlayerSlotScript playerSlot = FindUserSlot(spinData.username);
			if (playerSlot != null) {
				fromPos = playerSlot.transform.position;
				playerSlot.ShowGlow();
			}
		} else {
			fromPos = userAvatarTexture.transform.position;
			if (!bigWinPanel.isShowing && spinData.newBossData == null) {
				slotMachine.Wait();
				if (!IsInvoking("ReleaseSlotPause")) {
					Invoke("ReleaseSlotPause", 1f * spinData.spawnSkills.Count);
				}
			}
		}
		for (int i = 0; i < spinData.spawnSkills.Count; i++) {
			SpawnSkill(spinData.spawnSkills[i], fromPos, spinData.isYou);
			yield return new WaitForSeconds(0.5f);
		}
		if (spinData.newBossData != null) {
			yield return new WaitForSeconds(2f);
			DisplayBossDrop(spinData.dropCash, spinData.dropGem, spinData.newBossData);
		}
	}
コード例 #4
0
	public void AddSpinDataToQueue(SpinData mSpinData) {
		listSpinDatas.Add(mSpinData);
	}
コード例 #5
0
        /// <summary>
        /// Quay
        /// </summary>
        /// <param name="accountID"></param>
        /// <param name="username"></param>
        /// <param name="linesData"></param>
        /// <param name="roomTypeID"></param>
        /// <param name="clientIP"></param>
        /// <param name="sourceId"></param>
        /// <param name="merchantId"></param>
        /// <param name="bonusGame"></param>
        /// <returns></returns>
        public SpinData Spin(int accountID, string username,
                             string linesData, int roomId, string clientIP, MoneyType moneyType)
        {
            try
            {
                string s = "[thantai] SpinInfo accountID: " + accountID +
                           "\r\nuserName: "******"\r\nlinesData: " + linesData +
                           "\r\nroomid: " + roomId +
                           "\r\nclientIp: " + clientIP +
                           "\r\nmoneyType: " + accountID;
                var db   = new DBHelper(Config.Game2ConnectionString);
                var pars = new SqlParameter[22];
                pars[0] = new SqlParameter("@_AccountID", accountID);
                pars[1] = new SqlParameter("@_Username", username);
                pars[2] = new SqlParameter("@_RoomID", roomId);
                pars[3] = new SqlParameter("@_LineData", linesData);
                pars[4] = new SqlParameter("@_ClientIP", clientIP);
                pars[5] = new SqlParameter("@_SpinID", SqlDbType.BigInt)
                {
                    Direction = ParameterDirection.Output
                };
                pars[6] = new SqlParameter("@_SlotData", SqlDbType.VarChar, 100)
                {
                    Direction = ParameterDirection.Output
                };
                pars[7] = new SqlParameter("@_PrizeData", SqlDbType.VarChar, 500)
                {
                    Direction = ParameterDirection.Output
                };
                pars[8] = new SqlParameter("@_IsJackpot", SqlDbType.Bit)
                {
                    Direction = ParameterDirection.Output
                };
                pars[9] = new SqlParameter("@_Jackpot", SqlDbType.BigInt)
                {
                    Direction = ParameterDirection.Output
                };
                pars[10] = new SqlParameter("@_BonusGameData", SqlDbType.VarChar, 500)
                {
                    Direction = ParameterDirection.Output
                };
                pars[11] = new SqlParameter("@_PositionData", SqlDbType.VarChar, 500)
                {
                    Direction = ParameterDirection.Output
                };
                pars[12] = new SqlParameter("@_FreeSpins", SqlDbType.Int)
                {
                    Direction = ParameterDirection.Output
                };
                pars[13] = new SqlParameter("@_TotalBetValue", SqlDbType.Int)
                {
                    Direction = ParameterDirection.Output
                };
                pars[14] = new SqlParameter("@_PaylinePrizeValue", SqlDbType.BigInt)
                {
                    Direction = ParameterDirection.Output
                };                                                                                                             //Tong so tien thang
                pars[15] = new SqlParameter("@_PrizeFund", SqlDbType.BigInt)
                {
                    Direction = ParameterDirection.Output
                };                                                                                                     //Quỹ
                pars[16] = new SqlParameter("@_Balance", SqlDbType.BigInt)
                {
                    Direction = ParameterDirection.Output
                };                                                                                                   //số dư gold hoac coin
                pars[17] = new SqlParameter("@_ResponseStatus", SqlDbType.Int)
                {
                    Direction = ParameterDirection.Output
                };
                pars[18] = new SqlParameter("@_BonusMultiplier", SqlDbType.Int)
                {
                    Direction = ParameterDirection.Output
                };                                                                                                        // Hệ số nhân Bonus khởi điểm
                pars[19] = new SqlParameter("@_BonusPrizeValue", SqlDbType.BigInt)
                {
                    Direction = ParameterDirection.Output
                };                                                                                                           //Tiền thắng Bonus
                pars[20] = new SqlParameter("@_SessionFreeSpins", SqlDbType.Int)
                {
                    Direction = ParameterDirection.Output
                };                                                                                                         //Tổng số lượt free spin đã chơi
                pars[21] = new SqlParameter("@_PrizeValueFreeSpins", SqlDbType.Int)
                {
                    Direction = ParameterDirection.Output
                };                                                                                                            //Giá trị thắng freeSpin

                //NLogManager.LogMessage("Spin(tamquoc): " + (moneyType == MoneyType.Gold ? "SP_Spins_CreateTransaction" : "SP_Spins_CreateTransaction_Coin") +
                //    "\r\nroomId: " + roomId +
                //    "\r\naccountID: " + accountID +
                //    "\r\nuserName: "******"\r\nlinesData: " + linesData +
                //    "\r\nclientIP: " + clientIP);

                db.ExecuteNonQuerySP(
                    moneyType == MoneyType.Gold ? "SP_Spins_CreateTransaction" : "SP_Spins_CreateTransaction_Coin",
                    pars);
                s += "\r\nResult spin: " + JsonConvert.SerializeObject(pars) +
                     "\r\n" + JsonConvert.SerializeObject(pars.Select(x => x.Value).ToArray());
                var data = new SpinData
                {
                    AccountID           = accountID,
                    Balance             = long.Parse(pars[16].Value.ToString()),
                    IsJackpot           = bool.Parse(pars[8].Value.ToString()),
                    Jackpot             = long.Parse(pars[9].Value.ToString()),
                    ResponseStatus      = int.Parse(pars[17].Value.ToString()),
                    PrizeFund           = Convert.ToInt64(pars[15].Value.ToString()),
                    SpinID              = long.Parse(pars[5].Value.ToString()),
                    TotalBetValue       = int.Parse(pars[13].Value.ToString()),
                    TotalPrizeValue     = long.Parse(pars[14].Value.ToString()),
                    TotalFreeSpin       = int.Parse(pars[12].Value.ToString()),
                    PrizeValueFreeSpins = int.Parse(pars[21].Value.ToString()),
                    BonusGame           = new BonusGame()
                    {
                        StartBonus    = (int)pars[18].Value,
                        GoldMinerData = pars[10].Value.ToString(),
                        PrizeValue    = Convert.ToInt64(pars[19].Value.ToString())
                    }
                };
                if (!string.IsNullOrEmpty(pars[7].Value.ToString()))
                {
                    NLogManager.LogMessage(
                        $"SlotMachineSpinData-Spin-PrizesData: prizeData:{pars[7].Value}|posionData:{pars[11].Value}");
                    data.PrizesData = SpinData.SetPrizeLines($"{pars[7].Value}",
                                                             $"{pars[11].Value}");
                }
                if (!string.IsNullOrEmpty(pars[13].Value.ToString()))
                {
                    data.SlotsData = SpinData.SetSlots($"{pars[6].Value}");
                }
                if (moneyType == MoneyType.Gold)
                {
                    NLogManager.LogMessage($"SP_SlotDiamond_Spin=>Acc:{data.AccountID}|User:{username}|Room:{roomId}|SpinID:{data.SpinID}|ResponseStatus:{data.ResponseStatus}|IsJackpot:{data.IsJackpot}|TotalPrizeValue:{data.TotalPrizeValue}|linesData:{linesData}|IP:{clientIP}");
                }
                s += "\r\nResponse data: " + JsonConvert.SerializeObject(data);
                NLogManager.LogMessage(s);
                return(data);
            }
            catch (Exception ex)
            {
                NLogManager.LogError("ERROR Spin: " + ex);
                NLogManager.PublishException(ex);
            }

            return(new SpinData()
            {
                AccountID = accountID,
                ResponseStatus = -1001
            });
        }
コード例 #6
0
 public void AddSpinDataToQueue(SpinData mSpinData)
 {
     listSpinDatas.Add(mSpinData);
 }
コード例 #7
0
        public SpinData SP_SlotsKingPoker_Spin(InputSpin valueSpin)
        {
            try
            {
                var db = new DBHelper(ConnectionString.GameConnectionString);

                var oCommand = new SqlCommand(valueSpin.BetType == 1 ? "SP_Spins_CreateTransaction" : "SP_Spins_CreateTransaction_Coin") { CommandType = CommandType.StoredProcedure };
                oCommand.Parameters.AddWithValue("@_AccountID", valueSpin.AccountId);
                oCommand.Parameters.AddWithValue("@_UserName", valueSpin.UserName);
                oCommand.Parameters.AddWithValue("@_RoomID", valueSpin.RoomId);
                oCommand.Parameters.AddWithValue("@_LinesData", valueSpin.LinesData);
                oCommand.Parameters.AddWithValue("@_ClientIP", valueSpin.ClientIp);

                var outSpinId = new SqlParameter("@_SpinID", SqlDbType.BigInt) { Direction = ParameterDirection.Output };
                oCommand.Parameters.Add(outSpinId);

                var outSlotsData = new SqlParameter("@_SlotsData", SqlDbType.NVarChar, 50) { Direction = ParameterDirection.Output };
                oCommand.Parameters.Add(outSlotsData);

                var outPrizesData = new SqlParameter("@_PrizesData", SqlDbType.NVarChar, 500) { Direction = ParameterDirection.Output };
                oCommand.Parameters.Add(outPrizesData);

                var outTotalBetValue = new SqlParameter("@_TotalBetValue", SqlDbType.Int) { Direction = ParameterDirection.Output };
                oCommand.Parameters.Add(outTotalBetValue);

                var outTotalPrizeValue = new SqlParameter("@_TotalPrizeValue", SqlDbType.BigInt) { Direction = ParameterDirection.Output };
                oCommand.Parameters.Add(outTotalPrizeValue);


                var outIsJackpot = new SqlParameter("@_IsJackpot", SqlDbType.Bit) { Direction = ParameterDirection.Output };
                oCommand.Parameters.Add(outIsJackpot);

                var outJackpot = new SqlParameter("@_Jackpot", SqlDbType.BigInt) { Direction = ParameterDirection.Output };
                oCommand.Parameters.Add(outJackpot);

                var outBalance = new SqlParameter("@_Balance", SqlDbType.BigInt) { Direction = ParameterDirection.Output };
                oCommand.Parameters.Add(outBalance);

                var outResponseStatus = new SqlParameter("@_ResponseStatus", SqlDbType.Int) { Direction = ParameterDirection.Output };
                oCommand.Parameters.Add(outResponseStatus);

                var outLuckyData = new SqlParameter("@_LuckyData", SqlDbType.NVarChar) { Direction = ParameterDirection.Output, Size = 500 };
                oCommand.Parameters.Add(outLuckyData);

                var outTotalJP = new SqlParameter("@_TotalJackpot", SqlDbType.Int) { Direction = ParameterDirection.Output };
                oCommand.Parameters.Add(outTotalJP);


                db.ExecuteNonQuery(oCommand);

                var spinData = new SpinData();
                spinData.SpinId = (long)outSpinId.Value;
                spinData.SlotData = outSlotsData.Value.ToString();
                spinData.PrizesData = outPrizesData.Value.ToString();
                spinData.TotalBetValue = (int)outTotalBetValue.Value;
                spinData.TotalPrizeValue = (long)outTotalPrizeValue.Value;
                spinData.Jackpot = (long)outJackpot.Value;
                spinData.Balance = (long)outBalance.Value;
                spinData.IsJackpot = (bool) outIsJackpot.Value;
                spinData.ResponseStatus = (int)outResponseStatus.Value;
                spinData.LuckyData = (string)outLuckyData.Value;
                spinData.TotalJackPot = (int)outTotalJP.Value;
                return spinData;
            }
            catch (Exception ex)
            {
                NLogManager.PublishException(ex);
                return new SpinData()
                {
                    ResponseStatus = -10000
                };
            }
        }