Saber 酱的抱枕

Fly me to the moon

07/24
2025
游戏 软件

使用 python 脚本让 ZZMI 自动切换绝区零不同服务器的游戏路径

绝区零 浮波柚叶 R18 全裸 Mod

我安装了两个版本的绝区零,一个是 B 服,一个是官服。但是 ZZMI 里的游戏路径只能设置一个,所以我让 Grok 写了一个 python 脚本来自动切换游戏路径,分享一下。

手动切换

先看看手动切换路径的办法:

启动 XXMI,切换到 ZZMI 页面,然后打开设置,点击游戏路径右侧的刷新按钮,就会显示两个绝区零的游戏路径:

使用 python 脚本让 ZZMI 自动切换绝区零游戏路径

在这里切换路径,然后再启动游戏。

这样操作很麻烦,因为每次启动游戏前都必须手动切换路径,需要好几步操作。

自动切换

搜索 XXMI Launcher,可以看到当前用户的 AppData/Roaming 里有个 XXMI Launcher 文件夹:

使用 python 脚本让 ZZMI 自动切换绝区零游戏路径

里面有个 XXMI Launcher Config.json,保存了它的设置,包括游戏路径:

使用 python 脚本让 ZZMI 自动切换绝区零游戏路径

接下来我让 AI 帮我写了个 python 脚本,修改这里的路径,然后启动绝区零。

PS:XXMI 会在开始菜单里创建 ZZMI 的快捷方式 ZZMI Quick Start,可以一键启动绝区零,所以我让脚本使用这个快捷方式来启动游戏。

使用 python 脚本让 ZZMI 自动切换绝区零游戏路径

脚本代码

import json
import os

# 使用 %appdata% 通配符定义 JSON 文件路径
json_file = os.path.expandvars(r"%appdata%\XXMI Launcher\XXMI Launcher Config.json")

# 目标 game_folder 路径
new_game_folder = r"D:\game\miHoYo Launcher\games\ZenlessZoneZero Game"

# 快捷方式路径
shortcut_path = r"C:\ProgramData\Microsoft\Windows\Start Menu\Programs\ZZMI Quick Start.lnk"

try:
    # 读取 JSON 文件
    with open(json_file, 'r', encoding='utf-8') as f:
        data = json.load(f)

    # 修改 game_folder 值
    data["Importers"]["ZZMI"]["Importer"]["game_folder"] = new_game_folder

    # 保存修改后的 JSON 文件
    with open(json_file, 'w', encoding='utf-8') as f:
        json.dump(data, f, indent=4, ensure_ascii=False)

    print(f"已将 game_folder 修改为: {new_game_folder}")

    # 启动快捷方式
    os.startfile(shortcut_path)
    print("正在通过快捷方式启动游戏...")

except FileNotFoundError:
    print(f"错误:未找到文件 {json_file} 或快捷方式 {shortcut_path}")
except KeyError:
    print("错误:JSON 文件结构不正确,无法找到指定路径")
except Exception as e:
    print(f"发生错误:{str(e)}")

# 暂停以查看输出
# input("按回车键退出...")

注意:

  • 请根据自己的实际情况修改脚本开头的 3 个路径。第一个路径通常不需要修改。
  • 上面的代码是把游戏路径设置为官服的。要设置成 B 服的话,把脚本复制一份,再把 new_game_folder 设置为 B 服的路径即可。
  • 把脚本保存为 py 后缀名的文件,使用 UTF-8 编码。保存位置随意。
  • 需要安装 Python 环境,然后运行脚本即可启动游戏。如果双击脚本后没有运行,可以从右键-打开方式里选择 Python。也可以把 py 文件的默认打开方式设置为 Python,这样就能双击运行了。

最后就是保存了两个 py 文件,通过对应的文件启动游戏:

使用 python 脚本让 ZZMI 自动切换绝区零游戏路径

使用 python 脚本让 ZZMI 自动切换绝区零不同服务器的游戏路径