Scighost / Starward

Game Launcher for miHoYo - 米家游戏启动器
https://starward.scighost.com
MIT License
3.44k stars 166 forks source link

[Feature] 新版本的Pin设计关于国服同端多服的特化实现 #895

Open Fachep opened 2 months ago

Fachep commented 2 months ago

Checklist

Summary

新的设计似乎希望多个区服共存,目前对于原神/星铁的官服&b服可以做到这一点,无需额外转换。

Solution or Design

原和铁启动时会读取当前工作目录下的config.iniconfig.ini中大部分配置项仅用于官方启动器的版本校验,仅channel [cps?] subchannel会影响到实际运行的区服。 对于官服,除了原神3.x的某个版本,b服所需要的Plugins/[{arch}/]PCGameSDK.dll会被忽略。B服则是动态加载此dll,丢失会退回到官服。 因此可以设计针对 PCGameSDK.dll 的懒检查和开关,在启动对应的区服时,仅需将子进程的工作目录设置到 Starward 所创建的文件夹中。例如:

  1. 对于原神,在不改变游戏安装目录中config.ini的情况下,懒检查/安装Yuanshen_Data/Plugins/PCGameSDK.dll;对于星铁则是StarRail_Data/Plugins/x86_64/PCGameSDK.dll
  2. 在Starward数据目录下创建文件夹 cn_gf cn_qd01
    # cn_gf/config.ini
    channel=1
    cps=mihoyo
    sub_channel=1 # 0 for disabling taptap
    # cn_qd01/config.ini
    channel=14
    cps=bilibili
    sub_channel=0
  3. 启动官服和b服时,分别将子进程工作目录设置到 cn_gf 或 cn_qd01 即可
Eric-Joker commented 2 months ago

这可能是目前的目标https://github.com/Scighost/Starward/issues/749