使用英雄联盟国服客户端OB外服对局

前言

此前一直以为只有外服客户端才能进行OB,但是想来想去都觉得这肯定不合理,难道国服客户端就不算客户端?诚然,国服客户端加入了很多腾讯自己的组件,直接去 op.gg 下载到的文件是无法直接启动国服客户端进行 OB 的,那个文件只支持韩服和欧美服务器。

问题分析

那么首先来看看这些个启动 OB 的脚本是个什么结构:

可以看到比较关键的就是 LoL 客户端的路径。脚本设置了一个缺省的 RADS 路径(原来的客户端会有一个这样的文件夹),即“C:\Riot Games\League of Legends”,如果该路径不存在就会使用用户在网站上设置的客户端路径。

那为什么国服的 LoL 客户端连启动都启动不起来呢?我们看一看文件夹结构便知道,国服客户端相比美服,文件夹被拆开了,Game 目录直接被移到了父目录里面。这里放一张美服的文件结构,大家可以用国服进行对比:

目录结构
目录结构
客户端文件
客户端文件

目录都不一样找不到文件也就不足为奇了。

接着看看脚本里是如何进行 OB 的:

原来如此。最终要启动的就是 “League of Legends.exe”,然后加上了 OB 相关的参数:

cmd> @start "" "League of Lengends.exe" "spectator SPECTATOR_URL SECRET SPECTATOR_ID SERVER_REGION" "-UseRads" "-Locale=LOCALE_NAME" "-GameBaseDir=.."
# 这是放在 cmd 中运行的代码格式。
#如果是 Powershell 里面,则是:
pwsh> '.\League of Legends.exe' 'spectator SPECTATOR_URL SECRET SPECTATOR_ID SERVER_REGION' '-UseRads' '-Locale=LOCALE_NAME' '-GameBaseDir=..'

而国服的 “League of Legends.exe” 则位于 “英雄联盟\Game\”里。这就意味着我们需要去这个目录下面执行这一行命令。然后我们看看别的参数:

# SPECTATOR_URL example:
spectator.na2.lol.riotgames.com:80

# SECRET
Gt/4p574BORnnPVZHHipaNJT0FMAgfej

# id
3384695424

# SERVER_REGION
NA1 #反复查看了脚本,这里的服务器区域跟上面的网址真不一定能够对上号

# LOCALNAME example:
zh_CN; en_US; en_GB; ja_JP

其中,locale是可以选的,国服其实就直接用"-Locale=zh_CN"就可以了。而 "-UseRads"看起来是个必需的参数。(Google一大堆 RADS error的文章,这个错误一发生就启动不了游戏)。至于"-GameBaseDir=..",在美服中它指向的是LoL客户端的根目录,所以这里我们直接指定”..” 为实际的游戏根目录(也就是包含了“英雄联盟”, “英雄联盟卸载”, “访问官网”几个快捷方式的那个目录)即可。但实际上省略这个参数也可以正常启动 OB

实际测试和效果

用 powershell 启动:

当然也可以用 cmd ,复制粘贴那行代码就行:

可选设置 locale 为 zh_CN。

看看效果

注意事项

  • 推荐使用国服以免遇到难看的 tofu 字。 国服版本不支持韩文字符显示。
  • 由于国服的更新较其他服务器更慢,因此在国服的版本没赶上外服之前 OB 会失败。这其实是用外服客户端OB更合适的最主要的原因。

发表评论