elogank / lol-replay-downloader
《英雄联盟》回放下载库
Requires
- php: >=5.4.0
- kriswallsmith/buzz: ~0.13
This package is not auto-updated.
Last update: 2024-09-14 16:55:27 UTC
README
此项目为您提供了一个方便的方法,可以轻松下载还在进行中的《英雄联盟》回放游戏,就像 lolking.net 或 op.gg 特性。回放存储在您的服务器上,可以随时观看。
所有下载文件都可以解码以解析它们。
功能
- 每个文件(数据块和关键帧)内置回放解码器.
- 异步系统(多进程),允许同时下载一些回放,并将日志保存到回放文件夹,需要CLI依赖项:https://github.com/EloGank/lol-replay-downloader-cli。
- 如果在游戏开始后开始下载过程,可以下载游戏开始前10分钟的数据(由于Riot观众服务器引擎的限制,只能下载过去10分钟的数据)。
- 如果下载过程开始得太早(游戏加载过程中或游戏开始的前3分钟),可以等待游戏开始。
- 易于扩展和配置.
安装
Composer
简单克隆此项目并运行composer install
命令。如果您不知道Composer是什么,请阅读专用文档。
配置
要配置库,您可以在类的构造函数中设置一些$options
参数。只需传递一个数组以覆盖它们,请参阅每个类的getDefaultOptions()
方法。
请参阅"下载和解码示例",它覆盖了ReplayDownloader
类的两个配置。
与xDebug相关的注意事项
如果您已启用xDebug,请将最大嵌套级别设置为200以上。此库使用递归方法下载游戏数据,当游戏时长超过40分钟时,可能达到最大值(100)。
要编辑默认的最大嵌套级别,请打开您的xDebug配置文件(默认为/etc/php5/your_engine(cli, fpm or apache2)/conf.d/20-xdebug.ini
)并附加以下内容
[xdebug] xdebug.max_nesting_level = 300
如何使用(示例)
一些示例可在示例存储库文件夹中找到。
如何获取区域、游戏ID或加密密钥?
某些区域(并非所有区域)在LoLNexusParser
类中作为常量列出。
从非官方API
对于游戏ID
和加密密钥
,这要困难一些。确实,官方Riot API尚未提供检索这些数据的API。
要获取它,您必须使用非官方API,例如:https://github.com/EloGank/lol-php-api,请参阅路由game.retrieve_in_progress_spectator_game_info
。请注意,根据新的Riot使用条款(见下面的“重要提示”),不允许使用其他路由。
从LoLNexus网站
出于测试目的,您可以直接访问观看网站,如lolnexus,点击游戏上的“观看”按钮,您将在启动游戏的命令行中看到区域、游戏ID和加密密钥,请参阅行尾
"C:\Riot Games\League of Legends\RADS\solutions\lol_game_client_sln\releases\0.0.1.xx\deploy\League of Legends.exe" "8394" "LoLLauncher.exe" "" "spectator SERVER_ADDRESS ENCRYPTION_KEY GAME_ID REGION"
示例
"C:\Riot Games\League of Legends\RADS\solutions\lol_game_client_sln\releases\0.0.1.68\deploy\League of Legends.exe" "8394" "LoLLauncher.exe" "" "spectator 185.40.64.163:80 nwP+BEYqHgk4sElnU2uRogoxGPUw1dzE 1234567890 EUW1"
因此,您可以提取
从LoLNexus解析器
这里有一个LoLNexus PHP解析器: https://github.com/EloGank/lol-replay-downloader/blob/master/examples/utils/LoLNexusParser.php
使用很简单:您只需通过调用LoLNexusParser::parseRandom($regionId)
或LoLNexusParser::parsePlayer($regionId, $playerName)
方法选择地区,然后通过调用LoLNexusParser::getRegion()
、LoLNexusParser::getGameId()
或LoLNexusParser::getEncryptionKey()
方法获取执行命令所需的所有参数。
示例代码在此处可用: https://github.com/EloGank/lol-replay-downloader/blob/master/examples/download-replay.php#L32-L48
重要说明
根据新的Riot服务条款(2014年10月1日),使用官方API以外的其他数据源是不允许的。因此,解析解码文件以使用数据是不允许的。本项目仅提供解码文件的方法,用于教学目的。
只有如果您在游戏开始后大约8分钟之前开始下载过程,才能下载完整游戏。否则,您将无法获得游戏开始的部分。
如果游戏没有更新,则游戏仍然可以观看。如果自下载回放以来已应用了一个或多个更新,可能会有一些游戏中的错误(移动、怪物、声音等)。
报告问题或功能请求
请在问题跟踪器中自由地提交问题、派生此项目或建议一个酷炫的新功能。
致谢
查看贡献者列表。
许可证
此存储库未获得Riot Games的认可,也不反映Riot Games或任何官方参与制作或管理《英雄联盟》的观点或意见。
《英雄联盟》和Riot Games是Riot Games Inc.的商标或注册商标。《英雄联盟》©Riot Games Inc.