├── game-server ├── dist │ └── config │ │ ├── clientProtos.json │ │ ├── dictionary.json │ │ ├── serverProtos.json │ │ ├── master.json │ │ ├── adminUser.json │ │ ├── adminServer.json │ │ ├── http.json │ │ ├── servers.json │ │ ├── log4js.json │ │ └── mary_slot │ │ ├── HappyFruit_4.json │ │ ├── HappyFruit_2.json │ │ ├── HappyFruit_3.json │ │ └── HappyFruit_1.json ├── app │ ├── util │ │ ├── enum.ts │ │ ├── dispatcher.ts │ │ ├── encrypt.ts │ │ ├── token.ts │ │ └── tool.ts │ ├── entity │ │ ├── Account_MOG.ts │ │ ├── Recharge_Log_SQL.ts │ │ └── User_MOG.ts │ ├── servers │ │ ├── admin_api │ │ │ ├── lifecycle.ts │ │ │ ├── remote │ │ │ │ └── adminRemoter.ts │ │ │ └── handler │ │ │ │ └── adminHandler.ts │ │ ├── connector │ │ │ ├── remote │ │ │ │ └── authRemoter.ts │ │ │ └── handler │ │ │ │ └── entryHandler.ts │ │ ├── web_api │ │ │ ├── remote │ │ │ │ └── webRemoter.ts │ │ │ ├── handler │ │ │ │ └── webHandler.ts │ │ │ ├── lifecycle.ts │ │ │ └── route │ │ │ │ └── login.ts │ │ ├── mary_slot │ │ │ ├── remote │ │ │ │ └── marySlotRemoter.ts │ │ │ ├── handler │ │ │ │ └── marySlotHandler.ts │ │ │ ├── lifecycle.ts │ │ │ └── base │ │ │ │ ├── table.ts │ │ │ │ └── make.ts │ │ └── gate │ │ │ └── handler │ │ │ └── gateHandler.ts │ └── filters │ │ └── log.ts ├── ormconfig.json ├── tsconfig.json ├── .vscode │ └── launch.json ├── package.json ├── preload.ts └── app.ts ├── .gitignore ├── npm-install.bat ├── npm-install.sh ├── readme.md └── shared ├── server.crt └── server.key /game-server/dist/config/clientProtos.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /game-server/dist/config/dictionary.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /game-server/dist/config/serverProtos.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /game-server/app/util/enum.ts: -------------------------------------------------------------------------------- 1 | 2 | export enum GAME_TYPE { 3 | GLOBAL_CHANNEL = "GLOBAL_CHANNEL", 4 | MARY_SLOT = "MARY_SLOT", 5 | } 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | game-server/node_modules 2 | game-server/dist/app 3 | game-server/dist/logs 4 | game-server/dist/app.js 5 | game-server/dist/preload.js 6 | -------------------------------------------------------------------------------- /npm-install.bat: -------------------------------------------------------------------------------- 1 | ::npm-install.bat 2 | @echo off 3 | ::install web server dependencies && game server dependencies 4 | cd web-server && npm install -d && cd .. && cd game-server && npm install -d -------------------------------------------------------------------------------- /npm-install.sh: -------------------------------------------------------------------------------- 1 | cd ./game-server && npm install -d 2 | echo '============ game-server npm installed ============' 3 | cd .. 4 | cd ./web-server && npm install -d 5 | echo '============ web-server npm installed ============' 6 | -------------------------------------------------------------------------------- /game-server/dist/config/master.json: -------------------------------------------------------------------------------- 1 | { 2 | "development": { 3 | "id": "master-server-1", "host": "127.0.0.1", "port": 3005 4 | }, 5 | "production": { 6 | "id": "master-server-1", "host": "127.0.0.1", "port": 3005 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /game-server/app/util/dispatcher.ts: -------------------------------------------------------------------------------- 1 | import * as crc from 'crc'; 2 | import { ServerInfo } from 'pinus'; 3 | 4 | export function dispatch(uid: string , connectors: ServerInfo[]) { 5 | let index = Math.abs(crc.crc32(uid)) % connectors.length; 6 | return connectors[index]; 7 | } -------------------------------------------------------------------------------- /game-server/app/entity/Account_MOG.ts: -------------------------------------------------------------------------------- 1 | import {Entity, PrimaryGeneratedColumn, Column, PrimaryColumn, ObjectIdColumn} from "typeorm"; 2 | 3 | @Entity() 4 | export class Account_MOG { 5 | 6 | @ObjectIdColumn() 7 | id: number; 8 | 9 | @Column() 10 | account: string; 11 | 12 | @Column() 13 | password: string; 14 | 15 | @Column() 16 | uid: number; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /game-server/app/entity/Recharge_Log_SQL.ts: -------------------------------------------------------------------------------- 1 | import {Entity, PrimaryGeneratedColumn, Column, PrimaryColumn, ObjectIdColumn} from "typeorm"; 2 | 3 | @Entity() 4 | export class Recharge_Log_SQL { 5 | 6 | @PrimaryGeneratedColumn() 7 | id: number; 8 | 9 | @Column() 10 | uid: number; 11 | 12 | @Column() 13 | add_coin: number; // 充值/扣款金额 14 | 15 | @Column() 16 | stamp: number; // 时间 17 | } 18 | -------------------------------------------------------------------------------- /game-server/dist/config/adminUser.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "user-1", 4 | "username": "admin", 5 | "password": "admin", 6 | "level": 1 7 | }, 8 | 9 | { 10 | "id": "user-2", 11 | "username": "monitor", 12 | "password": "monitor", 13 | "level": 2 14 | }, 15 | 16 | { 17 | "id": "user-3", 18 | "username": "test", 19 | "password": "test", 20 | "level": 2 21 | } 22 | ] 23 | -------------------------------------------------------------------------------- /game-server/app/entity/User_MOG.ts: -------------------------------------------------------------------------------- 1 | import {Entity, PrimaryGeneratedColumn, Column, PrimaryColumn, ObjectIdColumn} from "typeorm"; 2 | 3 | @Entity() 4 | export class User_MOG { 5 | 6 | @ObjectIdColumn() 7 | id: number; 8 | 9 | @Column() 10 | uid: number; 11 | 12 | @Column() 13 | name: string; 14 | 15 | @Column() 16 | sex: string; // 性别 17 | 18 | @Column() 19 | avatar: number; // 头像 20 | 21 | @Column() 22 | coin: number; // 金币(分) 23 | 24 | } 25 | -------------------------------------------------------------------------------- /game-server/app/servers/admin_api/lifecycle.ts: -------------------------------------------------------------------------------- 1 | import {ILifeCycle ,Application} from "pinus"; 2 | import {events} from "pinus"; 3 | 4 | export default function () { 5 | return new Lifecycle(); 6 | } 7 | 8 | class Lifecycle implements ILifeCycle { 9 | 10 | afterStartAll(app:Application):void { 11 | console.log("------------------初始化admin_api-------------------"); 12 | } 13 | 14 | beforeShutdown(app:Application):void { 15 | console.log("------------------clear admin_api-------------------"); 16 | } 17 | } -------------------------------------------------------------------------------- /game-server/app/filters/log.ts: -------------------------------------------------------------------------------- 1 | import { RouteRecord, FrontendOrBackendSession, HandlerCallback } from "pinus"; 2 | 3 | 4 | 5 | export class LogFilter { 6 | constructor() { 7 | } 8 | 9 | before(routeRecord: RouteRecord, msg: any, session: FrontendOrBackendSession, next: HandlerCallback) { 10 | console.log('[http request]:',msg ); 11 | next(null); 12 | } 13 | 14 | after(err: Error, routeRecord: RouteRecord, msg: any, session: FrontendOrBackendSession, resp: any, next: HandlerCallback) { 15 | console.log('[http request]:',msg ); 16 | next(err); 17 | } 18 | } -------------------------------------------------------------------------------- /game-server/dist/config/adminServer.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "type": "connector", 3 | "token": "agarxhqb98rpajloaxn34ga8xrunpagkjwlaw3ruxnpaagl29w4rxn" 4 | },{ 5 | "type": "gate", 6 | "token": "agarxhqb98rpajloaxn34ga8xrunpagkjwlaw3ruxnpaagl29w4rxn" 7 | },{ 8 | "type": "admin_api", 9 | "token": "agarxhqb98rpajloaxn34ga8xrunpagkjwlaw3ruxnpaagl29w4rxn" 10 | },{ 11 | "type": "web_api", 12 | "token": "agarxhqb98rpajloaxn34ga8xrunpagkjwlaw3ruxnpaagl29w4rxn" 13 | },{ 14 | "type": "mary_slot", 15 | "token": "agarxhqb98rpajloaxn34ga8xrunpagkjwlaw3ruxnpaagl29w4rxn" 16 | } 17 | ] -------------------------------------------------------------------------------- /game-server/ormconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "mongodb", 3 | "host": "localhost", 4 | "port": 27017, 5 | "username": "", 6 | "password": "", 7 | "database": "xue_game", 8 | "synchronize": true, 9 | "logging": false, 10 | "extra": {"useNewUrlParser": true,"useUnifiedTopology": false}, 11 | "entities": [ 12 | "app/entity/**/*.ts" 13 | ], 14 | "migrations": [ 15 | "app/migration/**/*.ts" 16 | ], 17 | "subscribers": [ 18 | "app/subscriber/**/*.ts" 19 | ], 20 | "cli": { 21 | "entitiesDir": "app/entity", 22 | "migrationsDir": "app/migration", 23 | "subscribersDir": "app/subscriber" 24 | } 25 | } -------------------------------------------------------------------------------- /game-server/dist/config/http.json: -------------------------------------------------------------------------------- 1 | { 2 | "development": { 3 | "gamehttps": { 4 | "useSSL": true, 5 | "keyFile": "config/key.pem", 6 | "certFile": "config/cert.pem", 7 | "host": "127.0.0.1", 8 | "port": 3001 9 | }, 10 | "gamehttp": { 11 | "host": "127.0.0.1", 12 | "port": 3002 13 | } 14 | }, 15 | "production": { 16 | "gamehttps": { 17 | "useSSL": true, 18 | "keyFile": "config/key.pem", 19 | "certFile": "config/cert.pem", 20 | "host": "127.0.0.1", 21 | "port": 3001 22 | }, 23 | "gamehttp": { 24 | "host": "127.0.0.1", 25 | "port": 3002 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | 这是pinus的简单示例工程,包含: 2 | 1、game-server,游戏服务器 3 | 4 | 启动方法: 5 | 1、执行npm-install.bat或npm-install.sh 6 | 2、编译游戏服 7 | cd game-server 8 | npm run build 9 | 2、启动游戏服 10 | cd dist 11 | node app 12 | 显示“all servers startup in xxx ms”即表示启动成功 13 | 14 | 15 | 调试游戏服务器的方法: 16 | 1、安装vscode 17 | 2、在game-server目录启动vscode 18 | 3、按照正常流程启动游戏服 19 | 4、在“调试”界面,选择Attach To Connector或Attach To Master 20 | 5、按F5把调试器挂上去,然后就可以断点调试了。 21 | 22 | 23 | 安装全局通道支持库 24 | npm install pinus-global-channel-status 25 | 26 | 安装常用工具库 27 | npm install xmcommon 28 | 29 | 30 | 安装TypeORM: 31 | 32 | npm install typeorm --save 33 | 34 | 需要安装依赖模块 reflect-metadata : 35 | 36 | npm install reflect-metadata --save 37 | 38 | MySQL 或 MariaDB 39 | 40 | npm install mysql --save 41 | 42 | MongoDB 43 | 44 | npm install mongodb --save 45 | 46 | Redis 47 | 48 | npm install redis --save -------------------------------------------------------------------------------- /game-server/app/servers/connector/remote/authRemoter.ts: -------------------------------------------------------------------------------- 1 | import {Application, RemoterClass, FrontendSession} from 'pinus'; 2 | 3 | export default function (app: Application) { 4 | return new AuthRemoter(app); 5 | } 6 | 7 | // UserRpc的命名空间自动合并 8 | declare global { 9 | interface UserRpc { 10 | connector: { 11 | // 一次性定义一个类自动合并到UserRpc中 12 | authRemoter: RemoterClass; 13 | }; 14 | } 15 | } 16 | 17 | 18 | export class AuthRemoter { 19 | constructor(private app: Application) { 20 | 21 | } 22 | 23 | /** 24 | * 25 | * @param username 26 | * @param password 27 | */ 28 | public async auth(username: string , password: string) { 29 | return true; 30 | } 31 | 32 | // 私有方法不会加入到RPC提示里 33 | private async privateMethod(testarg:string,arg2:number){ 34 | 35 | } 36 | } -------------------------------------------------------------------------------- /game-server/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | // types option has been previously configured 4 | "types": [ 5 | // add node as an option 6 | "node" 7 | ], 8 | "module": "commonjs", //指定生成哪个模块系统代码 9 | "target": "es2016", 10 | "lib": [ 11 | "es6", 12 | "es2015", 13 | "es2016", 14 | "esnext.asynciterable" 15 | ], 16 | "noImplicitAny": false, //在表达式和声明上有隐含的'any'类型时报错。 17 | "noImplicitThis": false, 18 | "inlineSourceMap": true, 19 | 20 | 21 | "rootDirs": ["."], //仅用来控制输出的目录结构--outDir。 22 | "outDir":"./dist", //重定向输出目录。 23 | "experimentalDecorators":true, 24 | "emitDecoratorMetadata": true, 25 | "moduleResolution": "node", 26 | "watch":false //在监视模式下运行编译器。会监视输出文件,在它们改变时重新编译。 27 | }, 28 | "include":[ 29 | "./**/*.ts" 30 | ], 31 | "exclude": [ 32 | "./dist/**/*.*" 33 | ] 34 | } -------------------------------------------------------------------------------- /game-server/app/servers/web_api/remote/webRemoter.ts: -------------------------------------------------------------------------------- 1 | import {Application, RemoterClass, FrontendSession, BackendSession} from 'pinus'; 2 | 3 | export default function (app: Application) { 4 | return new WebRemoter(app); 5 | } 6 | 7 | // UserRpc的命名空间自动合并 8 | declare global { 9 | interface UserRpc { 10 | web_api: { 11 | // 一次性定义一个类自动合并到UserRpc中 12 | webRemoter: RemoterClass; 13 | }; 14 | } 15 | } 16 | 17 | 18 | export class WebRemoter { 19 | constructor(private app: Application) { 20 | 21 | } 22 | 23 | /** 24 | * 25 | * @param username 26 | * @param password 27 | */ 28 | public async auth(username: string , password: string) { 29 | return true; 30 | } 31 | 32 | // 私有方法不会加入到RPC提示里 33 | private async privateMethod(testarg:string,arg2:number){ 34 | 35 | } 36 | } -------------------------------------------------------------------------------- /shared/server.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICSzCCAbQCCQCQVN8rD6MylDANBgkqhkiG9w0BAQUFADBqMQswCQYDVQQGEwJD 3 | TjERMA8GA1UECAwIemhlamlhbmcxETAPBgNVBAcMCGhhbmd6aG91MRAwDgYDVQQK 4 | DAdOZXRFYXNlMQ8wDQYDVQQLDAZwb21lbG8xEjAQBgNVBAMMCWxvY2FsaG9zdDAe 5 | Fw0xNDA0MjIwNjEwMDJaFw0xNDA1MjIwNjEwMDJaMGoxCzAJBgNVBAYTAkNOMREw 6 | DwYDVQQIDAh6aGVqaWFuZzERMA8GA1UEBwwIaGFuZ3pob3UxEDAOBgNVBAoMB05l 7 | dEVhc2UxDzANBgNVBAsMBnBvbWVsbzESMBAGA1UEAwwJbG9jYWxob3N0MIGfMA0G 8 | CSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMPe8oscKpTlQFZRrpbWmSO1UE+H65nq50 9 | l5+ptOVPMK3wgEj+YRyGWhBjugj9teVmLXY9ImWdZkBlvdAiQj7/S/1MxRbRtwEF 10 | GRE5ul/X1M6I+F0UyTGYA1Mo0jIlQaBDXAAyDujCWi+qlyZ28efNDUlO2KBY1H4r 11 | Xobm9hoEFQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAMIuL8KqEEtjbfL/tR2+5dQ5 12 | 958gtDtA62L7bMosl4hmuzdyWADu3IcKSaXAESLhIuIClt2Pwc14iFf9qRyB/cjY 13 | 4kLgwDGhK5EJw1kQS+Hs9NNSGxJTXUkoms3kEdRGy4hrZpTheJJNaKuv3oXrdvYQ 14 | 85yoc/P5OnJapB3huYL9 15 | -----END CERTIFICATE----- -------------------------------------------------------------------------------- /game-server/app/servers/admin_api/remote/adminRemoter.ts: -------------------------------------------------------------------------------- 1 | import {Application, RemoterClass, FrontendSession, BackendSession} from 'pinus'; 2 | 3 | export default function (app: Application) { 4 | return new AdminRemoter(app); 5 | } 6 | 7 | // UserRpc的命名空间自动合并 8 | declare global { 9 | interface UserRpc { 10 | admin_api: { 11 | // 一次性定义一个类自动合并到UserRpc中 12 | adminRemoter: RemoterClass; 13 | }; 14 | } 15 | } 16 | 17 | 18 | export class AdminRemoter { 19 | constructor(private app: Application) { 20 | 21 | } 22 | 23 | /** 24 | * 25 | * @param username 26 | * @param password 27 | */ 28 | public async auth(username: string , password: string) { 29 | return true; 30 | } 31 | 32 | // 私有方法不会加入到RPC提示里 33 | private async privateMethod(testarg:string,arg2:number){ 34 | 35 | } 36 | } -------------------------------------------------------------------------------- /shared/server.key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICWwIBAAKBgQDMPe8oscKpTlQFZRrpbWmSO1UE+H65nq50l5+ptOVPMK3wgEj+ 3 | YRyGWhBjugj9teVmLXY9ImWdZkBlvdAiQj7/S/1MxRbRtwEFGRE5ul/X1M6I+F0U 4 | yTGYA1Mo0jIlQaBDXAAyDujCWi+qlyZ28efNDUlO2KBY1H4rXobm9hoEFQIDAQAB 5 | AoGAXhaeCUIyqeoynLWh+yzzOHFqzjpnrr0iIwYCgJycEqobRzLh7YXxLRdqe3al 6 | U7Oq9TI2SR2CcEs9mWEi89VOzVvfu+4zRlvJLMzNjG8ncdvzmzWR288ORq6qmYVU 7 | 3KAEz/tbNaQMLrD43hkIb9BrSIb/cnwekl3pANo9dwytU5UCQQD4V6vTyzs/ob21 8 | +fO98tFkPtoHbt43S/1kDBSUyh6WWbS1KIQgtUSr2P5Ddtl6/vD3DW+XHCAhxyfV 9 | vuDvaP/fAkEA0oomFfmlpvzYejYNKPOz2PR+M0oRFVwn7lYyNwbRtUK1JYOMHwJ/ 10 | 3gwQEgAcYEkvgRlsxX0T5vHNmoR3U3OqiwJAIWkiG9devDvVWxMqoKZ3V0ZBbPiU 11 | etoFWB1r82yR2uZssmamCAR7HaeO5aKqtapw3rv3BFxrUkAJ8u7AMlVs/wJAVnpm 12 | MGqNjyyWIoSnHSYUvk2WtKx8neBvimcfUxja9HAFBfaljGszaFpeE3a2MRp+h7GQ 13 | ywGYNikmAYzdkoqVBwJAcOm/6u863pD2xA1mSFnmm3TulAMBfCULLdcY40w9m38b 14 | D89R1ISEy//N1fWa4KTsM0GpVOowEyluc53XNRUghw== 15 | -----END RSA PRIVATE KEY----- -------------------------------------------------------------------------------- /game-server/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // 使用 IntelliSense 了解相关属性。 3 | // 悬停以查看现有属性的描述。 4 | // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | { 8 | "type": "node", 9 | "request": "launch", 10 | "name": "Launch App", 11 | "program": "${workspaceFolder}\\dist\\app.js", 12 | "autoAttachChildProcesses": true, 13 | "cwd": "${workspaceFolder}\\dist", 14 | "outFiles": [ 15 | "${workspaceFolder}/**/*.js" 16 | ] 17 | }, 18 | { 19 | "type": "node", 20 | "request": "attach", 21 | "name": "Attach to Connector", 22 | "address": "127.0.0.1", 23 | "port": 10001, 24 | "localRoot": "${workspaceFolder}", 25 | "remoteRoot": "${workspaceFolder}" 26 | } 27 | 28 | ] 29 | } -------------------------------------------------------------------------------- /game-server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "xue_server", 3 | "version": "0.0.1", 4 | "private": false, 5 | "bin": { 6 | "$": "./dist/bin/app.js" 7 | }, 8 | "main": "./dist/app", 9 | "scripts": { 10 | "start": "npm run build && cd dist && node app", 11 | "build": "node_modules/.bin/tsc" 12 | }, 13 | "dependencies": { 14 | "@types/bluebird": "^3.5.19", 15 | "@types/node": "^8.5.2", 16 | "bluebird": "^3.5.1", 17 | "mongodb": "^3.3.0", 18 | "mysql": "^2.14.1", 19 | "pinus": "1.3.11", 20 | "pinus-global-channel-status": "^5.0.2", 21 | "pomelo-http-plugin": "0.0.25", 22 | "redis": "^2.8.0", 23 | "reflect-metadata": "^0.1.10", 24 | "source-map-support": "^0.5.0", 25 | "typeorm": "0.2.18", 26 | "xmcommon": "^0.1.2" 27 | }, 28 | "devDependencies": { 29 | "tslint": "^5.9.1", 30 | "typescript": "3.3.3333", 31 | "ts-node": "3.3.0", 32 | "@types/node": "^8.0.29" 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /game-server/app/servers/mary_slot/remote/marySlotRemoter.ts: -------------------------------------------------------------------------------- 1 | import {Application, RemoterClass, FrontendSession, BackendSession} from 'pinus'; 2 | import { Mary_Slot_Table } from '../base/table'; 3 | 4 | export default function (app: Application) { 5 | return new MarySlotRemoter(app); 6 | } 7 | 8 | // UserRpc的命名空间自动合并 9 | declare global { 10 | interface UserRpc { 11 | mary_slot: { 12 | // 一次性定义一个类自动合并到UserRpc中 13 | marySlotRemoter: RemoterClass; 14 | }; 15 | } 16 | } 17 | 18 | 19 | export class MarySlotRemoter { 20 | constructor(private app: Application) { 21 | 22 | } 23 | 24 | /** 25 | * 下线 26 | * @param uid 27 | */ 28 | public async outLine(uid:string) { 29 | ////TODO: ---- > 下线 退出房间 30 | let table:Mary_Slot_Table = Mary_Slot_Table.findTable(~~uid); 31 | if (table) { 32 | await table.leave_game(~~uid); 33 | } 34 | return true; 35 | } 36 | 37 | } -------------------------------------------------------------------------------- /game-server/app/util/encrypt.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by andy on 2018-07-04. 3 | * QQ 188888888 4 | * Mobile 15888888888 5 | */ 6 | let crypto = require("crypto"); 7 | 8 | export function md5(origin) { 9 | let data = crypto.createHash('md5'); 10 | data.update(origin); 11 | return data.digest('hex'); 12 | } 13 | 14 | export function sha1(origin) { 15 | let data = crypto.createHash('sha1'); 16 | data.update(origin); 17 | return data.digest('hex'); 18 | } 19 | 20 | export function encode(key, iv, data) { 21 | let cryptKey = crypto.createHash('sha256').update(key).digest(); 22 | let encipher = crypto.createCipheriv('aes-256-cbc', cryptKey, iv); 23 | return encipher.update(data, 'utf8', 'base64') + encipher.final('base64'); 24 | } 25 | 26 | export function decode(key, iv, data) { 27 | let cryptKey = crypto.createHash('sha256').update(key).digest(); 28 | let decipher = crypto.createDecipheriv('aes-256-cbc', cryptKey, iv); 29 | return decipher.update(data, 'base64', 'utf8') + decipher.final('utf8'); 30 | } 31 | -------------------------------------------------------------------------------- /game-server/preload.ts: -------------------------------------------------------------------------------- 1 | import {Promise} from 'bluebird'; 2 | // 支持注解 3 | import 'reflect-metadata'; 4 | 5 | /** 6 | * 替换全局Promise 7 | * 自动解析sourcemap 8 | * 捕获全局错误 9 | */ 10 | export function preload() { 11 | // 使用bluebird输出完整的promise调用链 12 | global.Promise = Promise; 13 | // 开启长堆栈 14 | Promise.config({ 15 | // Enable warnings 16 | warnings: true, 17 | // Enable long stack traces 18 | longStackTraces: true, 19 | // Enable cancellation 20 | cancellation: true, 21 | // Enable monitoring 22 | monitoring: true 23 | }); 24 | 25 | // 自动解析ts的sourcemap 26 | require('source-map-support').install({ 27 | handleUncaughtExceptions: false 28 | }); 29 | 30 | // 捕获普通异常 31 | process.on('uncaughtException', function (err) { 32 | console.error('Caught exception: ' + err.stack); 33 | }); 34 | 35 | // 捕获async异常 36 | process.on('unhandledRejection', (reason, p) => { 37 | console.error('Caught Unhandled Rejection at:' + p + 'reason:' + reason.stack); 38 | }); 39 | } -------------------------------------------------------------------------------- /game-server/app/servers/gate/handler/gateHandler.ts: -------------------------------------------------------------------------------- 1 | import { dispatch } from '../../../util/dispatcher'; 2 | import { Application , BackendSession} from 'pinus'; 3 | 4 | export default function (app: Application) { 5 | return new GateHandler(app); 6 | } 7 | 8 | export class GateHandler { 9 | constructor(private app: Application) { 10 | } 11 | 12 | /** 13 | * Gate handler that dispatch user to connectors. 14 | * 15 | * @param {Object} msg message from client 16 | * @param {Object} session 17 | * @param {Function} next next stemp callback 18 | * 19 | */ 20 | async queryEntry(msg: {uid: string}, session: BackendSession) { 21 | let uid = msg.uid; 22 | if (!uid) { 23 | return { 24 | code: 500 25 | }; 26 | } 27 | // get all connectors 28 | let connectors = this.app.getServersByType('connector'); 29 | if (!connectors || connectors.length === 0) { 30 | return { 31 | code: 500 32 | }; 33 | } 34 | // select connector 35 | let res = dispatch(uid, connectors); 36 | return { 37 | code: 200, 38 | host: res.clientHost, 39 | port: res.clientPort 40 | }; 41 | } 42 | } -------------------------------------------------------------------------------- /game-server/dist/config/servers.json: -------------------------------------------------------------------------------- 1 | { 2 | "development":{ 3 | "connector": [ 4 | {"id": "connector-server-1", "host": "127.0.0.1", "port": 3150, "clientHost": "127.0.0.1", "clientPort": 3010, "frontend": true , "args" : " --inspect=10001"} 5 | ], 6 | "gate":[ 7 | {"id": "gate-server-1", "host": "127.0.0.1", "clientHost": "127.0.0.1", "clientPort": 3014, "frontend": true, "args": "--inspect=10002"} 8 | ], 9 | "admin_api":[ 10 | {"id": "admin_api-server-1", "host": "127.0.0.1", "port": 3160, "args": "--inspect=10003"} 11 | ], 12 | "web_api":[ 13 | {"id": "web_api-server-1", "host": "127.0.0.1", "port": 3170, "args": "--inspect=10004"} 14 | ], 15 | "mary_slot":[ 16 | {"id": "mary_slot-server-1", "host": "127.0.0.1", "port": 3180, "args": "--inspect=10005"} 17 | ] 18 | }, 19 | "production":{ 20 | "connector": [ 21 | {"id": "connector-server-1", "host": "127.0.0.1", "port": 3150, "clientHost": "127.0.0.1", "clientPort": 3010, "frontend": true , "args" : " --inspect=10002"} 22 | ], 23 | "gate":[ 24 | {"id": "gate-server-1", "host": "127.0.0.1", "clientHost": "127.0.0.1", "clientPort": 3014, "frontend": true, "args": "--inspect=10002"} 25 | ], 26 | "admin_api":[ 27 | {"id": "admin_api-server-1", "host": "127.0.0.1", "port": 3160, "args": "--inspect=10003"} 28 | ], 29 | "web_api":[ 30 | {"id": "web_api-server-1", "host": "127.0.0.1", "port": 3170, "args": "--inspect=10004"} 31 | ], 32 | "mary_slot":[ 33 | {"id": "mary_slot-server-1", "host": "127.0.0.1", "port": 3180, "args": "--inspect=10005"} 34 | ] 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /game-server/app/util/token.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by andy on 2018-07-04. 3 | * QQ 188888888 4 | * Mobile 15888888888 5 | */ 6 | import {md5, encode, decode} from './encrypt'; 7 | import {base64, unbase64} from './tool'; 8 | 9 | let setting = { 10 | "key": "fatcat_2017", 11 | "iv": "1234567891234567", 12 | "token_key": "~PinZheng@Ninghai" 13 | }; 14 | 15 | /** 16 | * 构建Token 17 | * @param uid 18 | * @param name 19 | * @param avatar 20 | * @returns {*} 21 | * @constructor 22 | */ 23 | export function NewToken(uid, {name, avatar}) { 24 | let token = md5(setting.token_key + uid); 25 | let str = uid + '#' + token + '#' + Date.now() + '#' + "name"; 26 | return base64(encode(setting.key, setting.iv, str)); 27 | } 28 | 29 | /** 30 | * 验证Token 31 | * @param uid 32 | * @param token 33 | * @returns {{ok: boolean}} 34 | * @constructor 35 | */ 36 | export function VerifyToken(uid, token) { 37 | let result = {ok: false}; 38 | try { 39 | let str = decode(setting.key, setting.iv, unbase64(token)); 40 | let args = str.split('#'); 41 | result.ok = args[0] == uid && md5(setting.token_key + uid) == args[1]; 42 | // result.name = args[3]; 43 | // result.avatar = args[4]; 44 | return result; 45 | } catch (ex) { 46 | return result; 47 | } 48 | } 49 | 50 | export function AnalysisToken(token) { 51 | let result = {ok: false, uid: -1}; 52 | try { 53 | let str = decode(setting.key, setting.iv, unbase64(token)); 54 | let args = str.split('#'); 55 | result.uid = ~~args[0]; 56 | result.ok = true; 57 | return result; 58 | } catch (ex) { 59 | return result; 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /game-server/app/servers/web_api/handler/webHandler.ts: -------------------------------------------------------------------------------- 1 | import { Application, FrontendSession } from 'pinus'; 2 | 3 | export default function (app: Application) { 4 | return new webHandler(app); 5 | } 6 | 7 | export class webHandler { 8 | constructor(private app: Application) { 9 | 10 | } 11 | 12 | /** 13 | * New client entry. 14 | * 15 | * @param {Object} msg request message 16 | * @param {Object} session current session object 17 | * @param {Function} next next step callback 18 | * @return {Void} 19 | */ 20 | async entry(msg: any, session: FrontendSession) { 21 | return { code: 200, msg: 'game server is ok.' }; 22 | } 23 | 24 | /** 25 | * Publish route for mqtt connector. 26 | * 27 | * @param {Object} msg request message 28 | * @param {Object} session current session object 29 | * @param {Function} next next step callback 30 | * @return {Void} 31 | */ 32 | async publish(msg: any, session: FrontendSession) { 33 | let result = { 34 | topic: 'publish', 35 | payload: JSON.stringify({ code: 200, msg: 'publish message is ok.' }) 36 | }; 37 | return result; 38 | } 39 | 40 | /** 41 | * Subscribe route for mqtt connector. 42 | * 43 | * @param {Object} msg request message 44 | * @param {Object} session current session object 45 | * @param {Function} next next step callback 46 | * @return {Void} 47 | */ 48 | async subscribe(msg: any, session: FrontendSession) { 49 | let result = { 50 | topic: 'subscribe', 51 | payload: JSON.stringify({ code: 200, msg: 'subscribe message is ok.' }) 52 | }; 53 | return result; 54 | } 55 | 56 | } -------------------------------------------------------------------------------- /game-server/app/servers/admin_api/handler/adminHandler.ts: -------------------------------------------------------------------------------- 1 | import { Application, FrontendSession } from 'pinus'; 2 | 3 | export default function (app: Application) { 4 | return new adminHandler(app); 5 | } 6 | 7 | export class adminHandler { 8 | constructor(private app: Application) { 9 | 10 | } 11 | 12 | /** 13 | * New client entry. 14 | * 15 | * @param {Object} msg request message 16 | * @param {Object} session current session object 17 | * @param {Function} next next step callback 18 | * @return {Void} 19 | */ 20 | async entry(msg: any, session: FrontendSession) { 21 | return { code: 200, msg: 'game server is ok.' }; 22 | } 23 | 24 | /** 25 | * Publish route for mqtt connector. 26 | * 27 | * @param {Object} msg request message 28 | * @param {Object} session current session object 29 | * @param {Function} next next step callback 30 | * @return {Void} 31 | */ 32 | async publish(msg: any, session: FrontendSession) { 33 | let result = { 34 | topic: 'publish', 35 | payload: JSON.stringify({ code: 200, msg: 'publish message is ok.' }) 36 | }; 37 | return result; 38 | } 39 | 40 | /** 41 | * Subscribe route for mqtt connector. 42 | * 43 | * @param {Object} msg request message 44 | * @param {Object} session current session object 45 | * @param {Function} next next step callback 46 | * @return {Void} 47 | */ 48 | async subscribe(msg: any, session: FrontendSession) { 49 | let result = { 50 | topic: 'subscribe', 51 | payload: JSON.stringify({ code: 200, msg: 'subscribe message is ok.' }) 52 | }; 53 | return result; 54 | } 55 | 56 | } -------------------------------------------------------------------------------- /game-server/app/servers/mary_slot/handler/marySlotHandler.ts: -------------------------------------------------------------------------------- 1 | import { Application, FrontendSession, BackendSession } from 'pinus'; 2 | import { Mary_Slot_Table } from '../base/table'; 3 | 4 | export default function (app: Application) { 5 | return new marySlotHandler(app); 6 | } 7 | 8 | export class marySlotHandler { 9 | constructor(private app: Application) { 10 | 11 | } 12 | 13 | /** 14 | * 进入游戏 15 | * 16 | * @param {Object} msg request message 17 | * @param {Object} session current session object 18 | * @return {*} 19 | */ 20 | async entry(msg: {room_index:number}, session: BackendSession) { 21 | let uid:number = ~~session.uid; 22 | let table:Mary_Slot_Table = Mary_Slot_Table.findTable(uid); 23 | if (table) { 24 | return {code:500,data:"你已经在房间中."} 25 | } 26 | let room_index:number = ~~msg.room_index; 27 | if (room_index < 1 || room_index > 4) return {code:501,data:"room_index参数错误."} 28 | table = Mary_Slot_Table.createTable(this.app,room_index); 29 | return await table.enter_game(uid); 30 | } 31 | 32 | /** 33 | * 离开游戏 34 | * 35 | * @param {Object} msg request message 36 | * @param {Object} session current session object 37 | * @return {*} 38 | */ 39 | async leave(msg: any, session: BackendSession) { 40 | let uid:number = ~~session.uid; 41 | let table:Mary_Slot_Table = Mary_Slot_Table.findTable(uid); 42 | if (table) { 43 | return await table.leave_game(uid); 44 | } 45 | return {code:500,data:"你已经不在游戏中."}; 46 | } 47 | 48 | 49 | /** 50 | * 摇奖 51 | * 52 | * @param {Object} msg request message 53 | * @param {Object} session current session object 54 | * @return {*} 55 | */ 56 | async put_bet(msg: {bet:number}, session: BackendSession) { 57 | let uid:number = ~~session.uid; 58 | let bet:number = ~~msg.bet; 59 | let table:Mary_Slot_Table = Mary_Slot_Table.findTable(uid); 60 | if (!table) { 61 | return {code:500,data:"你已经不在房间中."} 62 | } 63 | return await table.put_bet(bet); 64 | } 65 | 66 | 67 | /** 68 | * 小玛丽摇奖 69 | * 70 | * @param {Object} msg request message 71 | * @param {Object} session current session object 72 | * @return {*} 73 | */ 74 | async small_put_bet(msg:any, session: BackendSession) { 75 | let uid:number = ~~session.uid; 76 | let table:Mary_Slot_Table = Mary_Slot_Table.findTable(uid); 77 | if (!table) { 78 | return {code:500,data:"你已经不在房间中."} 79 | } 80 | return await table.small_put_bet(); 81 | } 82 | } -------------------------------------------------------------------------------- /game-server/dist/config/log4js.json: -------------------------------------------------------------------------------- 1 | { 2 | "appenders": { 3 | "console": { 4 | "type": "console" 5 | }, 6 | "con-log": { 7 | "type": "file", 8 | "filename": "${opts:base}/logs/con-log-${opts:serverId}.log", 9 | "pattern": "connector", 10 | "maxLogSize": 1048576, 11 | "layout": { 12 | "type": "basic" 13 | }, 14 | "backups": 5 15 | }, 16 | "rpc-log": { 17 | "type": "file", 18 | "filename": "${opts:base}/logs/rpc-log-${opts:serverId}.log", 19 | "maxLogSize": 1048576, 20 | "layout": { 21 | "type": "basic" 22 | }, 23 | "backups": 5 24 | }, 25 | "forward-log": { 26 | "type": "file", 27 | "filename": "${opts:base}/logs/forward-log-${opts:serverId}.log", 28 | "maxLogSize": 1048576, 29 | "layout": { 30 | "type": "basic" 31 | }, 32 | "backups": 5 33 | }, 34 | "rpc-debug": { 35 | "type": "file", 36 | "filename": "${opts:base}/logs/rpc-debug-${opts:serverId}.log", 37 | "maxLogSize": 1048576, 38 | "layout": { 39 | "type": "basic" 40 | }, 41 | "backups": 5 42 | }, 43 | "crash-log": { 44 | "type": "file", 45 | "filename": "${opts:base}/logs/crash.log", 46 | "maxLogSize": 1048576, 47 | "layout": { 48 | "type": "basic" 49 | }, 50 | "backups": 5 51 | }, 52 | "admin-log": { 53 | "type": "file", 54 | "filename": "${opts:base}/logs/admin.log", 55 | "maxLogSize": 1048576, 56 | "layout": { 57 | "type": "basic" 58 | }, 59 | "backups": 5 60 | }, 61 | "pomelo": { 62 | "type": "file", 63 | "filename": "${opts:base}/logs/pinus-${opts:serverId}.log", 64 | "maxLogSize": 1048576, 65 | "layout": { 66 | "type": "basic" 67 | }, 68 | "backups": 5 69 | }, 70 | "pinus-admin": { 71 | "type": "file", 72 | "filename": "${opts:base}/logs/pinus-admin.log", 73 | "maxLogSize": 1048576, 74 | "layout": { 75 | "type": "basic" 76 | }, 77 | "backups": 5 78 | }, 79 | "pinus-rpc": { 80 | "type": "file", 81 | "filename": "${opts:base}/logs/pinus-rpc-${opts:serverId}.log", 82 | "maxLogSize": 1048576, 83 | "layout": { 84 | "type": "basic" 85 | }, 86 | "backups": 5 87 | } 88 | }, 89 | 90 | "categories": { 91 | "default": { 92 | "appenders": [ "console", "con-log", "rpc-log", "forward-log", "rpc-debug", "crash-log", "admin-log", "pomelo", "pinus-admin", "pinus-rpc" ], 93 | "level": "debug" 94 | } 95 | }, 96 | 97 | "prefix": "${opts:serverId} ", 98 | "replaceConsole": true, 99 | "lineDebug": false, 100 | "errorStack": true 101 | } 102 | -------------------------------------------------------------------------------- /game-server/app/servers/web_api/lifecycle.ts: -------------------------------------------------------------------------------- 1 | import {ILifeCycle ,Application} from "pinus"; 2 | import {events} from "pinus"; 3 | 4 | import "reflect-metadata"; 5 | import {createConnection, createConnections} from "typeorm"; 6 | import {Recharge_Log_SQL} from "../../entity/Recharge_Log_SQL"; 7 | import { User_MOG } from "../../entity/User_MOG"; 8 | import { Account_MOG } from "../../entity/Account_MOG"; 9 | 10 | var redis = require('redis'); 11 | 12 | export default function () { 13 | return new Lifecycle(); 14 | } 15 | 16 | class Lifecycle implements ILifeCycle { 17 | 18 | beforeStartup(app:Application,next:()=>void) { 19 | 20 | createConnections([{ 21 | name: 'xue_game', // 给这个连接起个名字,如果是用户库,则可以起名 account 22 | type: 'mongodb', 23 | host: 'localhost', 24 | port: 27017, 25 | username: '', 26 | password: '', 27 | database: 'xue_game', 28 | entities: [ 29 | User_MOG, 30 | Account_MOG, 31 | ], // 用此连接的实体 32 | logging: true, // 开启所有数据库信息打印 33 | logger: 'advanced-console', // 高亮字体的打印信息 34 | extra: { 35 | connectionLimit: 10, // 连接池最大连接数量, 查阅资料 建议是 core number * 2 + n 36 | useNewUrlParser: true, 37 | useUnifiedTopology: true, 38 | useCreateIndex: true, 39 | }, 40 | // cache: { 41 | // type: 'redis', 42 | // options: { 43 | // host: 'localhost', 44 | // port: 6379, 45 | // username: '', 46 | // // password:'', 47 | // db: 0, // 这个任君选择,0~15库都可以选 48 | // } 49 | // }, // 如果对cache没有需求,设置`cache:false`或者干脆不填此个参数也是可以的 50 | },{ 51 | name: 'xue_log', // 给这个连接起个名字,如果是用户库,则可以起名 account 52 | type: 'mysql', 53 | host: 'localhost', 54 | port: 3306, 55 | username: 'root', 56 | password: '123456', 57 | database: 'xue_log', 58 | entities: [ 59 | Recharge_Log_SQL, 60 | ], // 用此连接的实体 61 | synchronize: true, 62 | logging: true, // 开启所有数据库信息打印 63 | logger: 'advanced-console', // 高亮字体的打印信息 64 | extra: { 65 | connectionLimit: 10, // 连接池最大连接数量, 查阅资料 建议是 core number * 2 + n 66 | }, 67 | // cache: { 68 | // type: 'redis', 69 | // options: { 70 | // host: 'localhost', 71 | // port: 6379, 72 | // username: '', 73 | // // password:'', 74 | // db: 1, // 这个任君选择,0~15库都可以选 75 | // } 76 | // }, // 如果对cache没有需求,设置`cache:false`或者干脆不填此个参数也是可以的 77 | }, 78 | ]).then(async connections => { 79 | var client = redis.createClient('6379', '127.0.0.1'); 80 | client.on('connect', function () { 81 | global["REDIS"] = client; 82 | next(); 83 | }); 84 | }).catch(error => console.log(error)); 85 | } 86 | 87 | afterStartAll(app:Application):void { 88 | console.log("------------------初始化web_api-------------------"); 89 | } 90 | 91 | beforeShutdown(app:Application):void { 92 | console.log("------------------clear web_api-------------------"); 93 | } 94 | } -------------------------------------------------------------------------------- /game-server/app/util/tool.ts: -------------------------------------------------------------------------------- 1 | import { VerifyToken } from "./token"; 2 | import { GlobalChannelServiceStatus } from "pinus-global-channel-status"; 3 | import { GAME_TYPE } from "./enum"; 4 | 5 | export function get_random_int(min:number,max:number) { 6 | if (max <= min) return Math.floor(max); 7 | let c:number = max - min; 8 | c = Math.random() * c; 9 | return Math.floor(min + c); 10 | } 11 | 12 | 13 | export function base64(str) { 14 | return new Buffer(str).toString('base64'); 15 | } 16 | 17 | export function unbase64(str) { 18 | return new Buffer(str, 'base64').toString(); 19 | } 20 | 21 | /** 22 | * 解析http 参数 23 | * @param body 24 | */ 25 | export function analysis_http(body:any) { 26 | let param_num:number = 0; 27 | let new_body:string = null; 28 | for (const key in body) { 29 | if (body.hasOwnProperty(key)) { 30 | const element = body[key]; 31 | if (element == "") new_body = key; 32 | param_num ++; 33 | } 34 | } 35 | if (param_num == 1 && new_body) { 36 | return JSON.parse(new_body); 37 | }else{ 38 | return body; 39 | } 40 | } 41 | 42 | export function s_http(code:number,data:any,res:any) { 43 | res.send(JSON.stringify({code,data})); 44 | } 45 | 46 | /** 47 | * 校验token 48 | * @param req 49 | */ 50 | export function is_enable_token(req:any) { 51 | let {uid,token} = analysis_http(req.body); 52 | if (!uid || !token) return false; 53 | let {ok} = VerifyToken(uid, token); 54 | return ok; 55 | } 56 | 57 | /** 58 | * 用户是否在某个游戏中 59 | * @param uid 60 | * @param globalChannelStatus 61 | */ 62 | export async function inGame(uid:string,globalChannelStatus: GlobalChannelServiceStatus) { 63 | let channel_arr = [GAME_TYPE.MARY_SLOT]; 64 | let members = await globalChannelStatus.getMembersByChannelName("connector",channel_arr); 65 | /** 66 | * { connector_1:{ channelName1: [ 'uuid_21', 'uuid_12', 'uuid_24', 'uuid_27' ] }, 67 | connector_2: { channelName1: [ 'uuid_15', 'uuid_9', 'uuid_0', 'uuid_18' ] }, 68 | connector_3: { channelName1: [ 'uuid_6', 'uuid_3' ] } 69 | */ 70 | for (const server_id in members) { 71 | if (members.hasOwnProperty(server_id)) { 72 | const element = members[server_id]; 73 | for (const channel_name in element) { 74 | if (element.hasOwnProperty(channel_name)) { 75 | const uids = element[channel_name]; 76 | if (uids.indexOf(uid) != -1) { ///// 在某个游戏中 77 | return true; 78 | } 79 | } 80 | } 81 | } 82 | } 83 | return false; 84 | } 85 | 86 | 87 | /** 88 | * 打乱数组 89 | * @param arr 90 | */ 91 | export function random_arr(arr:any[]) { 92 | let ret_arr:any[] = []; 93 | while (arr.length > 0) { 94 | let rnd:number = Math.floor(Math.random() * arr.length); 95 | ret_arr.push(arr[rnd]); 96 | arr.splice(rnd,1); 97 | } 98 | return ret_arr; 99 | } 100 | 101 | /** 102 | * 从数组中删除指定的元素 103 | * @param arr 104 | * @param del_element 105 | */ 106 | export function del_element_by_arr(arr:any[],del_element:any) { 107 | let ret_arr:any[] = []; 108 | for (let i = 0; i < arr.length; i++) { 109 | const element = arr[i]; 110 | if (element != del_element) ret_arr.push(element); 111 | } 112 | return ret_arr; 113 | } -------------------------------------------------------------------------------- /game-server/app.ts: -------------------------------------------------------------------------------- 1 | import { pinus } from 'pinus'; 2 | import { preload } from './preload'; 3 | 4 | import { LogFilter } from './app/filters/log'; 5 | import { VerifyToken } from './app/util/token'; 6 | import { s_http } from './app/util/tool'; 7 | 8 | import {createGlobalChannelStatusPlugin} from 'pinus-global-channel-status'; 9 | 10 | var httpPlugin = require('pomelo-http-plugin'); 11 | const componentsPath = httpPlugin.components 12 | httpPlugin.components = [require(componentsPath+'/http')] 13 | const eventsPath = httpPlugin.events 14 | httpPlugin.events = [require(eventsPath+'/http')] 15 | httpPlugin.name = 'pomelo-http-plugin' 16 | 17 | var path = require('path'); 18 | 19 | /** 20 | * 替换全局Promise 21 | * 自动解析sourcemap 22 | * 捕获全局错误 23 | */ 24 | preload(); 25 | 26 | /** 27 | * Init app for client. 28 | */ 29 | let app = pinus.createApp(); 30 | app.set('name', 'xue_server'); 31 | 32 | // app configuration 33 | app.configure('production|development', 'connector', function () { 34 | app.set('connectorConfig', 35 | { 36 | connector: pinus.connectors.hybridconnector, 37 | heartbeat: 30, 38 | useDict: true, 39 | useProtobuf: true 40 | }); 41 | 42 | app.use(createGlobalChannelStatusPlugin(),{ 43 | family : 4, // 4 (IPv4) or 6 (IPv6) 44 | options : {}, 45 | host : '127.0.0.1', 46 | password : null, 47 | port : 6379, 48 | db : 15, // optinal, from 0 to 15 with default redis configure 49 | // optional 50 | cleanOnStartUp:app.getServerType() == 'connector', 51 | }); 52 | }); 53 | 54 | app.configure('production|development', 'gate', function () { 55 | app.set('connectorConfig', 56 | { 57 | connector: pinus.connectors.hybridconnector, 58 | // useProtobuf: true 59 | }); 60 | }); 61 | 62 | app.configure('production|development', 'web_api', function() { 63 | app.loadConfig('httpConfig', path.join(app.getBase(), 'config/http.json')); 64 | app.use(httpPlugin,app.get('httpConfig').gamehttp); 65 | // app.use(httpPlugin,app.get('httpConfig').gamehttps); 66 | 67 | // httpPlugin.filter(new LogFilter()); 68 | // let filters = ["/register","/login"]; 69 | // httpPlugin.beforeFilter(function (req, res, next) { 70 | // console.log("before start http: req.path:",req.path); 71 | // if (filters.indexOf(req.path) != -1) { 72 | // return next(); 73 | // }else{ 74 | // let {uid,token} = req.body; 75 | // let {ok} = VerifyToken(uid, token); 76 | // if (ok == false) { 77 | // return s_http(403,"token验证不通过",res); 78 | // } 79 | // return next(); 80 | // } 81 | // }); 82 | // httpPlugin.afterFilter(function(req, res) { 83 | // // res.send(res.get('resp')); 84 | // }); 85 | }); 86 | 87 | 88 | app.configure('production|development', 'web_api|admin_api|mary_slot', function() { 89 | 90 | app.use(createGlobalChannelStatusPlugin(),{ 91 | family : 4, // 4 (IPv4) or 6 (IPv6) 92 | options : {}, 93 | host : '127.0.0.1', 94 | password : null, 95 | port : 6379, 96 | db : 15, // optinal, from 0 to 15 with default redis configure 97 | // optional 98 | cleanOnStartUp:app.getServerType() == 'connector', 99 | }); 100 | 101 | }); 102 | 103 | // start app 104 | app.start(); 105 | 106 | -------------------------------------------------------------------------------- /game-server/app/servers/web_api/route/login.ts: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import {User_MOG} from '../../../entity/User_MOG'; 4 | import { getConnection } from 'typeorm'; 5 | import { Account_MOG } from '../../../entity/Account_MOG'; 6 | 7 | import { utils } from 'xmcommon'; 8 | import { get_random_int, s_http, is_enable_token, analysis_http } from '../../../util/tool'; 9 | import { NewToken } from '../../../util/token'; 10 | 11 | module.exports = function(app, http, plugin) { 12 | 13 | const xue_game = getConnection('xue_game'); 14 | const xue_log = getConnection('xue_log'); 15 | 16 | if (plugin.useSSL) { 17 | 18 | http.get('/testHttps', function(req, res, next) { 19 | return s_http(0,"https success",res); 20 | }); 21 | } else { 22 | 23 | //设置跨域访问 24 | http.all('*', function(req, res, next) { 25 | res.header("Access-Control-Allow-Origin", "*"); 26 | res.header("Access-Control-Allow-Headers", "Content-Type"); 27 | res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS"); 28 | res.header("X-Powered-By",' 3.2.1') 29 | res.header("Content-Type", "application/json;charset=utf-8"); 30 | next(); 31 | }); 32 | 33 | http.get('/testHttp', function(req, res, next) { 34 | return s_http(0,"http success",res); 35 | }); 36 | 37 | http.post('/register',async function(req, res, next) { 38 | // console.log("req.body:",req.body); 39 | let {account,password,name,sex} = analysis_http(req.body); 40 | if (account == null || password == null || name == null || sex == null) { 41 | return s_http(402,'注册失败,参数错误',res); 42 | } 43 | async function new_account():Promise { 44 | let uid:number = get_random_int(100000,999999); 45 | // let accountRepository = xue_game.getRepository(Account_MOG); 46 | // await accountRepository.findOne({uid}); 47 | let account_m = await xue_game.manager.findOne(Account_MOG,{uid}); 48 | if (account_m) return await new_account(); 49 | account_m = await xue_game.manager.findOne(Account_MOG,{account}); 50 | if (account_m) return null; 51 | const account_obj = new Account_MOG(); 52 | account_obj.account = account; 53 | account_obj.password = password; 54 | account_obj.uid = uid; 55 | return account_obj as Account_MOG; 56 | } 57 | const account_m = await new_account(); 58 | if (account_m == null) { 59 | return s_http(403,'register fail, account already exists',res); 60 | } 61 | const user = new User_MOG(); 62 | user.name = name; 63 | user.sex = sex; 64 | user.avatar = 1; 65 | user.uid = account_m.uid; 66 | user.coin = 10000; 67 | await xue_game.manager.save(user); 68 | await xue_game.manager.save(account_m); 69 | 70 | return s_http(0,'register success',res); 71 | }); 72 | 73 | http.post('/login',async function(req, res, next) { 74 | console.log("req.body:",req.body); 75 | let {account,password} = analysis_http(req.body); 76 | let account_m = await xue_game.manager.findOne(Account_MOG,{account}); 77 | if (account_m == null) { 78 | return s_http(403,'账号不存在.',res); 79 | } 80 | if (account_m.password != password) { 81 | return s_http(404,'密码不匹配.',res); 82 | } 83 | let token:string = NewToken(account_m.uid,{name:null,avatar:null}); 84 | return s_http(0,{uid:account_m.uid,token},res); 85 | }); 86 | 87 | 88 | http.post('/get_info',async function(req, res, next) { 89 | console.log("req.body:",req.body); 90 | if (is_enable_token(req) == false) return s_http(402,'token校验不通过.',res); 91 | let {uid} = analysis_http(req.body); 92 | uid = ~~uid; 93 | let user = await xue_game.manager.findOne(User_MOG,{uid}); 94 | if (user == null) { 95 | return s_http(403,'玩家不存在.',res); 96 | } 97 | return s_http(0,{uid:user.uid,name:user.name,sex:user.sex,avatar:user.avatar,coin:user.coin},res); 98 | }); 99 | } 100 | }; -------------------------------------------------------------------------------- /game-server/app/servers/connector/handler/entryHandler.ts: -------------------------------------------------------------------------------- 1 | import { Application, FrontendSession } from 'pinus'; 2 | import { is_enable_token } from '../../../util/tool'; 3 | import { GlobalChannelServiceStatus } from 'pinus-global-channel-status'; 4 | import { GAME_TYPE } from '../../../util/enum'; 5 | 6 | export default function (app: Application) { 7 | return new Handler(app); 8 | } 9 | 10 | export class Handler { 11 | 12 | constructor(private app: Application) { 13 | 14 | } 15 | 16 | /** 17 | * New client entry. 18 | * 19 | * @param {Object} msg request message 20 | * @param {Object} session current session object 21 | * @return {Void} 22 | */ 23 | async entry(msg: {uid:number,token:string}, session: FrontendSession) { 24 | 25 | let self = this; 26 | let uid:string = "" + msg.uid; 27 | let sessionService = self.app.get('sessionService'); 28 | 29 | let req = {body:msg}; 30 | if (is_enable_token(req) == false) { 31 | return { 32 | code: 501, 33 | error: true 34 | }; 35 | } 36 | // duplicate log in 37 | if (!!sessionService.getByUid(uid)) { 38 | return { 39 | code: 500, 40 | error: true 41 | }; 42 | } 43 | 44 | await session.abind(uid); 45 | 46 | const globalChannelStatus: GlobalChannelServiceStatus = this.app.get(GlobalChannelServiceStatus.PLUGIN_NAME); 47 | globalChannelStatus.addStatus(session.uid, this.app.getServerId()); 48 | session.on('closed', this.onUserLeave.bind(this)); 49 | 50 | ////// 加入 全局的游戏通道 51 | let sids:string[] = await globalChannelStatus.getSidsByUid(""+uid); 52 | let sid:string = sids[0]; 53 | await globalChannelStatus.add(""+uid,sid,GAME_TYPE.GLOBAL_CHANNEL); 54 | return {code:0}; 55 | } 56 | 57 | /** 58 | * User log out handler 59 | * 60 | * @param {Object} app current application 61 | * @param {Object} session current session object 62 | * 63 | */ 64 | async onUserLeave(session: FrontendSession) { 65 | if (!session || !session.uid) { 66 | return; 67 | } 68 | const globalChannelStatus: GlobalChannelServiceStatus = this.app.get(GlobalChannelServiceStatus.PLUGIN_NAME); 69 | /// 通知 所在游戏服务 踢出这人TODO: 70 | let members = await globalChannelStatus.getMembersByChannelName("connector",GAME_TYPE.MARY_SLOT); 71 | /** 72 | * { connector_1:{ channelName1: [ 'uuid_21', 'uuid_12', 'uuid_24', 'uuid_27' ] }, 73 | connector_2: { channelName1: [ 'uuid_15', 'uuid_9', 'uuid_0', 'uuid_18' ] }, 74 | connector_3: { channelName1: [ 'uuid_6', 'uuid_3' ] } 75 | */ 76 | for (const server_id in members) { 77 | if (members.hasOwnProperty(server_id)) { 78 | const element = members[server_id]; 79 | for (const channel_name in element) { 80 | if (element.hasOwnProperty(channel_name)) { 81 | const uids = element[channel_name]; 82 | if (uids.indexOf(session.uid) != -1) { ///// 通知游戏 该用户掉线 83 | await this.app.rpc.mary_slot.marySlotRemoter.outLine.route(session)(session.uid); 84 | // await this.app.rpc.mary_slot.marySlotRemoter.outLine.route(null)(session.uid); 85 | } 86 | } 87 | } 88 | } 89 | } 90 | 91 | ////// 离开 全局的游戏通道 92 | let sids:string[] = await globalChannelStatus.getSidsByUid(session.uid); 93 | let sid:string = sids[0]; 94 | await globalChannelStatus.leave(""+session.uid,sid,GAME_TYPE.GLOBAL_CHANNEL); 95 | 96 | /// 下线 97 | globalChannelStatus.leaveStatus(session.uid, this.app.getServerId()); 98 | } 99 | 100 | } -------------------------------------------------------------------------------- /game-server/app/servers/mary_slot/lifecycle.ts: -------------------------------------------------------------------------------- 1 | import {ILifeCycle ,Application} from "pinus"; 2 | import {events} from "pinus"; 3 | 4 | import "reflect-metadata"; 5 | import {createConnection, createConnections} from "typeorm"; 6 | import {Recharge_Log_SQL} from "../../entity/Recharge_Log_SQL"; 7 | import { User_MOG } from "../../entity/User_MOG"; 8 | import { Account_MOG } from "../../entity/Account_MOG"; 9 | 10 | var redis = require('redis'); 11 | var path = require('path'); 12 | 13 | export default function () { 14 | return new Lifecycle(); 15 | } 16 | 17 | class Lifecycle implements ILifeCycle { 18 | 19 | beforeStartup(app:Application,next:()=>void) { 20 | 21 | createConnections([{ 22 | name: 'xue_game', // 给这个连接起个名字,如果是用户库,则可以起名 account 23 | type: 'mongodb', 24 | host: 'localhost', 25 | port: 27017, 26 | username: '', 27 | password: '', 28 | database: 'xue_game', 29 | entities: [ 30 | User_MOG, 31 | Account_MOG, 32 | ], // 用此连接的实体 33 | logging: true, // 开启所有数据库信息打印 34 | logger: 'advanced-console', // 高亮字体的打印信息 35 | extra: { 36 | connectionLimit: 10, // 连接池最大连接数量, 查阅资料 建议是 core number * 2 + n 37 | useNewUrlParser: true, 38 | useUnifiedTopology: true, 39 | useCreateIndex: true, 40 | }, 41 | // cache: { 42 | // type: 'redis', 43 | // options: { 44 | // host: 'localhost', 45 | // port: 6379, 46 | // username: '', 47 | // // password:'', 48 | // db: 0, // 这个任君选择,0~15库都可以选 49 | // } 50 | // }, // 如果对cache没有需求,设置`cache:false`或者干脆不填此个参数也是可以的 51 | },{ 52 | name: 'xue_log', // 给这个连接起个名字,如果是用户库,则可以起名 account 53 | type: 'mysql', 54 | host: 'localhost', 55 | port: 3306, 56 | username: 'root', 57 | password: '123456', 58 | database: 'xue_log', 59 | entities: [ 60 | Recharge_Log_SQL, 61 | ], // 用此连接的实体 62 | synchronize: true, 63 | logging: true, // 开启所有数据库信息打印 64 | logger: 'advanced-console', // 高亮字体的打印信息 65 | extra: { 66 | connectionLimit: 10, // 连接池最大连接数量, 查阅资料 建议是 core number * 2 + n 67 | }, 68 | // cache: { 69 | // type: 'redis', 70 | // options: { 71 | // host: 'localhost', 72 | // port: 6379, 73 | // username: '', 74 | // // password:'', 75 | // db: 1, // 这个任君选择,0~15库都可以选 76 | // } 77 | // }, // 如果对cache没有需求,设置`cache:false`或者干脆不填此个参数也是可以的 78 | }, 79 | ]).then(async connections => { 80 | var client = redis.createClient('6379', '127.0.0.1'); 81 | client.on('connect', function () { 82 | global["REDIS"] = client; 83 | global['REDIS_ON'] = client.on.bind(client); 84 | 85 | global['REDIS_DEL'] = client.del.bind(client); 86 | global['REDIS_GET'] = client.get.bind(client); 87 | global['REDIS_DECR'] = client.decr.bind(client); 88 | global['REDIS_DECRBY'] = client.decrby.bind(client); 89 | global['REDIS_INCR'] = client.incr.bind(client); 90 | global['REDIS_INCRBY'] = client.incrby.bind(client); 91 | global['REDIS_INCRBYFLOAT'] = client.incrbyfloat.bind(client); 92 | global['REDIS_MGET'] = client.mget.bind(client); 93 | global['REDIS_MSET'] = client.mset.bind(client); 94 | global['REDIS_MSETNX'] = client.msetnx.bind(client); 95 | global['REDIS_PSETEX'] = client.psetex.bind(client); 96 | global['REDIS_SET'] = client.set.bind(client); 97 | global['REDIS_SETEX'] = client.setex.bind(client); 98 | global['REDIS_SETNX'] = client.setnx.bind(client); 99 | global['REDIS_SETRANGE'] = client.setrange.bind(client); 100 | global['REDIS_STRLEN'] = client.strlen.bind(client); 101 | 102 | global['REDIS_HDEL'] = client.hdel.bind(client); 103 | global['REDIS_HEXISTS'] = client.hexists.bind(client); 104 | global['REDIS_HGET'] = client.hget.bind(client); 105 | global['REDIS_HGETALL'] = client.hgetall.bind(client); 106 | global['REDIS_HINCRBY'] = client.hincrby.bind(client); 107 | global['REDIS_HINCRBYFLOAT'] = client.hincrbyfloat.bind(client); 108 | global['REDIS_HKEYS'] = client.hkeys.bind(client); 109 | global['REDIS_HLEN'] = client.hlen.bind(client); 110 | global['REDIS_HMGET'] = client.hmget.bind(client); 111 | global['REDIS_HMSET'] = client.hmset.bind(client); 112 | global['REDIS_HSCAN'] = client.hscan.bind(client); 113 | global['REDIS_HSET'] = client.hset.bind(client); 114 | global['REDIS_HSETNX'] = client.hsetnx.bind(client); 115 | global['REDIS_HSTRLEN'] = client.hstrlen.bind(client); 116 | global['REDIS_HVALS'] = client.hvals.bind(client); 117 | 118 | next(); 119 | }); 120 | }).catch(error => console.log(error)); 121 | } 122 | 123 | afterStartAll(app:Application):void { 124 | console.log("------------------初始化mary_slot_api-------------------"); 125 | app.loadConfig('HappyFruit_1', path.join(app.getBase(), 'config/mary_slot/HappyFruit_1.json')); 126 | app.loadConfig('HappyFruit_2', path.join(app.getBase(), 'config/mary_slot/HappyFruit_2.json')); 127 | app.loadConfig('HappyFruit_3', path.join(app.getBase(), 'config/mary_slot/HappyFruit_3.json')); 128 | app.loadConfig('HappyFruit_4', path.join(app.getBase(), 'config/mary_slot/HappyFruit_4.json')); 129 | } 130 | 131 | beforeShutdown(app:Application):void { 132 | console.log("------------------clear mary_slot_api-------------------"); 133 | } 134 | } -------------------------------------------------------------------------------- /game-server/app/servers/mary_slot/base/table.ts: -------------------------------------------------------------------------------- 1 | import { Application } from "pinus"; 2 | import { make_slot_reward, Ret, Small_Ret, make_small_slot_reward } from "./make"; 3 | import { getConnection, Connection } from "typeorm"; 4 | import { User_MOG } from "../../../entity/User_MOG"; 5 | import { GlobalChannelServiceStatus } from "pinus-global-channel-status"; 6 | import { GAME_TYPE } from "../../../util/enum"; 7 | import { inGame } from "../../../util/tool"; 8 | import { utils } from 'xmcommon' 9 | 10 | /** 11 | * 游戏玩法配置 12 | */ 13 | export interface MarySlotSet { 14 | SetId:number; 15 | Normal:[number[],number[],number[],number[],number[]]; // 正常游戏玩法配置 16 | Free:[number[],number[],number[],number[],number[]]; // 免费次数玩法配置 17 | Game:{ 18 | Probs:number[]; 19 | Reward:[ 20 | number[],number[],number[],number[],number[],number[],number[],number[], 21 | number[],number[],number[],number[],number[],number[],number[],number[], 22 | number[],number[],number[],number[],number[],number[], 23 | ]; 24 | }; // 小游戏玩法配置 25 | JackPot:{Reward:number[]}; 26 | } 27 | 28 | /** 29 | * 开心水果机配置 30 | */ 31 | export interface MarySlotConfig { 32 | PlatformRatio:number; // 平台抽水比例 33 | HandselRatio:number; // 奖池抽水比例 34 | RoomRatio:number; // 房间税收 35 | Bet:number[]; // 下注值(单注) 36 | PullInterval:number; // 37 | IsRecordLog:number; // 38 | nFreeTime:number; // 39 | NoticeMulti:number // 40 | NoticeWord:string; //世界通知 41 | NoticeHandsel:string; // 42 | ControlLevel:{[level:string]:[number,number,number[],number[]]}; // 控制等级 43 | RoomControl:{Init:number,Level_Range:[number[],number[],number[],number[],number[]]}; // 房间控制 44 | StoreForUserNet:{InterveneTime:number,HighStore:number[],LowStore:number[]}; 45 | Set_1:MarySlotSet; 46 | Set_2:MarySlotSet; 47 | Set_3:MarySlotSet; 48 | } 49 | 50 | export class Mary_Slot_Table { 51 | 52 | private static ROOM_LIST:Map = new Map(); 53 | private static TABLE_ID:number = 0; 54 | 55 | private app: Application = null; 56 | private room_index:number = null; 57 | private room_config:MarySlotConfig = null; 58 | private table_id:number = null; 59 | private null_reward_num: number; 60 | private small_game_num: number; 61 | private free_game_num: number; 62 | private small_game_reward_num: number; 63 | private xue_game: Connection; // 用户数据库连接 64 | private user: User_MOG; 65 | private globalChannelStatus: GlobalChannelServiceStatus; 66 | 67 | public static findTable(uid:number) { // 发现某个用户 所在的房间 68 | let table:Mary_Slot_Table = null; 69 | Mary_Slot_Table.ROOM_LIST.forEach((value,key,map)=>{ 70 | if (value.user && value.user.uid == uid) table = value; 71 | }); 72 | return table; 73 | } 74 | 75 | public static createTable(app: Application,room_index:number) { 76 | return new Mary_Slot_Table(app,room_index); 77 | } 78 | 79 | constructor(app: Application,room_index:number) { 80 | this.app = app; 81 | this.room_index = room_index; 82 | this.room_config = app.get('HappyFruit_'+room_index); 83 | this.table_id = Mary_Slot_Table.TABLE_ID; 84 | Mary_Slot_Table.TABLE_ID ++; 85 | Mary_Slot_Table.ROOM_LIST.set(this.table_id,this); 86 | this.null_reward_num = 0; // 连续空奖次数 87 | this.small_game_num = 0; // 小游戏剩余次数 88 | this.free_game_num = 0; // 免费转次数 89 | 90 | this.small_game_reward_num = 0; // 本次小游戏中奖次数 91 | 92 | const globalChannelStatus: GlobalChannelServiceStatus = this.app.get(GlobalChannelServiceStatus.PLUGIN_NAME); 93 | this.globalChannelStatus = globalChannelStatus; 94 | 95 | } 96 | 97 | /** 98 | * 初始化奖池 99 | */ 100 | async init_pool() { 101 | let REDIS_HSETNX = global['REDIS_HSETNX']; 102 | let Init = this.room_config.RoomControl.Init; 103 | await utils.WaitFunctionEx(REDIS_HSETNX, 'Mary_Slot', 'room_pool', Init); 104 | const xue_game = getConnection('xue_game'); 105 | this.xue_game = xue_game; 106 | } 107 | 108 | /** 109 | * 下注摇奖 110 | */ 111 | async put_bet(bet:number) { 112 | if (this.user == null) return {code:402,data:"用户未进入房间."}; 113 | let is_free:boolean = false; 114 | let one_bet:number = bet / 9; 115 | if (this.room_config.Bet.indexOf(one_bet) == -1) return {code:403,data:"压注格式错误."} 116 | 117 | let REDIS_HGET = global['REDIS_HGET']; 118 | let REDIS_HINCRBY = global['REDIS_HINCRBY']; 119 | if (this.free_game_num > 0) { 120 | this.free_game_num --; 121 | is_free = true; 122 | one_bet = this.room_config.Bet[0]; 123 | }else{ 124 | is_free = false; 125 | this.user.coin -= bet; 126 | let room_water:number = Math.ceil(bet * this.room_config.RoomRatio / 10000); 127 | let handsel_water:number = Math.ceil(bet * this.room_config.HandselRatio / 10000); 128 | let add_pool:number = bet - room_water - handsel_water; 129 | await utils.WaitFunctionEx(REDIS_HINCRBY, 'Mary_Slot', 'room_water', room_water); 130 | await utils.WaitFunctionEx(REDIS_HINCRBY, 'Mary_Slot', 'handsel_pool', handsel_water); 131 | await utils.WaitFunctionEx(REDIS_HINCRBY, 'Mary_Slot', 'room_pool', add_pool); 132 | } 133 | let room_pool:any = await utils.WaitFunctionEx(REDIS_HGET, 'Mary_Slot', 'room_pool'); 134 | if(room_pool[0] != null) return {code:404,data:"奖池读取错误."}; 135 | room_pool = ~~room_pool[1] || 0; 136 | let handsel_pool:any = await utils.WaitFunctionEx(REDIS_HGET, 'Mary_Slot', 'handsel_pool'); 137 | if(handsel_pool[0] != null) return {code:405,data:"奖池读取错误."}; 138 | handsel_pool = ~~handsel_pool[1] || 0; 139 | let reward:Ret = make_slot_reward(room_pool,handsel_pool,one_bet,this.room_config,is_free,this.null_reward_num); 140 | ///_____ 结算中奖金额TODO:-----> 结算完成 141 | if (reward.is_reward) { 142 | this.null_reward_num = 0; 143 | }else{ 144 | this.null_reward_num ++; 145 | } 146 | this.small_game_num += reward.small_game_num; 147 | this.free_game_num += reward.free_game_num; 148 | this.small_game_reward_num = 0; 149 | this.user.coin += reward.total_reward; 150 | await utils.WaitFunctionEx(REDIS_HINCRBY, 'Mary_Slot', 'handsel_pool', -1*reward.pool_reward); 151 | await utils.WaitFunctionEx(REDIS_HINCRBY, 'Mary_Slot', 'room_pool', -1*reward.line_reward); 152 | await this.xue_game.manager.save(this.user); 153 | 154 | ///// 发送给 客户端 综合数据 155 | reward.small_game_num = this.small_game_num; 156 | reward.free_game_num = this.free_game_num; 157 | reward["current_coin"] = this.user.coin; 158 | reward["handsel_pool"] = handsel_pool-reward.pool_reward; 159 | return reward; 160 | } 161 | 162 | 163 | /** 164 | * 下注摇奖 165 | */ 166 | async small_put_bet() { 167 | if (this.user == null) return {code:402,data:"用户未进入房间."}; 168 | let one_bet:number = this.room_config.Bet[0]; 169 | if (this.small_game_num <= 0) return {code:403,data:"小游戏次数不足."}; 170 | 171 | let REDIS_HGET = global['REDIS_HGET']; 172 | let REDIS_HINCRBY = global['REDIS_HINCRBY']; 173 | let room_pool:any = await utils.WaitFunctionEx(REDIS_HGET, 'Mary_Slot', 'room_pool'); 174 | if(room_pool[0] != null) return {code:404,data:"奖池读取错误."}; 175 | room_pool = ~~room_pool[1] || 0; 176 | let reward:Small_Ret = make_small_slot_reward(room_pool,one_bet,this.room_config,this.small_game_reward_num); 177 | if (reward.is_next) { 178 | this.small_game_num --; 179 | this.small_game_reward_num = 0; 180 | }else if (reward.multiple != 0) { 181 | this.small_game_reward_num ++; 182 | } 183 | this.user.coin += reward.total_reward; 184 | await utils.WaitFunctionEx(REDIS_HINCRBY, 'Mary_Slot', 'room_pool', -1*reward.total_reward); 185 | await this.xue_game.manager.save(this.user); 186 | 187 | ///// 发送给 客户端 综合数据 188 | reward["small_game_num"] = this.small_game_num; 189 | reward["current_coin"] = this.user.coin; 190 | return reward; 191 | } 192 | /** 193 | * 玩家进入游戏 194 | * @param uid 195 | */ 196 | async enter_game(uid:number) { 197 | await this.init_pool(); 198 | let user = await this.xue_game.manager.findOne(User_MOG,{uid}); 199 | if (user == null) { 200 | return {code:403,data:'玩家不存在.'}; 201 | } 202 | let in_game = await inGame(""+uid,this.globalChannelStatus) 203 | if (in_game) { 204 | return {code:404,data:'你已经在其他游戏中,不能进入此游戏.'}; 205 | } 206 | this.user = user; 207 | let sids:string[] = await this.globalChannelStatus.getSidsByUid(""+uid); 208 | let sid:string = sids[0]; 209 | await this.globalChannelStatus.add(""+uid,sid,GAME_TYPE.MARY_SLOT); 210 | 211 | //// ____T: 测试通道 代码 212 | await this.globalChannelStatus.pushMessageByChannelName('connector','onNotice',{msg:"欢迎:"+uid+" 进入玛丽水果机游戏"},GAME_TYPE.GLOBAL_CHANNEL); 213 | // await this.globalChannelStatus.pushMessageByUids([""+uid],'onNotice',{msg:"欢迎进入开心水果机"}); 214 | return {code:0}; 215 | } 216 | 217 | 218 | /** 219 | * 玩家离开游戏 220 | * @param uid 221 | */ 222 | async leave_game(uid:number) { 223 | if(this.user && this.user.uid == uid) { 224 | this.user = null; 225 | Mary_Slot_Table.ROOM_LIST.delete(this.table_id); 226 | let sids:string[] = await this.globalChannelStatus.getSidsByUid(""+uid); 227 | let sid:string = sids[0]; 228 | await this.globalChannelStatus.leave(""+uid,sid,GAME_TYPE.MARY_SLOT); 229 | return {code:0}; 230 | }else{ 231 | return {code:404,data:"你不在该房间中"}; 232 | } 233 | } 234 | } -------------------------------------------------------------------------------- /game-server/app/servers/mary_slot/base/make.ts: -------------------------------------------------------------------------------- 1 | import { MarySlotConfig, MarySlotSet } from "./table"; 2 | import { random_arr, del_element_by_arr } from "../../../util/tool"; 3 | 4 | //水果 代号 5 | enum Image { 6 | Image_Null = 0, //无效 7 | Image_Banana, //香蕉 8 | Image_Watermelon, //西瓜 9 | Image_Mango, //芒果 10 | Image_Grape, //葡萄 11 | Image_Pineapple, //菠萝 12 | Image_Bell, //铃铛 13 | Image_Cherry, //樱桃 14 | Image_Bar, //Bar 15 | Image_Bonus, //Bonus免费旋转 16 | Image_Seven, //七 奖也 17 | Image_Wild, //Wild 18 | Image_Max, 19 | } 20 | 21 | // 水果倍数 22 | let Image_Multiple = [ 23 | [0,0,0,0,0,0], 24 | [0,0,1,3,10,75], // 香蕉 倍数 25 | [0,0,0,3,10,85], // 西瓜 倍数 26 | [0,0,0,15,40,250], // 芒果 倍数 27 | [0,0,0,25,50,400], // 葡萄 倍数 28 | [0,0,0,30,70,550], // 菠萝 倍数 29 | [0,0,0,35,80,650], // 铃铛 倍数 30 | [0,0,0,45,100,800], // 樱桃 倍数 31 | [0,0,0,75,175,1250], // Bar 倍数 32 | [0,0,0,25,50,400], // bouns 倍数 33 | [0,0,0,100,200,1750], // scatter 倍数 34 | [0,0,0,0,0,0], // Wild 倍数 35 | ]; 36 | 37 | /// 小玛丽游戏 水果倍数 38 | let Small_Image_Multiple = [ 39 | 0, // 炸弹,不中奖 40 | 20, // 香蕉 41 | 200,// 西瓜 42 | 70, // 芒果 43 | 100,// 葡萄 44 | 5, // 菠萝 45 | 0, // 铃铛 46 | 50, // 樱桃 47 | 0, // bar 48 | 10, // Bouns 橘子 49 | 0, // 7 50 | 0, // wild 51 | ]; 52 | 53 | /// 小玛丽游戏 水果列表 54 | let Small_Image = [ 55 | Image.Image_Null, //炸弹 56 | Image.Image_Banana, //香蕉 57 | Image.Image_Watermelon, //西瓜 58 | Image.Image_Mango, //芒果 59 | Image.Image_Grape, //葡萄 60 | Image.Image_Pineapple, //菠萝 61 | Image.Image_Cherry, //樱桃 62 | Image.Image_Bonus, //Bonus橘子 63 | ]; 64 | 65 | /** 66 | * 线类型 声明 长度5 67 | */ 68 | export interface Line { 69 | [index:number]:number[]; 70 | } 71 | 72 | /** 73 | * 输入 数据 声明 长度5 74 | */ 75 | export interface DataInput { 76 | [index:number]:number[]; 77 | } 78 | 79 | /** 80 | * 返回 数据 声明 长度5 81 | */ 82 | export interface DataRet { 83 | [index:number]:number[]; 84 | } 85 | 86 | export interface Ret { 87 | ret: [number[], number[], number[], number[], number[]]; 88 | small_game_num: number; 89 | line_multiple: number[]; 90 | free_game_num: number; 91 | pool_multiple: number; 92 | is_reward: boolean; 93 | line_reward: number; 94 | pool_reward: number; 95 | total_reward: number; 96 | } 97 | 98 | /// 线集合 99 | let line_gather = [ 100 | [[0,1],[1,1],[2,1],[3,1],[4,1]], // line 1 101 | [[0,0],[1,0],[2,0],[3,0],[4,0]], // line 2 102 | [[0,2],[1,2],[2,2],[3,2],[4,2]], // line 3 103 | 104 | [[0,0],[1,1],[2,2],[3,1],[4,0]], // line 4 105 | [[0,2],[1,1],[2,0],[3,1],[4,2]], // line 5 106 | 107 | [[0,0],[1,0],[2,1],[3,2],[4,2]], // line 6 108 | [[0,2],[1,2],[2,1],[3,0],[4,0]], // line 7 109 | 110 | [[0,1],[1,0],[2,1],[3,2],[4,1]], // line 8 111 | [[0,1],[1,2],[2,1],[3,0],[4,1]], // line 9 112 | ]; 113 | 114 | /** 115 | * @param data 随机数组 116 | * @returns {*} ret 结果图形 117 | * 列随机 118 | */ 119 | function row_make(data:[number[],number[],number[],number[],number[]]) { 120 | let ret:[number[],number[],number[],number[],number[]] = [[],[],[],[],[]]; 121 | for (let index = 0; index < data.length; index++) { 122 | const arr:number[] = data[index]; 123 | let rnd:number = Math.floor(Math.random() * arr.length); 124 | ret[index].push(arr[rnd]); 125 | ret[index].push(arr[rnd+1 % arr.length]); 126 | ret[index].push(arr[rnd+2 % arr.length]); 127 | } 128 | return ret; 129 | } 130 | 131 | 132 | /** 133 | * 图形随机 134 | */ 135 | function map_make(data:[number[],number[],number[],number[],number[]]) { 136 | let ret:[number[],number[],number[],number[],number[]] = [[],[],[],[],[]]; 137 | for (let index = 0; index < data.length; index++) { 138 | const arr:number[] = data[index]; 139 | let rnd:number = Math.floor(Math.random() * arr.length); 140 | ret[index].push(arr[rnd]); 141 | rnd = Math.floor(Math.random() * arr.length); 142 | ret[index].push(arr[rnd]); 143 | rnd = Math.floor(Math.random() * arr.length); 144 | ret[index].push(arr[rnd]); 145 | } 146 | return ret; 147 | } 148 | 149 | /** 150 | * 检查 这条线上 开始的元素 151 | * @param ret 152 | * @param line 153 | * @requires {number} 返回 倍数 154 | */ 155 | function check_line_element(ret:DataRet,line:Line):number { 156 | let element_type:Image = Image.Image_Null; 157 | let num = 0; 158 | for (let index = 0; index < 5; index++) { 159 | const pot = line[index]; 160 | let element = ret[pot[0]][pot[1]]; 161 | if(element == Image.Image_Wild && element_type != Image.Image_Bonus && element_type != Image.Image_Seven) { 162 | num ++; 163 | }else if(element == Image.Image_Wild && (element_type == Image.Image_Bonus || element_type == Image.Image_Seven)) { 164 | break; 165 | }else if (element != element_type && element_type != Image.Image_Null) { 166 | break; 167 | }else if (element != element_type && element_type == Image.Image_Null) { 168 | element_type = element; 169 | num++; 170 | if (element_type == Image.Image_Bonus || element_type == Image.Image_Seven)num = 0; 171 | }else if (element == element_type) { 172 | num ++; 173 | } 174 | } 175 | return Image_Multiple[element_type][num]; 176 | } 177 | 178 | /** 179 | * 检查 这条线上 连续的元素 180 | * @param ret 181 | * @param line 182 | * @param element 183 | */ 184 | function check_line_continuity(ret:DataRet,line:Line,element:Image) { 185 | let num:number = 0; 186 | let e_num:number = 0; 187 | for (let index = 0; index < 5; index++) { 188 | const pot = line[index]; 189 | let e = ret[pot[0]][pot[1]]; 190 | if (e == element) { 191 | num ++; 192 | }else if (e != element && num != 0) { 193 | e_num = Math.max(num,e_num); 194 | num = 0; 195 | } 196 | } 197 | e_num = Math.max(num,e_num); 198 | return e_num; 199 | } 200 | 201 | /** 202 | * 检查wild 203 | * @param ret 204 | * @returns {*} 返回 小玛丽游戏 次数 205 | */ 206 | function check_wild(ret:DataRet):number { 207 | let small_game_num = 0; 208 | for (let index = 0; index < line_gather.length; index++) { 209 | const line:Line = line_gather[index]; 210 | let num:number = check_line_continuity(ret,line,Image.Image_Wild); 211 | small_game_num += num == 3 ? 1 : 0; 212 | small_game_num += num == 4 ? 2 : 0; 213 | small_game_num += num == 5 ? 3 : 0; 214 | } 215 | return small_game_num; 216 | } 217 | 218 | /** 219 | * 检查line 220 | * @param ret 221 | * @returns {*} 返回 line 倍数 222 | */ 223 | function check_line_multiple(ret:DataRet):number[] { 224 | let line_multiple:number[] = []; 225 | for (let index = 0; index < line_gather.length; index++) { 226 | const line:Line = line_gather[index]; 227 | let multiple:number = check_line_element(ret,line); 228 | line_multiple.push(multiple); 229 | } 230 | return line_multiple; 231 | } 232 | 233 | /** 234 | * 检查列上是否有该元素 235 | * @param row 236 | */ 237 | function check_row_find_element(row:number[],element_type:Image):boolean { 238 | for (let index = 0; index < row.length; index++) { 239 | const element = row[index]; 240 | if (element == element_type) return true; 241 | } 242 | return false; 243 | } 244 | 245 | /** 246 | * 检查bonus 247 | * @param ret 248 | * @returns {*} 返回 免费游戏 次数 249 | */ 250 | function check_bonus(ret:DataRet):number { 251 | let row_sign:number[] = [0,0,0,0,0]; 252 | row_sign[0] = check_row_find_element(ret[0],Image.Image_Bonus) ? 1 : 0; 253 | row_sign[1] = check_row_find_element(ret[1],Image.Image_Bonus) ? 1 : 0; 254 | row_sign[2] = check_row_find_element(ret[2],Image.Image_Bonus) ? 1 : 0; 255 | row_sign[3] = check_row_find_element(ret[3],Image.Image_Bonus) ? 1 : 0; 256 | row_sign[4] = check_row_find_element(ret[4],Image.Image_Bonus) ? 1 : 0; 257 | let num:number = 0; 258 | let e_num:number = 0; 259 | for (let index = 0; index < 5; index++) { 260 | let e = row_sign[index]; 261 | if (e == 1) { 262 | num ++; 263 | }else if (e != 1 && num != 0) { 264 | e_num = Math.max(num,e_num); 265 | num = 0; 266 | } 267 | } 268 | e_num = Math.max(num,e_num); 269 | 270 | let bouns_reward:number[] = [0,0,0,10,15,20]; 271 | return bouns_reward[e_num]; 272 | } 273 | 274 | 275 | /** 276 | * 检查777 277 | * @param ret 278 | * @returns {*} 返回 奖池比例 279 | */ 280 | function check_scatter(ret:DataRet,JackPot_Reward:number[]):number { 281 | let pool_multiple = 0; 282 | let scatter_arr = []; 283 | for (let index = 0; index < line_gather.length; index++) { 284 | const line:Line = line_gather[index]; 285 | let num:number = check_line_continuity(ret,line,Image.Image_Seven); 286 | scatter_arr.push(num); 287 | } 288 | let scatter_num:number = Math.max(...scatter_arr); 289 | let pool_reward:number[] = [0,0,0].concat(JackPot_Reward); 290 | pool_multiple = pool_reward[scatter_num]; 291 | return pool_multiple; 292 | } 293 | 294 | /** 295 | * 检查中奖情况 296 | * @param ret 297 | */ 298 | function check_make_ret(ret:[number[],number[],number[],number[],number[]],handsel_pool:number,one_bet:number,JackPot_Reward:number[],max_bet:number) { 299 | let small_game_num:number = check_wild(ret); 300 | let line_multiple:number[] = check_line_multiple(ret); 301 | let free_game_num:number = check_bonus(ret); 302 | let pool_multiple:number = one_bet == max_bet ? check_scatter(ret,JackPot_Reward) : 0; 303 | let is_reward = false; 304 | if (small_game_num != 0) is_reward = true; 305 | if (free_game_num != 0) is_reward = true; 306 | if (pool_multiple != 0) is_reward = true; 307 | for (let index = 0; index < line_multiple.length; index++) { 308 | const element = line_multiple[index]; 309 | if (element != 0) is_reward = true; 310 | } 311 | /// 计算 线奖励和大奖池奖励 312 | let line_reward:number = 0; 313 | for (let index = 0; index < line_multiple.length; index++) { 314 | const element = line_multiple[index]; 315 | line_reward += one_bet * element; 316 | } 317 | let pool_reward:number = pool_multiple * handsel_pool; 318 | let total_reward:number = line_reward + pool_reward; 319 | let _ret:Ret = {ret,small_game_num,line_multiple,free_game_num,pool_multiple,is_reward,line_reward,pool_reward,total_reward}; 320 | return _ret; 321 | } 322 | 323 | 324 | 325 | 326 | 327 | 328 | function sum(arr) { 329 | return eval(arr.join("+")); 330 | } 331 | 332 | /** 333 | * 生成水果机奖励 334 | */ 335 | export function make_slot_reward(room_pool:number,handsel_pool:number,one_bet:number,room_config:MarySlotConfig,is_free:boolean,null_reward_num:number) { 336 | 337 | //// 取出最大押注 338 | let max_bet:number = room_config.Bet[room_config.Bet.length-1]; 339 | 340 | //// 取出控制等级 341 | let control_level:string = '1'; 342 | let Level_Range:number[][] = room_config.RoomControl.Level_Range; 343 | for (let index = 0; index < Level_Range.length; index++) { 344 | const level:number[] = Level_Range[index]; 345 | if (room_pool >= level[1] && room_pool < level[2]) { 346 | control_level = "" + level[0]; 347 | break; 348 | } 349 | } 350 | 351 | let control = room_config.ControlLevel[control_level]; 352 | let set_id:number = 2; 353 | if (Math.random() * 100 < control[1]) set_id = control[0]; 354 | 355 | let set_info:MarySlotSet = room_config["Set_" + set_id]; 356 | let JackPot_Reward:number[] = set_info.JackPot.Reward; 357 | let data_input:DataInput = set_info.Normal; 358 | if (is_free) data_input = set_info.Free; 359 | 360 | let probability:number = null_reward_num >= control[2].length ? control[2][control[2].length-1] : control[2][null_reward_num]; 361 | let is_reward:boolean = false; 362 | if (Math.random() * 100 < probability) is_reward = true; 363 | 364 | let big_reward_probability:number = control[3][0]; 365 | let big_reward_limit:number = control[3][1]; 366 | 367 | /// 随机函数 选择规则 待确认TODO:----> 图形随机 368 | let make:Function = map_make; 369 | 370 | let small_reward:Ret = null; 371 | for (let i = 0; i < 50; i++) { 372 | let ret:[number[],number[],number[],number[],number[]] = make(data_input); 373 | let out:Ret = check_make_ret(ret,handsel_pool,one_bet,JackPot_Reward,max_bet); 374 | if (small_reward == null || small_reward.total_reward > out.total_reward) small_reward = out; 375 | if (is_reward && out.is_reward == false) continue; 376 | if (sum(out.line_multiple) > big_reward_limit) { 377 | if (Math.random() * 100 < big_reward_probability) continue; 378 | } 379 | if (out.line_reward > room_pool) continue; 380 | return out; 381 | } 382 | return small_reward; 383 | } 384 | 385 | 386 | /////////////////////////////////small_mary_game////////////////////////////////// 387 | 388 | /** 389 | * 小玛丽游戏返回格式 390 | */ 391 | export interface Small_Ret { 392 | out_image:Image; 393 | in_images:Image[]; 394 | multiple: number; 395 | is_next: boolean; 396 | total_reward: number; 397 | } 398 | 399 | /** 400 | * 构建一个炸弹奖 401 | */ 402 | function make_null(one_bet:number) { 403 | let out_image:Image = Image.Image_Null; 404 | let small_image:Image[] = [...Small_Image]; 405 | let in_images:Image[] = []; 406 | for (let i = 0; i < 4; i++) { 407 | let rnd:number = Math.floor(Math.random() * small_image.length); 408 | in_images.push(small_image[rnd]); 409 | } 410 | let small_ret:Small_Ret = {out_image,in_images,multiple:0,is_next:true,total_reward:0}; 411 | return small_ret; 412 | } 413 | 414 | /** 415 | * 构建一个0倍奖 416 | */ 417 | function make_0_reward(one_bet:number) { 418 | let out_image:Image; 419 | let small_image:Image[] = [...Small_Image]; 420 | let in_images:Image[] = []; 421 | small_image = random_arr(small_image); 422 | out_image = small_image.pop(); 423 | for (let i = 0; i < 4; i++) { 424 | let rnd:number = Math.floor(Math.random() * small_image.length); 425 | in_images.push(small_image[rnd]); 426 | } 427 | let small_ret:Small_Ret = {out_image,in_images,multiple:0,is_next:false,total_reward:0}; 428 | return small_ret; 429 | } 430 | 431 | /** 432 | * 构建一个5倍奖 433 | */ 434 | function make_5_reward(one_bet:number) { 435 | let out_image:Image = Image.Image_Pineapple; 436 | let small_image:Image[] = [...Small_Image]; 437 | let in_images:Image[] = []; 438 | small_image = del_element_by_arr(small_image,out_image); 439 | for (let i = 0; i < 3; i++) { 440 | let rnd:number = Math.floor(Math.random() * small_image.length); 441 | in_images.push(small_image[rnd]); 442 | } 443 | in_images.push(Image.Image_Pineapple); 444 | in_images = random_arr(in_images); 445 | let small_ret:Small_Ret = {out_image,in_images,multiple:5,is_next:false,total_reward:one_bet*5}; 446 | return small_ret; 447 | } 448 | 449 | /** 450 | * 构建一个10倍奖 451 | */ 452 | function make_10_reward(one_bet:number) { 453 | let out_image:Image = Image.Image_Bonus; 454 | let small_image:Image[] = [...Small_Image]; 455 | let in_images:Image[] = []; 456 | small_image = del_element_by_arr(small_image,out_image); 457 | for (let i = 0; i < 3; i++) { 458 | let rnd:number = Math.floor(Math.random() * small_image.length); 459 | in_images.push(small_image[rnd]); 460 | } 461 | in_images.push(Image.Image_Bonus); 462 | in_images = random_arr(in_images); 463 | let small_ret:Small_Ret = {out_image,in_images,multiple:10,is_next:false,total_reward:one_bet*10}; 464 | return small_ret; 465 | } 466 | 467 | 468 | /** 469 | * 构建一个20倍奖 470 | */ 471 | function make_20_reward(one_bet:number) { 472 | 473 | let out_image:Image = Image.Image_Banana; 474 | let small_image:Image[] = [...Small_Image]; 475 | let in_images:Image[] = []; 476 | small_image = del_element_by_arr(small_image,out_image); 477 | for (let i = 0; i < 3; i++) { 478 | let rnd:number = Math.floor(Math.random() * small_image.length); 479 | in_images.push(small_image[rnd]); 480 | } 481 | in_images.push(Image.Image_Banana); 482 | in_images = random_arr(in_images); 483 | let small_ret:Small_Ret = {out_image,in_images,multiple:20,is_next:false,total_reward:one_bet*20}; 484 | return small_ret; 485 | } 486 | 487 | 488 | /** 489 | * 构建一个25倍奖 490 | */ 491 | function make_25_reward(one_bet:number) { 492 | let out_image:Image = Image.Image_Pineapple; 493 | let small_image:Image[] = [...Small_Image]; 494 | let in_images:Image[] = []; 495 | small_image = del_element_by_arr(small_image,out_image); 496 | for (let i = 0; i < 3; i++) { 497 | in_images.push(Image.Image_Pineapple); 498 | } 499 | let rnd:number = Math.floor(Math.random() * small_image.length); 500 | if (Math.random() < 0.5) in_images.push(small_image[rnd]); 501 | else in_images.unshift(small_image[rnd]); 502 | let small_ret:Small_Ret = {out_image,in_images,multiple:25,is_next:false,total_reward:one_bet*25}; 503 | return small_ret; 504 | } 505 | 506 | 507 | /** 508 | * 构建一个30倍奖 509 | */ 510 | function make_30_reward(one_bet:number) { 511 | let out_image:Image = Image.Image_Bonus; 512 | let small_image:Image[] = [...Small_Image]; 513 | let in_images:Image[] = []; 514 | small_image = del_element_by_arr(small_image,out_image); 515 | for (let i = 0; i < 3; i++) { 516 | in_images.push(Image.Image_Bonus); 517 | } 518 | let rnd:number = Math.floor(Math.random() * small_image.length); 519 | if (Math.random() < 0.5) in_images.push(small_image[rnd]); 520 | else in_images.unshift(small_image[rnd]); 521 | let small_ret:Small_Ret = {out_image,in_images,multiple:30,is_next:false,total_reward:one_bet*30}; 522 | return small_ret; 523 | } 524 | 525 | 526 | /** 527 | * 构建一个40倍奖 528 | */ 529 | function make_40_reward(one_bet:number) { 530 | 531 | let out_image:Image = Image.Image_Banana; 532 | let small_image:Image[] = [...Small_Image]; 533 | let in_images:Image[] = []; 534 | small_image = del_element_by_arr(small_image,out_image); 535 | for (let i = 0; i < 3; i++) { 536 | in_images.push(Image.Image_Banana); 537 | } 538 | let rnd:number = Math.floor(Math.random() * small_image.length); 539 | if (Math.random() < 0.5) in_images.push(small_image[rnd]); 540 | else in_images.unshift(small_image[rnd]); 541 | let small_ret:Small_Ret = {out_image,in_images,multiple:40,is_next:false,total_reward:one_bet*40}; 542 | return small_ret; 543 | } 544 | 545 | 546 | /** 547 | * 构建一个50倍奖 548 | */ 549 | function make_50_reward(one_bet:number) { 550 | 551 | let out_image:Image = Image.Image_Cherry; 552 | let small_image:Image[] = [...Small_Image]; 553 | let in_images:Image[] = []; 554 | small_image = del_element_by_arr(small_image,out_image); 555 | for (let i = 0; i < 3; i++) { 556 | let rnd:number = Math.floor(Math.random() * small_image.length); 557 | in_images.push(small_image[rnd]); 558 | } 559 | in_images.push(Image.Image_Cherry); 560 | in_images = random_arr(in_images); 561 | let small_ret:Small_Ret = {out_image,in_images,multiple:50,is_next:false,total_reward:one_bet*50}; 562 | return small_ret; 563 | } 564 | 565 | 566 | /** 567 | * 构建一个70倍奖 568 | */ 569 | function make_70_reward(one_bet:number) { 570 | 571 | let out_image:Image = Image.Image_Mango; 572 | let small_image:Image[] = [...Small_Image]; 573 | let in_images:Image[] = []; 574 | small_image = del_element_by_arr(small_image,out_image); 575 | for (let i = 0; i < 3; i++) { 576 | let rnd:number = Math.floor(Math.random() * small_image.length); 577 | in_images.push(small_image[rnd]); 578 | } 579 | in_images.push(Image.Image_Mango); 580 | in_images = random_arr(in_images); 581 | let small_ret:Small_Ret = {out_image,in_images,multiple:70,is_next:false,total_reward:one_bet*70}; 582 | return small_ret; 583 | } 584 | 585 | 586 | /** 587 | * 构建一个90倍奖 588 | */ 589 | function make_90_reward(one_bet:number) { 590 | 591 | let out_image:Image = Image.Image_Mango; 592 | let small_image:Image[] = [...Small_Image]; 593 | let in_images:Image[] = []; 594 | small_image = del_element_by_arr(small_image,out_image); 595 | for (let i = 0; i < 3; i++) { 596 | in_images.push(Image.Image_Mango); 597 | } 598 | let rnd:number = Math.floor(Math.random() * small_image.length); 599 | if (Math.random() < 0.5) in_images.push(small_image[rnd]); 600 | else in_images.unshift(small_image[rnd]); 601 | let small_ret:Small_Ret = {out_image,in_images,multiple:90,is_next:false,total_reward:one_bet*90}; 602 | return small_ret; 603 | } 604 | 605 | /** 606 | * 生成小玛丽水果机奖励 607 | */ 608 | export function make_small_slot_reward(room_pool:number,one_bet:number,room_config:MarySlotConfig,small_game_reward_num:number) { 609 | 610 | //// 取出控制等级 611 | let control_level:string = '1'; 612 | let Level_Range:number[][] = room_config.RoomControl.Level_Range; 613 | for (let index = 0; index < Level_Range.length; index++) { 614 | const level:number[] = Level_Range[index]; 615 | if (room_pool >= level[1] && room_pool < level[2]) { 616 | control_level = "" + level[0]; 617 | break; 618 | } 619 | } 620 | 621 | let control = room_config.ControlLevel[control_level]; 622 | let set_id:number = 2; 623 | if (Math.random() * 100 < control[1]) set_id = control[0]; 624 | 625 | let set_info:MarySlotSet = room_config["Set_" + set_id]; 626 | 627 | let probs:number[] = set_info.Game.Probs; 628 | let probability:number = small_game_reward_num >= probs.length ? probs[probs.length-1] : probs[small_game_reward_num]; 629 | if (Math.random() * 100 < probability) { // 给一个炸弹 630 | return make_null(one_bet); 631 | }else{ // 要给一个随机奖 632 | let reward_config:number[][] = set_info.Game.Reward; 633 | let reward_probability:number[] = []; 634 | let reward_exp:number[] = [0,5,10,20,25,30,40,50,70,90]; 635 | 636 | let max_num:number = 0; 637 | for (let i = 0; i < 10; i++) { 638 | const element = reward_config[i]; 639 | max_num += element[0]; 640 | reward_probability.push(max_num); 641 | } 642 | 643 | //// 根据概率 生成 对应倍数奖励 644 | let rnd:number = Math.random() * max_num; 645 | let exp:number = 0; 646 | for (let i = 0; i < reward_probability.length; i++) { 647 | const val = reward_probability[i]; 648 | if (rnd <= val) { 649 | // exp = reward_exp[i]; 650 | exp = i; 651 | break; 652 | } 653 | } 654 | 655 | let make:Function; 656 | let make_list:Function[] = [make_0_reward,make_5_reward,make_10_reward,make_20_reward,make_25_reward,make_30_reward,make_40_reward,make_50_reward,make_70_reward,make_90_reward]; 657 | make = exp >= make_list.length ? make_90_reward : make_list[exp]; 658 | 659 | let ret:Small_Ret = make(one_bet); 660 | if (room_pool < ret.total_reward) { 661 | return make_null(one_bet); 662 | }else{ 663 | return ret; 664 | } 665 | } 666 | } -------------------------------------------------------------------------------- /game-server/dist/config/mary_slot/HappyFruit_4.json: -------------------------------------------------------------------------------- 1 | { 2 | "PlatformRatio": 0, 3 | "HandselRatio": 50, 4 | "RoomRatio": 20, 5 | "Bet": [100000,200000,300000], 6 | "PullInterval": 0, 7 | "IsRecordLog": 1, 8 | "nFreeTime": 0, 9 | "NoticeMulti": 50, 10 | "NoticeWord": "恭喜玩家[%s]在[水果玛丽-土豪场]财运大爆发,赢得%d倍奖励!", 11 | "NoticeHandsel": "恭喜玩家[%s]在[水果玛丽-土豪场]财运大爆发,赢得%I64d奖池奖励!", 12 | "ControlLevel":{ 13 | "1": [1, 100, [0, 0, 0, 0, 0], [100, 50]], 14 | "200": [1, 75, [0, 0, 0, 0, 0], [100, 50]], 15 | "300": [1, 50, [0, 0, 0, 0, 0], [100, 50]], 16 | "400": [1, 25, [0, 0, 0, 0, 0], [100, 50]], 17 | "500": [2, 100, [0, 0, 0, 0, 100], [100, 450]], 18 | "600": [3, 25, [0, 0, 0, 100], [100, 1500]], 19 | "700": [3, 50, [0, 0, 0, 100], [100, 1500]], 20 | "800": [3, 75, [0, 0, 0, 100], [100, 1500]], 21 | "1000": [3, 100, [0, 0, 0, 100], [100, 1500]] 22 | }, 23 | 24 | "RoomControl": { 25 | "Init": 320000000, 26 | "Level_Range": [ 27 | [1, 0, 18000000], 28 | [200, 18000000, 36000000], 29 | [300, 36000000, 72000000], 30 | [500, 72000000, 144000000], 31 | [600, 144000000, 180000000], 32 | [700, 180000000, 216000000], 33 | [800, 216000000, 9999999999] 34 | ] 35 | }, 36 | 37 | "StoreForUserNet": { 38 | "InterveneTime": 0, 39 | "HighStore": [10, 600, 10, 540000000, 540000000], 40 | "LowStore": [90, 400, 10, 50000000, 50000000] 41 | }, 42 | 43 | "Set_1": { 44 | "SetId": 1, 45 | "Normal": [ 46 | [2, 1, 3, 2, 1, 3, 2, 6, 3, 1, 6, 4, 1, 3, 7, 1, 2, 3, 6, 1, 5, 2, 3, 1, 2, 6, 3, 1, 2, 4, 1, 5, 2, 3, 1, 4, 2, 1, 3, 2, 1, 4, 7, 2, 3, 6, 1, 2, 7, 4, 6, 2, 1, 6, 2, 1, 4, 2, 7, 3, 2, 1, 6, 3, 5, 1, 2, 4, 1, 7, 6, 3, 8, 1, 2, 4, 5, 2, 6, 1, 2, 4, 5, 2, 3, 1, 4, 3, 2, 1, 4, 2, 5, 1, 2, 7, 6, 4, 1, 5, 3, 1, 7, 1, 2, 5, 4, 3, 2, 5, 1, 7, 3, 1, 2, 4, 1, 2, 6, 5, 1, 3, 2, 5, 1, 4, 3, 1, 2, 8, 5, 3, 1, 8, 4, 3, 6, 1, 2, 4, 3, 2, 1, 4, 6, 1, 2, 3, 7, 1, 2, 4, 3, 2, 1, 7, 6, 1, 2, 1, 3, 4, 2, 3, 1, 2, 3, 1, 2, 3, 7, 1, 4, 5, 3, 1, 2, 5, 3, 1, 4, 6, 8, 3, 1, 7, 4, 2, 5, 1, 4, 2, 1, 5, 2, 1, 6, 2, 1, 5, 2, 1, 4, 7, 1, 3, 4, 1, 3, 6, 1, 3, 2, 1, 3, 4, 1, 2, 5, 1, 7, 4, 2, 1, 5, 2, 1, 8, 2, 1, 5, 2, 3, 8, 2, 1, 3, 8, 1, 3, 7, 2, 1, 5], 47 | [1, 8, 2, 4, 7, 2, 1, 5, 4, 2, 3, 5, 1, 4, 2, 1, 4, 7, 5, 6, 1, 2, 3, 1, 2, 3, 6, 2, 3, 5, 2, 1, 3, 2, 1, 5, 4, 6, 1, 2, 3, 1, 4, 3, 1, 4, 5, 6, 1, 2, 3, 8, 2, 1, 6, 3, 1, 2, 8, 1, 7, 4, 6, 1, 2, 3, 1, 2, 3, 5, 4, 1, 2, 3, 1, 2, 4, 5, 1, 6, 3, 1, 2, 4, 1, 5, 2, 4, 1, 7, 8, 3, 1, 5, 7, 1, 4, 6, 1, 2, 4, 1, 3, 2, 1, 3, 5, 1, 2, 5, 4, 1, 3, 5, 1, 3, 5, 7, 1, 3, 8, 4, 1, 2, 4, 3, 1, 2, 5, 3, 4, 2, 1, 6, 2, 1, 3, 2, 1, 3, 2, 1, 5, 3, 2, 1, 3, 4, 2, 1, 3, 6, 1, 4, 6, 1, 2, 8, 1, 3, 2, 1, 4, 2, 1, 5, 8, 2, 1, 3, 4, 2, 1, 3, 2, 6, 1, 3, 2, 1, 3, 4, 1, 2, 6, 1, 2, 5, 1, 3, 2, 1, 3, 2, 1, 5, 2, 6, 1, 2, 6, 4, 1, 2, 6, 1, 2, 7, 1, 2, 4, 1, 2, 3, 4, 1, 2, 4, 6, 3, 2, 1, 7, 3, 1, 8, 5, 2, 1, 6, 3, 1, 2, 7, 1, 3, 5, 1, 3, 2, 1, 7, 8, 1, 4, 2], 48 | [2, 1, 4, 2, 3, 1, 2, 7, 3, 2, 6, 4, 3, 1, 8, 3, 2, 1, 3, 6, 1, 3, 7, 2, 3, 4, 2, 1, 4, 3, 1, 2, 4, 6, 2, 8, 3, 4, 5, 1, 2, 3, 1, 7, 6, 3, 1, 5, 3, 2, 1, 3, 4, 5, 3, 1, 7, 4, 3, 1, 4, 2, 6, 1, 4, 5, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 5, 2, 4, 6, 3, 5, 2, 4, 1, 5, 3, 2, 1, 6, 4, 2, 3, 1, 6, 3, 1, 5, 4, 2, 5, 3, 4, 1, 8, 2, 1, 5, 2, 6, 1, 2, 4, 1, 2, 3, 1, 2, 5, 1, 2, 3, 4, 2, 3, 1, 4, 2, 6, 4, 2, 3, 1, 7, 3, 5, 1, 2, 8, 3, 4, 5, 2, 3, 7, 2, 3, 5, 2, 6, 3, 4, 5, 8, 3, 6, 2, 4, 5, 1, 3, 7, 2, 3, 1, 4, 2, 1, 5, 3, 2, 8, 4, 2, 1, 3, 5, 1, 2, 5, 3, 2, 6, 7, 2, 3, 1, 2, 3, 4, 1, 2, 5, 8, 3, 1, 2, 5, 1, 2, 5, 7, 2, 1, 3, 2, 1, 3, 2, 1, 3, 5, 6, 3, 2, 8, 1, 6, 7, 2, 3, 1, 2, 4, 1, 2, 3, 4, 2, 5, 3, 8, 2, 3, 1, 4, 7, 2, 1, 3, 2, 7, 3, 6], 49 | [4, 1, 5, 8, 4, 1, 2, 4, 1, 2, 3, 4, 1, 5, 2, 1, 4, 6, 1, 8, 3, 4, 5, 2, 3, 7, 6, 2, 3, 4, 5, 1, 2, 5, 1, 3, 2, 6, 8, 2, 5, 1, 2, 5, 1, 4, 7, 1, 2, 7, 1, 2, 4, 5, 1, 2, 7, 1, 3, 2, 1, 7, 3, 1, 2, 8, 6, 1, 5, 3, 2, 1, 4, 3, 1, 2, 4, 1, 6, 3, 1, 5, 4, 1, 6, 2, 4, 1, 3, 2, 5, 1, 8, 1, 2, 3, 1, 2, 3, 1, 5, 2, 3, 1, 2, 3, 1, 4, 3, 1, 5, 7, 2, 1, 5, 2, 4, 1, 2, 6, 5, 1, 2, 3, 6, 2, 1, 4, 2, 1, 4, 2, 8, 1, 4, 6, 1, 4, 6, 3, 5, 7, 1, 2, 4, 3, 1, 7, 3, 8, 2, 1, 7, 3, 1, 6, 4, 2, 3, 1, 7, 6, 2, 1, 4, 5, 3, 2, 8, 1, 2, 5, 1, 2, 3, 1, 6, 3, 1, 4, 3, 5, 2, 7, 3, 5, 1, 4, 3, 1, 2, 7, 5, 2, 1, 3, 5, 8, 1, 2, 4, 5, 1, 2, 3, 1, 7, 6, 5, 2, 1, 6, 7, 1, 2, 3, 1, 2, 6, 1, 2, 3, 4, 1, 2, 3, 1, 8, 3, 1, 4, 7, 1, 2, 3, 8, 1, 2, 8, 4, 1, 2], 50 | [6, 8, 1, 4, 2, 1, 7, 2, 3, 1, 7, 5, 2, 1, 5, 3, 2, 1, 4, 5, 3, 2, 7, 3, 5, 6, 1, 2, 3, 1, 8, 2, 1, 3, 5, 1, 4, 2, 1, 8, 2, 4, 7, 3, 1, 2, 6, 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 1, 2, 4, 1, 5, 8, 3, 2, 4, 3, 2, 1, 5, 4, 3, 1, 4, 5, 2, 1, 4, 5, 3, 2, 1, 5, 2, 3, 1, 4, 5, 1, 4, 6, 2, 1, 4, 2, 1, 3, 7, 4, 3, 2, 1, 6, 3, 2, 4, 1, 3, 2, 1, 5, 6, 4, 1, 5, 7, 1, 4, 5, 2, 7, 1, 4, 3, 1, 5, 2, 1, 8, 2, 1, 6, 5, 7, 3, 1, 2, 6, 3, 1, 4, 3, 8, 6, 1, 2, 6, 5, 3, 1, 2, 4, 1, 7, 2, 1, 5, 2, 1, 3, 2, 1, 7, 2, 3, 1, 2, 6, 1, 5, 2, 1, 3, 6, 2, 3, 7, 2, 1, 8, 3, 1, 2, 3, 4, 1, 5, 2, 1, 6, 3, 5, 2, 1, 8, 7, 2, 1, 4, 1, 2, 6, 8, 1, 2, 4, 1, 3, 4, 1, 2, 8, 4, 2, 1, 7, 3, 1, 8, 3, 1, 2, 4, 3, 1, 5, 2, 1, 7, 4, 1, 3, 5, 1, 6, 8, 1, 6, 7, 1, 2] 51 | ], 52 | "Free": [ 53 | [1, 5, 6, 3, 1, 7, 8, 2, 1, 3, 2, 1, 6, 3, 2, 4, 1, 2, 7, 6, 4, 5, 2, 3, 1, 5, 2, 3, 1, 2, 3, 1, 2, 3, 1, 6, 3, 2, 1, 6, 4, 2, 3, 6, 1, 5, 2, 3, 1, 2, 6, 1, 3, 2, 1, 5, 2, 1, 4, 7, 1, 5, 2, 7, 1, 2, 3, 6, 4, 1, 2, 4, 1, 5, 3, 1, 5, 2, 7, 5, 2, 6, 3, 2, 4, 5, 1, 3, 2, 4, 3, 2, 1, 3, 2, 8, 1, 2, 6, 1, 4, 3, 1, 5, 7, 2, 1, 3, 6, 4, 1, 2, 3, 1, 2, 5, 7, 1, 3, 4, 7, 1, 3, 4, 1, 2, 6, 1, 2, 3, 1, 5, 2, 4, 1, 3, 2, 1, 3, 2, 1, 4, 3, 7, 1, 2, 3, 6, 7, 2, 1, 4, 2, 1, 4, 2, 1, 3, 5, 1, 4, 3, 1, 2, 7, 4, 2, 5, 1, 2, 4, 1, 2, 4, 1, 3, 6, 2, 1, 8, 2, 1, 3, 2, 1, 5, 2, 8, 1, 3, 4, 2, 5, 1, 4, 2, 1, 4, 8, 1, 3, 7, 1, 5, 3, 6, 1, 3, 2, 1, 7, 2, 5, 8, 4, 2, 1, 4, 3, 1, 7, 8, 3, 6, 4, 2, 1, 4, 6, 1, 3, 2, 1, 5, 3, 1, 6, 4, 1, 2, 7, 1, 5, 2], 54 | [1, 4, 5, 1, 7, 2, 1, 3, 4, 5, 6, 2, 1, 3, 2, 1, 3, 2, 1, 4, 3, 1, 4, 3, 1, 8, 2, 1, 4, 6, 2, 1, 6, 2, 1, 4, 6, 2, 3, 6, 2, 1, 4, 2, 1, 4, 2, 1, 8, 2, 6, 3, 4, 2, 1, 5, 2, 1, 3, 2, 1, 3, 2, 4, 1, 6, 3, 1, 8, 4, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 6, 5, 4, 1, 3, 2, 1, 3, 4, 1, 6, 2, 4, 1, 7, 2, 4, 6, 2, 1, 3, 5, 1, 3, 2, 1, 3, 4, 1, 2, 3, 1, 5, 2, 1, 3, 5, 2, 1, 7, 3, 6, 1, 4, 1, 2, 1, 5, 4, 1, 8, 4, 1, 3, 2, 1, 3, 6, 1, 5, 6, 2, 5, 8, 1, 7, 4, 2, 1, 5, 2, 6, 1, 5, 2, 3, 1, 7, 5, 1, 3, 5, 1, 2, 8, 3, 1, 2, 5, 1, 2, 1, 4, 1, 3, 2, 1, 7, 2, 1, 3, 6, 2, 1, 6, 2, 5, 8, 1, 7, 3, 2, 1, 3, 2, 7, 4, 8, 1, 3, 2, 1, 7, 2, 5, 1, 3, 4, 2, 8, 1, 2, 4, 3, 6, 5, 2, 1, 3, 5, 2, 3, 4, 2, 1, 6, 3, 1, 2, 4, 1, 7, 2, 1, 5, 4, 3, 1, 2, 4, 1, 3, 5, 1, 2, 3], 55 | [2, 3, 1, 7, 2, 5, 3, 1, 4, 3, 2, 1, 3, 5, 4, 2, 3, 1, 4, 6, 3, 2, 4, 1, 5, 3, 6, 1, 3, 8, 4, 1, 3, 2, 4, 3, 6, 1, 8, 4, 1, 2, 3, 4, 1, 2, 3, 1, 2, 3, 5, 6, 2, 1, 4, 6, 1, 2, 3, 1, 4, 3, 1, 7, 3, 5, 2, 1, 5, 8, 2, 4, 6, 1, 2, 3, 5, 7, 2, 3, 1, 2, 3, 5, 2, 4, 1, 3, 4, 6, 2, 4, 1, 2, 3, 1, 2, 4, 3, 1, 4, 5, 1, 3, 2, 4, 1, 2, 3, 4, 2, 3, 1, 5, 2, 1, 3, 2, 1, 5, 8, 2, 3, 1, 2, 5, 1, 3, 2, 4, 1, 5, 2, 3, 5, 6, 2, 1, 4, 6, 7, 3, 5, 4, 1, 5, 7, 2, 3, 1, 2, 7, 1, 2, 5, 7, 3, 4, 2, 3, 8, 5, 2, 1, 3, 4, 2, 6, 3, 4, 2, 7, 5, 6, 1, 2, 5, 1, 7, 3, 2, 5, 3, 2, 1, 4, 2, 3, 1, 2, 3, 6, 2, 7, 3, 2, 1, 3, 8, 2, 5, 4, 1, 2, 8, 3, 2, 4, 8, 2, 6, 3, 1, 7, 2, 1, 3, 7, 2, 3, 6, 2, 3, 1, 2, 6, 1, 8, 3, 1, 2, 3, 5, 6, 2, 3, 4, 2, 5, 3, 1, 2, 3, 1], 56 | [5, 1, 2, 7, 5, 2, 1, 3, 2, 1, 4, 8, 3, 1, 2, 6, 8, 4, 1, 2, 3, 1, 8, 4, 2, 1, 3, 2, 1, 3, 4, 1, 5, 2, 1, 4, 2, 1, 7, 1, 3, 6, 2, 1, 4, 5, 1, 2, 5, 1, 4, 3, 2, 6, 4, 2, 1, 3, 4, 2, 1, 3, 5, 4, 1, 2, 8, 1, 2, 4, 5, 2, 4, 3, 1, 2, 8, 1, 2, 7, 1, 4, 6, 1, 3, 5, 2, 7, 4, 1, 7, 2, 1, 3, 4, 1, 6, 2, 1, 3, 5, 2, 7, 5, 1, 2, 4, 1, 3, 5, 1, 6, 4, 2, 3, 4, 5, 1, 3, 2, 6, 1, 2, 7, 1, 2, 3, 1, 5, 3, 1, 5, 8, 4, 1, 7, 2, 3, 1, 4, 2, 6, 1, 2, 3, 5, 1, 2, 3, 4, 5, 8, 1, 3, 8, 1, 2, 5, 4, 1, 2, 8, 1, 3, 4, 1, 5, 6, 1, 3, 7, 1, 2, 5, 6, 2, 7, 1, 8, 5, 2, 4, 7, 2, 4, 3, 6, 7, 5, 2, 3, 1, 2, 3, 4, 1, 5, 1, 3, 1, 2, 7, 1, 3, 7, 1, 6, 2, 1, 6, 3, 1, 6, 3, 1, 5, 2, 1, 3, 2, 5, 1, 8, 2, 3, 1, 8, 2, 1, 7, 2, 1, 4, 6, 1, 3, 2, 1, 6, 2, 4, 3], 57 | [1, 2, 5, 1, 4, 2, 3, 4, 1, 5, 7, 1, 2, 8, 4, 2, 6, 1, 2, 3, 1, 5, 2, 3, 6, 4, 3, 8, 1, 5, 2, 4, 3, 1, 7, 6, 1, 2, 4, 1, 8, 2, 1, 4, 6, 3, 5, 4, 1, 2, 7, 6, 2, 7, 1, 4, 5, 3, 2, 1, 3, 1, 4, 5, 2, 1, 3, 2, 5, 3, 1, 5, 3, 6, 1, 2, 4, 1, 7, 4, 6, 1, 5, 2, 1, 7, 2, 4, 1, 5, 2, 3, 6, 2, 1, 4, 2, 3, 6, 2, 4, 1, 7, 5, 2, 6, 1, 5, 8, 2, 1, 3, 4, 1, 3, 1, 2, 4, 1, 7, 2, 1, 3, 8, 1, 5, 2, 3, 5, 1, 4, 6, 2, 3, 1, 2, 7, 1, 5, 2, 4, 3, 2, 4, 7, 1, 2, 3, 1, 2, 3, 8, 1, 3, 2, 1, 7, 2, 1, 6, 3, 2, 8, 3, 5, 2, 1, 5, 3, 1, 2, 7, 1, 5, 3, 1, 2, 4, 1, 2, 7, 1, 2, 4, 1, 2, 6, 1, 2, 4, 1, 8, 4, 1, 2, 3, 6, 1, 8, 3, 1, 8, 2, 1, 4, 2, 3, 1, 4, 3, 1, 2, 5, 1, 3, 6, 1, 3, 5, 1, 2, 3, 1, 7, 5, 1, 3, 2, 1, 7, 3, 1, 2, 8, 1, 5, 4, 6, 1, 4, 8, 5] 58 | ], 59 | "Game": { 60 | "Probs": [100, 100, 100], 61 | "Reward": [[301960, 0, 0], [409950, 5, 5], [94963, 10, 10], [21998, 20, 20], [13737, 25, 25], [9350, 30, 30], [5095, 40, 40], [3182, 50, 50], [1564, 70, 70], [920, 90, 90], [0, 100, 100], [0, 120, 120], [0, 200, 200], [0, 220, 220], [0, 500, 500], [0, 505, 505], [0, 510, 510], [0, 520, 520], [0, 550, 550], [0, 570, 570], [0, 600, 600], [0, 700, 700]] 62 | }, 63 | "JackPot": { 64 | "Reward": [10, 20, 40] 65 | } 66 | }, 67 | 68 | "Set_2": { 69 | "SetId": 2, 70 | "Normal": [ 71 | [8, 3, 2, 4, 1, 2, 9, 7, 3, 1, 7, 3, 1, 2, 10, 6, 1, 2, 3, 5, 2, 1, 3, 7, 5, 11, 2, 6, 3, 2, 1, 3, 9, 1, 2, 4, 1, 3, 2, 1, 4, 6, 11, 1, 4, 2, 1, 5, 3, 2, 4, 11, 1, 6, 5, 4, 1, 2, 10, 3, 6, 5, 2, 1, 3, 2, 4, 8, 9, 1, 7, 5, 2, 7, 9, 1, 3, 2, 8, 1, 3, 2, 6, 3, 2, 9, 5, 3, 7, 2, 4, 11, 3, 1, 5, 2, 1, 6, 11, 2, 4, 1, 5, 2, 6, 1, 2, 4, 10, 3, 2, 5, 1, 2, 4, 1, 9, 2, 6, 3, 2, 1, 5, 6, 1, 4, 9, 2, 1, 5, 3, 4, 11, 2, 1, 3, 1, 2, 3, 1, 11, 4, 1, 5, 3, 1, 2, 5, 1, 2, 9, 7, 1, 3, 2, 5, 9, 4, 2, 1, 3, 5, 8, 1, 11, 2, 4, 1, 7, 3, 1, 2, 6, 11, 4, 5, 2, 1, 7, 6, 1, 11, 3, 4, 1, 2, 3, 1, 9, 8, 4, 1, 2, 3, 1, 9, 2, 4, 3, 6, 1, 11, 4, 5, 2, 6, 7, 3, 9, 1, 2, 8, 3, 1, 4, 5, 1, 6, 4, 3, 1, 2, 3, 1, 7, 8, 1, 7, 2, 5, 1, 6, 4, 1, 3, 2, 1, 7, 4, 1, 2, 4, 1, 3, 6, 1, 2, 7, 1, 2, 6, 1, 2, 5, 7, 2, 1, 3, 2, 1, 4, 3, 1, 4, 3, 1, 2, 3, 1, 2], 72 | [8, 2, 1, 3, 8, 1, 11, 6, 5, 1, 6, 3, 1, 10, 4, 3, 1, 2, 4, 11, 8, 1, 3, 6, 5, 1, 11, 4, 5, 2, 1, 3, 2, 1, 3, 2, 1, 9, 6, 1, 2, 3, 7, 2, 1, 4, 9, 8, 3, 1, 2, 1, 5, 11, 1, 2, 5, 3, 2, 9, 1, 3, 6, 2, 1, 5, 2, 4, 1, 3, 9, 1, 5, 3, 1, 2, 4, 6, 10, 1, 2, 4, 1, 6, 11, 7, 1, 3, 2, 4, 1, 2, 3, 9, 1, 6, 5, 2, 3, 1, 10, 2, 5, 3, 1, 2, 9, 5, 8, 2, 6, 8, 1, 4, 2, 3, 9, 6, 2, 4, 5, 3, 2, 9, 1, 5, 2, 1, 8, 4, 1, 11, 3, 2, 1, 3, 5, 11, 4, 1, 2, 3, 5, 2, 1, 3, 11, 1, 2, 6, 1, 3, 11, 4, 1, 2, 1, 3, 4, 1, 8, 9, 2, 3, 7, 1, 2, 3, 4, 1, 3, 9, 2, 1, 4, 3, 2, 9, 4, 1, 3, 1, 6, 9, 2, 4, 1, 3, 2, 4, 1, 3, 11, 7, 2, 1, 4, 2, 1, 11, 4, 7, 1, 4, 5, 1, 4, 6, 7, 3, 1, 2, 3, 4, 1, 7, 6, 2, 5, 1, 7, 2, 1, 6, 4, 1, 2, 4, 1, 5, 3, 2, 1, 5, 2, 7, 6, 1, 4, 2, 3, 1, 6, 2, 4, 1, 2, 5, 1, 2, 8, 3, 1, 2, 6, 1, 2, 7, 1, 2, 3, 1, 5, 2, 1, 3, 2, 1, 3, 2, 1, 5], 73 | [7, 6, 3, 4, 7, 1, 9, 3, 2, 4, 1, 5, 6, 3, 9, 8, 4, 3, 2, 8, 1, 4, 2, 10, 7, 3, 1, 4, 2, 3, 9, 7, 2, 1, 3, 2, 5, 11, 3, 2, 1, 5, 2, 1, 4, 9, 8, 3, 1, 2, 7, 10, 4, 1, 5, 2, 6, 7, 11, 1, 2, 5, 3, 1, 11, 2, 3, 1, 2, 8, 6, 11, 1, 3, 4, 5, 2, 3, 1, 5, 9, 2, 1, 6, 4, 2, 3, 10, 1, 5, 7, 4, 6, 3, 5, 2, 9, 4, 2, 3, 2, 1, 4, 9, 2, 1, 3, 2, 7, 1, 2, 3, 9, 8, 1, 4, 5, 3, 9, 1, 6, 2, 4, 3, 2, 1, 11, 4, 3, 2, 1, 5, 6, 1, 2, 11, 3, 8, 5, 3, 2, 1, 4, 9, 3, 5, 1, 3, 6, 7, 3, 9, 2, 7, 4, 2, 3, 9, 4, 2, 1, 3, 2, 1, 2, 9, 5, 2, 3, 4, 2, 3, 5, 9, 1, 2, 4, 3, 8, 6, 11, 1, 8, 7, 2, 1, 11, 5, 3, 2, 1, 5, 2, 3, 1, 11, 2, 5, 3, 1, 2, 3, 1, 4, 11, 3, 1, 8, 5, 2, 3, 1, 11, 6, 3, 5, 7, 6, 4, 2, 5, 9, 4, 2, 1, 3, 4, 1, 3, 9, 2, 1, 3, 2, 4, 3, 1, 6, 3, 2, 1, 3, 2, 6, 3, 2, 1, 4, 2, 3, 6, 2, 1, 3, 5, 2, 1, 3, 2, 1, 5, 3, 2, 1, 4, 2, 3, 4, 2, 5, 3, 6, 2, 1], 74 | [2, 1, 5, 11, 1, 2, 6, 4, 1, 6, 9, 5, 3, 1, 5, 2, 11, 6, 1, 2, 4, 5, 9, 3, 4, 1, 2, 7, 4, 9, 3, 1, 4, 11, 8, 3, 1, 4, 2, 1, 11, 5, 7, 3, 6, 2, 11, 5, 1, 2, 5, 1, 9, 4, 8, 3, 1, 10, 4, 3, 1, 5, 2, 11, 3, 4, 1, 6, 2, 5, 9, 3, 1, 2, 8, 9, 1, 2, 3, 1, 6, 9, 4, 3, 7, 5, 2, 1, 7, 11, 6, 2, 1, 3, 2, 1, 10, 4, 6, 1, 2, 5, 9, 7, 2, 1, 5, 9, 3, 2, 1, 3, 2, 1, 4, 9, 3, 1, 4, 6, 1, 9, 7, 2, 1, 7, 3, 1, 2, 11, 1, 3, 4, 8, 9, 2, 1, 6, 3, 2, 5, 7, 11, 1, 3, 2, 1, 4, 3, 2, 10, 1, 3, 5, 2, 1, 9, 4, 8, 1, 2, 11, 4, 6, 2, 3, 11, 1, 5, 8, 1, 11, 6, 7, 2, 1, 9, 5, 8, 3, 2, 11, 4, 1, 7, 4, 1, 3, 9, 2, 1, 6, 4, 1, 3, 9, 2, 1, 3, 5, 1, 2, 3, 4, 1, 2, 3, 1, 7, 2, 4, 7, 2, 1, 3, 2, 1, 5, 4, 1, 2, 3, 4, 2, 1, 4, 7, 1, 6, 3, 1, 4, 3, 2, 5, 7, 1, 3, 4, 5, 1, 2, 6, 1, 2, 7, 1, 2, 5, 1, 8, 2, 1, 8, 2, 1, 8, 5, 2, 3, 1, 2, 5, 1, 2, 4, 1, 3, 8, 1, 2, 8, 6, 5], 75 | [2, 4, 1, 5, 2, 1, 6, 2, 9, 3, 5, 1, 2, 5, 4, 1, 2, 9, 5, 1, 3, 1, 2, 11, 7, 1, 3, 7, 1, 11, 6, 7, 1, 4, 3, 9, 2, 6, 1, 3, 6, 1, 2, 9, 7, 1, 2, 3, 7, 9, 4, 3, 1, 2, 11, 5, 1, 6, 8, 1, 2, 11, 4, 1, 8, 1, 2, 9, 5, 1, 2, 4, 3, 9, 7, 6, 1, 2, 5, 1, 3, 11, 2, 1, 3, 2, 5, 4, 11, 2, 5, 1, 7, 11, 3, 1, 4, 3, 5, 6, 1, 9, 5, 4, 2, 1, 5, 8, 4, 9, 1, 2, 3, 5, 11, 2, 1, 3, 2, 6, 3, 4, 11, 1, 2, 7, 4, 9, 3, 5, 8, 3, 5, 2, 9, 1, 6, 2, 7, 5, 1, 9, 3, 8, 2, 1, 4, 11, 3, 1, 2, 6, 1, 8, 2, 9, 4, 1, 2, 3, 1, 2, 4, 10, 1, 2, 7, 3, 2, 11, 1, 3, 2, 1, 9, 7, 4, 1, 6, 10, 3, 2, 1, 3, 4, 1, 2, 11, 7, 1, 2, 6, 4, 11, 3, 1, 2, 4, 3, 1, 10, 2, 4, 1, 5, 8, 2, 5, 9, 1, 2, 5, 8, 3, 4, 1, 9, 7, 6, 4, 1, 3, 5, 1, 9, 4, 5, 1, 6, 3, 4, 11, 1, 2, 8, 3, 4, 1, 5, 6, 4, 2, 1, 3, 8, 2, 1, 3, 2, 1, 8, 3, 2, 1, 3, 6, 1, 4, 2, 1, 4, 2, 1, 8, 2, 1, 5, 7, 1, 5, 2, 1, 7, 2, 1, 3] 76 | ], 77 | "Free": [ 78 | [4, 5, 3, 1, 2, 5, 1, 2, 7, 5, 6, 1, 3, 4, 8, 1, 2, 4, 11, 3, 1, 2, 7, 4, 2, 3, 1, 2, 6, 8, 7, 2, 6, 1, 3, 2, 7, 11, 3, 2, 1, 5, 3, 1, 4, 3, 2, 1, 2, 4, 5, 1, 2, 4, 3, 2, 1, 11, 6, 5, 3, 1, 2, 4, 3, 1, 5, 6, 8, 3, 7, 1, 8, 3, 1, 4, 5, 1, 3, 11, 2, 5, 1, 4, 7, 1, 5, 6, 1, 2, 3, 5, 4, 3, 1, 5, 2, 1, 11, 3, 2, 1, 3, 2, 1, 5, 3, 1, 2, 7, 1, 6, 3, 4, 11, 2, 3, 1, 4, 2, 3, 5, 1, 6, 2, 1, 5, 2, 4, 1, 6, 2, 1, 6, 4, 11, 3, 1, 2, 5, 4, 2, 1, 4, 2, 5, 1, 2, 5, 3, 1, 4, 3, 1, 2, 11, 1, 3, 4, 1, 2, 6, 7, 2, 1, 6, 4, 2, 1, 7, 2, 3, 4, 2, 11, 1, 3, 2, 1, 3, 2, 4, 3, 1, 4, 6, 1, 2, 7, 1, 3, 2, 11, 7, 1, 5, 6, 4, 1, 2, 3, 1, 4, 2, 1, 7, 4, 1, 2, 11, 7, 1, 2, 4, 3, 1, 6, 8, 3, 2, 1, 6, 2, 7, 1, 6, 3, 1, 2, 5, 1, 2, 4, 7, 1, 2, 3, 5, 1, 8, 3, 1, 2, 3, 1, 2, 8, 1, 2, 6, 1, 2, 3, 1, 2], 79 | [5, 1, 6, 2, 3, 1, 2, 6, 5, 1, 2, 6, 1, 2, 3, 1, 2, 3, 6, 2, 3, 11, 1, 2, 3, 1, 7, 4, 2, 1, 7, 4, 1, 2, 7, 3, 1, 4, 6, 5, 8, 2, 4, 1, 2, 11, 4, 5, 1, 2, 3, 1, 6, 8, 1, 4, 2, 5, 6, 4, 3, 1, 11, 2, 6, 1, 4, 3, 1, 2, 4, 1, 3, 2, 1, 4, 7, 2, 3, 1, 5, 4, 1, 2, 8, 1, 11, 3, 1, 2, 1, 3, 5, 6, 1, 8, 5, 3, 1, 4, 2, 1, 3, 1, 11, 2, 4, 1, 2, 3, 8, 1, 3, 2, 4, 6, 2, 4, 1, 2, 3, 7, 1, 4, 11, 2, 3, 1, 2, 6, 3, 5, 1, 2, 6, 1, 3, 2, 1, 4, 7, 2, 1, 5, 11, 2, 6, 3, 2, 1, 3, 4, 5, 1, 2, 4, 1, 3, 1, 4, 1, 7, 4, 2, 6, 11, 1, 2, 3, 8, 1, 4, 2, 1, 7, 1, 2, 8, 3, 11, 6, 1, 2, 6, 4, 1, 7, 3, 1, 6, 2, 1, 7, 3, 1, 8, 4, 1, 11, 3, 4, 1, 2, 5, 3, 1, 2, 5, 1, 2, 3, 1, 5, 4, 3, 2, 6, 11, 1, 8, 2, 3, 1, 2, 5, 3, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 1, 5, 2, 1, 5, 3, 1, 5, 3, 1, 2, 5, 1, 2, 5, 1, 2], 80 | [4, 2, 3, 6, 1, 3, 4, 1, 3, 4, 5, 8, 2, 4, 7, 2, 3, 5, 1, 4, 5, 11, 3, 6, 2, 7, 6, 3, 4, 5, 2, 3, 6, 2, 1, 3, 4, 5, 11, 3, 4, 8, 2, 1, 3, 2, 4, 1, 2, 3, 6, 1, 4, 6, 5, 1, 2, 4, 7, 11, 2, 3, 4, 5, 3, 6, 2, 1, 7, 4, 3, 2, 1, 3, 2, 7, 3, 2, 11, 4, 1, 2, 5, 1, 2, 3, 1, 2, 4, 3, 2, 5, 3, 2, 5, 1, 3, 2, 11, 4, 6, 5, 3, 1, 4, 5, 2, 1, 3, 4, 2, 1, 3, 5, 1, 3, 6, 2, 11, 7, 3, 2, 1, 3, 4, 2, 3, 8, 1, 6, 3, 5, 1, 2, 8, 11, 3, 2, 1, 5, 2, 3, 8, 2, 1, 3, 5, 2, 1, 7, 8, 6, 1, 2, 4, 1, 2, 11, 3, 1, 2, 6, 3, 2, 5, 3, 2, 1, 7, 3, 5, 2, 4, 11, 3, 2, 8, 5, 2, 4, 5, 3, 1, 4, 2, 3, 1, 6, 3, 1, 2, 11, 3, 1, 6, 2, 7, 1, 2, 5, 1, 7, 2, 1, 4, 2, 3, 11, 1, 2, 3, 1, 2, 7, 1, 3, 6, 1, 5, 3, 1, 2, 4, 3, 1, 6, 2, 3, 4, 7, 3, 2, 1, 4, 5, 2, 1, 4, 2, 1, 3, 2, 1, 3, 2, 1, 3, 2, 8, 1, 5, 8, 1, 2, 3], 81 | [1, 3, 5, 1, 4, 7, 2, 8, 1, 5, 2, 3, 1, 2, 7, 6, 4, 1, 11, 2, 3, 1, 4, 2, 1, 3, 4, 1, 6, 2, 11, 1, 5, 6, 2, 1, 6, 2, 3, 4, 2, 3, 1, 11, 4, 6, 7, 4, 3, 1, 6, 2, 5, 8, 7, 2, 3, 11, 1, 2, 3, 1, 2, 4, 1, 3, 2, 5, 4, 1, 3, 5, 11, 7, 3, 5, 2, 1, 8, 2, 1, 3, 4, 1, 11, 2, 3, 1, 4, 2, 1, 7, 3, 2, 5, 7, 1, 8, 11, 5, 2, 1, 3, 4, 2, 1, 5, 8, 1, 4, 5, 2, 4, 1, 11, 2, 8, 1, 3, 2, 1, 4, 2, 1, 3, 5, 1, 4, 3, 1, 2, 3, 11, 6, 2, 3, 1, 2, 5, 1, 3, 2, 1, 7, 4, 3, 1, 11, 2, 4, 1, 5, 2, 1, 6, 3, 2, 4, 5, 1, 8, 5, 3, 11, 4, 6, 3, 1, 2, 5, 3, 6, 1, 3, 5, 2, 1, 8, 11, 2, 7, 1, 6, 4, 1, 3, 2, 4, 1, 7, 4, 1, 2, 7, 11, 1, 2, 3, 1, 4, 2, 5, 1, 2, 3, 1, 2, 6, 7, 1, 3, 8, 1, 2, 8, 1, 6, 4, 2, 1, 7, 2, 1, 3, 8, 2, 1, 5, 3, 1, 6, 5, 4, 6, 1, 2, 4, 1, 5, 6, 1, 8, 4, 1, 2, 7, 1, 5, 3, 1, 2, 7, 1, 5, 2], 82 | [5, 1, 2, 6, 5, 2, 1, 7, 2, 1, 4, 3, 2, 11, 7, 1, 4, 7, 6, 1, 5, 4, 2, 7, 3, 1, 5, 11, 2, 1, 3, 2, 1, 4, 8, 6, 1, 5, 4, 1, 11, 2, 4, 5, 2, 1, 6, 3, 1, 8, 2, 3, 1, 8, 6, 5, 1, 4, 11, 3, 5, 2, 1, 3, 4, 2, 1, 3, 5, 1, 11, 1, 2, 4, 3, 2, 1, 5, 7, 2, 3, 1, 4, 2, 1, 11, 3, 5, 1, 2, 4, 3, 1, 5, 8, 1, 5, 6, 7, 1, 3, 2, 11, 1, 7, 3, 5, 2, 1, 5, 2, 1, 6, 5, 2, 11, 7, 1, 4, 3, 2, 1, 4, 7, 2, 6, 1, 3, 11, 4, 5, 2, 1, 4, 2, 1, 5, 8, 3, 2, 1, 4, 3, 8, 1, 11, 2, 3, 8, 5, 3, 4, 1, 2, 8, 4, 2, 1, 11, 5, 3, 6, 4, 1, 2, 3, 1, 4, 2, 1, 11, 6, 2, 4, 8, 1, 3, 4, 1, 2, 6, 4, 2, 1, 3, 5, 2, 4, 11, 7, 1, 2, 3, 7, 6, 1, 2, 3, 6, 1, 4, 7, 1, 2, 6, 11, 5, 1, 7, 2, 1, 5, 8, 1, 2, 3, 7, 1, 3, 2, 1, 8, 2, 1, 6, 2, 1, 3, 4, 1, 2, 3, 1, 4, 3, 1, 2, 5, 7, 1, 3, 2, 1, 8, 2, 1, 4, 3, 1, 2, 3, 1, 2, 6, 1, 3] 83 | ], 84 | "Game": { 85 | "Probs": [0, 60, 80, 100], 86 | "Reward": [[301960, 0, 0], [409950, 5, 5], [94963, 10, 10], [21998, 20, 20], [13737, 25, 25], [9350, 30, 30], [5095, 40, 40], [3182, 50, 50], [1564, 70, 70], [920, 90, 90], [0, 100, 100], [0, 120, 120], [0, 200, 200], [0, 220, 220], [0, 500, 500], [0, 505, 505], [0, 510, 510], [0, 520, 520], [0, 550, 550], [0, 570, 570], [0, 600, 600], [0, 700, 700]] 87 | }, 88 | "JackPot": { 89 | "Reward": [10, 20, 40] 90 | } 91 | }, 92 | 93 | "Set_3": { 94 | "SetId": 3, 95 | "Normal": [ 96 | [5, 1, 2, 4, 1, 10, 2, 3, 1, 2, 3, 1, 11, 6, 2, 1, 4, 3, 9, 1, 2, 5, 6, 1, 11, 4, 2, 3, 6, 9, 1, 2, 5, 3, 2, 9, 1, 8, 5, 1, 10, 2, 4, 3, 1, 2, 3, 10, 1, 2, 5, 3, 11, 4, 2, 1, 7, 2, 6, 1, 11, 3, 4, 2, 1, 9, 4, 8, 2, 1, 3, 11, 4, 1, 2, 7, 11, 1, 6, 2, 1, 3, 9, 5, 2, 3, 4, 1, 5, 9, 3, 6, 1, 5, 2, 11, 7, 1, 2, 3, 1, 11, 2, 3, 6, 1, 2, 3, 11, 1, 4, 8, 1, 3, 2, 1, 9, 5, 7, 2, 4, 5, 2, 1, 9, 4, 6, 1, 7, 9, 3, 4, 1, 3, 2, 1, 11, 7, 2, 3, 1, 6, 4, 1, 11, 3, 2, 1, 3, 9, 2, 1, 3, 5, 1, 2, 9, 3, 7, 1, 3, 2, 9, 1, 4, 2, 1, 8, 9, 5, 2, 6, 1, 11, 4, 2, 5, 1, 4, 11, 2, 5, 6, 1, 3, 6, 11, 1, 3, 6, 2, 1, 11, 8, 3, 4, 7, 11, 1, 3, 7, 1, 5, 3, 2, 11, 1, 6, 3, 2, 7, 9, 1, 2, 4, 1, 2, 4, 3, 7, 4, 2, 7, 8, 2, 1, 5, 3, 2, 4, 1, 6, 4, 1, 3, 2, 4, 5, 8, 1, 5, 2, 7, 1, 3, 4, 2, 1, 4, 2, 6, 1, 7, 2, 1, 5, 3, 1, 11, 7, 2, 3, 1, 11, 2, 3, 1, 6, 2, 1, 3, 5, 4, 2, 6, 1, 11, 5, 2, 1, 4], 97 | [3, 1, 2, 6, 3, 11, 2, 4, 1, 3, 9, 5, 1, 3, 4, 11, 1, 3, 2, 1, 10, 8, 3, 7, 4, 1, 2, 3, 9, 1, 4, 2, 6, 1, 10, 2, 3, 1, 8, 2, 5, 1, 11, 4, 2, 1, 6, 9, 3, 1, 6, 1, 11, 2, 1, 3, 2, 1, 9, 5, 2, 6, 3, 1, 2, 11, 7, 1, 3, 4, 1, 2, 4, 11, 6, 2, 1, 5, 2, 9, 1, 3, 2, 5, 3, 11, 1, 2, 4, 1, 11, 3, 7, 1, 2, 9, 3, 1, 2, 7, 3, 1, 9, 2, 3, 1, 2, 4, 1, 9, 8, 6, 1, 3, 9, 2, 4, 1, 2, 7, 6, 11, 2, 1, 3, 6, 2, 1, 3, 11, 4, 6, 1, 2, 5, 3, 2, 9, 1, 5, 4, 6, 2, 1, 4, 11, 5, 2, 1, 4, 5, 7, 1, 11, 2, 4, 1, 2, 8, 3, 1, 10, 5, 4, 1, 3, 8, 2, 1, 11, 3, 7, 2, 1, 4, 11, 8, 3, 4, 2, 9, 1, 5, 3, 2, 1, 9, 5, 2, 1, 5, 3, 1, 4, 9, 2, 3, 4, 1, 2, 11, 6, 1, 3, 2, 5, 1, 11, 3, 2, 1, 5, 8, 2, 11, 1, 4, 2, 5, 6, 9, 1, 4, 2, 6, 3, 2, 1, 4, 11, 7, 2, 1, 6, 11, 1, 2, 1, 3, 6, 2, 1, 5, 4, 7, 1, 5, 2, 4, 1, 2, 3, 1, 4, 2, 1, 5, 3, 11, 1, 5, 6, 1, 3, 2, 1, 5, 4, 1, 3, 8, 1, 3, 6, 1, 3, 7, 1, 4, 2, 1, 8, 2], 98 | [3, 2, 4, 3, 2, 1, 4, 9, 2, 3, 4, 9, 5, 3, 2, 9, 1, 4, 2, 1, 3, 9, 2, 1, 5, 2, 6, 11, 3, 8, 4, 1, 9, 2, 4, 7, 11, 3, 1, 5, 2, 3, 9, 1, 5, 7, 3, 9, 6, 1, 2, 4, 1, 3, 9, 2, 6, 5, 9, 2, 1, 3, 11, 2, 1, 3, 2, 8, 9, 3, 5, 2, 4, 10, 5, 2, 1, 9, 4, 2, 1, 4, 11, 7, 3, 2, 4, 3, 11, 2, 7, 1, 2, 3, 5, 11, 2, 1, 4, 3, 9, 1, 2, 3, 6, 11, 2, 1, 8, 2, 1, 8, 11, 3, 2, 1, 4, 3, 11, 1, 2, 7, 11, 6, 2, 5, 1, 3, 5, 10, 1, 3, 2, 9, 7, 6, 2, 4, 1, 11, 2, 5, 1, 2, 9, 3, 5, 2, 1, 3, 5, 11, 2, 3, 1, 2, 10, 4, 1, 2, 3, 9, 6, 7, 3, 6, 1, 3, 9, 4, 2, 3, 9, 5, 2, 1, 3, 7, 6, 9, 1, 2, 4, 11, 5, 1, 3, 2, 7, 11, 4, 3, 5, 11, 7, 1, 2, 4, 11, 3, 1, 4, 5, 8, 11, 2, 1, 3, 2, 11, 6, 4, 5, 2, 3, 6, 1, 3, 6, 11, 1, 3, 5, 2, 3, 4, 2, 3, 4, 8, 3, 1, 5, 2, 3, 11, 8, 2, 1, 3, 2, 1, 3, 8, 1, 3, 4, 2, 1, 3, 2, 1, 6, 7, 1, 2, 4, 1, 3, 6, 11, 1, 3, 8, 2, 4, 6, 2, 5, 1, 3, 2, 5, 4, 1, 7, 5, 3, 2, 4, 3, 6, 1, 2, 3, 5], 99 | [3, 7, 4, 1, 5, 11, 2, 1, 3, 4, 11, 2, 1, 3, 7, 2, 1, 11, 4, 5, 1, 9, 3, 7, 8, 1, 11, 3, 2, 1, 10, 3, 4, 1, 9, 2, 6, 4, 1, 5, 9, 2, 1, 4, 3, 11, 1, 4, 2, 3, 9, 1, 5, 7, 1, 4, 9, 2, 3, 4, 9, 2, 1, 3, 11, 6, 4, 1, 5, 11, 2, 3, 1, 10, 5, 3, 2, 11, 4, 5, 1, 2, 7, 11, 1, 3, 5, 9, 4, 8, 2, 1, 9, 3, 5, 8, 2, 1, 11, 7, 5, 6, 11, 1, 2, 3, 1, 2, 9, 3, 1, 2, 9, 8, 1, 2, 3, 6, 9, 7, 2, 1, 4, 10, 3, 1, 6, 2, 11, 4, 1, 2, 5, 9, 1, 7, 2, 9, 1, 3, 2, 1, 3, 9, 5, 8, 2, 4, 9, 1, 2, 4, 1, 11, 2, 5, 1, 11, 2, 6, 1, 11, 2, 8, 7, 9, 1, 8, 3, 2, 11, 1, 5, 4, 8, 3, 11, 1, 6, 7, 2, 3, 11, 1, 2, 6, 5, 11, 1, 4, 2, 1, 11, 5, 4, 1, 9, 8, 4, 1, 9, 3, 7, 6, 3, 1, 2, 7, 2, 5, 2, 6, 1, 3, 4, 1, 3, 2, 5, 1, 4, 5, 1, 3, 7, 1, 2, 11, 4, 3, 1, 4, 2, 3, 5, 11, 1, 2, 6, 1, 3, 6, 2, 1, 6, 4, 1, 2, 8, 3, 1, 4, 2, 1, 8, 2, 1, 6, 3, 1, 6, 2, 5, 11, 6, 1, 7, 2, 1, 5, 2, 8, 1, 5, 3, 2, 5, 1, 2, 4, 1, 3, 7, 4, 1, 2], 100 | [1, 8, 1, 3, 2, 11, 1, 2, 5, 9, 3, 1, 2, 6, 1, 2, 10, 3, 1, 2, 9, 3, 1, 2, 3, 11, 4, 2, 1, 9, 5, 4, 1, 11, 7, 5, 1, 2, 4, 11, 1, 2, 3, 8, 9, 1, 4, 7, 5, 9, 2, 3, 4, 9, 5, 1, 6, 2, 11, 5, 3, 1, 11, 4, 6, 1, 9, 2, 8, 1, 10, 6, 2, 1, 3, 2, 10, 1, 3, 4, 11, 1, 5, 4, 1, 9, 3, 2, 5, 3, 1, 9, 5, 2, 4, 11, 3, 2, 1, 11, 4, 3, 2, 9, 1, 5, 6, 8, 11, 2, 1, 6, 2, 9, 3, 7, 5, 11, 1, 4, 2, 1, 4, 9, 7, 3, 1, 6, 9, 7, 3, 1, 7, 11, 4, 2, 1, 11, 6, 2, 3, 9, 1, 2, 4, 5, 2, 9, 1, 4, 2, 3, 7, 9, 1, 2, 8, 9, 7, 1, 4, 7, 11, 1, 4, 5, 2, 1, 11, 3, 2, 1, 11, 3, 8, 7, 1, 9, 2, 4, 1, 11, 3, 5, 2, 1, 11, 8, 2, 1, 11, 7, 5, 2, 3, 11, 1, 4, 2, 1, 7, 11, 3, 8, 6, 4, 9, 1, 3, 4, 1, 3, 2, 1, 6, 2, 1, 4, 8, 1, 3, 5, 2, 1, 5, 2, 11, 1, 7, 5, 2, 3, 1, 2, 6, 1, 2, 5, 11, 1, 6, 3, 2, 1, 5, 8, 1, 4, 3, 1, 4, 3, 1, 4, 2, 1, 6, 4, 1, 5, 7, 1, 5, 3, 11, 4, 2, 5, 1, 8, 3, 2, 5, 3, 8, 2, 1, 4, 3, 6, 2, 1, 7, 6, 1, 2, 6, 2] 101 | ], 102 | "Free": [ 103 | [4, 5, 3, 1, 2, 5, 1, 2, 7, 5, 6, 1, 3, 4, 8, 1, 2, 4, 11, 3, 1, 2, 7, 4, 2, 3, 1, 2, 6, 8, 7, 2, 6, 1, 3, 2, 7, 11, 3, 2, 1, 5, 3, 1, 4, 3, 2, 1, 2, 4, 5, 1, 2, 4, 3, 2, 1, 11, 6, 5, 3, 1, 2, 4, 3, 1, 5, 6, 8, 3, 7, 1, 8, 3, 1, 4, 5, 1, 3, 11, 2, 5, 1, 4, 7, 1, 5, 6, 1, 2, 3, 5, 4, 3, 1, 5, 2, 1, 11, 3, 2, 1, 3, 2, 1, 5, 3, 1, 2, 7, 1, 6, 3, 4, 11, 2, 3, 1, 4, 2, 3, 5, 1, 6, 2, 1, 5, 2, 4, 1, 6, 2, 1, 6, 4, 11, 3, 1, 2, 5, 4, 2, 1, 4, 2, 5, 1, 2, 5, 3, 1, 4, 3, 1, 2, 11, 1, 3, 4, 1, 2, 6, 7, 2, 1, 6, 4, 2, 1, 7, 2, 3, 4, 2, 11, 1, 3, 2, 1, 3, 2, 4, 3, 1, 4, 6, 1, 2, 7, 1, 3, 2, 11, 7, 1, 5, 6, 4, 1, 2, 3, 1, 4, 2, 1, 7, 4, 1, 2, 11, 7, 1, 2, 4, 3, 1, 6, 8, 3, 2, 1, 6, 2, 7, 1, 6, 3, 1, 2, 5, 1, 2, 4, 7, 1, 2, 3, 5, 1, 8, 3, 1, 2, 3, 1, 2, 8, 1, 2, 6, 1, 2, 3, 1, 2], 104 | [5, 1, 6, 2, 3, 1, 2, 6, 5, 1, 2, 6, 1, 2, 3, 1, 2, 3, 6, 2, 3, 11, 1, 2, 3, 1, 7, 4, 2, 1, 7, 4, 1, 2, 7, 3, 1, 4, 6, 5, 8, 2, 4, 1, 2, 11, 4, 5, 1, 2, 3, 1, 6, 8, 1, 4, 2, 5, 6, 4, 3, 1, 11, 2, 6, 1, 4, 3, 1, 2, 4, 1, 3, 2, 1, 4, 7, 2, 3, 1, 5, 4, 1, 2, 8, 1, 11, 3, 1, 2, 1, 3, 5, 6, 1, 8, 5, 3, 1, 4, 2, 1, 3, 1, 11, 2, 4, 1, 2, 3, 8, 1, 3, 2, 4, 6, 2, 4, 1, 2, 3, 7, 1, 4, 11, 2, 3, 1, 2, 6, 3, 5, 1, 2, 6, 1, 3, 2, 1, 4, 7, 2, 1, 5, 11, 2, 6, 3, 2, 1, 3, 4, 5, 1, 2, 4, 1, 3, 1, 4, 1, 7, 4, 2, 6, 11, 1, 2, 3, 8, 1, 4, 2, 1, 7, 1, 2, 8, 3, 11, 6, 1, 2, 6, 4, 1, 7, 3, 1, 6, 2, 1, 7, 3, 1, 8, 4, 1, 11, 3, 4, 1, 2, 5, 3, 1, 2, 5, 1, 2, 3, 1, 5, 4, 3, 2, 6, 11, 1, 8, 2, 3, 1, 2, 5, 3, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 1, 5, 2, 1, 5, 3, 1, 5, 3, 1, 2, 5, 1, 2, 5, 1, 2], 105 | [4, 2, 3, 6, 1, 3, 4, 1, 3, 4, 5, 8, 2, 4, 7, 2, 3, 5, 1, 4, 5, 11, 3, 6, 2, 7, 6, 3, 4, 5, 2, 3, 6, 2, 1, 3, 4, 5, 11, 3, 4, 8, 2, 1, 3, 2, 4, 1, 2, 3, 6, 1, 4, 6, 5, 1, 2, 4, 7, 11, 2, 3, 4, 5, 3, 6, 2, 1, 7, 4, 3, 2, 1, 3, 2, 7, 3, 2, 11, 4, 1, 2, 5, 1, 2, 3, 1, 2, 4, 3, 2, 5, 3, 2, 5, 1, 3, 2, 11, 4, 6, 5, 3, 1, 4, 5, 2, 1, 3, 4, 2, 1, 3, 5, 1, 3, 6, 2, 11, 7, 3, 2, 1, 3, 4, 2, 3, 8, 1, 6, 3, 5, 1, 2, 8, 11, 3, 2, 1, 5, 2, 3, 8, 2, 1, 3, 5, 2, 1, 7, 8, 6, 1, 2, 4, 1, 2, 11, 3, 1, 2, 6, 3, 2, 5, 3, 2, 1, 7, 3, 5, 2, 4, 11, 3, 2, 8, 5, 2, 4, 5, 3, 1, 4, 2, 3, 1, 6, 3, 1, 2, 11, 3, 1, 6, 2, 7, 1, 2, 5, 1, 7, 2, 1, 4, 2, 3, 11, 1, 2, 3, 1, 2, 7, 1, 3, 6, 1, 5, 3, 1, 2, 4, 3, 1, 6, 2, 3, 4, 7, 3, 2, 1, 4, 5, 2, 1, 4, 2, 1, 3, 2, 1, 3, 2, 1, 3, 2, 8, 1, 5, 8, 1, 2, 3], 106 | [1, 3, 5, 1, 4, 7, 2, 8, 1, 5, 2, 3, 1, 2, 7, 6, 4, 1, 11, 2, 3, 1, 4, 2, 1, 3, 4, 1, 6, 2, 11, 1, 5, 6, 2, 1, 6, 2, 3, 4, 2, 3, 1, 11, 4, 6, 7, 4, 3, 1, 6, 2, 5, 8, 7, 2, 3, 11, 1, 2, 3, 1, 2, 4, 1, 3, 2, 5, 4, 1, 3, 5, 11, 7, 3, 5, 2, 1, 8, 2, 1, 3, 4, 1, 11, 2, 3, 1, 4, 2, 1, 7, 3, 2, 5, 7, 1, 8, 11, 5, 2, 1, 3, 4, 2, 1, 5, 8, 1, 4, 5, 2, 4, 1, 11, 2, 8, 1, 3, 2, 1, 4, 2, 1, 3, 5, 1, 4, 3, 1, 2, 3, 11, 6, 2, 3, 1, 2, 5, 1, 3, 2, 1, 7, 4, 3, 1, 11, 2, 4, 1, 5, 2, 1, 6, 3, 2, 4, 5, 1, 8, 5, 3, 11, 4, 6, 3, 1, 2, 5, 3, 6, 1, 3, 5, 2, 1, 8, 11, 2, 7, 1, 6, 4, 1, 3, 2, 4, 1, 7, 4, 1, 2, 7, 11, 1, 2, 3, 1, 4, 2, 5, 1, 2, 3, 1, 2, 6, 7, 1, 3, 8, 1, 2, 8, 1, 6, 4, 2, 1, 7, 2, 1, 3, 8, 2, 1, 5, 3, 1, 6, 5, 4, 6, 1, 2, 4, 1, 5, 6, 1, 8, 4, 1, 2, 7, 1, 5, 3, 1, 2, 7, 1, 5, 2], 107 | [5, 1, 2, 6, 5, 2, 1, 7, 2, 1, 4, 3, 2, 11, 7, 1, 4, 7, 6, 1, 5, 4, 2, 7, 3, 1, 5, 11, 2, 1, 3, 2, 1, 4, 8, 6, 1, 5, 4, 1, 11, 2, 4, 5, 2, 1, 6, 3, 1, 8, 2, 3, 1, 8, 6, 5, 1, 4, 11, 3, 5, 2, 1, 3, 4, 2, 1, 3, 5, 1, 11, 1, 2, 4, 3, 2, 1, 5, 7, 2, 3, 1, 4, 2, 1, 11, 3, 5, 1, 2, 4, 3, 1, 5, 8, 1, 5, 6, 7, 1, 3, 2, 11, 1, 7, 3, 5, 2, 1, 5, 2, 1, 6, 5, 2, 11, 7, 1, 4, 3, 2, 1, 4, 7, 2, 6, 1, 3, 11, 4, 5, 2, 1, 4, 2, 1, 5, 8, 3, 2, 1, 4, 3, 8, 1, 11, 2, 3, 8, 5, 3, 4, 1, 2, 8, 4, 2, 1, 11, 5, 3, 6, 4, 1, 2, 3, 1, 4, 2, 1, 11, 6, 2, 4, 8, 1, 3, 4, 1, 2, 6, 4, 2, 1, 3, 5, 2, 4, 11, 7, 1, 2, 3, 7, 6, 1, 2, 3, 6, 1, 4, 7, 1, 2, 6, 11, 5, 1, 7, 2, 1, 5, 8, 1, 2, 3, 7, 1, 3, 2, 1, 8, 2, 1, 6, 2, 1, 3, 4, 1, 2, 3, 1, 4, 3, 1, 2, 5, 7, 1, 3, 2, 1, 8, 2, 1, 4, 3, 1, 2, 3, 1, 2, 6, 1, 3] 108 | ], 109 | "Game": { 110 | "Probs": [0, 60, 80, 100], 111 | "Reward": [[301960, 0, 0], [409950, 5, 5], [94963, 10, 10], [21998, 20, 20], [13737, 25, 25], [9350, 30, 30], [5095, 40, 40], [3182, 50, 50], [1564, 70, 70], [920, 90, 90], [0, 100, 100], [0, 120, 120], [0, 200, 200], [0, 220, 220], [0, 500, 500], [0, 505, 505], [0, 510, 510], [0, 520, 520], [0, 550, 550], [0, 570, 570], [0, 600, 600], [0, 700, 700]] 112 | }, 113 | "JackPot": { 114 | "Reward": [10, 20, 40] 115 | } 116 | } 117 | } 118 | -------------------------------------------------------------------------------- /game-server/dist/config/mary_slot/HappyFruit_2.json: -------------------------------------------------------------------------------- 1 | { 2 | "PlatformRatio": 0, 3 | "HandselRatio": 50, 4 | "RoomRatio": 20, 5 | "Bet": [1000,2000,3000,4000,5000,6000,7000,8000,9000,10000], 6 | "PullInterval": 0, 7 | "IsRecordLog": 1, 8 | "nFreeTime": 0, 9 | "NoticeMulti": 50, 10 | "NoticeWord": "恭喜玩家[%s]在[水果玛丽-普通场]财运大爆发,赢得%d倍奖励!", 11 | "NoticeHandsel": "恭喜玩家[%s]在[水果玛丽-普通场]财运大爆发,赢得%I64d奖池奖励!", 12 | "ControlLevel":{ 13 | "1": [1, 100, [0, 0, 0, 0, 0], [100, 50]], 14 | "200": [1, 75, [0, 0, 0, 0, 0], [100, 50]], 15 | "300": [1, 50, [0, 0, 0, 0, 0], [100, 50]], 16 | "400": [1, 25, [0, 0, 0, 0, 0], [100, 50]], 17 | "500": [2, 100, [0, 0, 0, 0, 100], [100, 450]], 18 | "600": [3, 25, [0, 0, 0, 100], [100, 1500]], 19 | "700": [3, 50, [0, 0, 0, 100], [100, 1500]], 20 | "800": [3, 75, [0, 0, 0, 100], [100, 1500]], 21 | "1000": [3, 100, [0, 0, 0, 100], [100, 1500]] 22 | }, 23 | 24 | "RoomControl": { 25 | "Init": 8600000, 26 | "Level_Range": [ 27 | [1, 0, 1200000], 28 | [200, 1200000, 2400000], 29 | [300, 2400000, 4800000], 30 | [500, 4800000, 9600000], 31 | [600, 9600000, 12000000], 32 | [700, 12000000, 14400000], 33 | [800, 14400000, 9999999999] 34 | ] 35 | }, 36 | 37 | "StoreForUserNet": { 38 | "InterveneTime": 0, 39 | "HighStore": [10, 600, 10, 32000000, 32000000], 40 | "LowStore": [90, 400, 10, 3000000, 3000000] 41 | }, 42 | 43 | "Set_1": { 44 | "SetId": 1, 45 | "Normal": [ 46 | [2, 1, 3, 2, 1, 3, 2, 6, 3, 1, 6, 4, 1, 3, 7, 1, 2, 3, 6, 1, 5, 2, 3, 1, 2, 6, 3, 1, 2, 4, 1, 5, 2, 3, 1, 4, 2, 1, 3, 2, 1, 4, 7, 2, 3, 6, 1, 2, 7, 4, 6, 2, 1, 6, 2, 1, 4, 2, 7, 3, 2, 1, 6, 3, 5, 1, 2, 4, 1, 7, 6, 3, 8, 1, 2, 4, 5, 2, 6, 1, 2, 4, 5, 2, 3, 1, 4, 3, 2, 1, 4, 2, 5, 1, 2, 7, 6, 4, 1, 5, 3, 1, 7, 1, 2, 5, 4, 3, 2, 5, 1, 7, 3, 1, 2, 4, 1, 2, 6, 5, 1, 3, 2, 5, 1, 4, 3, 1, 2, 8, 5, 3, 1, 8, 4, 3, 6, 1, 2, 4, 3, 2, 1, 4, 6, 1, 2, 3, 7, 1, 2, 4, 3, 2, 1, 7, 6, 1, 2, 1, 3, 4, 2, 3, 1, 2, 3, 1, 2, 3, 7, 1, 4, 5, 3, 1, 2, 5, 3, 1, 4, 6, 8, 3, 1, 7, 4, 2, 5, 1, 4, 2, 1, 5, 2, 1, 6, 2, 1, 5, 2, 1, 4, 7, 1, 3, 4, 1, 3, 6, 1, 3, 2, 1, 3, 4, 1, 2, 5, 1, 7, 4, 2, 1, 5, 2, 1, 8, 2, 1, 5, 2, 3, 8, 2, 1, 3, 8, 1, 3, 7, 2, 1, 5], 47 | [1, 8, 2, 4, 7, 2, 1, 5, 4, 2, 3, 5, 1, 4, 2, 1, 4, 7, 5, 6, 1, 2, 3, 1, 2, 3, 6, 2, 3, 5, 2, 1, 3, 2, 1, 5, 4, 6, 1, 2, 3, 1, 4, 3, 1, 4, 5, 6, 1, 2, 3, 8, 2, 1, 6, 3, 1, 2, 8, 1, 7, 4, 6, 1, 2, 3, 1, 2, 3, 5, 4, 1, 2, 3, 1, 2, 4, 5, 1, 6, 3, 1, 2, 4, 1, 5, 2, 4, 1, 7, 8, 3, 1, 5, 7, 1, 4, 6, 1, 2, 4, 1, 3, 2, 1, 3, 5, 1, 2, 5, 4, 1, 3, 5, 1, 3, 5, 7, 1, 3, 8, 4, 1, 2, 4, 3, 1, 2, 5, 3, 4, 2, 1, 6, 2, 1, 3, 2, 1, 3, 2, 1, 5, 3, 2, 1, 3, 4, 2, 1, 3, 6, 1, 4, 6, 1, 2, 8, 1, 3, 2, 1, 4, 2, 1, 5, 8, 2, 1, 3, 4, 2, 1, 3, 2, 6, 1, 3, 2, 1, 3, 4, 1, 2, 6, 1, 2, 5, 1, 3, 2, 1, 3, 2, 1, 5, 2, 6, 1, 2, 6, 4, 1, 2, 6, 1, 2, 7, 1, 2, 4, 1, 2, 3, 4, 1, 2, 4, 6, 3, 2, 1, 7, 3, 1, 8, 5, 2, 1, 6, 3, 1, 2, 7, 1, 3, 5, 1, 3, 2, 1, 7, 8, 1, 4, 2], 48 | [2, 1, 4, 2, 3, 1, 2, 7, 3, 2, 6, 4, 3, 1, 8, 3, 2, 1, 3, 6, 1, 3, 7, 2, 3, 4, 2, 1, 4, 3, 1, 2, 4, 6, 2, 8, 3, 4, 5, 1, 2, 3, 1, 7, 6, 3, 1, 5, 3, 2, 1, 3, 4, 5, 3, 1, 7, 4, 3, 1, 4, 2, 6, 1, 4, 5, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 5, 2, 4, 6, 3, 5, 2, 4, 1, 5, 3, 2, 1, 6, 4, 2, 3, 1, 6, 3, 1, 5, 4, 2, 5, 3, 4, 1, 8, 2, 1, 5, 2, 6, 1, 2, 4, 1, 2, 3, 1, 2, 5, 1, 2, 3, 4, 2, 3, 1, 4, 2, 6, 4, 2, 3, 1, 7, 3, 5, 1, 2, 8, 3, 4, 5, 2, 3, 7, 2, 3, 5, 2, 6, 3, 4, 5, 8, 3, 6, 2, 4, 5, 1, 3, 7, 2, 3, 1, 4, 2, 1, 5, 3, 2, 8, 4, 2, 1, 3, 5, 1, 2, 5, 3, 2, 6, 7, 2, 3, 1, 2, 3, 4, 1, 2, 5, 8, 3, 1, 2, 5, 1, 2, 5, 7, 2, 1, 3, 2, 1, 3, 2, 1, 3, 5, 6, 3, 2, 8, 1, 6, 7, 2, 3, 1, 2, 4, 1, 2, 3, 4, 2, 5, 3, 8, 2, 3, 1, 4, 7, 2, 1, 3, 2, 7, 3, 6], 49 | [4, 1, 5, 8, 4, 1, 2, 4, 1, 2, 3, 4, 1, 5, 2, 1, 4, 6, 1, 8, 3, 4, 5, 2, 3, 7, 6, 2, 3, 4, 5, 1, 2, 5, 1, 3, 2, 6, 8, 2, 5, 1, 2, 5, 1, 4, 7, 1, 2, 7, 1, 2, 4, 5, 1, 2, 7, 1, 3, 2, 1, 7, 3, 1, 2, 8, 6, 1, 5, 3, 2, 1, 4, 3, 1, 2, 4, 1, 6, 3, 1, 5, 4, 1, 6, 2, 4, 1, 3, 2, 5, 1, 8, 1, 2, 3, 1, 2, 3, 1, 5, 2, 3, 1, 2, 3, 1, 4, 3, 1, 5, 7, 2, 1, 5, 2, 4, 1, 2, 6, 5, 1, 2, 3, 6, 2, 1, 4, 2, 1, 4, 2, 8, 1, 4, 6, 1, 4, 6, 3, 5, 7, 1, 2, 4, 3, 1, 7, 3, 8, 2, 1, 7, 3, 1, 6, 4, 2, 3, 1, 7, 6, 2, 1, 4, 5, 3, 2, 8, 1, 2, 5, 1, 2, 3, 1, 6, 3, 1, 4, 3, 5, 2, 7, 3, 5, 1, 4, 3, 1, 2, 7, 5, 2, 1, 3, 5, 8, 1, 2, 4, 5, 1, 2, 3, 1, 7, 6, 5, 2, 1, 6, 7, 1, 2, 3, 1, 2, 6, 1, 2, 3, 4, 1, 2, 3, 1, 8, 3, 1, 4, 7, 1, 2, 3, 8, 1, 2, 8, 4, 1, 2], 50 | [6, 8, 1, 4, 2, 1, 7, 2, 3, 1, 7, 5, 2, 1, 5, 3, 2, 1, 4, 5, 3, 2, 7, 3, 5, 6, 1, 2, 3, 1, 8, 2, 1, 3, 5, 1, 4, 2, 1, 8, 2, 4, 7, 3, 1, 2, 6, 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 1, 2, 4, 1, 5, 8, 3, 2, 4, 3, 2, 1, 5, 4, 3, 1, 4, 5, 2, 1, 4, 5, 3, 2, 1, 5, 2, 3, 1, 4, 5, 1, 4, 6, 2, 1, 4, 2, 1, 3, 7, 4, 3, 2, 1, 6, 3, 2, 4, 1, 3, 2, 1, 5, 6, 4, 1, 5, 7, 1, 4, 5, 2, 7, 1, 4, 3, 1, 5, 2, 1, 8, 2, 1, 6, 5, 7, 3, 1, 2, 6, 3, 1, 4, 3, 8, 6, 1, 2, 6, 5, 3, 1, 2, 4, 1, 7, 2, 1, 5, 2, 1, 3, 2, 1, 7, 2, 3, 1, 2, 6, 1, 5, 2, 1, 3, 6, 2, 3, 7, 2, 1, 8, 3, 1, 2, 3, 4, 1, 5, 2, 1, 6, 3, 5, 2, 1, 8, 7, 2, 1, 4, 1, 2, 6, 8, 1, 2, 4, 1, 3, 4, 1, 2, 8, 4, 2, 1, 7, 3, 1, 8, 3, 1, 2, 4, 3, 1, 5, 2, 1, 7, 4, 1, 3, 5, 1, 6, 8, 1, 6, 7, 1, 2] 51 | ], 52 | "Free": [ 53 | [1, 5, 6, 3, 1, 7, 8, 2, 1, 3, 2, 1, 6, 3, 2, 4, 1, 2, 7, 6, 4, 5, 2, 3, 1, 5, 2, 3, 1, 2, 3, 1, 2, 3, 1, 6, 3, 2, 1, 6, 4, 2, 3, 6, 1, 5, 2, 3, 1, 2, 6, 1, 3, 2, 1, 5, 2, 1, 4, 7, 1, 5, 2, 7, 1, 2, 3, 6, 4, 1, 2, 4, 1, 5, 3, 1, 5, 2, 7, 5, 2, 6, 3, 2, 4, 5, 1, 3, 2, 4, 3, 2, 1, 3, 2, 8, 1, 2, 6, 1, 4, 3, 1, 5, 7, 2, 1, 3, 6, 4, 1, 2, 3, 1, 2, 5, 7, 1, 3, 4, 7, 1, 3, 4, 1, 2, 6, 1, 2, 3, 1, 5, 2, 4, 1, 3, 2, 1, 3, 2, 1, 4, 3, 7, 1, 2, 3, 6, 7, 2, 1, 4, 2, 1, 4, 2, 1, 3, 5, 1, 4, 3, 1, 2, 7, 4, 2, 5, 1, 2, 4, 1, 2, 4, 1, 3, 6, 2, 1, 8, 2, 1, 3, 2, 1, 5, 2, 8, 1, 3, 4, 2, 5, 1, 4, 2, 1, 4, 8, 1, 3, 7, 1, 5, 3, 6, 1, 3, 2, 1, 7, 2, 5, 8, 4, 2, 1, 4, 3, 1, 7, 8, 3, 6, 4, 2, 1, 4, 6, 1, 3, 2, 1, 5, 3, 1, 6, 4, 1, 2, 7, 1, 5, 2], 54 | [1, 4, 5, 1, 7, 2, 1, 3, 4, 5, 6, 2, 1, 3, 2, 1, 3, 2, 1, 4, 3, 1, 4, 3, 1, 8, 2, 1, 4, 6, 2, 1, 6, 2, 1, 4, 6, 2, 3, 6, 2, 1, 4, 2, 1, 4, 2, 1, 8, 2, 6, 3, 4, 2, 1, 5, 2, 1, 3, 2, 1, 3, 2, 4, 1, 6, 3, 1, 8, 4, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 6, 5, 4, 1, 3, 2, 1, 3, 4, 1, 6, 2, 4, 1, 7, 2, 4, 6, 2, 1, 3, 5, 1, 3, 2, 1, 3, 4, 1, 2, 3, 1, 5, 2, 1, 3, 5, 2, 1, 7, 3, 6, 1, 4, 1, 2, 1, 5, 4, 1, 8, 4, 1, 3, 2, 1, 3, 6, 1, 5, 6, 2, 5, 8, 1, 7, 4, 2, 1, 5, 2, 6, 1, 5, 2, 3, 1, 7, 5, 1, 3, 5, 1, 2, 8, 3, 1, 2, 5, 1, 2, 1, 4, 1, 3, 2, 1, 7, 2, 1, 3, 6, 2, 1, 6, 2, 5, 8, 1, 7, 3, 2, 1, 3, 2, 7, 4, 8, 1, 3, 2, 1, 7, 2, 5, 1, 3, 4, 2, 8, 1, 2, 4, 3, 6, 5, 2, 1, 3, 5, 2, 3, 4, 2, 1, 6, 3, 1, 2, 4, 1, 7, 2, 1, 5, 4, 3, 1, 2, 4, 1, 3, 5, 1, 2, 3], 55 | [2, 3, 1, 7, 2, 5, 3, 1, 4, 3, 2, 1, 3, 5, 4, 2, 3, 1, 4, 6, 3, 2, 4, 1, 5, 3, 6, 1, 3, 8, 4, 1, 3, 2, 4, 3, 6, 1, 8, 4, 1, 2, 3, 4, 1, 2, 3, 1, 2, 3, 5, 6, 2, 1, 4, 6, 1, 2, 3, 1, 4, 3, 1, 7, 3, 5, 2, 1, 5, 8, 2, 4, 6, 1, 2, 3, 5, 7, 2, 3, 1, 2, 3, 5, 2, 4, 1, 3, 4, 6, 2, 4, 1, 2, 3, 1, 2, 4, 3, 1, 4, 5, 1, 3, 2, 4, 1, 2, 3, 4, 2, 3, 1, 5, 2, 1, 3, 2, 1, 5, 8, 2, 3, 1, 2, 5, 1, 3, 2, 4, 1, 5, 2, 3, 5, 6, 2, 1, 4, 6, 7, 3, 5, 4, 1, 5, 7, 2, 3, 1, 2, 7, 1, 2, 5, 7, 3, 4, 2, 3, 8, 5, 2, 1, 3, 4, 2, 6, 3, 4, 2, 7, 5, 6, 1, 2, 5, 1, 7, 3, 2, 5, 3, 2, 1, 4, 2, 3, 1, 2, 3, 6, 2, 7, 3, 2, 1, 3, 8, 2, 5, 4, 1, 2, 8, 3, 2, 4, 8, 2, 6, 3, 1, 7, 2, 1, 3, 7, 2, 3, 6, 2, 3, 1, 2, 6, 1, 8, 3, 1, 2, 3, 5, 6, 2, 3, 4, 2, 5, 3, 1, 2, 3, 1], 56 | [5, 1, 2, 7, 5, 2, 1, 3, 2, 1, 4, 8, 3, 1, 2, 6, 8, 4, 1, 2, 3, 1, 8, 4, 2, 1, 3, 2, 1, 3, 4, 1, 5, 2, 1, 4, 2, 1, 7, 1, 3, 6, 2, 1, 4, 5, 1, 2, 5, 1, 4, 3, 2, 6, 4, 2, 1, 3, 4, 2, 1, 3, 5, 4, 1, 2, 8, 1, 2, 4, 5, 2, 4, 3, 1, 2, 8, 1, 2, 7, 1, 4, 6, 1, 3, 5, 2, 7, 4, 1, 7, 2, 1, 3, 4, 1, 6, 2, 1, 3, 5, 2, 7, 5, 1, 2, 4, 1, 3, 5, 1, 6, 4, 2, 3, 4, 5, 1, 3, 2, 6, 1, 2, 7, 1, 2, 3, 1, 5, 3, 1, 5, 8, 4, 1, 7, 2, 3, 1, 4, 2, 6, 1, 2, 3, 5, 1, 2, 3, 4, 5, 8, 1, 3, 8, 1, 2, 5, 4, 1, 2, 8, 1, 3, 4, 1, 5, 6, 1, 3, 7, 1, 2, 5, 6, 2, 7, 1, 8, 5, 2, 4, 7, 2, 4, 3, 6, 7, 5, 2, 3, 1, 2, 3, 4, 1, 5, 1, 3, 1, 2, 7, 1, 3, 7, 1, 6, 2, 1, 6, 3, 1, 6, 3, 1, 5, 2, 1, 3, 2, 5, 1, 8, 2, 3, 1, 8, 2, 1, 7, 2, 1, 4, 6, 1, 3, 2, 1, 6, 2, 4, 3], 57 | [1, 2, 5, 1, 4, 2, 3, 4, 1, 5, 7, 1, 2, 8, 4, 2, 6, 1, 2, 3, 1, 5, 2, 3, 6, 4, 3, 8, 1, 5, 2, 4, 3, 1, 7, 6, 1, 2, 4, 1, 8, 2, 1, 4, 6, 3, 5, 4, 1, 2, 7, 6, 2, 7, 1, 4, 5, 3, 2, 1, 3, 1, 4, 5, 2, 1, 3, 2, 5, 3, 1, 5, 3, 6, 1, 2, 4, 1, 7, 4, 6, 1, 5, 2, 1, 7, 2, 4, 1, 5, 2, 3, 6, 2, 1, 4, 2, 3, 6, 2, 4, 1, 7, 5, 2, 6, 1, 5, 8, 2, 1, 3, 4, 1, 3, 1, 2, 4, 1, 7, 2, 1, 3, 8, 1, 5, 2, 3, 5, 1, 4, 6, 2, 3, 1, 2, 7, 1, 5, 2, 4, 3, 2, 4, 7, 1, 2, 3, 1, 2, 3, 8, 1, 3, 2, 1, 7, 2, 1, 6, 3, 2, 8, 3, 5, 2, 1, 5, 3, 1, 2, 7, 1, 5, 3, 1, 2, 4, 1, 2, 7, 1, 2, 4, 1, 2, 6, 1, 2, 4, 1, 8, 4, 1, 2, 3, 6, 1, 8, 3, 1, 8, 2, 1, 4, 2, 3, 1, 4, 3, 1, 2, 5, 1, 3, 6, 1, 3, 5, 1, 2, 3, 1, 7, 5, 1, 3, 2, 1, 7, 3, 1, 2, 8, 1, 5, 4, 6, 1, 4, 8, 5] 58 | ], 59 | "Game": { 60 | "Probs": [100, 100, 100], 61 | "Reward": [[301960, 0, 0], [409950, 5, 5], [94963, 10, 10], [21998, 20, 20], [13737, 25, 25], [9350, 30, 30], [5095, 40, 40], [3182, 50, 50], [1564, 70, 70], [920, 90, 90], [0, 100, 100], [0, 120, 120], [0, 200, 200], [0, 220, 220], [0, 500, 500], [0, 505, 505], [0, 510, 510], [0, 520, 520], [0, 550, 550], [0, 570, 570], [0, 600, 600], [0, 700, 700]] 62 | }, 63 | "JackPot": { 64 | "Reward": [10, 20, 40] 65 | } 66 | }, 67 | 68 | "Set_2": { 69 | "SetId": 2, 70 | "Normal": [ 71 | [8, 3, 2, 4, 1, 2, 9, 7, 3, 1, 7, 3, 1, 2, 10, 6, 1, 2, 3, 5, 2, 1, 3, 7, 5, 11, 2, 6, 3, 2, 1, 3, 9, 1, 2, 4, 1, 3, 2, 1, 4, 6, 11, 1, 4, 2, 1, 5, 3, 2, 4, 11, 1, 6, 5, 4, 1, 2, 10, 3, 6, 5, 2, 1, 3, 2, 4, 8, 9, 1, 7, 5, 2, 7, 9, 1, 3, 2, 8, 1, 3, 2, 6, 3, 2, 9, 5, 3, 7, 2, 4, 11, 3, 1, 5, 2, 1, 6, 11, 2, 4, 1, 5, 2, 6, 1, 2, 4, 10, 3, 2, 5, 1, 2, 4, 1, 9, 2, 6, 3, 2, 1, 5, 6, 1, 4, 9, 2, 1, 5, 3, 4, 11, 2, 1, 3, 1, 2, 3, 1, 11, 4, 1, 5, 3, 1, 2, 5, 1, 2, 9, 7, 1, 3, 2, 5, 9, 4, 2, 1, 3, 5, 8, 1, 11, 2, 4, 1, 7, 3, 1, 2, 6, 11, 4, 5, 2, 1, 7, 6, 1, 11, 3, 4, 1, 2, 3, 1, 9, 8, 4, 1, 2, 3, 1, 9, 2, 4, 3, 6, 1, 11, 4, 5, 2, 6, 7, 3, 9, 1, 2, 8, 3, 1, 4, 5, 1, 6, 4, 3, 1, 2, 3, 1, 7, 8, 1, 7, 2, 5, 1, 6, 4, 1, 3, 2, 1, 7, 4, 1, 2, 4, 1, 3, 6, 1, 2, 7, 1, 2, 6, 1, 2, 5, 7, 2, 1, 3, 2, 1, 4, 3, 1, 4, 3, 1, 2, 3, 1, 2], 72 | [8, 2, 1, 3, 8, 1, 11, 6, 5, 1, 6, 3, 1, 10, 4, 3, 1, 2, 4, 11, 8, 1, 3, 6, 5, 1, 11, 4, 5, 2, 1, 3, 2, 1, 3, 2, 1, 9, 6, 1, 2, 3, 7, 2, 1, 4, 9, 8, 3, 1, 2, 1, 5, 11, 1, 2, 5, 3, 2, 9, 1, 3, 6, 2, 1, 5, 2, 4, 1, 3, 9, 1, 5, 3, 1, 2, 4, 6, 10, 1, 2, 4, 1, 6, 11, 7, 1, 3, 2, 4, 1, 2, 3, 9, 1, 6, 5, 2, 3, 1, 10, 2, 5, 3, 1, 2, 9, 5, 8, 2, 6, 8, 1, 4, 2, 3, 9, 6, 2, 4, 5, 3, 2, 9, 1, 5, 2, 1, 8, 4, 1, 11, 3, 2, 1, 3, 5, 11, 4, 1, 2, 3, 5, 2, 1, 3, 11, 1, 2, 6, 1, 3, 11, 4, 1, 2, 1, 3, 4, 1, 8, 9, 2, 3, 7, 1, 2, 3, 4, 1, 3, 9, 2, 1, 4, 3, 2, 9, 4, 1, 3, 1, 6, 9, 2, 4, 1, 3, 2, 4, 1, 3, 11, 7, 2, 1, 4, 2, 1, 11, 4, 7, 1, 4, 5, 1, 4, 6, 7, 3, 1, 2, 3, 4, 1, 7, 6, 2, 5, 1, 7, 2, 1, 6, 4, 1, 2, 4, 1, 5, 3, 2, 1, 5, 2, 7, 6, 1, 4, 2, 3, 1, 6, 2, 4, 1, 2, 5, 1, 2, 8, 3, 1, 2, 6, 1, 2, 7, 1, 2, 3, 1, 5, 2, 1, 3, 2, 1, 3, 2, 1, 5], 73 | [7, 6, 3, 4, 7, 1, 9, 3, 2, 4, 1, 5, 6, 3, 9, 8, 4, 3, 2, 8, 1, 4, 2, 10, 7, 3, 1, 4, 2, 3, 9, 7, 2, 1, 3, 2, 5, 11, 3, 2, 1, 5, 2, 1, 4, 9, 8, 3, 1, 2, 7, 10, 4, 1, 5, 2, 6, 7, 11, 1, 2, 5, 3, 1, 11, 2, 3, 1, 2, 8, 6, 11, 1, 3, 4, 5, 2, 3, 1, 5, 9, 2, 1, 6, 4, 2, 3, 10, 1, 5, 7, 4, 6, 3, 5, 2, 9, 4, 2, 3, 2, 1, 4, 9, 2, 1, 3, 2, 7, 1, 2, 3, 9, 8, 1, 4, 5, 3, 9, 1, 6, 2, 4, 3, 2, 1, 11, 4, 3, 2, 1, 5, 6, 1, 2, 11, 3, 8, 5, 3, 2, 1, 4, 9, 3, 5, 1, 3, 6, 7, 3, 9, 2, 7, 4, 2, 3, 9, 4, 2, 1, 3, 2, 1, 2, 9, 5, 2, 3, 4, 2, 3, 5, 9, 1, 2, 4, 3, 8, 6, 11, 1, 8, 7, 2, 1, 11, 5, 3, 2, 1, 5, 2, 3, 1, 11, 2, 5, 3, 1, 2, 3, 1, 4, 11, 3, 1, 8, 5, 2, 3, 1, 11, 6, 3, 5, 7, 6, 4, 2, 5, 9, 4, 2, 1, 3, 4, 1, 3, 9, 2, 1, 3, 2, 4, 3, 1, 6, 3, 2, 1, 3, 2, 6, 3, 2, 1, 4, 2, 3, 6, 2, 1, 3, 5, 2, 1, 3, 2, 1, 5, 3, 2, 1, 4, 2, 3, 4, 2, 5, 3, 6, 2, 1], 74 | [2, 1, 5, 11, 1, 2, 6, 4, 1, 6, 9, 5, 3, 1, 5, 2, 11, 6, 1, 2, 4, 5, 9, 3, 4, 1, 2, 7, 4, 9, 3, 1, 4, 11, 8, 3, 1, 4, 2, 1, 11, 5, 7, 3, 6, 2, 11, 5, 1, 2, 5, 1, 9, 4, 8, 3, 1, 10, 4, 3, 1, 5, 2, 11, 3, 4, 1, 6, 2, 5, 9, 3, 1, 2, 8, 9, 1, 2, 3, 1, 6, 9, 4, 3, 7, 5, 2, 1, 7, 11, 6, 2, 1, 3, 2, 1, 10, 4, 6, 1, 2, 5, 9, 7, 2, 1, 5, 9, 3, 2, 1, 3, 2, 1, 4, 9, 3, 1, 4, 6, 1, 9, 7, 2, 1, 7, 3, 1, 2, 11, 1, 3, 4, 8, 9, 2, 1, 6, 3, 2, 5, 7, 11, 1, 3, 2, 1, 4, 3, 2, 10, 1, 3, 5, 2, 1, 9, 4, 8, 1, 2, 11, 4, 6, 2, 3, 11, 1, 5, 8, 1, 11, 6, 7, 2, 1, 9, 5, 8, 3, 2, 11, 4, 1, 7, 4, 1, 3, 9, 2, 1, 6, 4, 1, 3, 9, 2, 1, 3, 5, 1, 2, 3, 4, 1, 2, 3, 1, 7, 2, 4, 7, 2, 1, 3, 2, 1, 5, 4, 1, 2, 3, 4, 2, 1, 4, 7, 1, 6, 3, 1, 4, 3, 2, 5, 7, 1, 3, 4, 5, 1, 2, 6, 1, 2, 7, 1, 2, 5, 1, 8, 2, 1, 8, 2, 1, 8, 5, 2, 3, 1, 2, 5, 1, 2, 4, 1, 3, 8, 1, 2, 8, 6, 5], 75 | [2, 4, 1, 5, 2, 1, 6, 2, 9, 3, 5, 1, 2, 5, 4, 1, 2, 9, 5, 1, 3, 1, 2, 11, 7, 1, 3, 7, 1, 11, 6, 7, 1, 4, 3, 9, 2, 6, 1, 3, 6, 1, 2, 9, 7, 1, 2, 3, 7, 9, 4, 3, 1, 2, 11, 5, 1, 6, 8, 1, 2, 11, 4, 1, 8, 1, 2, 9, 5, 1, 2, 4, 3, 9, 7, 6, 1, 2, 5, 1, 3, 11, 2, 1, 3, 2, 5, 4, 11, 2, 5, 1, 7, 11, 3, 1, 4, 3, 5, 6, 1, 9, 5, 4, 2, 1, 5, 8, 4, 9, 1, 2, 3, 5, 11, 2, 1, 3, 2, 6, 3, 4, 11, 1, 2, 7, 4, 9, 3, 5, 8, 3, 5, 2, 9, 1, 6, 2, 7, 5, 1, 9, 3, 8, 2, 1, 4, 11, 3, 1, 2, 6, 1, 8, 2, 9, 4, 1, 2, 3, 1, 2, 4, 10, 1, 2, 7, 3, 2, 11, 1, 3, 2, 1, 9, 7, 4, 1, 6, 10, 3, 2, 1, 3, 4, 1, 2, 11, 7, 1, 2, 6, 4, 11, 3, 1, 2, 4, 3, 1, 10, 2, 4, 1, 5, 8, 2, 5, 9, 1, 2, 5, 8, 3, 4, 1, 9, 7, 6, 4, 1, 3, 5, 1, 9, 4, 5, 1, 6, 3, 4, 11, 1, 2, 8, 3, 4, 1, 5, 6, 4, 2, 1, 3, 8, 2, 1, 3, 2, 1, 8, 3, 2, 1, 3, 6, 1, 4, 2, 1, 4, 2, 1, 8, 2, 1, 5, 7, 1, 5, 2, 1, 7, 2, 1, 3] 76 | ], 77 | "Free": [ 78 | [4, 5, 3, 1, 2, 5, 1, 2, 7, 5, 6, 1, 3, 4, 8, 1, 2, 4, 11, 3, 1, 2, 7, 4, 2, 3, 1, 2, 6, 8, 7, 2, 6, 1, 3, 2, 7, 11, 3, 2, 1, 5, 3, 1, 4, 3, 2, 1, 2, 4, 5, 1, 2, 4, 3, 2, 1, 11, 6, 5, 3, 1, 2, 4, 3, 1, 5, 6, 8, 3, 7, 1, 8, 3, 1, 4, 5, 1, 3, 11, 2, 5, 1, 4, 7, 1, 5, 6, 1, 2, 3, 5, 4, 3, 1, 5, 2, 1, 11, 3, 2, 1, 3, 2, 1, 5, 3, 1, 2, 7, 1, 6, 3, 4, 11, 2, 3, 1, 4, 2, 3, 5, 1, 6, 2, 1, 5, 2, 4, 1, 6, 2, 1, 6, 4, 11, 3, 1, 2, 5, 4, 2, 1, 4, 2, 5, 1, 2, 5, 3, 1, 4, 3, 1, 2, 11, 1, 3, 4, 1, 2, 6, 7, 2, 1, 6, 4, 2, 1, 7, 2, 3, 4, 2, 11, 1, 3, 2, 1, 3, 2, 4, 3, 1, 4, 6, 1, 2, 7, 1, 3, 2, 11, 7, 1, 5, 6, 4, 1, 2, 3, 1, 4, 2, 1, 7, 4, 1, 2, 11, 7, 1, 2, 4, 3, 1, 6, 8, 3, 2, 1, 6, 2, 7, 1, 6, 3, 1, 2, 5, 1, 2, 4, 7, 1, 2, 3, 5, 1, 8, 3, 1, 2, 3, 1, 2, 8, 1, 2, 6, 1, 2, 3, 1, 2], 79 | [5, 1, 6, 2, 3, 1, 2, 6, 5, 1, 2, 6, 1, 2, 3, 1, 2, 3, 6, 2, 3, 11, 1, 2, 3, 1, 7, 4, 2, 1, 7, 4, 1, 2, 7, 3, 1, 4, 6, 5, 8, 2, 4, 1, 2, 11, 4, 5, 1, 2, 3, 1, 6, 8, 1, 4, 2, 5, 6, 4, 3, 1, 11, 2, 6, 1, 4, 3, 1, 2, 4, 1, 3, 2, 1, 4, 7, 2, 3, 1, 5, 4, 1, 2, 8, 1, 11, 3, 1, 2, 1, 3, 5, 6, 1, 8, 5, 3, 1, 4, 2, 1, 3, 1, 11, 2, 4, 1, 2, 3, 8, 1, 3, 2, 4, 6, 2, 4, 1, 2, 3, 7, 1, 4, 11, 2, 3, 1, 2, 6, 3, 5, 1, 2, 6, 1, 3, 2, 1, 4, 7, 2, 1, 5, 11, 2, 6, 3, 2, 1, 3, 4, 5, 1, 2, 4, 1, 3, 1, 4, 1, 7, 4, 2, 6, 11, 1, 2, 3, 8, 1, 4, 2, 1, 7, 1, 2, 8, 3, 11, 6, 1, 2, 6, 4, 1, 7, 3, 1, 6, 2, 1, 7, 3, 1, 8, 4, 1, 11, 3, 4, 1, 2, 5, 3, 1, 2, 5, 1, 2, 3, 1, 5, 4, 3, 2, 6, 11, 1, 8, 2, 3, 1, 2, 5, 3, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 1, 5, 2, 1, 5, 3, 1, 5, 3, 1, 2, 5, 1, 2, 5, 1, 2], 80 | [4, 2, 3, 6, 1, 3, 4, 1, 3, 4, 5, 8, 2, 4, 7, 2, 3, 5, 1, 4, 5, 11, 3, 6, 2, 7, 6, 3, 4, 5, 2, 3, 6, 2, 1, 3, 4, 5, 11, 3, 4, 8, 2, 1, 3, 2, 4, 1, 2, 3, 6, 1, 4, 6, 5, 1, 2, 4, 7, 11, 2, 3, 4, 5, 3, 6, 2, 1, 7, 4, 3, 2, 1, 3, 2, 7, 3, 2, 11, 4, 1, 2, 5, 1, 2, 3, 1, 2, 4, 3, 2, 5, 3, 2, 5, 1, 3, 2, 11, 4, 6, 5, 3, 1, 4, 5, 2, 1, 3, 4, 2, 1, 3, 5, 1, 3, 6, 2, 11, 7, 3, 2, 1, 3, 4, 2, 3, 8, 1, 6, 3, 5, 1, 2, 8, 11, 3, 2, 1, 5, 2, 3, 8, 2, 1, 3, 5, 2, 1, 7, 8, 6, 1, 2, 4, 1, 2, 11, 3, 1, 2, 6, 3, 2, 5, 3, 2, 1, 7, 3, 5, 2, 4, 11, 3, 2, 8, 5, 2, 4, 5, 3, 1, 4, 2, 3, 1, 6, 3, 1, 2, 11, 3, 1, 6, 2, 7, 1, 2, 5, 1, 7, 2, 1, 4, 2, 3, 11, 1, 2, 3, 1, 2, 7, 1, 3, 6, 1, 5, 3, 1, 2, 4, 3, 1, 6, 2, 3, 4, 7, 3, 2, 1, 4, 5, 2, 1, 4, 2, 1, 3, 2, 1, 3, 2, 1, 3, 2, 8, 1, 5, 8, 1, 2, 3], 81 | [1, 3, 5, 1, 4, 7, 2, 8, 1, 5, 2, 3, 1, 2, 7, 6, 4, 1, 11, 2, 3, 1, 4, 2, 1, 3, 4, 1, 6, 2, 11, 1, 5, 6, 2, 1, 6, 2, 3, 4, 2, 3, 1, 11, 4, 6, 7, 4, 3, 1, 6, 2, 5, 8, 7, 2, 3, 11, 1, 2, 3, 1, 2, 4, 1, 3, 2, 5, 4, 1, 3, 5, 11, 7, 3, 5, 2, 1, 8, 2, 1, 3, 4, 1, 11, 2, 3, 1, 4, 2, 1, 7, 3, 2, 5, 7, 1, 8, 11, 5, 2, 1, 3, 4, 2, 1, 5, 8, 1, 4, 5, 2, 4, 1, 11, 2, 8, 1, 3, 2, 1, 4, 2, 1, 3, 5, 1, 4, 3, 1, 2, 3, 11, 6, 2, 3, 1, 2, 5, 1, 3, 2, 1, 7, 4, 3, 1, 11, 2, 4, 1, 5, 2, 1, 6, 3, 2, 4, 5, 1, 8, 5, 3, 11, 4, 6, 3, 1, 2, 5, 3, 6, 1, 3, 5, 2, 1, 8, 11, 2, 7, 1, 6, 4, 1, 3, 2, 4, 1, 7, 4, 1, 2, 7, 11, 1, 2, 3, 1, 4, 2, 5, 1, 2, 3, 1, 2, 6, 7, 1, 3, 8, 1, 2, 8, 1, 6, 4, 2, 1, 7, 2, 1, 3, 8, 2, 1, 5, 3, 1, 6, 5, 4, 6, 1, 2, 4, 1, 5, 6, 1, 8, 4, 1, 2, 7, 1, 5, 3, 1, 2, 7, 1, 5, 2], 82 | [5, 1, 2, 6, 5, 2, 1, 7, 2, 1, 4, 3, 2, 11, 7, 1, 4, 7, 6, 1, 5, 4, 2, 7, 3, 1, 5, 11, 2, 1, 3, 2, 1, 4, 8, 6, 1, 5, 4, 1, 11, 2, 4, 5, 2, 1, 6, 3, 1, 8, 2, 3, 1, 8, 6, 5, 1, 4, 11, 3, 5, 2, 1, 3, 4, 2, 1, 3, 5, 1, 11, 1, 2, 4, 3, 2, 1, 5, 7, 2, 3, 1, 4, 2, 1, 11, 3, 5, 1, 2, 4, 3, 1, 5, 8, 1, 5, 6, 7, 1, 3, 2, 11, 1, 7, 3, 5, 2, 1, 5, 2, 1, 6, 5, 2, 11, 7, 1, 4, 3, 2, 1, 4, 7, 2, 6, 1, 3, 11, 4, 5, 2, 1, 4, 2, 1, 5, 8, 3, 2, 1, 4, 3, 8, 1, 11, 2, 3, 8, 5, 3, 4, 1, 2, 8, 4, 2, 1, 11, 5, 3, 6, 4, 1, 2, 3, 1, 4, 2, 1, 11, 6, 2, 4, 8, 1, 3, 4, 1, 2, 6, 4, 2, 1, 3, 5, 2, 4, 11, 7, 1, 2, 3, 7, 6, 1, 2, 3, 6, 1, 4, 7, 1, 2, 6, 11, 5, 1, 7, 2, 1, 5, 8, 1, 2, 3, 7, 1, 3, 2, 1, 8, 2, 1, 6, 2, 1, 3, 4, 1, 2, 3, 1, 4, 3, 1, 2, 5, 7, 1, 3, 2, 1, 8, 2, 1, 4, 3, 1, 2, 3, 1, 2, 6, 1, 3] 83 | ], 84 | "Game": { 85 | "Probs": [0, 60, 80, 100], 86 | "Reward": [[301960, 0, 0], [409950, 5, 5], [94963, 10, 10], [21998, 20, 20], [13737, 25, 25], [9350, 30, 30], [5095, 40, 40], [3182, 50, 50], [1564, 70, 70], [920, 90, 90], [0, 100, 100], [0, 120, 120], [0, 200, 200], [0, 220, 220], [0, 500, 500], [0, 505, 505], [0, 510, 510], [0, 520, 520], [0, 550, 550], [0, 570, 570], [0, 600, 600], [0, 700, 700]] 87 | }, 88 | "JackPot": { 89 | "Reward": [10, 20, 40] 90 | } 91 | }, 92 | 93 | "Set_3": { 94 | "SetId": 3, 95 | "Normal": [ 96 | [5, 1, 2, 4, 1, 10, 2, 3, 1, 2, 3, 1, 11, 6, 2, 1, 4, 3, 9, 1, 2, 5, 6, 1, 11, 4, 2, 3, 6, 9, 1, 2, 5, 3, 2, 9, 1, 8, 5, 1, 10, 2, 4, 3, 1, 2, 3, 10, 1, 2, 5, 3, 11, 4, 2, 1, 7, 2, 6, 1, 11, 3, 4, 2, 1, 9, 4, 8, 2, 1, 3, 11, 4, 1, 2, 7, 11, 1, 6, 2, 1, 3, 9, 5, 2, 3, 4, 1, 5, 9, 3, 6, 1, 5, 2, 11, 7, 1, 2, 3, 1, 11, 2, 3, 6, 1, 2, 3, 11, 1, 4, 8, 1, 3, 2, 1, 9, 5, 7, 2, 4, 5, 2, 1, 9, 4, 6, 1, 7, 9, 3, 4, 1, 3, 2, 1, 11, 7, 2, 3, 1, 6, 4, 1, 11, 3, 2, 1, 3, 9, 2, 1, 3, 5, 1, 2, 9, 3, 7, 1, 3, 2, 9, 1, 4, 2, 1, 8, 9, 5, 2, 6, 1, 11, 4, 2, 5, 1, 4, 11, 2, 5, 6, 1, 3, 6, 11, 1, 3, 6, 2, 1, 11, 8, 3, 4, 7, 11, 1, 3, 7, 1, 5, 3, 2, 11, 1, 6, 3, 2, 7, 9, 1, 2, 4, 1, 2, 4, 3, 7, 4, 2, 7, 8, 2, 1, 5, 3, 2, 4, 1, 6, 4, 1, 3, 2, 4, 5, 8, 1, 5, 2, 7, 1, 3, 4, 2, 1, 4, 2, 6, 1, 7, 2, 1, 5, 3, 1, 11, 7, 2, 3, 1, 11, 2, 3, 1, 6, 2, 1, 3, 5, 4, 2, 6, 1, 11, 5, 2, 1, 4], 97 | [3, 1, 2, 6, 3, 11, 2, 4, 1, 3, 9, 5, 1, 3, 4, 11, 1, 3, 2, 1, 10, 8, 3, 7, 4, 1, 2, 3, 9, 1, 4, 2, 6, 1, 10, 2, 3, 1, 8, 2, 5, 1, 11, 4, 2, 1, 6, 9, 3, 1, 6, 1, 11, 2, 1, 3, 2, 1, 9, 5, 2, 6, 3, 1, 2, 11, 7, 1, 3, 4, 1, 2, 4, 11, 6, 2, 1, 5, 2, 9, 1, 3, 2, 5, 3, 11, 1, 2, 4, 1, 11, 3, 7, 1, 2, 9, 3, 1, 2, 7, 3, 1, 9, 2, 3, 1, 2, 4, 1, 9, 8, 6, 1, 3, 9, 2, 4, 1, 2, 7, 6, 11, 2, 1, 3, 6, 2, 1, 3, 11, 4, 6, 1, 2, 5, 3, 2, 9, 1, 5, 4, 6, 2, 1, 4, 11, 5, 2, 1, 4, 5, 7, 1, 11, 2, 4, 1, 2, 8, 3, 1, 10, 5, 4, 1, 3, 8, 2, 1, 11, 3, 7, 2, 1, 4, 11, 8, 3, 4, 2, 9, 1, 5, 3, 2, 1, 9, 5, 2, 1, 5, 3, 1, 4, 9, 2, 3, 4, 1, 2, 11, 6, 1, 3, 2, 5, 1, 11, 3, 2, 1, 5, 8, 2, 11, 1, 4, 2, 5, 6, 9, 1, 4, 2, 6, 3, 2, 1, 4, 11, 7, 2, 1, 6, 11, 1, 2, 1, 3, 6, 2, 1, 5, 4, 7, 1, 5, 2, 4, 1, 2, 3, 1, 4, 2, 1, 5, 3, 11, 1, 5, 6, 1, 3, 2, 1, 5, 4, 1, 3, 8, 1, 3, 6, 1, 3, 7, 1, 4, 2, 1, 8, 2], 98 | [3, 2, 4, 3, 2, 1, 4, 9, 2, 3, 4, 9, 5, 3, 2, 9, 1, 4, 2, 1, 3, 9, 2, 1, 5, 2, 6, 11, 3, 8, 4, 1, 9, 2, 4, 7, 11, 3, 1, 5, 2, 3, 9, 1, 5, 7, 3, 9, 6, 1, 2, 4, 1, 3, 9, 2, 6, 5, 9, 2, 1, 3, 11, 2, 1, 3, 2, 8, 9, 3, 5, 2, 4, 10, 5, 2, 1, 9, 4, 2, 1, 4, 11, 7, 3, 2, 4, 3, 11, 2, 7, 1, 2, 3, 5, 11, 2, 1, 4, 3, 9, 1, 2, 3, 6, 11, 2, 1, 8, 2, 1, 8, 11, 3, 2, 1, 4, 3, 11, 1, 2, 7, 11, 6, 2, 5, 1, 3, 5, 10, 1, 3, 2, 9, 7, 6, 2, 4, 1, 11, 2, 5, 1, 2, 9, 3, 5, 2, 1, 3, 5, 11, 2, 3, 1, 2, 10, 4, 1, 2, 3, 9, 6, 7, 3, 6, 1, 3, 9, 4, 2, 3, 9, 5, 2, 1, 3, 7, 6, 9, 1, 2, 4, 11, 5, 1, 3, 2, 7, 11, 4, 3, 5, 11, 7, 1, 2, 4, 11, 3, 1, 4, 5, 8, 11, 2, 1, 3, 2, 11, 6, 4, 5, 2, 3, 6, 1, 3, 6, 11, 1, 3, 5, 2, 3, 4, 2, 3, 4, 8, 3, 1, 5, 2, 3, 11, 8, 2, 1, 3, 2, 1, 3, 8, 1, 3, 4, 2, 1, 3, 2, 1, 6, 7, 1, 2, 4, 1, 3, 6, 11, 1, 3, 8, 2, 4, 6, 2, 5, 1, 3, 2, 5, 4, 1, 7, 5, 3, 2, 4, 3, 6, 1, 2, 3, 5], 99 | [3, 7, 4, 1, 5, 11, 2, 1, 3, 4, 11, 2, 1, 3, 7, 2, 1, 11, 4, 5, 1, 9, 3, 7, 8, 1, 11, 3, 2, 1, 10, 3, 4, 1, 9, 2, 6, 4, 1, 5, 9, 2, 1, 4, 3, 11, 1, 4, 2, 3, 9, 1, 5, 7, 1, 4, 9, 2, 3, 4, 9, 2, 1, 3, 11, 6, 4, 1, 5, 11, 2, 3, 1, 10, 5, 3, 2, 11, 4, 5, 1, 2, 7, 11, 1, 3, 5, 9, 4, 8, 2, 1, 9, 3, 5, 8, 2, 1, 11, 7, 5, 6, 11, 1, 2, 3, 1, 2, 9, 3, 1, 2, 9, 8, 1, 2, 3, 6, 9, 7, 2, 1, 4, 10, 3, 1, 6, 2, 11, 4, 1, 2, 5, 9, 1, 7, 2, 9, 1, 3, 2, 1, 3, 9, 5, 8, 2, 4, 9, 1, 2, 4, 1, 11, 2, 5, 1, 11, 2, 6, 1, 11, 2, 8, 7, 9, 1, 8, 3, 2, 11, 1, 5, 4, 8, 3, 11, 1, 6, 7, 2, 3, 11, 1, 2, 6, 5, 11, 1, 4, 2, 1, 11, 5, 4, 1, 9, 8, 4, 1, 9, 3, 7, 6, 3, 1, 2, 7, 2, 5, 2, 6, 1, 3, 4, 1, 3, 2, 5, 1, 4, 5, 1, 3, 7, 1, 2, 11, 4, 3, 1, 4, 2, 3, 5, 11, 1, 2, 6, 1, 3, 6, 2, 1, 6, 4, 1, 2, 8, 3, 1, 4, 2, 1, 8, 2, 1, 6, 3, 1, 6, 2, 5, 11, 6, 1, 7, 2, 1, 5, 2, 8, 1, 5, 3, 2, 5, 1, 2, 4, 1, 3, 7, 4, 1, 2], 100 | [1, 8, 1, 3, 2, 11, 1, 2, 5, 9, 3, 1, 2, 6, 1, 2, 10, 3, 1, 2, 9, 3, 1, 2, 3, 11, 4, 2, 1, 9, 5, 4, 1, 11, 7, 5, 1, 2, 4, 11, 1, 2, 3, 8, 9, 1, 4, 7, 5, 9, 2, 3, 4, 9, 5, 1, 6, 2, 11, 5, 3, 1, 11, 4, 6, 1, 9, 2, 8, 1, 10, 6, 2, 1, 3, 2, 10, 1, 3, 4, 11, 1, 5, 4, 1, 9, 3, 2, 5, 3, 1, 9, 5, 2, 4, 11, 3, 2, 1, 11, 4, 3, 2, 9, 1, 5, 6, 8, 11, 2, 1, 6, 2, 9, 3, 7, 5, 11, 1, 4, 2, 1, 4, 9, 7, 3, 1, 6, 9, 7, 3, 1, 7, 11, 4, 2, 1, 11, 6, 2, 3, 9, 1, 2, 4, 5, 2, 9, 1, 4, 2, 3, 7, 9, 1, 2, 8, 9, 7, 1, 4, 7, 11, 1, 4, 5, 2, 1, 11, 3, 2, 1, 11, 3, 8, 7, 1, 9, 2, 4, 1, 11, 3, 5, 2, 1, 11, 8, 2, 1, 11, 7, 5, 2, 3, 11, 1, 4, 2, 1, 7, 11, 3, 8, 6, 4, 9, 1, 3, 4, 1, 3, 2, 1, 6, 2, 1, 4, 8, 1, 3, 5, 2, 1, 5, 2, 11, 1, 7, 5, 2, 3, 1, 2, 6, 1, 2, 5, 11, 1, 6, 3, 2, 1, 5, 8, 1, 4, 3, 1, 4, 3, 1, 4, 2, 1, 6, 4, 1, 5, 7, 1, 5, 3, 11, 4, 2, 5, 1, 8, 3, 2, 5, 3, 8, 2, 1, 4, 3, 6, 2, 1, 7, 6, 1, 2, 6, 2] 101 | ], 102 | "Free": [ 103 | [4, 5, 3, 1, 2, 5, 1, 2, 7, 5, 6, 1, 3, 4, 8, 1, 2, 4, 11, 3, 1, 2, 7, 4, 2, 3, 1, 2, 6, 8, 7, 2, 6, 1, 3, 2, 7, 11, 3, 2, 1, 5, 3, 1, 4, 3, 2, 1, 2, 4, 5, 1, 2, 4, 3, 2, 1, 11, 6, 5, 3, 1, 2, 4, 3, 1, 5, 6, 8, 3, 7, 1, 8, 3, 1, 4, 5, 1, 3, 11, 2, 5, 1, 4, 7, 1, 5, 6, 1, 2, 3, 5, 4, 3, 1, 5, 2, 1, 11, 3, 2, 1, 3, 2, 1, 5, 3, 1, 2, 7, 1, 6, 3, 4, 11, 2, 3, 1, 4, 2, 3, 5, 1, 6, 2, 1, 5, 2, 4, 1, 6, 2, 1, 6, 4, 11, 3, 1, 2, 5, 4, 2, 1, 4, 2, 5, 1, 2, 5, 3, 1, 4, 3, 1, 2, 11, 1, 3, 4, 1, 2, 6, 7, 2, 1, 6, 4, 2, 1, 7, 2, 3, 4, 2, 11, 1, 3, 2, 1, 3, 2, 4, 3, 1, 4, 6, 1, 2, 7, 1, 3, 2, 11, 7, 1, 5, 6, 4, 1, 2, 3, 1, 4, 2, 1, 7, 4, 1, 2, 11, 7, 1, 2, 4, 3, 1, 6, 8, 3, 2, 1, 6, 2, 7, 1, 6, 3, 1, 2, 5, 1, 2, 4, 7, 1, 2, 3, 5, 1, 8, 3, 1, 2, 3, 1, 2, 8, 1, 2, 6, 1, 2, 3, 1, 2], 104 | [5, 1, 6, 2, 3, 1, 2, 6, 5, 1, 2, 6, 1, 2, 3, 1, 2, 3, 6, 2, 3, 11, 1, 2, 3, 1, 7, 4, 2, 1, 7, 4, 1, 2, 7, 3, 1, 4, 6, 5, 8, 2, 4, 1, 2, 11, 4, 5, 1, 2, 3, 1, 6, 8, 1, 4, 2, 5, 6, 4, 3, 1, 11, 2, 6, 1, 4, 3, 1, 2, 4, 1, 3, 2, 1, 4, 7, 2, 3, 1, 5, 4, 1, 2, 8, 1, 11, 3, 1, 2, 1, 3, 5, 6, 1, 8, 5, 3, 1, 4, 2, 1, 3, 1, 11, 2, 4, 1, 2, 3, 8, 1, 3, 2, 4, 6, 2, 4, 1, 2, 3, 7, 1, 4, 11, 2, 3, 1, 2, 6, 3, 5, 1, 2, 6, 1, 3, 2, 1, 4, 7, 2, 1, 5, 11, 2, 6, 3, 2, 1, 3, 4, 5, 1, 2, 4, 1, 3, 1, 4, 1, 7, 4, 2, 6, 11, 1, 2, 3, 8, 1, 4, 2, 1, 7, 1, 2, 8, 3, 11, 6, 1, 2, 6, 4, 1, 7, 3, 1, 6, 2, 1, 7, 3, 1, 8, 4, 1, 11, 3, 4, 1, 2, 5, 3, 1, 2, 5, 1, 2, 3, 1, 5, 4, 3, 2, 6, 11, 1, 8, 2, 3, 1, 2, 5, 3, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 1, 5, 2, 1, 5, 3, 1, 5, 3, 1, 2, 5, 1, 2, 5, 1, 2], 105 | [4, 2, 3, 6, 1, 3, 4, 1, 3, 4, 5, 8, 2, 4, 7, 2, 3, 5, 1, 4, 5, 11, 3, 6, 2, 7, 6, 3, 4, 5, 2, 3, 6, 2, 1, 3, 4, 5, 11, 3, 4, 8, 2, 1, 3, 2, 4, 1, 2, 3, 6, 1, 4, 6, 5, 1, 2, 4, 7, 11, 2, 3, 4, 5, 3, 6, 2, 1, 7, 4, 3, 2, 1, 3, 2, 7, 3, 2, 11, 4, 1, 2, 5, 1, 2, 3, 1, 2, 4, 3, 2, 5, 3, 2, 5, 1, 3, 2, 11, 4, 6, 5, 3, 1, 4, 5, 2, 1, 3, 4, 2, 1, 3, 5, 1, 3, 6, 2, 11, 7, 3, 2, 1, 3, 4, 2, 3, 8, 1, 6, 3, 5, 1, 2, 8, 11, 3, 2, 1, 5, 2, 3, 8, 2, 1, 3, 5, 2, 1, 7, 8, 6, 1, 2, 4, 1, 2, 11, 3, 1, 2, 6, 3, 2, 5, 3, 2, 1, 7, 3, 5, 2, 4, 11, 3, 2, 8, 5, 2, 4, 5, 3, 1, 4, 2, 3, 1, 6, 3, 1, 2, 11, 3, 1, 6, 2, 7, 1, 2, 5, 1, 7, 2, 1, 4, 2, 3, 11, 1, 2, 3, 1, 2, 7, 1, 3, 6, 1, 5, 3, 1, 2, 4, 3, 1, 6, 2, 3, 4, 7, 3, 2, 1, 4, 5, 2, 1, 4, 2, 1, 3, 2, 1, 3, 2, 1, 3, 2, 8, 1, 5, 8, 1, 2, 3], 106 | [1, 3, 5, 1, 4, 7, 2, 8, 1, 5, 2, 3, 1, 2, 7, 6, 4, 1, 11, 2, 3, 1, 4, 2, 1, 3, 4, 1, 6, 2, 11, 1, 5, 6, 2, 1, 6, 2, 3, 4, 2, 3, 1, 11, 4, 6, 7, 4, 3, 1, 6, 2, 5, 8, 7, 2, 3, 11, 1, 2, 3, 1, 2, 4, 1, 3, 2, 5, 4, 1, 3, 5, 11, 7, 3, 5, 2, 1, 8, 2, 1, 3, 4, 1, 11, 2, 3, 1, 4, 2, 1, 7, 3, 2, 5, 7, 1, 8, 11, 5, 2, 1, 3, 4, 2, 1, 5, 8, 1, 4, 5, 2, 4, 1, 11, 2, 8, 1, 3, 2, 1, 4, 2, 1, 3, 5, 1, 4, 3, 1, 2, 3, 11, 6, 2, 3, 1, 2, 5, 1, 3, 2, 1, 7, 4, 3, 1, 11, 2, 4, 1, 5, 2, 1, 6, 3, 2, 4, 5, 1, 8, 5, 3, 11, 4, 6, 3, 1, 2, 5, 3, 6, 1, 3, 5, 2, 1, 8, 11, 2, 7, 1, 6, 4, 1, 3, 2, 4, 1, 7, 4, 1, 2, 7, 11, 1, 2, 3, 1, 4, 2, 5, 1, 2, 3, 1, 2, 6, 7, 1, 3, 8, 1, 2, 8, 1, 6, 4, 2, 1, 7, 2, 1, 3, 8, 2, 1, 5, 3, 1, 6, 5, 4, 6, 1, 2, 4, 1, 5, 6, 1, 8, 4, 1, 2, 7, 1, 5, 3, 1, 2, 7, 1, 5, 2], 107 | [5, 1, 2, 6, 5, 2, 1, 7, 2, 1, 4, 3, 2, 11, 7, 1, 4, 7, 6, 1, 5, 4, 2, 7, 3, 1, 5, 11, 2, 1, 3, 2, 1, 4, 8, 6, 1, 5, 4, 1, 11, 2, 4, 5, 2, 1, 6, 3, 1, 8, 2, 3, 1, 8, 6, 5, 1, 4, 11, 3, 5, 2, 1, 3, 4, 2, 1, 3, 5, 1, 11, 1, 2, 4, 3, 2, 1, 5, 7, 2, 3, 1, 4, 2, 1, 11, 3, 5, 1, 2, 4, 3, 1, 5, 8, 1, 5, 6, 7, 1, 3, 2, 11, 1, 7, 3, 5, 2, 1, 5, 2, 1, 6, 5, 2, 11, 7, 1, 4, 3, 2, 1, 4, 7, 2, 6, 1, 3, 11, 4, 5, 2, 1, 4, 2, 1, 5, 8, 3, 2, 1, 4, 3, 8, 1, 11, 2, 3, 8, 5, 3, 4, 1, 2, 8, 4, 2, 1, 11, 5, 3, 6, 4, 1, 2, 3, 1, 4, 2, 1, 11, 6, 2, 4, 8, 1, 3, 4, 1, 2, 6, 4, 2, 1, 3, 5, 2, 4, 11, 7, 1, 2, 3, 7, 6, 1, 2, 3, 6, 1, 4, 7, 1, 2, 6, 11, 5, 1, 7, 2, 1, 5, 8, 1, 2, 3, 7, 1, 3, 2, 1, 8, 2, 1, 6, 2, 1, 3, 4, 1, 2, 3, 1, 4, 3, 1, 2, 5, 7, 1, 3, 2, 1, 8, 2, 1, 4, 3, 1, 2, 3, 1, 2, 6, 1, 3] 108 | ], 109 | "Game": { 110 | "Probs": [0, 60, 80, 100], 111 | "Reward": [[301960, 0, 0], [409950, 5, 5], [94963, 10, 10], [21998, 20, 20], [13737, 25, 25], [9350, 30, 30], [5095, 40, 40], [3182, 50, 50], [1564, 70, 70], [920, 90, 90], [0, 100, 100], [0, 120, 120], [0, 200, 200], [0, 220, 220], [0, 500, 500], [0, 505, 505], [0, 510, 510], [0, 520, 520], [0, 550, 550], [0, 570, 570], [0, 600, 600], [0, 700, 700]] 112 | }, 113 | "JackPot": { 114 | "Reward": [10, 20, 40] 115 | } 116 | } 117 | } 118 | -------------------------------------------------------------------------------- /game-server/dist/config/mary_slot/HappyFruit_3.json: -------------------------------------------------------------------------------- 1 | { 2 | "PlatformRatio": 0, 3 | "HandselRatio": 50, 4 | "RoomRatio": 20, 5 | "Bet": [10000,20000,30000,40000,50000,60000,70000,80000,90000,100000], 6 | "PullInterval": 0, 7 | "IsRecordLog": 1, 8 | "nFreeTime": 0, 9 | "NoticeMulti": 50, 10 | "NoticeWord": "恭喜玩家[%s]在[水果玛丽-精英场]财运大爆发,赢得%d倍奖励!", 11 | "NoticeHandsel": "恭喜玩家[%s]在[水果玛丽-精英场]财运大爆发,赢得%I64d奖池奖励!", 12 | "ControlLevel":{ 13 | "1": [1, 100, [0, 0, 0, 0, 0], [100, 50]], 14 | "200": [1, 75, [0, 0, 0, 0, 0], [100, 50]], 15 | "300": [1, 50, [0, 0, 0, 0, 0], [100, 50]], 16 | "400": [1, 25, [0, 0, 0, 0, 0], [100, 50]], 17 | "500": [2, 100, [0, 0, 0, 0, 100], [100, 450]], 18 | "600": [3, 25, [0, 0, 0, 100], [100, 1500]], 19 | "700": [3, 50, [0, 0, 0, 100], [100, 1500]], 20 | "800": [3, 75, [0, 0, 0, 100], [100, 1500]], 21 | "1000": [3, 100, [0, 0, 0, 100], [100, 1500]] 22 | }, 23 | 24 | "RoomControl": { 25 | "Init": 64000000, 26 | "Level_Range": [ 27 | [1, 0, 9000000], 28 | [200, 9000000, 18000000], 29 | [300, 18000000, 36000000], 30 | [500, 36000000, 72000000], 31 | [600, 72000000, 90000000], 32 | [700, 90000000, 108000000], 33 | [800, 108000000, 9999999999] 34 | ] 35 | }, 36 | 37 | "StoreForUserNet": { 38 | "InterveneTime": 0, 39 | "HighStore": [10, 600, 10, 250000000, 250000000], 40 | "LowStore": [90, 400, 10, 20000000, 20000000] 41 | }, 42 | 43 | "Set_1": { 44 | "SetId": 1, 45 | "Normal": [ 46 | [2, 1, 3, 2, 1, 3, 2, 6, 3, 1, 6, 4, 1, 3, 7, 1, 2, 3, 6, 1, 5, 2, 3, 1, 2, 6, 3, 1, 2, 4, 1, 5, 2, 3, 1, 4, 2, 1, 3, 2, 1, 4, 7, 2, 3, 6, 1, 2, 7, 4, 6, 2, 1, 6, 2, 1, 4, 2, 7, 3, 2, 1, 6, 3, 5, 1, 2, 4, 1, 7, 6, 3, 8, 1, 2, 4, 5, 2, 6, 1, 2, 4, 5, 2, 3, 1, 4, 3, 2, 1, 4, 2, 5, 1, 2, 7, 6, 4, 1, 5, 3, 1, 7, 1, 2, 5, 4, 3, 2, 5, 1, 7, 3, 1, 2, 4, 1, 2, 6, 5, 1, 3, 2, 5, 1, 4, 3, 1, 2, 8, 5, 3, 1, 8, 4, 3, 6, 1, 2, 4, 3, 2, 1, 4, 6, 1, 2, 3, 7, 1, 2, 4, 3, 2, 1, 7, 6, 1, 2, 1, 3, 4, 2, 3, 1, 2, 3, 1, 2, 3, 7, 1, 4, 5, 3, 1, 2, 5, 3, 1, 4, 6, 8, 3, 1, 7, 4, 2, 5, 1, 4, 2, 1, 5, 2, 1, 6, 2, 1, 5, 2, 1, 4, 7, 1, 3, 4, 1, 3, 6, 1, 3, 2, 1, 3, 4, 1, 2, 5, 1, 7, 4, 2, 1, 5, 2, 1, 8, 2, 1, 5, 2, 3, 8, 2, 1, 3, 8, 1, 3, 7, 2, 1, 5], 47 | [1, 8, 2, 4, 7, 2, 1, 5, 4, 2, 3, 5, 1, 4, 2, 1, 4, 7, 5, 6, 1, 2, 3, 1, 2, 3, 6, 2, 3, 5, 2, 1, 3, 2, 1, 5, 4, 6, 1, 2, 3, 1, 4, 3, 1, 4, 5, 6, 1, 2, 3, 8, 2, 1, 6, 3, 1, 2, 8, 1, 7, 4, 6, 1, 2, 3, 1, 2, 3, 5, 4, 1, 2, 3, 1, 2, 4, 5, 1, 6, 3, 1, 2, 4, 1, 5, 2, 4, 1, 7, 8, 3, 1, 5, 7, 1, 4, 6, 1, 2, 4, 1, 3, 2, 1, 3, 5, 1, 2, 5, 4, 1, 3, 5, 1, 3, 5, 7, 1, 3, 8, 4, 1, 2, 4, 3, 1, 2, 5, 3, 4, 2, 1, 6, 2, 1, 3, 2, 1, 3, 2, 1, 5, 3, 2, 1, 3, 4, 2, 1, 3, 6, 1, 4, 6, 1, 2, 8, 1, 3, 2, 1, 4, 2, 1, 5, 8, 2, 1, 3, 4, 2, 1, 3, 2, 6, 1, 3, 2, 1, 3, 4, 1, 2, 6, 1, 2, 5, 1, 3, 2, 1, 3, 2, 1, 5, 2, 6, 1, 2, 6, 4, 1, 2, 6, 1, 2, 7, 1, 2, 4, 1, 2, 3, 4, 1, 2, 4, 6, 3, 2, 1, 7, 3, 1, 8, 5, 2, 1, 6, 3, 1, 2, 7, 1, 3, 5, 1, 3, 2, 1, 7, 8, 1, 4, 2], 48 | [2, 1, 4, 2, 3, 1, 2, 7, 3, 2, 6, 4, 3, 1, 8, 3, 2, 1, 3, 6, 1, 3, 7, 2, 3, 4, 2, 1, 4, 3, 1, 2, 4, 6, 2, 8, 3, 4, 5, 1, 2, 3, 1, 7, 6, 3, 1, 5, 3, 2, 1, 3, 4, 5, 3, 1, 7, 4, 3, 1, 4, 2, 6, 1, 4, 5, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 5, 2, 4, 6, 3, 5, 2, 4, 1, 5, 3, 2, 1, 6, 4, 2, 3, 1, 6, 3, 1, 5, 4, 2, 5, 3, 4, 1, 8, 2, 1, 5, 2, 6, 1, 2, 4, 1, 2, 3, 1, 2, 5, 1, 2, 3, 4, 2, 3, 1, 4, 2, 6, 4, 2, 3, 1, 7, 3, 5, 1, 2, 8, 3, 4, 5, 2, 3, 7, 2, 3, 5, 2, 6, 3, 4, 5, 8, 3, 6, 2, 4, 5, 1, 3, 7, 2, 3, 1, 4, 2, 1, 5, 3, 2, 8, 4, 2, 1, 3, 5, 1, 2, 5, 3, 2, 6, 7, 2, 3, 1, 2, 3, 4, 1, 2, 5, 8, 3, 1, 2, 5, 1, 2, 5, 7, 2, 1, 3, 2, 1, 3, 2, 1, 3, 5, 6, 3, 2, 8, 1, 6, 7, 2, 3, 1, 2, 4, 1, 2, 3, 4, 2, 5, 3, 8, 2, 3, 1, 4, 7, 2, 1, 3, 2, 7, 3, 6], 49 | [4, 1, 5, 8, 4, 1, 2, 4, 1, 2, 3, 4, 1, 5, 2, 1, 4, 6, 1, 8, 3, 4, 5, 2, 3, 7, 6, 2, 3, 4, 5, 1, 2, 5, 1, 3, 2, 6, 8, 2, 5, 1, 2, 5, 1, 4, 7, 1, 2, 7, 1, 2, 4, 5, 1, 2, 7, 1, 3, 2, 1, 7, 3, 1, 2, 8, 6, 1, 5, 3, 2, 1, 4, 3, 1, 2, 4, 1, 6, 3, 1, 5, 4, 1, 6, 2, 4, 1, 3, 2, 5, 1, 8, 1, 2, 3, 1, 2, 3, 1, 5, 2, 3, 1, 2, 3, 1, 4, 3, 1, 5, 7, 2, 1, 5, 2, 4, 1, 2, 6, 5, 1, 2, 3, 6, 2, 1, 4, 2, 1, 4, 2, 8, 1, 4, 6, 1, 4, 6, 3, 5, 7, 1, 2, 4, 3, 1, 7, 3, 8, 2, 1, 7, 3, 1, 6, 4, 2, 3, 1, 7, 6, 2, 1, 4, 5, 3, 2, 8, 1, 2, 5, 1, 2, 3, 1, 6, 3, 1, 4, 3, 5, 2, 7, 3, 5, 1, 4, 3, 1, 2, 7, 5, 2, 1, 3, 5, 8, 1, 2, 4, 5, 1, 2, 3, 1, 7, 6, 5, 2, 1, 6, 7, 1, 2, 3, 1, 2, 6, 1, 2, 3, 4, 1, 2, 3, 1, 8, 3, 1, 4, 7, 1, 2, 3, 8, 1, 2, 8, 4, 1, 2], 50 | [6, 8, 1, 4, 2, 1, 7, 2, 3, 1, 7, 5, 2, 1, 5, 3, 2, 1, 4, 5, 3, 2, 7, 3, 5, 6, 1, 2, 3, 1, 8, 2, 1, 3, 5, 1, 4, 2, 1, 8, 2, 4, 7, 3, 1, 2, 6, 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 1, 2, 4, 1, 5, 8, 3, 2, 4, 3, 2, 1, 5, 4, 3, 1, 4, 5, 2, 1, 4, 5, 3, 2, 1, 5, 2, 3, 1, 4, 5, 1, 4, 6, 2, 1, 4, 2, 1, 3, 7, 4, 3, 2, 1, 6, 3, 2, 4, 1, 3, 2, 1, 5, 6, 4, 1, 5, 7, 1, 4, 5, 2, 7, 1, 4, 3, 1, 5, 2, 1, 8, 2, 1, 6, 5, 7, 3, 1, 2, 6, 3, 1, 4, 3, 8, 6, 1, 2, 6, 5, 3, 1, 2, 4, 1, 7, 2, 1, 5, 2, 1, 3, 2, 1, 7, 2, 3, 1, 2, 6, 1, 5, 2, 1, 3, 6, 2, 3, 7, 2, 1, 8, 3, 1, 2, 3, 4, 1, 5, 2, 1, 6, 3, 5, 2, 1, 8, 7, 2, 1, 4, 1, 2, 6, 8, 1, 2, 4, 1, 3, 4, 1, 2, 8, 4, 2, 1, 7, 3, 1, 8, 3, 1, 2, 4, 3, 1, 5, 2, 1, 7, 4, 1, 3, 5, 1, 6, 8, 1, 6, 7, 1, 2] 51 | ], 52 | "Free": [ 53 | [1, 5, 6, 3, 1, 7, 8, 2, 1, 3, 2, 1, 6, 3, 2, 4, 1, 2, 7, 6, 4, 5, 2, 3, 1, 5, 2, 3, 1, 2, 3, 1, 2, 3, 1, 6, 3, 2, 1, 6, 4, 2, 3, 6, 1, 5, 2, 3, 1, 2, 6, 1, 3, 2, 1, 5, 2, 1, 4, 7, 1, 5, 2, 7, 1, 2, 3, 6, 4, 1, 2, 4, 1, 5, 3, 1, 5, 2, 7, 5, 2, 6, 3, 2, 4, 5, 1, 3, 2, 4, 3, 2, 1, 3, 2, 8, 1, 2, 6, 1, 4, 3, 1, 5, 7, 2, 1, 3, 6, 4, 1, 2, 3, 1, 2, 5, 7, 1, 3, 4, 7, 1, 3, 4, 1, 2, 6, 1, 2, 3, 1, 5, 2, 4, 1, 3, 2, 1, 3, 2, 1, 4, 3, 7, 1, 2, 3, 6, 7, 2, 1, 4, 2, 1, 4, 2, 1, 3, 5, 1, 4, 3, 1, 2, 7, 4, 2, 5, 1, 2, 4, 1, 2, 4, 1, 3, 6, 2, 1, 8, 2, 1, 3, 2, 1, 5, 2, 8, 1, 3, 4, 2, 5, 1, 4, 2, 1, 4, 8, 1, 3, 7, 1, 5, 3, 6, 1, 3, 2, 1, 7, 2, 5, 8, 4, 2, 1, 4, 3, 1, 7, 8, 3, 6, 4, 2, 1, 4, 6, 1, 3, 2, 1, 5, 3, 1, 6, 4, 1, 2, 7, 1, 5, 2], 54 | [1, 4, 5, 1, 7, 2, 1, 3, 4, 5, 6, 2, 1, 3, 2, 1, 3, 2, 1, 4, 3, 1, 4, 3, 1, 8, 2, 1, 4, 6, 2, 1, 6, 2, 1, 4, 6, 2, 3, 6, 2, 1, 4, 2, 1, 4, 2, 1, 8, 2, 6, 3, 4, 2, 1, 5, 2, 1, 3, 2, 1, 3, 2, 4, 1, 6, 3, 1, 8, 4, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 6, 5, 4, 1, 3, 2, 1, 3, 4, 1, 6, 2, 4, 1, 7, 2, 4, 6, 2, 1, 3, 5, 1, 3, 2, 1, 3, 4, 1, 2, 3, 1, 5, 2, 1, 3, 5, 2, 1, 7, 3, 6, 1, 4, 1, 2, 1, 5, 4, 1, 8, 4, 1, 3, 2, 1, 3, 6, 1, 5, 6, 2, 5, 8, 1, 7, 4, 2, 1, 5, 2, 6, 1, 5, 2, 3, 1, 7, 5, 1, 3, 5, 1, 2, 8, 3, 1, 2, 5, 1, 2, 1, 4, 1, 3, 2, 1, 7, 2, 1, 3, 6, 2, 1, 6, 2, 5, 8, 1, 7, 3, 2, 1, 3, 2, 7, 4, 8, 1, 3, 2, 1, 7, 2, 5, 1, 3, 4, 2, 8, 1, 2, 4, 3, 6, 5, 2, 1, 3, 5, 2, 3, 4, 2, 1, 6, 3, 1, 2, 4, 1, 7, 2, 1, 5, 4, 3, 1, 2, 4, 1, 3, 5, 1, 2, 3], 55 | [2, 3, 1, 7, 2, 5, 3, 1, 4, 3, 2, 1, 3, 5, 4, 2, 3, 1, 4, 6, 3, 2, 4, 1, 5, 3, 6, 1, 3, 8, 4, 1, 3, 2, 4, 3, 6, 1, 8, 4, 1, 2, 3, 4, 1, 2, 3, 1, 2, 3, 5, 6, 2, 1, 4, 6, 1, 2, 3, 1, 4, 3, 1, 7, 3, 5, 2, 1, 5, 8, 2, 4, 6, 1, 2, 3, 5, 7, 2, 3, 1, 2, 3, 5, 2, 4, 1, 3, 4, 6, 2, 4, 1, 2, 3, 1, 2, 4, 3, 1, 4, 5, 1, 3, 2, 4, 1, 2, 3, 4, 2, 3, 1, 5, 2, 1, 3, 2, 1, 5, 8, 2, 3, 1, 2, 5, 1, 3, 2, 4, 1, 5, 2, 3, 5, 6, 2, 1, 4, 6, 7, 3, 5, 4, 1, 5, 7, 2, 3, 1, 2, 7, 1, 2, 5, 7, 3, 4, 2, 3, 8, 5, 2, 1, 3, 4, 2, 6, 3, 4, 2, 7, 5, 6, 1, 2, 5, 1, 7, 3, 2, 5, 3, 2, 1, 4, 2, 3, 1, 2, 3, 6, 2, 7, 3, 2, 1, 3, 8, 2, 5, 4, 1, 2, 8, 3, 2, 4, 8, 2, 6, 3, 1, 7, 2, 1, 3, 7, 2, 3, 6, 2, 3, 1, 2, 6, 1, 8, 3, 1, 2, 3, 5, 6, 2, 3, 4, 2, 5, 3, 1, 2, 3, 1], 56 | [5, 1, 2, 7, 5, 2, 1, 3, 2, 1, 4, 8, 3, 1, 2, 6, 8, 4, 1, 2, 3, 1, 8, 4, 2, 1, 3, 2, 1, 3, 4, 1, 5, 2, 1, 4, 2, 1, 7, 1, 3, 6, 2, 1, 4, 5, 1, 2, 5, 1, 4, 3, 2, 6, 4, 2, 1, 3, 4, 2, 1, 3, 5, 4, 1, 2, 8, 1, 2, 4, 5, 2, 4, 3, 1, 2, 8, 1, 2, 7, 1, 4, 6, 1, 3, 5, 2, 7, 4, 1, 7, 2, 1, 3, 4, 1, 6, 2, 1, 3, 5, 2, 7, 5, 1, 2, 4, 1, 3, 5, 1, 6, 4, 2, 3, 4, 5, 1, 3, 2, 6, 1, 2, 7, 1, 2, 3, 1, 5, 3, 1, 5, 8, 4, 1, 7, 2, 3, 1, 4, 2, 6, 1, 2, 3, 5, 1, 2, 3, 4, 5, 8, 1, 3, 8, 1, 2, 5, 4, 1, 2, 8, 1, 3, 4, 1, 5, 6, 1, 3, 7, 1, 2, 5, 6, 2, 7, 1, 8, 5, 2, 4, 7, 2, 4, 3, 6, 7, 5, 2, 3, 1, 2, 3, 4, 1, 5, 1, 3, 1, 2, 7, 1, 3, 7, 1, 6, 2, 1, 6, 3, 1, 6, 3, 1, 5, 2, 1, 3, 2, 5, 1, 8, 2, 3, 1, 8, 2, 1, 7, 2, 1, 4, 6, 1, 3, 2, 1, 6, 2, 4, 3], 57 | [1, 2, 5, 1, 4, 2, 3, 4, 1, 5, 7, 1, 2, 8, 4, 2, 6, 1, 2, 3, 1, 5, 2, 3, 6, 4, 3, 8, 1, 5, 2, 4, 3, 1, 7, 6, 1, 2, 4, 1, 8, 2, 1, 4, 6, 3, 5, 4, 1, 2, 7, 6, 2, 7, 1, 4, 5, 3, 2, 1, 3, 1, 4, 5, 2, 1, 3, 2, 5, 3, 1, 5, 3, 6, 1, 2, 4, 1, 7, 4, 6, 1, 5, 2, 1, 7, 2, 4, 1, 5, 2, 3, 6, 2, 1, 4, 2, 3, 6, 2, 4, 1, 7, 5, 2, 6, 1, 5, 8, 2, 1, 3, 4, 1, 3, 1, 2, 4, 1, 7, 2, 1, 3, 8, 1, 5, 2, 3, 5, 1, 4, 6, 2, 3, 1, 2, 7, 1, 5, 2, 4, 3, 2, 4, 7, 1, 2, 3, 1, 2, 3, 8, 1, 3, 2, 1, 7, 2, 1, 6, 3, 2, 8, 3, 5, 2, 1, 5, 3, 1, 2, 7, 1, 5, 3, 1, 2, 4, 1, 2, 7, 1, 2, 4, 1, 2, 6, 1, 2, 4, 1, 8, 4, 1, 2, 3, 6, 1, 8, 3, 1, 8, 2, 1, 4, 2, 3, 1, 4, 3, 1, 2, 5, 1, 3, 6, 1, 3, 5, 1, 2, 3, 1, 7, 5, 1, 3, 2, 1, 7, 3, 1, 2, 8, 1, 5, 4, 6, 1, 4, 8, 5] 58 | ], 59 | "Game": { 60 | "Probs": [100, 100, 100], 61 | "Reward": [[301960, 0, 0], [409950, 5, 5], [94963, 10, 10], [21998, 20, 20], [13737, 25, 25], [9350, 30, 30], [5095, 40, 40], [3182, 50, 50], [1564, 70, 70], [920, 90, 90], [0, 100, 100], [0, 120, 120], [0, 200, 200], [0, 220, 220], [0, 500, 500], [0, 505, 505], [0, 510, 510], [0, 520, 520], [0, 550, 550], [0, 570, 570], [0, 600, 600], [0, 700, 700]] 62 | }, 63 | "JackPot": { 64 | "Reward": [10, 20, 40] 65 | } 66 | }, 67 | 68 | "Set_2": { 69 | "SetId": 2, 70 | "Normal": [ 71 | [8, 3, 2, 4, 1, 2, 9, 7, 3, 1, 7, 3, 1, 2, 10, 6, 1, 2, 3, 5, 2, 1, 3, 7, 5, 11, 2, 6, 3, 2, 1, 3, 9, 1, 2, 4, 1, 3, 2, 1, 4, 6, 11, 1, 4, 2, 1, 5, 3, 2, 4, 11, 1, 6, 5, 4, 1, 2, 10, 3, 6, 5, 2, 1, 3, 2, 4, 8, 9, 1, 7, 5, 2, 7, 9, 1, 3, 2, 8, 1, 3, 2, 6, 3, 2, 9, 5, 3, 7, 2, 4, 11, 3, 1, 5, 2, 1, 6, 11, 2, 4, 1, 5, 2, 6, 1, 2, 4, 10, 3, 2, 5, 1, 2, 4, 1, 9, 2, 6, 3, 2, 1, 5, 6, 1, 4, 9, 2, 1, 5, 3, 4, 11, 2, 1, 3, 1, 2, 3, 1, 11, 4, 1, 5, 3, 1, 2, 5, 1, 2, 9, 7, 1, 3, 2, 5, 9, 4, 2, 1, 3, 5, 8, 1, 11, 2, 4, 1, 7, 3, 1, 2, 6, 11, 4, 5, 2, 1, 7, 6, 1, 11, 3, 4, 1, 2, 3, 1, 9, 8, 4, 1, 2, 3, 1, 9, 2, 4, 3, 6, 1, 11, 4, 5, 2, 6, 7, 3, 9, 1, 2, 8, 3, 1, 4, 5, 1, 6, 4, 3, 1, 2, 3, 1, 7, 8, 1, 7, 2, 5, 1, 6, 4, 1, 3, 2, 1, 7, 4, 1, 2, 4, 1, 3, 6, 1, 2, 7, 1, 2, 6, 1, 2, 5, 7, 2, 1, 3, 2, 1, 4, 3, 1, 4, 3, 1, 2, 3, 1, 2], 72 | [8, 2, 1, 3, 8, 1, 11, 6, 5, 1, 6, 3, 1, 10, 4, 3, 1, 2, 4, 11, 8, 1, 3, 6, 5, 1, 11, 4, 5, 2, 1, 3, 2, 1, 3, 2, 1, 9, 6, 1, 2, 3, 7, 2, 1, 4, 9, 8, 3, 1, 2, 1, 5, 11, 1, 2, 5, 3, 2, 9, 1, 3, 6, 2, 1, 5, 2, 4, 1, 3, 9, 1, 5, 3, 1, 2, 4, 6, 10, 1, 2, 4, 1, 6, 11, 7, 1, 3, 2, 4, 1, 2, 3, 9, 1, 6, 5, 2, 3, 1, 10, 2, 5, 3, 1, 2, 9, 5, 8, 2, 6, 8, 1, 4, 2, 3, 9, 6, 2, 4, 5, 3, 2, 9, 1, 5, 2, 1, 8, 4, 1, 11, 3, 2, 1, 3, 5, 11, 4, 1, 2, 3, 5, 2, 1, 3, 11, 1, 2, 6, 1, 3, 11, 4, 1, 2, 1, 3, 4, 1, 8, 9, 2, 3, 7, 1, 2, 3, 4, 1, 3, 9, 2, 1, 4, 3, 2, 9, 4, 1, 3, 1, 6, 9, 2, 4, 1, 3, 2, 4, 1, 3, 11, 7, 2, 1, 4, 2, 1, 11, 4, 7, 1, 4, 5, 1, 4, 6, 7, 3, 1, 2, 3, 4, 1, 7, 6, 2, 5, 1, 7, 2, 1, 6, 4, 1, 2, 4, 1, 5, 3, 2, 1, 5, 2, 7, 6, 1, 4, 2, 3, 1, 6, 2, 4, 1, 2, 5, 1, 2, 8, 3, 1, 2, 6, 1, 2, 7, 1, 2, 3, 1, 5, 2, 1, 3, 2, 1, 3, 2, 1, 5], 73 | [7, 6, 3, 4, 7, 1, 9, 3, 2, 4, 1, 5, 6, 3, 9, 8, 4, 3, 2, 8, 1, 4, 2, 10, 7, 3, 1, 4, 2, 3, 9, 7, 2, 1, 3, 2, 5, 11, 3, 2, 1, 5, 2, 1, 4, 9, 8, 3, 1, 2, 7, 10, 4, 1, 5, 2, 6, 7, 11, 1, 2, 5, 3, 1, 11, 2, 3, 1, 2, 8, 6, 11, 1, 3, 4, 5, 2, 3, 1, 5, 9, 2, 1, 6, 4, 2, 3, 10, 1, 5, 7, 4, 6, 3, 5, 2, 9, 4, 2, 3, 2, 1, 4, 9, 2, 1, 3, 2, 7, 1, 2, 3, 9, 8, 1, 4, 5, 3, 9, 1, 6, 2, 4, 3, 2, 1, 11, 4, 3, 2, 1, 5, 6, 1, 2, 11, 3, 8, 5, 3, 2, 1, 4, 9, 3, 5, 1, 3, 6, 7, 3, 9, 2, 7, 4, 2, 3, 9, 4, 2, 1, 3, 2, 1, 2, 9, 5, 2, 3, 4, 2, 3, 5, 9, 1, 2, 4, 3, 8, 6, 11, 1, 8, 7, 2, 1, 11, 5, 3, 2, 1, 5, 2, 3, 1, 11, 2, 5, 3, 1, 2, 3, 1, 4, 11, 3, 1, 8, 5, 2, 3, 1, 11, 6, 3, 5, 7, 6, 4, 2, 5, 9, 4, 2, 1, 3, 4, 1, 3, 9, 2, 1, 3, 2, 4, 3, 1, 6, 3, 2, 1, 3, 2, 6, 3, 2, 1, 4, 2, 3, 6, 2, 1, 3, 5, 2, 1, 3, 2, 1, 5, 3, 2, 1, 4, 2, 3, 4, 2, 5, 3, 6, 2, 1], 74 | [2, 1, 5, 11, 1, 2, 6, 4, 1, 6, 9, 5, 3, 1, 5, 2, 11, 6, 1, 2, 4, 5, 9, 3, 4, 1, 2, 7, 4, 9, 3, 1, 4, 11, 8, 3, 1, 4, 2, 1, 11, 5, 7, 3, 6, 2, 11, 5, 1, 2, 5, 1, 9, 4, 8, 3, 1, 10, 4, 3, 1, 5, 2, 11, 3, 4, 1, 6, 2, 5, 9, 3, 1, 2, 8, 9, 1, 2, 3, 1, 6, 9, 4, 3, 7, 5, 2, 1, 7, 11, 6, 2, 1, 3, 2, 1, 10, 4, 6, 1, 2, 5, 9, 7, 2, 1, 5, 9, 3, 2, 1, 3, 2, 1, 4, 9, 3, 1, 4, 6, 1, 9, 7, 2, 1, 7, 3, 1, 2, 11, 1, 3, 4, 8, 9, 2, 1, 6, 3, 2, 5, 7, 11, 1, 3, 2, 1, 4, 3, 2, 10, 1, 3, 5, 2, 1, 9, 4, 8, 1, 2, 11, 4, 6, 2, 3, 11, 1, 5, 8, 1, 11, 6, 7, 2, 1, 9, 5, 8, 3, 2, 11, 4, 1, 7, 4, 1, 3, 9, 2, 1, 6, 4, 1, 3, 9, 2, 1, 3, 5, 1, 2, 3, 4, 1, 2, 3, 1, 7, 2, 4, 7, 2, 1, 3, 2, 1, 5, 4, 1, 2, 3, 4, 2, 1, 4, 7, 1, 6, 3, 1, 4, 3, 2, 5, 7, 1, 3, 4, 5, 1, 2, 6, 1, 2, 7, 1, 2, 5, 1, 8, 2, 1, 8, 2, 1, 8, 5, 2, 3, 1, 2, 5, 1, 2, 4, 1, 3, 8, 1, 2, 8, 6, 5], 75 | [2, 4, 1, 5, 2, 1, 6, 2, 9, 3, 5, 1, 2, 5, 4, 1, 2, 9, 5, 1, 3, 1, 2, 11, 7, 1, 3, 7, 1, 11, 6, 7, 1, 4, 3, 9, 2, 6, 1, 3, 6, 1, 2, 9, 7, 1, 2, 3, 7, 9, 4, 3, 1, 2, 11, 5, 1, 6, 8, 1, 2, 11, 4, 1, 8, 1, 2, 9, 5, 1, 2, 4, 3, 9, 7, 6, 1, 2, 5, 1, 3, 11, 2, 1, 3, 2, 5, 4, 11, 2, 5, 1, 7, 11, 3, 1, 4, 3, 5, 6, 1, 9, 5, 4, 2, 1, 5, 8, 4, 9, 1, 2, 3, 5, 11, 2, 1, 3, 2, 6, 3, 4, 11, 1, 2, 7, 4, 9, 3, 5, 8, 3, 5, 2, 9, 1, 6, 2, 7, 5, 1, 9, 3, 8, 2, 1, 4, 11, 3, 1, 2, 6, 1, 8, 2, 9, 4, 1, 2, 3, 1, 2, 4, 10, 1, 2, 7, 3, 2, 11, 1, 3, 2, 1, 9, 7, 4, 1, 6, 10, 3, 2, 1, 3, 4, 1, 2, 11, 7, 1, 2, 6, 4, 11, 3, 1, 2, 4, 3, 1, 10, 2, 4, 1, 5, 8, 2, 5, 9, 1, 2, 5, 8, 3, 4, 1, 9, 7, 6, 4, 1, 3, 5, 1, 9, 4, 5, 1, 6, 3, 4, 11, 1, 2, 8, 3, 4, 1, 5, 6, 4, 2, 1, 3, 8, 2, 1, 3, 2, 1, 8, 3, 2, 1, 3, 6, 1, 4, 2, 1, 4, 2, 1, 8, 2, 1, 5, 7, 1, 5, 2, 1, 7, 2, 1, 3] 76 | ], 77 | "Free": [ 78 | [4, 5, 3, 1, 2, 5, 1, 2, 7, 5, 6, 1, 3, 4, 8, 1, 2, 4, 11, 3, 1, 2, 7, 4, 2, 3, 1, 2, 6, 8, 7, 2, 6, 1, 3, 2, 7, 11, 3, 2, 1, 5, 3, 1, 4, 3, 2, 1, 2, 4, 5, 1, 2, 4, 3, 2, 1, 11, 6, 5, 3, 1, 2, 4, 3, 1, 5, 6, 8, 3, 7, 1, 8, 3, 1, 4, 5, 1, 3, 11, 2, 5, 1, 4, 7, 1, 5, 6, 1, 2, 3, 5, 4, 3, 1, 5, 2, 1, 11, 3, 2, 1, 3, 2, 1, 5, 3, 1, 2, 7, 1, 6, 3, 4, 11, 2, 3, 1, 4, 2, 3, 5, 1, 6, 2, 1, 5, 2, 4, 1, 6, 2, 1, 6, 4, 11, 3, 1, 2, 5, 4, 2, 1, 4, 2, 5, 1, 2, 5, 3, 1, 4, 3, 1, 2, 11, 1, 3, 4, 1, 2, 6, 7, 2, 1, 6, 4, 2, 1, 7, 2, 3, 4, 2, 11, 1, 3, 2, 1, 3, 2, 4, 3, 1, 4, 6, 1, 2, 7, 1, 3, 2, 11, 7, 1, 5, 6, 4, 1, 2, 3, 1, 4, 2, 1, 7, 4, 1, 2, 11, 7, 1, 2, 4, 3, 1, 6, 8, 3, 2, 1, 6, 2, 7, 1, 6, 3, 1, 2, 5, 1, 2, 4, 7, 1, 2, 3, 5, 1, 8, 3, 1, 2, 3, 1, 2, 8, 1, 2, 6, 1, 2, 3, 1, 2], 79 | [5, 1, 6, 2, 3, 1, 2, 6, 5, 1, 2, 6, 1, 2, 3, 1, 2, 3, 6, 2, 3, 11, 1, 2, 3, 1, 7, 4, 2, 1, 7, 4, 1, 2, 7, 3, 1, 4, 6, 5, 8, 2, 4, 1, 2, 11, 4, 5, 1, 2, 3, 1, 6, 8, 1, 4, 2, 5, 6, 4, 3, 1, 11, 2, 6, 1, 4, 3, 1, 2, 4, 1, 3, 2, 1, 4, 7, 2, 3, 1, 5, 4, 1, 2, 8, 1, 11, 3, 1, 2, 1, 3, 5, 6, 1, 8, 5, 3, 1, 4, 2, 1, 3, 1, 11, 2, 4, 1, 2, 3, 8, 1, 3, 2, 4, 6, 2, 4, 1, 2, 3, 7, 1, 4, 11, 2, 3, 1, 2, 6, 3, 5, 1, 2, 6, 1, 3, 2, 1, 4, 7, 2, 1, 5, 11, 2, 6, 3, 2, 1, 3, 4, 5, 1, 2, 4, 1, 3, 1, 4, 1, 7, 4, 2, 6, 11, 1, 2, 3, 8, 1, 4, 2, 1, 7, 1, 2, 8, 3, 11, 6, 1, 2, 6, 4, 1, 7, 3, 1, 6, 2, 1, 7, 3, 1, 8, 4, 1, 11, 3, 4, 1, 2, 5, 3, 1, 2, 5, 1, 2, 3, 1, 5, 4, 3, 2, 6, 11, 1, 8, 2, 3, 1, 2, 5, 3, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 1, 5, 2, 1, 5, 3, 1, 5, 3, 1, 2, 5, 1, 2, 5, 1, 2], 80 | [4, 2, 3, 6, 1, 3, 4, 1, 3, 4, 5, 8, 2, 4, 7, 2, 3, 5, 1, 4, 5, 11, 3, 6, 2, 7, 6, 3, 4, 5, 2, 3, 6, 2, 1, 3, 4, 5, 11, 3, 4, 8, 2, 1, 3, 2, 4, 1, 2, 3, 6, 1, 4, 6, 5, 1, 2, 4, 7, 11, 2, 3, 4, 5, 3, 6, 2, 1, 7, 4, 3, 2, 1, 3, 2, 7, 3, 2, 11, 4, 1, 2, 5, 1, 2, 3, 1, 2, 4, 3, 2, 5, 3, 2, 5, 1, 3, 2, 11, 4, 6, 5, 3, 1, 4, 5, 2, 1, 3, 4, 2, 1, 3, 5, 1, 3, 6, 2, 11, 7, 3, 2, 1, 3, 4, 2, 3, 8, 1, 6, 3, 5, 1, 2, 8, 11, 3, 2, 1, 5, 2, 3, 8, 2, 1, 3, 5, 2, 1, 7, 8, 6, 1, 2, 4, 1, 2, 11, 3, 1, 2, 6, 3, 2, 5, 3, 2, 1, 7, 3, 5, 2, 4, 11, 3, 2, 8, 5, 2, 4, 5, 3, 1, 4, 2, 3, 1, 6, 3, 1, 2, 11, 3, 1, 6, 2, 7, 1, 2, 5, 1, 7, 2, 1, 4, 2, 3, 11, 1, 2, 3, 1, 2, 7, 1, 3, 6, 1, 5, 3, 1, 2, 4, 3, 1, 6, 2, 3, 4, 7, 3, 2, 1, 4, 5, 2, 1, 4, 2, 1, 3, 2, 1, 3, 2, 1, 3, 2, 8, 1, 5, 8, 1, 2, 3], 81 | [1, 3, 5, 1, 4, 7, 2, 8, 1, 5, 2, 3, 1, 2, 7, 6, 4, 1, 11, 2, 3, 1, 4, 2, 1, 3, 4, 1, 6, 2, 11, 1, 5, 6, 2, 1, 6, 2, 3, 4, 2, 3, 1, 11, 4, 6, 7, 4, 3, 1, 6, 2, 5, 8, 7, 2, 3, 11, 1, 2, 3, 1, 2, 4, 1, 3, 2, 5, 4, 1, 3, 5, 11, 7, 3, 5, 2, 1, 8, 2, 1, 3, 4, 1, 11, 2, 3, 1, 4, 2, 1, 7, 3, 2, 5, 7, 1, 8, 11, 5, 2, 1, 3, 4, 2, 1, 5, 8, 1, 4, 5, 2, 4, 1, 11, 2, 8, 1, 3, 2, 1, 4, 2, 1, 3, 5, 1, 4, 3, 1, 2, 3, 11, 6, 2, 3, 1, 2, 5, 1, 3, 2, 1, 7, 4, 3, 1, 11, 2, 4, 1, 5, 2, 1, 6, 3, 2, 4, 5, 1, 8, 5, 3, 11, 4, 6, 3, 1, 2, 5, 3, 6, 1, 3, 5, 2, 1, 8, 11, 2, 7, 1, 6, 4, 1, 3, 2, 4, 1, 7, 4, 1, 2, 7, 11, 1, 2, 3, 1, 4, 2, 5, 1, 2, 3, 1, 2, 6, 7, 1, 3, 8, 1, 2, 8, 1, 6, 4, 2, 1, 7, 2, 1, 3, 8, 2, 1, 5, 3, 1, 6, 5, 4, 6, 1, 2, 4, 1, 5, 6, 1, 8, 4, 1, 2, 7, 1, 5, 3, 1, 2, 7, 1, 5, 2], 82 | [5, 1, 2, 6, 5, 2, 1, 7, 2, 1, 4, 3, 2, 11, 7, 1, 4, 7, 6, 1, 5, 4, 2, 7, 3, 1, 5, 11, 2, 1, 3, 2, 1, 4, 8, 6, 1, 5, 4, 1, 11, 2, 4, 5, 2, 1, 6, 3, 1, 8, 2, 3, 1, 8, 6, 5, 1, 4, 11, 3, 5, 2, 1, 3, 4, 2, 1, 3, 5, 1, 11, 1, 2, 4, 3, 2, 1, 5, 7, 2, 3, 1, 4, 2, 1, 11, 3, 5, 1, 2, 4, 3, 1, 5, 8, 1, 5, 6, 7, 1, 3, 2, 11, 1, 7, 3, 5, 2, 1, 5, 2, 1, 6, 5, 2, 11, 7, 1, 4, 3, 2, 1, 4, 7, 2, 6, 1, 3, 11, 4, 5, 2, 1, 4, 2, 1, 5, 8, 3, 2, 1, 4, 3, 8, 1, 11, 2, 3, 8, 5, 3, 4, 1, 2, 8, 4, 2, 1, 11, 5, 3, 6, 4, 1, 2, 3, 1, 4, 2, 1, 11, 6, 2, 4, 8, 1, 3, 4, 1, 2, 6, 4, 2, 1, 3, 5, 2, 4, 11, 7, 1, 2, 3, 7, 6, 1, 2, 3, 6, 1, 4, 7, 1, 2, 6, 11, 5, 1, 7, 2, 1, 5, 8, 1, 2, 3, 7, 1, 3, 2, 1, 8, 2, 1, 6, 2, 1, 3, 4, 1, 2, 3, 1, 4, 3, 1, 2, 5, 7, 1, 3, 2, 1, 8, 2, 1, 4, 3, 1, 2, 3, 1, 2, 6, 1, 3] 83 | ], 84 | "Game": { 85 | "Probs": [0, 60, 80, 100], 86 | "Reward": [[301960, 0, 0], [409950, 5, 5], [94963, 10, 10], [21998, 20, 20], [13737, 25, 25], [9350, 30, 30], [5095, 40, 40], [3182, 50, 50], [1564, 70, 70], [920, 90, 90], [0, 100, 100], [0, 120, 120], [0, 200, 200], [0, 220, 220], [0, 500, 500], [0, 505, 505], [0, 510, 510], [0, 520, 520], [0, 550, 550], [0, 570, 570], [0, 600, 600], [0, 700, 700]] 87 | }, 88 | "JackPot": { 89 | "Reward": [10, 20, 40] 90 | } 91 | }, 92 | 93 | "Set_3": { 94 | "SetId": 3, 95 | "Normal": [ 96 | [5, 1, 2, 4, 1, 10, 2, 3, 1, 2, 3, 1, 11, 6, 2, 1, 4, 3, 9, 1, 2, 5, 6, 1, 11, 4, 2, 3, 6, 9, 1, 2, 5, 3, 2, 9, 1, 8, 5, 1, 10, 2, 4, 3, 1, 2, 3, 10, 1, 2, 5, 3, 11, 4, 2, 1, 7, 2, 6, 1, 11, 3, 4, 2, 1, 9, 4, 8, 2, 1, 3, 11, 4, 1, 2, 7, 11, 1, 6, 2, 1, 3, 9, 5, 2, 3, 4, 1, 5, 9, 3, 6, 1, 5, 2, 11, 7, 1, 2, 3, 1, 11, 2, 3, 6, 1, 2, 3, 11, 1, 4, 8, 1, 3, 2, 1, 9, 5, 7, 2, 4, 5, 2, 1, 9, 4, 6, 1, 7, 9, 3, 4, 1, 3, 2, 1, 11, 7, 2, 3, 1, 6, 4, 1, 11, 3, 2, 1, 3, 9, 2, 1, 3, 5, 1, 2, 9, 3, 7, 1, 3, 2, 9, 1, 4, 2, 1, 8, 9, 5, 2, 6, 1, 11, 4, 2, 5, 1, 4, 11, 2, 5, 6, 1, 3, 6, 11, 1, 3, 6, 2, 1, 11, 8, 3, 4, 7, 11, 1, 3, 7, 1, 5, 3, 2, 11, 1, 6, 3, 2, 7, 9, 1, 2, 4, 1, 2, 4, 3, 7, 4, 2, 7, 8, 2, 1, 5, 3, 2, 4, 1, 6, 4, 1, 3, 2, 4, 5, 8, 1, 5, 2, 7, 1, 3, 4, 2, 1, 4, 2, 6, 1, 7, 2, 1, 5, 3, 1, 11, 7, 2, 3, 1, 11, 2, 3, 1, 6, 2, 1, 3, 5, 4, 2, 6, 1, 11, 5, 2, 1, 4], 97 | [3, 1, 2, 6, 3, 11, 2, 4, 1, 3, 9, 5, 1, 3, 4, 11, 1, 3, 2, 1, 10, 8, 3, 7, 4, 1, 2, 3, 9, 1, 4, 2, 6, 1, 10, 2, 3, 1, 8, 2, 5, 1, 11, 4, 2, 1, 6, 9, 3, 1, 6, 1, 11, 2, 1, 3, 2, 1, 9, 5, 2, 6, 3, 1, 2, 11, 7, 1, 3, 4, 1, 2, 4, 11, 6, 2, 1, 5, 2, 9, 1, 3, 2, 5, 3, 11, 1, 2, 4, 1, 11, 3, 7, 1, 2, 9, 3, 1, 2, 7, 3, 1, 9, 2, 3, 1, 2, 4, 1, 9, 8, 6, 1, 3, 9, 2, 4, 1, 2, 7, 6, 11, 2, 1, 3, 6, 2, 1, 3, 11, 4, 6, 1, 2, 5, 3, 2, 9, 1, 5, 4, 6, 2, 1, 4, 11, 5, 2, 1, 4, 5, 7, 1, 11, 2, 4, 1, 2, 8, 3, 1, 10, 5, 4, 1, 3, 8, 2, 1, 11, 3, 7, 2, 1, 4, 11, 8, 3, 4, 2, 9, 1, 5, 3, 2, 1, 9, 5, 2, 1, 5, 3, 1, 4, 9, 2, 3, 4, 1, 2, 11, 6, 1, 3, 2, 5, 1, 11, 3, 2, 1, 5, 8, 2, 11, 1, 4, 2, 5, 6, 9, 1, 4, 2, 6, 3, 2, 1, 4, 11, 7, 2, 1, 6, 11, 1, 2, 1, 3, 6, 2, 1, 5, 4, 7, 1, 5, 2, 4, 1, 2, 3, 1, 4, 2, 1, 5, 3, 11, 1, 5, 6, 1, 3, 2, 1, 5, 4, 1, 3, 8, 1, 3, 6, 1, 3, 7, 1, 4, 2, 1, 8, 2], 98 | [3, 2, 4, 3, 2, 1, 4, 9, 2, 3, 4, 9, 5, 3, 2, 9, 1, 4, 2, 1, 3, 9, 2, 1, 5, 2, 6, 11, 3, 8, 4, 1, 9, 2, 4, 7, 11, 3, 1, 5, 2, 3, 9, 1, 5, 7, 3, 9, 6, 1, 2, 4, 1, 3, 9, 2, 6, 5, 9, 2, 1, 3, 11, 2, 1, 3, 2, 8, 9, 3, 5, 2, 4, 10, 5, 2, 1, 9, 4, 2, 1, 4, 11, 7, 3, 2, 4, 3, 11, 2, 7, 1, 2, 3, 5, 11, 2, 1, 4, 3, 9, 1, 2, 3, 6, 11, 2, 1, 8, 2, 1, 8, 11, 3, 2, 1, 4, 3, 11, 1, 2, 7, 11, 6, 2, 5, 1, 3, 5, 10, 1, 3, 2, 9, 7, 6, 2, 4, 1, 11, 2, 5, 1, 2, 9, 3, 5, 2, 1, 3, 5, 11, 2, 3, 1, 2, 10, 4, 1, 2, 3, 9, 6, 7, 3, 6, 1, 3, 9, 4, 2, 3, 9, 5, 2, 1, 3, 7, 6, 9, 1, 2, 4, 11, 5, 1, 3, 2, 7, 11, 4, 3, 5, 11, 7, 1, 2, 4, 11, 3, 1, 4, 5, 8, 11, 2, 1, 3, 2, 11, 6, 4, 5, 2, 3, 6, 1, 3, 6, 11, 1, 3, 5, 2, 3, 4, 2, 3, 4, 8, 3, 1, 5, 2, 3, 11, 8, 2, 1, 3, 2, 1, 3, 8, 1, 3, 4, 2, 1, 3, 2, 1, 6, 7, 1, 2, 4, 1, 3, 6, 11, 1, 3, 8, 2, 4, 6, 2, 5, 1, 3, 2, 5, 4, 1, 7, 5, 3, 2, 4, 3, 6, 1, 2, 3, 5], 99 | [3, 7, 4, 1, 5, 11, 2, 1, 3, 4, 11, 2, 1, 3, 7, 2, 1, 11, 4, 5, 1, 9, 3, 7, 8, 1, 11, 3, 2, 1, 10, 3, 4, 1, 9, 2, 6, 4, 1, 5, 9, 2, 1, 4, 3, 11, 1, 4, 2, 3, 9, 1, 5, 7, 1, 4, 9, 2, 3, 4, 9, 2, 1, 3, 11, 6, 4, 1, 5, 11, 2, 3, 1, 10, 5, 3, 2, 11, 4, 5, 1, 2, 7, 11, 1, 3, 5, 9, 4, 8, 2, 1, 9, 3, 5, 8, 2, 1, 11, 7, 5, 6, 11, 1, 2, 3, 1, 2, 9, 3, 1, 2, 9, 8, 1, 2, 3, 6, 9, 7, 2, 1, 4, 10, 3, 1, 6, 2, 11, 4, 1, 2, 5, 9, 1, 7, 2, 9, 1, 3, 2, 1, 3, 9, 5, 8, 2, 4, 9, 1, 2, 4, 1, 11, 2, 5, 1, 11, 2, 6, 1, 11, 2, 8, 7, 9, 1, 8, 3, 2, 11, 1, 5, 4, 8, 3, 11, 1, 6, 7, 2, 3, 11, 1, 2, 6, 5, 11, 1, 4, 2, 1, 11, 5, 4, 1, 9, 8, 4, 1, 9, 3, 7, 6, 3, 1, 2, 7, 2, 5, 2, 6, 1, 3, 4, 1, 3, 2, 5, 1, 4, 5, 1, 3, 7, 1, 2, 11, 4, 3, 1, 4, 2, 3, 5, 11, 1, 2, 6, 1, 3, 6, 2, 1, 6, 4, 1, 2, 8, 3, 1, 4, 2, 1, 8, 2, 1, 6, 3, 1, 6, 2, 5, 11, 6, 1, 7, 2, 1, 5, 2, 8, 1, 5, 3, 2, 5, 1, 2, 4, 1, 3, 7, 4, 1, 2], 100 | [1, 8, 1, 3, 2, 11, 1, 2, 5, 9, 3, 1, 2, 6, 1, 2, 10, 3, 1, 2, 9, 3, 1, 2, 3, 11, 4, 2, 1, 9, 5, 4, 1, 11, 7, 5, 1, 2, 4, 11, 1, 2, 3, 8, 9, 1, 4, 7, 5, 9, 2, 3, 4, 9, 5, 1, 6, 2, 11, 5, 3, 1, 11, 4, 6, 1, 9, 2, 8, 1, 10, 6, 2, 1, 3, 2, 10, 1, 3, 4, 11, 1, 5, 4, 1, 9, 3, 2, 5, 3, 1, 9, 5, 2, 4, 11, 3, 2, 1, 11, 4, 3, 2, 9, 1, 5, 6, 8, 11, 2, 1, 6, 2, 9, 3, 7, 5, 11, 1, 4, 2, 1, 4, 9, 7, 3, 1, 6, 9, 7, 3, 1, 7, 11, 4, 2, 1, 11, 6, 2, 3, 9, 1, 2, 4, 5, 2, 9, 1, 4, 2, 3, 7, 9, 1, 2, 8, 9, 7, 1, 4, 7, 11, 1, 4, 5, 2, 1, 11, 3, 2, 1, 11, 3, 8, 7, 1, 9, 2, 4, 1, 11, 3, 5, 2, 1, 11, 8, 2, 1, 11, 7, 5, 2, 3, 11, 1, 4, 2, 1, 7, 11, 3, 8, 6, 4, 9, 1, 3, 4, 1, 3, 2, 1, 6, 2, 1, 4, 8, 1, 3, 5, 2, 1, 5, 2, 11, 1, 7, 5, 2, 3, 1, 2, 6, 1, 2, 5, 11, 1, 6, 3, 2, 1, 5, 8, 1, 4, 3, 1, 4, 3, 1, 4, 2, 1, 6, 4, 1, 5, 7, 1, 5, 3, 11, 4, 2, 5, 1, 8, 3, 2, 5, 3, 8, 2, 1, 4, 3, 6, 2, 1, 7, 6, 1, 2, 6, 2] 101 | ], 102 | "Free": [ 103 | [4, 5, 3, 1, 2, 5, 1, 2, 7, 5, 6, 1, 3, 4, 8, 1, 2, 4, 11, 3, 1, 2, 7, 4, 2, 3, 1, 2, 6, 8, 7, 2, 6, 1, 3, 2, 7, 11, 3, 2, 1, 5, 3, 1, 4, 3, 2, 1, 2, 4, 5, 1, 2, 4, 3, 2, 1, 11, 6, 5, 3, 1, 2, 4, 3, 1, 5, 6, 8, 3, 7, 1, 8, 3, 1, 4, 5, 1, 3, 11, 2, 5, 1, 4, 7, 1, 5, 6, 1, 2, 3, 5, 4, 3, 1, 5, 2, 1, 11, 3, 2, 1, 3, 2, 1, 5, 3, 1, 2, 7, 1, 6, 3, 4, 11, 2, 3, 1, 4, 2, 3, 5, 1, 6, 2, 1, 5, 2, 4, 1, 6, 2, 1, 6, 4, 11, 3, 1, 2, 5, 4, 2, 1, 4, 2, 5, 1, 2, 5, 3, 1, 4, 3, 1, 2, 11, 1, 3, 4, 1, 2, 6, 7, 2, 1, 6, 4, 2, 1, 7, 2, 3, 4, 2, 11, 1, 3, 2, 1, 3, 2, 4, 3, 1, 4, 6, 1, 2, 7, 1, 3, 2, 11, 7, 1, 5, 6, 4, 1, 2, 3, 1, 4, 2, 1, 7, 4, 1, 2, 11, 7, 1, 2, 4, 3, 1, 6, 8, 3, 2, 1, 6, 2, 7, 1, 6, 3, 1, 2, 5, 1, 2, 4, 7, 1, 2, 3, 5, 1, 8, 3, 1, 2, 3, 1, 2, 8, 1, 2, 6, 1, 2, 3, 1, 2], 104 | [5, 1, 6, 2, 3, 1, 2, 6, 5, 1, 2, 6, 1, 2, 3, 1, 2, 3, 6, 2, 3, 11, 1, 2, 3, 1, 7, 4, 2, 1, 7, 4, 1, 2, 7, 3, 1, 4, 6, 5, 8, 2, 4, 1, 2, 11, 4, 5, 1, 2, 3, 1, 6, 8, 1, 4, 2, 5, 6, 4, 3, 1, 11, 2, 6, 1, 4, 3, 1, 2, 4, 1, 3, 2, 1, 4, 7, 2, 3, 1, 5, 4, 1, 2, 8, 1, 11, 3, 1, 2, 1, 3, 5, 6, 1, 8, 5, 3, 1, 4, 2, 1, 3, 1, 11, 2, 4, 1, 2, 3, 8, 1, 3, 2, 4, 6, 2, 4, 1, 2, 3, 7, 1, 4, 11, 2, 3, 1, 2, 6, 3, 5, 1, 2, 6, 1, 3, 2, 1, 4, 7, 2, 1, 5, 11, 2, 6, 3, 2, 1, 3, 4, 5, 1, 2, 4, 1, 3, 1, 4, 1, 7, 4, 2, 6, 11, 1, 2, 3, 8, 1, 4, 2, 1, 7, 1, 2, 8, 3, 11, 6, 1, 2, 6, 4, 1, 7, 3, 1, 6, 2, 1, 7, 3, 1, 8, 4, 1, 11, 3, 4, 1, 2, 5, 3, 1, 2, 5, 1, 2, 3, 1, 5, 4, 3, 2, 6, 11, 1, 8, 2, 3, 1, 2, 5, 3, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 1, 5, 2, 1, 5, 3, 1, 5, 3, 1, 2, 5, 1, 2, 5, 1, 2], 105 | [4, 2, 3, 6, 1, 3, 4, 1, 3, 4, 5, 8, 2, 4, 7, 2, 3, 5, 1, 4, 5, 11, 3, 6, 2, 7, 6, 3, 4, 5, 2, 3, 6, 2, 1, 3, 4, 5, 11, 3, 4, 8, 2, 1, 3, 2, 4, 1, 2, 3, 6, 1, 4, 6, 5, 1, 2, 4, 7, 11, 2, 3, 4, 5, 3, 6, 2, 1, 7, 4, 3, 2, 1, 3, 2, 7, 3, 2, 11, 4, 1, 2, 5, 1, 2, 3, 1, 2, 4, 3, 2, 5, 3, 2, 5, 1, 3, 2, 11, 4, 6, 5, 3, 1, 4, 5, 2, 1, 3, 4, 2, 1, 3, 5, 1, 3, 6, 2, 11, 7, 3, 2, 1, 3, 4, 2, 3, 8, 1, 6, 3, 5, 1, 2, 8, 11, 3, 2, 1, 5, 2, 3, 8, 2, 1, 3, 5, 2, 1, 7, 8, 6, 1, 2, 4, 1, 2, 11, 3, 1, 2, 6, 3, 2, 5, 3, 2, 1, 7, 3, 5, 2, 4, 11, 3, 2, 8, 5, 2, 4, 5, 3, 1, 4, 2, 3, 1, 6, 3, 1, 2, 11, 3, 1, 6, 2, 7, 1, 2, 5, 1, 7, 2, 1, 4, 2, 3, 11, 1, 2, 3, 1, 2, 7, 1, 3, 6, 1, 5, 3, 1, 2, 4, 3, 1, 6, 2, 3, 4, 7, 3, 2, 1, 4, 5, 2, 1, 4, 2, 1, 3, 2, 1, 3, 2, 1, 3, 2, 8, 1, 5, 8, 1, 2, 3], 106 | [1, 3, 5, 1, 4, 7, 2, 8, 1, 5, 2, 3, 1, 2, 7, 6, 4, 1, 11, 2, 3, 1, 4, 2, 1, 3, 4, 1, 6, 2, 11, 1, 5, 6, 2, 1, 6, 2, 3, 4, 2, 3, 1, 11, 4, 6, 7, 4, 3, 1, 6, 2, 5, 8, 7, 2, 3, 11, 1, 2, 3, 1, 2, 4, 1, 3, 2, 5, 4, 1, 3, 5, 11, 7, 3, 5, 2, 1, 8, 2, 1, 3, 4, 1, 11, 2, 3, 1, 4, 2, 1, 7, 3, 2, 5, 7, 1, 8, 11, 5, 2, 1, 3, 4, 2, 1, 5, 8, 1, 4, 5, 2, 4, 1, 11, 2, 8, 1, 3, 2, 1, 4, 2, 1, 3, 5, 1, 4, 3, 1, 2, 3, 11, 6, 2, 3, 1, 2, 5, 1, 3, 2, 1, 7, 4, 3, 1, 11, 2, 4, 1, 5, 2, 1, 6, 3, 2, 4, 5, 1, 8, 5, 3, 11, 4, 6, 3, 1, 2, 5, 3, 6, 1, 3, 5, 2, 1, 8, 11, 2, 7, 1, 6, 4, 1, 3, 2, 4, 1, 7, 4, 1, 2, 7, 11, 1, 2, 3, 1, 4, 2, 5, 1, 2, 3, 1, 2, 6, 7, 1, 3, 8, 1, 2, 8, 1, 6, 4, 2, 1, 7, 2, 1, 3, 8, 2, 1, 5, 3, 1, 6, 5, 4, 6, 1, 2, 4, 1, 5, 6, 1, 8, 4, 1, 2, 7, 1, 5, 3, 1, 2, 7, 1, 5, 2], 107 | [5, 1, 2, 6, 5, 2, 1, 7, 2, 1, 4, 3, 2, 11, 7, 1, 4, 7, 6, 1, 5, 4, 2, 7, 3, 1, 5, 11, 2, 1, 3, 2, 1, 4, 8, 6, 1, 5, 4, 1, 11, 2, 4, 5, 2, 1, 6, 3, 1, 8, 2, 3, 1, 8, 6, 5, 1, 4, 11, 3, 5, 2, 1, 3, 4, 2, 1, 3, 5, 1, 11, 1, 2, 4, 3, 2, 1, 5, 7, 2, 3, 1, 4, 2, 1, 11, 3, 5, 1, 2, 4, 3, 1, 5, 8, 1, 5, 6, 7, 1, 3, 2, 11, 1, 7, 3, 5, 2, 1, 5, 2, 1, 6, 5, 2, 11, 7, 1, 4, 3, 2, 1, 4, 7, 2, 6, 1, 3, 11, 4, 5, 2, 1, 4, 2, 1, 5, 8, 3, 2, 1, 4, 3, 8, 1, 11, 2, 3, 8, 5, 3, 4, 1, 2, 8, 4, 2, 1, 11, 5, 3, 6, 4, 1, 2, 3, 1, 4, 2, 1, 11, 6, 2, 4, 8, 1, 3, 4, 1, 2, 6, 4, 2, 1, 3, 5, 2, 4, 11, 7, 1, 2, 3, 7, 6, 1, 2, 3, 6, 1, 4, 7, 1, 2, 6, 11, 5, 1, 7, 2, 1, 5, 8, 1, 2, 3, 7, 1, 3, 2, 1, 8, 2, 1, 6, 2, 1, 3, 4, 1, 2, 3, 1, 4, 3, 1, 2, 5, 7, 1, 3, 2, 1, 8, 2, 1, 4, 3, 1, 2, 3, 1, 2, 6, 1, 3] 108 | ], 109 | "Game": { 110 | "Probs": [0, 60, 80, 100], 111 | "Reward": [[301960, 0, 0], [409950, 5, 5], [94963, 10, 10], [21998, 20, 20], [13737, 25, 25], [9350, 30, 30], [5095, 40, 40], [3182, 50, 50], [1564, 70, 70], [920, 90, 90], [0, 100, 100], [0, 120, 120], [0, 200, 200], [0, 220, 220], [0, 500, 500], [0, 505, 505], [0, 510, 510], [0, 520, 520], [0, 550, 550], [0, 570, 570], [0, 600, 600], [0, 700, 700]] 112 | }, 113 | "JackPot": { 114 | "Reward": [10, 20, 40] 115 | } 116 | } 117 | } 118 | -------------------------------------------------------------------------------- /game-server/dist/config/mary_slot/HappyFruit_1.json: -------------------------------------------------------------------------------- 1 | { 2 | "PlatformRatio": 0, 3 | "HandselRatio": 50, 4 | "RoomRatio": 20, 5 | "Bet": [100,200,300,400,500,600,700,800,900,1000], 6 | "PullInterval": 0, 7 | "IsRecordLog": 1, 8 | "nFreeTime": 0, 9 | "NoticeMulti": 50, 10 | "NoticeWord": "恭喜玩家[%s]在[水果玛丽-新手场]财运大爆发,赢得%d倍奖励!", 11 | "NoticeHandsel": "恭喜玩家[%s]在[水果玛丽-新手场]财运大爆发,赢得%I64d奖池奖励!", 12 | "ControlLevel":{ 13 | "1": [1, 100, [0, 0, 0, 0, 0], [100, 50]], 14 | "200": [1, 75, [0, 0, 0, 0, 0], [100, 50]], 15 | "300": [1, 50, [0, 0, 0, 0, 0], [100, 50]], 16 | "400": [1, 25, [0, 0, 0, 0, 0], [100, 50]], 17 | "500": [2, 100, [0, 0, 0, 0, 100], [100, 450]], 18 | "600": [3, 25, [0, 0, 0, 100], [100, 1500]], 19 | "700": [3, 50, [0, 0, 0, 100], [100, 1500]], 20 | "800": [3, 75, [0, 0, 0, 100], [100, 1500]], 21 | "1000": [3, 100, [0, 0, 0, 100], [100, 1500]] 22 | }, 23 | 24 | "RoomControl": { 25 | "Init": 1000000, 26 | "Level_Range": [ 27 | [1, 0, 150000], 28 | [200, 150000, 300000], 29 | [300, 300000, 600000], 30 | [500, 600000, 1200000], 31 | [600, 1200000, 1500000], 32 | [700, 1500000, 1800000], 33 | [800, 1800000, 9999999999] 34 | ] 35 | }, 36 | 37 | "StoreForUserNet": { 38 | "InterveneTime": 0, 39 | "HighStore": [10, 600, 10, 3600000, 3600000], 40 | "LowStore": [90, 400, 10, 300000, 300000] 41 | }, 42 | 43 | "Set_1": { 44 | "SetId": 1, 45 | "Normal": [ 46 | [2, 1, 3, 2, 1, 3, 2, 6, 3, 1, 6, 4, 1, 3, 7, 1, 2, 3, 6, 1, 5, 2, 3, 1, 2, 6, 3, 1, 2, 4, 1, 5, 2, 3, 1, 4, 2, 1, 3, 2, 1, 4, 7, 2, 3, 6, 1, 2, 7, 4, 6, 2, 1, 6, 2, 1, 4, 2, 7, 3, 2, 1, 6, 3, 5, 1, 2, 4, 1, 7, 6, 3, 8, 1, 2, 4, 5, 2, 6, 1, 2, 4, 5, 2, 3, 1, 4, 3, 2, 1, 4, 2, 5, 1, 2, 7, 6, 4, 1, 5, 3, 1, 7, 1, 2, 5, 4, 3, 2, 5, 1, 7, 3, 1, 2, 4, 1, 2, 6, 5, 1, 3, 2, 5, 1, 4, 3, 1, 2, 8, 5, 3, 1, 8, 4, 3, 6, 1, 2, 4, 3, 2, 1, 4, 6, 1, 2, 3, 7, 1, 2, 4, 3, 2, 1, 7, 6, 1, 2, 1, 3, 4, 2, 3, 1, 2, 3, 1, 2, 3, 7, 1, 4, 5, 3, 1, 2, 5, 3, 1, 4, 6, 8, 3, 1, 7, 4, 2, 5, 1, 4, 2, 1, 5, 2, 1, 6, 2, 1, 5, 2, 1, 4, 7, 1, 3, 4, 1, 3, 6, 1, 3, 2, 1, 3, 4, 1, 2, 5, 1, 7, 4, 2, 1, 5, 2, 1, 8, 2, 1, 5, 2, 3, 8, 2, 1, 3, 8, 1, 3, 7, 2, 1, 5], 47 | [1, 8, 2, 4, 7, 2, 1, 5, 4, 2, 3, 5, 1, 4, 2, 1, 4, 7, 5, 6, 1, 2, 3, 1, 2, 3, 6, 2, 3, 5, 2, 1, 3, 2, 1, 5, 4, 6, 1, 2, 3, 1, 4, 3, 1, 4, 5, 6, 1, 2, 3, 8, 2, 1, 6, 3, 1, 2, 8, 1, 7, 4, 6, 1, 2, 3, 1, 2, 3, 5, 4, 1, 2, 3, 1, 2, 4, 5, 1, 6, 3, 1, 2, 4, 1, 5, 2, 4, 1, 7, 8, 3, 1, 5, 7, 1, 4, 6, 1, 2, 4, 1, 3, 2, 1, 3, 5, 1, 2, 5, 4, 1, 3, 5, 1, 3, 5, 7, 1, 3, 8, 4, 1, 2, 4, 3, 1, 2, 5, 3, 4, 2, 1, 6, 2, 1, 3, 2, 1, 3, 2, 1, 5, 3, 2, 1, 3, 4, 2, 1, 3, 6, 1, 4, 6, 1, 2, 8, 1, 3, 2, 1, 4, 2, 1, 5, 8, 2, 1, 3, 4, 2, 1, 3, 2, 6, 1, 3, 2, 1, 3, 4, 1, 2, 6, 1, 2, 5, 1, 3, 2, 1, 3, 2, 1, 5, 2, 6, 1, 2, 6, 4, 1, 2, 6, 1, 2, 7, 1, 2, 4, 1, 2, 3, 4, 1, 2, 4, 6, 3, 2, 1, 7, 3, 1, 8, 5, 2, 1, 6, 3, 1, 2, 7, 1, 3, 5, 1, 3, 2, 1, 7, 8, 1, 4, 2], 48 | [2, 1, 4, 2, 3, 1, 2, 7, 3, 2, 6, 4, 3, 1, 8, 3, 2, 1, 3, 6, 1, 3, 7, 2, 3, 4, 2, 1, 4, 3, 1, 2, 4, 6, 2, 8, 3, 4, 5, 1, 2, 3, 1, 7, 6, 3, 1, 5, 3, 2, 1, 3, 4, 5, 3, 1, 7, 4, 3, 1, 4, 2, 6, 1, 4, 5, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 5, 2, 4, 6, 3, 5, 2, 4, 1, 5, 3, 2, 1, 6, 4, 2, 3, 1, 6, 3, 1, 5, 4, 2, 5, 3, 4, 1, 8, 2, 1, 5, 2, 6, 1, 2, 4, 1, 2, 3, 1, 2, 5, 1, 2, 3, 4, 2, 3, 1, 4, 2, 6, 4, 2, 3, 1, 7, 3, 5, 1, 2, 8, 3, 4, 5, 2, 3, 7, 2, 3, 5, 2, 6, 3, 4, 5, 8, 3, 6, 2, 4, 5, 1, 3, 7, 2, 3, 1, 4, 2, 1, 5, 3, 2, 8, 4, 2, 1, 3, 5, 1, 2, 5, 3, 2, 6, 7, 2, 3, 1, 2, 3, 4, 1, 2, 5, 8, 3, 1, 2, 5, 1, 2, 5, 7, 2, 1, 3, 2, 1, 3, 2, 1, 3, 5, 6, 3, 2, 8, 1, 6, 7, 2, 3, 1, 2, 4, 1, 2, 3, 4, 2, 5, 3, 8, 2, 3, 1, 4, 7, 2, 1, 3, 2, 7, 3, 6], 49 | [4, 1, 5, 8, 4, 1, 2, 4, 1, 2, 3, 4, 1, 5, 2, 1, 4, 6, 1, 8, 3, 4, 5, 2, 3, 7, 6, 2, 3, 4, 5, 1, 2, 5, 1, 3, 2, 6, 8, 2, 5, 1, 2, 5, 1, 4, 7, 1, 2, 7, 1, 2, 4, 5, 1, 2, 7, 1, 3, 2, 1, 7, 3, 1, 2, 8, 6, 1, 5, 3, 2, 1, 4, 3, 1, 2, 4, 1, 6, 3, 1, 5, 4, 1, 6, 2, 4, 1, 3, 2, 5, 1, 8, 1, 2, 3, 1, 2, 3, 1, 5, 2, 3, 1, 2, 3, 1, 4, 3, 1, 5, 7, 2, 1, 5, 2, 4, 1, 2, 6, 5, 1, 2, 3, 6, 2, 1, 4, 2, 1, 4, 2, 8, 1, 4, 6, 1, 4, 6, 3, 5, 7, 1, 2, 4, 3, 1, 7, 3, 8, 2, 1, 7, 3, 1, 6, 4, 2, 3, 1, 7, 6, 2, 1, 4, 5, 3, 2, 8, 1, 2, 5, 1, 2, 3, 1, 6, 3, 1, 4, 3, 5, 2, 7, 3, 5, 1, 4, 3, 1, 2, 7, 5, 2, 1, 3, 5, 8, 1, 2, 4, 5, 1, 2, 3, 1, 7, 6, 5, 2, 1, 6, 7, 1, 2, 3, 1, 2, 6, 1, 2, 3, 4, 1, 2, 3, 1, 8, 3, 1, 4, 7, 1, 2, 3, 8, 1, 2, 8, 4, 1, 2], 50 | [6, 8, 1, 4, 2, 1, 7, 2, 3, 1, 7, 5, 2, 1, 5, 3, 2, 1, 4, 5, 3, 2, 7, 3, 5, 6, 1, 2, 3, 1, 8, 2, 1, 3, 5, 1, 4, 2, 1, 8, 2, 4, 7, 3, 1, 2, 6, 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 1, 2, 4, 1, 5, 8, 3, 2, 4, 3, 2, 1, 5, 4, 3, 1, 4, 5, 2, 1, 4, 5, 3, 2, 1, 5, 2, 3, 1, 4, 5, 1, 4, 6, 2, 1, 4, 2, 1, 3, 7, 4, 3, 2, 1, 6, 3, 2, 4, 1, 3, 2, 1, 5, 6, 4, 1, 5, 7, 1, 4, 5, 2, 7, 1, 4, 3, 1, 5, 2, 1, 8, 2, 1, 6, 5, 7, 3, 1, 2, 6, 3, 1, 4, 3, 8, 6, 1, 2, 6, 5, 3, 1, 2, 4, 1, 7, 2, 1, 5, 2, 1, 3, 2, 1, 7, 2, 3, 1, 2, 6, 1, 5, 2, 1, 3, 6, 2, 3, 7, 2, 1, 8, 3, 1, 2, 3, 4, 1, 5, 2, 1, 6, 3, 5, 2, 1, 8, 7, 2, 1, 4, 1, 2, 6, 8, 1, 2, 4, 1, 3, 4, 1, 2, 8, 4, 2, 1, 7, 3, 1, 8, 3, 1, 2, 4, 3, 1, 5, 2, 1, 7, 4, 1, 3, 5, 1, 6, 8, 1, 6, 7, 1, 2] 51 | ], 52 | "Free": [ 53 | [1, 5, 6, 3, 1, 7, 8, 2, 1, 3, 2, 1, 6, 3, 2, 4, 1, 2, 7, 6, 4, 5, 2, 3, 1, 5, 2, 3, 1, 2, 3, 1, 2, 3, 1, 6, 3, 2, 1, 6, 4, 2, 3, 6, 1, 5, 2, 3, 1, 2, 6, 1, 3, 2, 1, 5, 2, 1, 4, 7, 1, 5, 2, 7, 1, 2, 3, 6, 4, 1, 2, 4, 1, 5, 3, 1, 5, 2, 7, 5, 2, 6, 3, 2, 4, 5, 1, 3, 2, 4, 3, 2, 1, 3, 2, 8, 1, 2, 6, 1, 4, 3, 1, 5, 7, 2, 1, 3, 6, 4, 1, 2, 3, 1, 2, 5, 7, 1, 3, 4, 7, 1, 3, 4, 1, 2, 6, 1, 2, 3, 1, 5, 2, 4, 1, 3, 2, 1, 3, 2, 1, 4, 3, 7, 1, 2, 3, 6, 7, 2, 1, 4, 2, 1, 4, 2, 1, 3, 5, 1, 4, 3, 1, 2, 7, 4, 2, 5, 1, 2, 4, 1, 2, 4, 1, 3, 6, 2, 1, 8, 2, 1, 3, 2, 1, 5, 2, 8, 1, 3, 4, 2, 5, 1, 4, 2, 1, 4, 8, 1, 3, 7, 1, 5, 3, 6, 1, 3, 2, 1, 7, 2, 5, 8, 4, 2, 1, 4, 3, 1, 7, 8, 3, 6, 4, 2, 1, 4, 6, 1, 3, 2, 1, 5, 3, 1, 6, 4, 1, 2, 7, 1, 5, 2], 54 | [1, 4, 5, 1, 7, 2, 1, 3, 4, 5, 6, 2, 1, 3, 2, 1, 3, 2, 1, 4, 3, 1, 4, 3, 1, 8, 2, 1, 4, 6, 2, 1, 6, 2, 1, 4, 6, 2, 3, 6, 2, 1, 4, 2, 1, 4, 2, 1, 8, 2, 6, 3, 4, 2, 1, 5, 2, 1, 3, 2, 1, 3, 2, 4, 1, 6, 3, 1, 8, 4, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 6, 5, 4, 1, 3, 2, 1, 3, 4, 1, 6, 2, 4, 1, 7, 2, 4, 6, 2, 1, 3, 5, 1, 3, 2, 1, 3, 4, 1, 2, 3, 1, 5, 2, 1, 3, 5, 2, 1, 7, 3, 6, 1, 4, 1, 2, 1, 5, 4, 1, 8, 4, 1, 3, 2, 1, 3, 6, 1, 5, 6, 2, 5, 8, 1, 7, 4, 2, 1, 5, 2, 6, 1, 5, 2, 3, 1, 7, 5, 1, 3, 5, 1, 2, 8, 3, 1, 2, 5, 1, 2, 1, 4, 1, 3, 2, 1, 7, 2, 1, 3, 6, 2, 1, 6, 2, 5, 8, 1, 7, 3, 2, 1, 3, 2, 7, 4, 8, 1, 3, 2, 1, 7, 2, 5, 1, 3, 4, 2, 8, 1, 2, 4, 3, 6, 5, 2, 1, 3, 5, 2, 3, 4, 2, 1, 6, 3, 1, 2, 4, 1, 7, 2, 1, 5, 4, 3, 1, 2, 4, 1, 3, 5, 1, 2, 3], 55 | [2, 3, 1, 7, 2, 5, 3, 1, 4, 3, 2, 1, 3, 5, 4, 2, 3, 1, 4, 6, 3, 2, 4, 1, 5, 3, 6, 1, 3, 8, 4, 1, 3, 2, 4, 3, 6, 1, 8, 4, 1, 2, 3, 4, 1, 2, 3, 1, 2, 3, 5, 6, 2, 1, 4, 6, 1, 2, 3, 1, 4, 3, 1, 7, 3, 5, 2, 1, 5, 8, 2, 4, 6, 1, 2, 3, 5, 7, 2, 3, 1, 2, 3, 5, 2, 4, 1, 3, 4, 6, 2, 4, 1, 2, 3, 1, 2, 4, 3, 1, 4, 5, 1, 3, 2, 4, 1, 2, 3, 4, 2, 3, 1, 5, 2, 1, 3, 2, 1, 5, 8, 2, 3, 1, 2, 5, 1, 3, 2, 4, 1, 5, 2, 3, 5, 6, 2, 1, 4, 6, 7, 3, 5, 4, 1, 5, 7, 2, 3, 1, 2, 7, 1, 2, 5, 7, 3, 4, 2, 3, 8, 5, 2, 1, 3, 4, 2, 6, 3, 4, 2, 7, 5, 6, 1, 2, 5, 1, 7, 3, 2, 5, 3, 2, 1, 4, 2, 3, 1, 2, 3, 6, 2, 7, 3, 2, 1, 3, 8, 2, 5, 4, 1, 2, 8, 3, 2, 4, 8, 2, 6, 3, 1, 7, 2, 1, 3, 7, 2, 3, 6, 2, 3, 1, 2, 6, 1, 8, 3, 1, 2, 3, 5, 6, 2, 3, 4, 2, 5, 3, 1, 2, 3, 1], 56 | [5, 1, 2, 7, 5, 2, 1, 3, 2, 1, 4, 8, 3, 1, 2, 6, 8, 4, 1, 2, 3, 1, 8, 4, 2, 1, 3, 2, 1, 3, 4, 1, 5, 2, 1, 4, 2, 1, 7, 1, 3, 6, 2, 1, 4, 5, 1, 2, 5, 1, 4, 3, 2, 6, 4, 2, 1, 3, 4, 2, 1, 3, 5, 4, 1, 2, 8, 1, 2, 4, 5, 2, 4, 3, 1, 2, 8, 1, 2, 7, 1, 4, 6, 1, 3, 5, 2, 7, 4, 1, 7, 2, 1, 3, 4, 1, 6, 2, 1, 3, 5, 2, 7, 5, 1, 2, 4, 1, 3, 5, 1, 6, 4, 2, 3, 4, 5, 1, 3, 2, 6, 1, 2, 7, 1, 2, 3, 1, 5, 3, 1, 5, 8, 4, 1, 7, 2, 3, 1, 4, 2, 6, 1, 2, 3, 5, 1, 2, 3, 4, 5, 8, 1, 3, 8, 1, 2, 5, 4, 1, 2, 8, 1, 3, 4, 1, 5, 6, 1, 3, 7, 1, 2, 5, 6, 2, 7, 1, 8, 5, 2, 4, 7, 2, 4, 3, 6, 7, 5, 2, 3, 1, 2, 3, 4, 1, 5, 1, 3, 1, 2, 7, 1, 3, 7, 1, 6, 2, 1, 6, 3, 1, 6, 3, 1, 5, 2, 1, 3, 2, 5, 1, 8, 2, 3, 1, 8, 2, 1, 7, 2, 1, 4, 6, 1, 3, 2, 1, 6, 2, 4, 3], 57 | [1, 2, 5, 1, 4, 2, 3, 4, 1, 5, 7, 1, 2, 8, 4, 2, 6, 1, 2, 3, 1, 5, 2, 3, 6, 4, 3, 8, 1, 5, 2, 4, 3, 1, 7, 6, 1, 2, 4, 1, 8, 2, 1, 4, 6, 3, 5, 4, 1, 2, 7, 6, 2, 7, 1, 4, 5, 3, 2, 1, 3, 1, 4, 5, 2, 1, 3, 2, 5, 3, 1, 5, 3, 6, 1, 2, 4, 1, 7, 4, 6, 1, 5, 2, 1, 7, 2, 4, 1, 5, 2, 3, 6, 2, 1, 4, 2, 3, 6, 2, 4, 1, 7, 5, 2, 6, 1, 5, 8, 2, 1, 3, 4, 1, 3, 1, 2, 4, 1, 7, 2, 1, 3, 8, 1, 5, 2, 3, 5, 1, 4, 6, 2, 3, 1, 2, 7, 1, 5, 2, 4, 3, 2, 4, 7, 1, 2, 3, 1, 2, 3, 8, 1, 3, 2, 1, 7, 2, 1, 6, 3, 2, 8, 3, 5, 2, 1, 5, 3, 1, 2, 7, 1, 5, 3, 1, 2, 4, 1, 2, 7, 1, 2, 4, 1, 2, 6, 1, 2, 4, 1, 8, 4, 1, 2, 3, 6, 1, 8, 3, 1, 8, 2, 1, 4, 2, 3, 1, 4, 3, 1, 2, 5, 1, 3, 6, 1, 3, 5, 1, 2, 3, 1, 7, 5, 1, 3, 2, 1, 7, 3, 1, 2, 8, 1, 5, 4, 6, 1, 4, 8, 5] 58 | ], 59 | "Game": { 60 | "Probs": [100, 100, 100], 61 | "Reward": [ 62 | [301960, 0, 0], 63 | [409950, 5, 5], 64 | [94963, 10, 10], 65 | [21998, 20, 20], 66 | [13737, 25, 25], 67 | [9350, 30, 30], 68 | [5095, 40, 40], 69 | [3182, 50, 50], 70 | [1564, 70, 70], 71 | [920, 90, 90], 72 | [0, 100, 100], 73 | [0, 120, 120], 74 | [0, 200, 200], 75 | [0, 220, 220], 76 | [0, 500, 500], 77 | [0, 505, 505], 78 | [0, 510, 510], 79 | [0, 520, 520], 80 | [0, 550, 550], 81 | [0, 570, 570], 82 | [0, 600, 600], 83 | [0, 700, 700]] 84 | }, 85 | "JackPot": { 86 | "Reward": [10, 20, 40] 87 | } 88 | }, 89 | 90 | "Set_2": { 91 | "SetId": 2, 92 | "Normal": [ 93 | [8, 3, 2, 4, 1, 2, 9, 7, 3, 1, 7, 3, 1, 2, 10, 6, 1, 2, 3, 5, 2, 1, 3, 7, 5, 11, 2, 6, 3, 2, 1, 3, 9, 1, 2, 4, 1, 3, 2, 1, 4, 6, 11, 1, 4, 2, 1, 5, 3, 2, 4, 11, 1, 6, 5, 4, 1, 2, 10, 3, 6, 5, 2, 1, 3, 2, 4, 8, 9, 1, 7, 5, 2, 7, 9, 1, 3, 2, 8, 1, 3, 2, 6, 3, 2, 9, 5, 3, 7, 2, 4, 11, 3, 1, 5, 2, 1, 6, 11, 2, 4, 1, 5, 2, 6, 1, 2, 4, 10, 3, 2, 5, 1, 2, 4, 1, 9, 2, 6, 3, 2, 1, 5, 6, 1, 4, 9, 2, 1, 5, 3, 4, 11, 2, 1, 3, 1, 2, 3, 1, 11, 4, 1, 5, 3, 1, 2, 5, 1, 2, 9, 7, 1, 3, 2, 5, 9, 4, 2, 1, 3, 5, 8, 1, 11, 2, 4, 1, 7, 3, 1, 2, 6, 11, 4, 5, 2, 1, 7, 6, 1, 11, 3, 4, 1, 2, 3, 1, 9, 8, 4, 1, 2, 3, 1, 9, 2, 4, 3, 6, 1, 11, 4, 5, 2, 6, 7, 3, 9, 1, 2, 8, 3, 1, 4, 5, 1, 6, 4, 3, 1, 2, 3, 1, 7, 8, 1, 7, 2, 5, 1, 6, 4, 1, 3, 2, 1, 7, 4, 1, 2, 4, 1, 3, 6, 1, 2, 7, 1, 2, 6, 1, 2, 5, 7, 2, 1, 3, 2, 1, 4, 3, 1, 4, 3, 1, 2, 3, 1, 2], 94 | [8, 2, 1, 3, 8, 1, 11, 6, 5, 1, 6, 3, 1, 10, 4, 3, 1, 2, 4, 11, 8, 1, 3, 6, 5, 1, 11, 4, 5, 2, 1, 3, 2, 1, 3, 2, 1, 9, 6, 1, 2, 3, 7, 2, 1, 4, 9, 8, 3, 1, 2, 1, 5, 11, 1, 2, 5, 3, 2, 9, 1, 3, 6, 2, 1, 5, 2, 4, 1, 3, 9, 1, 5, 3, 1, 2, 4, 6, 10, 1, 2, 4, 1, 6, 11, 7, 1, 3, 2, 4, 1, 2, 3, 9, 1, 6, 5, 2, 3, 1, 10, 2, 5, 3, 1, 2, 9, 5, 8, 2, 6, 8, 1, 4, 2, 3, 9, 6, 2, 4, 5, 3, 2, 9, 1, 5, 2, 1, 8, 4, 1, 11, 3, 2, 1, 3, 5, 11, 4, 1, 2, 3, 5, 2, 1, 3, 11, 1, 2, 6, 1, 3, 11, 4, 1, 2, 1, 3, 4, 1, 8, 9, 2, 3, 7, 1, 2, 3, 4, 1, 3, 9, 2, 1, 4, 3, 2, 9, 4, 1, 3, 1, 6, 9, 2, 4, 1, 3, 2, 4, 1, 3, 11, 7, 2, 1, 4, 2, 1, 11, 4, 7, 1, 4, 5, 1, 4, 6, 7, 3, 1, 2, 3, 4, 1, 7, 6, 2, 5, 1, 7, 2, 1, 6, 4, 1, 2, 4, 1, 5, 3, 2, 1, 5, 2, 7, 6, 1, 4, 2, 3, 1, 6, 2, 4, 1, 2, 5, 1, 2, 8, 3, 1, 2, 6, 1, 2, 7, 1, 2, 3, 1, 5, 2, 1, 3, 2, 1, 3, 2, 1, 5], 95 | [7, 6, 3, 4, 7, 1, 9, 3, 2, 4, 1, 5, 6, 3, 9, 8, 4, 3, 2, 8, 1, 4, 2, 10, 7, 3, 1, 4, 2, 3, 9, 7, 2, 1, 3, 2, 5, 11, 3, 2, 1, 5, 2, 1, 4, 9, 8, 3, 1, 2, 7, 10, 4, 1, 5, 2, 6, 7, 11, 1, 2, 5, 3, 1, 11, 2, 3, 1, 2, 8, 6, 11, 1, 3, 4, 5, 2, 3, 1, 5, 9, 2, 1, 6, 4, 2, 3, 10, 1, 5, 7, 4, 6, 3, 5, 2, 9, 4, 2, 3, 2, 1, 4, 9, 2, 1, 3, 2, 7, 1, 2, 3, 9, 8, 1, 4, 5, 3, 9, 1, 6, 2, 4, 3, 2, 1, 11, 4, 3, 2, 1, 5, 6, 1, 2, 11, 3, 8, 5, 3, 2, 1, 4, 9, 3, 5, 1, 3, 6, 7, 3, 9, 2, 7, 4, 2, 3, 9, 4, 2, 1, 3, 2, 1, 2, 9, 5, 2, 3, 4, 2, 3, 5, 9, 1, 2, 4, 3, 8, 6, 11, 1, 8, 7, 2, 1, 11, 5, 3, 2, 1, 5, 2, 3, 1, 11, 2, 5, 3, 1, 2, 3, 1, 4, 11, 3, 1, 8, 5, 2, 3, 1, 11, 6, 3, 5, 7, 6, 4, 2, 5, 9, 4, 2, 1, 3, 4, 1, 3, 9, 2, 1, 3, 2, 4, 3, 1, 6, 3, 2, 1, 3, 2, 6, 3, 2, 1, 4, 2, 3, 6, 2, 1, 3, 5, 2, 1, 3, 2, 1, 5, 3, 2, 1, 4, 2, 3, 4, 2, 5, 3, 6, 2, 1], 96 | [2, 1, 5, 11, 1, 2, 6, 4, 1, 6, 9, 5, 3, 1, 5, 2, 11, 6, 1, 2, 4, 5, 9, 3, 4, 1, 2, 7, 4, 9, 3, 1, 4, 11, 8, 3, 1, 4, 2, 1, 11, 5, 7, 3, 6, 2, 11, 5, 1, 2, 5, 1, 9, 4, 8, 3, 1, 10, 4, 3, 1, 5, 2, 11, 3, 4, 1, 6, 2, 5, 9, 3, 1, 2, 8, 9, 1, 2, 3, 1, 6, 9, 4, 3, 7, 5, 2, 1, 7, 11, 6, 2, 1, 3, 2, 1, 10, 4, 6, 1, 2, 5, 9, 7, 2, 1, 5, 9, 3, 2, 1, 3, 2, 1, 4, 9, 3, 1, 4, 6, 1, 9, 7, 2, 1, 7, 3, 1, 2, 11, 1, 3, 4, 8, 9, 2, 1, 6, 3, 2, 5, 7, 11, 1, 3, 2, 1, 4, 3, 2, 10, 1, 3, 5, 2, 1, 9, 4, 8, 1, 2, 11, 4, 6, 2, 3, 11, 1, 5, 8, 1, 11, 6, 7, 2, 1, 9, 5, 8, 3, 2, 11, 4, 1, 7, 4, 1, 3, 9, 2, 1, 6, 4, 1, 3, 9, 2, 1, 3, 5, 1, 2, 3, 4, 1, 2, 3, 1, 7, 2, 4, 7, 2, 1, 3, 2, 1, 5, 4, 1, 2, 3, 4, 2, 1, 4, 7, 1, 6, 3, 1, 4, 3, 2, 5, 7, 1, 3, 4, 5, 1, 2, 6, 1, 2, 7, 1, 2, 5, 1, 8, 2, 1, 8, 2, 1, 8, 5, 2, 3, 1, 2, 5, 1, 2, 4, 1, 3, 8, 1, 2, 8, 6, 5], 97 | [2, 4, 1, 5, 2, 1, 6, 2, 9, 3, 5, 1, 2, 5, 4, 1, 2, 9, 5, 1, 3, 1, 2, 11, 7, 1, 3, 7, 1, 11, 6, 7, 1, 4, 3, 9, 2, 6, 1, 3, 6, 1, 2, 9, 7, 1, 2, 3, 7, 9, 4, 3, 1, 2, 11, 5, 1, 6, 8, 1, 2, 11, 4, 1, 8, 1, 2, 9, 5, 1, 2, 4, 3, 9, 7, 6, 1, 2, 5, 1, 3, 11, 2, 1, 3, 2, 5, 4, 11, 2, 5, 1, 7, 11, 3, 1, 4, 3, 5, 6, 1, 9, 5, 4, 2, 1, 5, 8, 4, 9, 1, 2, 3, 5, 11, 2, 1, 3, 2, 6, 3, 4, 11, 1, 2, 7, 4, 9, 3, 5, 8, 3, 5, 2, 9, 1, 6, 2, 7, 5, 1, 9, 3, 8, 2, 1, 4, 11, 3, 1, 2, 6, 1, 8, 2, 9, 4, 1, 2, 3, 1, 2, 4, 10, 1, 2, 7, 3, 2, 11, 1, 3, 2, 1, 9, 7, 4, 1, 6, 10, 3, 2, 1, 3, 4, 1, 2, 11, 7, 1, 2, 6, 4, 11, 3, 1, 2, 4, 3, 1, 10, 2, 4, 1, 5, 8, 2, 5, 9, 1, 2, 5, 8, 3, 4, 1, 9, 7, 6, 4, 1, 3, 5, 1, 9, 4, 5, 1, 6, 3, 4, 11, 1, 2, 8, 3, 4, 1, 5, 6, 4, 2, 1, 3, 8, 2, 1, 3, 2, 1, 8, 3, 2, 1, 3, 6, 1, 4, 2, 1, 4, 2, 1, 8, 2, 1, 5, 7, 1, 5, 2, 1, 7, 2, 1, 3] 98 | ], 99 | "Free": [ 100 | [4, 5, 3, 1, 2, 5, 1, 2, 7, 5, 6, 1, 3, 4, 8, 1, 2, 4, 11, 3, 1, 2, 7, 4, 2, 3, 1, 2, 6, 8, 7, 2, 6, 1, 3, 2, 7, 11, 3, 2, 1, 5, 3, 1, 4, 3, 2, 1, 2, 4, 5, 1, 2, 4, 3, 2, 1, 11, 6, 5, 3, 1, 2, 4, 3, 1, 5, 6, 8, 3, 7, 1, 8, 3, 1, 4, 5, 1, 3, 11, 2, 5, 1, 4, 7, 1, 5, 6, 1, 2, 3, 5, 4, 3, 1, 5, 2, 1, 11, 3, 2, 1, 3, 2, 1, 5, 3, 1, 2, 7, 1, 6, 3, 4, 11, 2, 3, 1, 4, 2, 3, 5, 1, 6, 2, 1, 5, 2, 4, 1, 6, 2, 1, 6, 4, 11, 3, 1, 2, 5, 4, 2, 1, 4, 2, 5, 1, 2, 5, 3, 1, 4, 3, 1, 2, 11, 1, 3, 4, 1, 2, 6, 7, 2, 1, 6, 4, 2, 1, 7, 2, 3, 4, 2, 11, 1, 3, 2, 1, 3, 2, 4, 3, 1, 4, 6, 1, 2, 7, 1, 3, 2, 11, 7, 1, 5, 6, 4, 1, 2, 3, 1, 4, 2, 1, 7, 4, 1, 2, 11, 7, 1, 2, 4, 3, 1, 6, 8, 3, 2, 1, 6, 2, 7, 1, 6, 3, 1, 2, 5, 1, 2, 4, 7, 1, 2, 3, 5, 1, 8, 3, 1, 2, 3, 1, 2, 8, 1, 2, 6, 1, 2, 3, 1, 2], 101 | [5, 1, 6, 2, 3, 1, 2, 6, 5, 1, 2, 6, 1, 2, 3, 1, 2, 3, 6, 2, 3, 11, 1, 2, 3, 1, 7, 4, 2, 1, 7, 4, 1, 2, 7, 3, 1, 4, 6, 5, 8, 2, 4, 1, 2, 11, 4, 5, 1, 2, 3, 1, 6, 8, 1, 4, 2, 5, 6, 4, 3, 1, 11, 2, 6, 1, 4, 3, 1, 2, 4, 1, 3, 2, 1, 4, 7, 2, 3, 1, 5, 4, 1, 2, 8, 1, 11, 3, 1, 2, 1, 3, 5, 6, 1, 8, 5, 3, 1, 4, 2, 1, 3, 1, 11, 2, 4, 1, 2, 3, 8, 1, 3, 2, 4, 6, 2, 4, 1, 2, 3, 7, 1, 4, 11, 2, 3, 1, 2, 6, 3, 5, 1, 2, 6, 1, 3, 2, 1, 4, 7, 2, 1, 5, 11, 2, 6, 3, 2, 1, 3, 4, 5, 1, 2, 4, 1, 3, 1, 4, 1, 7, 4, 2, 6, 11, 1, 2, 3, 8, 1, 4, 2, 1, 7, 1, 2, 8, 3, 11, 6, 1, 2, 6, 4, 1, 7, 3, 1, 6, 2, 1, 7, 3, 1, 8, 4, 1, 11, 3, 4, 1, 2, 5, 3, 1, 2, 5, 1, 2, 3, 1, 5, 4, 3, 2, 6, 11, 1, 8, 2, 3, 1, 2, 5, 3, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 1, 5, 2, 1, 5, 3, 1, 5, 3, 1, 2, 5, 1, 2, 5, 1, 2], 102 | [4, 2, 3, 6, 1, 3, 4, 1, 3, 4, 5, 8, 2, 4, 7, 2, 3, 5, 1, 4, 5, 11, 3, 6, 2, 7, 6, 3, 4, 5, 2, 3, 6, 2, 1, 3, 4, 5, 11, 3, 4, 8, 2, 1, 3, 2, 4, 1, 2, 3, 6, 1, 4, 6, 5, 1, 2, 4, 7, 11, 2, 3, 4, 5, 3, 6, 2, 1, 7, 4, 3, 2, 1, 3, 2, 7, 3, 2, 11, 4, 1, 2, 5, 1, 2, 3, 1, 2, 4, 3, 2, 5, 3, 2, 5, 1, 3, 2, 11, 4, 6, 5, 3, 1, 4, 5, 2, 1, 3, 4, 2, 1, 3, 5, 1, 3, 6, 2, 11, 7, 3, 2, 1, 3, 4, 2, 3, 8, 1, 6, 3, 5, 1, 2, 8, 11, 3, 2, 1, 5, 2, 3, 8, 2, 1, 3, 5, 2, 1, 7, 8, 6, 1, 2, 4, 1, 2, 11, 3, 1, 2, 6, 3, 2, 5, 3, 2, 1, 7, 3, 5, 2, 4, 11, 3, 2, 8, 5, 2, 4, 5, 3, 1, 4, 2, 3, 1, 6, 3, 1, 2, 11, 3, 1, 6, 2, 7, 1, 2, 5, 1, 7, 2, 1, 4, 2, 3, 11, 1, 2, 3, 1, 2, 7, 1, 3, 6, 1, 5, 3, 1, 2, 4, 3, 1, 6, 2, 3, 4, 7, 3, 2, 1, 4, 5, 2, 1, 4, 2, 1, 3, 2, 1, 3, 2, 1, 3, 2, 8, 1, 5, 8, 1, 2, 3], 103 | [1, 3, 5, 1, 4, 7, 2, 8, 1, 5, 2, 3, 1, 2, 7, 6, 4, 1, 11, 2, 3, 1, 4, 2, 1, 3, 4, 1, 6, 2, 11, 1, 5, 6, 2, 1, 6, 2, 3, 4, 2, 3, 1, 11, 4, 6, 7, 4, 3, 1, 6, 2, 5, 8, 7, 2, 3, 11, 1, 2, 3, 1, 2, 4, 1, 3, 2, 5, 4, 1, 3, 5, 11, 7, 3, 5, 2, 1, 8, 2, 1, 3, 4, 1, 11, 2, 3, 1, 4, 2, 1, 7, 3, 2, 5, 7, 1, 8, 11, 5, 2, 1, 3, 4, 2, 1, 5, 8, 1, 4, 5, 2, 4, 1, 11, 2, 8, 1, 3, 2, 1, 4, 2, 1, 3, 5, 1, 4, 3, 1, 2, 3, 11, 6, 2, 3, 1, 2, 5, 1, 3, 2, 1, 7, 4, 3, 1, 11, 2, 4, 1, 5, 2, 1, 6, 3, 2, 4, 5, 1, 8, 5, 3, 11, 4, 6, 3, 1, 2, 5, 3, 6, 1, 3, 5, 2, 1, 8, 11, 2, 7, 1, 6, 4, 1, 3, 2, 4, 1, 7, 4, 1, 2, 7, 11, 1, 2, 3, 1, 4, 2, 5, 1, 2, 3, 1, 2, 6, 7, 1, 3, 8, 1, 2, 8, 1, 6, 4, 2, 1, 7, 2, 1, 3, 8, 2, 1, 5, 3, 1, 6, 5, 4, 6, 1, 2, 4, 1, 5, 6, 1, 8, 4, 1, 2, 7, 1, 5, 3, 1, 2, 7, 1, 5, 2], 104 | [5, 1, 2, 6, 5, 2, 1, 7, 2, 1, 4, 3, 2, 11, 7, 1, 4, 7, 6, 1, 5, 4, 2, 7, 3, 1, 5, 11, 2, 1, 3, 2, 1, 4, 8, 6, 1, 5, 4, 1, 11, 2, 4, 5, 2, 1, 6, 3, 1, 8, 2, 3, 1, 8, 6, 5, 1, 4, 11, 3, 5, 2, 1, 3, 4, 2, 1, 3, 5, 1, 11, 1, 2, 4, 3, 2, 1, 5, 7, 2, 3, 1, 4, 2, 1, 11, 3, 5, 1, 2, 4, 3, 1, 5, 8, 1, 5, 6, 7, 1, 3, 2, 11, 1, 7, 3, 5, 2, 1, 5, 2, 1, 6, 5, 2, 11, 7, 1, 4, 3, 2, 1, 4, 7, 2, 6, 1, 3, 11, 4, 5, 2, 1, 4, 2, 1, 5, 8, 3, 2, 1, 4, 3, 8, 1, 11, 2, 3, 8, 5, 3, 4, 1, 2, 8, 4, 2, 1, 11, 5, 3, 6, 4, 1, 2, 3, 1, 4, 2, 1, 11, 6, 2, 4, 8, 1, 3, 4, 1, 2, 6, 4, 2, 1, 3, 5, 2, 4, 11, 7, 1, 2, 3, 7, 6, 1, 2, 3, 6, 1, 4, 7, 1, 2, 6, 11, 5, 1, 7, 2, 1, 5, 8, 1, 2, 3, 7, 1, 3, 2, 1, 8, 2, 1, 6, 2, 1, 3, 4, 1, 2, 3, 1, 4, 3, 1, 2, 5, 7, 1, 3, 2, 1, 8, 2, 1, 4, 3, 1, 2, 3, 1, 2, 6, 1, 3] 105 | ], 106 | "Game": { 107 | "Probs": [0, 60, 80, 100], 108 | "Reward": [[301960, 0, 0], [409950, 5, 5], [94963, 10, 10], [21998, 20, 20], [13737, 25, 25], [9350, 30, 30], [5095, 40, 40], [3182, 50, 50], [1564, 70, 70], [920, 90, 90], [0, 100, 100], [0, 120, 120], [0, 200, 200], [0, 220, 220], [0, 500, 500], [0, 505, 505], [0, 510, 510], [0, 520, 520], [0, 550, 550], [0, 570, 570], [0, 600, 600], [0, 700, 700]] 109 | }, 110 | "JackPot": { 111 | "Reward": [10, 20, 40] 112 | } 113 | }, 114 | 115 | "Set_3": { 116 | "SetId": 3, 117 | "Normal": [ 118 | [5, 1, 2, 4, 1, 10, 2, 3, 1, 2, 3, 1, 11, 6, 2, 1, 4, 3, 9, 1, 2, 5, 6, 1, 11, 4, 2, 3, 6, 9, 1, 2, 5, 3, 2, 9, 1, 8, 5, 1, 10, 2, 4, 3, 1, 2, 3, 10, 1, 2, 5, 3, 11, 4, 2, 1, 7, 2, 6, 1, 11, 3, 4, 2, 1, 9, 4, 8, 2, 1, 3, 11, 4, 1, 2, 7, 11, 1, 6, 2, 1, 3, 9, 5, 2, 3, 4, 1, 5, 9, 3, 6, 1, 5, 2, 11, 7, 1, 2, 3, 1, 11, 2, 3, 6, 1, 2, 3, 11, 1, 4, 8, 1, 3, 2, 1, 9, 5, 7, 2, 4, 5, 2, 1, 9, 4, 6, 1, 7, 9, 3, 4, 1, 3, 2, 1, 11, 7, 2, 3, 1, 6, 4, 1, 11, 3, 2, 1, 3, 9, 2, 1, 3, 5, 1, 2, 9, 3, 7, 1, 3, 2, 9, 1, 4, 2, 1, 8, 9, 5, 2, 6, 1, 11, 4, 2, 5, 1, 4, 11, 2, 5, 6, 1, 3, 6, 11, 1, 3, 6, 2, 1, 11, 8, 3, 4, 7, 11, 1, 3, 7, 1, 5, 3, 2, 11, 1, 6, 3, 2, 7, 9, 1, 2, 4, 1, 2, 4, 3, 7, 4, 2, 7, 8, 2, 1, 5, 3, 2, 4, 1, 6, 4, 1, 3, 2, 4, 5, 8, 1, 5, 2, 7, 1, 3, 4, 2, 1, 4, 2, 6, 1, 7, 2, 1, 5, 3, 1, 11, 7, 2, 3, 1, 11, 2, 3, 1, 6, 2, 1, 3, 5, 4, 2, 6, 1, 11, 5, 2, 1, 4], 119 | [3, 1, 2, 6, 3, 11, 2, 4, 1, 3, 9, 5, 1, 3, 4, 11, 1, 3, 2, 1, 10, 8, 3, 7, 4, 1, 2, 3, 9, 1, 4, 2, 6, 1, 10, 2, 3, 1, 8, 2, 5, 1, 11, 4, 2, 1, 6, 9, 3, 1, 6, 1, 11, 2, 1, 3, 2, 1, 9, 5, 2, 6, 3, 1, 2, 11, 7, 1, 3, 4, 1, 2, 4, 11, 6, 2, 1, 5, 2, 9, 1, 3, 2, 5, 3, 11, 1, 2, 4, 1, 11, 3, 7, 1, 2, 9, 3, 1, 2, 7, 3, 1, 9, 2, 3, 1, 2, 4, 1, 9, 8, 6, 1, 3, 9, 2, 4, 1, 2, 7, 6, 11, 2, 1, 3, 6, 2, 1, 3, 11, 4, 6, 1, 2, 5, 3, 2, 9, 1, 5, 4, 6, 2, 1, 4, 11, 5, 2, 1, 4, 5, 7, 1, 11, 2, 4, 1, 2, 8, 3, 1, 10, 5, 4, 1, 3, 8, 2, 1, 11, 3, 7, 2, 1, 4, 11, 8, 3, 4, 2, 9, 1, 5, 3, 2, 1, 9, 5, 2, 1, 5, 3, 1, 4, 9, 2, 3, 4, 1, 2, 11, 6, 1, 3, 2, 5, 1, 11, 3, 2, 1, 5, 8, 2, 11, 1, 4, 2, 5, 6, 9, 1, 4, 2, 6, 3, 2, 1, 4, 11, 7, 2, 1, 6, 11, 1, 2, 1, 3, 6, 2, 1, 5, 4, 7, 1, 5, 2, 4, 1, 2, 3, 1, 4, 2, 1, 5, 3, 11, 1, 5, 6, 1, 3, 2, 1, 5, 4, 1, 3, 8, 1, 3, 6, 1, 3, 7, 1, 4, 2, 1, 8, 2], 120 | [3, 2, 4, 3, 2, 1, 4, 9, 2, 3, 4, 9, 5, 3, 2, 9, 1, 4, 2, 1, 3, 9, 2, 1, 5, 2, 6, 11, 3, 8, 4, 1, 9, 2, 4, 7, 11, 3, 1, 5, 2, 3, 9, 1, 5, 7, 3, 9, 6, 1, 2, 4, 1, 3, 9, 2, 6, 5, 9, 2, 1, 3, 11, 2, 1, 3, 2, 8, 9, 3, 5, 2, 4, 10, 5, 2, 1, 9, 4, 2, 1, 4, 11, 7, 3, 2, 4, 3, 11, 2, 7, 1, 2, 3, 5, 11, 2, 1, 4, 3, 9, 1, 2, 3, 6, 11, 2, 1, 8, 2, 1, 8, 11, 3, 2, 1, 4, 3, 11, 1, 2, 7, 11, 6, 2, 5, 1, 3, 5, 10, 1, 3, 2, 9, 7, 6, 2, 4, 1, 11, 2, 5, 1, 2, 9, 3, 5, 2, 1, 3, 5, 11, 2, 3, 1, 2, 10, 4, 1, 2, 3, 9, 6, 7, 3, 6, 1, 3, 9, 4, 2, 3, 9, 5, 2, 1, 3, 7, 6, 9, 1, 2, 4, 11, 5, 1, 3, 2, 7, 11, 4, 3, 5, 11, 7, 1, 2, 4, 11, 3, 1, 4, 5, 8, 11, 2, 1, 3, 2, 11, 6, 4, 5, 2, 3, 6, 1, 3, 6, 11, 1, 3, 5, 2, 3, 4, 2, 3, 4, 8, 3, 1, 5, 2, 3, 11, 8, 2, 1, 3, 2, 1, 3, 8, 1, 3, 4, 2, 1, 3, 2, 1, 6, 7, 1, 2, 4, 1, 3, 6, 11, 1, 3, 8, 2, 4, 6, 2, 5, 1, 3, 2, 5, 4, 1, 7, 5, 3, 2, 4, 3, 6, 1, 2, 3, 5], 121 | [3, 7, 4, 1, 5, 11, 2, 1, 3, 4, 11, 2, 1, 3, 7, 2, 1, 11, 4, 5, 1, 9, 3, 7, 8, 1, 11, 3, 2, 1, 10, 3, 4, 1, 9, 2, 6, 4, 1, 5, 9, 2, 1, 4, 3, 11, 1, 4, 2, 3, 9, 1, 5, 7, 1, 4, 9, 2, 3, 4, 9, 2, 1, 3, 11, 6, 4, 1, 5, 11, 2, 3, 1, 10, 5, 3, 2, 11, 4, 5, 1, 2, 7, 11, 1, 3, 5, 9, 4, 8, 2, 1, 9, 3, 5, 8, 2, 1, 11, 7, 5, 6, 11, 1, 2, 3, 1, 2, 9, 3, 1, 2, 9, 8, 1, 2, 3, 6, 9, 7, 2, 1, 4, 10, 3, 1, 6, 2, 11, 4, 1, 2, 5, 9, 1, 7, 2, 9, 1, 3, 2, 1, 3, 9, 5, 8, 2, 4, 9, 1, 2, 4, 1, 11, 2, 5, 1, 11, 2, 6, 1, 11, 2, 8, 7, 9, 1, 8, 3, 2, 11, 1, 5, 4, 8, 3, 11, 1, 6, 7, 2, 3, 11, 1, 2, 6, 5, 11, 1, 4, 2, 1, 11, 5, 4, 1, 9, 8, 4, 1, 9, 3, 7, 6, 3, 1, 2, 7, 2, 5, 2, 6, 1, 3, 4, 1, 3, 2, 5, 1, 4, 5, 1, 3, 7, 1, 2, 11, 4, 3, 1, 4, 2, 3, 5, 11, 1, 2, 6, 1, 3, 6, 2, 1, 6, 4, 1, 2, 8, 3, 1, 4, 2, 1, 8, 2, 1, 6, 3, 1, 6, 2, 5, 11, 6, 1, 7, 2, 1, 5, 2, 8, 1, 5, 3, 2, 5, 1, 2, 4, 1, 3, 7, 4, 1, 2], 122 | [1, 8, 1, 3, 2, 11, 1, 2, 5, 9, 3, 1, 2, 6, 1, 2, 10, 3, 1, 2, 9, 3, 1, 2, 3, 11, 4, 2, 1, 9, 5, 4, 1, 11, 7, 5, 1, 2, 4, 11, 1, 2, 3, 8, 9, 1, 4, 7, 5, 9, 2, 3, 4, 9, 5, 1, 6, 2, 11, 5, 3, 1, 11, 4, 6, 1, 9, 2, 8, 1, 10, 6, 2, 1, 3, 2, 10, 1, 3, 4, 11, 1, 5, 4, 1, 9, 3, 2, 5, 3, 1, 9, 5, 2, 4, 11, 3, 2, 1, 11, 4, 3, 2, 9, 1, 5, 6, 8, 11, 2, 1, 6, 2, 9, 3, 7, 5, 11, 1, 4, 2, 1, 4, 9, 7, 3, 1, 6, 9, 7, 3, 1, 7, 11, 4, 2, 1, 11, 6, 2, 3, 9, 1, 2, 4, 5, 2, 9, 1, 4, 2, 3, 7, 9, 1, 2, 8, 9, 7, 1, 4, 7, 11, 1, 4, 5, 2, 1, 11, 3, 2, 1, 11, 3, 8, 7, 1, 9, 2, 4, 1, 11, 3, 5, 2, 1, 11, 8, 2, 1, 11, 7, 5, 2, 3, 11, 1, 4, 2, 1, 7, 11, 3, 8, 6, 4, 9, 1, 3, 4, 1, 3, 2, 1, 6, 2, 1, 4, 8, 1, 3, 5, 2, 1, 5, 2, 11, 1, 7, 5, 2, 3, 1, 2, 6, 1, 2, 5, 11, 1, 6, 3, 2, 1, 5, 8, 1, 4, 3, 1, 4, 3, 1, 4, 2, 1, 6, 4, 1, 5, 7, 1, 5, 3, 11, 4, 2, 5, 1, 8, 3, 2, 5, 3, 8, 2, 1, 4, 3, 6, 2, 1, 7, 6, 1, 2, 6, 2] 123 | ], 124 | "Free": [ 125 | [4, 5, 3, 1, 2, 5, 1, 2, 7, 5, 6, 1, 3, 4, 8, 1, 2, 4, 11, 3, 1, 2, 7, 4, 2, 3, 1, 2, 6, 8, 7, 2, 6, 1, 3, 2, 7, 11, 3, 2, 1, 5, 3, 1, 4, 3, 2, 1, 2, 4, 5, 1, 2, 4, 3, 2, 1, 11, 6, 5, 3, 1, 2, 4, 3, 1, 5, 6, 8, 3, 7, 1, 8, 3, 1, 4, 5, 1, 3, 11, 2, 5, 1, 4, 7, 1, 5, 6, 1, 2, 3, 5, 4, 3, 1, 5, 2, 1, 11, 3, 2, 1, 3, 2, 1, 5, 3, 1, 2, 7, 1, 6, 3, 4, 11, 2, 3, 1, 4, 2, 3, 5, 1, 6, 2, 1, 5, 2, 4, 1, 6, 2, 1, 6, 4, 11, 3, 1, 2, 5, 4, 2, 1, 4, 2, 5, 1, 2, 5, 3, 1, 4, 3, 1, 2, 11, 1, 3, 4, 1, 2, 6, 7, 2, 1, 6, 4, 2, 1, 7, 2, 3, 4, 2, 11, 1, 3, 2, 1, 3, 2, 4, 3, 1, 4, 6, 1, 2, 7, 1, 3, 2, 11, 7, 1, 5, 6, 4, 1, 2, 3, 1, 4, 2, 1, 7, 4, 1, 2, 11, 7, 1, 2, 4, 3, 1, 6, 8, 3, 2, 1, 6, 2, 7, 1, 6, 3, 1, 2, 5, 1, 2, 4, 7, 1, 2, 3, 5, 1, 8, 3, 1, 2, 3, 1, 2, 8, 1, 2, 6, 1, 2, 3, 1, 2], 126 | [5, 1, 6, 2, 3, 1, 2, 6, 5, 1, 2, 6, 1, 2, 3, 1, 2, 3, 6, 2, 3, 11, 1, 2, 3, 1, 7, 4, 2, 1, 7, 4, 1, 2, 7, 3, 1, 4, 6, 5, 8, 2, 4, 1, 2, 11, 4, 5, 1, 2, 3, 1, 6, 8, 1, 4, 2, 5, 6, 4, 3, 1, 11, 2, 6, 1, 4, 3, 1, 2, 4, 1, 3, 2, 1, 4, 7, 2, 3, 1, 5, 4, 1, 2, 8, 1, 11, 3, 1, 2, 1, 3, 5, 6, 1, 8, 5, 3, 1, 4, 2, 1, 3, 1, 11, 2, 4, 1, 2, 3, 8, 1, 3, 2, 4, 6, 2, 4, 1, 2, 3, 7, 1, 4, 11, 2, 3, 1, 2, 6, 3, 5, 1, 2, 6, 1, 3, 2, 1, 4, 7, 2, 1, 5, 11, 2, 6, 3, 2, 1, 3, 4, 5, 1, 2, 4, 1, 3, 1, 4, 1, 7, 4, 2, 6, 11, 1, 2, 3, 8, 1, 4, 2, 1, 7, 1, 2, 8, 3, 11, 6, 1, 2, 6, 4, 1, 7, 3, 1, 6, 2, 1, 7, 3, 1, 8, 4, 1, 11, 3, 4, 1, 2, 5, 3, 1, 2, 5, 1, 2, 3, 1, 5, 4, 3, 2, 6, 11, 1, 8, 2, 3, 1, 2, 5, 3, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 1, 5, 2, 1, 5, 3, 1, 5, 3, 1, 2, 5, 1, 2, 5, 1, 2], 127 | [4, 2, 3, 6, 1, 3, 4, 1, 3, 4, 5, 8, 2, 4, 7, 2, 3, 5, 1, 4, 5, 11, 3, 6, 2, 7, 6, 3, 4, 5, 2, 3, 6, 2, 1, 3, 4, 5, 11, 3, 4, 8, 2, 1, 3, 2, 4, 1, 2, 3, 6, 1, 4, 6, 5, 1, 2, 4, 7, 11, 2, 3, 4, 5, 3, 6, 2, 1, 7, 4, 3, 2, 1, 3, 2, 7, 3, 2, 11, 4, 1, 2, 5, 1, 2, 3, 1, 2, 4, 3, 2, 5, 3, 2, 5, 1, 3, 2, 11, 4, 6, 5, 3, 1, 4, 5, 2, 1, 3, 4, 2, 1, 3, 5, 1, 3, 6, 2, 11, 7, 3, 2, 1, 3, 4, 2, 3, 8, 1, 6, 3, 5, 1, 2, 8, 11, 3, 2, 1, 5, 2, 3, 8, 2, 1, 3, 5, 2, 1, 7, 8, 6, 1, 2, 4, 1, 2, 11, 3, 1, 2, 6, 3, 2, 5, 3, 2, 1, 7, 3, 5, 2, 4, 11, 3, 2, 8, 5, 2, 4, 5, 3, 1, 4, 2, 3, 1, 6, 3, 1, 2, 11, 3, 1, 6, 2, 7, 1, 2, 5, 1, 7, 2, 1, 4, 2, 3, 11, 1, 2, 3, 1, 2, 7, 1, 3, 6, 1, 5, 3, 1, 2, 4, 3, 1, 6, 2, 3, 4, 7, 3, 2, 1, 4, 5, 2, 1, 4, 2, 1, 3, 2, 1, 3, 2, 1, 3, 2, 8, 1, 5, 8, 1, 2, 3], 128 | [1, 3, 5, 1, 4, 7, 2, 8, 1, 5, 2, 3, 1, 2, 7, 6, 4, 1, 11, 2, 3, 1, 4, 2, 1, 3, 4, 1, 6, 2, 11, 1, 5, 6, 2, 1, 6, 2, 3, 4, 2, 3, 1, 11, 4, 6, 7, 4, 3, 1, 6, 2, 5, 8, 7, 2, 3, 11, 1, 2, 3, 1, 2, 4, 1, 3, 2, 5, 4, 1, 3, 5, 11, 7, 3, 5, 2, 1, 8, 2, 1, 3, 4, 1, 11, 2, 3, 1, 4, 2, 1, 7, 3, 2, 5, 7, 1, 8, 11, 5, 2, 1, 3, 4, 2, 1, 5, 8, 1, 4, 5, 2, 4, 1, 11, 2, 8, 1, 3, 2, 1, 4, 2, 1, 3, 5, 1, 4, 3, 1, 2, 3, 11, 6, 2, 3, 1, 2, 5, 1, 3, 2, 1, 7, 4, 3, 1, 11, 2, 4, 1, 5, 2, 1, 6, 3, 2, 4, 5, 1, 8, 5, 3, 11, 4, 6, 3, 1, 2, 5, 3, 6, 1, 3, 5, 2, 1, 8, 11, 2, 7, 1, 6, 4, 1, 3, 2, 4, 1, 7, 4, 1, 2, 7, 11, 1, 2, 3, 1, 4, 2, 5, 1, 2, 3, 1, 2, 6, 7, 1, 3, 8, 1, 2, 8, 1, 6, 4, 2, 1, 7, 2, 1, 3, 8, 2, 1, 5, 3, 1, 6, 5, 4, 6, 1, 2, 4, 1, 5, 6, 1, 8, 4, 1, 2, 7, 1, 5, 3, 1, 2, 7, 1, 5, 2], 129 | [5, 1, 2, 6, 5, 2, 1, 7, 2, 1, 4, 3, 2, 11, 7, 1, 4, 7, 6, 1, 5, 4, 2, 7, 3, 1, 5, 11, 2, 1, 3, 2, 1, 4, 8, 6, 1, 5, 4, 1, 11, 2, 4, 5, 2, 1, 6, 3, 1, 8, 2, 3, 1, 8, 6, 5, 1, 4, 11, 3, 5, 2, 1, 3, 4, 2, 1, 3, 5, 1, 11, 1, 2, 4, 3, 2, 1, 5, 7, 2, 3, 1, 4, 2, 1, 11, 3, 5, 1, 2, 4, 3, 1, 5, 8, 1, 5, 6, 7, 1, 3, 2, 11, 1, 7, 3, 5, 2, 1, 5, 2, 1, 6, 5, 2, 11, 7, 1, 4, 3, 2, 1, 4, 7, 2, 6, 1, 3, 11, 4, 5, 2, 1, 4, 2, 1, 5, 8, 3, 2, 1, 4, 3, 8, 1, 11, 2, 3, 8, 5, 3, 4, 1, 2, 8, 4, 2, 1, 11, 5, 3, 6, 4, 1, 2, 3, 1, 4, 2, 1, 11, 6, 2, 4, 8, 1, 3, 4, 1, 2, 6, 4, 2, 1, 3, 5, 2, 4, 11, 7, 1, 2, 3, 7, 6, 1, 2, 3, 6, 1, 4, 7, 1, 2, 6, 11, 5, 1, 7, 2, 1, 5, 8, 1, 2, 3, 7, 1, 3, 2, 1, 8, 2, 1, 6, 2, 1, 3, 4, 1, 2, 3, 1, 4, 3, 1, 2, 5, 7, 1, 3, 2, 1, 8, 2, 1, 4, 3, 1, 2, 3, 1, 2, 6, 1, 3] 130 | ], 131 | "Game": { 132 | "Probs": [0, 60, 80, 100], 133 | "Reward": [[301960, 0, 0], [409950, 5, 5], [94963, 10, 10], [21998, 20, 20], [13737, 25, 25], [9350, 30, 30], [5095, 40, 40], [3182, 50, 50], [1564, 70, 70], [920, 90, 90], [0, 100, 100], [0, 120, 120], [0, 200, 200], [0, 220, 220], [0, 500, 500], [0, 505, 505], [0, 510, 510], [0, 520, 520], [0, 550, 550], [0, 570, 570], [0, 600, 600], [0, 700, 700]] 134 | }, 135 | "JackPot": { 136 | "Reward": [10, 20, 40] 137 | } 138 | } 139 | } 140 | --------------------------------------------------------------------------------