---
title: '寶可夢Server架構'
---[TOC]
# 測試方式
### 通訊協定 = websocket
### port = 10001
### IP = 35.230.88.33
### 連線url = ws://35.230.88.33:10001/GameCmd
### data 格式 json字串
### 加密方式 目前debug版無加密 正式release版使用AES加解密
### 不用寫code 連線小工具 http://www.websocket.org/echo.html

Location 欄位貼上 ws://35.230.88.33:10001/GameCmd
按下 connect 按鈕即可連線到 gameServer
下面Message 欄位就是要貼上的 封包 json 字串
接著按下 send 按鈕即可送出封包
右邊Log框是server回應訊息
# 封包:
## 註冊帳號封包 Cmd=createAccount
請求封包格式
| 欄位 | 資料型態 | 內容 |
| -------- | -------- | -------- |
| sys | string | 系統(system)或遊戲(game) |
| cmd | string | 封包名稱 |
| isEncode | bool | 加密與否 |
| data | Obj | Text |
| platformId | Text | 平台編號 |
| account | string | 帳號 |
| password | string | 密碼 |
| nickName | string | 玩家暱稱 |
| phoneNumber | string | 玩家電話號碼 |
| email | string | 玩家電子郵箱 |
| privateKey | string | 區塊鍊密鑰 |
| token | string | 區塊鍊Token |
| referrerUserId | int | 推薦人會員Id |
```json=
{
"sys":"system",
"cmd":"createAccount",
"isEncode":false,
"data":{
"platformId":1,
"account":"cat111",
"password":"1234",
"nickName":"新人王",
"phoneNumber":"09xx123456",
"email":"dog111@gmail.com",
"privateKey": "區塊鍊密鑰",
"token": "0x9dAA47E1d50A0b19bd2001d0d4468cf533551bd9"
"referrerUserId":112233
}
}
```
回應封包格式
| 欄位 | 資料型態 | 內容 |
| -------- | -------- | -------- |
| sys | string | 系統(system)或遊戲(game) |
| cmd | string | 封包名稱 |
| isEncode | bool | 加密與否 |
| data | Obj | Text |
| platformId | Text | 平台編號 |
| account | string | 帳號 |
| password | string | 密碼 |
| nickName | string | 暱稱 |
| balance | float | 會員點數 |
| email | string | 玩家電子郵箱 |
| privateKey | string | 區塊鍊密鑰 |
| token | string | 區塊鍊Token |
| referrerUserId | int | 推薦人會員Id |
```json=
{
"code":0,
"message":"回應成功阿",
"sys":"system",
"clientId":0,
"sn":0,
"isEncode":false,
"ver":0,
"ret":"login",
"data":{
"userId":1,
"account":"cat111",
"nickName":"新人王",
"balance":0,
"token":"a9cdd49e-6afc-4456-a9f0-3aa7ab7c31a6",
"email":"dog111@gmail.com",
"privateKey": "區塊鍊密鑰",
"token": "0x9dAA47E1d50A0b19bd2001d0d4468cf533551bd9",
"referrerUserId":112233
}
}
```
# 封包:
## 登入封包 Cmd=login
請求封包格式
| 欄位 | 資料型態 | 內容 |
| -------- | -------- | -------- |
| sys | string | 系統(system)或遊戲(game) |
| cmd | string | 封包名稱 |
| isEncode | bool | 加密與否 |
| data | Obj | Text |
| platformId | Text | 平台編號 |
| account | string | 帳號 |
| password | string | 密碼 |
```json=
{
"sys":"system",
"cmd":"login",
"isEncode":false,
"data":{
"platformId":1,
"account":"cat111",
"password":"1234"
}
}
```
回應封包格式
| 欄位 | 資料型態 | 內容 |
| -------- | -------- | -------- |
| sys | string | 系統(system)或遊戲(game) |
| cmd | string | 封包名稱 |
| isEncode | bool | 加密與否 |
| data | Obj | Text |
| platformId | Text | 平台編號 |
| account | string | 帳號 |
| password | string | 密碼 |
| nickName | string | 暱稱 |
| balance | float | 會員點數 |
| token | string | token |
```json=
{
"code":0,
"message":"回應成功阿",
"sys":"system",
"clientId":0,
"sn":0,
"isEncode":false,
"ver":0,
"ret":"login",
"data":{
"userId":1,
"account":"cat111",
"nickName":"無名1",
"balance":0,
"token":"a9cdd49e-6afc-4456-a9f0-3aa7ab7c31a6",
"tokenUpdateTime":"2020-04-18 15:03:10"
}
}
```
# 商店目前開放可以抓取寵物清單取得
## Cmd=shopMonsterListGet
請求封包格式
| 欄位 | 資料型態 | 內容 |
| -------- | -------- | -------- |
| sys | string | 系統(system)或遊戲(game) |
| cmd | string | 封包名稱 shop_monster_list_get |
| isEncode | bool | 加密與否 |
| data | Obj | 封包資料 |
| platformId | int | 平台編號 |
| account | string | 帳號 |
| userId | int | 會員流水編號 |
```json=
{
"sys":"game",
"cmd":"shopMonsterListGet",
"sn":12345,
"isEncode":false,
"data":{
"platformId":1,
"account":"cat111",
"userId":1
}
}
```
回應封包格式
| 欄位 | 資料型態 | 內容 |
| -------- | -------- | -------- |
| evolutionData | Array | 怪物進化分裂列表 |
| enable | bool | 寵物是否啟用 |
| monsterNo | number | 寵物編號 |
| costMin | float | 最小價格 |
| costMax | float | 最大價格 |
| reservationCost | float | 預約消耗燃油(手續費) |
| driveCost | float | 駕駛消耗燃油 |
| getCoin | float | 可挖SOLO幣 |
| shopMoney | float | 商城購物金 |
| endDay | number | 結束天數 |
| incomePercent | float | 收益總趴數 (EndDay N天結束後的總趴數) |
| incomePercentByDay | float | 收益日趴數(IncomePercent/EndDay) |
| userId | number | 會員編號(持有者) |
| account | string | 帳號(持有者) |
| reservationUserID | number | 會員編號(預約者) |
| reservationAccount | string | 帳號(預約者) |
| reservationTime | string | 紀錄預約時間, timeout 時, 就把預約者改回空白 |
| createTime | string | 紀錄生產寵物時間 |
| costNow | float | 目前價格 ( 超過CostMax 會進化拆分成N隻寵物 ) |
| alive | bool | 是否存活著 (釋放後或過期就是false, 寵物持有中就是true) |
| reservationKind | number | 預約種類 0: unknow 1:指定預約 2:隨機預約 3:隨機預約-開始 4:隨機預約-搶輸 5:此預約處理完畢 |
| orderState | number | 寵物狀態, ORDER_STATE_EVOLUTION 代表以進化後的靜止寵物, 所以可以繼 |
| orderId | string | 物此訂單的訂單Id |
| serialNumber | number | 寵物的流水序號 |
| dayCount | number | 累積了多少天 |
| buyNotifyCheck | bool | 是否核對此寵物已付款, 如果已經付款就可以賣人(玩家預約買寵物, 匯款給某人, 拍照上傳, GM或持有人再去核對資料, 核對完畢就 BuyNotifyCheck=true) |
```json=
{
"code":0,
"message":"回應成功阿",
"sys":"game",
"clientId":0,
"sn":0,
"isEncode":false,
"ver":0,
"ret":"shopMonsterListGet",
"data":{
"storeMonsterList":[
{
"evolutionData":null,
"enable":true,
"monsterNo":0,
"name":"藍色勇士",
"costMin":55,
"costMax":300,
"reservationCost":[3,5],
"driveCost":1,
"getCoin":1,
"shopMoney":10,
"endDay":3,
"incomePercent":17,
"incomePercentByDay":5.67,
"userId":0,
"account":"",
"reservationUserID":0,
"reservationAccount":"",
"reservationTime":0,
"costNow":55,
"alive":true,
"reservationKind":2,
"orderState":1,
"orderId":"",
"serialNumber":0,
"dayCount":0,
"buyNotifyCheck":false
},
{
"evolutionData":null,
"enable":true,
"monsterNo":1,
"name":"黃色鎧甲",
"costMin":300,
"costMax":600,
"reservationCost":[11,15],
"driveCost":1,
"getCoin":1,
"shopMoney":10,
"endDay":5,
"incomePercent":19,
"incomePercentByDay":3.8,
"userId":0,
"account":"",
"reservationUserID":0,
"reservationAccount":"",
"reservationTime":0,
"costNow":300,
"alive":true,
"reservationKind":2,
"orderState":1,
"orderId":"",
"serialNumber":1,
"dayCount":0,
"buyNotifyCheck":false
}
]
}
}
```
# 商店已上架的寵物清單取得
## Cmd=shopMonsterListAllGet
請求封包格式
| 欄位 | 資料型態 | 內容 |
| -------- | -------- | -------- |
| sys | string | 系統(system)或遊戲(game) |
| cmd | string | 封包名稱 shop_monster_list_get |
| isEncode | bool | 加密與否 |
| data | Obj | 封包資料 |
| platformId | int | 平台編號 |
| account | string | 帳號 |
| userId | int | 會員流水編號 |
```json=
{
"sys":"game",
"cmd":"shopMonsterListAllGet",
"sn":12345,
"isEncode":false,
"data":{
"platformId":1,
"account":"cat111",
"userId":1
}
}
```
回應封包格式 同商城清單(shopMonsterListGet)
# 預約寵物清單取得
## Cmd=shopMonsterReservationListGet
請求封包格式
| 欄位 | 資料型態 | 內容 |
| -------- | -------- | -------- |
| sys | string | 系統(system)或遊戲(game) |
| cmd | string | 封包名稱 shop_monster_list_get |
| isEncode | bool | 加密與否 |
| data | Obj | 封包資料 |
| platformId | int | 平台編號 |
| account | string | 帳號 |
| userId | int | 會員流水編號 |
```json=
{
"sys":"game",
"cmd":"shopMonsterReservationListGet",
"sn":12345,
"isEncode":false,
"data":{
"platformId":1,
"account":"cat111",
"userId":1
}
}
```
回應封包格式 同商城清單(shopMonsterListGet)
```json=
{
"code":0,
"message":"回應成功阿",
"sys":"game",
"clientId":0,
"sn":0,
"isEncode":false,
"ver":0,
"ret":"shopMonsterReservationListGet",
"data":{
"storeMonsterList":[
{
"evolutionData":null,
"enable":true,
"monsterNo":0,
"name":"藍色勇士",
"costMin":55,
"costMax":300,
"reservationCost":[3,5],
"driveCost":1,
"getCoin":1,
"shopMoney":10,
"endDay":3,
"incomePercent":17,
"incomePercentByDay":5.67,
"userId":0,
"account":"",
"reservationUserID":0,
"reservationAccount":"",
"reservationTime":0,
"costNow":55,
"alive":true,
"reservationKind":2,
"orderState":1,
"orderId":"",
"serialNumber":0,
"dayCount":0,
"buyNotifyCheck":false
},
{
"evolutionData":null,
"enable":true,
"monsterNo":1,
"name":"黃色鎧甲",
"costMin":300,
"costMax":600,
"reservationCost":[11,15],
"driveCost":1,
"getCoin":1,
"shopMoney":10,
"endDay":5,
"incomePercent":19,
"incomePercentByDay":3.8,
"userId":0,
"account":"",
"reservationUserID":0,
"reservationAccount":"",
"reservationTime":0,
"costNow":300,
"alive":true,
"reservationKind":2,
"orderState":1,
"orderId":"",
"serialNumber":1,
"dayCount":0,
"buyNotifyCheck":false
}
]
}
}
```
# 玩家背包寵物清單取得
## Cmd=shopMonsterBagListGet
請求封包格式
| 欄位 | 資料型態 | 內容 |
| -------- | -------- | -------- |
| sys | string | 系統(system)或遊戲(game) |
| cmd | string | 封包名稱 shop_monster_list_get |
| isEncode | bool | 加密與否 |
| data | Obj | 封包資料 |
| platformId | int | 平台編號 |
| account | string | 帳號 |
| userId | int | 會員流水編號 |
```json=
{
"sys":"game",
"cmd":"shopMonsterBagListGet",
"sn":12345,
"isEncode":false,
"data":{
"platformId":1,
"account":"cat111",
"userId":1
}
}
```
回應封包格式 同商城清單(shopMonsterListGet)
```json=
{
"code":0,
"message":"回應成功阿",
"sys":"game",
"clientId":0,
"sn":0,
"isEncode":false,
"ver":0,
"ret":"shopMonsterBagListGet",
"data":{
"storeMonsterList":[
{
"evolutionData":null,
"enable":true,
"monsterNo":0,
"name":"藍色勇士",
"costMin":55,
"costMax":300,
"reservationCost":[3,5],
"driveCost":1,
"getCoin":1,
"shopMoney":10,
"endDay":3,
"incomePercent":17,
"incomePercentByDay":5.67,
"userId":0,
"account":"",
"reservationUserID":0,
"reservationAccount":"",
"reservationTime":0,
"costNow":55,
"alive":true,
"reservationKind":2,
"orderState":1,
"orderId":"",
"serialNumber":0,
"dayCount":0,
"buyNotifyCheck":false
},
{
"evolutionData":null,
"enable":true,
"monsterNo":1,
"name":"黃色鎧甲",
"costMin":300,
"costMax":600,
"reservationCost":[11,15],
"driveCost":1,
"getCoin":1,
"shopMoney":10,
"endDay":5,
"incomePercent":19,
"incomePercentByDay":3.8,
"userId":0,
"account":"",
"reservationUserID":0,
"reservationAccount":"",
"reservationTime":0,
"costNow":300,
"alive":true,
"reservationKind":2,
"orderState":1,
"orderId":"",
"serialNumber":1,
"dayCount":0,
"buyNotifyCheck":false
}
]
}
}
```
# 指定預約寵物
## Cmd=shopMonsterAssignReservation
請求封包格式
| 欄位 | 資料型態 | 內容 |
| -------- | -------- | -------- |
| sys | string | 系統(system)或遊戲(game) |
| cmd | string | 封包名稱 |
| isEncode | bool | 加密與否 |
| data | Obj | 封包資料 |
| monsterNo | int | 寵物種類編號 |
| serialNumber | int | 寵物流水編號 |
| account | string | 帳號(持有者) |
| userId | int | 會員流水編號(持有者) |
| reservationAccount | string | 帳號(預約者) |
| reservationUserID | int | 會員流水編號(預約者)|
```json=
{
"sys":"game",
"cmd":"shopMonsterAssignReservation",
"sn":12345,
"isEncode":false,
"data":{
"monsterNo":0,
"serialNumber":1,
"account":"cat111",
"userId":1,
"reservationAccount":"dog111",
"reservationUserID": 789
}
}
```
回應封包格式 同商城清單(shopMonsterListGet)
```json=
{
"code":0,
"message":"回應成功阿",
"sys":"game",
"clientId":0,
"sn":0,
"isEncode":false,
"ver":0,
"ret":"shopMonsterAssignReservation",
"data":{
"shopMonster":{
"evolutionData":null,
"enable":true,
"monsterNo":1,
"name":"黃色鎧甲",
"costMin":300,
"costMax":600,
"reservationCost":[11,15],
"driveCost":1,
"getCoin":1,
"shopMoney":10,
"endDay":5,
"incomePercent":19,
"incomePercentByDay":3.8,
"account":"",
"reservationAccount":"",
"reservationTime":0,
"costNow":300,
"alive":true,
"orderState":1,
"orderId":"",
"serialNumber":1,
"dayCount":0,
"buyNotifyCheck":false
}
}
}
```
# 隨機預約寵物
## Cmd=shopMonsterRandomReservation
請求封包格式
| 欄位 | 資料型態 | 內容 |
| -------- | -------- | -------- |
| sys | string | 系統(system)或遊戲(game) |
| cmd | string | 封包名稱 |
| isEncode | bool | 加密與否 |
| data | Obj | 封包資料 |
| monsterNo | int | 寵物種類編號 |
| account | string | 帳號(自己檢核用) |
| userId | int | 會員流水編號(自己檢核用) |
```json=
{
"sys":"game",
"cmd":"shopMonsterRandomReservation",
"sn":12345,
"isEncode":false,
"data":{
"monsterNo":1,
"account":"cat111",
"userId":1
}
}
```
回應封包格式 同商城清單(shopMonsterListGet)
```json=
{
"code":0,
"message":"回應成功阿",
"sys":"game",
"clientId":0,
"sn":0,
"isEncode":false,
"ver":0,
"ret":"shopMonsterRandomReservation",
"data":{
"shopMonster":{
"evolutionData":null,
"enable":true,
"monsterNo":1,
"name":"黃色鎧甲",
"costMin":300,
"costMax":600,
"reservationCost":[11,15],
"driveCost":1,
"getCoin":1,
"shopMoney":10,
"endDay":5,
"incomePercent":19,
"incomePercentByDay":3.8,
"account":"",
"reservationAccount":"",
"reservationTime":0,
"costNow":300,
"alive":true,
"orderState":1,
"orderId":"",
"serialNumber":1,
"dayCount":0,
"buyNotifyCheck":false
}
}
}
```
# 收到玩家的匯款後, 辦理寵物資料轉移(GM送過來)
## Cmd=shopMonsterReservationCheckFromGM
請求封包格式
| 欄位 | 資料型態 | 內容 |
| -------- | -------- | -------- |
| sys | string | 系統(system)或遊戲(game) |
| cmd | string | 封包名稱 |
| isEncode | bool | 加密與否 |
| data | Obj | 封包資料 |
| monsterNo | int | 寵物種類編號 |
| serialNumber | int | 寵物流水編號 |
| account | string | 帳號(持有者) |
| userId | int | 會員流水編號(持有者) |
| reservationAccount | string | 帳號(預約者) |
| reservationUserID | int | 會員流水編號(預約者) |
```json=
{
"sys":"game",
"cmd":"shopMonsterReservationCheckFromGM",
"sn":12345,
"isEncode":false,
"data":{
"monsterNo":0,
"serialNumber":1,
"account":"cat111",
"userId":1,
"reservationAccount":"cat222",
"reservationUserID":2
}
}
```
回應封包格式 同商城清單(shopMonsterListGet)
```json=
{
"code":0,
"message":"回應成功阿",
"sys":"game",
"clientId":0,
"sn":0,
"isEncode":false,
"ver":0,
"ret":"shopMonsterReservationCheckFromGM",
"data":{
"shopMonster":{
"evolutionData":null,
"enable":true,
"monsterNo":1,
"name":"黃色鎧甲",
"costMin":300,
"costMax":600,
"reservationCost":[11,15],
"driveCost":1,
"getCoin":1,
"shopMoney":10,
"endDay":5,
"incomePercent":19,
"incomePercentByDay":3.8,
"account":"",
"reservationAccount":"",
"reservationTime":0,
"costNow":300,
"alive":true,
"orderState":1,
"orderId":"",
"serialNumber":1,
"dayCount":0,
"buyNotifyCheck":false
}
}
}
```
# 收到玩家的匯款後, 辦理寵物資料轉移(玩家送過來)
## Cmd=shopMonsterReservationCheckFromPlayer
請求封包格式
| 欄位 | 資料型態 | 內容 |
| -------- | -------- | -------- |
| sys | string | 系統(system)或遊戲(game) |
| cmd | string | 封包名稱 |
| isEncode | bool | 加密與否 |
| data | Obj | 封包資料 |
| monsterNo | int | 寵物種類編號 |
| serialNumber | int | 寵物流水編號 |
| account | string | 帳號(持有者) |
| userId | int | 會員流水編號(持有者) |
| reservationAccount | string | 帳號(預約者) |
| reservationUserID | int | 會員流水編號(預約者) |
```json=
{
"sys":"game",
"cmd":"shopMonsterReservationCheckFromPlayer",
"sn":12345,
"isEncode":false,
"data":{
"monsterNo":1,
"serialNumber":1,
"account":"cat111",
"userId":1,
"reservationAccount":"cat222",
"reservationUserID":2
}
}
```
回應封包格式 同商城清單(shopMonsterListGet)
```json=
{
"code":0,
"message":"回應成功阿",
"sys":"game",
"clientId":0,
"sn":0,
"isEncode":false,
"ver":0,
"ret":"shopMonsterReservationCheckFromPlayer",
"data":{
"shopMonster":{
"evolutionData":null,
"enable":true,
"monsterNo":1,
"name":"黃色鎧甲",
"costMin":300,
"costMax":600,
"reservationCost":[11,15],
"driveCost":1,
"getCoin":1,
"shopMoney":10,
"endDay":5,
"incomePercent":19,
"incomePercentByDay":3.8,
"account":"",
"reservationAccount":"",
"reservationTime":0,
"costNow":300,
"alive":true,
"orderState":1,
"orderId":"",
"serialNumber":1,
"dayCount":0,
"buyNotifyCheck":false
}
}
}
```
# 模擬過一天
## Cmd=simulationDay
請求封包格式
| 欄位 | 資料型態 | 內容 |
| -------- | -------- | -------- |
| sys | string | 系統(system)或遊戲(game) |
| cmd | string | 封包名稱 |
| isEncode | bool | 加密與否 |
| data | Obj | 封包資料 |
| account | string | 帳號 |
| userId | int | 會員流水編號 |
```json=
{
"sys":"game",
"cmd":"simulationDay",
"sn":12345,
"isEncode":false,
"data":{
"account":"cat111",
"userId":1
}
}
```
回應封包格式
| 欄位 | 資料型態 | 內容 |
| -------- | -------- | -------- |
| day | number | 目前過了幾天 |
```json=
{
"code":0,
"message":"回應成功阿",
"sys":"game",
"clientId":0,
"sn":0,
"isEncode":false,
"ver":0,
"ret":"simulationDay",
"data":{
"day":0
}
}
```
# GM增加寵物一批
## Cmd=shopMonsterGmAdd
請求封包格式
| 欄位 | 資料型態 | 內容 |
| -------- | -------- | -------- |
| sys | string | 系統(system)或遊戲(game) |
| cmd | string | 封包名稱 |
| isEncode | bool | 加密與否 |
| data | Obj | 封包資料 |
| account | string | 帳號 |
| userId | int | 會員流水編號 |
| monsterNoList | Array[int] | 上架怪物編號 |
```json=
{
"sys":"game",
"cmd":"shopMonsterGmAdd",
"sn":12345,
"isEncode":false,
"data":{
"account":"cat111",
"userId":1,
"monsterNoList":[1,2,3,4,5]
}
}
```
回應封包格式
| 欄位 | 資料型態 | 內容 |
| -------- | -------- | -------- |
| day | number | 目前過了幾天 |
```json=
{
"code":0,
"message":"回應成功阿",
"sys":"game",
"clientId":0,
"sn":0,
"isEncode":false,
"ver":0,
"ret":"shopMonsterGmAdd",
"data":{
"monsterNoList":[1,2,3,4,5]
}
}
```
# 商店狀態取得
## Cmd=shopStatusGet
請求封包格式
| 欄位 | 資料型態 | 內容 |
| -------- | -------- | -------- |
| sys | string | 系統(system)或遊戲(game) |
| cmd | string | 封包名稱 |
| isEncode | bool | 加密與否 |
| data | Obj | 封包資料 |
| account | string | 帳號 |
| userId | int | 會員流水編號 |
```json=
{
"sys":"game",
"cmd":"shopStatusGet",
"sn":12345,
"isEncode":false,
"data":{
"account":"cat111",
"userId":1
}
}
```
回應封包格式
| 欄位 | 資料型態 | 內容 |
| -------- | -------- | -------- |
| shopStatus | number | 0: wait 1:配對中 2:配對完畢 3:錯誤 4:維修中 |
| day | number | 遊戲天數 |
| playerCount | number | 玩家數量 |
| storeMonsterCount | number | 寵物數量 |
| dayBuyMonsterCnt | number | 日購買數量 |
| dayEvolutionCnt | number | 進化分裂數量 |
| dayUpgradeCnt | number | 升級數量 |
| dayExpiredToShopCnt | number | 過期數量 |
```json=
{
"code":0,
"message":"回應成功阿",
"sys":"game",
"clientId":0,
"sn":0,
"isEncode":false,
"ver":0,
"ret":"shopStatusGet",
"data":{
"shopStatus":1,
"day":10,
"playerCount": 3,
"storeMonsterCount":7,
"dayBuyMonsterCnt":0,
"dayEvolutionCnt":0,
"dayUpgradeCnt":0,
"dayExpiredToShopCnt":0
}
}
```
# 商店狀態取得
## Cmd=shopMaintain
請求封包格式
| 欄位 | 資料型態 | 內容 |
| -------- | -------- | -------- |
| sys | string | 系統(system)或遊戲(game) |
| cmd | string | 封包名稱 |
| isEncode | bool | 加密與否 |
| data | Obj | 封包資料 |
| account | string | GM帳號 |
| userId | int | GM會員流水編號 |
| isMainTain | bool | true:維修 false:開始遊戲 |
```json=
{
"sys":"game",
"cmd":"shopMaintain",
"sn":12345,
"isEncode":false,
"data":{
"account":"cat111",
"userId":1,
"isMainTain":true
}
}
```
回應封包格式
| 欄位 | 資料型態 | 內容 |
| -------- | -------- | -------- |
| shopStatus | number | 0: wait 1:配對中 2:配對完畢 3:錯誤 4:維修中 |
| day | number | 遊戲天數 |
```json=
{
"code":0,
"message":"回應成功阿",
"sys":"game",
"clientId":0,
"sn":0,
"isEncode":false,
"ver":0,
"ret":"shopMaintain",
"data":{
"shopStatus":1,
"day":10
}
}
```
# 使用流程
1.CreateAccount 建立一個帳號
2.Login 取得會員資料 (拿到 UserId + Account)
3.shopMonsterListGet 商店已上架的寵物清單取得
4.shopMonsterAssignReservation 指定預約寵物
~~5.shopMonsterReservationCheckFromGM (GM送過來) <----剛開服 玩家剛買寵物, 需要有GM去檢查玩家是否有匯款 確認完畢後, 送此封包來~~
~~6.shopMonsterBuy 玩家買寵物 ( 要先預約寵物後(不論是隨機預約寵物, 或指定預約寵物, 才可以使用此封包購買寵物 )~~