elogank/lol-replay-downloader

此包的最新版本(1.0.0)没有可用的许可证信息。

《英雄联盟》回放下载库

1.0.0 2014-12-02 22:23 UTC

This package is not auto-updated.

Last update: 2024-09-14 16:55:27 UTC


README

此项目为您提供了一个方便的方法,可以轻松下载还在进行中的《英雄联盟》回放游戏,就像 lolking.netop.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分钟之前开始下载过程,才能下载完整游戏。否则,您将无法获得游戏开始的部分。

如果游戏没有更新,则游戏仍然可以观看。如果自下载回放以来已应用了一个或多个更新,可能会有一些游戏中的错误(移动、怪物、声音等)。

报告问题或功能请求

请在问题跟踪器中自由地提交问题、派生此项目或建议一个酷炫的新功能。

致谢

查看贡献者列表

许可证

MIT,更多信息

此存储库未获得Riot Games的认可,也不反映Riot Games或任何官方参与制作或管理《英雄联盟》的观点或意见。
《英雄联盟》和Riot Games是Riot Games Inc.的商标或注册商标。《英雄联盟》©Riot Games Inc.