本文档没有一句废话!错过任何一个字均可能导致搭建失败,请知悉
注意哦:本文档的所有部分都非常重要!千万不要错过任何一个字,要不很可能搭建失败。如果实在有问题没法解决,再询问我。
如果您没有基础的 IT 知识和 / 或利用搜索引擎的能力甚至不懂提问的艺术,请现在放弃搭建的想法并关闭此文档
此文档中所用到的文件均可在 meow网盘 下载,云盘下载慢请前往 这里 (TomyJan镜像站)查看解决方案,如网盘下载报错 activityLimitReached
请稍后再试或加群去群文件下载,或前往 百度网盘
分享文件说明
./服务端/环境
文件夹下为安装环境所用文件
./服务端/卡池顺序.xlsx
卡池列表,用于修改卡池时参照 id
./服务端/full-grasscutter-dev-xxx_TomyJan.7z
服务端整合包 (目前版本为 5.3 的 #273 打包)
./服务端/up-grasscutter-dev-xxx_TomyJan.7z
服务端升级包 (目前版本为 5.3 的 #273 打包)
./我的私服专用/ys_tj.cer
我的私服用的证书,玉女无瓜请忽略
./我的私服专用/genshintj-ca-cert-module.zip
我的私服专用的 Android CA 证书 Magisk 模块,您可参照此模块制作您自己私服的模块
./米哈游代理转向密码1.zip
用于在无法设置系统代理的 Windows 设备上设置代理
./Handbook_CHS-x.x.x.txt
游戏内各物品与 id 的对照表
./AlwaysTrustUserCerts.zip
用于信任用户证书的 Magisk 模块
./genshin-impact-patched.apk
免 root 可玩私服的国际服客户端 (待测试)
本服务端支持 PC/iOS 端中国官服 / 国际服,Android 等其他客户端仅支持国际服
建议收藏此文档以便获取更新
分享文件说明
./服务端/环境
文件夹下为安装环境所用文件
./服务端/卡池顺序.xlsx
卡池列表,用于修改卡池时参照 id
./服务端/full-grasscutter-dev-xxx_TomyJan.7z
服务端整合包 (目前版本为 5.3 的 #273 打包)
./服务端/up-grasscutter-dev-xxx_TomyJan.7z
服务端升级包 (目前版本为 5.3 的 #273 打包)
./我的私服专用/ys_tj.cer
我的私服用的证书,玉女无瓜请忽略
./我的私服专用/genshintj-ca-cert-module.zip
我的私服专用的 Android CA 证书 Magisk 模块,您可参照此模块制作您自己私服的模块
./米哈游代理转向密码1.zip
用于在无法设置系统代理的 Windows 设备上设置代理
./Handbook_CHS-x.x.x.txt
游戏内各物品与 id 的对照表
./AlwaysTrustUserCerts.zip
用于信任用户证书的 Magisk 模块
./genshin-impact-patched.apk
免 root 可玩私服的国际服客户端 (待测试)
./服务端/环境
文件夹下为安装环境所用文件./服务端/卡池顺序.xlsx
卡池列表,用于修改卡池时参照 id./服务端/full-grasscutter-dev-xxx_TomyJan.7z
服务端整合包 (目前版本为 5.3 的 #273 打包)./服务端/up-grasscutter-dev-xxx_TomyJan.7z
服务端升级包 (目前版本为 5.3 的 #273 打包)./我的私服专用/ys_tj.cer
我的私服用的证书,玉女无瓜请忽略./我的私服专用/genshintj-ca-cert-module.zip
我的私服专用的 Android CA 证书 Magisk 模块,您可参照此模块制作您自己私服的模块./米哈游代理转向密码1.zip
用于在无法设置系统代理的 Windows 设备上设置代理./Handbook_CHS-x.x.x.txt
游戏内各物品与 id 的对照表./AlwaysTrustUserCerts.zip
用于信任用户证书的 Magisk 模块./genshin-impact-patched.apk
免 root 可玩私服的国际服客户端 (待测试)
部署服务端
环境要求
Windows x64 (建议 WS2016 + 最低 WS2012R2,过老版本不保证兼容性;Linux 自行解决:如果你真的有自信用 Linux 搭建我相信你用不着看这篇文档)
Java17 (其他版本)
MongoDB (建议安装时注意左下角,取消勾选 Compass,网络不好可能会卡进度,取消后可使用 Robo 3T 等工具来管理数据库;Win10 以下的系统只兼容 4.2 – 版本)
Python3.8+
Mitmproxy (本教程使用此工具演示,也可使用 Fiddler 等流量代理工具)
私服服务端 在上方 荼蘼云盘 下载,已经打包好,即点即用
7-zip 用于解压极限压缩的服务端(压缩后约 127MB,压缩前约 1.2GB)
如服务端与客户端分开在两台机子,则还需确保服务端端口 UDP22102
TCP443
TCP54321
均开启且未被其他程序占用
运行服务器
启动服务端
解压服务端,并进入 grasscutter
文件夹
如果您按照我的教程部署,直接双击 run.bat
即可运行服务端;如果安装了其他版本的 java 或者修改了安装位置,请自行修改此文件后再启动,启动前请确保 MongoDB
在运行中
启动后控制台无任何报错,且最后输出 Game Server started on port 22102
字样即为启动成功,有报错请参照本文档最后一章处理
服务端不可直接关闭,需输入指令 stop 后再退出;若不小心关闭,在 任务管理器 中找到 Java 相关进程杀掉即可
启动代理
双击运行 proxy.bat
,如果您不希望其他主机连接到服务端,删除此脚本中的 --set block_global=false
即可;如果希望在其他端口运行代理,右键编辑此文件修改 54321
为你期望的端口即可,如果删除此参数则默认监听 8080
端口,不要使用常见端口避免被攻击,此端口即为客户端系统代理所用端口
代理可直接关闭窗口以停止运行
出现 Proxy server listening at http://*:54321
即为启动成功
注意,如果您的服务器性能过低,此代理程序可能会假死,手动重启即可
获取证书
前往服务端的 设置-网络-代理-手动设置代理
,设置为 127.0.0.1:54321
后,使用浏览器访问 http://mitm.it
并选择相应证书下载,此证书需要下发给客户端所在机器安装,注意服务器 IP 更换后需要重新下载安装证书
如果服务端和游戏都跑在本机,不用手动安装证书,代理会自动安装
注意:这一步服务端开启代理只是为了便于下载证书 (当然你也可以直接去这里复制 %USERPROFILE%\.mitmproxy\mitmproxy-ca-cert.cer
),下载完后请关闭服务端的系统代理,否则无法正常连接服务端
创建账号
需要使用文末的 account
指令在控制台创建账号才可以登录,当然你也可以根据下节更改配置从而允许不存在的账号自动注册
自定义配置
config.json
GameServer.Ip
DispatchServer.Ip
为准入 IP,建议保持0.0.0.0
GameServer.PublicIp
DispatchServer.PublicIp
为公网/内网IP
(取决于你在公网 / 内网联机),改为127.0.0.1
即只允许本机连接
GameServer.Name
为你的服务器名称GameServer.WelcomeEmotes
为进入游戏的欢迎表情 idGameServer.WelcomeMotd
为进入游戏的欢迎语
GameServer.WelcomeMailContent
为进入游戏的欢迎邮件
GameServer.WelcomeMailItems
为进入游戏时的欢迎邮件赠送的物品 (数组),成员有物品 iditemId
数量itemCount
等级itemLevel
GameServer.ServerNickname
GameServer.ServerAvatarId
为游戏控制台的名字和头像 (长的角色 id)DispatchServer.defaultPermissions
为用户默认拥有的权限 (注意是数组),目前版本主要有server
player
两个权限组,建议只给后者DispatchServer.AutomaticallyCreateAccounts
默认为false
,如修改为true
,则允许登陆不存在的账号时自动创建 (不建议)
其他不在此赘述
修改卡池
卡池配置文件为 .\data\Banners.json
,其中
gachaType=200,scheduleId=893
的为常驻池gachaType=301,scheduleId=903
的为角色 UP 池
gachaType=302,scheduleId=903
的为武器 UP 池gachaType=400,scheduleId=913
的为角色 UP 池 2
多卡池:增加 gachaType
为非以上四个值的成员即可,注意客户端只识别以上四个 gachaType
值,添加的其他卡池不会显示类型
本站整合包默认为万达桃三 UP 及前两者专武 (专武封面为前者,是客户端内置资源,无法修改)
rateUpItems1
为 UP 五星,rateUpItems2
为 UP 四星,对应 id 在 Handbook_CHS.txt
中可以找到
需修改 prefabPath
previewPrefabPath
titlePath
中的 A0**
为对应的卡池 id(在 卡池顺序.xlsx
中)
costItem
为抽卡耗费的货币名称,223
为纠缠之缘,224
为相遇之缘(修改可能会引发 bug)
sortId
为卡池排序,越大越靠前
beginTime
endTime
为卡池开始 / 结束的 10 位时间戳
softPity
最少几次出 hardPity
最多几次出 eventChance
歪的概率 % ,如果没有这三个成员自己加上即可
bannerType
为 STANDARD
表示常驻池,EVENT
表示角色 UP 池,WEAPON
表示武器 UP 池 (这个参数貌似只是看的)
sortId
可能与卡池展示顺序有关?
注意开启太多卡池会容易报错,修改完建议使用工具检查语法是否正确
更新服务端
只需 stop
服务端,替换 grasscutter.jar
后启动服务端即可,网盘将不定时更新经过测试的包体
网盘中 up 开头的 7z/jar 即为更新包,若跨版本更新您可能需要下载全量包 (full 开头) 或者前往项目地址补齐资源文件
连接服务器
首次连接需要安装证书
Windows 下载 并双击打开相应服务器的证书 -> 安装证书 -> 本地计算机 -> 放入下列…-> 浏览 -> 受信任的根证书颁发机构 -> 完成
Android 下载 pem 格式证书,root 并解锁 system 分区后手动复制到 /system/etc/security/cacerts
并重命名为 c8750f0d.0
即可 (如果安装多个私服的证书,依次把文件命名为 c8750f0d.1
c8750f0d.2
… 即可);如果不能解锁系统分区可参照网盘中我的私服专用的模块制作自己私服的 CA 证书模块,或者安装信任用户证书的模块后直接在 Android 系统设置中安装为用户证书即可
(待测试)无 root 的安卓可尝试直接下载安装用户证书 (分别安装 CA 和 WLAN 证书) 后使用网盘版本游戏客户端
iOS 下载证书后复制到手机并打开点击安装即可,安装完打开系统设置信任刚才安装的证书
其他操作系统不提供安装证书教程
之后直接如此操作即可进入
- 修改前先打开游戏客户端检查并完成更新
- Windows:前往
设置-网络-代理-手动设置代理
设置代理,服务器 / 端口 按照自己所要连接私服的服务端配置填写,关闭请勿将代理服务器用于本地地址
,清空请勿对以下条目...
编辑框的内容,填写完确定并开启代理,完成后暂时不要关闭页面
Android:前往系统设置-WLAN
设置当前连接 WiFi 的代理,或前往移动网络-APN
修改 APN 设置,修改前请自行备份避免出错,完成后暂时不要清后台
iOS:WiFi 类似于 Android,移动网络无法修改 APN - 修改完成后启动 国服官服 / 国际服客户端 ,用户名 + 密码 (密码随便填) 即可登录,登录后进入最后白屏加载界面即可关掉代理,务必尽快关闭代理:长时间代理,你流量全走服务器,你电脑和服务器都累,而且还可能会被服务商 ban 机!
每次登录都需要如此操作!开启代理再运行游戏便进入私服,不开启代理运行游戏就是官服
Tip:
- 如果使用的是 国服客户端,启动后有弹窗 (仅 Win) 且登录页面标题为
HOYOVERSE
而不是miHoYo
即代表成功连接私服;国际服客户端服务器选择界面如只有一个服务器 (默认为GenshinTJ
)(或者没出现服务器选择页面) 而不是 Asia 等四个则成功连接到私服 - Windows 如果无法使用系统代理,请尝试使用云盘中的 米哈游代理转向 软件 (易语言开发,报毒属正常现象)
常见问题
传送?
任意标点并点击确认即可传送至目标上空;传送后不会自动关闭地图,手动关闭地图即可看到
进阶:可以通过修改标点名称以传送到不同高度
如何去金苹果?
眼睛稍微往上挪那么一内内看,金苹果地图没亮不用管,传就是了
尘歌壶
目前看起来去不了
角色 id
每个角色都有两个 id,长 id 100000xx
只用在 givec
命令中,短 id 10xx
用在其他各处;另外大部分角色各种 id 都是对应的,比如命星 id 为 11xx
,卡池标题和封面为 A0xx
控制台指令
游戏登陆后默认有一个名为 Server
的好友,此为游戏控制台,可向其发送指令;当然,你也可以在服务端控制台窗口中输入指令;注意部分指令仅可在其中一种途径使用
注意:
- 游戏内发送指令均需加上前缀
!
或/
- 请注意, 使用
|
隔开的指令 / 变量代表两者皆可,使用<>
括起来的变量必需,使用[]
括起来的变量可省略 (省略后如 UID 则为你自己,数量 / 等级等则为 1) - 指令只有使用下方
permission
指令授权后,相应用户才可使用
示例:如要给用户 UID 114514 原石 x1919810,查阅得知用法 give|g [player] <itemId|itemName> [amount]
,原石 id 201
,则可直接控制台输入 g 114514 201 1919810
/ give 114514 201 1919810
;或者游戏内聊天发送 /g 114514 201 1919810
/ !g 114514 201 1919810
,直接给当前用户的话也可省略 uid
指令同步最新版,网盘提供的端不一定可用
命令 | 用法 | 说明 | 权限节点 |
---|---|---|---|
help | help [命令] | 显示帮助或展示指定命令的帮助 | – |
give | give|g [uid] < 物品 ID | 物品名称 > [数量] [等级] | 给予指定玩家一定数量及等级的物品 | – |
givechar | givechar <uid> < 角色 ID> [等级] | 给予指定玩家对应角色 | player.givechar |
giveall | giveall|givea [uid] [数量] | 给予指定玩家全部物品 | player.giveall |
drop | drop|d <物品 ID | 物品名称> [数量] | 在指定玩家周围掉落指定物品,仅客户端可用 | server.drop |
spawn | spawn <实体 ID | 实体名称> [等级] [数量] | 在你周围生成实体 | server.spawn |
godmode | godmode [uid] | 保护你不受到任何伤害 (依然会被击退),仅客户端可用 | player.godmode |
heal | heal|h | 治疗队伍中所有角色,仅客户端可用 | player.heal |
talent | talent <天赋 ID> < 等级 > | 设置当前角色的天赋等级,天赋 id 为 n/e/q,仅客户端可用 | player.settalent |
changescene | changescene|scene <场景 ID> | 切换到指定场景,仅客户端可用 | player.changescene |
killall | killall [uid] [场景 ID] | 杀死指定玩家世界中所在或指定场景的全部生物 | server.killall |
position | position|pos | 获取当前坐标,仅客户端可用 | – |
teleport | teleport|tp <x> <y> <z> | 传送玩家到指定坐标,仅客户端可用 | player.teleport |
setfetterlevel | setfetterlevel|setfriendship <好感等级> | 设置当前角色的好感等级,仅客户端可用 | player.setfetterlevel |
resetconst | resetconst [all] | 重置当前角色的命座,重新登录即可生效,仅客户端可用 | player.resetconstellation |
setstats | setstats|stats <属性> < 数值 > | 直接修改当前角色的面板,可用的属性有 hp 生命值 def 防御力 atk 攻击 em 元素精通 er 元素充能 crate 暴击率 cdmg 暴击伤害 epyro 火伤 ecryo 冰伤 ehydro 水伤 egeo 岩伤 edend 草伤 eelec 雷伤 ephys 物伤,仅客户端可用 | player.setstats |
setworldlevel | setworldlevel <世界等级> | 设置世界等级 (重新登陆即可生效),仅客户端可用 | player.setworldlevel |
clearartifacts | clearartifacts|clearart | 删除所有未装备及未解锁的圣遗物,包括五星,仅客户端可用 | player.clearartifacts |
clearweapons | clearweapons|clearwp | 删除所有未装备及未解锁的武器,包括五星,仅客户端可用 | player.clearweapons |
tpall | tpall | 传送多人世界中所有的玩家到自身地点,仅客户端可用 | player.tpall |
weather | weather|w <天气 ID> < 气候 ID> | 改变天气,仅客户端可用 | player.weather |
命令 | 用法 | 说明 | 权限节点 |
关于各种 id 都在 Handbook_CHS.txt
, 文本编辑器 (推荐 VS Code
等,Win 自带记事本无法完全搜索内容) 打开后 Ctrl+F 即可搜索
(在我的私服中) 以下指令仅管理员可用,请勿尝试使用
命令 | 用法 | 说明 | 权限节点 |
---|---|---|---|
account | account <create|delete> < 用户名 > [uid] | 通过指定用户名和 uid 增删账户,仅服务端可用 | – |
broadcast | broadcast|b <消息内容> | 给所有玩家发送公告 | server.broadcast |
say | say <uid> < 消息 > | 作为服务器发送消息给玩家 | server.sendmessage |
coop | coop <uid> | 强制某位玩家进入指定玩家的多人世界 | server.coop |
kick | kick [uid] | 从服务器中踢出指定玩家 (WIP) | server.kick |
list | list | 列出在线玩家 | – |
permission | permission <add|remove> < 用户名 > < 权限节点 (* 为所有)> | 添加或移除玩家的权限 | * |
reload | reload | 重载服务器配置 | server.reload |
restart | restart | 重启服务端 | – |
stop | stop | 停止服务器 | server.stop |
命令 | 用法 | 用法 | 权限节点 |
文章有(1)条网友点评
感谢分享,赞一个