本帖最后由 Dahesor 于 2023-1-1 12:06 编辑
[命令] 命令教程“真”从零开始 (九) 调整苦力怕防爆,防喷/gamerule
声明:
1. 本教程默认所有读者看过本系列之前的内容。作者不对可能冒出来的术语或方言负责。以前帖的链接在最后。
2. 本系列教程默认读者拥有关于Minecraft游戏的基础了解。
3. 本系列全部教程绝对适用于当前Java最新版(1.19)。
4. 本系列教程致力于基础原理而非使用方法,因为某些原因,这是本声明里最重要的一条。
<<<<<< 返回系列目录 ←←
好。
看到今天的标题,熟悉指令的老手就会知道——这将是本教程最最最最——像流水账的一期。
我们的内容是游戏规则指令/gamerule。
本命令十分的简单,以及没啥好说的。但考虑到本系列教程面向“零基础学习者”而且还扬言要讲“完整”的教程——
你说我要是忘记说/tell,姑且还能说是“完整的”,但是你要是缺了/gamerule……这个……
……抱歉我骗不了我自己。
好啦好啦,我会尽可能地榨取自己脑中的知识,告诉你一些关于本指令在Wiki上未提出的细节吧。
所以,你绝对会不虚此行。
——写完了我才发现,这好像比以前的内容都长一些啊。
前言
死亡不掉落。
苦力怕防爆。
永昼永夜。
看,多么熟悉的开作弊方式!(熊孩子必备!)
而以上这些不同的功能,我们只用一个指令——
游戏规则指令/gamerule
就可以实现。
指令/gamerule是一条用于控制游戏规则的世界类指令——这意味着该指令更改的是整个地图,而非特定的玩家或方块。
今天,就让我们来看看这个简单,又重要的指令。
1. 格式
命令/gamerule的指令格式很简单,只是简单地填入游戏规则名,再加上要设定的值即可:
复制代码
其中,“<规则名>”需填写一条特定的规则(比如上面说的“死亡不掉落”),而“[值]”则是你要更改的值。
不同的规则接受不同的值。有些游戏规则接受的是数字,而大部分则接受布尔值(Bloolean)。布尔值这个名字好像吓人,但实际上就是“true”或"false"——“真”“假”
就以死亡不掉落这条规则举例:
复制代码
“[值|值]”的含义为,你可以从两个值中选择一个来填写,且本元素是可选的。
游戏规则 "keepInventory" 直接翻译过来就是“保留物品栏”的意思,而后面接入的两个值,若填入“true”,即“真”,就是打开死亡不掉落,而若填入“false”,即“假”,为关掉死亡不掉落,也就是默认值:
复制代码打开死亡不掉落
复制代码关闭死亡不掉落
你可以注意到上面的元素”true或false“是可选的。如果你不填入,将会查询该命令目前的值:
复制代码查询游戏规则“死亡不掉落”的当前设置。
——以上就是本指令的格式了。
接下来我们要讲的,就是可用的所有游戏规则啦。
2. 游戏规则
↓↓↓注意!以下所有的游戏规则区分大小写!↓↓↓
• 公告进度完成信息
游戏规则”announceAdvancements“决定了玩家完成进度时是否在聊天框中公告。
接受值:布尔值(true|false)
默认值:"true"(公布进度完成信息)
例:
复制代码关闭在玩家完成进度时的公告
• 打开命令方块输出
游戏规则”commandBlockOutput“决定了命令方块在执行命令之后是否在聊天信息中显示指令运行结果。
接受值:布尔值(true|false)
默认值:true(是,显示指令输出)
这是游戏规则指令中较为常用的一条规则了。
这一条规则我们早在第一帖提到循环型命令方块的时候就已经说到过了。若该游戏规则是默认的“true”,那么你地图上的一切命令方块的“小动作”都会暴露在玩家面前……更不用说如果你使用了循环型的命令方块,聊天区就直接被刷屏了……所以推荐关上:
复制代码
• 停止检测鞘翅玩家速度
游戏规则”disableElytraMovementCheck“决定了游戏是否在多人游戏时检测玩家有没有在使用鞘翅以过快的速度飞行,并将这类玩家踢出。
接受值:布尔值(true|false)
默认值:false(持续检测速度)
还记得我们上一帖说的区块么?
现在,生存模式的玩家在使用鞘翅+烟花或三叉戟时,会达到一个惊人的速度——最大可以到540方块/秒。如此快的速度导致在一秒内大量的区块被加载
——在单人游戏中只要你电脑配置够好不成问题,但这玩意对于服务器来说负担还是太大了,因此才有了本游戏规则——将速度过快的玩家直接踢出去!
• 关闭袭击事件
游戏规则"disableRaids"决定了游戏会不会触发袭击事件。
接受值:布尔值(true|false)
默认值:false(突袭正常进行)
例:
复制代码禁用突袭事件
需要注意:
当该规则被调整为"true"时,玩家进入村庄将不会消除他身上的灾厄之兆效果。
若在一场袭击进行中将突袭禁用,突袭将会停止——但已经生成的怪物不会消失。
• 日夜循环
游戏规则"doDaylightCycle"决定了游戏是否拥有正常的时间循环与月相循环
接受值:布尔值(true|false)
默认值:true(正常循环)
例:
复制代码关闭日夜与月相循环
当本规则调整至“true”时,时间与月相将永远保持在该时间上。
另见系列第3帖,指令/time
• 生物/实体死亡时掉落物品
游戏规则"doEntityDrops"决定了非生物实体在死亡时是否会掉落物品。
接受值:布尔值(true|false)
默认值:true(是的,掉落)
复制代码关闭非生物实体掉落
注意,这是指“非生物实体”。生物的掉落有下面讲的另一条规则控制。
注意,当本规则为false(关)时,取下物品展示框内的物品时,将不会返还该物品。
(好像在一些案例中,物品将根本无法取下,但作者在测试时并未发生此情况。各位帮个忙,请都测试一下然后在下方留个言告诉我结果,感谢。)
你将同样无法回收画。
• 瞬间复活
游戏规则"doImmediateRespawn"决定了游戏是否跳过死亡界面而直接复活。
接受值:布尔值(true|false)
默认值:false(不跳过,正常显示死亡界面)
例:复制代码瞬间复活
• 限制合成
游戏规则"doLimitedCrafting"决定了玩家是否需要获得了配方才能合成/炼制/锻造特定物品。
接受值:布尔值(true|false)
默认值:false(不需要获得配方)
配方?
嗯。这是个以后要讲的东西。
不过在制作RPG或小游戏地图时,如果你不想要玩家随意合成物品,可以简单地将本规则调整为true再使用指令/recipe剥夺所有配方。
• 生物死亡战利品
游戏规则"doMobLoot"决定了生物在死亡时是否掉落战利品。
接受值:布尔值(true|false)
默认值:true(是,掉落)
例:
复制代码生物死亡时将不会掉落物品。
注意,请将本规则与上面的"doEntityDrops"区分。
注意,本规则不影响玩家死亡的掉落(尽管玩家也是生物。)
• 生物自然生成
游戏规则"doMobSpawning"决定了生物是否自然生成。
接受值:布尔值(true|false)
默认值:true(是的,自然生成)
例:
复制代码关闭生物的自然生成。
注意,这只影响自然生成,由刷怪笼,生怪蛋,事件(如袭击)与结构(比如林地府邸)生成的怪物将仍旧出现。
• 灾厄巡逻队生成
游戏规则"doPatrolSpawning"决定了灾厄巡逻队是否生成。
接受值:布尔值(true|false)
默认值:true(是,生成)
例:
复制代码关闭灾厄巡逻队生成。
等待验证/更新:当上面的"doMobSpawning"为false时,即使"doPatrolSpawning"调整为"true",在此情况下灾厄巡逻队是否生成。(我会在空闲时验证,或谁帮我一下)
• 流浪商人生成
游戏规则"doTraderSpawning"决定了流浪商人是否自然生成。
接受值:布尔值(true|false)
默认值:true(是,生成)
例:
复制代码关闭流浪商人的自然生成。
等待验证/更新:和上面一样的问题:当上面的"doMobSpawning"为false时,即使"doTraderSpawning"调整为"true",在此情况下流浪商人是否生成。(我会在空闲时验证,或谁帮我一下)
• 生成幻翼
游戏规则"doInsomnia"决定了游戏是否自然生成幻翼。
接受值:布尔值(true|false)
默认值:true(是,生成)
例:
复制代码关闭幻翼的自然生成
等待验证/更新:还是和上面一样的问题:当上面的"doMobSpawning"为false时,即使"doInsomnia"调整为"true",在此情况下幻翼是否生成。(我会在空闲时验证,或谁帮我一下)
• 天气循环
游戏规则"doWeatherCycle"决定了天气是否正常循环
接受值:布尔值(true|false)
默认值:true(正常循环)
例:
复制代码将天气永久固定为当前的天气。
• 原谅死亡玩家
游戏规则"forgiveDeadPlayers"决定了被激怒的中立生物是否会在玩家死亡后恢复中立状态。
接受值:布尔值(true|false)
默认值:true(是的,恢复中立)
例:
复制代码让被激怒的中立生物永远追杀玩家。
• 死亡不掉落
游戏规则"keepInventory"决定了玩家在死亡时是否保留他的物品栏
接受值:布尔值(true|false)
默认值:false(不保留)
例:
复制代码死亡不掉落
注意,除了物品栏外,经验值也会保留。
但是饥饿值与状态效果会被清除/回满。
• 记录管理员命令执行输出
游戏规则"logAdminCommands"决定了游戏是否把管理员执行的命令记录到服务器日志中。
接受值:布尔值(true|false)
默认值:true(是的,记录日志)
例:
复制代码使游戏不再记录
• 最大实体推挤
游戏规则"maxEntityCramming"决定了在同一空间中,实体可以堆叠的最大数量。超过这个数字,所有实体都会受到每秒6点伤害。
接受值:整型(一个整数)
默认值:24
嗯。本规则是什么意思呢?
简单来讲,就是说,假设有一格的狭窄空间,如果这个空间里堆挤了太多生物,那么所有生物都会受到每秒6点的窒息伤害。
而本规则就决定了这个最大的数字。
例:
复制代码将最大实体推挤减少到10个。
这条规则影响了非旁观者模式的玩家,除蝙蝠外的任何其他生物,以及船和矿车。创造模式的玩家一样被计入,但他们不会受到伤害。
记得dream有一期用了24个矿车挤死了一名猎人,用的就是这个规则。
将这个规则的值设置为0可以禁用这条规则:
复制代码禁用本规则(就是说堆多少都没事啦!)
• 窒息伤害
游戏规则"drowningDamage"决定了玩家在窒息时是否受到伤害。
接受值:布尔值(true|false)
默认值:true(是,受到伤害)
例:
复制代码关闭窒息伤害。
需要注意的是,这里的“窒息伤害”指的是在水中氧气条消耗殆尽时的伤害。卡在墙里,被沙子埋住的伤害,与上面最大堆叠规则造成的伤害无法被此指令避免。
• 坠落伤害
游戏规则"fallDamage"决定了玩家是否承受衰落伤害。
接受值:布尔值(true|false)
默认值:true(是的,受到伤害)
例:
复制代码关闭坠落伤害
注意本规则仅影响玩家。
• 火焰伤害
游戏规则"fallDamage"决定了玩家是否会受到火焰伤害。
接受值:布尔值(true|false)
默认值:true(是的,受到伤害)
例:
复制代码关闭火焰伤害。
这里的火焰伤害包含了火焰,岩浆,岩浆块,火球等。就是那些抗火药水可以防御的。
• 最大指令连锁
游戏规则"maxCommandChainLength"决定了连锁型命令方块与函数最大可以连锁的指令数目。
接受值:整型(一个整数)
默认值:65535(最多连锁65535次)
还记得第一帖讲的连锁型指令方块么?
这种方块的连锁并不是无上限的,而是最多可以连锁由本规则规定的次数。
之所以这么做,是因为,怕太长的连锁占游戏内存——
好吧,实际上是因为怕函数间的无限制互相调用——
函数是啥?
这个以后再说啊,以后再说。
复制代码禁止连锁型指令方块运行,且任何函数只能运行其中的第一条指令
• 生物破坏型行为
游戏规则"mobGriefing"决定了怪物可否做出“破坏型行为”。
接受值:布尔值(true|false)
默认值:true(可以)
例:
复制代码禁止生物做出破坏型行为。
这实际上就是我们熟知的苦力怕防爆。
但除了可以防爆外,本规则还有很多其他的内容:
一旦该规则被调整为false,将阻止:
注意,本规则对玩家没有影响。
• 生命值自然恢复
游戏规则"naturalRegeneration"决定了生命值是否会在玩家拥有足够的饥饿值时恢复生命值。
接受值:布尔值(true|false)
默认值:true(正常恢复)
例:
复制代码关闭自然恢复
将这个规则设置为false就是UHC的基础规则!(话说我正在做一个UHC的数据包(有啥建议告诉我哈))
• 简洁的F3调试界面
游戏规则"reducedDebugInfo"决定了是否使用简洁的调试界面(F3)
接受值:布尔值(true|false)
默认值:false(正常显示调试界面)
例:
复制代码启用简单的调试界面。
注意,当本规则被设置为true时,将不会显示坐标。所以如果你不想让你的玩家得知自己的坐标——就调整为false吧。
其次,当本规则被设置为true时,F3+B(显示实体碰撞箱)与上一帖提过的F3+G,显示区块边界也不会有用。
• 随机刻生成速率
游戏规则"randomTickSpeed"决定了随机刻(Random Ticks)的生成速度。
接受值:整型(一个整数)
默认值:3(每4096格方块每区块刻3次)
诶,我们有个新东西了:随机刻。
这是什么动西呢?
这是MC的一个机制,它决定了包括“农作物生长”,"火焰蔓延"等方块的随机事件。
本规则决定的是这个随机的”机率“,
在上一帖中我们讲了区块有关”区段“的内容。
如果你没看,请去看一下——
第8帖
看完了吗?
好。
那么,随机刻就是,每一刻,在每一个区段4096个方块中,随机抽选由本规则数字的方块数,给予随机抽中的方块一次“随机刻更新更新”。
如果这个被抽到的方块是普通方块,比如说石头,那么什么都不会发生。
但如果是类似农作物——那么该方块就会更改。
在农作物的例子中,它会长高一格。(如果还没成熟的话)
你可以在Wiki这里寻找更多信息,以及受随机刻影响的方块列表。
例:
复制代码将该随机刻生成速率调整为6
注意,将本规则调整为0会禁用随机刻。
复制代码禁用随机刻
由于一个区段最多有4069个方块,所以将该规则调整为更高的数字并不知道会发生什么。
在本人的测试中,一个足够大的数字(比如300000)会使游戏崩溃。
• 火焰蔓延
游戏规则"doFireTick"决定了火焰是否会蔓延,烧毁特定方块(如木头),与熄灭。(其实是,随机刻会不会影响火焰)
接受值:布尔值(true|false)
默认值:true(火焰正常运行)
复制代码关闭火焰的蔓延与熄灭
• 返回指令执行输出
游戏规则"sendCommandFeedback"决定了玩家在聊天框中执行命令时是否会获得输出。
接受值:布尔值(true|false)
默认值:true(是的,输出)
例:
复制代码关闭输出
这和命令方块的输出规则是差不多的,只不过这一项管理的是聊天框中执行的命令。
• 显示死亡信息
游戏规则"showDeathMessages"决定了当玩家死亡时是否在在聊天框中公告
接受值:布尔值(true|false)
默认值:true(公布)
例:
复制代码不再公布玩家的死亡信息。
注意,若本规则为false。那么队伍指令/team中的显示死亡信息选项将不再管用。
见系列第4帖
还有一件有趣的事情,如果本规则为false,且打开了瞬间复活与死亡不掉落,那么直接用/kill玩家可能都不知道自己死了。
• 出生范围
游戏规则"spawnRadius"决定了玩家出生在世界出生点时的最大分散范围的半径。
接受值:整型(一个整数)
默认值:10(半径10格)
例:
复制代码将该范围缩减至一个点
注意,这是面对世界出生点的规则,与个人重生点无关
另见:Wiki页面
系列第7帖:命令/setworldspawn
• 旁观者加载区块
游戏规则"spectatorsGenerateChunks"决定了旁观模式的玩家能否加载区块。
接受值:布尔值(true|false)
默认值:true(允许加载)
嗯。旁观者模式的玩家是可以飞的很快的,所以如果任其乱飞。不仅会占用游戏资源,还有可能飞飞飞就飞到你地图的指令区了。
所以——关不关闭看你
另见本系列第8帖:区块。
例:
复制代码禁止旁观模式玩家加载区块
• 全局愤怒
游戏规则"universalAnger"决定了当中立生物被激怒时,是只攻击激怒它的玩家,还是攻击所有玩家。
接受值:布尔值(true|false)
默认值:false(只攻击激怒它的玩家)
例:
复制代码现在,被激怒的中立生物将到处乱杀!
学着Wiki,我也要来一句:
游戏规则"freezedamage"决定了玩家是否承受细雪的冰冻伤害。
接受值:布尔值(true|false)
默认值:true(承受)
例:
复制代码
关闭冰冻伤害
• 设置跳过夜晚所需的入睡玩家所占百分比
游戏规则"playersSleepingPercentage"决定了有多少百分比的玩家入睡才会跳过夜晚
接受值:数字
默认值:100(所有玩家入睡才会跳过夜晚)
在服务器里你有没有从来无法跳过夜晚的经历?没关系,本命令帮你解决!
本规则可以决定,有多少百分比的玩家入睡才会跳过夜晚。
如果设为0,只要有1名玩家躺到床上就会跳过夜晚。
如果设为100,必须所有玩家都躺在床上才会跳过夜晚。
如果设为大于100,那么夜晚将无法跳过。
例:
复制代码
玩家将无法跳过夜晚
• 监守者生成
游戏规则"doWardenSpawning"决定了监守者是否可以自然生成。
接受值:布尔值(true|false)
默认值:true(是)
例:
复制代码
不让它生成
• 爆炸时凋落物销毁
游戏中当发生可以破坏方块的爆炸时,这些遭到破坏的方块不是全部都能掉落为物品。一般地说,里爆炸中心越近就越容易被“完全销毁”,即不掉落物品。例外是TNT,它的爆炸总是使全部物品掉落。
游戏规则"blockExplosionDropDecay"决定了由非TNT的方块爆炸炸毁的方块是否会有概率不掉落。
游戏规则"mobExplosionDropDecay"决定了由生物爆炸炸毁的方块是否会有概率不掉落。
游戏规则"tntExplosionDropDecay"决定了由TNT炸毁的方块是否会有概率不掉落。
接受值:布尔值(true|false)
默认值:TNT为false(永远掉落),其他两项为true(可能不掉落)
例:
复制代码
使生物爆炸时总是掉落全部方块(比如苦力怕)。
• 下雪堆积层数
游戏规则"snowAccumulationHeight"决定了下雪时可在一格方块空间内堆积的雪的最高层数。
接受值:数字
默认值:1
设置为0会关闭积雪
设置为8或以上效果等同,均会使雪堆到一整格高
例:
复制代码关闭积雪
• 生成源流体方块
我们都知道可以做无线水,但不可以无限演讲。下面的两个规则决定了流体在交汇时是否形成新的源流体方块。
游戏规则"waterSourceConversion"决定了水流能否形成新的水源。
游戏规则"lavaSourceConversion"决定了岩浆流能否形成新的熔岩源。
接受值:布尔值(true|false)
默认值:水:true(可以)熔岩:false(不行)
例:
复制代码让无限演讲成为可能
• 全局音效
游戏规则"globalSoundEvents"决定了玩家是否能听到可无视距离播放给全部玩家的特定游戏事件音效。
接受值:布尔值(true|false)
默认值:true(是)
有些音效所有玩家都听得见,比如召唤凋零的声音,大概。
例:
复制代码禁用全局音效
这就是Java1.19.3的所有游戏规则。
以上就是今天的全部内容。
写这一帖的时候遇到了一件有趣的事情。
有一个游戏规则”functionCommandLimit“出现在了中文Wiki,但是在英文wiki上却从未出现!
最后证实该规则的确存在于基岩版。
中文Wiki的一位管理员跟我说,他发现英文Wiki的质量正在逐年下滑——各位,你觉得有么?反正我除非必要是很少去逛英文Wiki的啦。
好啦,就这些啦!
以上。
#更新日志
Java 1.16.5/a 页面发布
Java 1.16.5/b 修正了错误的版本信息。
Java 1.16.5/c 撤销了名称问题。
Java 1.16.5/d 更改了名字
Java 1.17/a 1.17版本升级完成,增加了两条游戏规则
Java 1.18/a 1.18版本升级完成
Java 1.19.3/a 1.19版本升级完成,增加了6条游戏规则
上一篇:[命令] 命令教程“真”从零开始 (八) 区块与强制加载命令/forceload [1.16]
索引:系列《命令教程“真”从零开始》
下一篇:[命令] 命令教程“真”从零开始 (十) 简单,又新手(雾)的方块指令/setblock [1.16]
[命令] 命令教程“真”从零开始 (九) 调整苦力怕防爆,防喷/gamerule
声明:
1. 本教程默认所有读者看过本系列之前的内容。作者不对可能冒出来的术语或方言负责。以前帖的链接在最后。
2. 本系列教程默认读者拥有关于Minecraft游戏的基础了解。
3. 本系列全部教程绝对适用于当前Java最新版(1.19)。
4. 本系列教程致力于基础原理而非使用方法,因为某些原因,这是本声明里最重要的一条。
<<<<<< 返回系列目录 ←←
好。
看到今天的标题,熟悉指令的老手就会知道——这将是本教程最最最最——像流水账的一期。
我们的内容是游戏规则指令/gamerule。
本命令十分的简单,以及没啥好说的。但考虑到本系列教程面向“零基础学习者”而且还扬言要讲“完整”的教程——
你说我要是忘记说/tell,姑且还能说是“完整的”,但是你要是缺了/gamerule……这个……
……抱歉我骗不了我自己。
好啦好啦,我会尽可能地榨取自己脑中的知识,告诉你一些关于本指令在Wiki上未提出的细节吧。
所以,你绝对会不虚此行。
——写完了我才发现,这好像比以前的内容都长一些啊。
前言
死亡不掉落。
苦力怕防爆。
永昼永夜。
看,多么熟悉的开作弊方式!(熊孩子必备!)
而以上这些不同的功能,我们只用一个指令——
游戏规则指令/gamerule
就可以实现。
指令/gamerule是一条用于控制游戏规则的世界类指令——这意味着该指令更改的是整个地图,而非特定的玩家或方块。
今天,就让我们来看看这个简单,又重要的指令。
1. 格式
命令/gamerule的指令格式很简单,只是简单地填入游戏规则名,再加上要设定的值即可:
- /gamerule <规则名> [值]
其中,“<规则名>”需填写一条特定的规则(比如上面说的“死亡不掉落”),而“[值]”则是你要更改的值。
不同的规则接受不同的值。有些游戏规则接受的是数字,而大部分则接受布尔值(Bloolean)。布尔值这个名字好像吓人,但实际上就是“true”或"false"——“真”“假”
就以死亡不掉落这条规则举例:
- /gamerule keepInventory [true|false]
“[值|值]”的含义为,你可以从两个值中选择一个来填写,且本元素是可选的。
游戏规则 "keepInventory" 直接翻译过来就是“保留物品栏”的意思,而后面接入的两个值,若填入“true”,即“真”,就是打开死亡不掉落,而若填入“false”,即“假”,为关掉死亡不掉落,也就是默认值:
- /gamerule keepInventory true
- /gamerule keepInventory false
你可以注意到上面的元素”true或false“是可选的。如果你不填入,将会查询该命令目前的值:
- /gamerule keepInventory
——以上就是本指令的格式了。
接下来我们要讲的,就是可用的所有游戏规则啦。
2. 游戏规则
注意:
1. 游戏规则指令的格式从未改变,但每到新的版本都会增加新的规则。
在这里仅介绍Java版当前1.19.3拥有的游戏规则。
有关基岩版,Java较旧版本或即将到来的版本的信息,请前往Wiki此处察看。
↓↓↓注意!以下所有的游戏规则区分大小写!↓↓↓
• 公告进度完成信息
游戏规则”announceAdvancements“决定了玩家完成进度时是否在聊天框中公告。
接受值:布尔值(true|false)
默认值:"true"(公布进度完成信息)
例:
- /gamerule announceAdvancements false
• 打开命令方块输出
游戏规则”commandBlockOutput“决定了命令方块在执行命令之后是否在聊天信息中显示指令运行结果。
接受值:布尔值(true|false)
默认值:true(是,显示指令输出)
这是游戏规则指令中较为常用的一条规则了。
这一条规则我们早在第一帖提到循环型命令方块的时候就已经说到过了。若该游戏规则是默认的“true”,那么你地图上的一切命令方块的“小动作”都会暴露在玩家面前……更不用说如果你使用了循环型的命令方块,聊天区就直接被刷屏了……所以推荐关上:
- /gamerule commandBlockOutput false
• 停止检测鞘翅玩家速度
游戏规则”disableElytraMovementCheck“决定了游戏是否在多人游戏时检测玩家有没有在使用鞘翅以过快的速度飞行,并将这类玩家踢出。
接受值:布尔值(true|false)
默认值:false(持续检测速度)
还记得我们上一帖说的区块么?
现在,生存模式的玩家在使用鞘翅+烟花或三叉戟时,会达到一个惊人的速度——最大可以到540方块/秒。如此快的速度导致在一秒内大量的区块被加载
——在单人游戏中只要你电脑配置够好不成问题,但这玩意对于服务器来说负担还是太大了,因此才有了本游戏规则——将速度过快的玩家直接踢出去!
• 关闭袭击事件
游戏规则"disableRaids"决定了游戏会不会触发袭击事件。
接受值:布尔值(true|false)
默认值:false(突袭正常进行)
例:
- /gamerule disableRaids true
需要注意:
当该规则被调整为"true"时,玩家进入村庄将不会消除他身上的灾厄之兆效果。
若在一场袭击进行中将突袭禁用,突袭将会停止——但已经生成的怪物不会消失。
• 日夜循环
游戏规则"doDaylightCycle"决定了游戏是否拥有正常的时间循环与月相循环
接受值:布尔值(true|false)
默认值:true(正常循环)
例:
- /gamerule doDaylightCycle false
当本规则调整至“true”时,时间与月相将永远保持在该时间上。
另见系列第3帖,指令/time
• 生物/实体死亡时掉落物品
游戏规则"doEntityDrops"决定了非生物实体在死亡时是否会掉落物品。
接受值:布尔值(true|false)
默认值:true(是的,掉落)
- 例:/gamerule doEntityDrops false
注意,这是指“非生物实体”。生物的掉落有下面讲的另一条规则控制。
注意,当本规则为false(关)时,取下物品展示框内的物品时,将不会返还该物品。
(好像在一些案例中,物品将根本无法取下,但作者在测试时并未发生此情况。各位帮个忙,请都测试一下然后在下方留个言告诉我结果,感谢。)
你将同样无法回收画。
• 瞬间复活
游戏规则"doImmediateRespawn"决定了游戏是否跳过死亡界面而直接复活。
接受值:布尔值(true|false)
默认值:false(不跳过,正常显示死亡界面)
例:
- /gamerule doImmediateRespawn true
• 限制合成
游戏规则"doLimitedCrafting"决定了玩家是否需要获得了配方才能合成/炼制/锻造特定物品。
接受值:布尔值(true|false)
默认值:false(不需要获得配方)
配方?
嗯。这是个以后要讲的东西。
不过在制作RPG或小游戏地图时,如果你不想要玩家随意合成物品,可以简单地将本规则调整为true再使用指令/recipe剥夺所有配方。
• 生物死亡战利品
游戏规则"doMobLoot"决定了生物在死亡时是否掉落战利品。
接受值:布尔值(true|false)
默认值:true(是,掉落)
例:
- /gamerule doMobLoot false
注意,请将本规则与上面的"doEntityDrops"区分。
注意,本规则不影响玩家死亡的掉落(尽管玩家也是生物。)
• 生物自然生成
游戏规则"doMobSpawning"决定了生物是否自然生成。
接受值:布尔值(true|false)
默认值:true(是的,自然生成)
例:
- /gamerule doMobSpawning false
注意,这只影响自然生成,由刷怪笼,生怪蛋,事件(如袭击)与结构(比如林地府邸)生成的怪物将仍旧出现。
• 灾厄巡逻队生成
游戏规则"doPatrolSpawning"决定了灾厄巡逻队是否生成。
接受值:布尔值(true|false)
默认值:true(是,生成)
例:
- /gamerule doPatrolSpawning false
等待验证/更新:当上面的"doMobSpawning"为false时,即使"doPatrolSpawning"调整为"true",在此情况下灾厄巡逻队是否生成。(我会在空闲时验证,或谁帮我一下)
• 流浪商人生成
游戏规则"doTraderSpawning"决定了流浪商人是否自然生成。
接受值:布尔值(true|false)
默认值:true(是,生成)
例:
- /gamerule doTraderSpawning false
等待验证/更新:和上面一样的问题:当上面的"doMobSpawning"为false时,即使"doTraderSpawning"调整为"true",在此情况下流浪商人是否生成。(我会在空闲时验证,或谁帮我一下)
• 生成幻翼
游戏规则"doInsomnia"决定了游戏是否自然生成幻翼。
接受值:布尔值(true|false)
默认值:true(是,生成)
例:
- /gamerule doInsomnia false
等待验证/更新:还是和上面一样的问题:当上面的"doMobSpawning"为false时,即使"doInsomnia"调整为"true",在此情况下幻翼是否生成。(我会在空闲时验证,或谁帮我一下)
• 天气循环
游戏规则"doWeatherCycle"决定了天气是否正常循环
接受值:布尔值(true|false)
默认值:true(正常循环)
例:
- /gamerule doWeatherCycle false
• 原谅死亡玩家
游戏规则"forgiveDeadPlayers"决定了被激怒的中立生物是否会在玩家死亡后恢复中立状态。
接受值:布尔值(true|false)
默认值:true(是的,恢复中立)
例:
- /gamerule forgiveDeadPlayers false
• 死亡不掉落
游戏规则"keepInventory"决定了玩家在死亡时是否保留他的物品栏
接受值:布尔值(true|false)
默认值:false(不保留)
例:
- /gamerule keepInventory true
注意,除了物品栏外,经验值也会保留。
但是饥饿值与状态效果会被清除/回满。
• 记录管理员命令执行输出
游戏规则"logAdminCommands"决定了游戏是否把管理员执行的命令记录到服务器日志中。
接受值:布尔值(true|false)
默认值:true(是的,记录日志)
例:
- /gamerule logAdminCommands false
• 最大实体推挤
游戏规则"maxEntityCramming"决定了在同一空间中,实体可以堆叠的最大数量。超过这个数字,所有实体都会受到每秒6点伤害。
接受值:整型(一个整数)
默认值:24
嗯。本规则是什么意思呢?
简单来讲,就是说,假设有一格的狭窄空间,如果这个空间里堆挤了太多生物,那么所有生物都会受到每秒6点的窒息伤害。
而本规则就决定了这个最大的数字。
例:
- /gamerule maxEntityCramming 10
这条规则影响了非旁观者模式的玩家,除蝙蝠外的任何其他生物,以及船和矿车。创造模式的玩家一样被计入,但他们不会受到伤害。
记得dream有一期用了24个矿车挤死了一名猎人,用的就是这个规则。
将这个规则的值设置为0可以禁用这条规则:
- /gamerule maxEntityCramming 0
• 窒息伤害
游戏规则"drowningDamage"决定了玩家在窒息时是否受到伤害。
接受值:布尔值(true|false)
默认值:true(是,受到伤害)
例:
- /gamerule drowningDamage false
需要注意的是,这里的“窒息伤害”指的是在水中氧气条消耗殆尽时的伤害。卡在墙里,被沙子埋住的伤害,与上面最大堆叠规则造成的伤害无法被此指令避免。
• 坠落伤害
游戏规则"fallDamage"决定了玩家是否承受衰落伤害。
接受值:布尔值(true|false)
默认值:true(是的,受到伤害)
例:
- /gamerule fallDamage false
注意本规则仅影响玩家。
• 火焰伤害
游戏规则"fallDamage"决定了玩家是否会受到火焰伤害。
接受值:布尔值(true|false)
默认值:true(是的,受到伤害)
例:
- /gamerule fallDamage false
这里的火焰伤害包含了火焰,岩浆,岩浆块,火球等。就是那些抗火药水可以防御的。
• 最大指令连锁
游戏规则"maxCommandChainLength"决定了连锁型命令方块与函数最大可以连锁的指令数目。
接受值:整型(一个整数)
默认值:65535(最多连锁65535次)
还记得第一帖讲的连锁型指令方块么?
这种方块的连锁并不是无上限的,而是最多可以连锁由本规则规定的次数。
之所以这么做,是因为,怕太长的连锁占游戏内存——
好吧,实际上是因为怕函数间的无限制互相调用——
函数是啥?
这个以后再说啊,以后再说。
- /gamerule maxCommandChainLength 0
• 生物破坏型行为
游戏规则"mobGriefing"决定了怪物可否做出“破坏型行为”。
接受值:布尔值(true|false)
默认值:true(可以)
例:
- /gamerule mobGriefing false
这实际上就是我们熟知的苦力怕防爆。
但除了可以防爆外,本规则还有很多其他的内容:
一旦该规则被调整为false,将阻止:
- 任何生物(非玩家)践踏农作物/捡起物品或装备/踩坏海龟蛋。
- 烈焰人/恶魂的火球将无法点燃方块或篝火。
- 苦力怕/末影水晶/凋零/凋零之首/恶魂火焰弹爆炸时破坏方块(注意仍旧有爆炸伤害)
- 被凋零之首击杀的生物将无法放置凋零玫瑰。这些玫瑰会直接以物品形式掉落。
- 末影龙无法破坏方块
- 末影人将无法捡起或放下方块
- 唤魔者将无法把蓝色的羊变成红的。
- 劫掠兽将无法破坏方块
- 蠹虫将无法躲进石头里。
- 僵尸将无法破坏门
- 狐狸将无法从甜浆果丛中捡起甜浆果。
- 兔子将无法啃食胡萝卜。
- 羊将无法吃草。注意羊毛仍会正常生长。
- 村民将无法种植农作物。但他们仍可以开关门或扔出物品(捡不回来就是了)。
注意,本规则对玩家没有影响。
• 生命值自然恢复
游戏规则"naturalRegeneration"决定了生命值是否会在玩家拥有足够的饥饿值时恢复生命值。
接受值:布尔值(true|false)
默认值:true(正常恢复)
例:
- /gamerule naturalRegeneration false
将这个规则设置为false就是UHC的基础规则!(话说我正在做一个UHC的数据包(有啥建议告诉我哈))
• 简洁的F3调试界面
游戏规则"reducedDebugInfo"决定了是否使用简洁的调试界面(F3)
接受值:布尔值(true|false)
默认值:false(正常显示调试界面)
例:
- /gamerule reducedDebugInfo true
注意,当本规则被设置为true时,将不会显示坐标。所以如果你不想让你的玩家得知自己的坐标——就调整为false吧。
其次,当本规则被设置为true时,F3+B(显示实体碰撞箱)与上一帖提过的F3+G,显示区块边界也不会有用。
• 随机刻生成速率
游戏规则"randomTickSpeed"决定了随机刻(Random Ticks)的生成速度。
接受值:整型(一个整数)
默认值:3(每4096格方块每区块刻3次)
诶,我们有个新东西了:随机刻。
这是什么动西呢?
这是MC的一个机制,它决定了包括“农作物生长”,"火焰蔓延"等方块的随机事件。
本规则决定的是这个随机的”机率“,
在上一帖中我们讲了区块有关”区段“的内容。
如果你没看,请去看一下——
第8帖
看完了吗?
好。
那么,随机刻就是,每一刻,在每一个区段4096个方块中,随机抽选由本规则数字的方块数,给予随机抽中的方块一次“随机刻更新更新”。
如果这个被抽到的方块是普通方块,比如说石头,那么什么都不会发生。
但如果是类似农作物——那么该方块就会更改。
在农作物的例子中,它会长高一格。(如果还没成熟的话)
你可以在Wiki这里寻找更多信息,以及受随机刻影响的方块列表。
例:
- /gamerule randomTickSpeed 6
注意,将本规则调整为0会禁用随机刻。
- /gamerule randomTickSpeed 0
由于一个区段最多有4069个方块,所以将该规则调整为更高的数字并不知道会发生什么。
在本人的测试中,一个足够大的数字(比如300000)会使游戏崩溃。
• 火焰蔓延
游戏规则"doFireTick"决定了火焰是否会蔓延,烧毁特定方块(如木头),与熄灭。(其实是,随机刻会不会影响火焰)
接受值:布尔值(true|false)
默认值:true(火焰正常运行)
- /gamerule doFireTick false
• 返回指令执行输出
游戏规则"sendCommandFeedback"决定了玩家在聊天框中执行命令时是否会获得输出。
接受值:布尔值(true|false)
默认值:true(是的,输出)
例:
- /gamerule sendCommandFeedback false
这和命令方块的输出规则是差不多的,只不过这一项管理的是聊天框中执行的命令。
• 显示死亡信息
游戏规则"showDeathMessages"决定了当玩家死亡时是否在在聊天框中公告
接受值:布尔值(true|false)
默认值:true(公布)
例:
- /gamerule showDeathMessages false
注意,若本规则为false。那么队伍指令/team中的显示死亡信息选项将不再管用。
见系列第4帖
还有一件有趣的事情,如果本规则为false,且打开了瞬间复活与死亡不掉落,那么直接用/kill玩家可能都不知道自己死了。
• 出生范围
游戏规则"spawnRadius"决定了玩家出生在世界出生点时的最大分散范围的半径。
接受值:整型(一个整数)
默认值:10(半径10格)
例:
- /gamerule spawnRadius 0
注意,这是面对世界出生点的规则,与个人重生点无关
另见:Wiki页面
系列第7帖:命令/setworldspawn
• 旁观者加载区块
游戏规则"spectatorsGenerateChunks"决定了旁观模式的玩家能否加载区块。
接受值:布尔值(true|false)
默认值:true(允许加载)
嗯。旁观者模式的玩家是可以飞的很快的,所以如果任其乱飞。不仅会占用游戏资源,还有可能飞飞飞就飞到你地图的指令区了。
所以——关不关闭看你
另见本系列第8帖:区块。
例:
- /gamerule spectatorsGenerateChunks false
• 全局愤怒
游戏规则"universalAnger"决定了当中立生物被激怒时,是只攻击激怒它的玩家,还是攻击所有玩家。
接受值:布尔值(true|false)
默认值:false(只攻击激怒它的玩家)
例:
- /gamerule universalAnger true
学着Wiki,我也要来一句:
该规则在关闭了原谅死亡玩家时有更好的效果。
——MCWiki
• 冰冻伤害游戏规则"freezedamage"决定了玩家是否承受细雪的冰冻伤害。
接受值:布尔值(true|false)
默认值:true(承受)
例:
- /gamerule freezedamage false
关闭冰冻伤害
• 设置跳过夜晚所需的入睡玩家所占百分比
游戏规则"playersSleepingPercentage"决定了有多少百分比的玩家入睡才会跳过夜晚
接受值:数字
默认值:100(所有玩家入睡才会跳过夜晚)
在服务器里你有没有从来无法跳过夜晚的经历?没关系,本命令帮你解决!
本规则可以决定,有多少百分比的玩家入睡才会跳过夜晚。
如果设为0,只要有1名玩家躺到床上就会跳过夜晚。
如果设为100,必须所有玩家都躺在床上才会跳过夜晚。
如果设为大于100,那么夜晚将无法跳过。
例:
- /gamerule playersSleepingPercentage 101
玩家将无法跳过夜晚
• 监守者生成
游戏规则"doWardenSpawning"决定了监守者是否可以自然生成。
接受值:布尔值(true|false)
默认值:true(是)
例:
- /gamerule doWardenSpawning false
不让它生成
• 爆炸时凋落物销毁
游戏中当发生可以破坏方块的爆炸时,这些遭到破坏的方块不是全部都能掉落为物品。一般地说,里爆炸中心越近就越容易被“完全销毁”,即不掉落物品。例外是TNT,它的爆炸总是使全部物品掉落。
游戏规则"blockExplosionDropDecay"决定了由非TNT的方块爆炸炸毁的方块是否会有概率不掉落。
游戏规则"mobExplosionDropDecay"决定了由生物爆炸炸毁的方块是否会有概率不掉落。
游戏规则"tntExplosionDropDecay"决定了由TNT炸毁的方块是否会有概率不掉落。
接受值:布尔值(true|false)
默认值:TNT为false(永远掉落),其他两项为true(可能不掉落)
例:
- /gamerule mobExplosionDropDecay false
使生物爆炸时总是掉落全部方块(比如苦力怕)。
• 下雪堆积层数
游戏规则"snowAccumulationHeight"决定了下雪时可在一格方块空间内堆积的雪的最高层数。
接受值:数字
默认值:1
设置为0会关闭积雪
设置为8或以上效果等同,均会使雪堆到一整格高
例:
- /gamerule snowAccumulationHeight 0
• 生成源流体方块
我们都知道可以做无线水,但不可以无限演讲。下面的两个规则决定了流体在交汇时是否形成新的源流体方块。
游戏规则"waterSourceConversion"决定了水流能否形成新的水源。
游戏规则"lavaSourceConversion"决定了岩浆流能否形成新的熔岩源。
接受值:布尔值(true|false)
默认值:水:true(可以)熔岩:false(不行)
例:
- /gamerule lavaSourceConversion true
• 全局音效
游戏规则"globalSoundEvents"决定了玩家是否能听到可无视距离播放给全部玩家的特定游戏事件音效。
接受值:布尔值(true|false)
默认值:true(是)
有些音效所有玩家都听得见,比如召唤凋零的声音,大概。
例:
- /gamerule globalSoundEvents false
这就是Java1.19.3的所有游戏规则。
以上就是今天的全部内容。
写这一帖的时候遇到了一件有趣的事情。
有一个游戏规则”functionCommandLimit“出现在了中文Wiki,但是在英文wiki上却从未出现!
最后证实该规则的确存在于基岩版。
中文Wiki的一位管理员跟我说,他发现英文Wiki的质量正在逐年下滑——各位,你觉得有么?反正我除非必要是很少去逛英文Wiki的啦。
好啦,就这些啦!
以上。
#更新日志
Java 1.16.5/a 页面发布
Java 1.16.5/b 修正了错误的版本信息。
Java 1.16.5/c 撤销了名称问题。
Java 1.16.5/d 更改了名字
Java 1.17/a 1.17版本升级完成,增加了两条游戏规则
Java 1.18/a 1.18版本升级完成
Java 1.19.3/a 1.19版本升级完成,增加了6条游戏规则
上一篇:[命令] 命令教程“真”从零开始 (八) 区块与强制加载命令/forceload [1.16]
索引:系列《命令教程“真”从零开始》
下一篇:[命令] 命令教程“真”从零开始 (十) 简单,又新手(雾)的方块指令/setblock [1.16]
因缺思厅,以前玩过,根本看不懂QAQ
我想一个"《MC命令从入坑到入土》",当然我还认为作者没有需要改名的必要。从零开始既是自己的基础为零也是要学的基础应从零开始。就如同我们学数学一样,我们也是从零开始。如果网友能反复练习并研究你前九篇的内容,我相信他们肯定能看懂后面的内容。你写的教程很棒很详细,哪怕像一些没有时间学命令的人来说,也能很好的理解你写的关于命令的每一句话。心急吃不了热豆腐,任何学习都没有"1分钟了解,10分钟掌握,1小时精通"这类的捷径。真心需要学命令的人在看你的教程的时候遇到难点的会自主的翻阅你之前的教程并上wiki查阅对比,而那些仅仅想赶紧复制一个命令的人并不是我们所要教授的目标,他们如果没找到自己想要的命令自然就退到百度上查找了。
另外希望Dahesor能一直健康的坚持下去
,还有就是 催更......QAQ
另外希望Dahesor能一直健康的坚持下去
生物死亡战利品中“玩家”写成了“万家”
另外生物/实体死亡时掉落物品这个命令中 物品无法取下的情况好像是bug,我在1.16.1时使用该指令无法取下物品,甚至创造模式都撸不掉物品展示框(只能通过破坏物品展示框附着的方块来破坏它)
(当时还用这个特性做了些好玩的东西
)
1.16.5就可以取下物品了(当然还是不会掉落),不过具体哪个版本修复的我也不清楚~
另外生物/实体死亡时掉落物品这个命令中 物品无法取下的情况好像是bug,我在1.16.1时使用该指令无法取下物品,甚至创造模式都撸不掉物品展示框(只能通过破坏物品展示框附着的方块来破坏它)
(当时还用这个特性做了些好玩的东西
1.16.5就可以取下物品了(当然还是不会掉落),不过具体哪个版本修复的我也不清楚~
6666666666
GH_L 发表于 2021-4-25 17:43
生物死亡战利品中“玩家”写成了“万家”
是么?
但是物品展示框的确是实体……
所以会被本规则影响也很正常。
至于掉落的事……
如果是BUG,那,修就修了,(感觉很难有什么影响)
学到了学到了
commandBlockOutput这个不错,之前弄特效导致都看不清楚聊天栏了
commandBlockOutput这个不错,之前弄特效导致都看不清楚聊天栏了
这个wiki看不了(随机刻)
还有一个问题就是最大实体,我用了teleport把所有的creeper聚集到一起最后发现只有一只收到伤害
这个教程我竟然看懂了
playersSleepingPercentage这条感觉很有意思
playersSleepingPercentage这条感觉很有意思
MCBBS有你更精彩~
谢谢楼主的分享 对我有莫大的帮助!!!
感谢楼主分享
嗷嗷嗷 原来还有这么多命令啊 懂啦
{:694:

太棒了,这帖子收藏一波
MCBBS有你更精彩
这居然有用,太感谢了
对服务器感觉挺有用的=-= 狂喜
不错,总结了很多实用的指令,之前都是现用现搜,就记住了死亡不掉落和改时间
防爆好耶,不用怕苦力怕炸家了,死亡不掉落有了可以浪起来了(doge)
感谢分享,爱你楼主】