第十二章 gamerule-自定游戏规则
2020年1月5日 12:19 2391字
搬运注:根据中文 Minecraft Wiki ,在即将到来(本章搬运至 MineBBS 时间为 2025年11月20日)的 Java 1.21.11 群骑纷争正式版中,所有游戏规则的命名均从驼峰式(tuoFengShi)改为下划线式(xia_hua_xian_shi),例如 keepInventory 变成了 keep_inventory,并且部分规则已被进一步重命名。
搬运注:根据中文 Minecraft Wiki ,在即将到来(本章搬运至 MineBBS 时间为 2025年11月20日)的 Java 1.21.11 群骑纷争正式版中,所有游戏规则的命名均从驼峰式(tuoFengShi)改为下划线式(xia_hua_xian_shi),例如 keepInventory 变成了 keep_inventory,并且部分规则已被进一步重命名。
Mojang:我们进行了一项大更新!重命名了所有游戏规则!
玩家:??!
开发者:%$!*@^%@*%!%
玩家:??!
开发者:%$!*@^%@*%!%
每个游戏都有游戏规则,Minecraft 也不例外。
在基岩版,管理员可以在“设置”界面更改游戏规则,但那些游戏规则显然是不够的。
所以,如果真的要更改游戏规则,那还得用一条专门的指令。
这条指令就是:/gamerule。
/gamerule,和上一章讲过的 /gamemode 是差不多的,都是由两个英文单词组成的指令。game 是游戏的意思,rule 是规则的意思,合并就是游戏规则(gamerule)。
/gamerule
作用:更改游戏规则
需要权限等级:Java-2,基岩-1
格式:
/gamerule <游戏规则ID:字符串> [布尔值]
/gamerule <游戏规则ID:字符串> [值]
游戏规则有很多个,在章尾我会列出来所有游戏规则以及默认是开启还是关闭。
布尔值知道吧?不知道的话我在这里科普一下。布尔值指的是“真”、“假”,常用于代码中。在 Minecraft 中有的地方使用的是英文,即是 true(真)和 false(假),也可以使用二进制的 1(真)和 0(假)。在 /gamerule 和大多数指令中,使用的都是英文。
大部分游戏规则都是布尔值类型的,即 true 开启,false 关闭。但也有些游戏规则是一个数值。
布尔值和数值参数省略的话,即只填游戏规则,就可以获取该游戏规则当前的状态,比如:
/gamerule commandBlockOutput
返回就是:游戏规则 commandBlockOutput 目前为:true
现在我列出一些常用的游戏规则:
(布尔值游戏规则)
- commandBlocksEnabled(默认:true)——命令方块在游戏中是否启用(基岩版设置界面为“启用命令方块”)[仅基岩版]
- commandBlockOutput(默认:true)——命令方块是否在聊天框中向管理员显示执行的结果
- disableElytraMovementCheck(默认true)——是否禁止服务器检查玩家使用鞘翅的移动速度[仅Java]
- doDaylightCycle(默认:true)——是否开启时间的流动(基岩版设置界面有,为“开启昼夜更替”)
- doEntityDrops(默认:true)——不是生物的实体是否会掉落物品(基岩版设置界面有,为“实体掉落战利品”)
- doFireTick(默认:true)——火是否会蔓延和自然熄灭(基岩版设置界面有,为“火焰蔓延”)
- doInsomnia(默认:true)——幻翼是否自然生成
- doImmediateRespawn(默认:false)——玩家死亡时是否直接跳过死亡界面(基岩版为immediateRespawn)(基岩版设置界面为“立即重生”)
- doMobLoot(默认:true)——生物死亡是否掉落(基岩版设置界面有,为“生物战利品”)
- doMobSpawning(默认:true)——生物是否自然生成(不影响刷怪笼)(基岩版设置界面为“生物生成”)
- doTileDrops(默认:true)——方块破坏是否掉落物品(基岩版设置界面为“区块掉落”)
- doWeatherCycle(默认:true)——天气是否变化(基岩版设置界面为“天气更替”)
- keepInventory(默认:false)——玩家死亡时是否保留数据(死亡不掉落)(基岩版设置界面有,为“保留物品栏”)
- logAdminCommands(默认:true)——是否在服务器日志中记录管理员使用过的命令,适合服务器被捣乱时查看[仅Java]
- mobGriefing——生物是否可以破坏、放置、修改方块、捡起掉落物以及(唤魔者是否可以)把蓝色的羊变为红色。该规则不影响非生物实体,不能阻止TNT和末影水晶的爆炸。(基岩版设置界面为“生物破坏”)
- naturalRegeneration(默认:true)——玩家在饥饿值足够的情况下是否可以自然回血(基岩版设置界面为“自然生命恢复”)
- pvp(默认:true)——玩家之间是否能造成伤害[仅基岩版](基岩版设置界面有,为“玩家间伤害”)
- respawnblocksexplode(默认:true)——玩家在非主世界维度使用床和在非下界维度使用重生锚时是否爆炸[仅基岩版][BE 1.17.20 更新,现在还在测试]
- sendCommandFeedback(默认true)——玩家执行命令的返回消息是否显示在聊天栏
- showcoordinates(默认:true)——是否在聊天框区域持续显示玩家所在的坐标[仅基岩版](基岩版设置界面有,为“显示坐标”)
- tntexplodes(默认:true)——TNT是否爆炸。注意,这并不会影响到 TNT 矿车和末影水晶。[仅基岩版](基岩版设置界面有,为“TNT爆炸”)
(数字游戏规则)
- randomTickSpeed(默认值:1 [基岩] 或 3 [JAVA])——每二十分之一秒(一游戏刻)每个区块中发生的方块事件的频率,简单来说就是值越大,方块变化速率越快。(基岩版设置界面有,为“随机刻速度”)
下面我说一下,随机刻的最高值是 4096,也就是 2 的 12 次方。随机刻不要改太高,不然——你会被卡得够呛的。但如果你的设备撑得住,那么你将会看到万物疯狂生长、生机勃勃的景象。
- spawnRadius(默认值:10 [Java]或 5 [基岩])——新进入服务器玩家和没有自己重生点玩家重生时距离世界出生点的最大距离,调成0可以让玩家准确生成在世界出生点
/gamerule历史
Java版
版本 | 更新内容 |
|---|---|
1.4.2[12w32a] | 加入了 /gamerule,同时加入了 doFireTick(火焰蔓延)、mobGriefing(生物破坏)、keepInventory(保留物品栏)、doMobSpawning(生物生成)、doMobLoot(生物掉落)、 doTileDrops(方块掉落)、commandBlockOutput(命令方块输出)规则。 |
1.6.1 | 加入了 naturalRegeneration(生命恢复)、doDaylightCycle(时间流逝)规则。 |
1.8 | 加入了 logAdminCommands(记录指令日志文件)、showDeathMessages(显示死亡信息)、randomTickSpeed(随机刻)、sendCommandFeedback(保存命令方块输出)规则。加入了创建虚拟规则的能力。 |
1.8.1 | 加入了 doEntityDrops(实体掉落)规则,同时,doTileDrops 不再影响实体。 |
1.9 | 加入了 spectatorsGenerateChunks(旁观者区块加载)、spawnRadius(重生半径)、disableElytraMovementCheck(检查鞘翅飞行)、doWeatherCycle(天气变化)和 maxEntityCramming(实体推动伤害)规则。 |
1.12 | 加入了 doLimitedCrafting(配方解锁)、maxCommandChainLength(命令链链上限)、announceAdvancements(显示进度)、gameLoopFunction(高频执行函数)规则。 |
1.13 | 不再接受未知值(自定义游戏规则)。现在会对值进行类型检查。移除了 gameLoopFunction 规则。 |
1.14.3 | 加入了 disableRaids(玩家攻击)、reducedDebugInfo(简化调试界面)规则。 |
1.15 | 加入了 doInsomnia(幻翼生成)、doImmediateRespawn(立即重生)、drowningDamage(窒息伤害)、fallDamage(跌落伤害)和 fireDamage(火焰伤害)规则。 |
1.15.2 | 加入了 doPatrolSpawning(控制灾厄巡逻队生成)和 doTraderSpawning 规则(控制流浪商人生成)。 |
1.16 | 现在创造世界时可以编辑游戏规则。加入了 forgiveDeadPlayers(激怒的中立生物的目标玩家死亡时,该生物是否恢复中立状态)和 universalAnger(激怒中立生物是否攻击任何玩家)规则。 |
1.17 | 加入了 freezeDamage(是否承受冰冻伤害)、playersSleepingPercentage(跳过夜晚所需玩家睡觉百分比)规则。 |
携带版
版本 | 更新内容 |
|---|---|
1.0.5 | 加入了 /gamerule。同时加入了 drowningDamage、fallDamage、fireDamage、pvp(玩家间攻击)规则。 |
1.1.0 | 加入了 doDaylightCycle、doEntityDrops、doFireTick、doMobSpawning、doMobLoot、doTileDrops、doWeatherCycle、keepInventory、mobGriefing 规则。 |
基岩版
版本 | 更新内容 |
|---|---|
1.6.0 | 加入了 doInsomnia 规则。 |
1.7.0 | 加入了 commandBlocksEnabled 规则。 |
1.8.0 | 加入了 randomTickSpeed 规则。 |
1.9.0 | 加入了 showDeathMessages 和 immediateRespawn 规则。 |
1.12.0 | 加入了 spawnRadius、sendCommandBlockFeedback、commandBlockOutput、maxCommandChainLength、naturalRegeneration、sendCommandFeedback、showCoordinates(显示坐标)和 tntExplodes(TNT爆炸)。 |
1.14.0 | 加入了 showtags(展示物品可破坏、放置方块列表)规则。不再接受自定游戏规则。 |
1.16.210 | 加入了 freezeDamage 规则。 |
1.17.20 | 加入了 respawnblocksexplode(床、重生锚是否爆炸)规则。 |