前言
20230923 更新
- 大家问得最多的是为什么黑屏,这是因为回放文件跟英雄联盟版本强绑定,过去的回放文件无法用新版联盟播放,可以看官方说明
https://lol.qq.com/act/a20170728replay/
- 我的方案是轻量版的,如果有想探寻究竟的同学可以看过程,只想使用的同学可以跳到播放结论
- 推荐使用这个
https://www.fraxiinus.dev/ReplayBook/
源码https://github.com/fraxiinus/ReplayBook
2021-02-28
纯好奇驱动,写了本篇
正文
当前英雄联盟版本为
保存
在英雄联盟客户端打开生涯->对局记录->下载回放
下载完之后可以去获取保存位置查看回放数据文件(名称是.rofl结尾),可以移动到其他地方或者分享给别人,可以以简要信息修改命名
播放
如果最近的回放直接在下载的地方点击播放即可,但是比较久的就需要手动了,手动播放历史文件比较麻烦,非求道(原理)者直接看结论点击(题外话:csdn锚点如果是中文只能在编辑时跳转~,被坑了一下)
根据多年联盟经验,我们知道登录程序叫做 LeagueClient.exe
回放和游戏运行的程序叫做League of Legends.exe
-
网上的方法都是把数据文件拖动到回放程序
League of Legends.exe
这样的结果是
-
报错是因为无法读取到数据文件,所以需要拷贝数据文件到回放程序同级目录下,再拖动到回放
这样确实能播放,但是启动的界面是英文的,并且中文乱码
-
命令行启动
根据逆向易得League of Legends.exe有以下部分参数
-CloseOnGameEnd
-GameID
-PlayerID
-PlatformID
-RiotClientPort
-RiotClientAuthToken
-gameflow
-gameflow
-received
-message
-GameBaseDir
-info
-FatalAssertions
-GameCfgName
-GameBaseDir
-Locale
-HighlightsPath
-InsecureRemoting
-RemotingPrivateKey
-RegisterRemotingWithDiscoveryService
-3A1FF4F0
-UseDX11
-plugins
-persistence
-uniplugin
-be
-rso
-new
-stay
-disable
-config
-localization
-status
其中根据经验可知-Locale参数为设置语言,根据拳头文档可知支持的语言有
defalut:en_US
Chinese:zh_CN
Japanese: ja_JP
Korean: ko_KR
我们来验证一下,wegame启动观战的参数为
c:\wegameapps\英雄联盟\Game\League of Legends.exe C:\Program Files (x86)\WeGame\apps\pallas\ob\31_92446303.rofl -GameBaseDir=c:\wegameapps\英雄联盟\Game -Locale=zh_CN -SkipRads -SkipBuild -EnableLNP=false -UseNewX3D=1 -UseNewX3DFramebuffers=1
精简为
cmd /c "League of Legends.exe" 你的数据文件名.rofl -Locale=zh_CN
效果还行
播放结论
保存以下脚本startReplays.cmd
在回放目录(你存放回访的目录),修改LeaguePath(以下脚本的变量)为你英雄联盟的主路径,因为有中文,记得保存文本格式为ANSI或者GBK
名字startReplays.cmd
@ECHO OFF
set LeaguePath=c:\wegameapps\英雄联盟
set LeagueGamePath=%LeaguePath%\Game
cd "%LeagueGamePath%"
rem if "%1" == "" goto end
"%LeagueGamePath%\League of Legends.exe" %1 -GameBaseDir="%LeagueGamePath%" -Locale=zh_CN -SkipRads -SkipBuild -EnableLNP=false -UseNewX3D=1 -UseNewX3DFramebuffers=1
:end
然后拖动回放文件到这个脚本即可