我的世界如何用命令方块保护一个区域,使人不能破坏。? - 知乎

文章推薦指數: 80 %
投票人數:10人

以下方案针对国际版,指令采用Java版1.12的书写格式,网易版与此版本号等同或略低于此版本号的版本理论上可行,但是出现任何问题概不负责。

Minecraft(游戏《我的世界》)《我的世界》中国版我的世界如何用命令方块保护一个区域,使人不能破坏。

?环境:我的世界网易版,本地联机。

使人不能放置方块,破坏方块,或者进入冒险模式。

国际版的也可以也可以也可以。

版本:1.9.03显示全部​关注者20被浏览88,195关注问题​写回答​邀请回答​好问题​添加评论​分享​9个回答默认排序熊孩子​Minceraft/三国闪/BRAINISEMPTY​关注24人赞同了该回答以下方案针对国际版,指令采用Java版1.12的书写格式,网易版与此版本号等同或略低于此版本号的版本理论上可行,但是出现任何问题概不负责。

1、简单方案:/execute@a[x=X,y=Y,z=Z,dx=DX,dy=DY,dz=DZ,m=0,tag=TAG]~~~effect@smimecraft:mining_fatigue14true给予区域内玩家较高的挖掘疲劳。

此举可以防止对所有不能被立即破坏的方块的破坏(所以对火把作物啥的无效),但是对放置很无力,适合针对空手玩家或者对放置要求不高的情况。

2、普通方案:/gamemodeadventure@a[x=X,y=Y,z=Z,dx=DX,dy=DY,dz=DZ,m=0,tag=TAG],tag是一个二级筛选条件,用于将不在目标范围内的玩家排除,比如op或者其它拥有豁免权的玩家。

然后对不在区域内的玩家以/gamemodesurvival@a[tag=TAG,m=2]恢复生存模式,至于如何检测是否在区域外可以用多个不同的DX、DY、DZ和一个单独的rm=RM联合控制。

此举能够有效阻拦放置和破坏,但是由于边界的问题对从远处发射过来的破坏物或怕爬行者爆炸等等很无力。

3、复杂方案:使用一系列形成嵌套结构并具备自触发能力的structure_block对整个区域进行存储,使之最终由唯一一个stb保存,然后将所有stb调整为加载模式。

同时建立一个此区域的完全备份作为对照,然后封锁对照组。

以一定频率或人工控制对被保护区域和被对照组进行比较,一旦发现不同,立即清除区域内全部掉落物和经验球等,并重加载所有方块。

此方案缺乏机动性,对一些正常操作分辨能力有限,但是能有效抹去已造成的损害,适合和方案2联合使用,用于手动或自动复原遭受的破坏。

编辑于2018-12-1713:18​赞同24​​20条评论​分享​收藏​喜欢收起​那个谁言讎​肯特大学计算机科学硕士​关注8人赞同了该回答gamemodeadventure@a[distance=..10,x=0,y=0,z=0]类似这样吧,效果是把xyz为中心小于10格的范围的玩家变成冒险模式,不过得记得在别的地方搞个方块切换回来,pe的目标选择器可能有点区别,可以参考这里CommandsPS:人问的命令方块和网易较什么劲儿……PS2:国际版的指令系统和网易版没啥区别编辑于2018-12-1712:36​赞同8​​9条评论​分享​收藏​喜欢收起​



請為這篇文章評分?