背景:最后是 tl;dr
英雄联盟有一个旁观者模式,在这种模式下,您可以延迟 3 分钟观看其他人的比赛(基本上是重播)。 受欢迎的 LoL 网站 OP.GG想出了一种巧妙的方法,将这些观众游戏托管在他们自己的服务器上,从而使它们可重玩,而不是仅在游戏运行时可用(就像 Riot 那样)。
如果您从 OP.GG 请求重播,它会发送一个批处理文件,查找联盟所在的位置,然后神奇的事情发生了:
@start "" "League of Legends.exe" "8394" "LoLLauncher.exe" "" "spectator fspectate.op.gg:4081 tjJbtRLQ/HMV7HuAxWV0XsXoRB4OmFBr 1391881421 NA1"
Run Code Online (Sandbox Code Playgroud)
这在 Windows 上运行良好。我正在尝试让它在 Mac(它有一个官方客户端)上运行。
首先我尝试手动运行相同的命令,(为了方便拆分)
/Applications/ ... /LeagueOfLegends.app/ ... /LeagueofLegends 8393 LoLLauncher \
/Applications/ ... /LolClient spectator fspectate.op.gg:4081 tjJbtRLQ/HMV7HuAxWV0XsXoRB4OmFBr 1391881421 NA1
Run Code Online (Sandbox Code Playgroud)
但是,运行它只会启动 LoLLauncher,它会关闭所有活动的 League 进程。如果我只是打电话,会发生完全相同的事情/Applications/ ... /LeagueOfLegends.app/ ... /LeagueofLegends
接下来,我尝试查看启动旁观者模式时实际发生的情况,因此我运行$ ps -axf | grep -i lol了显示
UID PID PPID C STIME TTY TIME CMD
503 3085 1 …Run Code Online (Sandbox Code Playgroud)