首先声明:此方法完全遵守 英雄联盟的用户使用协议,不会做出对客户端修改等行为,所有效果皆为调用Riot League of Legends开发的API实现。方法可能不是我第一个发现的,但估计我是第一个共享出来的,软件代码为原创。
第一次见到5V5训练模式是在叮当猫和布锅锅的视频中,分别为BV12E411S76p 与BV1rE411S78w ,可惜还没有去试就被修复掉了,不过这两个视频对于我后来发现血月杀、奥德赛等轮换模式房间的创建有着很大的帮助。
因为年初疫情的原因,呆在老家较为无聊,偶然间发现了英雄联盟大厅客户端(LCU)相关的API,具体资料可以参考https://developer.riotgames.com/docs/lol,我在这里就不多做解释了,有关于LCU的API有很多大神已经分析过了,下面简单的说下方法和我自己的见解,可能比较啰嗦,将就看吧。
英雄联盟大厅客户端(LCU)可以主要分为两部分,分别为底层和上层。
上层(LeagueClientUx.exe, LeagueClientUxRender.exe)基于Chromium Embedded Framework (CEF) 主要用于显示界面并通过RTMP协议与底层进行通信。
底层(LeagueClient.exe)是一个Server与上层和服务器进行通信,同时会启动一个HTTPS的Web Server以供第三方程序来与之通信,这也是很多第三方程序获取到当前召唤师信息和符文等信息的方法。我们要做的也是通过发送HTTPS请求的方法来与LCU交互。
英雄联盟大厅客户端启动后会在大厅客户端(LeagueClient.exe)的目录下产生一个名为lockfile的文件,可以使用记事本等文本编辑工具直接打开,里面会显示大厅客户端的进程名、PID、端口、Token和协议,见下图。
我本次使用的是Chrome浏览器进行测试,推荐使用FireFox浏览器,FireFox会自动对Json等进行格式化,使返回的结果更为直观。
我们需要做的就是使用这个lockfile提供的端口和token连接web server并发送请求。可以先使用浏览器访问http://127.0.0.1:51682这个地址,51682是lockfile内的端口,用户名填riot 密码填lockfile内的Token DFm1JZm7ZjCUzxwIuXhgfg
登录成功后会显示如下的结果
因为我没有去POST或GET一个请求,所以不会给返回结果。我们可以访问https://127.0.0.1:51682/lol-summoner/v1/current-summoner,这个地址会显示当前召唤师的基本信息。遮住的部分为召唤师名。
如果上一步可以获取到自己的召唤师信息,那么恭喜您 距离成功更进了一步。
以下操作需要程序支持,有能力的可以自己实现
现在开始尝试创建一个 匹配模式-自选 的房间。在LCU支持的API中关于房间相关的API有两个版本分别为/lol-lobby/v1/和/lol-lobby/v2/,我们需要用到的是v2 见下图。
向 https://riot:token@127.0.0.1:port/lol-lobby/v2/lobby (之前这里port和token位置写反了,感谢云尽月如霜的指认)这个网址发送POST请求,内容为 {"queueId":430 } ,如果LCU到了这个请求便会创建一个匹配模式的房间,或是将当前的房间变更为匹配模式,此时服务器会给我返回一个结果,内容是这个房间的所有相关信息。
上面这个方法是根据queueId来创建房间,相关的queueId官方都整理好了http://static.developer.riotgames.com/docs/lol/queues.json 可以在我提供的软件上自己试试把queueId填进去创建一个房间(软件右侧的queueId整理的可能不准确)。备注: 正是叮当猫与布锅锅的视频给了我灵感,后面才发现了特殊玩法(关于轮换模式的随意创建)。
现在开始讲创建5v5训练模式,前面讲的是queueId来创建房间,但queueId创建房间很局限,只能创建官方现在或曾经支持的模式且创建出来的房间是需要匹配玩家才能进行游戏的。这个5V5训练营比较特殊,相当于是一个特殊的自定义。发送下图的JSON即可创建一个名为MyLobby的5v5训练模式房间。或在我的软件中直接点击 [创建5v5训练模式] 按钮
暂时就先讲这些吧,其他的部分欢迎加群一起讨论,群内有软件的Release版本和使用方法,可以直接使用,推荐在非腾讯服游玩,虽然不太可能出问题不过还是要小心一些,国服只支持5V5不支持其他轮换模式。
软件代码:https://github.com/MarioCrane/LeaueLobby
软件使用Qt编写,因为没有在这个软件上放太多的心思,所以代码比较粗糙,为了让各位能够理解 今天刚加了中文注释。
本次公布方法以及开源仅供参考和学习,不得用于非法行为。软件完全免费且开源,禁止倒卖或出售。
感谢各位测试人员和使用过此软件的用户
感谢叮当猫与布锅锅对此软件的支持
并特别感谢一位朋友辛劳的测试和付出 小蓝 (我喜欢这么称呼他) B站用户名: 今天你玩血月杀了吗 ,他的投稿里面有关于血月杀和冰雪大乱斗 BV145411W7S8
交流群:1127315506
作者: Mario
本文为我原创










