LeagueAkari,一个开源英雄联盟工具,不止能查隐藏战绩,功能很多
1. 介绍 & 功能速览 & 前置声明
这是一个集合了各种功能的工具集。简单易用,并且开源。
蓝奏云:https://hanxven.lanzoum.com/b01ft3njg
密码:247x
该应用前名称为 LeagueToolkit,但由于前期考虑不周,未注意到 Github 已存在同名项目,故现在更改为 LeagueAkari,以避免冲突。
该专栏文章随着软件开发进程会逐渐过时,请关注 Github 仓库以及蓝奏云的最新进展。(最后一次文章更新:2024/03/23)
1.1 战绩查询
作为最基本的需求之一,查询战绩功能必不可少。幸运的是,我们可以通过拳头提供的 API 来绕过战绩隐藏限制。
构思一个 UI 实在是过于麻烦,这里直接像素级抄下 OP.GG 战绩卡片的布局风格。
(图) 战绩的总览页面。展示内容为 UP 小号。不得不说(当时)猛猛赢,已经 14 连胜了。
(图) 可以查看具体的数据,这将拉取游戏的具体细节。如果觉得不够具体,可以点右上角的第一个按钮,查看更细节的表格详情。
如果想要开启自动拉取详细战绩,以在战绩卡片右侧展示玩家列表效果,请在设置中开启:设置 -> 战绩 -> 通用 -> 拉取详细对局。
(图) 当然,你可以查询一个玩家的信息,右上角可以搜索召唤师。
注:新 ID 系统需要同时提供召唤师名称以及编号。
1.2 对局中预知
基于拳头提供的各种接口,在英雄选择阶段或进入游戏的阶段,我们不妨用这些空余的时间去看看队友和敌人的底细。
(图) 在英雄选择或游戏内阶段,自动拉取队友或对手的战绩,并给出基础分析。隐藏战绩者和胜率过高者将被额外标记。
League Akari 会拉取一些具体的战绩来分析某些数据,如可能的开黑情况。你可以设置阈值或拉取战绩的数量。但请注意,战绩列表接口和游戏详情接口并不统一,游戏的对局需要单独请求,请设置较少的分析场次,避免短时间内大量调用 LCU API,导致触发 QPS。
1.3 各种其他功能
除了上述的两个主要功能之外,League Akari 的能力还有更多!
自动接受对局,自动秒选,创建训练房间,更改生涯背景等等,出于篇幅问题,就不一一介绍了,敬请探索。
(图) 懒人自动化。
(图) 一帧秒选,亚索快人一步。
(图) 喜欢我无 CD 秒换吗?
(图) 我是佐伊小姐的()。
(图) 至尊星耀,国服蔡文姬。
另外发现,在创建召唤师的时候,可以设置长 ID。在其他情况下没有试过。
(图) 创建新号时的长 ID。
1.4 仓库
League Akari 是开源的,因此可以在 Github 的 Releases 中找到它。
League Akari 会通过 Github 检查更新。
软件本体打包在一个压缩文件中,解压后即可直接运行。请先解压。
仓库地址:https://github.com/Hanxven/LeagueAkari
1.5 无关内容
因为作者是黑色玫瑰万年乱斗玩家,几乎不打排位,因此对于一些巅峰赛模式并没有严格的测试,可能会出现一些逻辑问题。如果你遇到了这些问题,请务必提出意见。
2. 软件细节 & 技术栈
这一部分可能看的人并不多,但还是希望能够做到抛砖引玉的效果,给大家一个实现类似功能更加完善的开源软件的思路。
2.1 万物的根基:LCU API
League Akari API (League Client Update)。由于 LCU API 的易用性,使得开发应用程序变得非常容易。
英雄联盟客户端分为两部分:渲染端 (League Client UX) 和后端 (League Client)。前者负责展示内容,后者是真正的执行者。后端将通过 WebSocket 推送事件到渲染端,渲染端通过 HTTP 调用来完成各种动作。
League Akari 也将通过这种方式与后端进行通信,代替玩家执行动作。
2.2 简单的技术栈:Electron + Vue 3
为了追求开发难度和易用性的需求,League Akari 选择使用 Electron 框架进行开发。项目由 electron-vite 脚手架搭建。
主进程仅完成 LCU 连接相关内容和一些数据库或其他系统调用接口,大部分实际逻辑全部由渲染进程完成。
渲染进程中,使用 Naive UI 和 Vue 3 作为基础 UI 框架,同时借用了 Vue 3 的响应式系统,完成了几乎所有事件监听相关功能。
特别地,使用 node-addon-api 编译了 node 模块,来实现一些更加底层的需求,发送键盘输入,重置窗口大小等。(但该部分功能仅存在与代码中,暂时并未实装)
P.S. 重置窗口大小功能,其原理完全照搬了 @Butter_Cookies 的思路,在此提出感谢。
扫一扫关注微信公众帐号