LiuJiewenTT / Snowbreak_ServerSwitcher

用于切换不同渠道的启动器,以连接到不同的《尘白禁区》服务器。(纯bat脚本实现)
https://liujiewentt.github.io/Snowbreak_ServerSwitcher/README
MIT License
7 stars 0 forks source link

既然国际服和国服文件不能使用同一个,那么启动器切换没什么意义啊 #6

Open liusj5257 opened 1 month ago

liusj5257 commented 1 month ago

渠道服如果文件共用的话,可以试试直接快捷方式命令行启动game.exe,不需要切换启动器 这是官服的,合理推测切换渠道服也是通过命令行参数实现的 "F:\Program Files\Snow\data\game\Game\Binaries\Win64\Game.exe" -FeatureLevelES31 -ChannelID=jinshan "-userdir=\"F:\Program Files\Snow\data\game\"" gclid=CBJQ_setup 没有下别的渠道服就懒得去抓命令行了

LiuJiewenTT commented 1 month ago

我来告诉你有什么用:

第一,现在还是不是我不知道,但是以前是存在因为共用了部分配置文件,导致有人登陆国际服再切回来会无法登陆进服务器。我正式开发这个项目的时候,是1.5末1.6初,那个时候还是存在这个问题。

第二,共用程序入口的好处是,你可以保持尽可能的简洁,你的第三方软件可以共用数据。虽然没什么用,但就是闹着玩。比如:steam那边玩三个服都能刷时长,razor cortex(雷游)不用添加三个服的程序并分开统计和管理,第三方桌面(Live2DViewerEx)的桌面图标小部件可以使用同一入口。

第三,我保留进启动器这一流程,一方面是我菜,还有一方面是我懒,我不想哪天又要更新命令去处理新的兼容性,我不希望用户突然哪天用不了了。稳定是好事,抓取命令行很容易,但参数太多,我对参数列表的稳定性没有信心。

LiuJiewenTT commented 1 month ago

保留启动器一方面是“壁纸好看”,还有一方面是启动器可以更新资源。我实在懒得自己造轮子去完成官方的资源校验和更新功能。

LiuJiewenTT commented 1 month ago

其实如果能爆改官方启动器是最好的,不过我既没有办法搞到源码,也不敢搞代码注入(而且这方面也没经验)。

liusj5257 commented 1 month ago

发现startup.settings 这个文件确实很重要,国际服直接用steam版充值便宜还少了个启动器,写个bat脚本每次启动game.exe前后都重命名下startup.settings 就能实现和国服共存

LiuJiewenTT commented 1 month ago

发现startup.settings 这个文件确实很重要,国际服直接用steam版充值便宜还少了个启动器,写个bat脚本每次启动game.exe前后都重命名下startup.settings 就能实现和国服共存

确实如此,我选择了用符号链接映射

LiuJiewenTT commented 1 month ago

发现startup.settings 这个文件确实很重要,国际服直接用steam版充值便宜还少了个启动器,写个bat脚本每次启动game.exe前后都重命名下startup.settings 就能实现和国服共存

补充一句,我当初没有选择重命名的方案,其中一个很重要的原因,就是无法得知当前文件属于哪个版本。虽说当时我多虑地以为会有三种版本,但如果算上后来的测试服,还真能算三种版本。重命名的方案,就怕执行错了对应的恢复脚本,到时候乱套了就麻烦了,比如重下十几GB。

liusj5257 commented 1 month ago

我只通过bat启动,每次都覆盖一次文件不需要在意当前版本,唯一的遗憾是从国服换steam启动后界面语言默认是英文,需要手动改下. cn.bat

copy startup_cn.settings  startup.settings

start /B "" "F:\Program Files\Snow\data\game\Game\Binaries\Win64\Game.exe" -FeatureLevelES31 -ChannelID=jinshan "-userdir=\"F:\Program Files\Snow\data\game\"" gclid=CBJQ_setup

steam.bat

copy startup_steam.settings startup.settings

"C:\Users\aqeqqq\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu\SNOWBREAK.url"
LiuJiewenTT commented 1 month ago

我只通过bat启动,每次都覆盖一次文件不需要在意当前版本,唯一的遗憾是从国服换steam启动后界面语言默认是英文,需要手动改下. cn.bat

copy startup_cn.settings  startup.settings

start /B "" "F:\Program Files\Snow\data\game\Game\Binaries\Win64\Game.exe" -FeatureLevelES31 -ChannelID=jinshan "-userdir=\"F:\Program Files\Snow\data\game\"" gclid=CBJQ_setup

steam.bat

copy startup_steam.settings startup.settings

"C:\Users\aqeqqq\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu\SNOWBREAK.url"

既然你是用copy的方法直接覆盖,那你不妨把Game.ini也覆盖了,里面设置一项: 'Language=zh_CN'(好像是这样) steam版好像还有额外的配置目录,但是不太完整,你可以试试写在额外目录的配置在启动时会不会自己覆盖用户目录的配置。