原神电脑版【官服-B服-国际服】换服/逻辑/手搓启动器简析(非教程)
V金色年华
编辑于 2023年05月29日 02:23
收录于文集
共13篇

写在前面

①最后修改于2022/12/23 游戏版本3.3 启动器版本2.22.0

②仅从功能出发,分析一下流程,不专业见谅

下文中Lconfig特指启动器配置文件、Gconfig特指游戏配置文件,实际文件名皆为config.ini,Lc.xxx特指启动器配置文件[launcher]组相应参数、Gc.xxx特指启动器配置文件[General]组相应参数;参数使用蓝色,路径文件使用橙色,小节使用绿色


§1. launcher-启动器

鉴于玩家想通过安装多个启动器以实现渠道切换却卡在第一步,就先从启动器说起...


§1.1 启动器的安装

首先从各渠道官网下载安装包,下哪个都差不多但国际服下载相关功能可能网速比较慢

代码块
XML
自动换行
复制代码
官服:https://ys.mihoyo.com/?
B服:https://www.biligame.com/detail/?id=105667&
国际服:https://genshin.hoyoverse.com/en/download?
国际服epic:https://store.epicgames.com/zh-CN/p/genshin-impact?
复制成功

由安装软件常识:原神安装包相当于一个自解压的压缩文件,可以直接提取;一般都是直接运行安装,其位置取决于注册表【HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\原神(Genshin Impact)】项中InstallPath关键字键值,若不存在该项则取决于【HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion】项中ProgramFilesDir关键字键值

直接安装的文件夹名称只能是Genshin Impact,后期可以自行更改移动,如果在同一路径重复安装启动器,就会因为重名文件夹把原来的启动器顶掉大部分文件,除了Lconfig;同理,桌面和开始菜单中的快捷方式也因为同名被顶掉,即使你已经修改过了路径;注册表略有不同,国服为原神,国际服为Genshin Impact,大渠道之间不会被顶掉,官服B服仍会


§1.2 Lconfig-启动器配置文件

Lconfig-启动器配置文件,即启动器根目录下也就是launcher.exe所在目录里的config.ini文件

打开启动器时未检测到Lconfig或其[launcher]组内容不全时,会自动创建该文件夹或填入参数,以下是各渠道的初始Lconfig内容,大部分不具有参考价值,下面浅说一下各参数作用,具体功能放在§1.4

代码块
JavaScript
自动换行
复制代码
官服: [launcher],game_install_path=E:/A/Genshin Impact/Genshin Impact Game,cps=pcadbdpz,channel=1,sub_channel=1,game_dynamic_bg_name=371de96d5d492f38d5237585a8c459c9_4114359943795478262.png,game_dynamic_bg_md5=b75e064f8d9845ea1f73e2014fc121f8,game_start_name=YuanShen.exe
B服: [launcher],game_install_path=E:/B/Genshin Impact/Genshin Impact Game,cps=bilibili,channel=14,sub_channel=0,game_dynamic_bg_name=371de96d5d492f38d5237585a8c459c9_4666494883606411084.png,game_dynamic_bg_md5=b75e064f8d9845ea1f73e2014fc121f8,game_start_name=YuanShen.exe
国际服: [launcher],game_install_path=E:/C/Genshin Impact/genshin Impact game,cps=mihoyo,channel=1,sub_channel=0,game_dynamic_bg_name=3518d99018e7c315ede3f7adaad98e10_6501871328940340264.png,game_dynamic_bg_md5=52fa63662f9e48969e0b5014ad5e5df4,game_start_name=GenshinImpact.exe
国际服epic: [launcher],game_install_path=E:/Epic Games/GenshinImpact/genshin Impact game,cps=pcseaepic,channel=1,sub_channel=3,game_dynamic_bg_name=3518d99018e7c315ede3f7adaad98e10_6501871328940340264.png,game_dynamic_bg_md5=52fa63662f9e48969e0b5014ad5e5df4,game_start_name=GenshinImpact.exe
复制成功

1. 可更改有用参数

①game_install_path-游戏安装目录,后文使用中文名称

默认为启动器根目录下.\Genshin Impact Game,中文路径必须转成十六进制以\x的格式写入,否则会乱码

②channel-渠道

默认为1,国服中B服为14、官服为1,国际服为1

仅在B服启动器&Lc.channel=14时下载B服sdk


2. 可更改无用参数

①cps-渠道备注(channel_postscript)

完全没有用处,仅备注

②sub_channel-子渠道

默认为1,对于启动器几乎没有用处

仅在国际服启动器&Lc.sub_channel=3时下载epicsdk


3. 不可更改参数

①game_dynamic_bg_name-游戏背景图片名称

获取自§1.3.3 data.adv.background

②game_dynamic_bg_md5-游戏背景图片哈希

获取自§1.3.3 data.adv.bg_checksum

③game_start_name-游戏启动名称


4. 其他参数

大部分不做解释,在启动器设置内有图形界面

①launcher_showup_type-是否退出游戏时弹出

②speed_limit_enabled-是否开启下载限速

③speed_limit_size-下载限速数值

④is_first_exit-是否首次退出

⑤exit_type-退出类型

⑥game_screenshot_clicked-是否点击过截图

⑦game_screenshot_tip_visible-是否显示查看截图弹窗


§1.3 启动器的GET请求

单分出去了一个专栏,内容稍微详细一些,避免此处过于臃肿

代码块内依次为官服、B服、国际服

对应的launcher_id,key:18 eYd89JmJ,17 KAtdSsoQ,10 gcStgarh

channel_id,sub_channel_id读取自Lconfig

可以很明确的看到官服&B服请求URL是相同的,仅参数有区别,launcher_id决定最多获取到什么,resource中channel_id&sub_channel_id决定能获取到什么,下面放的都是最简参数,国际服sub_channel_id=3目的为获取EPICsdk

1.getLatestRelease 获取启动器更新

key随版本更新,仅记录一组

代码块
XML
自动换行
复制代码
https://api-static.mihoyo.com/takumi/ptolemaios/api/getLatestRelease?app_id=100638&channel=official&app_version=2.21.1.0&key=f3164c6a0b066008014a6ba882b777036ce2adb086c2bb5d44ff7f4a448145a7&
https://api-static.mihoyo.com/takumi/ptolemaios/api/getLatestRelease?app_id=100601&channel=official&app_version=2.20.2.0&key=f8cdb755733f78fbda40a2f17d43e925841e44530983a1900371e9dd4cc601a0&
https://sg-public-api-static.hoyoverse.com/ptolemaios/api/getLatestRelease?app_id=599580&channel=official&app_version=2.18.1.0&key=f3a008eb6e306a0ff6bdb827faede687da3151402565bb3b76fc75f86a2773b2&
复制成功

2.resource 获取游戏资源

代码块
XML
自动换行
复制代码
https://sdk-static.mihoyo.com/hk4e_cn/mdk/launcher/api/resource?key=eYd89JmJ&launcher_id=18&
https://sdk-static.mihoyo.com/hk4e_cn/mdk/launcher/api/resource?key=KAtdSsoQ&launcher_id=17&channel_id=14&
https://hk4e-launcher-static.hoyoverse.com/hk4e_global/mdk/launcher/api/resource?key=gcStgarh&launcher_id=10&sub_channel_id=3&
复制成功

3.content 获取显示内容

代码块
XML
自动换行
复制代码
https://sdk-static.mihoyo.com/hk4e_cn/mdk/launcher/api/content?filter_adv=true&key=eYd89JmJ&language=zh-cn&launcher_id=18&
https://sdk-static.mihoyo.com/hk4e_cn/mdk/launcher/api/content?filter_adv=true&key=KAtdSsoQ&language=zh-cn&launcher_id=17&
https://sdk-os-static.hoyoverse.com/hk4e_global/mdk/launcher/api/content?filter_adv=true&key=gcStgarh&language=zh-cn&launcher_id=10&
复制成功

4.changelog 获取启动器更新日志

代码块
XML
自动换行
复制代码
https://sdk-static.mihoyo.com/hk4e_cn/mdk/launcher/api/changelog?key=eYd89JmJ&language=zh-cn&launcher_id=18&
https://sdk-static.mihoyo.com/hk4e_cn/mdk/launcher/api/changelog?key=KAtdSsoQ&language=zh-cn&launcher_id=17&
https://sdk-os-static.hoyoverse.com/hk4e_global/mdk/launcher/api/changelog?key=gcStgarh&language=zh-cn&launcher_id=10&
复制成功

5.protocol 获取游玩协议

代码块
XML
自动换行
复制代码
https://sdk-static.mihoyo.com/hk4e_cn/mdk/launcher/api/protocol?key=eYd89JmJ&language=zh-cn&launcher_id=18&
https://sdk-static.mihoyo.com/hk4e_cn/mdk/launcher/api/protocol?key=KAtdSsoQ&language=zh-cn&launcher_id=17&
https://sdk-os-static.hoyoverse.com/hk4e_global/mdk/launcher/api/protocol?key=gcStgarh&language=zh-cn&launcher_id=10&
复制成功

6.plugin 获取补丁(?)

代码块
XML
自动换行
复制代码
https://api-sdk.mihoyo.com/hk4e_cn/mdk/launcher/api/plugin?device_id={{device_id}}&key=eYd89JmJ&launcher_id=18
https://api-sdk.mihoyo.com/hk4e_cn/mdk/launcher/api/plugin?device_id={{device_id}}&key=KAtdSsoQ&launcher_id=17
https://hk4e-launcher.hoyoverse.com/hk4e_global/mdk/launcher/api/plugin?device_id={{device_id}}&launcher_id=10&key=gcStgarh
复制成功

{{device_id}}待察


§1.4 启动器的主要功能

1. 安装vc运行库&补丁

运行安装包时没有该环境就会自动安装Microsoft Visual C++ 2015-2019 Redistributable (x64) - 14.27.29016也就是根目录里的vc_redist.x64.exe

补丁大概从§1.3.6获取,非win7系统请求没有结果(?)


2.启动器版本更新

§1.3.1 data.has_update=true即需要更新(?),更新时不改变Lconfig


3.界面显示内容

依照§1.3.3发送请求,返回背景图片信息,海报、公告等(除B服启动器)


4.判断游戏存在&获取/更新游戏

在游戏安装目录下,存在名为YuanShen(GenshinImpact).exe的文件,且存在Gc.game_version,则判断为存在游戏,使用另外一个文件夹功能基于此判断

若不存在游戏,根据§1.3.2 data.game.latest内容下载最新版游戏本体&语言文件(系统语言)&sdk文件,仅在B服启动器&Lc.channel=14或国际服启动器&Lc.sub_channel=3时下载B服sdk或EPICsdk,下方更新同理;获取游戏时最后一级目录名称必须为Genshin Impact Game

§1.3.2 data.game.latest.versionGc.game_version相差两个小版本以内进行游戏版本更新(跨大版本待验证),大于两个版本将获取游戏;若§1.3.2 data.sdk.version不等于Gc.plugin_sdk_version,进行sdk版本更新


5.下载&解压

获取游戏下载2-3个文件分别为,YuanShen(GenshinImpact)_{verion}.zipAudio_{lang}_{verion}.zip,B服sdk或EPICsdk(1f0f2988a4dce2ffde7a9bf2cf03f70a_6649586421998027419.zip或12e811ff46561379abff7282a7cd8a10_4290195114874450168.zip)其中游戏本体为每10G分卷压缩,仅在B服启动器&Lc.channel=14或国际服启动器&Lc.sub_channel=3时下载B服sdk或EPICsdk,解压同理

下载URL来自§1.3.2 data.game.latest,sdk来自§1.3.2 data.sdk,更新来自§1.3.2 data.game.latest.diff,预下载来自§1.3.2 data.pre_download_game

每下载完成一个压缩包进行第一次校验,等待全部文件下载&校验完成开始解压,全部解压全部后,再进行对所有文件的第二次校验

更新会多一步合并资源,合并时先根据deletefiles.txt删除过时文件,再使用hpatchz.exe根据hdifffiles.txt直接进行增量更新,不判断原文件版本


6.校验&一键修复

校验即比较文件的md5码,失败将会重下,第一次校验的的压缩包md5码来自§1.3.2,第二次校验的文件md5来自压缩包内的pkg_versionAudio_{lang}_pkg_versionsdk_pkg_version,仅在B服启动器&Lc.channel=14或国际服启动器&Lc.sub_channel=3时进行对sdk的校验

第二次校验等同于一键修复功能,非注明本文校验都以第二次为准,一键修复会检测游戏安装目录下是否存在pkg_version,否则按钮置灰无法使用

校验过程中如果很多文件(?)都未校验成功将直接重新获取游戏,个别文件失败仅重下该文件,后缀_tmp,单文件下载地址来自§1.3.2 .data.game.latest.decompressed_path

校验完成后对Gconfig进行处理,将Lc.channelLc.sub_channelLc.cps覆盖到Gc.channelGc.sub_channelGc.cps,更新Gc.game_version&Gc.plugin_sdk_version参数,并将[General]组参数置顶,清除无组参数


7.自动清除游戏特定残留文件

文件列表来自§1.3.2 data.deprecated_files,包含一些dll和sys文件

Lc.channel=14时,不删除../YuanShen_Data/Plugins/PCGameSDK.dll,也就是B服SDK


§2 Game-游戏


更新中...

以下为过去内容


§3 游戏&启动器的问题orBUG

特指本文能解释的问题,其他问题见下方专栏

§3.1 启动器的BUG&问题

1、打开时报错0xc000007b或0xc00000e5

前者为不存在【Microsoft Visual C++ 2015-2019 Redistributable (x64) 】运行库;后者可能为运行库版本有问题,大概率伴随游戏driverError

2、自动覆盖Lconfig参数

国服启动器(国际服未发现且无影响)以launcher.exe为进程名启动后,打开启动器时自动覆盖以下参数到Lconfig[launcher]组

代码块
XML
自动换行
复制代码
cps=pcwbup44 channel=1
复制成功

3、下载时网络/校验/解压错误

下载安装过程中,可能出现,网络错误、校验错误和解压错误,其中校验错误会直接删除文件,另外两个保留文件

网络错误大概率是真的网络有问题,也可能是已存在同名zip或下载进度丢失;校验错误可能是RAM、ROM还有网络出现问题,除非有CRC校验错误,游戏自行解压后是可以正常使用的;解压错误是因为启动器修改zip_tmp后缀为zip时已存在同名文件等原因

还有一个出错是因为磁盘格式Fat32,导致单个文件最大4G,下载会失败不记得报错是什么了


§4 未命名板块

§4.1 评价网上的各种换服方法

PC版官服B服换服教程一搜一大堆,大部分是炒冷饭,不谈优缺点,自己都没有理解原理,也没有创新,问他换服相关问题也不知道是怎么产生的怎么解决有也麻烦,为了流量,好心办坏事?不得而知。少量有新意的方法值得肯定,但往往换服过程不尽人意吧

国服国际服互转不多说,就是一个简单的替换文件;官服B服互转,无论是何种方式,一定是直接或者间接修改了Gc.channel(,添B站sdk),全局性问题下文不写

1、直接修改Gc.channel(,添B站sdk)

(1) 优点:一般情况下熟练后效率较高,最直接的方法

(2) 缺点:小白不友好

(3) 可能遇到的问题:

 ①修改需要管理员权限

 ②偶尔的官服存在B站SDK报31-4302

 ③启动器执行校验后覆盖参数

 ④启动器自行删除B站sdk

(4) 有误观点

 ①须同时修改Gc.sub_channel和Gc.cps

    需要taptap一直让Gc.sub_channel=1即可,除Gc.channel其他都不需要动,说检测作弊无稽之谈

 ②须同时修改Lconfig

    Lconfig对渠道无直接影响,B服sdk被删除也只需要使Lc.channel=14(除bug覆盖参数)

2、创建起始位置无Gc.channel=14的快捷方式,游戏安装目录Gc.channel=14并存在PCGameSDK

(1) 优点:一般情况下效率高

(2) 缺点:小白不友好

(3) 可能遇到的问题

 ①偶尔的官服存在B站SDK报31-4302

 ②启动器执行校验后覆盖参数

 ③启动器自行删除B站sdk

3、通过多次下载or复制,使有两份不同渠道文件

(1) 优点:两份文件互不干扰

(2) 缺点:下载更新耗时长、占用空间大

(3) 可能遇到的问题:启动器快捷方式覆盖

(4) 有误观点:两份文件须在不同盘,实际上路径不同即可,说这话的安装软件都没玩明白

4、换服程序

(1) 优点:一般情况下效率最高,同时如果作者懂可以规避一些简单的bug

(2) 缺点:要额外下载,程序体积问题等

(3) 可能遇到的问题:系统bug,程序bug

5、我做的换服脚本(夹带私货)

(1) 优点:一般情况下效率最高,可规避二级地址解析错误和官服存在B服SDK导致的31-4302,还可解决未知原因导致的config不读取,压缩文件体积2.6MB,其中和核心文件大小11KB,B服sdk占5.3MB

(2) 缺点:要额外下载(但提供蓝奏云),x.x.0版本往往不稳定

(3) 可能遇到的问题:

 ①被杀软拦截

 ②mshta.exe文件有问题导致脚本无法运行


待更新~~~

下方为上一版的内容,新版没更新完全时会一直保留

Launcher-启动器

从启动器说起...

安装时提供自定义选项,可自选安装路径。可以同时安装官/B/国际服启动器唯一前提是路径不同,路径相同会覆盖(,将启动器单纯的复制可能会导致一些问题,没有实测)。覆盖安装的时候不会删除原有config.ini[launcher] 和【游戏安装目录】下文件。

当【游戏安装目录】存在YuanShen.exe(文件名正确即可,国际服为GenshinImpact.exe)和config.ini(内容最少为[General] game_version=当前版本号,具体见下文config.ini[launcehr]用途)时即判定已安装游戏。在启动器2.15.4.0版本,启动器打开后会有较长时间用来检测更新,在检测各项功能是最新版后不会再次触发检测

对比三种启动器没有很多差异。B服与官服区别仅在launcher.exe,uninstall.exe,Update.exe和config.ini[launcher];国际服除了上述三个还有7z.exe和一些dll不同

简单看一下启动器配置文件config.ini[launcher]的内容

代码块
XML
自动换行
复制代码
	官服
[launcher]
game_install_path=E:/A/Genshin Impact/Genshin Impact Game
cps=pcadbdpz
channel=1
sub_channel=1
game_dynamic_bg_name=3500f5bb41bf67c0d9a633f0cf2d4b7d_2196899118546637628.png
game_dynamic_bg_md5=f08b004f0c2768219747459d6be7620d
game_start_name=YuanShen.exe
	B服
[launcher]
game_install_path=E:/B/Genshin Impact/Genshin Impact Game
cps=bilibili
channel=14
sub_channel=0
game_dynamic_bg_name=3500f5bb41bf67c0d9a633f0cf2d4b7d_4887594100739807746.png
game_dynamic_bg_md5=f08b004f0c2768219747459d6be7620d
game_start_name=YuanShen.exe
	国际服
[launcher]
game_install_path=E:/C/Genshin Impact/Genshin Impact game
cps=mihoyo
channel=1
sub_channel=0
game_dynamic_bg_name=2b8a835b10dfbe2e8ac822644db14d42_5379824730118136454.png
game_dynamic_bg_md5=da04caf3b3a9277816818c279f6feca1
game_start_name=GenshinImpact.exe
复制成功

cps用途不明,channel渠道,sub_channel子渠道,game_install_path游戏安装路径,game_dynamic_bg_name/md5背景图片及校验,game_start_name主程序名称,(is_first_exit退出弹窗,exit_type退出模式,speed_limit_enabled下载限制开关,speed_limit_size下载限速值)

channel:仅在使用B服启动器且config.ini[launcher]中channel=14下,获取游戏或config.ini[General]中plugin_sdk_version值不为3.3.0(包括不存在key)时会下载解压安装B服额外的包,非B服启动器无论怎么改参数都不会自动下载与安装B服额外的包

game_install_path:首次获取游戏时,游戏安装路径必须在../Genshin Impact Game下。有游戏本体后可以随意更改,也可使用设置中-本地文件-查找游戏功能修改路径

game_start_name:写在配置文件中看似可以自定义,实则,主程序名称必须为YuanShen.exe(国际服为GenshinImpact.exe)

其中cpschannelsub_channel会在安装与更新时覆盖config.ini[General]中对应的参数

右侧选中的为B服原神额外的包,仅能在B服启动器下载得到,内有sdk_pkg_version和PCGameSDK.dll

启动器的一键修复。校验修复需要游戏目录下的 pkg_version 和 Audio_{lang}_pkg_version,该功能可以补全缺失的文件,用于误删等,大部分情况下一键修复并没有用处 。一键修复必须要有pkg_version,没有这个将不出现修复按钮

B服多一个sdk_pkg_version(用于补全PCGameSDK.dll),但类似上文channel参数与B服启动器,仅在B服启动器且config.ini[launcher]中channel=14且存在pkg_version时会校验修复

Game-游戏本体

游戏本体的下载与安装。在启动器点击获取游戏开始下载,下载后进行一次校验,然后解压再校验,最后生成一个config.ini[General],cps、channel、sub_channel继承自config.ini[launcher],game_version为当前版本号(,plugin_sdk_version为PCGameSDK.dll版本号,安装B服额外的包时自动添加参数),更新时类似。

代码块
XML
自动换行
复制代码
一般下载时有两个文件
	YuanShen_{version}.zip
	Audio_{lang}_{version}.zip
B服会额外下载一个,这个文件从2021/7/7 16:39以来就没变过 版本3.3.0
	dfb4a9826edc3ad83bf9afac6169b6ea_4974022678067241278.zip
版本更新时也有两个文件
	game_{currentVersion}_{newVersion}_diff_{一串字符}.zip
	{lang}_{currentVersion}_{newVersion}_diff_{一串字符}.zip
复制成功

往往检验的速度是比较慢的,尤其是机械硬盘。可以等下载完成后,直接关掉启动器,把zip_tmp后缀改成zip,手动把所有下载文件解压到当前文件夹,最后新建一个文本文档,重命名为config.ini,内容如下(图为用启动器启动游戏需添加的最少参数)

代码块
JavaScript
自动换行
复制代码
[General]
channel=1
game_version=2.5.0
复制成功

对比三个游戏本体同样没有很多差异。

B服和官服的pkg_versionAudio_{lang}_pkg_version完全一致,B服多一个sdk_pkg_version,那么差异就是其中写的PCGameSDK.dll

而国际服与国服只有Audio_{lang}_pkg_version相同,pkg_version内容不同,共计42处(有两处是mhyprot3.Sys.bakmhyprot2.Sys.bak,没有计算在内)

所以官服B服切换只需要修改config.ini[General](,官到B额外加一个PCGameSDK.dll),而国服国际服切换要覆盖文件(,或用国际服的文件校验直接修复),并删除PCGameSDK.dll

覆盖文件下载链接(请核对版本):https://pan.baidu.com/s/1D-gEfE2QLV0fA4Ut3oVfiQ?pwd=yowv;QQ群【915926721】文件也可下载:群文件/原神相关Genshin/[版本]国服转国际服.zip&[版本]国际服转国服.zip

简单看一下初始游戏配置文件config.ini[General]的内容

代码块
XML
自动换行
复制代码
	官服
[General]
channel=1
cps=pcadbdpz
game_version=2.5.0
sub_channel=1
	B服
[General]
channel=14
game_version=2.5.0
cps=bilibili
sub_channel=0
plugin_sdk_version=3.3.0
	国际服
[General]
channel=1
cps=mihoyo
game_version=2.5.0
sub_channel=0
复制成功

cps用途不明、channel渠道、sub_channel子渠道、game_version游戏版本、sdk_versionPCGame.dll版本

game_version:用于启动器检测下载更新

plugin_sdk_version:见启动器分析部分

channel、sub_channel:国服见下图;国际服channel=1

当检测不到配置文件时,国服默认启动官服。也就是说国服原神程序的默认参数为channel=1,sub_channel=1

启动过游戏后,三个服在Data目录下生成【Persistent】文件夹,里面有一些资源文件,内容一样,是在加载游戏时的搭桥界面下载的;官服和国际服在Data目录下生成WebCaches文件夹;B服在【YuanShen_Data/Plugins】下生成fail3dlog.db 和 license.txt。这些都是后话了

最后是一些奇怪的机制,当游戏安装目录中的文件有丢失、损坏、多余,系统环境异常等,原神就会出现各种问题。有二级地址解析错误、数据异常31-4302、DllNotFoundException,游戏闪退打不开,登录不了等,因为说起来比较繁琐,比如如何界定哪些文件会出问题?类似的原因产生了不同的报错等等,这里新写了一个专门来解决BUG的专栏:cv14772737​,同【写在前面③】


结论咳咳,不想写了,上面已经很详细了


如果这对你有帮助的话,

就给个三连+关注吧QAQ~