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); }
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); } }
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); } }
public void AddSpinDataToQueue(SpinData mSpinData) { listSpinDatas.Add(mSpinData); }
/// <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 }); }
public void AddSpinDataToQueue(SpinData mSpinData) { listSpinDatas.Add(mSpinData); }
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 }; } }