前言
Zwift是一个大型多人在线自行车和跑步体能训练程序,使用户能够在虚拟世界中进行互动、训练和比赛。Zwift每月的订阅费用是14.99$,折合人民币约100¥。Zwift主打用户间的社交,如果你像我一样只是用Zwift看风景,让自己的踩骑行台不那么无聊的话,那么这个月费就显得不那么值了。很遗憾的是Zwift没有提供「离线模式」这样的功能。这是因为其采用了「服务端-客户端」架构,必须全程联网才能使用。好在有人发起了一个叫做「Zwift-offline」项目,这个项目提供了一个Zwift服务端的实现,这才让「离线模式」成为可能。废话少说,今天就来尝试部署一下这个「Zwift-offline」
Zoffline
Zoffline是这么介绍自己的
zoffline enables the use of Zwift offline by acting as a partial implementation of a Zwift server.
「Zwift-offline」基于python,可以在Linux,Windows和Mac OS X上(以源代码)运行,并额外提供了Windows 二进制文件、Docker镜像和Docker Compose,涵盖了所有的桌面系统。
我的操作系统是Windows,并且我喜欢折腾,所以就选择用源代码运行了。
我在这里仅仅列出自己的步骤,其他操作系统可以参考官方的安装步骤,写的非常详细
安装Zoffline
配置依赖
Zoffline的依赖可能会与系统自带的Python冲突,所以我选择新建一个conda
环境:
|
|
按照官方流程,安装依赖
|
|
下载源码
我从源代码运行,所以直接clone就可以了
|
|
完事后先运行一次zoffline,让其完成初始化后结束进程
|
|
配置zwift客户端
调整服务端版本号
我的zwift版本比1.0.100427
新,所以要改一下zoffline的版本号
复制C:\Program Files (x86)\Zwift\Zwift_ver_cur.xml
到 zoffline/cdn/gameassets/Zwift_Updates_Root/
,覆盖已有的文件
导入证书
管理员权限运行终端,执行命令
|
|
密码留空即可
接下来已管理员权限启动notepad
,将ssl/cert-zwift-com.pem
的内容粘贴在C:\Program Files (x86)\Zwift\data\cacert.pem
的尾部
这一步的目的是让zwift客户端信任服务端
修改hosts
我不想动hosts,官方提供了对应的启动脚本(zoffline/scripts/launch.bat
),所以这一步可以跳过
获取zwift用户信息(可选)
运行
|
|
其中<your_zwift_username>
是你的zwift账户邮箱
将得到的profile.bin
移动到zoffline/storage
目录下
以离线方式启动zwift客户端
启动前确保zoffline在运行
打开终端,执行zoffline/scripts/launch.bat
如果随便输个密码就可以进游戏,则说明配置成功。
但是现在的记录仅仅保留在zoffline中,若要上传到strava,还要进一步配置。
自动同步到strava(可选)
退出zwift客户端
|
|
在打开的浏览器窗口中登录你的strava账号,将得到的strava_token.txt
移动到zoffline/storage/<player_id>
目录下。<player_id>
是一串数字,在上一步中由zoffline生成
开启新版Home页面
用任意文本编辑器打开zoffline/zwift_offline.py
,定位到
def experimentation_v1_variant()
函数,找到对应的配置,改成如下
|
|
重新打开zwift就能用到新版Home界面了
你还在等什么,快来zwift中挥洒汗水吧!
手动上传至Strava
由于众所周知的原因,有时与strava的自动上传会失效。这时不必惊慌,因为zwift客户端会把每次活动.fit
文件保存在本地。打开Documents/Zwift/Activities
,按照strava官网右上角那个大大的加号里的步骤描述就好了😃