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" } } ```