Loading... <div class="tip share">请注意,本文编写于 262 天前,最后修改于 246 天前,其中某些信息可能已经过时。</div> ### 配置文件释义 根据这篇文章对配置文件进行修改,更加高度的定制自己的游戏体验,值得注意的是,服务端每次的大版本更新都会使得配置文件发生迭代,博主解释的是最后一行`Version`为3的文件版本,无论迭代多少次,其核心内容不会变 **`config.json`文件部分基本释义** ```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` | 命令 | 用法 | 权限节点 | 可用性 | 注释 | 别名 | | -------------- | ------------------------------------------------------------ | ------------------------- | -------- | ------------------------------------------------------------ | ----------------------------------------------- | | account | account <create\|delete> <用户名> [uid] | | 仅服务端 | 通过指定用户名和uid增删账户 | | | broadcast | broadcast <消息内容> | server.broadcast | 均可使用 | 给所有玩家发送公告 | b | | coop | coop \<uid> <目标uid> | server.coop | 均可使用 | 强制某位玩家进入指定玩家的多人世界 | | | changescene | changescene <场景ID> | player.changescene | 仅客户端 | 切换到指定场景 | scene | | clear | clear <all\|wp\|art\|mat> [UID] | player.clearinv | 仅客户端 | 删除所有未装备及未解锁的圣遗物(art)或武器(wp)或材料(mat)或者所有(all),包括五星 | clear | | drop | drop <物品ID\|物品名称> [数量] | server.drop | 仅客户端 | 在指定玩家周围掉落指定物品 | `d` `dropitem` | | enterdungeon | enterdungeon <地牢ID> | player.enterdungeon | 仅客户端 | 进入某个地牢 | | | give | give [uid] <物品ID\|物品名称> [数量] [等级] [精炼等级] | player.give | 均可使用 | 给予指定玩家一定数量及等级的物品 (精炼等级仅适用于武器) | `g` `item` `giveitem` | | givechar | givechar \<uid> <角色ID> [等级] | player.givechar | 均可使用 | 给予指定玩家对应角色 | givec | | giveart | giveart [uid] \<圣遗物ID> \<主属性ID> [\<副属性ID>[,<次数>]]... [等级] | player.giveart | 均可使用 | 给予玩家指定属性的圣遗物 | gart | | giveall | giveall [uid] [数量] | player.giveall | 均可使用 | 给予指定玩家全部物品 | givea | | godmode | godmode [uid] | player.godmode | 仅客户端 | 保护你不受到任何伤害(依然会被击退) | | | heal | heal | player.heal | 仅客户端 | 治疗队伍中所有角色 | h | | help | help [命令] | | 均可使用 | 显示帮助或展示指定命令的帮助 | | | join | join [多个角色id] | player.join | 仅客户端 | 强制入队角色,跟config.json中的avatarLimits有关(跟队内角色数量上限有关)。用法:`join 10000021 10000022` | | | kick | kick \<uid> | server.kick | 均可使用 | 从服务器中踢出指定玩家 (WIP) | k | | killall | killall [uid] [场景ID] | server.killall | 均可使用 | 杀死指定玩家世界中所在或指定场景的全部生物 | | | list | list | | 均可使用 | 列出在线玩家 | | | permission | permission <add\|remove> <UID> <权限节点> | * | 均可使用 | 添加或移除玩家的权限 | | | position | position | | 仅客户端 | 获取当前坐标 | pos | | remove | remove [多个角色在队伍中的序号] | player.remove | 仅客户端 | 强制将某个角色从当前队伍中移除。例如`remove 1 2`表示将1号和2号角色移除 | | | reload | reload | server.reload | 均可使用 | 重载服务器配置 | | | resetconst | resetconst [all] | player.resetconstellation | 仅客户端 | 重置当前角色的命座,重新登录即可生效 | resetconstellation | | restart | restart | | 均可使用 | 重启服务端 | | | say | say \<uid> <消息> | server.sendmessage | 均可使用 | 作为服务器发送消息给玩家 | `sendservmsg` `sendservermessage` `sendmessage` | | setfetterlevel | setfetterlevel <好感等级> | player.setfetterlevel | 仅客户端 | 设置当前角色的好感等级 | `setfetterlvl` `setfriendship` | | setstats | setstats <属性> <数值> | player.setstats | 仅客户端 | 直接修改当前角色的面板 | stats | | setworldlevel | setworldlevel <世界等级> | player.setworldlevel | 仅客户端 | 设置世界等级(重新登录即可生效) | setworldlvl | | spawn | spawn <实体ID> [数量] [等级] | server.spawn | 仅客户端 | 在你周围生成实体 | | | stop | stop | server.stop | 均可使用 | 停止服务器 | | | talent | talent <天赋ID> <等级> | player.settalent | 仅客户端 | 设置当前角色的天赋等级 | | | teleport | teleport [@playerUid] \<x> \<y> \<z> [sceneId] | player.teleport | 均可使用 | 传送玩家到指定坐标 | tp | | tpall | | player.tpall | 仅客户端 | 传送多人世界中所有的玩家到自身地点 | | | unlocktower | | player.tower | 仅客户端 | 解锁深渊全部层 | ut | | weather | weather <天气ID> <气候ID> | player.weather | 仅客户端 | 改变天气 | w | ### 常见问题处理 <div class="tip inlineBlock warning"> 常见问题内容大部分引用自其他博客文章,因为文章溯源问题,太多相似文档导致我不知先后,所以此部分保持疑问,如果您有疑问或者想认领,欢迎联系我 </div> <button class=" btn m-b-xs btn-success " onclick='window.open("mailto:yangchengcaizi@163.com","_blank")'>联系我</button> **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按如下代码框修改文中代码 ```bash @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等.) > 客户端 [1]: https://www.dogfight360.com/blog/475/ 最后修改:2022 年 06 月 06 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 4 如果觉得我的文章对你有用,请随意赞赏