利用魔兽世界战网API收集数据,从而起底同账号角色的新方法

最近在NGA论坛看到某位神人的WOW同账号角色起底软件(易语言编),

大概原理是利用新浪游戏和捞月狗的工会列表获得玩家ID,然后通过收集玩家成就点数 坐对比查出相同成就点的玩家角色名 从而证明其为同一账号,

这确实可行,不过误报会很多,他的软件也很多问题.这几天我用QT在编一个,发布出来 .

其实获取服务器的全部工会列表很困难,依赖外部网站收集的列表还是比较靠谱的,毕竟魔兽战网API没有提供查询特定服务器所有工会名称的接口

工会成员列表到时提供了 

通过   http://www.battlenet.com.cn/api/wow/guild/魔兽服务器名/工会名称?fields=members/                 

就可以获取改工会的全部成员jsion信息 不过战网貌似很脆弱 动不动就出问题 如无意外会缓慢的卡出来以下数据:

{"lastModified":1392784670000,"name":"工会名称","realm":"魔兽服务器名","battlegroup":"Battle Group 5","level":25,"side":1,

"achievementPoints":660,
"members":[
{"character":{"name":"工会成员1","realm":"魔兽服务器名","battlegroup":"Battle Group 5","class":4,"race":5,"gender":0,
  "level":90,
 "achievementPoints":10475, <---------成就点
   "thumbnail":"eldrethalas/166/724134-avatar.jpg",
 "spec":{"name":"战斗",
role":"DPS",
"backgroundImage":"bg-rogue-combat",
"icon":"ability_backstab",
"description":"敏捷而狡诈的游荡剑客,擅长与敌人短兵相接。",
"order":1}, <---------默认三系天赋 123 
 "guild":"工会名称",
 "guildRealm":"魔兽服务器名"},
 "rank":1}, <---------工会等级排名 0=会长 依次递减


{"character":{"name":"工会成员2","realm":"魔兽服务器名","battlegroup":"Battle Group 5","class..........,


如果有全服务器的工会列表 99.9%的玩家信息都能拿下 wow很少有没入会的玩家吧,他们算是漏网之鱼~



我想到些方法或许可以解决误报 如下:

1,同账号角色战斗宠物是共享的(只适用于开通了宠物对战的玩家) 即使是对立阵营角色,所以宠物栏宠物必定相同,宠物数必定相同

  方法:  (a), 发送Http请求获取玩家宠物栏jsion数据, http://www.battlenet.com.cn/api/wow/character/魔兽服务器名/玩家角色名?fields=petSlots

"petSlots":[{"slot":1,"battlePetGuid":"0000000001516D22","isEmpty":false,"isLocked":false,"abilities":[921,919,917]}, <--------1号宠物栏  battlePetGuid为宠物ID

     {"slot":2,"battlePetGuid":"00000000003C4897","isEmpty":false,"isLocked":false,"abilities":[111,158,762]},   <----------2号宠物栏  

                          {"slot":3,"battlePetGuid":"00000000022E6523","isEmpty":false,"isLocked":false,"abilities":[504,507,506]}],  <----------3号宠物栏  

      (b),发送Http请求,获取角色所有宠物http://www.battlenet.com.cn/api/wow/character/魔兽服务器名/玩家角色名?fields=pets

"pets":{"numCollected":138, <-----目前宠物数

"collected":[{"name":"金色麝猫","spellId":0,"creatureId":63841,"itemId":0,"qualityId":3,"icon":"inv_...........},  <----------------------战斗宠物列表
 
      {"name":"兴奋的萤火虫","spellId":0,"creatureId":63850,"itemId":0,"qualityId":3,"icon":"ability_...................},

比对宠物槽和列表进行匹配.

2.同账号角色坐骑共享

方法: 发送HTTP请求获取角色坐骑jsion数据,http://www.battlenet.com.cn/api/wow/character/魔兽服务器名/玩家角色名?fields=mounts

"mounts":{"numCollected":40, <-----目前坐骑数
 
      "collected":[ {"name":"勇猛的战狼","spellId":100333,"creatureId":53985,"itemId":70910,"qualityId":4,"ico.......},    <----------------------坐骑列表

    {"name":"大型美酒节科多兽","spellId":49379,"creatureId":27707,"itemId":37828,"qualityId":4,"i......},

比对坐骑数和坐骑列表 记得排除PVP评级奖励坐骑筛选.

3.老方法成就点

方法: 发http://www.battlenet.com.cn/api/wow/character/魔兽服务器名/玩家角色名

"achievementPoints":10475,    <----------------------成就点


  通过上面几种筛选出来的玩家角色 误报会很少,有缘人的概率很低~

你可能感兴趣的:(利用魔兽世界战网API收集数据,从而起底同账号角色的新方法)