Skip to content

用于切换不同渠道的启动器,以连接到不同的《尘白禁区》服务器。(纯bat脚本实现)

License

Notifications You must be signed in to change notification settings

LiuJiewenTT/Snowbreak_ServerSwitcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LANG date
zh_CN.UTF-8
2024-02-01 20:09:00 +0800

《尘白禁区》服务器切换器

简介:此程序用于切换不同渠道的启动器,以连接到不同的《尘白禁区》服务器。

快速跳转:使用, 配置方法, GUI.

icon

项目地址:https://github.com/LiuJiewenTT/Snowbreak_ServerSwitcher
说明页链接:https://liujiewentt.github.io/Snowbreak_ServerSwitcher/README

可行性分析

已知:

  1. 启动器名称没有任何影响,可以自己修改,不同启动器可以共存。
  2. 官服和B服共用相同的数据,仅启动器不同。
  3. 已有工具基于以上原理实现了切换。
  4. 符号链接通常对程序透明。
  5. 已测试:启动器名称不会被更新改变。

故:

  1. 可以使用符号链接实现共存和替换。
  2. 可以正常更新启动器。

优势

在2023年7月开服时,已经有人用易语言制作了一个启动器。

后来,西山居更新了启动器(发布1.1版本“夏日过年”时),这意味着各个渠道的启动器都要更新。

使用符号链接的好处在于,如果直接访问,那么链接是透明的,程序直接访问真实文件。

本程序使用Windows系统下运行于cmd.exe(命令提示符)的.bat批处理脚本实现。代码开放,完全开源,安全可查。

  • 非易语言程序,不会被杀毒软件误杀(360,仅未知程序运行提醒),放心使用。
  • 非powershell脚本(.ps1),没有麻烦。
  • 没有高危操作,不需要管理员权限启动。(但启动启动器时,启动器会要求管理员权限。此提权请求与本程序无关。)

如果不放心担心被其它程序或其它人修改程序产生不良影响,可以在【属性】->【安全】删除普通用户“写入”权限、保留“执行”权限。

此外,在游戏目录内(启动器原始位置),不同渠道的启动器可以共用相同的文件名。也就是说,如果你不是一起开那么一个桌面快捷方式就足够了。(此时也不用担心更新可能出现混乱导致快捷方式或是其它程序(如,Razor Cortex)出现路径错误。)

当然,如果你就是要多个一起开,那,如果可以的话,本程序也可以通过修改配置满足你。可惜,启动器进行了限制,不允许多开。

具体什么问题可以联系作者,有空会协助解决。

备注

  1. 支持中文(保证不乱码)和英文。(Support zh_CN and en_US.)

使用

首次启动前需要完成配置,具体看下一部分说明。

命令格式:

CBJQ_SS.main [OPTIONS] [SERVER]

注意事项

补充说明:请确保真正的启动器所在目录下有preference.json文件,如果没有这个文件,启动器会以为是第一次运行,进而无法定位到正确的游戏数据目录。

运行环境注意(普通玩家)

  1. 使用前请确认“用户变量设定区”的已经设置好了启动器路径。
  2. 除了“用户变量设定区”,其它都不要动。
  3. 请确保路径中不包含这些符号:“[ ]

运行环境注意(高级玩家)

  1. 从Powershell启动可能会存在LANG环境变量,程序将优先从LANG选择mLANG缺省值。
  2. 启动参数必须选项在前服务器在后,指定多个服务器会依次触发操作。
  3. 上部分第三点具体说明:目的路径字符串不得包含启动器储存路径字符串。

完成配置后,可使用GUI进行操作。

参数

启动参数必须选项在前服务器在后,指定多个服务器会依次触发操作。

  1. -nopause:从命令行启动可以指定该参数,使得程序结束时不暂停。
  2. -nostart仅切换启动器,不顺带启动程序。
  3. -noswitch仅启动程序,不切换启动器。

程序已经根据当前情况预设好了三种服务器(名):

  1. worldwide:国际服
  2. bilibili:B服
  3. kingsoft(金山):官服

例1:

CBJQ_SS.main bilibili

例2:

CBJQ_SS.main.bat bilibili

例3:

CBJQ_SS.main.bat -nostart bilibili

例4:

CBJQ_SS.main.bat -nostart -nopause bilibili

例5:

CBJQ_SS.main.bat -noswitch -nopause bilibili

例6(没什么意义):

CBJQ_SS.main.bat -nostart -nopause bilibili kingsoft worldwide

配置方法

请按照注意事项和脚本内的说明进行配置。

国际服的适配还在开发中,请暂时不要使用。

请在安装好一个版本后开始配置

以下为示例,看得懂的可以自行配置。

  1. 选择一个位置,比如启动器所在的位置。例如:M:\Program Files\Snow\

  2. 将发行的压缩包内的文件夹Snowbreak_ServerSwitcher解压到这个位置。

  3. 把原启动器拖入:Snowbreak_ServerSwitcher\Launchers\文件夹内。

    如果是国际服,可以考虑使用此示例:Snowbreak_ServerSwitcher\Launchers\worldwide

  4. 把原启动器所在目录下的preference.json复制到启动器新位置。

    补充说明:

    1. 请确保真正的启动器所在目录下有preference.json文件,如果没有这个文件,启动器会以为是第一次运行,进而无法定位到正确的游戏数据目录。
    2. 国际服默认不可与国服共用文件,所以您应该安装在其它位置,使用的preference.json也同样不能与国服的共用。
  5. 把你要的其它渠道的安装包(如:CBJQ_Setup.exe)用解压软件打开,打开app.7z(压缩包内的压缩包)。

  6. 将里面的启动器复制到刚才那个启动器的新位置去,把它们放到一起(同一目录)。

  7. 给不同启动器重命名。

  8. 来到脚本Snowbreak_ServerSwitcher\CBJQ_SS.main.bat中的“用户变量设定区”,设置说明了的6个变量。(没有就设为%launcher_none%

    launcher_worldwide, launcher_bilibili, launcher_kingsoft;(没有就设为%launcher_none%
    launcher_worldwide_dest, launcher_bilibili_dest, launcher_kingsoft_dest。(目的位置,就是原本应该在的路径)

    **首尾不要有多余的空格!**储存路径建议使用绝对路径而非相对路径。若移动了储存路径,可能会错误识别未存在,尝试切换或删除目的文件即可解决。目的目录必须存在,程序不会自动创建缺失的目录。示例

    @set launcher_worldwide=%~dp0Launchers\worldwide\snow_launcher-worldwide.exe
    @set launcher_bilibili=%~dp0Launchers\snow_launcher-bilibili.exe
    @set launcher_kingsoft=%~dp0Launchers\snow_launcher-kingsoft.exe
    
    @set launcher_worldwide_dest=..\worldwide\snow_launcher.exe
    @set launcher_bilibili_dest=..\snow_launcher.exe
    @set launcher_kingsoft_dest=..\snow_launcher.exe

    不会改参数就按这里的命名,然后复制这一段将对应代码替换。

  9. 使用命令行按照上述参数示例启动/切换启动器;或使用GUI操作。

    也可以用配置好的几个文件,给这几个文件创好桌面快捷方式,然后双击启动:

    • 切换+启动:尘白禁区**(切换+启动).bat
    • 仅切换,不自动启动:尘白禁区**(切换).bat
    • 仅启动,不切换:尘白禁区**(启动).bat

GUIs

可用GUI程序:

  1. 项目:CBJQ_SS_FrontEnd-tk。(目前仅支持中文)

LICENSE

本项目遵循MIT开源协议。

本项目内置IconFold v1.0.0 (MIT开源协议)实现文件夹图标的设置。可以删除tools文件夹。

About

用于切换不同渠道的启动器,以连接到不同的《尘白禁区》服务器。(纯bat脚本实现)

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published