配置文件释义
根据这篇文章对配置文件进行修改,更加高度的定制自己的游戏体验,值得注意的是,服务端每次的大版本更新都会使得配置文件发生迭代,博主解释的是最后一行Version
为3的文件版本,无论迭代多少次,其核心内容不会变
修改此文章时,配置已经迭代到4了,但是核心并未变化config.json
文件部分基本释义
// 载入预设的配置文件,一般不用修改
{
"folderStructure": {
"resources": "./resources/",
"data": "./data/",
"packets": "./packets/",
"keys": "./keys/",
"scripts": "./resources/scripts/",
"plugins": "./plugins/"
},
//数据库连接信息
"databaseInfo": {
"server": {
"connectionUri": "mongodb://localhost:27017",
"collection": "grasscutter"
},
"game": {
"connectionUri": "mongodb://localhost:27017",
"collection": "grasscutter"
}
},
//语言
"language": {
"language": "zh_CN",
"fallback": "en_US"
},
//当本选项设置为true时,进入游戏的登录框无需提前使用account create xxx 123 预注册,没有的账号将会自动注册
"account": {
"autoCreate": false,
"defaultPermissions": []
},
//此部分主要配置服务端启动信息
"server": {
// 测试信息,主要调试时使用,日常使用默认为none即可
"debugLevel": "NONE",
//类型:'HYBRID' | 'DISPATCH_ONLY' | 'GAME_ONLY'
// HYBRID: 同时运行负载均衡服务器和游戏服务器
// DISPATCH_ONLY: 仅运行负载均衡服务器
// GAME_ONLY: 仅运行游戏服务器
//如果负载均衡与游戏服务器分开部署的话,就可以在此处做出相应的配置
"runMode": "HYBRID",
"http": {
// 绑定的ip地址,默认即可为任意
"bindAddress": "0.0.0.0",
// 外网IP地址,当你想在局域网玩的话,就需要填写服务器对外ip
"accessAddress": "127.0.0.1",
// 通讯ssl端口,家用不需要改,依照本文章所示,如果你部署在服务器则需要更改一下,因为服务器443端口一般都被占用了
"bindPort": 443,
"accessPort": 0,
// 此项主要是加密证书验证,对应的就是目录中的那个证书文件,默认不需要动他
"encryption": {
"useEncryption": true,
"useInRouting": true,
"keystore": "./keystore.p12",
"keystorePassword": "123456"
},
// 欢迎补充
"policies": {
"cors": {
"enabled": false,
"allowedOrigins": [
"*"
]
}
},
// 游戏内菜单的功能链接.替换此地址,可以更换为你自己写好的html页面
"files": {
"indexFile": "./index.html",
"errorFile": "./404.html"
}
},
// 此项是服务端运行游戏的配置
"game": {
// 同类绑定ip用
"bindAddress": "0.0.0.0",
// 外网IP地址,当你想在局域网玩的话,就需要填写服务器对外ip,与上面一同配置
"accessAddress": "127.0.0.1",
// 游戏启动端口,默认不需要更改
"bindPort": 22102,
"accessPort": 0,
//更改游戏内的一些仓库的默认最大量
"gameOptions": {
"inventoryLimits": {
// 库存武器的最大值
"weapons": 2000,
// 库存圣遗物的最大值
"relics": 2000,
// 库存材料的最大值
"materials": 2000,
// 库存家具的最大值
"furniture": 2000,
// 总库存的最大值
"all": 30000
},
// 联机角色与角色配对最大值
"avatarLimits": {
"singlePlayerTeam": 4,
"multiplayerTeam": 4
},
// 世界最大的怪物限制
"worldEntityLimit": 1000,
// 不太清楚,欢迎补充
"watchGachaConfig": false,
// 是否开启商店
"enableShopItems": true,
"staminaUsage": true,
"rates": {
"adventureExp": 1.0,
"mora": 1.0,
"leyLines": 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": [
{
// 赠送的物品id
"itemId": 13509,
// 赠送的数量
"itemCount": 1,
// 赠送的等级
"itemLevel": 1
},
{
"itemId": 201,
"itemCount": 99999,
"itemLevel": 1
}
]
}
},
// 控制台信息
"serverAccount": {
// 控制台玩家头像
"avatarId": 10000007,
// 忘记了 知道的联系我一下哈
"nameCardId": 210001,
// 冒险等级
"adventureRank": 1,
// 世界等级
"worldLevel": 0,
// 控制台游戏内显示昵称
"nickName": "Server",
// 控制台玩加的签名信息
"signature": "Welcome to Grasscutter!"
}
},
"dispatch": {
"regions": [],
"defaultName": "Grasscutter"
}
},
// config.json配置文件的版本信息,根据迭代,版本信息会变化,内部的排版也会变化,这个已经是更换后的版本,之前网上最多的是2
"version": 3
}
服务端文件命令参考
在每个玩家的朋友列表中都有一个名为“Server”的虚拟用户,你可以通过发送消息来使用命令。命令也适用于其他聊天室,例如私人/团队聊天。
要在游戏中使用命令,需要添加 /
或 !
前缀,如 /pos
命令已经被集成为可视化工具,推荐使用此插件
常见问题处理
常见问题内容大部分引用自其他博客文章,因为文章溯源问题,太多相似文档导致我不知先后,所以此部分保持疑问,如果您有疑问或者想认领,欢迎联系我
yangchengcaizi@163.com
Q:进不去游戏、跳验证码等
A:停停停,检测到你可能是大聪明,进私服需要开着电脑代理才行,不想玩私服了把代理都关了就还原了。
A:多人联机时请保证PublicIp里的IP参数与终端系统代理里的IP参数一致,PublicIp负责告诉这些设备服务器IP地址是什么,所以务必保证准确无误!
A:如果服务器主机需要参与游戏本机代理可以不用改,127.0.0.1就好了。
Q:4206
A:在您能顺利完成前置任务时本问题不应出现,如果还是出现了请自查代理问题、证书问题。
Q:服务器无法开启 - Windows Server系统
A:Nginx或其他类似软件服务会占用端口,尝试修改config.json > "Port": 443,为其他端口。
Q:启动服务器后控制台乱码
A:本问题汉化端限定
右键编辑run.bat按如下代码框修改文中代码
@echo off
chcp 936 //插入本条指令,双斜杠和后面的这一段话别复制!
set JAVA_EXE="C:\Program Files\BellSoft\LibericaJDK-17\bin\java.exe"
%JAVA_EXE% -jar grasscutter.jar
Q:服务端启动报错
A:请注意 VMWare 或 Nginx 会导致443端口被占用,如果无法解除占用请尝试修改 config.json 中的端口,同时修改 proxy_config.py 中的端口
报错详细图片请前往该大佬的博客查阅#常见故障TomyJan's BLOG:GenshinTJ
Q:开启代理后还是登录了官服,跳验证码等
A:魔法把端口占用了导致代理失败
Q:4206
A:电脑与Mitmproxy代理问题、keystore.p12证书问题,如果代理没有报错,则应为服务端问题,检查服务端配置或者更新服务端,具体内容请自查。
Q:502 / 4301 / 无法连接服务器
A:绝对是你没正确配置,自行检查
Q:4201
A:检查是否正确安装并信任证书
Q:-9203
A:一般为代理问题,已知 iOS 使用小火箭会存在此问题
A:使用https解密生成并信任证书解决 < 来自群友
Q:进门后连接超时
A:他奶奶滴,为什么不开放UDP22102端口!
Q:仍有其他问题
我这几篇文章都有参考资料,去看看那些巨人们的智慧吧,部分文档是站在他们的肩膀上完成的
快速排除问题
- 如果编译未能成功,请检查您的jdk安装 (JDK 17并确认jdk处于环境变量
PATH
中 - 我的客户端无法登录/连接, 4206, 其它... - 大部分情况下这是因为您的代理存在问题.如果使用Fiddler请确认Fiddler监听端口不是
8888
- 启动顺序: MongoDB > Grasscutter > 代理程序 (mitmdump, fiddler等.) > 客户端