1. 開局不會拉到彩金
2. 免費球參數10%想要拉出來 以及 總球數 30=>31
待處理
1. 取得前場rng
2. extraBall playbet
3. extraBall DB
# **GameLogin**
**params**
```
{
code: String,
entity: {
gameId: String,
machineId: String
}
}
```
**response**
```
{
code: String,
entity: {
validBetLevels: Map<string,int> // 可押注倍率
}
}
```
**Example**
```
params
{
code: "bingo.gameLogin",
entity: {
gameId: "200062",
machineId: "A4Alex01"
}
}
response
{
code: "h5.gameLoginReturn",
entity: {
// 可押注倍率
validBetLevels: {"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9,"10":10,"11":11,"12":12,"13":13,"14":14,"15":15}
}
}
```
# **Init**
**params**
```
{
code: String,
entity: {
gameId: String,
machineId: String,
memberId: String
}
}
```
**response**
```
{
code: String,
entity: {
executeSetting: {
payWay: Array<Array<Array<Boolean>>>,
payTable: Array<Int>,
specialHitInfo: Array<SpecialHitInfo>,
screenRow: Int,
screenColumn: Int,
megaBingo: Int
card: Int
},
denoms: Array<Int>,
extraBallTimes: Int, // 額外球數
credit: Long, // 現在金額
validBetLevels: Map<string,int> // 可押注倍率
recoveryGameSeq: String,
clientRecoveryData: String,
memberRestrictedBalance: Long
}
}
SpecialHitInfo
{
specialHitPattern: String,
specialHitInfo: Array<String>
}
```
**Example**
```
params
{
code : "bingo.init",
entity: {
gameId: "200062",
machineId: "A4Alex01",
memberId: "7686100001"
}
}
response
{
code: "h5.initResponse",
enity: {
executeSetting: {
extraBallTimes: 12, // 額外球數
patternList: [
[
[true,true,true],
[true,true,true],
[true,true,true],
[true,true,true],
[true,true,true]
],
[
[true,true,true],
[true,false,true],
[true,false,true],
[true,false,true],
[true,true,true]
],
],
payTable:[1500,500,200,200,100,100,100,50,50,50,50,50,25,25,25,15,5,5,2,2,2],
specialHitInfo:[
{
specialHitPattern:"Custom1",
specialHitInfo:["freeGame_01"]
},
{
specialHitPattern:"Custom1",
specialHitInfo:["freeGame_02"]
},
{
specialHitPattern:"Custom1",
specialHitInfo:["megaBingo"]
}
],
screenRow:3,
screenColumn:5,
megaBingo: 10000,
card: 4
},
denoms:[1],
credit: 0, // 現在金額
// 可押注倍率
validBetLevels: {"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9,"10":10,"11":11,"12":12,"13":13,"14":14,"15":15}
recoveryGameSeq:"A4_58bae8727915d43bc5f2937a6f1895dd2fbf9231",
clientRecoveryData: "",
memberRestrictedBalance:0
}
}
```
# **開局**
**params**
```
{
code: String,
entity: {
gameId: String,
requestSN: String,
memberId: String,
machineId: String,
denom: Int,
spinRequest: {
betCard: Array<Boolean>,
card: Array<Array<Array<Int>>>,
playerBet: Int,
denom: Int
}
}
}
```
**response**
```
{
code: String,
entity: {
gameSeq: String,
credit: Long,
creditAfterOtherBonus: Long,
expInfo: {
exp: Long,
offsetExp: Long
},
beforeCredit: Long,
baseAndFreeGameTotalWin: Long,
allRoundBaseAndFreeGameTotalWin: Long,
memberRestrictedBalance: Long,
spinResult: {
nextPay: Int,
ballList: Array<Int>,
extraBallResult: Array<{
baseGameResult: {
ball: Int,
baseGameTotalWin: Long,
gameResult: {
playerWin: Long,
winResult: Array<{
card: Int,
patternId: Int
}>
},
specialFeatureResult: Array<{
specialHitInfo: String,
specialScreenHitCard: Int
}>,
hitNumber: Array<Array<Array<Boolean>>>,
possible: Array<Array<Array<Int>>>,
totalWinResult: Array<{
card: Int,
patternId: Int
}>
},
freeGameResult: Array<Array<{
ball: Int,
freeGameTotalWin: Long,
gameResult: {
playerWin: Long,
winResult: Array<{
patternId: Int
}>
},
hitNumber: Array<Array<Array<Boolean>>>,
possible: Array<Array<Array<Int>>>,
totalWinResult: Array<{
patternId: Int
}>
}>>
}>,
probabilityDetail: {
randomNumberUsed: Int,
randomDataUsed: Array<Int>
}
}
}
```
**Example**
```
params
{
code: "h5.spinBet",
enity: {
gameId: "200062",
requestSN:"1688463877000",
memberId:"7686100001",
machineId:"A4Alex01",
denom: 1
spinRequest: {
betCard: [true, true, true, false],
card: [
[
[1,2,3],[13,14,15],[25,26,27],[37,38,39],[49,50,51]
],
[
[4,5,6],[16,17,18],[28,29,30],[40,41,42],[52,53,54]
],
[
[7,8,9],[19,20,21],[31,32,33],[43,44,45],[55,56,57]
],
[]
],
playerBet: 1,
denom: 1
}
}
}
response
{
code: "h5.spinBetResponse",
entity: {
gameSeq:"A4_a5a244d931662d0e789052b3f3e7a38e8383da99",
credit:230611459,
creditAfterOtherBonus:230611459,
expInfo:{ exp:7407650340,offsetExp:30 },
beforeCredit:230611489,
baseAndFreeGameTotalWin:0,
allRoundBaseAndFreeGameTotalWin:0,
memberRestrictedBalance:0,
spinResult:{
nextPay: 0,
ballIndexList: [],
ballList: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30],
extraBallResult: [
{
baseGameResult: {
ball: 1,
baseGameTotalWin:0,
gameResult: {
playerWin: 0,
winResult:[
{
card: 0,
patternId: 0 // 組合
}
]
},
specialFeatureResult:[
{
specialHitInfo: 'freeGame_01',
specialScreenHitCard: 1
}
],
hitNumber: [
[
[false,false,false],
[false,true,false],
[true,false,false],
[false,false,false],
[false,true,false]
],
[
[false,false,false],
[false,true,false],
[true,false,false],
[false,false,false],
[false,true,false]
],
[
[false,false,false],
[false,true,false],
[true,false,false],
[false,false,false],
[false,true,false]
],
[],
],
possible: [
[[0,0,0],[20,0,0],[25,0,0],[0,0,0],[0,50,0]],
[[0,0,0],[20,0,0],[25,0,0],[0,0,0],[0,50,0]],
[[0,0,0],[20,0,0],[25,0,0],[0,0,0],[0,50,0]],
[],
],
totalWinResult: [
{
card: 0,
patternId: 0 // 組合
}
],
},
freeGameResult: [
// 第一場32顆球
[
{
ball: 1,
freeGameTotalWin:0,
gameResult: {
playerWin: 0,
winResult:[
{
patternId: 0 // 組合
}
]
},
hitNumber: [
[
[false,false,false],
[false,true,false],
[true,false,false],
[false,false,false],
[false,true,false]
],
[
[false,false,false],
[false,true,false],
[true,false,false],
[false,false,false],
[false,true,false]
],
[
[false,false,false],
[false,true,false],
[true,false,false],
[false,false,false],
[false,true,false]
],
[]
],
possible: [
[[0,0,0],[20,0,0],[25,0,0],[0,0,0],[0,50,0]],
[[0,0,0],[20,0,0],[25,0,0],[0,0,0],[0,50,0]],
[[0,0,0],[20,0,0],[25,0,0],[0,0,0],[0,50,0]],
[],
],
totalWinResult: [
{
patternId: 0 // 組合
}
],
extendInfoResult: {
newExtendIndex: 0,
extend: [true,true,false,false,true]
}
}
],
// 第二場
[],
...
]
}
]
probabilityDetail:{
randomNumberUsed:21,
randomDataUsed:[0,10,22,2,5,23,17,18,7,5,54,0,132,8,12,11,16,22,12,18,6]
}
}
}
}
```
# **額外球**
**params**
```
{
code: String,
entity: {
gameSeq: String,
gameId: String,
requestSN: String,
memberId: String,
machineId: String,
denom: Int,
spinRequest: {
ballIndex: Int,
}
}
}
```
**response**
```
{
code: String,
entity: {
gameSeq: String,
credit: Long,
creditAfterOtherBonus: Long,
expInfo: {
exp: Long,
offsetExp: Long
},
beforeCredit: Long,
baseAndFreeGameTotalWin: Long,
allRoundBaseAndFreeGameTotalWin: Long,
memberRestrictedBalance: Long,
spinResult: {
nextPay: Int,
extraBallResult: Array<{
baseGameResult: {
ball: Int,
baseGameTotalWin: Long,
gameResult: {
playerWin: Long,
winResult: Array<{
card: Int,
patternId: Int
}>
},
specialFeatureResult: Array<{
specialHitInfo: String,
specialOperations: Array<String>
}>,
hitNumber: Array<Array<Array<Boolean>>>,
possible: Array<Array<Array<Int>>>,
totalWinResult: Array<{
card: Int,
patternId: Int
}>
},
freeGameResult: Array<Array<{
ball: Int,
freeGameTotalWin: Long,
gameResult: {
playerWin: Long,
winResult: Array<{
playerWin: Long,
patternId: Int
}>
},
hitNumber: Array<Array<Array<Boolean>>>,
possible: Array<Array<Array<Int>>>,
totalWinResult: Array<{
patternId: Int
}>
}>>
}>,
probabilityDetail: {
randomNumberUsed: Int,
randomDataUsed: Array<Int>
}
}
}
}
```
**Example**
```
params
{
code: "h5.extraBet",
enity: {
gameSeq:"A4_a5a244d931662d0e789052b3f3e7a38e8383da99",
gameId: "200062",
requestSN:"1688463877000",
memberId:"7686100001",
machineId:"A4Alex01",
denom: 1,
spinRequest: {
ballIndex: 0,
}
}
}
response
{
code: "h5.extraBetResponse",
entity: {
gameSeq:"A4_a5a244d931662d0e789052b3f3e7a38e8383da99",
credit:230611459,
creditAfterOtherBonus:230611459,
expInfo:{ exp:7407650340,offsetExp:30 },
beforeCredit:230611489,
baseAndFreeGameTotalWin:0,
allRoundBaseAndFreeGameTotalWin:0,
memberRestrictedBalance:0,
spinResult:{
nextPay: 0,
ballIndexList: [0,5,3,11]
ballList: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,50],
extraBallResult: [
{
baseGameResult: {
ball: 50,
baseGameTotalWin:0,
gameResult: {
playerWin: 0,
winResult:[
{
card: 0,
patternId: 0 // 組合
}
]
},
specialFeatureResult:[
{
specialHitInfo: 'freeGame_01',
specialScreenHitCard: 1
}
],
hitNumber: [
[[false,false,false],[false,true,false],[true,false,false],[false,false,false],[false,true,false]],
[[false,false,false],[false,true,false],[true,false,false],[false,false,false],[false,true,false]],
[[false,false,false],[false,true,false],[true,false,false],[false,false,false],[false,true,false]],
[],
],
possible: [
[[0,0,0],[20,0,0],[25,0,0],[0,0,0],[0,50,0]],
[[0,0,0],[20,0,0],[25,0,0],[0,0,0],[0,50,0]],
[[0,0,0],[20,0,0],[25,0,0],[0,0,0],[0,50,0]],
[],
],
totalWinResult: [
{
card: 0,
patternId: 0 // 組合
}
],
},
freeGameResult: [
// 第一場32顆球
[
{
ball: 1,
freeGameTotalWin:0,
gameResult: {
playerWin: 0,
winResult:[
{
patternId: 0 // 組合
}
]
},
hitNumber: [
[
[false,false,false],
[false,true,false],
[true,false,false],
[false,false,false],
[false,true,false]
],
[
[false,false,false],
[false,true,false],
[true,false,false],
[false,false,false],
[false,true,false]
],
[
[false,false,false],
[false,true,false],
[true,false,false],
[false,false,false],
[false,true,false]
],
[]
],
possible: [
[[0,0,0],[20,0,0],[25,0,0],[0,0,0],[0,50,0]],
[[0,0,0],[20,0,0],[25,0,0],[0,0,0],[0,50,0]],
[[0,0,0],[20,0,0],[25,0,0],[0,0,0],[0,50,0]],
[],
],
totalWinResult: [
{
patternId: 0 // 組合
}
],
extendInfoResult: {
newExtendIndex: 0,
extend: [true,true,false,false,true]
}
}
],
// 第二場
[]
]
}
]
probabilityDetail:{
randomNumberUsed:21,
randomDataUsed:[0,10,22,2,5,23,17,18,7,5,54,0,132,8,12,11,16,22,12,18,6]
}
}
}
}
{
code: "h5.extraWildBallResponse",
entity: {
gameSeq:"A4_a5a244d931662d0e789052b3f3e7a38e8383da99",
credit:230611459,
creditAfterOtherBonus:230611459,
expInfo:{ exp:7407650340,offsetExp:30 },
beforeCredit:230611489,
baseAndFreeGameTotalWin:0,
allRoundBaseAndFreeGameTotalWin:0,
memberRestrictedBalance:0,
isWildBall: true
}
}
```
# **WildBall**
**params**
```
{
code: String,
entity: {
gameSeq: String,
gameId: String,
requestSN: String,
memberId: String,
machineId: String,
denom: Int,
spinRequest: {
selectBall: Int,
}
}
}
```
**response**
```
{
code: String,
entity: {
gameSeq: String,
credit: Long,
creditAfterOtherBonus: Long,
expInfo: {
exp: Long,
offsetExp: Long
},
beforeCredit: Long,
baseAndFreeGameTotalWin: Long,
allRoundBaseAndFreeGameTotalWin: Long,
memberRestrictedBalance: Long,
spinResult: {
nextPay: Int,
extraBallResult: Array<{
baseGameResult: {
ball: Int,
baseGameTotalWin: Long,
gameResult: {
playerWin: Long,
winResult: Array<{
card: Int,
winResult: Int
}>
},
specialFeatureResult: Array<{
specialHitInfo: String
}>,
hitNumber: Array<Array<Array<Boolean>>>,
possible: Array<Array<Array<Int>>>,
totalWinResult: Array<{
card: Int,
winResult: Int
}>
},
freeGameResult: Array<Array<{
ball: Int,
freeGameTotalWin: Long,
gameResult: {
playerWin: Long,
winResult: Array<{
winResult: Int
}>
},
hitNumber: Array<Array<Array<Boolean>>>,
possible: Array<Array<Array<Int>>>,
totalWinResult: Array<{
winResult: Int
}>
}>>
}>,
probabilityDetail: {
randomNumberUsed: Int,
randomDataUsed: Array<Int>
}
}
}
```
**Example**
```
params
{
code: "h5.wallBet",
enity: {
gameSeq:"A4_a5a244d931662d0e789052b3f3e7a38e8383da99",
gameId: "200062",
requestSN:"1688463877000",
memberId:"7686100001",
machineId:"A4Alex01",
denom: 1,
spinRequest: {
wildBall: 59
}
}
}
response
{
code: "h5.wallBetResponse",
entity: {
gameSeq:"A4_a5a244d931662d0e789052b3f3e7a38e8383da99",
credit:230611459,
creditAfterOtherBonus:230611459,
expInfo:{ exp:7407650340,offsetExp:30 },
beforeCredit:230611489,
baseAndFreeGameTotalWin:0,
allRoundBaseAndFreeGameTotalWin:0,
memberRestrictedBalance:0,
spinResult:{
nextPay: 0,
ballIndexList: [0,5,3,11,16]
ballList: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,50,59],
extraBallResult: [
{
baseGameResult: {
ball: 59,
baseGameTotalWin:0,
gameResult: {
playerWin: 0,
winResult:[
{
card: 0,
patternId: 0 // 組合
}
]
},
specialFeatureResult:[
{
specialHitInfo: 'freeGame_01',
specialScreenHitCard: 1
}
],
hitNumber: [
[[false,false,false],[false,true,false],[true,false,false],[false,false,false],[false,true,false]],
[[false,false,false],[false,true,false],[true,false,false],[false,false,false],[false,true,false]],
[[false,false,false],[false,true,false],[true,false,false],[false,false,false],[false,true,false]],
[],
],
possible: [
[[0,0,0],[20,0,0],[25,0,0],[0,0,0],[0,50,0]],
[[0,0,0],[20,0,0],[25,0,0],[0,0,0],[0,50,0]],
[[0,0,0],[20,0,0],[25,0,0],[0,0,0],[0,50,0]],
[],
],
totalWinResult: [
{
card: 0,
patternId: 0 // 組合
}
],
},
freeGameResult: [
// 第一場32顆球
[
{
ball: 1,
freeGameTotalWin:0,
gameResult: {
playerWin: 0,
winResult:[
{
patternId: 0 // 組合
}
]
},
hitNumber: [
[
[false,false,false],
[false,true,false],
[true,false,false],
[false,false,false],
[false,true,false]
],
[
[false,false,false],
[false,true,false],
[true,false,false],
[false,false,false],
[false,true,false]
],
[
[false,false,false],
[false,true,false],
[true,false,false],
[false,false,false],
[false,true,false]
],
[]
],
possible: [
[[0,0,0],[20,0,0],[25,0,0],[0,0,0],[0,50,0]],
[[0,0,0],[20,0,0],[25,0,0],[0,0,0],[0,50,0]],
[[0,0,0],[20,0,0],[25,0,0],[0,0,0],[0,50,0]],
[],
],
totalWinResult: [
{
patternId: 0 // 組合
}
],
extendInfoResult: {
newExtendIndex: 0,
extend: [true,true,false,false,true]
}
}
],
// 第二場
[]
]
}
]
probabilityDetail:{
randomNumberUsed:21,
randomDataUsed:[0,10,22,2,5,23,17,18,7,5,54,0,132,8,12,11,16,22,12,18,6]
}
}
}
}
```
# 結帳
**params**
```
{
code: String,
entity: {
gameSeq: String,
gameId: String,
requestSN: String,
memberId: String,
machineId: String,
denom: Int
}
}
```
**response**
```
{
code: String,
entity: {
gameSeq: String
}
```
**Example**
```
params
{
code: "h5.spinEnd",
enity: {
gameSeq:"A4_a5a244d931662d0e789052b3f3e7a38e8383da99",
gameId: "200062",
requestSN:"1688463877000",
memberId:"7686100001",
machineId:"A4Alex01",
denom: 1
}
}
response
{
code: "h5.spinEndResponse",
entity: {
credit:320934664,
creditAfterOtherBonus:320934664,
expInfo:{},
beforeCredit:320934664,
baseAndFreeGameTotalWin:0,
allRoundBaseAndFreeGameTotalWin:0,
gamaDTInfo {
iDTCycleNum:0,
iDragonThreshold:999999999,
iTigerThreshold:999999999
},
isRepeatedRequest:false,
memberRestrictedBalance:0
}
}
```
# 結束遊戲
**params**
```
{
code: String,
entity: {
gameSeq: String,
gameId: String,
requestSN: String,
memberId: String,
machineId: String,
denom: Int
}
}
```
**response**
```
{
code: String,
entity: {
gameSeq: String
}
```
**Example**
```
params
{
code: "h5.gameEnd",
enity: {
gameSeq:"A4_a5a244d931662d0e789052b3f3e7a38e8383da99",
gameId: "200062",
requestSN:"1688463877000",
memberId:"7686100001",
machineId:"A4Alex01",
denom: 1
}
}
response
{
code: "h5.gameEndResponse",
entity: {
gameSeq:"A4_a5a244d931662d0e789052b3f3e7a38e8383da99"
}
}
```