在英雄联盟的自定义游戏中添加困难电脑及大乱斗地图中添加电脑的方法和工具 | 您所在的位置:网站首页 › 怎么调自定义 › 在英雄联盟的自定义游戏中添加困难电脑及大乱斗地图中添加电脑的方法和工具 |
原理:给英雄联盟客户端添加电脑的API发送POST请求,以达到在不允许添加人机的游戏中添加没有显示的英雄及难度的电脑的要求。 调试:使用rift-explorer调试英雄联盟外服客户端(马服无法使用)。在Marioㄹ的文章中,我们可以知道有关房间的API都在lol-lobby下,而下面有关bot(电脑)的API一共有5个,V1和V2的分别是 添加/更改BOT获取房间内的可用BOT信息它们的作用: POST /lol-lobby/v1/lobby/custom/bots 根据信息在房间内添加新的bot。 DELETE /lol-lobby/v1/lobby/custom/bots/{summonerInternalName} 将房间内符合内部名称(如bot_Galio_200为加里奥bot在红方的内部名称)的bot移除。 POST /lol-lobby/v1/lobby/custom/bots/{summonerInternalName} 为上面两个的结合,将房间内符合内部名称的bot更改为新的bot。 GET /lol-lobby/v2/lobby/custom/abailable-bots 获取当前房间的可用bots。 GET /lol-lobby/v2/lobby/custom/bots-enabled 获取当前房间是否可以添加bots。 好的,到这里,我们已经可以知道,如果要添加一个bot,只需要给/lol-lobby/v1/lobby/custom/bots发送一个POST请求即可。我们先来分析一下如何使用这个API。 body模型如图所示,根据百度翻译模型提供的变量名我们可以知道传入的参数分别是Bot难度,英雄ID,队伍ID。点击body视图中左边的Model我们可以查看传入参数的详细类型,从中我们可以得知botDiffculty为string类型,并且一共有7个枚举项目。根据百度翻译单词,我们可以得知这些难度分别是:“无”,“简单”,“一般”,“困难”,“究极”,“教程”,“序曲”。因此,我们添加困难Bot的方式就是给botDifficulty赋值“HARD”传入。 body模型详细解决了难度的问题,接下来就来到了英雄ID。我们不可能每次添加电脑的时候都一个一个ID去试。因此,我们需要获取每个英雄的ID。还记得刚才的GET /lol-lobby/v2/lobby/custom/abailable-bots吗?我们可以用这个API获取所有可添加英雄的信息,其中就包括了英雄的名称跟ID。在峡谷自定义房间中点击Make Request,我们便可以获取所有可用bot的ID跟名称。这样,英雄ID的问题就解决了。 获取BOT信息所有可用BOT信息最后,我们就剩下了一个队伍ID还没解决。我们需要获取有关两个队伍的信息才能知道游戏中的队伍ID。通过Marioㄹ的文章,我们可以知道,lol-lobby/v2/lobby可以通过POST请求创建一个自定义房间。那么,反过来也是可以的。在工具里显示出来的API中,lol-lobby/v2/lobby还有一个GET请求,能够获取整个房间的信息,其中就包含了两个队伍。 获取房间信息蓝方红方通过这个请求回传获得的数据,我们可以知道蓝方的队伍ID是"100",红方的队伍ID是"200"。这样,所有的东西就都分析完成了。 实现:通过前面的分析,我们可以直接用Postman等工具或者自己编程来将添加电脑的POST请求发送给客户端。实际使用例如下: request body成功在大乱斗中添加安妮bot为了方便使用,我用WPF写了一个用来添加bot的工具。有兴趣的可以到github.com/farfuture6/BotCustomer/releases下载(特性多纯属正常现象)。 奇怪的人机(后记: • 难度显示错误为正常现象。 • 部分难度(如UBER)的电脑会直接在峡谷中挂机。 • 大乱斗的电脑只会冲泉水跟逃跑。 • 大乱斗的电脑有时候会使用传送。 • 添加“不存在于可用列表”的电脑会导致无法开始游戏。 感谢:Marioㄹ的文章CV6477040,Pupix的工具rift-explorer |
CopyRight 2018-2019 实验室设备网 版权所有 |