20 KiB

卡牌游戏接口说明

一. 说明

所有接口均需上传sessionid

通用返回JSON结构, 接口Response的数据结构说明只包含data部分

{
    "errcode": 0, //0:成功 2: 缺少必要参数(accountid, sessionid) 4: 帐号被封, 5: 帐号未找到 100: 所有未定义的错误
    "errmsg": "", //错误描述
    "data": {}, 	// 数据
}

二. 客户端接口列表

1. 玩家资料

  1. Method: POST
  2. URI: /api/:accountid/uinfo
字段 说明
accountid 帐号id

POST参数

字段 说明
nickname 昵称
avatar 头像
  1. Response: JSON
{
    accountid: '',
    cards: [number],
    heros: [{
        heroid: number,
        owned: true,                // 是否已拥有
        usetype: 1,             // 赛季专属, 0: 通用, 1: 赛季排位专用, 2: 匹配专用
        level: number,              // 等级
        exp: number,            // 当前的经验值
        ban: false,							// 是否被禁用
        free: false,              // 是否免费
        trial: false,							// 是否是试用
        trial_expire: 1609919293,  // 试用到期时间, 0: 说明是永久 
    }],
    moneys: [
      {
        "itemid": 80012,		//代币的id
        "itemnum": 140			// 数量
      }
    ],
    normal_stat: [0, 0, 0, 0] //匹配: 胜利场数, 失败场数, 平局场数, 掉线场数
    season_rank: 1  // 当前赛季排名
    match_score: 1000    //当前匹配分, 用于匹配时上传
    season_score: 1000 // 排位分, 用于显示
    season_data: {} // 当前赛季统计信息, 内容同接口11
}

2. 可用卡牌信息

  1. Method: POST
  2. URI: /api/:accountid/cards
字段 说明
accountid 帐号id
  1. Response: JSON

说明: 匹配模式可以用的卡: (owned == true || (free == true && not expired)) && (usetype == 0 || usetype == 2) 赛季排位模式可以用的卡: (owned == true || (free == true && not expired)) && (usetype == 0 || usetype == 1)

[{
    cardid: 1022,					// 卡牌id
    owned: true,				// 是否已拥有
    ban: false,					// 是否被禁用
    usetype: 1,    			// 赛季专属, 0: 通用, 1: 赛季排位专用, 2: 匹配专用
    free: false,			  // 是否免费
    free_expire: 1609919293  // 免费到期时间  
    time:1609919293     // 该卡第一次解锁时间 
}]

3. 可用英雄列表

这个接口用户信息中的英雄列表最大的不同, 这里返回所有可用英雄, 用户信息中只返回永久免费和玩家拥有的英雄

  1. Method: POST
  2. URI: /api/:accountid/heros
字段 说明
accountid 帐号id
  1. Response: JSON

说明: 匹配模式可以用的英雄: (owned == true || (trial== true && not expired)) && (usetype == 0 || usetype == 2) 赛季排位模式可以用的英雄: (owned == true || (trial== true && not expired)) && (usetype == 0 || usetype == 1)

[{
    heroid: 1022,				// 英雄id
    owned: true,				// 是否已拥有
    ban: false,					// 是否被禁用
    usetype: 1,    			// 赛季专属, 0: 通用, 1: 赛季排位专用, 2: 匹配专用
    ban: false,							// 是否被禁用
    free: false,			  // 是否免费
    trial: false,				// 是否试用
    trial_expire: 1609919293  // 试用到期时间, 0: 说明是永久
    level: 1,						// 等级
  	exp: 0,							// 当前的经验值
    time: 1609919293          // 该英雄解锁时间 
    slot: 1,          // 已解锁卡槽数量
}]

4. 自定义卡组列表

  1. Method: POST
  2. URI: /api/:accountid/card_group/:heroid
字段 说明
accountid 帐号id
heroid 英雄id, 不传的话, 获取该玩家所有可用卡组
  1. Response: JSON
[{
    gid: '',											// 卡组id
    heroid: '',                   // 英雄id
    selected: true,								// 当前选择的卡组
    isdefault: false,							// 是否是默认卡组, 默认卡组不能编辑
    cards: [{
        cardid: '',               // 卡牌id
        owned: true,              // 是否已拥有
        ban: false,               // 是否被禁用
        usetype: 1,               // 赛季专属, 0: 通用, 1: 赛季排位专用, 2: 匹配专用
        free: false,              // 是否免费
        free_expire: 1609919293   // 免费到期时间   
    }]
}]

5. 保存卡组

  1. Method: POST
  2. URI: /api/:accountid/card_group/save/:gid
字段 说明
accountid 帐号id
gid 卡组id, 新卡组传 'new'

POST参数

字段 说明
heroid 英雄id
selected 是否设为选中
cards [cardid] 卡牌id的数组
  1. Response: JSON

根据errcode判断成功or失败

6. 删除卡组

  1. Method: POST
  2. URI: /api/:accountid/card_group/delete/:gid
字段 说明
accountid 帐号id
gid 卡组id, 不能为空
  1. Response: JSON

根据errcode判断成功or失败

8. 抽卡

  1. Method: POST
  2. URI: /api/:accountid/card/draw
字段 说明
accountid 帐号id

POST参数

字段 说明
count 类型 1 或 10
itemid 抽卡使用的物品id
  1. Response: JSON
[{
    id: 11022,		// 卡牌id
    used: 1,		// 是否已经自动激活卡或英雄, 1: 已自动激活 0: 未激活
  	count: 1000, // 数量
    heroid: 111,		// 激活的英雄id, 可能为空
    cardid: 100	// 激活的卡id, 可能为空
}]

9. 对战记录列表

  1. Method: POST
  2. URI: /api/:accountid/records
字段 说明
accountid 帐号id
  1. Response: JSON

10. 升级英雄

  1. Method: POST
  2. URI: /api/:accountid/hero/update/:heroid
字段 说明
accountid 帐号id
heroid 英雄id

POST参数

字段 说明
items 使用代币类型和数量, 格式 money0:count|money1:count1
  1. Response: JSON
{
    exp: 1022,		// 升级后当前经验值
    level: 1,		  // 升级后的等级
    exp_gain: 100, // 本次升级一共获得的经验
}

11. 赛季统计信息

  1. Method: POST
  2. URI: /api/:accountid/season_data
字段 说明
accountid 帐号id
  1. Response: JSON
{
  "0": 477, //最高伤害
  "1": 62,  // 最高承伤
  "2": 289, // 最高总战力
  "3": 150, // 最高单体战力
  "4": 6,   // 最高每局胡牌数
  "5": 0,   // 每局最多送给队友抽牌数
  "0_total": 1071.3,  // 所有伤害积分
  "1_total": 86,    // 所有承伤积分
  "2_total": 1302,  // 最高总战力积分
  "3_total": 1325,  // 单体战力总积分
  "4_total": 390,   // 所有胡牌数
  "5_total": 0,     // 赠送牌数 
  "honor_ap": 4174.3, // 历史战功和
  "mvp_ap": 4174.3,   // mvp积分和
  "win": 5,           // 胜利场数,
  "lost": 0,          // 失败场数
  "score": 1281.061909262327,   // 当前天体分
  "match_score": 2921.59286389349 // 当前匹配分
}

12. 获取邮件附件

  1. Method: POST
  2. URI: /api/:accountid/mail_attachment
字段 说明
accountid 帐号id

POST参数

字段 说明
mail_ids 邮件id列表以","分割
  1. Response: JSON
[ //附件列表
  {
    "id": 0, //道具id
    "count": 0, //道具数量
    "type": 1 //道具类型
  },
]

13. 获取物品列表

  1. Method: POST
  2. URI: /api/:accountid/items
字段 说明
accountid 帐号id

POST参数

字段 说明
type 物品类型, 不传的话就获取背包中所有物品
items 特定物品id数组
  1. Response: JSON
[ //物品列表
  {
    "id": 0, //道具id
    "count": 0, //道具数量
    "type": 1 //道具类型
  }
]

14. 使用物品

  1. Method: POST
  2. URI: /api/:accountid/useitem
字段 说明
accountid 帐号id

POST参数

字段 说明
itemid 物品id
count 使用数量
  1. Response: JSON
[ //物品列表
  {
    "id": 0, //道具id
    "count": 0, //道具数量
    "type": 1 //道具类型
  },
]

15. 解锁英雄卡槽

  1. Method: POST
  2. URI: /api/:accountid/hero/unlockslot/:heroid
字段 说明
accountid 帐号id
heroid 英雄id
  1. Response: JSON


16. 购买物品

  1. Method: POST
  2. URI: /api/:accountid/buyitem
字段 说明
accountid 帐号id

POST参数

字段 说明
itemid 需要购买的物品id
count 购买数量
  1. Response: JSON
{
    "itemid": 1002, //道具id
    "buynum": 1, //道具数量
    "totalnum": 100, //购买成功后总数量
    "priceid": 21231, // 使用代币的id
    "pricenum": 20		// 使用代币数量
  }

17. 分解卡片

  1. Method: POST
  2. URI: /api/:accountid/card/destory
字段 说明
accountid 帐号id

POST参数

字段 说明
cards cardid 卡牌id
count 使用数量
  1. Response: JSON
[ //物品列表
  {
    "id": 0, //道具id
    "count": 0, //道具数量
  },
]

18. 刷新随机到的武将

  1. Method: POST
  2. URI: /api/:accountid/randomhero
字段 说明
accountid 帐号id
  1. Response: JSON


19. 拼藏宝图

  1. Method: POST
  2. URI: /api/:accountid/puzzle
字段 说明
accountid 帐号id
  1. Response: JSON
{
    "id": 0, //道具id
    "count": 0, //道具数量
    "type": 1 //道具类型
  }

20. 签到列表

签到接口不需要手动调用

  1. Method: POST
  2. URI: /api/:accountid/sign/list
字段 说明
accountid 帐号id
  1. Response: JSON
"cfgs": [	//配置列表
    {
        "id": 6,
        "title": "第7天",
        "reward_type": 80013,		// 物品id
        "reward_count": 800,		// 数量
        "need_type": 1,					// 获取奖励物品需要的条件
        "need_count": 7,				// 获取奖励物品需要的条件的数量
        "reward_list": [				// 如果奖励物品是多个, 则读取该字段, 如果是单个, 则无此字段
            {
                "reward_type": 80013,
                "reward_count": 2
            },
            {
                "reward_type": 80012,
                "reward_count": 800
            }
        ],
        "status": 0							// 领取状态 0: 未开始, 1: 可补签, 2: 可领取, 3: 已领取
    }
],
"last": 1611751985,				// 最后签到时间
"betweenDays": 1,					// 最后签到时间与当前所隔天数
"doubleReward": 0,				// 是否能双倍领取 0: 可以, 1: 当日已领取单倍, 2: 当日已领取双倍
"userData": {							// 本轮用户领取记录
    "0": 3
}

21. 签到领取物品

签到接口不需要手动调用

  1. Method: POST
  2. URI: /api/:accountid/sign/list
字段 说明
accountid 帐号id

POST参数

字段 说明
type 领取类型 1: 普通领取, 2: 双倍领取, 3: 补签
id 签到列表中返回的id
  1. Response: JSON
[ //物品列表
  {
    "id": 0, //道具id
    "count": 0, //道具数量
  },
]

22. 排行榜

  1. Method: POST
  2. URI: /api/:accountid/rank
字段 说明
accountid 帐号id

POST参数

字段 说明
limit 获取的数据数量
skip skip数量
  1. Response: JSON

{"records": [
      {
        "rank": 0,
        "accountid": "6000_3200_QcYw2AAK6Vf95WNfRmHYly340J455zZR",
        "nickname": "Sunny",
        "avatar": "https://resource.kingsome.cn/matchvs_cdn/1.0.0.1/avatar/10_2.jpg",
        "score": 1000
      },
    ],
    "userRank": 0,		//当前玩家的排名
    "userScore": 1000	//当前玩家的积分
}

23. 排行榜-附近的玩家

  1. Method: POST
  2. URI: /api/:accountid/rank/nearMe
字段 说明
accountid 帐号id
  1. Response: JSON
{
  "rank": 0,
  "accountid": "6000_3200_QcYw2AAK6Vf95WNfRmHYly340J455zZR",
  "nickname": "Sunny",
  "avatar": "https://resource.kingsome.cn/matchvs_cdn/1.0.0.1/avatar/10_2.jpg",
  "score": 1000
},

24. 事件上报

  1. Method: POST
  2. URI: /api/:accountid/update_event
字段 说明
accountid 帐号id

POST参数

字段 说明
id 事件id
  1. Response: JSON
{
    rest: 1,    //剩余次数
    items: [ //物品列表
    {
      "id": 0, //道具id
      "count": 0, //道具数量
    },
  ]
}

25. 事件状态

  1. Method: POST
  2. URI: /api/:accountid/event_status
字段 说明
accountid 帐号id

POST参数

字段 说明
ids 事件id数组
  1. Response: JSON
[
  [id, count]
]

26.游戏结束双倍领取

  1. Method: POST
  2. URI: /api/:accountid/gamereward
字段 说明
accountid 帐号id

POST参数

字段 说明
roomid 游戏房间id
  1. Response: JSON
[ //物品列表
  {
    "id": 0, //道具id
    "count": 0, //道具数量
  },
]

三. 服务端接口列表

1. 上传对战记录(服务端调用)

  1. Method: POST
  2. URI:
字段 说明
accountid 帐号id
  1. Response: JSON

2. 开始比赛

  1. Method: POST
  2. URI: /svr/:accountid/beginmatch
字段 说明
accountid 帐号id

POST参数

字段 说明
matchid 10_match.xlsx里的id
  1. Response: JSON

3. 解锁英雄

  1. Method: POST
  2. URI: /svr/:accountid/hero/unlock/:heroid
字段 说明
accountid 帐号id
heroid 英雄id

POST参数

字段 说明
type 类型 0: 碎片, 1: 试用
  1. Response: JSON

说明: 解锁成功的话, 会返回当前解锁英雄的数据

[{
    heroid: 1022,				// 英雄id
    owned: true,				// 是否已拥有
    ban: false,					// 是否被禁用
    usetype: 1,    			// 赛季专属, 0: 通用, 1: 赛季排位专用, 2: 匹配专用
    free: false,			  // 是否免费
    trial: false,				// 是否是试用
    trial_expire: 1609919293  // 试用到期时间, 0: 说明是永久
    level: 1,						// 等级
  	exp: 0,							// 当前的经验值
}]

4. 获取用户的简要信息

  1. Method: GET
  2. URI: /svr/:accountid/uinfo
字段 说明
accountid 帐号id
  1. Response: JSON
{
    nickname: '阿三',				// 英雄id
    avatar: true,				// 头像
    accountid: ''
    score: 1000
}

5. 随机获取一个机器人信息

  1. Method: POST
  2. URI: /svr/randomrobot

POST参数

字段 说明
min 最小天梯分
max 最高天梯分
accounts 需要过滤的accountid数组
  1. Response: JSON
{
    nickname: '阿三',				// 英雄id
    avatar: true,				// 头像
    accountid: ''
    score: 1000
}