A blog site powered by WordPress

Moposx的部落阁

分類: 教程

使用英雄联盟国服客户端 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更合适的最主要的原因。

RIME 拉丁字母混合输入方案去掉上屏字符后的空格

项目作者是 polyhedron, GitHub 地址为:https://github.com/biopolyhedron/rime-latin-international

这个方案的好处是可以用现有的 QWERTY 布局键盘方便地输入拉丁、希腊字母,变音字母、重音符号、以及国际音标符号等等,甚是方便。唯一有点不舒服的地方在于,每次输入完毕上屏符号时后面总是会附带一个空格,每次都手动删除也怪麻烦的,那不如来设置一下,一劳永逸地解决问题。

在 RIME 输入法的用户文件夹内,新建 latin_international.custom.yaml,添加如下内容,并重新部署即可:

# Rime configuration
patch:
  "punctuator/use_space": false

目前我不知道这个操作会带来什么负面影响,因为看起来这个是有意设置的。如果确实会带来新的问题,我以后会更新对应的解决方案。

解决 Firefox Android 版无法正常识别替换字体的问题

提示:本问题以及解决方案同时适用于 Firefox Preview 和 Firefox 68 ESR for Android。

全面切换到 Firefox 平台后,Android 平台上的 Firefox Preview 自然成为了我的首选。现代的 UI 设计和不俗的性能,体验上与 Chrome不相上下,而且能够正常渲染 CJK 衬线字体,这可是 Chrome 做不到的。(本站的博文和标题也都是衬线体字)

  • Chrome 下在 Kotobank 查询一个单词

看完我只想说,我想起高兴的事情…

当然我不是说 Chrome 就一定做不到。Chrome 通过硬替换 Noto Serif 为 Noto Serif CJK / Source Han Serif CJK的字体就可以正常渲染。不过,这未免有些蛋疼吧。

当然不要以为用火狐就没有麻烦。(如果不折腾就不会有什么麻烦。)如果你用 Magisk 一类的工具替换了一些字体,却没有在火狐中进行设定的话,你一样会遇到一些蛋疼的问题。举个例子,我用 Magisk 将 Android 默认的 Droid Sans Mono 替换成了 Source Code Pro,结果始终不能渲染,总是会回退到 Roboto 或者是 Noto Sans CJK里面。我以为是 Firefox Preview 的问题,就换上了 Firefox 68 for Android,结果问题依旧。最终只好去 Firefox Preview 的 Repo 提了个issue,第二天得到了回复:

Gecko 寻找字体以来的是字体的元数据(包含有字体名称),也就是不同于 Chrome 和别的 Android 应用,Firefox 是通过字体名称判断字体的。因此,单纯地替换了字体还不算完,还必须得在 about:config 里面设定特定语言的等宽字体,从 “Droid Sans Mono” 改成 “Source Code Pro” 才能真正让字体生效。

在 about:config 中进行设置
在 about:config 中进行设置

同样的,如果你是个火狐用户,还替换了 Roboto/Noto Serif/NotoSerifCJK/DroidSansMono/NotoColorEmoji等字体的时候,请务必先了解到该字体的名称信息,并将其设置写进 about:config 才算最终完成。

ssh-add 遇到 “invalid format”的解决方案

出现这一问题的原因主要有两个,一是密钥文件本身有问题,二是 ssh 程序有问题。

首先检查一下密钥文件,注意观察文件末尾:

# I'm on Zsh.
$ cat ./id_rsa
-----BEGIN OPENSSH PRIVATE KEY-----
...
...
-----END OPENSSH PRIVATE KEY-----%

如果你也在用 Zsh,想必对这个多余的百分号有所了解。出现百分号意味着该文件缺少一个换行符号。那么问题就很简单了,打开文本编辑器,在”—–END OPENSSH PRIVATE KEY—–“后面加上一个空行,记得检查换行符类型(CRLF / LF)。问题就能轻松解决。

在 Windows 下也很可能遇到这个问题,这时请下载 PuTTYGen,用 PuTTYGen打开私钥文件,点击菜单栏的”Conversion”,然后点选 Export OpenSSH key (force new format),然后就可以正常导入了。稍后再补上图片说明。

重装系统后导入SSH和GPG密钥

以 macOS 为例。

导入 SSH 密钥

macOS 已经内置了 SSH 了,因此我们不必另行安装。准备好先前导出过的 SSH 密钥,在终端下执行命令:

$ ssh-add ./id_rsa

此时可能收到错误:

$ ssh-add id_rsa
Error loading key "id_rsa": invalid format

如果你遇到了这个错误,请参考:

导入 GPG 密钥对

# 建议把文件权限设置为 600
$ gpg --import ./pgp-pubkey-export.txt
gpg: directory '~/.gnupg' created
gpg: keybox '~/.gnupg/pubring.kbx' created
gpg: ~/.gnupg/trustdb.gpg: trustdb created
gpg: KEY INFO imported
gpg: Total number processed: 1
gpg:               imported: 1
$ gpg --allow-secret-key-import --import ./pgp-seckey-export.txt
# Then enter your passphrase
gpg: key INFO not changed
gpg: key INFO: secret key imported
gpg: Total number processed: 1
gpg:              unchanged: 1
gpg:       secret keys read: 1
gpg:   secret keys imported: 1
 

macOS Catalina 使用旧式字体渲染命令后的补救措施

其实标题写的不是很准确。简单来讲,macOS Catalina 中似乎完全移除了 subpixel 字体平滑模式,然而免不了有用户尝试 macOS Mojave 里面的指令,结果发现适得其反(举例,mac QQ,字体炸了又炸)。

一般来说,用户输入了如下代码:

$ defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO
$ defaults -currentHost write -globalDomain AppleFontSmoothing -int 1 (0/1/2/3)

之后重新登录,就发现其实渲染效果并不是很好。这时为了还原效果,还需要重新打开设置里的“使用LCD平滑字体”,但是这还没完。如果做完这一步就重启,开机之后字体仍然是炸的,你会发现字体和像素对得惨不忍睹。正确操作是追加这条命令:

$ defaults delete -g CGFontRenderingFontSmoothingDisabled

再次重启即可。

Powered by WordPress & Theme by Anders Norén