本文已过时,请前往 原神私服游玩教程 查看最新文章
本文仅供学习交流,严禁用于商业用途,侵权联系或评论我删除
解压密码均为:rainkavik.com
本文使用的是3.2的服务端进行搭建示范,以下所有文件都能在我的个人网盘找到。
如果你是小白,请在进行环境安装之前,重启一次电脑,把后台奇奇怪怪的软件关掉(新服务器忽略)。
关于本机和服务器的区别,我会在文章之中注明区别(没有标注的都需要操作),请关注好每一个字。
碰到问题请转到 Grasscutter-常见问题
1.修改客户端文件
下载补丁:RainKavik网盘/客户端/3.x-x服-UserAssembly.zip
解压后得到 UserAssembly.dll
打开官服路径:Genshin Impact Game\YuanShen_Data\Native
官服路径下自带一个 UserAssembly.dll
把他重命名为:UserAssembly-官服.dll
重命名的目的是为了备份 没有官服游玩需求可以直接覆盖
把补丁包里面解压的 UserAssembly.dll放到此路径
2.下载代理:RainKavik网盘\代理软件\mhy代理转向
下载完成 解压 以管理员方式打开mhy代理转向
下面地址输入进去
gc.rainkavik.com:320
下方代理端口留空!!!!!!!!!
进入游戏后记得关闭代理,否则电脑会出现无网络情况,服务器压力也大~!
指令搭配Tools指令箱使用 下载路径:网盘\其他\GrasscutterTools-v1.6.6.exe
服务端安装
安装环境:
下载安装jdk和mongodb:
文件下载路径:RainKavik网盘/环境
完整文件名:jdk-17.0.2_windows-x64_bin.exe
完整文件名:mongodb-windows-x86_64-5.0.8-(仅限win10及以上使用).msi
1.网盘路径下有两个 mongodb
,根据自己的系统版本下载对应版本。
2.如果你是小白,请勿更改任何设定。
服务端下载:
文件下载路径:RainKavik网盘/服务端/full-grasscutter-3.x-#####_RainKavik.zip
运行服务端:
必改:"server-accessAddress": "127.0.0.1"
必改:"game-accessAddress": "127.0.0.1"
两个 127.0.0.1
,更改为服务器公网IP或者局域网IPV4地址
IPv4地址获取:任务管理器-性能-以太网(WIFI)-右下角IPV4
修改完成切记保存关闭
运行 run.bat
显示 加载完成!输入 "help" 查看命令列表
即代表开服成功,显示其他请看常见问题。
登录你的服务器管理后台-防火墙-添加防火墙规则
TCP443
(Windows和Android免证书登录端口)
UDP22102
(游戏数据交互)
注意:有个别服务器可能还需要在系统界面防火墙放行端口。
WIN+R
打开运行,输入 wf.msc
,在入站规则选项最右侧,新建规则-端口,添加以上三个端口。
出站规则不需要更改,默认全开。
完成以上,服务端教程到此结束,接下来是客户端教程。
客户端
自行准备客户端(即你现在的官服)。
补丁安装:
RK的两个代理软件都支持自动安装和还原补丁,这里我还是用手动安装为教程。
补丁下载路径:RainKavik网盘/客户端/3.x-x服-UserAssembly.zip
下载完成解压得到:UserAssembly.dll
打开以下路径
国服:Genshin Impact Game\YuanShen_Data\Native
国际服:Genshin Impact Game\GenshinImpact_Data\Native
此目录下面有一个 UserAssembly.dll
,请把它重命名为 UserAssembly-官服.dll
,否则你将无法进入官服。
复制刚才解压得到的 UserAssembly.dll
到此目录代替原先的文件。
Native
文件夹应该有以下两个文件
Windows连接服务器:
这里一共提供多种方法,任选其一,切记所有代理软件都需要已管理员身份运行。
下载地址:网盘/代理软件/mhy代理转向.zip
地址:
127.0.0.1:443
代理端口:留空!!!!!!!!!!
地址填写说明:IP:443端口(Dispatch端口),切记使用英文符号
。
下载地址:网盘/代理软件/Genshin代理助手.zip
地址:本机搭建填写 127.0.01
服务器搭建填写 服务器公网IP
端口 443
填写完成-启动代理
客户端连接
双击打开 YuanShen.exe
或 GenshinImpact.exe
,启动客户端
在服务器 run.bat
运行窗口输入以下语法进行账户注册
语法:account create 登录账号 UID
例如:account create rainkavik 10000
返回客户端输入你注册的账号,密码可随便填
进到游戏内,立即关闭代理 :长时间代理,你流量全走服务器,你电脑和服务器都累,而且还可能会被服务商 ban 机!
补充说明:
以下两种方式都需要对应插件的支持,网盘服务端已经内置。
PC玩家请搭配 GrasscutterTools指令工具
使用
下载地址:网盘\其他\GrasscutterTools-v1.6.6.exe
手机玩家在游戏内输入/wt获得指令邮件(pc端适用)
最新版本需要使用指令点亮地图:/prop unlockmap 1
网盘内的视频教程可能已经过时,请添加频道获得安卓和pc视频
(频道只有链接服务器视频,没有搭建视频,懒癌晚期,别叫了!)
其他
{
"folderStructure": {
"resources": "./resources/", //资源
"data": "./data/", // 数据配置
"packets": "./packets/", //数据包
"scripts": "./resources/Scripts/", //资源脚本
"plugins": "./plugins/" //插件目录
},
"databaseInfo": {
"server": {
"connectionUri": "mongodb://localhost:27017", //MongDB 服务器数据库
"collection": "grasscutter" //MongDB数据表:默认grasscutter
},
"game": {
"connectionUri": "mongodb://localhost:27017", //MongDB 服务器数据库
"collection": "grasscutter" //MongDB数据表:默认grasscutter
}
},
"language": {
"language": "zh_CN", //当前本地语言chs
"fallback": "en_US", //备用回退语言en
"document": "EN" //文件语言 默认EN 可选CHS CHT 例:"document": "CHS"
},
"account": {
"autoCreate": false, //登录任意账户自动创建账户 默认关闭 开启例: "autoCreate": true,
"EXPERIMENTAL_RealPassword": false, //自动创建账户时候固定密码不再是随意密码登录(4benj哥哥写的感觉不好用)
"defaultPermissions": [], //默认的权限组 可选例: "defaultPermissions": [player.*,server.*],
"maxPlayer": -1 // 服务器在线最大人数 -1 表示关闭
},
"server": {
"debugLevel": "NONE", //调试模式 类型说明:"NONE","MISSING","ALL" ->NONE: 不显示调试信息,MISSING: 仅显示未知请求,ALL: 全部显示
"DebugWhitelist": [], //调试白名单
"DebugBlacklist": [], //调试黑名单
"runMode": "HYBRID", //运行模式 类型说明: "HYBRID","DISPATCH_ONLY","GAME_ONLY" -> HYBRID: 同时运行负载均衡服务器和游戏服务器,DISPATCH_ONLY: 仅运行负载均衡服务器,GAME_ONLY: 仅运行游戏服务器
"http": {
"bindAddress": "0.0.0.0", //监听(所有)IP地址 0.0.0.0
"accessAddress": "127.0.0.1", // 访问(本地)IP地址 127.0.0.1 可选C类IP地址 :192.0.0.0 ~ 223.255.255.255 或者 AB类地址 A:1.0.0.0 ~ 127.255.255.255 B:128.0.0.0 ~ 191.255.255.255
"bindPort": 443, //监听端口 443
"accessPort": 0, // 访问端口 自动返回
"encryption": {
"useEncryption": true, //使用加密
"useInRouting": true, //使用开启
"keystore": "./keystore.p12", //密钥路径
"keystorePassword": "123456" //密钥密码
},
"policies": { //策略
"cors": { //CORS 跨域
"enabled": false, //开关 false 关闭
"allowedOrigins": [ //允许的来源 "*" 全部
"*"
]
}
},
"files": {
"indexFile": "./index.html", /// web 主页界面文件路径
"errorFile": "./404.html" //无法访问 web 404 界面文件路径
}
},
"game": {
"bindAddress": "0.0.0.0", //监听(所有)IP地址 0.0.0.0
"accessAddress": "127.0.0.1", // 访问(本地)IP地址 127.0.0.1
"bindPort": 22102, //监听端口 443
"accessPort": 0, // 访问端口 自动返回
"loadEntitiesForPlayerRange": 100, //玩家加载范围 据说调低40左右 降低负载 对低性能机器很友好
"enableScriptInBigWorld": false, //大世界脚本 默认false 开启true
"enableConsole": true, //启用控制台 true
"gameOptions": {
"inventoryLimits": { //库存限制
"weapons": 2000, //武器最大数量
"relics": 2000, //圣遗物最大数量
"materials": 2000, //材料最大数量
"furniture": 2000, //家具最大数量
"all": 30000 //总库存最大数量
},
"avatarLimits": { //人物上限
"singlePlayerTeam": 4, //单人队伍共限制4人
"multiplayerTeam": 4 //联机队伍共限制4人
},
"sceneEntityLimit": 1000, //玩家生成怪物上限
"watchGachaConfig": false, //监控Gacha配置修改
"enableShopItems": true, //商店开关:true
"staminaUsage": true, //体力条开关:true
"energyUsage": false, //元素充能开关:false
"resinOptions": { //树脂选项
"resinUsage": false, //树脂使用开关:false
"cap": 160, //树脂上限160
"rechargeTime": 480 //补给树脂间隔时间
},
"rates": { //爆率
"adventureExp": 1.0, //冒险EXP 1.0
"mora": 1.0, //摩拉 1.0
"leyLines": 1.0 //地脉 1.0
}
},
"joinOptions": {
"welcomeEmotes": [ //欢迎表情
2007,
1002,
4010
],
"welcomeMessage": "Welcome to a Grasscutter server.", //欢迎消息
"welcomeMail": { // 欢迎游戏
"title": "Welcome to Grasscutter!", //游戏标题
"content": "(//邮箱内容//)Hi there!\r\nFirst of all, welcome to Grasscutter. If you have any issues, please let us know so that Lawnmower can help you! \r\n\r\nCheck out our:\r\n\u003ctype\u003d\"browser\" text\u003d\"Discord\" href\u003d\"https://discord.gg/T5vZU6UyeG\"/\u003e\n",
"sender": "Lawnmower", //发件人署名
"items": [ //发送物品
{
"itemId": 13509, //id[武器] 13509 雾切之回光
"itemCount": 1, //给予数量
"itemLevel": 1 //给予等级
},
{
"itemId": 201, //id[物品] 原石
"itemCount": 99999, //给予数量
"itemLevel": 1 //给予等级
}
]
}
},
"serverAccount": { //服务器帐户好友设置
"avatarId": 10000007, //人物ID
"nameCardId": 210001, //名片ID
"adventureRank": 1, //冒险等级
"worldLevel": 0, //世界等级
"nickName": "Server", //昵称
"signature": "Welcome to Grasscutter!" //签名
}
},
"dispatch": {
"regions": [ //服务器列表区域
{
"Name":"Grasscutter",//名称
"Title":"Grasscutter", //标题
"Ip":"127.0.0.1", //IP地址默认本地127.0.0.1
"Port":"22102" //game.bindPort 22102 端口
},
{
"Name":"Grasscutters",//名称
"Title":"Grasscutter",//标题
"Ip":"127.0.0.1",//IP地址默认本地127.0.0.1
"Port":"22102"//game.bindPort 22102 端口
},
],
"defaultName": "Grasscutters" //默认加载Grasscutters 名称服务器
}
},
"version": 3 //版本 3
}
推荐使用 Grasscutter Tools工具箱 (仅 Win) 或 GrasscutterTools(网页版) 等生成指令
游戏登陆后默认有一个名为 Server
的好友,此为游戏控制台,可向其发送指令
游戏内 Server
好友输入示例:/give all
run.bat
运行窗口输入示例:give @10001 all
更多指令请使用 GrasscutterTools
工具箱查看
如果你是手机党玩家,不清楚指令,游玩别人的服务器,这里推荐两条指令
1.获得所有物品 /give all
2.获取毕业圣遗物 /give 76524 lv20 10001 999002 999001 201062,100 201091,100 989001,2 301241,120
用鱼钩(最后一个图标)在地图上标记一个点位并点击确认即可传送至目标上空;在名称填写数字可更改传送高度。
问题解答/取得支持
加入密碼:yJLCmrkO7i7C@eKP
关于
本服务端基于开源项目 Grasscutter。
本文作者:Kazuha Hub
本文链接:https://kazuhahub.com/archives/254/
版权声明:本Blog所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。非商业转载及引用请注明出处(作者、原文链接),商业转载请联系作者获得授权。
829 comments
QQ频道加入密码是多少啊
不明白写的清清楚楚就是要问。。
6
OωO
这个一直显示“服务器繁忙,请稍后再试502”是为什么???
前面的都好了 就是登陆的时候无法连接服务器 怎么回事?求解
为啥代理文件下下来没东西
18:49:38 正在?? Grasscutter...
18:49:39 游?版本:3.1.0
18:49:39 Grasscutter 版本:1.4.3-dev-
18:49:39 正在加? resources...
18:49:40 完成加? resources。
18:49:40 Loading cached TextMaps
18:49:40 GM Handbooks generated!
18:49:41 正在加?插件:opencommand-plugin
18:49:41 正在加?插件:Switch Element Plugin
18:49:41 The SwitchElement has been loaded.
Exception in thread "main" io.javalin.core.util.JavalinBindException: Port already in use. Make sure no other process is using port 443 and try again.
at io.javalin.Javalin.start(Javalin.java:184)
at io.javalin.Javalin.start(Javalin.java:148)
at io.javalin.Javalin.start(Javalin.java:134)
at emu.grasscutter.server.http.HttpServer.start(HttpServer.java:136)
at emu.grasscutter.Grasscutter.main(Grasscutter.java:146)
Caused by: java.io.IOException: Failed to bind to 0.0.0.0/0.0.0.0:443
at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:349)
at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:310)
at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80)
at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:234)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
at org.eclipse.jetty.server.Server.doStart(Server.java:401)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
at io.javalin.jetty.JettyServer.start(JettyServer.kt:65)
at io.javalin.Javalin.start(Javalin.java:174)
... 4 more
Caused by: java.net.BindException: Address already in use: bind
at java.base/sun.nio.ch.Net.bind0(Native Method)
at java.base/sun.nio.ch.Net.bind(Net.java:555)
at java.base/sun.nio.ch.ServerSocketChannelImpl.netBind(ServerSocketChannelImpl.java:337)
at java.base/sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:294)
at java.base/sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:89)
at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:344)
... 12 more
大佬這怎麼處理,感謝
找到問題所在了,應該是阜443被占用,換個阜就可以了
频道怎么添加?是纸飞机的频道吗?
文章底部。。
大佬请问私服要改语音怎么改呢?
大佬问下up池如何添加有教程吗
https://ybbs.fun/2125.html
为啥用米哈游代理转向没有控制台指令啊?
大佬,我想请问下,IOS客户端在3.2要咋弄啊?看你的视频好像要什么mitmproxy什么证书啥的,那个grasscutter里好像也没有proxy.bat proxy.py这些东西啊?
看了一下,在QQ频道里有另一个挂代理的方法,就是在GC历史教材里的那个
想问下基本什么任务都做不了(可以用命令完成但是没法真正出剧情人物啥的)。地图上的一些被怪锁住的宝箱,小精灵啥的也动不了,是属于符合预期的对吗?如果要整这些任务脚本有教程不
很方便的傻瓜式安装?
大佬,按你的步骤本地搭建前面都没问题,启动游戏输入账号一直提示账号格式不对,这是怎么回事
手机上为什么没办法输入代码是什么意思?
又抓到拿來商業的
https://shopee.tw/product/755743005/18246044622?smtt=0.781055408-1668426085.9
好恶心啊这种人
19:46:01 正在启动 Grasscutter...
19:46:02 游戏版本:3.1.0
19:46:02 Grasscutter 版本:1.4.3-dev-
19:46:02 正在加载 resources...
Exception in thread "main" com.google.gson.JsonSyntaxException: java.io.IOExcept
ion: Invalid DynamicFloat definition - BEGIN_OBJECT
at com.google.gson.Gson.fromJson(Gson.java:1006)
at com.google.gson.Gson.fromJson(Gson.java:956)
at emu.grasscutter.utils.JsonUtils.loadToList(JsonUtils.java:60)
at emu.grasscutter.utils.JsonUtils.loadToList(JsonUtils.java:72)
at emu.grasscutter.data.ResourceLoader.loadAbilityModifiers(ResourceLoad
er.java:263)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachO
ps.java:183)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipe
line.java:179)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipe
line.java:179)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipe
line.java:197)
at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining
(Spliterators.java:1845)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline
.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractP
ipeline.java:499)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Fo
rEachOps.java:150)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequent
ial(ForEachOps.java:173)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline
.java:234)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipelin
e.java:596)
at emu.grasscutter.data.ResourceLoader.loadAbilityModifiers(ResourceLoad
er.java:252)
at emu.grasscutter.data.ResourceLoader.loadAll(ResourceLoader.java:62)
at emu.grasscutter.Grasscutter.main(Grasscutter.java:111)
Caused by: java.io.IOException: Invalid DynamicFloat definition - BEGIN_OBJECT
at emu.grasscutter.utils.JsonAdapters$DynamicFloatAdapter.read(JsonAdapt
ers.java:42)
at emu.grasscutter.utils.JsonAdapters$DynamicFloatAdapter.read(JsonAdapt
ers.java:21)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(Ref
lectiveTypeAdapterFactory.java:130)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.re
ad(ReflectiveTypeAdapterFactory.java:221)
at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(Type
AdapterRuntimeTypeWrapper.java:41)
at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapT
ypeAdapterFactory.java:187)
at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapT
ypeAdapterFactory.java:145)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(Ref
lectiveTypeAdapterFactory.java:130)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.re
ad(ReflectiveTypeAdapterFactory.java:221)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(Ref
lectiveTypeAdapterFactory.java:130)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.re
ad(ReflectiveTypeAdapterFactory.java:221)
at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(Type
AdapterRuntimeTypeWrapper.java:41)
at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.re
ad(CollectionTypeAdapterFactory.java:82)
at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.re
ad(CollectionTypeAdapterFactory.java:61)
at com.google.gson.Gson.fromJson(Gson.java:991)
... 19 more
这样怎么办
win10系统,不搭建服务器,使用3.2的客户端补丁,代理地址 gc.rainkavik.com:310 ,登陆的时候总是报502的错,这个问题怎么排查,谢谢!
私服闪退怎么办,之前还好好的,突然今天就闪退了(´இ皿இ`)
手机上的QAQ手机的QAQ
错误码4206是什么意思
同问,感觉看了很多回答都不得要领。我是没有搭建服务器直接玩的
2