Qt Practice——DotaPlus

img

img

参考 OverWolf 里的 DotaPlus 插件,我们用 Qt 也可以打造一款类似功能的软件

界面的话我们仿照上图

然后是功能:

首先是识别出当前匹配到的敌我方玩家 ID

Windows 上,在路径 <Steam>/steamapps/common/dota 2 beta/game/dota/server_log.txt 保存了一些信息

img

我们可以从这个文件中读取到类似红色方框内的字符串,通过正则表达式去解析出当前匹配到的玩家的数字 ID

然后可以通过 OpenDota 网站提供的 API 获取到玩家的其他信息

比如访问 https://api.opendota.com/api/players/383493387/matches 就能得到数字 ID 为 383493387 的比赛记录

OpenDota 还提供了很多 API 接口,比如:

https://api.opendota.com/api/players/383493387/recentMatches 是玩家最近 20 场比赛记录

https://api.opendota.com/api/players/383493387 里的 avatarfull 字段包含了玩家的高清头像

我们可以通过 Qt 的 QNetworkAccessManager 类的 get 函数去请求网络数据

因为 OpenDota 使用了 HTTPS,所以我们需要安装 OpenSSL,否则会提示

我们可以通过以下代码来查看当前 Qt 使用的 OpenSSL 的版本

然后可以去 http://slproweb.com/products/Win32OpenSSL.html 下载对应的版本

比如我下载的是下图标识的链接

img

下面就是演示获取头像 Url 的 Qt 代码

接下来就是新建一个名为 DotaPlus 的 Qt 工程,正式开始编码了……


花了两天周末时间,简单做了一下

img

代码我上传了百度网盘

链接: https://pan.baidu.com/s/1Xn3kmPJhfcnZsX8tERWLGA?pwd=v77a